diff -Nru guvcview-1.7.3/aclocal.m4 guvcview-2.0.1+ubuntu1~ppa1/aclocal.m4 --- guvcview-1.7.3/aclocal.m4 2014-03-24 22:56:28.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/aclocal.m4 2014-10-05 10:41:44.000000000 +0000 @@ -1,4 +1,4 @@ -# generated automatically by aclocal 1.13.3 -*- Autoconf -*- +# generated automatically by aclocal 1.14.1 -*- Autoconf -*- # Copyright (C) 1996-2013 Free Software Foundation, Inc. @@ -616,6 +616,61 @@ fi[]dnl ])# PKG_CHECK_MODULES + +# PKG_INSTALLDIR(DIRECTORY) +# ------------------------- +# Substitutes the variable pkgconfigdir as the location where a module +# should install pkg-config .pc files. By default the directory is +# $libdir/pkgconfig, but the default can be changed by passing +# DIRECTORY. The user can override through the --with-pkgconfigdir +# parameter. +AC_DEFUN([PKG_INSTALLDIR], +[m4_pushdef([pkg_default], [m4_default([$1], ['${libdir}/pkgconfig'])]) +m4_pushdef([pkg_description], + [pkg-config installation directory @<:@]pkg_default[@:>@]) +AC_ARG_WITH([pkgconfigdir], + [AS_HELP_STRING([--with-pkgconfigdir], pkg_description)],, + [with_pkgconfigdir=]pkg_default) +AC_SUBST([pkgconfigdir], [$with_pkgconfigdir]) +m4_popdef([pkg_default]) +m4_popdef([pkg_description]) +]) dnl PKG_INSTALLDIR + + +# PKG_NOARCH_INSTALLDIR(DIRECTORY) +# ------------------------- +# Substitutes the variable noarch_pkgconfigdir as the location where a +# module should install arch-independent pkg-config .pc files. By +# default the directory is $datadir/pkgconfig, but the default can be +# changed by passing DIRECTORY. The user can override through the +# --with-noarch-pkgconfigdir parameter. +AC_DEFUN([PKG_NOARCH_INSTALLDIR], +[m4_pushdef([pkg_default], [m4_default([$1], ['${datadir}/pkgconfig'])]) +m4_pushdef([pkg_description], + [pkg-config arch-independent installation directory @<:@]pkg_default[@:>@]) +AC_ARG_WITH([noarch-pkgconfigdir], + [AS_HELP_STRING([--with-noarch-pkgconfigdir], pkg_description)],, + [with_noarch_pkgconfigdir=]pkg_default) +AC_SUBST([noarch_pkgconfigdir], [$with_noarch_pkgconfigdir]) +m4_popdef([pkg_default]) +m4_popdef([pkg_description]) +]) dnl PKG_NOARCH_INSTALLDIR + + +# PKG_CHECK_VAR(VARIABLE, MODULE, CONFIG-VARIABLE, +# [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) +# ------------------------------------------- +# Retrieves the value of the pkg-config variable for the given module. +AC_DEFUN([PKG_CHECK_VAR], +[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl +AC_ARG_VAR([$1], [value of $3 for $2, overriding pkg-config])dnl + +_PKG_CONFIG([$1], [variable="][$3]["], [$2]) +AS_VAR_COPY([$1], [pkg_cv_][$1]) + +AS_VAR_IF([$1], [""], [$5], [$4])dnl +])# PKG_CHECK_VAR + # Copyright (C) 2002-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation @@ -628,10 +683,10 @@ # generated from the m4 files accompanying Automake X.Y. # (This private macro should not be called outside this file.) AC_DEFUN([AM_AUTOMAKE_VERSION], -[am__api_version='1.13' +[am__api_version='1.14' dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to dnl require some minimum version. Point them to the right macro. -m4_if([$1], [1.13.3], [], +m4_if([$1], [1.14.1], [], [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl ]) @@ -647,7 +702,7 @@ # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. # This function is AC_REQUIREd by AM_INIT_AUTOMAKE. AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], -[AM_AUTOMAKE_VERSION([1.13.3])dnl +[AM_AUTOMAKE_VERSION([1.14.1])dnl m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) @@ -1014,6 +1069,12 @@ # This macro actually does too much. Some checks are only needed if # your package does certain things. But this isn't really a big deal. +dnl Redefine AC_PROG_CC to automatically invoke _AM_PROG_CC_C_O. +m4_define([AC_PROG_CC], +m4_defn([AC_PROG_CC]) +[_AM_PROG_CC_C_O +]) + # AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE]) # AM_INIT_AUTOMAKE([OPTIONS]) # ----------------------------------------------- @@ -1122,6 +1183,48 @@ AC_CONFIG_COMMANDS_PRE(dnl [m4_provide_if([_AM_COMPILER_EXEEXT], [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl + +# POSIX will say in a future version that running "rm -f" with no argument +# is OK; and we want to be able to make that assumption in our Makefile +# recipes. So use an aggressive probe to check that the usage we want is +# actually supported "in the wild" to an acceptable degree. +# See automake bug#10828. +# To make any issue more visible, cause the running configure to be aborted +# by default if the 'rm' program in use doesn't match our expectations; the +# user can still override this though. +if rm -f && rm -fr && rm -rf; then : OK; else + cat >&2 <<'END' +Oops! + +Your 'rm' program seems unable to run without file operands specified +on the command line, even when the '-f' option is present. This is contrary +to the behaviour of most rm programs out there, and not conforming with +the upcoming POSIX standard: + +Please tell bug-automake@gnu.org about your system, including the value +of your $PATH and any error possibly output before this message. This +can help us improve future automake versions. + +END + if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then + echo 'Configuration will proceed anyway, since you have set the' >&2 + echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2 + echo >&2 + else + cat >&2 <<'END' +Aborting the configuration process, to ensure you take notice of the issue. + +You can download and install GNU coreutils to get an 'rm' implementation +that behaves properly: . + +If you want to complete the configuration process using your problematic +'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM +to "yes", and re-run configure. + +END + AC_MSG_ERROR([Your 'rm' program is bad, sorry.]) + fi +fi ]) dnl Hook into '_AC_COMPILER_EXEEXT' early to learn its expansion. Do not @@ -1130,7 +1233,6 @@ m4_define([_AC_COMPILER_EXEEXT], m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])]) - # When config.status generates a header, we must update the stamp-h file. # This file resides in the same directory as the config header # that is generated. The stamp files are numbered to have different names. @@ -1278,38 +1380,6 @@ rm -f confinc confmf ]) -# Copyright (C) 1999-2013 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# AM_PROG_CC_C_O -# -------------- -# Like AC_PROG_CC_C_O, but changed for automake. -AC_DEFUN([AM_PROG_CC_C_O], -[AC_REQUIRE([AC_PROG_CC_C_O])dnl -AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl -AC_REQUIRE_AUX_FILE([compile])dnl -# FIXME: we rely on the cache variable name because -# there is no other way. -set dummy $CC -am_cc=`echo $[2] | sed ['s/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/']` -eval am_t=\$ac_cv_prog_cc_${am_cc}_c_o -if test "$am_t" != yes; then - # Losing compiler, so override with the script. - # FIXME: It is wrong to rewrite CC. - # But if we don't then we get into trouble of one sort or another. - # A longer-term fix would be to have automake use am__CC in this case, - # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" - CC="$am_aux_dir/compile $CC" -fi -dnl Make sure AC_PROG_CC is never called again, or it will override our -dnl setting of CC. -m4_define([AC_PROG_CC], - [m4_fatal([AC_PROG_CC cannot be called after AM_PROG_CC_C_O])]) -]) - # Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- # Copyright (C) 1997-2013 Free Software Foundation, Inc. @@ -1380,6 +1450,70 @@ AC_DEFUN([_AM_IF_OPTION], [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) +# Copyright (C) 1999-2013 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# _AM_PROG_CC_C_O +# --------------- +# Like AC_PROG_CC_C_O, but changed for automake. We rewrite AC_PROG_CC +# to automatically call this. +AC_DEFUN([_AM_PROG_CC_C_O], +[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl +AC_REQUIRE_AUX_FILE([compile])dnl +AC_LANG_PUSH([C])dnl +AC_CACHE_CHECK( + [whether $CC understands -c and -o together], + [am_cv_prog_cc_c_o], + [AC_LANG_CONFTEST([AC_LANG_PROGRAM([])]) + # Make sure it works both with $CC and with simple cc. + # Following AC_PROG_CC_C_O, we do the test twice because some + # compilers refuse to overwrite an existing .o file with -o, + # though they will create one. + am_cv_prog_cc_c_o=yes + for am_i in 1 2; do + if AM_RUN_LOG([$CC -c conftest.$ac_ext -o conftest2.$ac_objext]) \ + && test -f conftest2.$ac_objext; then + : OK + else + am_cv_prog_cc_c_o=no + break + fi + done + rm -f core conftest* + unset am_i]) +if test "$am_cv_prog_cc_c_o" != yes; then + # Losing compiler, so override with the script. + # FIXME: It is wrong to rewrite CC. + # But if we don't then we get into trouble of one sort or another. + # A longer-term fix would be to have automake use am__CC in this case, + # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" + CC="$am_aux_dir/compile $CC" +fi +AC_LANG_POP([C])]) + +# For backward compatibility. +AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])]) + +# Copyright (C) 2001-2013 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_RUN_LOG(COMMAND) +# ------------------- +# Run COMMAND, save the exit status in ac_status, and log it. +# (This has been adapted from Autoconf's _AC_RUN_LOG macro.) +AC_DEFUN([AM_RUN_LOG], +[{ echo "$as_me:$LINENO: $1" >&AS_MESSAGE_LOG_FD + ($1) >&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD + (exit $ac_status); }]) + # Check to make sure that the build environment is sane. -*- Autoconf -*- # Copyright (C) 1996-2013 Free Software Foundation, Inc. @@ -1703,4 +1837,9 @@ m4_include([m4/acx_pthread.m4]) m4_include([m4/intltool.m4]) +m4_include([m4/libtool.m4]) +m4_include([m4/ltoptions.m4]) +m4_include([m4/ltsugar.m4]) +m4_include([m4/ltversion.m4]) +m4_include([m4/lt~obsolete.m4]) m4_include([m4/nls.m4]) diff -Nru guvcview-1.7.3/autom4te.cache/output.0 guvcview-2.0.1+ubuntu1~ppa1/autom4te.cache/output.0 --- guvcview-1.7.3/autom4te.cache/output.0 2014-03-24 22:56:28.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/autom4te.cache/output.0 1970-01-01 00:00:00.000000000 +0000 @@ -1,8837 +0,0 @@ -@%:@! /bin/sh -@%:@ Guess values for system-dependent variables and create Makefiles. -@%:@ Generated by GNU Autoconf 2.69 for guvcview 1.7.2. -@%:@ -@%:@ Report bugs to . -@%:@ -@%:@ -@%:@ Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. -@%:@ -@%:@ -@%:@ This configure script is free software; the Free Software Foundation -@%:@ gives unlimited permission to copy, distribute and modify it. -## -------------------- ## -## M4sh Initialization. ## -## -------------------- ## - -# Be more Bourne compatible -DUALCASE=1; export DUALCASE # for MKS sh -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : - emulate sh - NULLCMD=: - # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which - # is contrary to our usage. Disable this feature. - alias -g '${1+"$@"}'='"$@"' - setopt NO_GLOB_SUBST -else - case `(set -o) 2>/dev/null` in @%:@( - *posix*) : - set -o posix ;; @%:@( - *) : - ;; -esac -fi - - -as_nl=' -' -export as_nl -# Printing a long string crashes Solaris 7 /usr/bin/printf. -as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' -as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo -as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo -# Prefer a ksh shell builtin over an external printf program on Solaris, -# but without wasting forks for bash or zsh. -if test -z "$BASH_VERSION$ZSH_VERSION" \ - && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then - as_echo='print -r --' - as_echo_n='print -rn --' -elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then - as_echo='printf %s\n' - as_echo_n='printf %s' -else - if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then - as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' - as_echo_n='/usr/ucb/echo -n' - else - as_echo_body='eval expr "X$1" : "X\\(.*\\)"' - as_echo_n_body='eval - arg=$1; - case $arg in @%:@( - *"$as_nl"*) - expr "X$arg" : "X\\(.*\\)$as_nl"; - arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; - esac; - expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" - ' - export as_echo_n_body - as_echo_n='sh -c $as_echo_n_body as_echo' - fi - export as_echo_body - as_echo='sh -c $as_echo_body as_echo' -fi - -# The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then - PATH_SEPARATOR=: - (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { - (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || - PATH_SEPARATOR=';' - } -fi - - -# IFS -# We need space, tab and new line, in precisely that order. Quoting is -# there to prevent editors from complaining about space-tab. -# (If _AS_PATH_WALK were called with IFS unset, it would disable word -# splitting by setting IFS to empty value.) -IFS=" "" $as_nl" - -# Find who we are. Look in the path if we contain no directory separator. -as_myself= -case $0 in @%:@(( - *[\\/]* ) as_myself=$0 ;; - *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break - done -IFS=$as_save_IFS - - ;; -esac -# We did not find ourselves, most probably we were run as `sh COMMAND' -# in which case we are not to be found in the path. -if test "x$as_myself" = x; then - as_myself=$0 -fi -if test ! -f "$as_myself"; then - $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 - exit 1 -fi - -# Unset variables that we do not need and which cause bugs (e.g. in -# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" -# suppresses any "Segmentation fault" message there. '((' could -# trigger a bug in pdksh 5.2.14. -for as_var in BASH_ENV ENV MAIL MAILPATH -do eval test x\${$as_var+set} = xset \ - && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : -done -PS1='$ ' -PS2='> ' -PS4='+ ' - -# NLS nuisances. -LC_ALL=C -export LC_ALL -LANGUAGE=C -export LANGUAGE - -# CDPATH. -(unset CDPATH) >/dev/null 2>&1 && unset CDPATH - -# Use a proper internal environment variable to ensure we don't fall - # into an infinite loop, continuously re-executing ourselves. - if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then - _as_can_reexec=no; export _as_can_reexec; - # We cannot yet assume a decent shell, so we have to provide a -# neutralization value for shells without unset; and this also -# works around shells that cannot unset nonexistent variables. -# Preserve -v and -x to the replacement shell. -BASH_ENV=/dev/null -ENV=/dev/null -(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV -case $- in @%:@ (((( - *v*x* | *x*v* ) as_opts=-vx ;; - *v* ) as_opts=-v ;; - *x* ) as_opts=-x ;; - * ) as_opts= ;; -esac -exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} -# Admittedly, this is quite paranoid, since all the known shells bail -# out after a failed `exec'. -$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 -as_fn_exit 255 - fi - # We don't want this to propagate to other subprocesses. - { _as_can_reexec=; unset _as_can_reexec;} -if test "x$CONFIG_SHELL" = x; then - as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : - emulate sh - NULLCMD=: - # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which - # is contrary to our usage. Disable this feature. - alias -g '\${1+\"\$@\"}'='\"\$@\"' - setopt NO_GLOB_SUBST -else - case \`(set -o) 2>/dev/null\` in @%:@( - *posix*) : - set -o posix ;; @%:@( - *) : - ;; -esac -fi -" - as_required="as_fn_return () { (exit \$1); } -as_fn_success () { as_fn_return 0; } -as_fn_failure () { as_fn_return 1; } -as_fn_ret_success () { return 0; } -as_fn_ret_failure () { return 1; } - -exitcode=0 -as_fn_success || { exitcode=1; echo as_fn_success failed.; } -as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } -as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } -as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } -if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : - -else - exitcode=1; echo positional parameters were not saved. -fi -test x\$exitcode = x0 || exit 1 -test -x / || exit 1" - as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO - as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO - eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && - test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1 -test \$(( 1 + 1 )) = 2 || exit 1" - if (eval "$as_required") 2>/dev/null; then : - as_have_required=yes -else - as_have_required=no -fi - if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then : - -else - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -as_found=false -for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - as_found=: - case $as_dir in @%:@( - /*) - for as_base in sh bash ksh sh5; do - # Try only shells that exist, to save several forks. - as_shell=$as_dir/$as_base - if { test -f "$as_shell" || test -f "$as_shell.exe"; } && - { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then : - CONFIG_SHELL=$as_shell as_have_required=yes - if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then : - break 2 -fi -fi - done;; - esac - as_found=false -done -$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } && - { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then : - CONFIG_SHELL=$SHELL as_have_required=yes -fi; } -IFS=$as_save_IFS - - - if test "x$CONFIG_SHELL" != x; then : - export CONFIG_SHELL - # We cannot yet assume a decent shell, so we have to provide a -# neutralization value for shells without unset; and this also -# works around shells that cannot unset nonexistent variables. -# Preserve -v and -x to the replacement shell. -BASH_ENV=/dev/null -ENV=/dev/null -(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV -case $- in @%:@ (((( - *v*x* | *x*v* ) as_opts=-vx ;; - *v* ) as_opts=-v ;; - *x* ) as_opts=-x ;; - * ) as_opts= ;; -esac -exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} -# Admittedly, this is quite paranoid, since all the known shells bail -# out after a failed `exec'. -$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 -exit 255 -fi - - if test x$as_have_required = xno; then : - $as_echo "$0: This script requires a shell more modern than all" - $as_echo "$0: the shells that I found on your system." - if test x${ZSH_VERSION+set} = xset ; then - $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should" - $as_echo "$0: be upgraded to zsh 4.3.4 or later." - else - $as_echo "$0: Please tell bug-autoconf@gnu.org and -$0: http://guvcview.sourceforge.net/ about your system, -$0: including any error possibly output before this -$0: message. Then install a modern shell, or manually run -$0: the script under such a shell if you do have one." - fi - exit 1 -fi -fi -fi -SHELL=${CONFIG_SHELL-/bin/sh} -export SHELL -# Unset more variables known to interfere with behavior of common tools. -CLICOLOR_FORCE= GREP_OPTIONS= -unset CLICOLOR_FORCE GREP_OPTIONS - -## --------------------- ## -## M4sh Shell Functions. ## -## --------------------- ## -@%:@ as_fn_unset VAR -@%:@ --------------- -@%:@ Portably unset VAR. -as_fn_unset () -{ - { eval $1=; unset $1;} -} -as_unset=as_fn_unset - -@%:@ as_fn_set_status STATUS -@%:@ ----------------------- -@%:@ Set @S|@? to STATUS, without forking. -as_fn_set_status () -{ - return $1 -} @%:@ as_fn_set_status - -@%:@ as_fn_exit STATUS -@%:@ ----------------- -@%:@ Exit the shell with STATUS, even in a "trap 0" or "set -e" context. -as_fn_exit () -{ - set +e - as_fn_set_status $1 - exit $1 -} @%:@ as_fn_exit - -@%:@ as_fn_mkdir_p -@%:@ ------------- -@%:@ Create "@S|@as_dir" as a directory, including parents if necessary. -as_fn_mkdir_p () -{ - - case $as_dir in #( - -*) as_dir=./$as_dir;; - esac - test -d "$as_dir" || eval $as_mkdir_p || { - as_dirs= - while :; do - case $as_dir in #( - *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( - *) as_qdir=$as_dir;; - esac - as_dirs="'$as_qdir' $as_dirs" - as_dir=`$as_dirname -- "$as_dir" || -$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$as_dir" : 'X\(//\)[^/]' \| \ - X"$as_dir" : 'X\(//\)$' \| \ - X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$as_dir" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - test -d "$as_dir" && break - done - test -z "$as_dirs" || eval "mkdir $as_dirs" - } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" - - -} @%:@ as_fn_mkdir_p - -@%:@ as_fn_executable_p FILE -@%:@ ----------------------- -@%:@ Test if FILE is an executable regular file. -as_fn_executable_p () -{ - test -f "$1" && test -x "$1" -} @%:@ as_fn_executable_p -@%:@ as_fn_append VAR VALUE -@%:@ ---------------------- -@%:@ Append the text in VALUE to the end of the definition contained in VAR. Take -@%:@ advantage of any shell optimizations that allow amortized linear growth over -@%:@ repeated appends, instead of the typical quadratic growth present in naive -@%:@ implementations. -if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : - eval 'as_fn_append () - { - eval $1+=\$2 - }' -else - as_fn_append () - { - eval $1=\$$1\$2 - } -fi # as_fn_append - -@%:@ as_fn_arith ARG... -@%:@ ------------------ -@%:@ Perform arithmetic evaluation on the ARGs, and store the result in the -@%:@ global @S|@as_val. Take advantage of shells that can avoid forks. The arguments -@%:@ must be portable across @S|@(()) and expr. -if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : - eval 'as_fn_arith () - { - as_val=$(( $* )) - }' -else - as_fn_arith () - { - as_val=`expr "$@" || test $? -eq 1` - } -fi # as_fn_arith - - -@%:@ as_fn_error STATUS ERROR [LINENO LOG_FD] -@%:@ ---------------------------------------- -@%:@ Output "`basename @S|@0`: error: ERROR" to stderr. If LINENO and LOG_FD are -@%:@ provided, also output the error to LOG_FD, referencing LINENO. Then exit the -@%:@ script with STATUS, using 1 if that was 0. -as_fn_error () -{ - as_status=$1; test $as_status -eq 0 && as_status=1 - if test "$4"; then - as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 - fi - $as_echo "$as_me: error: $2" >&2 - as_fn_exit $as_status -} @%:@ as_fn_error - -if expr a : '\(a\)' >/dev/null 2>&1 && - test "X`expr 00001 : '.*\(...\)'`" = X001; then - as_expr=expr -else - as_expr=false -fi - -if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then - as_basename=basename -else - as_basename=false -fi - -if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then - as_dirname=dirname -else - as_dirname=false -fi - -as_me=`$as_basename -- "$0" || -$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ - X"$0" : 'X\(//\)$' \| \ - X"$0" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X/"$0" | - sed '/^.*\/\([^/][^/]*\)\/*$/{ - s//\1/ - q - } - /^X\/\(\/\/\)$/{ - s//\1/ - q - } - /^X\/\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - -# Avoid depending upon Character Ranges. -as_cr_letters='abcdefghijklmnopqrstuvwxyz' -as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' -as_cr_Letters=$as_cr_letters$as_cr_LETTERS -as_cr_digits='0123456789' -as_cr_alnum=$as_cr_Letters$as_cr_digits - - - as_lineno_1=$LINENO as_lineno_1a=$LINENO - as_lineno_2=$LINENO as_lineno_2a=$LINENO - eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && - test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { - # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) - sed -n ' - p - /[$]LINENO/= - ' <$as_myself | - sed ' - s/[$]LINENO.*/&-/ - t lineno - b - :lineno - N - :loop - s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ - t loop - s/-\n.*// - ' >$as_me.lineno && - chmod +x "$as_me.lineno" || - { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } - - # If we had to re-execute with $CONFIG_SHELL, we're ensured to have - # already done that, so ensure we don't try to do so again and fall - # in an infinite loop. This has already happened in practice. - _as_can_reexec=no; export _as_can_reexec - # Don't try to exec as it changes $[0], causing all sort of problems - # (the dirname of $[0] is not the place where we might find the - # original and so on. Autoconf is especially sensitive to this). - . "./$as_me.lineno" - # Exit status is that of the last command. - exit -} - -ECHO_C= ECHO_N= ECHO_T= -case `echo -n x` in @%:@((((( --n*) - case `echo 'xy\c'` in - *c*) ECHO_T=' ';; # ECHO_T is single tab character. - xy) ECHO_C='\c';; - *) echo `echo ksh88 bug on AIX 6.1` > /dev/null - ECHO_T=' ';; - esac;; -*) - ECHO_N='-n';; -esac - -rm -f conf$$ conf$$.exe conf$$.file -if test -d conf$$.dir; then - rm -f conf$$.dir/conf$$.file -else - rm -f conf$$.dir - mkdir conf$$.dir 2>/dev/null -fi -if (echo >conf$$.file) 2>/dev/null; then - if ln -s conf$$.file conf$$ 2>/dev/null; then - as_ln_s='ln -s' - # ... but there are two gotchas: - # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. - # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. - # In both cases, we have to default to `cp -pR'. - ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || - as_ln_s='cp -pR' - elif ln conf$$.file conf$$ 2>/dev/null; then - as_ln_s=ln - else - as_ln_s='cp -pR' - fi -else - as_ln_s='cp -pR' -fi -rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file -rmdir conf$$.dir 2>/dev/null - -if mkdir -p . 2>/dev/null; then - as_mkdir_p='mkdir -p "$as_dir"' -else - test -d ./-p && rmdir ./-p - as_mkdir_p=false -fi - -as_test_x='test -x' -as_executable_p=as_fn_executable_p - -# Sed expression to map a string onto a valid CPP name. -as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" - -# Sed expression to map a string onto a valid variable name. -as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" - - -test -n "$DJDIR" || exec 7<&0 &1 - -# Name of the host. -# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status, -# so uname gets run too. -ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` - -# -# Initializations. -# -ac_default_prefix=/usr/local -ac_clean_files= -ac_config_libobj_dir=. -LIB@&t@OBJS= -cross_compiling=no -subdirs= -MFLAGS= -MAKEFLAGS= - -# Identity of this package. -PACKAGE_NAME='guvcview' -PACKAGE_TARNAME='guvcview' -PACKAGE_VERSION='1.7.2' -PACKAGE_STRING='guvcview 1.7.2' -PACKAGE_BUGREPORT='http://guvcview.sourceforge.net/' -PACKAGE_URL='' - -ac_default_prefix=/usr/local -# Factoring default headers for most tests. -ac_includes_default="\ -#include -#ifdef HAVE_SYS_TYPES_H -# include -#endif -#ifdef HAVE_SYS_STAT_H -# include -#endif -#ifdef STDC_HEADERS -# include -# include -#else -# ifdef HAVE_STDLIB_H -# include -# endif -#endif -#ifdef HAVE_STRING_H -# if !defined STDC_HEADERS && defined HAVE_MEMORY_H -# include -# endif -# include -#endif -#ifdef HAVE_STRINGS_H -# include -#endif -#ifdef HAVE_INTTYPES_H -# include -#endif -#ifdef HAVE_STDINT_H -# include -#endif -#ifdef HAVE_UNISTD_H -# include -#endif" - -ac_subst_vars='am__EXEEXT_FALSE -am__EXEEXT_TRUE -LTLIBOBJS -LIB@&t@OBJS -PULSE_LIBS -PULSE_CFLAGS -DESKTOP_FALSE -DESKTOP_TRUE -DEBIAN_MENU_FALSE -DEBIAN_MENU_TRUE -DEPS_LIBS -DEPS_CFLAGS -PKG_CONFIG_LIBDIR -PKG_CONFIG_PATH -PKG_CONFIG -MKINSTALLDIRS -POSUB -POFILES -PO_IN_DATADIR_FALSE -PO_IN_DATADIR_TRUE -INTLLIBS -INSTOBJEXT -GMOFILES -CATOBJEXT -CATALOGS -MSGFMT_OPTS -DATADIRNAME -ALL_LINGUAS -INTLTOOL_PERL -GMSGFMT -MSGFMT -MSGMERGE -XGETTEXT -INTLTOOL_POLICY_RULE -INTLTOOL_SERVICE_RULE -INTLTOOL_THEME_RULE -INTLTOOL_SCHEMAS_RULE -INTLTOOL_CAVES_RULE -INTLTOOL_XML_NOMERGE_RULE -INTLTOOL_XML_RULE -INTLTOOL_KBD_RULE -INTLTOOL_XAM_RULE -INTLTOOL_UI_RULE -INTLTOOL_SOUNDLIST_RULE -INTLTOOL_SHEET_RULE -INTLTOOL_SERVER_RULE -INTLTOOL_PONG_RULE -INTLTOOL_OAF_RULE -INTLTOOL_PROP_RULE -INTLTOOL_KEYS_RULE -INTLTOOL_DIRECTORY_RULE -INTLTOOL_DESKTOP_RULE -INTLTOOL_EXTRACT -INTLTOOL_MERGE -INTLTOOL_UPDATE -USE_NLS -GETTEXT_PACKAGE -PTHREAD_CFLAGS -PTHREAD_LIBS -PTHREAD_CC -acx_pthread_config -host_os -host_vendor -host_cpu -host -build_os -build_vendor -build_cpu -build -EGREP -GREP -CPP -am__fastdepCC_FALSE -am__fastdepCC_TRUE -CCDEPMODE -am__nodep -AMDEPBACKSLASH -AMDEP_FALSE -AMDEP_TRUE -am__quote -am__include -DEPDIR -OBJEXT -EXEEXT -ac_ct_CC -CPPFLAGS -LDFLAGS -CFLAGS -CC -MAINT -MAINTAINER_MODE_FALSE -MAINTAINER_MODE_TRUE -am__untar -am__tar -AMTAR -am__leading_dot -SET_MAKE -AWK -mkdir_p -MKDIR_P -INSTALL_STRIP_PROGRAM -STRIP -install_sh -MAKEINFO -AUTOHEADER -AUTOMAKE -AUTOCONF -ACLOCAL -VERSION -PACKAGE -CYGPATH_W -am__isrc -INSTALL_DATA -INSTALL_SCRIPT -INSTALL_PROGRAM -AM_BACKSLASH -AM_DEFAULT_VERBOSITY -AM_DEFAULT_V -AM_V -target_alias -host_alias -build_alias -LIBS -ECHO_T -ECHO_N -ECHO_C -DEFS -mandir -localedir -libdir -psdir -pdfdir -dvidir -htmldir -infodir -docdir -oldincludedir -includedir -localstatedir -sharedstatedir -sysconfdir -datadir -datarootdir -libexecdir -sbindir -bindir -program_transform_name -prefix -exec_prefix -PACKAGE_URL -PACKAGE_BUGREPORT -PACKAGE_STRING -PACKAGE_VERSION -PACKAGE_TARNAME -PACKAGE_NAME -PATH_SEPARATOR -SHELL' -ac_subst_files='' -ac_user_opts=' -enable_option_checking -enable_silent_rules -enable_maintainer_mode -enable_dependency_tracking -enable_debug -enable_nls -enable_debian_menu -enable_desktop -enable_pulse -' - ac_precious_vars='build_alias -host_alias -target_alias -CC -CFLAGS -LDFLAGS -LIBS -CPPFLAGS -CPP -PKG_CONFIG -PKG_CONFIG_PATH -PKG_CONFIG_LIBDIR -DEPS_CFLAGS -DEPS_LIBS -PULSE_CFLAGS -PULSE_LIBS' - - -# Initialize some variables set by options. -ac_init_help= -ac_init_version=false -ac_unrecognized_opts= -ac_unrecognized_sep= -# The variables have the same names as the options, with -# dashes changed to underlines. -cache_file=/dev/null -exec_prefix=NONE -no_create= -no_recursion= -prefix=NONE -program_prefix=NONE -program_suffix=NONE -program_transform_name=s,x,x, -silent= -site= -srcdir= -verbose= -x_includes=NONE -x_libraries=NONE - -# Installation directory options. -# These are left unexpanded so users can "make install exec_prefix=/foo" -# and all the variables that are supposed to be based on exec_prefix -# by default will actually change. -# Use braces instead of parens because sh, perl, etc. also accept them. -# (The list follows the same order as the GNU Coding Standards.) -bindir='${exec_prefix}/bin' -sbindir='${exec_prefix}/sbin' -libexecdir='${exec_prefix}/libexec' -datarootdir='${prefix}/share' -datadir='${datarootdir}' -sysconfdir='${prefix}/etc' -sharedstatedir='${prefix}/com' -localstatedir='${prefix}/var' -includedir='${prefix}/include' -oldincludedir='/usr/include' -docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' -infodir='${datarootdir}/info' -htmldir='${docdir}' -dvidir='${docdir}' -pdfdir='${docdir}' -psdir='${docdir}' -libdir='${exec_prefix}/lib' -localedir='${datarootdir}/locale' -mandir='${datarootdir}/man' - -ac_prev= -ac_dashdash= -for ac_option -do - # If the previous option needs an argument, assign it. - if test -n "$ac_prev"; then - eval $ac_prev=\$ac_option - ac_prev= - continue - fi - - case $ac_option in - *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; - *=) ac_optarg= ;; - *) ac_optarg=yes ;; - esac - - # Accept the important Cygnus configure options, so we can diagnose typos. - - case $ac_dashdash$ac_option in - --) - ac_dashdash=yes ;; - - -bindir | --bindir | --bindi | --bind | --bin | --bi) - ac_prev=bindir ;; - -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) - bindir=$ac_optarg ;; - - -build | --build | --buil | --bui | --bu) - ac_prev=build_alias ;; - -build=* | --build=* | --buil=* | --bui=* | --bu=*) - build_alias=$ac_optarg ;; - - -cache-file | --cache-file | --cache-fil | --cache-fi \ - | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) - ac_prev=cache_file ;; - -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ - | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) - cache_file=$ac_optarg ;; - - --config-cache | -C) - cache_file=config.cache ;; - - -datadir | --datadir | --datadi | --datad) - ac_prev=datadir ;; - -datadir=* | --datadir=* | --datadi=* | --datad=*) - datadir=$ac_optarg ;; - - -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ - | --dataroo | --dataro | --datar) - ac_prev=datarootdir ;; - -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ - | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) - datarootdir=$ac_optarg ;; - - -disable-* | --disable-*) - ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error $? "invalid feature name: $ac_useropt" - ac_useropt_orig=$ac_useropt - ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` - case $ac_user_opts in - *" -"enable_$ac_useropt" -"*) ;; - *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" - ac_unrecognized_sep=', ';; - esac - eval enable_$ac_useropt=no ;; - - -docdir | --docdir | --docdi | --doc | --do) - ac_prev=docdir ;; - -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) - docdir=$ac_optarg ;; - - -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) - ac_prev=dvidir ;; - -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) - dvidir=$ac_optarg ;; - - -enable-* | --enable-*) - ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error $? "invalid feature name: $ac_useropt" - ac_useropt_orig=$ac_useropt - ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` - case $ac_user_opts in - *" -"enable_$ac_useropt" -"*) ;; - *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" - ac_unrecognized_sep=', ';; - esac - eval enable_$ac_useropt=\$ac_optarg ;; - - -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ - | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ - | --exec | --exe | --ex) - ac_prev=exec_prefix ;; - -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ - | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ - | --exec=* | --exe=* | --ex=*) - exec_prefix=$ac_optarg ;; - - -gas | --gas | --ga | --g) - # Obsolete; use --with-gas. - with_gas=yes ;; - - -help | --help | --hel | --he | -h) - ac_init_help=long ;; - -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) - ac_init_help=recursive ;; - -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) - ac_init_help=short ;; - - -host | --host | --hos | --ho) - ac_prev=host_alias ;; - -host=* | --host=* | --hos=* | --ho=*) - host_alias=$ac_optarg ;; - - -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) - ac_prev=htmldir ;; - -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ - | --ht=*) - htmldir=$ac_optarg ;; - - -includedir | --includedir | --includedi | --included | --include \ - | --includ | --inclu | --incl | --inc) - ac_prev=includedir ;; - -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ - | --includ=* | --inclu=* | --incl=* | --inc=*) - includedir=$ac_optarg ;; - - -infodir | --infodir | --infodi | --infod | --info | --inf) - ac_prev=infodir ;; - -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) - infodir=$ac_optarg ;; - - -libdir | --libdir | --libdi | --libd) - ac_prev=libdir ;; - -libdir=* | --libdir=* | --libdi=* | --libd=*) - libdir=$ac_optarg ;; - - -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ - | --libexe | --libex | --libe) - ac_prev=libexecdir ;; - -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ - | --libexe=* | --libex=* | --libe=*) - libexecdir=$ac_optarg ;; - - -localedir | --localedir | --localedi | --localed | --locale) - ac_prev=localedir ;; - -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) - localedir=$ac_optarg ;; - - -localstatedir | --localstatedir | --localstatedi | --localstated \ - | --localstate | --localstat | --localsta | --localst | --locals) - ac_prev=localstatedir ;; - -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ - | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) - localstatedir=$ac_optarg ;; - - -mandir | --mandir | --mandi | --mand | --man | --ma | --m) - ac_prev=mandir ;; - -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) - mandir=$ac_optarg ;; - - -nfp | --nfp | --nf) - # Obsolete; use --without-fp. - with_fp=no ;; - - -no-create | --no-create | --no-creat | --no-crea | --no-cre \ - | --no-cr | --no-c | -n) - no_create=yes ;; - - -no-recursion | --no-recursion | --no-recursio | --no-recursi \ - | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) - no_recursion=yes ;; - - -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ - | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ - | --oldin | --oldi | --old | --ol | --o) - ac_prev=oldincludedir ;; - -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ - | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ - | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) - oldincludedir=$ac_optarg ;; - - -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) - ac_prev=prefix ;; - -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) - prefix=$ac_optarg ;; - - -program-prefix | --program-prefix | --program-prefi | --program-pref \ - | --program-pre | --program-pr | --program-p) - ac_prev=program_prefix ;; - -program-prefix=* | --program-prefix=* | --program-prefi=* \ - | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) - program_prefix=$ac_optarg ;; - - -program-suffix | --program-suffix | --program-suffi | --program-suff \ - | --program-suf | --program-su | --program-s) - ac_prev=program_suffix ;; - -program-suffix=* | --program-suffix=* | --program-suffi=* \ - | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) - program_suffix=$ac_optarg ;; - - -program-transform-name | --program-transform-name \ - | --program-transform-nam | --program-transform-na \ - | --program-transform-n | --program-transform- \ - | --program-transform | --program-transfor \ - | --program-transfo | --program-transf \ - | --program-trans | --program-tran \ - | --progr-tra | --program-tr | --program-t) - ac_prev=program_transform_name ;; - -program-transform-name=* | --program-transform-name=* \ - | --program-transform-nam=* | --program-transform-na=* \ - | --program-transform-n=* | --program-transform-=* \ - | --program-transform=* | --program-transfor=* \ - | --program-transfo=* | --program-transf=* \ - | --program-trans=* | --program-tran=* \ - | --progr-tra=* | --program-tr=* | --program-t=*) - program_transform_name=$ac_optarg ;; - - -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) - ac_prev=pdfdir ;; - -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) - pdfdir=$ac_optarg ;; - - -psdir | --psdir | --psdi | --psd | --ps) - ac_prev=psdir ;; - -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) - psdir=$ac_optarg ;; - - -q | -quiet | --quiet | --quie | --qui | --qu | --q \ - | -silent | --silent | --silen | --sile | --sil) - silent=yes ;; - - -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) - ac_prev=sbindir ;; - -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ - | --sbi=* | --sb=*) - sbindir=$ac_optarg ;; - - -sharedstatedir | --sharedstatedir | --sharedstatedi \ - | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ - | --sharedst | --shareds | --shared | --share | --shar \ - | --sha | --sh) - ac_prev=sharedstatedir ;; - -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ - | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ - | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ - | --sha=* | --sh=*) - sharedstatedir=$ac_optarg ;; - - -site | --site | --sit) - ac_prev=site ;; - -site=* | --site=* | --sit=*) - site=$ac_optarg ;; - - -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) - ac_prev=srcdir ;; - -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) - srcdir=$ac_optarg ;; - - -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ - | --syscon | --sysco | --sysc | --sys | --sy) - ac_prev=sysconfdir ;; - -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ - | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) - sysconfdir=$ac_optarg ;; - - -target | --target | --targe | --targ | --tar | --ta | --t) - ac_prev=target_alias ;; - -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) - target_alias=$ac_optarg ;; - - -v | -verbose | --verbose | --verbos | --verbo | --verb) - verbose=yes ;; - - -version | --version | --versio | --versi | --vers | -V) - ac_init_version=: ;; - - -with-* | --with-*) - ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error $? "invalid package name: $ac_useropt" - ac_useropt_orig=$ac_useropt - ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` - case $ac_user_opts in - *" -"with_$ac_useropt" -"*) ;; - *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" - ac_unrecognized_sep=', ';; - esac - eval with_$ac_useropt=\$ac_optarg ;; - - -without-* | --without-*) - ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error $? "invalid package name: $ac_useropt" - ac_useropt_orig=$ac_useropt - ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` - case $ac_user_opts in - *" -"with_$ac_useropt" -"*) ;; - *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" - ac_unrecognized_sep=', ';; - esac - eval with_$ac_useropt=no ;; - - --x) - # Obsolete; use --with-x. - with_x=yes ;; - - -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ - | --x-incl | --x-inc | --x-in | --x-i) - ac_prev=x_includes ;; - -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ - | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) - x_includes=$ac_optarg ;; - - -x-libraries | --x-libraries | --x-librarie | --x-librari \ - | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) - ac_prev=x_libraries ;; - -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ - | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) - x_libraries=$ac_optarg ;; - - -*) as_fn_error $? "unrecognized option: \`$ac_option' -Try \`$0 --help' for more information" - ;; - - *=*) - ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` - # Reject names that are not valid shell variable names. - case $ac_envvar in #( - '' | [0-9]* | *[!_$as_cr_alnum]* ) - as_fn_error $? "invalid variable name: \`$ac_envvar'" ;; - esac - eval $ac_envvar=\$ac_optarg - export $ac_envvar ;; - - *) - # FIXME: should be removed in autoconf 3.0. - $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 - expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && - $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 - : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}" - ;; - - esac -done - -if test -n "$ac_prev"; then - ac_option=--`echo $ac_prev | sed 's/_/-/g'` - as_fn_error $? "missing argument to $ac_option" -fi - -if test -n "$ac_unrecognized_opts"; then - case $enable_option_checking in - no) ;; - fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; - *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; - esac -fi - -# Check all directory arguments for consistency. -for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ - datadir sysconfdir sharedstatedir localstatedir includedir \ - oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ - libdir localedir mandir -do - eval ac_val=\$$ac_var - # Remove trailing slashes. - case $ac_val in - */ ) - ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` - eval $ac_var=\$ac_val;; - esac - # Be sure to have absolute directory names. - case $ac_val in - [\\/$]* | ?:[\\/]* ) continue;; - NONE | '' ) case $ac_var in *prefix ) continue;; esac;; - esac - as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" -done - -# There might be people who depend on the old broken behavior: `$host' -# used to hold the argument of --host etc. -# FIXME: To remove some day. -build=$build_alias -host=$host_alias -target=$target_alias - -# FIXME: To remove some day. -if test "x$host_alias" != x; then - if test "x$build_alias" = x; then - cross_compiling=maybe - elif test "x$build_alias" != "x$host_alias"; then - cross_compiling=yes - fi -fi - -ac_tool_prefix= -test -n "$host_alias" && ac_tool_prefix=$host_alias- - -test "$silent" = yes && exec 6>/dev/null - - -ac_pwd=`pwd` && test -n "$ac_pwd" && -ac_ls_di=`ls -di .` && -ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || - as_fn_error $? "working directory cannot be determined" -test "X$ac_ls_di" = "X$ac_pwd_ls_di" || - as_fn_error $? "pwd does not report name of working directory" - - -# Find the source files, if location was not specified. -if test -z "$srcdir"; then - ac_srcdir_defaulted=yes - # Try the directory containing this script, then the parent directory. - ac_confdir=`$as_dirname -- "$as_myself" || -$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$as_myself" : 'X\(//\)[^/]' \| \ - X"$as_myself" : 'X\(//\)$' \| \ - X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$as_myself" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - srcdir=$ac_confdir - if test ! -r "$srcdir/$ac_unique_file"; then - srcdir=.. - fi -else - ac_srcdir_defaulted=no -fi -if test ! -r "$srcdir/$ac_unique_file"; then - test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." - as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir" -fi -ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" -ac_abs_confdir=`( - cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg" - pwd)` -# When building in place, set srcdir=. -if test "$ac_abs_confdir" = "$ac_pwd"; then - srcdir=. -fi -# Remove unnecessary trailing slashes from srcdir. -# Double slashes in file names in object file debugging info -# mess up M-x gdb in Emacs. -case $srcdir in -*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; -esac -for ac_var in $ac_precious_vars; do - eval ac_env_${ac_var}_set=\${${ac_var}+set} - eval ac_env_${ac_var}_value=\$${ac_var} - eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} - eval ac_cv_env_${ac_var}_value=\$${ac_var} -done - -# -# Report the --help message. -# -if test "$ac_init_help" = "long"; then - # Omit some internal or obsolete options to make the list less imposing. - # This message is too long to be a string in the A/UX 3.1 sh. - cat <<_ACEOF -\`configure' configures guvcview 1.7.2 to adapt to many kinds of systems. - -Usage: $0 [OPTION]... [VAR=VALUE]... - -To assign environment variables (e.g., CC, CFLAGS...), specify them as -VAR=VALUE. See below for descriptions of some of the useful variables. - -Defaults for the options are specified in brackets. - -Configuration: - -h, --help display this help and exit - --help=short display options specific to this package - --help=recursive display the short help of all the included packages - -V, --version display version information and exit - -q, --quiet, --silent do not print \`checking ...' messages - --cache-file=FILE cache test results in FILE [disabled] - -C, --config-cache alias for \`--cache-file=config.cache' - -n, --no-create do not create output files - --srcdir=DIR find the sources in DIR [configure dir or \`..'] - -Installation directories: - --prefix=PREFIX install architecture-independent files in PREFIX - @<:@@S|@ac_default_prefix@:>@ - --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX - @<:@PREFIX@:>@ - -By default, \`make install' will install all the files in -\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify -an installation prefix other than \`$ac_default_prefix' using \`--prefix', -for instance \`--prefix=\$HOME'. - -For better control, use the options below. - -Fine tuning of the installation directories: - --bindir=DIR user executables [EPREFIX/bin] - --sbindir=DIR system admin executables [EPREFIX/sbin] - --libexecdir=DIR program executables [EPREFIX/libexec] - --sysconfdir=DIR read-only single-machine data [PREFIX/etc] - --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] - --localstatedir=DIR modifiable single-machine data [PREFIX/var] - --libdir=DIR object code libraries [EPREFIX/lib] - --includedir=DIR C header files [PREFIX/include] - --oldincludedir=DIR C header files for non-gcc [/usr/include] - --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] - --datadir=DIR read-only architecture-independent data [DATAROOTDIR] - --infodir=DIR info documentation [DATAROOTDIR/info] - --localedir=DIR locale-dependent data [DATAROOTDIR/locale] - --mandir=DIR man documentation [DATAROOTDIR/man] - --docdir=DIR documentation root @<:@DATAROOTDIR/doc/guvcview@:>@ - --htmldir=DIR html documentation [DOCDIR] - --dvidir=DIR dvi documentation [DOCDIR] - --pdfdir=DIR pdf documentation [DOCDIR] - --psdir=DIR ps documentation [DOCDIR] -_ACEOF - - cat <<\_ACEOF - -Program names: - --program-prefix=PREFIX prepend PREFIX to installed program names - --program-suffix=SUFFIX append SUFFIX to installed program names - --program-transform-name=PROGRAM run sed PROGRAM on installed program names - -System types: - --build=BUILD configure for building on BUILD [guessed] - --host=HOST cross-compile to build programs to run on HOST [BUILD] -_ACEOF -fi - -if test -n "$ac_init_help"; then - case $ac_init_help in - short | recursive ) echo "Configuration of guvcview 1.7.2:";; - esac - cat <<\_ACEOF - -Optional Features: - --disable-option-checking ignore unrecognized --enable/--with options - --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) - --enable-FEATURE[=ARG] include FEATURE [ARG=yes] - --enable-silent-rules less verbose build output (undo: "make V=1") - --disable-silent-rules verbose build output (undo: "make V=0") - --enable-maintainer-mode - enable make rules and dependencies not useful (and - sometimes confusing) to the casual installer - --enable-dependency-tracking - do not reject slow dependency extractors - --disable-dependency-tracking - speeds up one-time build - --enable-debug enable debug compile w/ debugging - if \@S|@CFLAGS is - set, add -g there, too - --disable-nls do not use Native Language Support - --disable-debian-menu disable debian menu (default: enabled) - --disable-desktop disable desktop file (default: enabled) - --disable-pulse disable pulseaudio support (default: enabled) - -Some influential environment variables: - CC C compiler command - CFLAGS C compiler flags - LDFLAGS linker flags, e.g. -L if you have libraries in a - nonstandard directory - LIBS libraries to pass to the linker, e.g. -l - CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I if - you have headers in a nonstandard directory - CPP C preprocessor - PKG_CONFIG path to pkg-config utility - PKG_CONFIG_PATH - directories to add to pkg-config's search path - PKG_CONFIG_LIBDIR - path overriding pkg-config's built-in search path - DEPS_CFLAGS C compiler flags for DEPS, overriding pkg-config - DEPS_LIBS linker flags for DEPS, overriding pkg-config - PULSE_CFLAGS - C compiler flags for PULSE, overriding pkg-config - PULSE_LIBS linker flags for PULSE, overriding pkg-config - -Use these variables to override the choices made by `configure' or to help -it to find libraries and programs with nonstandard names/locations. - -Report bugs to . -_ACEOF -ac_status=$? -fi - -if test "$ac_init_help" = "recursive"; then - # If there are subdirs, report their specific --help. - for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue - test -d "$ac_dir" || - { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || - continue - ac_builddir=. - -case "$ac_dir" in -.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; -*) - ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` - # A ".." for each directory in $ac_dir_suffix. - ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` - case $ac_top_builddir_sub in - "") ac_top_builddir_sub=. ac_top_build_prefix= ;; - *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; - esac ;; -esac -ac_abs_top_builddir=$ac_pwd -ac_abs_builddir=$ac_pwd$ac_dir_suffix -# for backward compatibility: -ac_top_builddir=$ac_top_build_prefix - -case $srcdir in - .) # We are building in place. - ac_srcdir=. - ac_top_srcdir=$ac_top_builddir_sub - ac_abs_top_srcdir=$ac_pwd ;; - [\\/]* | ?:[\\/]* ) # Absolute name. - ac_srcdir=$srcdir$ac_dir_suffix; - ac_top_srcdir=$srcdir - ac_abs_top_srcdir=$srcdir ;; - *) # Relative name. - ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix - ac_top_srcdir=$ac_top_build_prefix$srcdir - ac_abs_top_srcdir=$ac_pwd/$srcdir ;; -esac -ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix - - cd "$ac_dir" || { ac_status=$?; continue; } - # Check for guested configure. - if test -f "$ac_srcdir/configure.gnu"; then - echo && - $SHELL "$ac_srcdir/configure.gnu" --help=recursive - elif test -f "$ac_srcdir/configure"; then - echo && - $SHELL "$ac_srcdir/configure" --help=recursive - else - $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 - fi || ac_status=$? - cd "$ac_pwd" || { ac_status=$?; break; } - done -fi - -test -n "$ac_init_help" && exit $ac_status -if $ac_init_version; then - cat <<\_ACEOF -guvcview configure 1.7.2 -generated by GNU Autoconf 2.69 - -Copyright (C) 2012 Free Software Foundation, Inc. -This configure script is free software; the Free Software Foundation -gives unlimited permission to copy, distribute and modify it. -_ACEOF - exit -fi - -## ------------------------ ## -## Autoconf initialization. ## -## ------------------------ ## - -@%:@ ac_fn_c_try_compile LINENO -@%:@ -------------------------- -@%:@ Try to compile conftest.@S|@ac_ext, and return whether this succeeded. -ac_fn_c_try_compile () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - rm -f conftest.$ac_objext - if { { ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_compile") 2>conftest.err - ac_status=$? - if test -s conftest.err; then - grep -v '^ *+' conftest.err >conftest.er1 - cat conftest.er1 >&5 - mv -f conftest.er1 conftest.err - fi - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then : - ac_retval=0 -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_retval=1 -fi - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - as_fn_set_status $ac_retval - -} @%:@ ac_fn_c_try_compile - -@%:@ ac_fn_c_try_link LINENO -@%:@ ----------------------- -@%:@ Try to link conftest.@S|@ac_ext, and return whether this succeeded. -ac_fn_c_try_link () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - rm -f conftest.$ac_objext conftest$ac_exeext - if { { ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_link") 2>conftest.err - ac_status=$? - if test -s conftest.err; then - grep -v '^ *+' conftest.err >conftest.er1 - cat conftest.er1 >&5 - mv -f conftest.er1 conftest.err - fi - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && { - test "$cross_compiling" = yes || - test -x conftest$ac_exeext - }; then : - ac_retval=0 -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_retval=1 -fi - # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information - # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would - # interfere with the next link command; also delete a directory that is - # left behind by Apple's compiler. We do this before executing the actions. - rm -rf conftest.dSYM conftest_ipa8_conftest.oo - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - as_fn_set_status $ac_retval - -} @%:@ ac_fn_c_try_link - -@%:@ ac_fn_c_try_cpp LINENO -@%:@ ---------------------- -@%:@ Try to preprocess conftest.@S|@ac_ext, and return whether this succeeded. -ac_fn_c_try_cpp () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - if { { ac_try="$ac_cpp conftest.$ac_ext" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err - ac_status=$? - if test -s conftest.err; then - grep -v '^ *+' conftest.err >conftest.er1 - cat conftest.er1 >&5 - mv -f conftest.er1 conftest.err - fi - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } > conftest.i && { - test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || - test ! -s conftest.err - }; then : - ac_retval=0 -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_retval=1 -fi - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - as_fn_set_status $ac_retval - -} @%:@ ac_fn_c_try_cpp - -@%:@ ac_fn_c_try_run LINENO -@%:@ ---------------------- -@%:@ Try to link conftest.@S|@ac_ext, and return whether this succeeded. Assumes -@%:@ that executables *can* be run. -ac_fn_c_try_run () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - if { { ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_link") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && { ac_try='./conftest$ac_exeext' - { { case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; }; then : - ac_retval=0 -else - $as_echo "$as_me: program exited with status $ac_status" >&5 - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_retval=$ac_status -fi - rm -rf conftest.dSYM conftest_ipa8_conftest.oo - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - as_fn_set_status $ac_retval - -} @%:@ ac_fn_c_try_run - -@%:@ ac_fn_c_check_func LINENO FUNC VAR -@%:@ ---------------------------------- -@%:@ Tests whether FUNC exists, setting the cache variable VAR accordingly -ac_fn_c_check_func () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 -$as_echo_n "checking for $2... " >&6; } -if eval \${$3+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -/* Define $2 to an innocuous variant, in case declares $2. - For example, HP-UX 11i declares gettimeofday. */ -#define $2 innocuous_$2 - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char $2 (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef $2 - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char $2 (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined __stub_$2 || defined __stub___$2 -choke me -#endif - -int -main () -{ -return $2 (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - eval "$3=yes" -else - eval "$3=no" -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -eval ac_res=\$$3 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - -} @%:@ ac_fn_c_check_func - -@%:@ ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES -@%:@ ------------------------------------------------------- -@%:@ Tests whether HEADER exists, giving a warning if it cannot be compiled using -@%:@ the include files in INCLUDES and setting the cache variable VAR -@%:@ accordingly. -ac_fn_c_check_header_mongrel () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - if eval \${$3+:} false; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 -$as_echo_n "checking for $2... " >&6; } -if eval \${$3+:} false; then : - $as_echo_n "(cached) " >&6 -fi -eval ac_res=\$$3 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } -else - # Is the header compilable? -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5 -$as_echo_n "checking $2 usability... " >&6; } -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -@%:@include <$2> -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_header_compiler=yes -else - ac_header_compiler=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5 -$as_echo "$ac_header_compiler" >&6; } - -# Is the header present? -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5 -$as_echo_n "checking $2 presence... " >&6; } -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -@%:@include <$2> -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - ac_header_preproc=yes -else - ac_header_preproc=no -fi -rm -f conftest.err conftest.i conftest.$ac_ext -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5 -$as_echo "$ac_header_preproc" >&6; } - -# So? What about this header? -case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #(( - yes:no: ) - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5 -$as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 -$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} - ;; - no:yes:* ) - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5 -$as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: check for missing prerequisite headers?" >&5 -$as_echo "$as_me: WARNING: $2: check for missing prerequisite headers?" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5 -$as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&5 -$as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 -$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} -( $as_echo "## ----------------------------------------------- ## -## Report this to http://guvcview.sourceforge.net/ ## -## ----------------------------------------------- ##" - ) | sed "s/^/$as_me: WARNING: /" >&2 - ;; -esac - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 -$as_echo_n "checking for $2... " >&6; } -if eval \${$3+:} false; then : - $as_echo_n "(cached) " >&6 -else - eval "$3=\$ac_header_compiler" -fi -eval ac_res=\$$3 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } -fi - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - -} @%:@ ac_fn_c_check_header_mongrel - -@%:@ ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES -@%:@ ------------------------------------------------------- -@%:@ Tests whether HEADER exists and can be compiled using the include files in -@%:@ INCLUDES, setting the cache variable VAR accordingly. -ac_fn_c_check_header_compile () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 -$as_echo_n "checking for $2... " >&6; } -if eval \${$3+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -@%:@include <$2> -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - eval "$3=yes" -else - eval "$3=no" -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -eval ac_res=\$$3 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - -} @%:@ ac_fn_c_check_header_compile -cat >config.log <<_ACEOF -This file contains any messages produced by compilers while -running configure, to aid debugging if configure makes a mistake. - -It was created by guvcview $as_me 1.7.2, which was -generated by GNU Autoconf 2.69. Invocation command line was - - $ $0 $@ - -_ACEOF -exec 5>>config.log -{ -cat <<_ASUNAME -## --------- ## -## Platform. ## -## --------- ## - -hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` -uname -m = `(uname -m) 2>/dev/null || echo unknown` -uname -r = `(uname -r) 2>/dev/null || echo unknown` -uname -s = `(uname -s) 2>/dev/null || echo unknown` -uname -v = `(uname -v) 2>/dev/null || echo unknown` - -/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` -/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` - -/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` -/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` -/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` -/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` -/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` -/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` -/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` - -_ASUNAME - -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - $as_echo "PATH: $as_dir" - done -IFS=$as_save_IFS - -} >&5 - -cat >&5 <<_ACEOF - - -## ----------- ## -## Core tests. ## -## ----------- ## - -_ACEOF - - -# Keep a trace of the command line. -# Strip out --no-create and --no-recursion so they do not pile up. -# Strip out --silent because we don't want to record it for future runs. -# Also quote any args containing shell meta-characters. -# Make two passes to allow for proper duplicate-argument suppression. -ac_configure_args= -ac_configure_args0= -ac_configure_args1= -ac_must_keep_next=false -for ac_pass in 1 2 -do - for ac_arg - do - case $ac_arg in - -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; - -q | -quiet | --quiet | --quie | --qui | --qu | --q \ - | -silent | --silent | --silen | --sile | --sil) - continue ;; - *\'*) - ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; - esac - case $ac_pass in - 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; - 2) - as_fn_append ac_configure_args1 " '$ac_arg'" - if test $ac_must_keep_next = true; then - ac_must_keep_next=false # Got value, back to normal. - else - case $ac_arg in - *=* | --config-cache | -C | -disable-* | --disable-* \ - | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ - | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ - | -with-* | --with-* | -without-* | --without-* | --x) - case "$ac_configure_args0 " in - "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; - esac - ;; - -* ) ac_must_keep_next=true ;; - esac - fi - as_fn_append ac_configure_args " '$ac_arg'" - ;; - esac - done -done -{ ac_configure_args0=; unset ac_configure_args0;} -{ ac_configure_args1=; unset ac_configure_args1;} - -# When interrupted or exit'd, cleanup temporary files, and complete -# config.log. We remove comments because anyway the quotes in there -# would cause problems or look ugly. -# WARNING: Use '\'' to represent an apostrophe within the trap. -# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. -trap 'exit_status=$? - # Save into config.log some information that might help in debugging. - { - echo - - $as_echo "## ---------------- ## -## Cache variables. ## -## ---------------- ##" - echo - # The following way of writing the cache mishandles newlines in values, -( - for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do - eval ac_val=\$$ac_var - case $ac_val in #( - *${as_nl}*) - case $ac_var in #( - *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 -$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; - esac - case $ac_var in #( - _ | IFS | as_nl) ;; #( - BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( - *) { eval $ac_var=; unset $ac_var;} ;; - esac ;; - esac - done - (set) 2>&1 | - case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( - *${as_nl}ac_space=\ *) - sed -n \ - "s/'\''/'\''\\\\'\'''\''/g; - s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" - ;; #( - *) - sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" - ;; - esac | - sort -) - echo - - $as_echo "## ----------------- ## -## Output variables. ## -## ----------------- ##" - echo - for ac_var in $ac_subst_vars - do - eval ac_val=\$$ac_var - case $ac_val in - *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; - esac - $as_echo "$ac_var='\''$ac_val'\''" - done | sort - echo - - if test -n "$ac_subst_files"; then - $as_echo "## ------------------- ## -## File substitutions. ## -## ------------------- ##" - echo - for ac_var in $ac_subst_files - do - eval ac_val=\$$ac_var - case $ac_val in - *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; - esac - $as_echo "$ac_var='\''$ac_val'\''" - done | sort - echo - fi - - if test -s confdefs.h; then - $as_echo "## ----------- ## -## confdefs.h. ## -## ----------- ##" - echo - cat confdefs.h - echo - fi - test "$ac_signal" != 0 && - $as_echo "$as_me: caught signal $ac_signal" - $as_echo "$as_me: exit $exit_status" - } >&5 - rm -f core *.core core.conftest.* && - rm -f -r conftest* confdefs* conf$$* $ac_clean_files && - exit $exit_status -' 0 -for ac_signal in 1 2 13 15; do - trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal -done -ac_signal=0 - -# confdefs.h avoids OS command line length limits that DEFS can exceed. -rm -f -r conftest* confdefs.h - -$as_echo "/* confdefs.h */" > confdefs.h - -# Predefined preprocessor variables. - -cat >>confdefs.h <<_ACEOF -@%:@define PACKAGE_NAME "$PACKAGE_NAME" -_ACEOF - -cat >>confdefs.h <<_ACEOF -@%:@define PACKAGE_TARNAME "$PACKAGE_TARNAME" -_ACEOF - -cat >>confdefs.h <<_ACEOF -@%:@define PACKAGE_VERSION "$PACKAGE_VERSION" -_ACEOF - -cat >>confdefs.h <<_ACEOF -@%:@define PACKAGE_STRING "$PACKAGE_STRING" -_ACEOF - -cat >>confdefs.h <<_ACEOF -@%:@define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" -_ACEOF - -cat >>confdefs.h <<_ACEOF -@%:@define PACKAGE_URL "$PACKAGE_URL" -_ACEOF - - -# Let the site file select an alternate cache file if it wants to. -# Prefer an explicitly selected file to automatically selected ones. -ac_site_file1=NONE -ac_site_file2=NONE -if test -n "$CONFIG_SITE"; then - # We do not want a PATH search for config.site. - case $CONFIG_SITE in @%:@(( - -*) ac_site_file1=./$CONFIG_SITE;; - */*) ac_site_file1=$CONFIG_SITE;; - *) ac_site_file1=./$CONFIG_SITE;; - esac -elif test "x$prefix" != xNONE; then - ac_site_file1=$prefix/share/config.site - ac_site_file2=$prefix/etc/config.site -else - ac_site_file1=$ac_default_prefix/share/config.site - ac_site_file2=$ac_default_prefix/etc/config.site -fi -for ac_site_file in "$ac_site_file1" "$ac_site_file2" -do - test "x$ac_site_file" = xNONE && continue - if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 -$as_echo "$as_me: loading site script $ac_site_file" >&6;} - sed 's/^/| /' "$ac_site_file" >&5 - . "$ac_site_file" \ - || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "failed to load site script $ac_site_file -See \`config.log' for more details" "$LINENO" 5; } - fi -done - -if test -r "$cache_file"; then - # Some versions of bash will fail to source /dev/null (special files - # actually), so we avoid doing that. DJGPP emulates it as a regular file. - if test /dev/null != "$cache_file" && test -f "$cache_file"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 -$as_echo "$as_me: loading cache $cache_file" >&6;} - case $cache_file in - [\\/]* | ?:[\\/]* ) . "$cache_file";; - *) . "./$cache_file";; - esac - fi -else - { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 -$as_echo "$as_me: creating cache $cache_file" >&6;} - >$cache_file -fi - -# Check that the precious variables saved in the cache have kept the same -# value. -ac_cache_corrupted=false -for ac_var in $ac_precious_vars; do - eval ac_old_set=\$ac_cv_env_${ac_var}_set - eval ac_new_set=\$ac_env_${ac_var}_set - eval ac_old_val=\$ac_cv_env_${ac_var}_value - eval ac_new_val=\$ac_env_${ac_var}_value - case $ac_old_set,$ac_new_set in - set,) - { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 -$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} - ac_cache_corrupted=: ;; - ,set) - { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 -$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} - ac_cache_corrupted=: ;; - ,);; - *) - if test "x$ac_old_val" != "x$ac_new_val"; then - # differences in whitespace do not lead to failure. - ac_old_val_w=`echo x $ac_old_val` - ac_new_val_w=`echo x $ac_new_val` - if test "$ac_old_val_w" != "$ac_new_val_w"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 -$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} - ac_cache_corrupted=: - else - { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 -$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} - eval $ac_var=\$ac_old_val - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 -$as_echo "$as_me: former value: \`$ac_old_val'" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 -$as_echo "$as_me: current value: \`$ac_new_val'" >&2;} - fi;; - esac - # Pass precious variables to config.status. - if test "$ac_new_set" = set; then - case $ac_new_val in - *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; - *) ac_arg=$ac_var=$ac_new_val ;; - esac - case " $ac_configure_args " in - *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. - *) as_fn_append ac_configure_args " '$ac_arg'" ;; - esac - fi -done -if $ac_cache_corrupted; then - { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 -$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} - as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 -fi -## -------------------- ## -## Main body of script. ## -## -------------------- ## - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - -@%:@ Check whether --enable-silent-rules was given. -if test "${enable_silent_rules+set}" = set; then : - enableval=$enable_silent_rules; -fi - -case $enable_silent_rules in @%:@ ((( - yes) AM_DEFAULT_VERBOSITY=0;; - no) AM_DEFAULT_VERBOSITY=1;; - *) AM_DEFAULT_VERBOSITY=0;; -esac -am_make=${MAKE-make} -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5 -$as_echo_n "checking whether $am_make supports nested variables... " >&6; } -if ${am_cv_make_support_nested_variables+:} false; then : - $as_echo_n "(cached) " >&6 -else - if $as_echo 'TRUE=$(BAR$(V)) -BAR0=false -BAR1=true -V=1 -am__doit: - @$(TRUE) -.PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then - am_cv_make_support_nested_variables=yes -else - am_cv_make_support_nested_variables=no -fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5 -$as_echo "$am_cv_make_support_nested_variables" >&6; } -if test $am_cv_make_support_nested_variables = yes; then - AM_V='$(V)' - AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' -else - AM_V=$AM_DEFAULT_VERBOSITY - AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY -fi -AM_BACKSLASH='\' - - -am__api_version='1.13' - -ac_aux_dir= -for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do - if test -f "$ac_dir/install-sh"; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/install-sh -c" - break - elif test -f "$ac_dir/install.sh"; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/install.sh -c" - break - elif test -f "$ac_dir/shtool"; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/shtool install -c" - break - fi -done -if test -z "$ac_aux_dir"; then - as_fn_error $? "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5 -fi - -# These three variables are undocumented and unsupported, -# and are intended to be withdrawn in a future Autoconf release. -# They can cause serious problems if a builder's source tree is in a directory -# whose full name contains unusual characters. -ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. -ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. -ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. - - -# Find a good install program. We prefer a C program (faster), -# so one script is as good as another. But avoid the broken or -# incompatible versions: -# SysV /etc/install, /usr/sbin/install -# SunOS /usr/etc/install -# IRIX /sbin/install -# AIX /bin/install -# AmigaOS /C/install, which installs bootblocks on floppy discs -# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag -# AFS /usr/afsws/bin/install, which mishandles nonexistent args -# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" -# OS/2's system install, which has a completely different semantic -# ./install, which can be erroneously created by make from ./install.sh. -# Reject install programs that cannot install multiple files. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 -$as_echo_n "checking for a BSD-compatible install... " >&6; } -if test -z "$INSTALL"; then -if ${ac_cv_path_install+:} false; then : - $as_echo_n "(cached) " >&6 -else - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - # Account for people who put trailing slashes in PATH elements. -case $as_dir/ in @%:@(( - ./ | .// | /[cC]/* | \ - /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ - ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \ - /usr/ucb/* ) ;; - *) - # OSF1 and SCO ODT 3.0 have their own names for install. - # Don't use installbsd from OSF since it installs stuff as root - # by default. - for ac_prog in ginstall scoinst install; do - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then - if test $ac_prog = install && - grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then - # AIX install. It has an incompatible calling convention. - : - elif test $ac_prog = install && - grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then - # program-specific install script used by HP pwplus--don't use. - : - else - rm -rf conftest.one conftest.two conftest.dir - echo one > conftest.one - echo two > conftest.two - mkdir conftest.dir - if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" && - test -s conftest.one && test -s conftest.two && - test -s conftest.dir/conftest.one && - test -s conftest.dir/conftest.two - then - ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" - break 3 - fi - fi - fi - done - done - ;; -esac - - done -IFS=$as_save_IFS - -rm -rf conftest.one conftest.two conftest.dir - -fi - if test "${ac_cv_path_install+set}" = set; then - INSTALL=$ac_cv_path_install - else - # As a last resort, use the slow shell script. Don't cache a - # value for INSTALL within a source directory, because that will - # break other packages using the cache if that directory is - # removed, or if the value is a relative name. - INSTALL=$ac_install_sh - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5 -$as_echo "$INSTALL" >&6; } - -# Use test -z because SunOS4 sh mishandles braces in ${var-val}. -# It thinks the first close brace ends the variable substitution. -test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' - -test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' - -test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5 -$as_echo_n "checking whether build environment is sane... " >&6; } -# Reject unsafe characters in $srcdir or the absolute working directory -# name. Accept space and tab only in the latter. -am_lf=' -' -case `pwd` in - *[\\\"\#\$\&\'\`$am_lf]*) - as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5;; -esac -case $srcdir in - *[\\\"\#\$\&\'\`$am_lf\ \ ]*) - as_fn_error $? "unsafe srcdir value: '$srcdir'" "$LINENO" 5;; -esac - -# Do 'set' in a subshell so we don't clobber the current shell's -# arguments. Must try -L first in case configure is actually a -# symlink; some systems play weird games with the mod time of symlinks -# (eg FreeBSD returns the mod time of the symlink's containing -# directory). -if ( - am_has_slept=no - for am_try in 1 2; do - echo "timestamp, slept: $am_has_slept" > conftest.file - set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` - if test "$*" = "X"; then - # -L didn't work. - set X `ls -t "$srcdir/configure" conftest.file` - fi - if test "$*" != "X $srcdir/configure conftest.file" \ - && test "$*" != "X conftest.file $srcdir/configure"; then - - # If neither matched, then we have a broken ls. This can happen - # if, for instance, CONFIG_SHELL is bash and it inherits a - # broken ls alias from the environment. This has actually - # happened. Such a system could not be considered "sane". - as_fn_error $? "ls -t appears to fail. Make sure there is not a broken - alias in your environment" "$LINENO" 5 - fi - if test "$2" = conftest.file || test $am_try -eq 2; then - break - fi - # Just in case. - sleep 1 - am_has_slept=yes - done - test "$2" = conftest.file - ) -then - # Ok. - : -else - as_fn_error $? "newly created file is older than distributed files! -Check your system clock" "$LINENO" 5 -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -# If we didn't sleep, we still need to ensure time stamps of config.status and -# generated files are strictly newer. -am_sleep_pid= -if grep 'slept: no' conftest.file >/dev/null 2>&1; then - ( sleep 1 ) & - am_sleep_pid=$! -fi - -rm -f conftest.file - -test "$program_prefix" != NONE && - program_transform_name="s&^&$program_prefix&;$program_transform_name" -# Use a double $ so make ignores it. -test "$program_suffix" != NONE && - program_transform_name="s&\$&$program_suffix&;$program_transform_name" -# Double any \ or $. -# By default was `s,x,x', remove it if useless. -ac_script='s/[\\$]/&&/g;s/;s,x,x,$//' -program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"` - -# expand $ac_aux_dir to an absolute path -am_aux_dir=`cd $ac_aux_dir && pwd` - -if test x"${MISSING+set}" != xset; then - case $am_aux_dir in - *\ * | *\ *) - MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; - *) - MISSING="\${SHELL} $am_aux_dir/missing" ;; - esac -fi -# Use eval to expand $SHELL -if eval "$MISSING --is-lightweight"; then - am_missing_run="$MISSING " -else - am_missing_run= - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: 'missing' script is too old or missing" >&5 -$as_echo "$as_me: WARNING: 'missing' script is too old or missing" >&2;} -fi - -if test x"${install_sh}" != xset; then - case $am_aux_dir in - *\ * | *\ *) - install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; - *) - install_sh="\${SHELL} $am_aux_dir/install-sh" - esac -fi - -# Installed binaries are usually stripped using 'strip' when the user -# run "make install-strip". However 'strip' might not be the right -# tool to use in cross-compilation environments, therefore Automake -# will honor the 'STRIP' environment variable to overrule this program. -if test "$cross_compiling" != no; then - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. -set dummy ${ac_tool_prefix}strip; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_STRIP+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$STRIP"; then - ac_cv_prog_STRIP="$STRIP" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_STRIP="${ac_tool_prefix}strip" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -STRIP=$ac_cv_prog_STRIP -if test -n "$STRIP"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 -$as_echo "$STRIP" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_STRIP"; then - ac_ct_STRIP=$STRIP - # Extract the first word of "strip", so it can be a program name with args. -set dummy strip; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_STRIP+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_STRIP"; then - ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_STRIP="strip" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP -if test -n "$ac_ct_STRIP"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 -$as_echo "$ac_ct_STRIP" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_STRIP" = x; then - STRIP=":" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - STRIP=$ac_ct_STRIP - fi -else - STRIP="$ac_cv_prog_STRIP" -fi - -fi -INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5 -$as_echo_n "checking for a thread-safe mkdir -p... " >&6; } -if test -z "$MKDIR_P"; then - if ${ac_cv_path_mkdir+:} false; then : - $as_echo_n "(cached) " >&6 -else - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_prog in mkdir gmkdir; do - for ac_exec_ext in '' $ac_executable_extensions; do - as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext" || continue - case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #( - 'mkdir (GNU coreutils) '* | \ - 'mkdir (coreutils) '* | \ - 'mkdir (fileutils) '4.1*) - ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext - break 3;; - esac - done - done - done -IFS=$as_save_IFS - -fi - - test -d ./--version && rmdir ./--version - if test "${ac_cv_path_mkdir+set}" = set; then - MKDIR_P="$ac_cv_path_mkdir -p" - else - # As a last resort, use the slow shell script. Don't cache a - # value for MKDIR_P within a source directory, because that will - # break other packages using the cache if that directory is - # removed, or if the value is a relative name. - MKDIR_P="$ac_install_sh -d" - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5 -$as_echo "$MKDIR_P" >&6; } - -for ac_prog in gawk mawk nawk awk -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_AWK+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$AWK"; then - ac_cv_prog_AWK="$AWK" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_AWK="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -AWK=$ac_cv_prog_AWK -if test -n "$AWK"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5 -$as_echo "$AWK" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$AWK" && break -done - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 -$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } -set x ${MAKE-make} -ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` -if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat >conftest.make <<\_ACEOF -SHELL = /bin/sh -all: - @echo '@@@%%%=$(MAKE)=@@@%%%' -_ACEOF -# GNU make sometimes prints "make[1]: Entering ...", which would confuse us. -case `${MAKE-make} -f conftest.make 2>/dev/null` in - *@@@%%%=?*=@@@%%%*) - eval ac_cv_prog_make_${ac_make}_set=yes;; - *) - eval ac_cv_prog_make_${ac_make}_set=no;; -esac -rm -f conftest.make -fi -if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - SET_MAKE= -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - SET_MAKE="MAKE=${MAKE-make}" -fi - -rm -rf .tst 2>/dev/null -mkdir .tst 2>/dev/null -if test -d .tst; then - am__leading_dot=. -else - am__leading_dot=_ -fi -rmdir .tst 2>/dev/null - -if test "`cd $srcdir && pwd`" != "`pwd`"; then - # Use -I$(srcdir) only when $(srcdir) != ., so that make's output - # is not polluted with repeated "-I." - am__isrc=' -I$(srcdir)' - # test to see if srcdir already configured - if test -f $srcdir/config.status; then - as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5 - fi -fi - -# test whether we have cygpath -if test -z "$CYGPATH_W"; then - if (cygpath --version) >/dev/null 2>/dev/null; then - CYGPATH_W='cygpath -w' - else - CYGPATH_W=echo - fi -fi - - -# Define the identity of the package. - PACKAGE='guvcview' - VERSION='1.7.2' - - -cat >>confdefs.h <<_ACEOF -@%:@define PACKAGE "$PACKAGE" -_ACEOF - - -cat >>confdefs.h <<_ACEOF -@%:@define VERSION "$VERSION" -_ACEOF - -# Some tools Automake needs. - -ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"} - - -AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"} - - -AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"} - - -AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} - - -MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} - -# For better backward compatibility. To be removed once Automake 1.9.x -# dies out for good. For more background, see: -# -# -mkdir_p='$(MKDIR_P)' - -# We need awk for the "check" target. The system "awk" is bad on -# some platforms. -# Always define AMTAR for backward compatibility. Yes, it's still used -# in the wild :-( We should find a proper way to deprecate it ... -AMTAR='$${TAR-tar}' - - -# We'll loop over all known methods to create a tar archive until one works. -_am_tools='gnutar pax cpio none' - -am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -' - - - - - - - -ac_config_headers="$ac_config_headers config.h" - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable maintainer-specific portions of Makefiles" >&5 -$as_echo_n "checking whether to enable maintainer-specific portions of Makefiles... " >&6; } - @%:@ Check whether --enable-maintainer-mode was given. -if test "${enable_maintainer_mode+set}" = set; then : - enableval=$enable_maintainer_mode; USE_MAINTAINER_MODE=$enableval -else - USE_MAINTAINER_MODE=no -fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_MAINTAINER_MODE" >&5 -$as_echo "$USE_MAINTAINER_MODE" >&6; } - if test $USE_MAINTAINER_MODE = yes; then - MAINTAINER_MODE_TRUE= - MAINTAINER_MODE_FALSE='#' -else - MAINTAINER_MODE_TRUE='#' - MAINTAINER_MODE_FALSE= -fi - - MAINT=$MAINTAINER_MODE_TRUE - - - -# autoconf 2.5x defaults to no cache file; we need the cache file's information -# for building the config page. But start with it empty to avoid confusion by -# people who don't do a "make distclean" after applying patches. -cache_file=config.cache -rm -f config.cache; touch config.cache - - - -DEPDIR="${am__leading_dot}deps" - -ac_config_commands="$ac_config_commands depfiles" - - -am_make=${MAKE-make} -cat > confinc << 'END' -am__doit: - @echo this is the am__doit target -.PHONY: am__doit -END -# If we don't find an include directive, just comment out the code. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for style of include used by $am_make" >&5 -$as_echo_n "checking for style of include used by $am_make... " >&6; } -am__include="#" -am__quote= -_am_result=none -# First try GNU make style include. -echo "include confinc" > confmf -# Ignore all kinds of additional output from 'make'. -case `$am_make -s -f confmf 2> /dev/null` in #( -*the\ am__doit\ target*) - am__include=include - am__quote= - _am_result=GNU - ;; -esac -# Now try BSD make style include. -if test "$am__include" = "#"; then - echo '.include "confinc"' > confmf - case `$am_make -s -f confmf 2> /dev/null` in #( - *the\ am__doit\ target*) - am__include=.include - am__quote="\"" - _am_result=BSD - ;; - esac -fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $_am_result" >&5 -$as_echo "$_am_result" >&6; } -rm -f confinc confmf - -@%:@ Check whether --enable-dependency-tracking was given. -if test "${enable_dependency_tracking+set}" = set; then : - enableval=$enable_dependency_tracking; -fi - -if test "x$enable_dependency_tracking" != xno; then - am_depcomp="$ac_aux_dir/depcomp" - AMDEPBACKSLASH='\' - am__nodep='_no' -fi - if test "x$enable_dependency_tracking" != xno; then - AMDEP_TRUE= - AMDEP_FALSE='#' -else - AMDEP_TRUE='#' - AMDEP_FALSE= -fi - - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu -if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. -set dummy ${ac_tool_prefix}gcc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_CC="${ac_tool_prefix}gcc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_CC"; then - ac_ct_CC=$CC - # Extract the first word of "gcc", so it can be a program name with args. -set dummy gcc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_CC"; then - ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_CC="gcc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_CC=$ac_cv_prog_ac_ct_CC -if test -n "$ac_ct_CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 -$as_echo "$ac_ct_CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_CC" = x; then - CC="" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - CC=$ac_ct_CC - fi -else - CC="$ac_cv_prog_CC" -fi - -if test -z "$CC"; then - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. -set dummy ${ac_tool_prefix}cc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_CC="${ac_tool_prefix}cc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - fi -fi -if test -z "$CC"; then - # Extract the first word of "cc", so it can be a program name with args. -set dummy cc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else - ac_prog_rejected=no -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then - ac_prog_rejected=yes - continue - fi - ac_cv_prog_CC="cc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -if test $ac_prog_rejected = yes; then - # We found a bogon in the path, so make sure we never use it. - set dummy $ac_cv_prog_CC - shift - if test $@%:@ != 0; then - # We chose a different compiler from the bogus one. - # However, it has the same basename, so the bogon will be chosen - # first if we set CC to just the basename; use the full file name. - shift - ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" - fi -fi -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$CC"; then - if test -n "$ac_tool_prefix"; then - for ac_prog in cl.exe - do - # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. -set dummy $ac_tool_prefix$ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_CC="$ac_tool_prefix$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$CC" && break - done -fi -if test -z "$CC"; then - ac_ct_CC=$CC - for ac_prog in cl.exe -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_CC"; then - ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_CC="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_CC=$ac_cv_prog_ac_ct_CC -if test -n "$ac_ct_CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 -$as_echo "$ac_ct_CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$ac_ct_CC" && break -done - - if test "x$ac_ct_CC" = x; then - CC="" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - CC=$ac_ct_CC - fi -fi - -fi - - -test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "no acceptable C compiler found in \$PATH -See \`config.log' for more details" "$LINENO" 5; } - -# Provide some information about the compiler. -$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 -set X $ac_compile -ac_compiler=$2 -for ac_option in --version -v -V -qversion; do - { { ac_try="$ac_compiler $ac_option >&5" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_compiler $ac_option >&5") 2>conftest.err - ac_status=$? - if test -s conftest.err; then - sed '10a\ -... rest of stderr output deleted ... - 10q' conftest.err >conftest.er1 - cat conftest.er1 >&5 - fi - rm -f conftest.er1 conftest.err - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } -done - -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -ac_clean_files_save=$ac_clean_files -ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out" -# Try to create an executable without -o first, disregard a.out. -# It will help us diagnose broken compilers, and finding out an intuition -# of exeext. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5 -$as_echo_n "checking whether the C compiler works... " >&6; } -ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` - -# The possible output files: -ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" - -ac_rmfiles= -for ac_file in $ac_files -do - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; - * ) ac_rmfiles="$ac_rmfiles $ac_file";; - esac -done -rm -f $ac_rmfiles - -if { { ac_try="$ac_link_default" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_link_default") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then : - # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. -# So ignore a value of `no', otherwise this would lead to `EXEEXT = no' -# in a Makefile. We should not override ac_cv_exeext if it was cached, -# so that the user can short-circuit this test for compilers unknown to -# Autoconf. -for ac_file in $ac_files '' -do - test -f "$ac_file" || continue - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) - ;; - [ab].out ) - # We found the default executable, but exeext='' is most - # certainly right. - break;; - *.* ) - if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; - then :; else - ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` - fi - # We set ac_cv_exeext here because the later test for it is not - # safe: cross compilers may not add the suffix if given an `-o' - # argument, so we may need to know it at that point already. - # Even if this section looks crufty: it has the advantage of - # actually working. - break;; - * ) - break;; - esac -done -test "$ac_cv_exeext" = no && ac_cv_exeext= - -else - ac_file='' -fi -if test -z "$ac_file"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -$as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error 77 "C compiler cannot create executables -See \`config.log' for more details" "$LINENO" 5; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5 -$as_echo_n "checking for C compiler default output file name... " >&6; } -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 -$as_echo "$ac_file" >&6; } -ac_exeext=$ac_cv_exeext - -rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out -ac_clean_files=$ac_clean_files_save -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 -$as_echo_n "checking for suffix of executables... " >&6; } -if { { ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_link") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then : - # If both `conftest.exe' and `conftest' are `present' (well, observable) -# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will -# work properly (i.e., refer to `conftest.exe'), while it won't with -# `rm'. -for ac_file in conftest.exe conftest conftest.*; do - test -f "$ac_file" || continue - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; - *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` - break;; - * ) break;; - esac -done -else - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "cannot compute suffix of executables: cannot compile and link -See \`config.log' for more details" "$LINENO" 5; } -fi -rm -f conftest conftest$ac_cv_exeext -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 -$as_echo "$ac_cv_exeext" >&6; } - -rm -f conftest.$ac_ext -EXEEXT=$ac_cv_exeext -ac_exeext=$EXEEXT -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -@%:@include -int -main () -{ -FILE *f = fopen ("conftest.out", "w"); - return ferror (f) || fclose (f) != 0; - - ; - return 0; -} -_ACEOF -ac_clean_files="$ac_clean_files conftest.out" -# Check that the compiler produces executables we can run. If not, either -# the compiler is broken, or we cross compile. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 -$as_echo_n "checking whether we are cross compiling... " >&6; } -if test "$cross_compiling" != yes; then - { { ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_link") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } - if { ac_try='./conftest$ac_cv_exeext' - { { case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; }; then - cross_compiling=no - else - if test "$cross_compiling" = maybe; then - cross_compiling=yes - else - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "cannot run C compiled programs. -If you meant to cross compile, use \`--host'. -See \`config.log' for more details" "$LINENO" 5; } - fi - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 -$as_echo "$cross_compiling" >&6; } - -rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out -ac_clean_files=$ac_clean_files_save -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 -$as_echo_n "checking for suffix of object files... " >&6; } -if ${ac_cv_objext+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.o conftest.obj -if { { ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_compile") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then : - for ac_file in conftest.o conftest.obj conftest.*; do - test -f "$ac_file" || continue; - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; - *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` - break;; - esac -done -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "cannot compute suffix of object files: cannot compile -See \`config.log' for more details" "$LINENO" 5; } -fi -rm -f conftest.$ac_cv_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 -$as_echo "$ac_cv_objext" >&6; } -OBJEXT=$ac_cv_objext -ac_objext=$OBJEXT -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 -$as_echo_n "checking whether we are using the GNU C compiler... " >&6; } -if ${ac_cv_c_compiler_gnu+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ -#ifndef __GNUC__ - choke me -#endif - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_compiler_gnu=yes -else - ac_compiler_gnu=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -ac_cv_c_compiler_gnu=$ac_compiler_gnu - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 -$as_echo "$ac_cv_c_compiler_gnu" >&6; } -if test $ac_compiler_gnu = yes; then - GCC=yes -else - GCC= -fi -ac_test_CFLAGS=${CFLAGS+set} -ac_save_CFLAGS=$CFLAGS -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 -$as_echo_n "checking whether $CC accepts -g... " >&6; } -if ${ac_cv_prog_cc_g+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_save_c_werror_flag=$ac_c_werror_flag - ac_c_werror_flag=yes - ac_cv_prog_cc_g=no - CFLAGS="-g" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_prog_cc_g=yes -else - CFLAGS="" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - -else - ac_c_werror_flag=$ac_save_c_werror_flag - CFLAGS="-g" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_prog_cc_g=yes -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - ac_c_werror_flag=$ac_save_c_werror_flag -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 -$as_echo "$ac_cv_prog_cc_g" >&6; } -if test "$ac_test_CFLAGS" = set; then - CFLAGS=$ac_save_CFLAGS -elif test $ac_cv_prog_cc_g = yes; then - if test "$GCC" = yes; then - CFLAGS="-g -O2" - else - CFLAGS="-g" - fi -else - if test "$GCC" = yes; then - CFLAGS="-O2" - else - CFLAGS= - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 -$as_echo_n "checking for $CC option to accept ISO C89... " >&6; } -if ${ac_cv_prog_cc_c89+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_cv_prog_cc_c89=no -ac_save_CC=$CC -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include -struct stat; -/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ -struct buf { int x; }; -FILE * (*rcsopen) (struct buf *, struct stat *, int); -static char *e (p, i) - char **p; - int i; -{ - return p[i]; -} -static char *f (char * (*g) (char **, int), char **p, ...) -{ - char *s; - va_list v; - va_start (v,p); - s = g (p, va_arg (v,int)); - va_end (v); - return s; -} - -/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has - function prototypes and stuff, but not '\xHH' hex character constants. - These don't provoke an error unfortunately, instead are silently treated - as 'x'. The following induces an error, until -std is added to get - proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an - array size at least. It's necessary to write '\x00'==0 to get something - that's true only with -std. */ -int osf4_cc_array ['\x00' == 0 ? 1 : -1]; - -/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters - inside strings and character constants. */ -#define FOO(x) 'x' -int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; - -int test (int i, double x); -struct s1 {int (*f) (int a);}; -struct s2 {int (*f) (double a);}; -int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); -int argc; -char **argv; -int -main () -{ -return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; - ; - return 0; -} -_ACEOF -for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ - -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" -do - CC="$ac_save_CC $ac_arg" - if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_prog_cc_c89=$ac_arg -fi -rm -f core conftest.err conftest.$ac_objext - test "x$ac_cv_prog_cc_c89" != "xno" && break -done -rm -f conftest.$ac_ext -CC=$ac_save_CC - -fi -# AC_CACHE_VAL -case "x$ac_cv_prog_cc_c89" in - x) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 -$as_echo "none needed" >&6; } ;; - xno) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 -$as_echo "unsupported" >&6; } ;; - *) - CC="$CC $ac_cv_prog_cc_c89" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 -$as_echo "$ac_cv_prog_cc_c89" >&6; } ;; -esac -if test "x$ac_cv_prog_cc_c89" != xno; then : - -fi - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - -depcc="$CC" am_compiler_list= - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 -$as_echo_n "checking dependency style of $depcc... " >&6; } -if ${am_cv_CC_dependencies_compiler_type+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then - # We make a subdir and do the tests there. Otherwise we can end up - # making bogus files that we don't know about and never remove. For - # instance it was reported that on HP-UX the gcc test will end up - # making a dummy file named 'D' -- because '-MD' means "put the output - # in D". - rm -rf conftest.dir - mkdir conftest.dir - # Copy depcomp to subdir because otherwise we won't find it if we're - # using a relative directory. - cp "$am_depcomp" conftest.dir - cd conftest.dir - # We will build objects and dependencies in a subdirectory because - # it helps to detect inapplicable dependency modes. For instance - # both Tru64's cc and ICC support -MD to output dependencies as a - # side effect of compilation, but ICC will put the dependencies in - # the current directory while Tru64 will put them in the object - # directory. - mkdir sub - - am_cv_CC_dependencies_compiler_type=none - if test "$am_compiler_list" = ""; then - am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` - fi - am__universal=false - case " $depcc " in #( - *\ -arch\ *\ -arch\ *) am__universal=true ;; - esac - - for depmode in $am_compiler_list; do - # Setup a source with many dependencies, because some compilers - # like to wrap large dependency lists on column 80 (with \), and - # we should not choose a depcomp mode which is confused by this. - # - # We need to recreate these files for each test, as the compiler may - # overwrite some of them when testing with obscure command lines. - # This happens at least with the AIX C compiler. - : > sub/conftest.c - for i in 1 2 3 4 5 6; do - echo '#include "conftst'$i'.h"' >> sub/conftest.c - # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with - # Solaris 10 /bin/sh. - echo '/* dummy */' > sub/conftst$i.h - done - echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf - - # We check with '-c' and '-o' for the sake of the "dashmstdout" - # mode. It turns out that the SunPro C++ compiler does not properly - # handle '-M -o', and we need to detect this. Also, some Intel - # versions had trouble with output in subdirs. - am__obj=sub/conftest.${OBJEXT-o} - am__minus_obj="-o $am__obj" - case $depmode in - gcc) - # This depmode causes a compiler race in universal mode. - test "$am__universal" = false || continue - ;; - nosideeffect) - # After this tag, mechanisms are not by side-effect, so they'll - # only be used when explicitly requested. - if test "x$enable_dependency_tracking" = xyes; then - continue - else - break - fi - ;; - msvc7 | msvc7msys | msvisualcpp | msvcmsys) - # This compiler won't grok '-c -o', but also, the minuso test has - # not run yet. These depmodes are late enough in the game, and - # so weak that their functioning should not be impacted. - am__obj=conftest.${OBJEXT-o} - am__minus_obj= - ;; - none) break ;; - esac - if depmode=$depmode \ - source=sub/conftest.c object=$am__obj \ - depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ - $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ - >/dev/null 2>conftest.err && - grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && - grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && - grep $am__obj sub/conftest.Po > /dev/null 2>&1 && - ${MAKE-make} -s -f confmf > /dev/null 2>&1; then - # icc doesn't choke on unknown options, it will just issue warnings - # or remarks (even with -Werror). So we grep stderr for any message - # that says an option was ignored or not supported. - # When given -MP, icc 7.0 and 7.1 complain thusly: - # icc: Command line warning: ignoring option '-M'; no argument required - # The diagnosis changed in icc 8.0: - # icc: Command line remark: option '-MP' not supported - if (grep 'ignoring option' conftest.err || - grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else - am_cv_CC_dependencies_compiler_type=$depmode - break - fi - fi - done - - cd .. - rm -rf conftest.dir -else - am_cv_CC_dependencies_compiler_type=none -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5 -$as_echo "$am_cv_CC_dependencies_compiler_type" >&6; } -CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type - - if - test "x$enable_dependency_tracking" != xno \ - && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then - am__fastdepCC_TRUE= - am__fastdepCC_FALSE='#' -else - am__fastdepCC_TRUE='#' - am__fastdepCC_FALSE= -fi - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing strerror" >&5 -$as_echo_n "checking for library containing strerror... " >&6; } -if ${ac_cv_search_strerror+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char strerror (); -int -main () -{ -return strerror (); - ; - return 0; -} -_ACEOF -for ac_lib in '' cposix; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_strerror=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_strerror+:} false; then : - break -fi -done -if ${ac_cv_search_strerror+:} false; then : - -else - ac_cv_search_strerror=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_strerror" >&5 -$as_echo "$ac_cv_search_strerror" >&6; } -ac_res=$ac_cv_search_strerror -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - -fi - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu -if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. -set dummy ${ac_tool_prefix}gcc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_CC="${ac_tool_prefix}gcc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_CC"; then - ac_ct_CC=$CC - # Extract the first word of "gcc", so it can be a program name with args. -set dummy gcc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_CC"; then - ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_CC="gcc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_CC=$ac_cv_prog_ac_ct_CC -if test -n "$ac_ct_CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 -$as_echo "$ac_ct_CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_CC" = x; then - CC="" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - CC=$ac_ct_CC - fi -else - CC="$ac_cv_prog_CC" -fi - -if test -z "$CC"; then - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. -set dummy ${ac_tool_prefix}cc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_CC="${ac_tool_prefix}cc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - fi -fi -if test -z "$CC"; then - # Extract the first word of "cc", so it can be a program name with args. -set dummy cc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else - ac_prog_rejected=no -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then - ac_prog_rejected=yes - continue - fi - ac_cv_prog_CC="cc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -if test $ac_prog_rejected = yes; then - # We found a bogon in the path, so make sure we never use it. - set dummy $ac_cv_prog_CC - shift - if test $@%:@ != 0; then - # We chose a different compiler from the bogus one. - # However, it has the same basename, so the bogon will be chosen - # first if we set CC to just the basename; use the full file name. - shift - ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" - fi -fi -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$CC"; then - if test -n "$ac_tool_prefix"; then - for ac_prog in cl.exe - do - # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. -set dummy $ac_tool_prefix$ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_CC="$ac_tool_prefix$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$CC" && break - done -fi -if test -z "$CC"; then - ac_ct_CC=$CC - for ac_prog in cl.exe -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_CC"; then - ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_CC="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_CC=$ac_cv_prog_ac_ct_CC -if test -n "$ac_ct_CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 -$as_echo "$ac_ct_CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$ac_ct_CC" && break -done - - if test "x$ac_ct_CC" = x; then - CC="" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - CC=$ac_ct_CC - fi -fi - -fi - - -test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "no acceptable C compiler found in \$PATH -See \`config.log' for more details" "$LINENO" 5; } - -# Provide some information about the compiler. -$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 -set X $ac_compile -ac_compiler=$2 -for ac_option in --version -v -V -qversion; do - { { ac_try="$ac_compiler $ac_option >&5" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_compiler $ac_option >&5") 2>conftest.err - ac_status=$? - if test -s conftest.err; then - sed '10a\ -... rest of stderr output deleted ... - 10q' conftest.err >conftest.er1 - cat conftest.er1 >&5 - fi - rm -f conftest.er1 conftest.err - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } -done - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 -$as_echo_n "checking whether we are using the GNU C compiler... " >&6; } -if ${ac_cv_c_compiler_gnu+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ -#ifndef __GNUC__ - choke me -#endif - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_compiler_gnu=yes -else - ac_compiler_gnu=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -ac_cv_c_compiler_gnu=$ac_compiler_gnu - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 -$as_echo "$ac_cv_c_compiler_gnu" >&6; } -if test $ac_compiler_gnu = yes; then - GCC=yes -else - GCC= -fi -ac_test_CFLAGS=${CFLAGS+set} -ac_save_CFLAGS=$CFLAGS -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 -$as_echo_n "checking whether $CC accepts -g... " >&6; } -if ${ac_cv_prog_cc_g+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_save_c_werror_flag=$ac_c_werror_flag - ac_c_werror_flag=yes - ac_cv_prog_cc_g=no - CFLAGS="-g" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_prog_cc_g=yes -else - CFLAGS="" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - -else - ac_c_werror_flag=$ac_save_c_werror_flag - CFLAGS="-g" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_prog_cc_g=yes -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - ac_c_werror_flag=$ac_save_c_werror_flag -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 -$as_echo "$ac_cv_prog_cc_g" >&6; } -if test "$ac_test_CFLAGS" = set; then - CFLAGS=$ac_save_CFLAGS -elif test $ac_cv_prog_cc_g = yes; then - if test "$GCC" = yes; then - CFLAGS="-g -O2" - else - CFLAGS="-g" - fi -else - if test "$GCC" = yes; then - CFLAGS="-O2" - else - CFLAGS= - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 -$as_echo_n "checking for $CC option to accept ISO C89... " >&6; } -if ${ac_cv_prog_cc_c89+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_cv_prog_cc_c89=no -ac_save_CC=$CC -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include -struct stat; -/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ -struct buf { int x; }; -FILE * (*rcsopen) (struct buf *, struct stat *, int); -static char *e (p, i) - char **p; - int i; -{ - return p[i]; -} -static char *f (char * (*g) (char **, int), char **p, ...) -{ - char *s; - va_list v; - va_start (v,p); - s = g (p, va_arg (v,int)); - va_end (v); - return s; -} - -/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has - function prototypes and stuff, but not '\xHH' hex character constants. - These don't provoke an error unfortunately, instead are silently treated - as 'x'. The following induces an error, until -std is added to get - proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an - array size at least. It's necessary to write '\x00'==0 to get something - that's true only with -std. */ -int osf4_cc_array ['\x00' == 0 ? 1 : -1]; - -/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters - inside strings and character constants. */ -#define FOO(x) 'x' -int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; - -int test (int i, double x); -struct s1 {int (*f) (int a);}; -struct s2 {int (*f) (double a);}; -int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); -int argc; -char **argv; -int -main () -{ -return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; - ; - return 0; -} -_ACEOF -for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ - -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" -do - CC="$ac_save_CC $ac_arg" - if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_prog_cc_c89=$ac_arg -fi -rm -f core conftest.err conftest.$ac_objext - test "x$ac_cv_prog_cc_c89" != "xno" && break -done -rm -f conftest.$ac_ext -CC=$ac_save_CC - -fi -# AC_CACHE_VAL -case "x$ac_cv_prog_cc_c89" in - x) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 -$as_echo "none needed" >&6; } ;; - xno) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 -$as_echo "unsupported" >&6; } ;; - *) - CC="$CC $ac_cv_prog_cc_c89" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 -$as_echo "$ac_cv_prog_cc_c89" >&6; } ;; -esac -if test "x$ac_cv_prog_cc_c89" != xno; then : - -fi - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - -depcc="$CC" am_compiler_list= - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 -$as_echo_n "checking dependency style of $depcc... " >&6; } -if ${am_cv_CC_dependencies_compiler_type+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then - # We make a subdir and do the tests there. Otherwise we can end up - # making bogus files that we don't know about and never remove. For - # instance it was reported that on HP-UX the gcc test will end up - # making a dummy file named 'D' -- because '-MD' means "put the output - # in D". - rm -rf conftest.dir - mkdir conftest.dir - # Copy depcomp to subdir because otherwise we won't find it if we're - # using a relative directory. - cp "$am_depcomp" conftest.dir - cd conftest.dir - # We will build objects and dependencies in a subdirectory because - # it helps to detect inapplicable dependency modes. For instance - # both Tru64's cc and ICC support -MD to output dependencies as a - # side effect of compilation, but ICC will put the dependencies in - # the current directory while Tru64 will put them in the object - # directory. - mkdir sub - - am_cv_CC_dependencies_compiler_type=none - if test "$am_compiler_list" = ""; then - am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` - fi - am__universal=false - case " $depcc " in #( - *\ -arch\ *\ -arch\ *) am__universal=true ;; - esac - - for depmode in $am_compiler_list; do - # Setup a source with many dependencies, because some compilers - # like to wrap large dependency lists on column 80 (with \), and - # we should not choose a depcomp mode which is confused by this. - # - # We need to recreate these files for each test, as the compiler may - # overwrite some of them when testing with obscure command lines. - # This happens at least with the AIX C compiler. - : > sub/conftest.c - for i in 1 2 3 4 5 6; do - echo '#include "conftst'$i'.h"' >> sub/conftest.c - # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with - # Solaris 10 /bin/sh. - echo '/* dummy */' > sub/conftst$i.h - done - echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf - - # We check with '-c' and '-o' for the sake of the "dashmstdout" - # mode. It turns out that the SunPro C++ compiler does not properly - # handle '-M -o', and we need to detect this. Also, some Intel - # versions had trouble with output in subdirs. - am__obj=sub/conftest.${OBJEXT-o} - am__minus_obj="-o $am__obj" - case $depmode in - gcc) - # This depmode causes a compiler race in universal mode. - test "$am__universal" = false || continue - ;; - nosideeffect) - # After this tag, mechanisms are not by side-effect, so they'll - # only be used when explicitly requested. - if test "x$enable_dependency_tracking" = xyes; then - continue - else - break - fi - ;; - msvc7 | msvc7msys | msvisualcpp | msvcmsys) - # This compiler won't grok '-c -o', but also, the minuso test has - # not run yet. These depmodes are late enough in the game, and - # so weak that their functioning should not be impacted. - am__obj=conftest.${OBJEXT-o} - am__minus_obj= - ;; - none) break ;; - esac - if depmode=$depmode \ - source=sub/conftest.c object=$am__obj \ - depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ - $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ - >/dev/null 2>conftest.err && - grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && - grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && - grep $am__obj sub/conftest.Po > /dev/null 2>&1 && - ${MAKE-make} -s -f confmf > /dev/null 2>&1; then - # icc doesn't choke on unknown options, it will just issue warnings - # or remarks (even with -Werror). So we grep stderr for any message - # that says an option was ignored or not supported. - # When given -MP, icc 7.0 and 7.1 complain thusly: - # icc: Command line warning: ignoring option '-M'; no argument required - # The diagnosis changed in icc 8.0: - # icc: Command line remark: option '-MP' not supported - if (grep 'ignoring option' conftest.err || - grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else - am_cv_CC_dependencies_compiler_type=$depmode - break - fi - fi - done - - cd .. - rm -rf conftest.dir -else - am_cv_CC_dependencies_compiler_type=none -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5 -$as_echo "$am_cv_CC_dependencies_compiler_type" >&6; } -CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type - - if - test "x$enable_dependency_tracking" != xno \ - && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then - am__fastdepCC_TRUE= - am__fastdepCC_FALSE='#' -else - am__fastdepCC_TRUE='#' - am__fastdepCC_FALSE= -fi - - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 -$as_echo_n "checking how to run the C preprocessor... " >&6; } -# On Suns, sometimes $CPP names a directory. -if test -n "$CPP" && test -d "$CPP"; then - CPP= -fi -if test -z "$CPP"; then - if ${ac_cv_prog_CPP+:} false; then : - $as_echo_n "(cached) " >&6 -else - # Double quotes because CPP needs to be expanded - for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" - do - ac_preproc_ok=false -for ac_c_preproc_warn_flag in '' yes -do - # Use a header file that comes with gcc, so configuring glibc - # with a fresh cross-compiler works. - # Prefer to if __STDC__ is defined, since - # exists even on freestanding compilers. - # On the NeXT, cc -E runs the code through the compiler's parser, - # not just through cpp. "Syntax error" is here to catch this case. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -@%:@ifdef __STDC__ -@%:@ include -@%:@else -@%:@ include -@%:@endif - Syntax error -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - -else - # Broken: fails on valid input. -continue -fi -rm -f conftest.err conftest.i conftest.$ac_ext - - # OK, works on sane cases. Now check whether nonexistent headers - # can be detected and how. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -@%:@include -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - # Broken: success on invalid input. -continue -else - # Passes both tests. -ac_preproc_ok=: -break -fi -rm -f conftest.err conftest.i conftest.$ac_ext - -done -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -f conftest.i conftest.err conftest.$ac_ext -if $ac_preproc_ok; then : - break -fi - - done - ac_cv_prog_CPP=$CPP - -fi - CPP=$ac_cv_prog_CPP -else - ac_cv_prog_CPP=$CPP -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 -$as_echo "$CPP" >&6; } -ac_preproc_ok=false -for ac_c_preproc_warn_flag in '' yes -do - # Use a header file that comes with gcc, so configuring glibc - # with a fresh cross-compiler works. - # Prefer to if __STDC__ is defined, since - # exists even on freestanding compilers. - # On the NeXT, cc -E runs the code through the compiler's parser, - # not just through cpp. "Syntax error" is here to catch this case. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -@%:@ifdef __STDC__ -@%:@ include -@%:@else -@%:@ include -@%:@endif - Syntax error -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - -else - # Broken: fails on valid input. -continue -fi -rm -f conftest.err conftest.i conftest.$ac_ext - - # OK, works on sane cases. Now check whether nonexistent headers - # can be detected and how. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -@%:@include -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - # Broken: success on invalid input. -continue -else - # Passes both tests. -ac_preproc_ok=: -break -fi -rm -f conftest.err conftest.i conftest.$ac_ext - -done -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -f conftest.i conftest.err conftest.$ac_ext -if $ac_preproc_ok; then : - -else - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "C preprocessor \"$CPP\" fails sanity check -See \`config.log' for more details" "$LINENO" 5; } -fi - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 -$as_echo_n "checking for grep that handles long lines and -e... " >&6; } -if ${ac_cv_path_GREP+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -z "$GREP"; then - ac_path_GREP_found=false - # Loop through the user's path and test for each of PROGNAME-LIST - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_prog in grep ggrep; do - for ac_exec_ext in '' $ac_executable_extensions; do - ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" - as_fn_executable_p "$ac_path_GREP" || continue -# Check for GNU ac_path_GREP and select it if it is found. - # Check for GNU $ac_path_GREP -case `"$ac_path_GREP" --version 2>&1` in -*GNU*) - ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; -*) - ac_count=0 - $as_echo_n 0123456789 >"conftest.in" - while : - do - cat "conftest.in" "conftest.in" >"conftest.tmp" - mv "conftest.tmp" "conftest.in" - cp "conftest.in" "conftest.nl" - $as_echo 'GREP' >> "conftest.nl" - "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break - diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break - as_fn_arith $ac_count + 1 && ac_count=$as_val - if test $ac_count -gt ${ac_path_GREP_max-0}; then - # Best one so far, save it but keep looking for a better one - ac_cv_path_GREP="$ac_path_GREP" - ac_path_GREP_max=$ac_count - fi - # 10*(2^10) chars as input seems more than enough - test $ac_count -gt 10 && break - done - rm -f conftest.in conftest.tmp conftest.nl conftest.out;; -esac - - $ac_path_GREP_found && break 3 - done - done - done -IFS=$as_save_IFS - if test -z "$ac_cv_path_GREP"; then - as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 - fi -else - ac_cv_path_GREP=$GREP -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 -$as_echo "$ac_cv_path_GREP" >&6; } - GREP="$ac_cv_path_GREP" - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 -$as_echo_n "checking for egrep... " >&6; } -if ${ac_cv_path_EGREP+:} false; then : - $as_echo_n "(cached) " >&6 -else - if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 - then ac_cv_path_EGREP="$GREP -E" - else - if test -z "$EGREP"; then - ac_path_EGREP_found=false - # Loop through the user's path and test for each of PROGNAME-LIST - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_prog in egrep; do - for ac_exec_ext in '' $ac_executable_extensions; do - ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" - as_fn_executable_p "$ac_path_EGREP" || continue -# Check for GNU ac_path_EGREP and select it if it is found. - # Check for GNU $ac_path_EGREP -case `"$ac_path_EGREP" --version 2>&1` in -*GNU*) - ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; -*) - ac_count=0 - $as_echo_n 0123456789 >"conftest.in" - while : - do - cat "conftest.in" "conftest.in" >"conftest.tmp" - mv "conftest.tmp" "conftest.in" - cp "conftest.in" "conftest.nl" - $as_echo 'EGREP' >> "conftest.nl" - "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break - diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break - as_fn_arith $ac_count + 1 && ac_count=$as_val - if test $ac_count -gt ${ac_path_EGREP_max-0}; then - # Best one so far, save it but keep looking for a better one - ac_cv_path_EGREP="$ac_path_EGREP" - ac_path_EGREP_max=$ac_count - fi - # 10*(2^10) chars as input seems more than enough - test $ac_count -gt 10 && break - done - rm -f conftest.in conftest.tmp conftest.nl conftest.out;; -esac - - $ac_path_EGREP_found && break 3 - done - done - done -IFS=$as_save_IFS - if test -z "$ac_cv_path_EGREP"; then - as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 - fi -else - ac_cv_path_EGREP=$EGREP -fi - - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 -$as_echo "$ac_cv_path_EGREP" >&6; } - EGREP="$ac_cv_path_EGREP" - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 -$as_echo_n "checking for ANSI C header files... " >&6; } -if ${ac_cv_header_stdc+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include -#include -#include - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_header_stdc=yes -else - ac_cv_header_stdc=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -if test $ac_cv_header_stdc = yes; then - # SunOS 4.x string.h does not declare mem*, contrary to ANSI. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "memchr" >/dev/null 2>&1; then : - -else - ac_cv_header_stdc=no -fi -rm -f conftest* - -fi - -if test $ac_cv_header_stdc = yes; then - # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "free" >/dev/null 2>&1; then : - -else - ac_cv_header_stdc=no -fi -rm -f conftest* - -fi - -if test $ac_cv_header_stdc = yes; then - # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. - if test "$cross_compiling" = yes; then : - : -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include -#if ((' ' & 0x0FF) == 0x020) -# define ISLOWER(c) ('a' <= (c) && (c) <= 'z') -# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) -#else -# define ISLOWER(c) \ - (('a' <= (c) && (c) <= 'i') \ - || ('j' <= (c) && (c) <= 'r') \ - || ('s' <= (c) && (c) <= 'z')) -# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) -#endif - -#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) -int -main () -{ - int i; - for (i = 0; i < 256; i++) - if (XOR (islower (i), ISLOWER (i)) - || toupper (i) != TOUPPER (i)) - return 2; - return 0; -} -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - -else - ac_cv_header_stdc=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - -fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 -$as_echo "$ac_cv_header_stdc" >&6; } -if test $ac_cv_header_stdc = yes; then - -$as_echo "@%:@define STDC_HEADERS 1" >>confdefs.h - -fi - - -# Make sure we can run config.sub. -$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || - as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5 - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 -$as_echo_n "checking build system type... " >&6; } -if ${ac_cv_build+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_build_alias=$build_alias -test "x$ac_build_alias" = x && - ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` -test "x$ac_build_alias" = x && - as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5 -ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || - as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5 - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5 -$as_echo "$ac_cv_build" >&6; } -case $ac_cv_build in -*-*-*) ;; -*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;; -esac -build=$ac_cv_build -ac_save_IFS=$IFS; IFS='-' -set x $ac_cv_build -shift -build_cpu=$1 -build_vendor=$2 -shift; shift -# Remember, the first character of IFS is used to create $*, -# except with old shells: -build_os=$* -IFS=$ac_save_IFS -case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5 -$as_echo_n "checking host system type... " >&6; } -if ${ac_cv_host+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "x$host_alias" = x; then - ac_cv_host=$ac_cv_build -else - ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || - as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5 -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5 -$as_echo "$ac_cv_host" >&6; } -case $ac_cv_host in -*-*-*) ;; -*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;; -esac -host=$ac_cv_host -ac_save_IFS=$IFS; IFS='-' -set x $ac_cv_host -shift -host_cpu=$1 -host_vendor=$2 -shift; shift -# Remember, the first character of IFS is used to create $*, -# except with old shells: -host_os=$* -IFS=$ac_save_IFS -case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac - - - - - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - -acx_pthread_ok=no - -# We used to check for pthread.h first, but this fails if pthread.h -# requires special compiler flags (e.g. on True64 or Sequent). -# It gets checked for in the link test anyway. - -# First of all, check if the user has set any of the PTHREAD_LIBS, -# etcetera environment variables, and if threads linking works using -# them: -if test x"$PTHREAD_LIBS$PTHREAD_CFLAGS" != x; then - save_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS $PTHREAD_CFLAGS" - save_LIBS="$LIBS" - LIBS="$PTHREAD_LIBS $LIBS" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread_join in LIBS=$PTHREAD_LIBS with CFLAGS=$PTHREAD_CFLAGS" >&5 -$as_echo_n "checking for pthread_join in LIBS=$PTHREAD_LIBS with CFLAGS=$PTHREAD_CFLAGS... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char pthread_join (); -int -main () -{ -return pthread_join (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - acx_pthread_ok=yes -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $acx_pthread_ok" >&5 -$as_echo "$acx_pthread_ok" >&6; } - if test x"$acx_pthread_ok" = xno; then - PTHREAD_LIBS="" - PTHREAD_CFLAGS="" - fi - LIBS="$save_LIBS" - CFLAGS="$save_CFLAGS" -fi - -# We must check for the threads library under a number of different -# names; the ordering is very important because some systems -# (e.g. DEC) have both -lpthread and -lpthreads, where one of the -# libraries is broken (non-POSIX). - -# Create a list of thread flags to try. Items starting with a "-" are -# C compiler flags, and other items are library names, except for "none" -# which indicates that we try without any flags at all, and "pthread-config" -# which is a program returning the flags for the Pth emulation library. - -acx_pthread_flags="pthreads none -Kthread -kthread lthread -pthread -pthreads -mthreads pthread --thread-safe -mt pthread-config" - -# The ordering *is* (sometimes) important. Some notes on the -# individual items follow: - -# pthreads: AIX (must check this before -lpthread) -# none: in case threads are in libc; should be tried before -Kthread and -# other compiler flags to prevent continual compiler warnings -# -Kthread: Sequent (threads in libc, but -Kthread needed for pthread.h) -# -kthread: FreeBSD kernel threads (preferred to -pthread since SMP-able) -# lthread: LinuxThreads port on FreeBSD (also preferred to -pthread) -# -pthread: Linux/gcc (kernel threads), BSD/gcc (userland threads) -# -pthreads: Solaris/gcc -# -mthreads: Mingw32/gcc, Lynx/gcc -# -mt: Sun Workshop C (may only link SunOS threads [-lthread], but it -# doesn't hurt to check since this sometimes defines pthreads too; -# also defines -D_REENTRANT) -# ... -mt is also the pthreads flag for HP/aCC -# pthread: Linux, etcetera -# --thread-safe: KAI C++ -# pthread-config: use pthread-config program (for GNU Pth library) - -case "${host_cpu}-${host_os}" in - *solaris*) - - # On Solaris (at least, for some versions), libc contains stubbed - # (non-functional) versions of the pthreads routines, so link-based - # tests will erroneously succeed. (We need to link with -pthreads/-mt/ - # -lpthread.) (The stubs are missing pthread_cleanup_push, or rather - # a function called by this macro, so we could check for that, but - # who knows whether they'll stub that too in a future libc.) So, - # we'll just look for -pthreads and -lpthread first: - - acx_pthread_flags="-pthreads pthread -mt -pthread $acx_pthread_flags" - ;; -esac - -if test x"$acx_pthread_ok" = xno; then -for flag in $acx_pthread_flags; do - - case $flag in - none) - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether pthreads work without any flags" >&5 -$as_echo_n "checking whether pthreads work without any flags... " >&6; } - ;; - - -*) - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether pthreads work with $flag" >&5 -$as_echo_n "checking whether pthreads work with $flag... " >&6; } - PTHREAD_CFLAGS="$flag" - ;; - - pthread-config) - # Extract the first word of "pthread-config", so it can be a program name with args. -set dummy pthread-config; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_acx_pthread_config+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$acx_pthread_config"; then - ac_cv_prog_acx_pthread_config="$acx_pthread_config" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_acx_pthread_config="yes" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - test -z "$ac_cv_prog_acx_pthread_config" && ac_cv_prog_acx_pthread_config="no" -fi -fi -acx_pthread_config=$ac_cv_prog_acx_pthread_config -if test -n "$acx_pthread_config"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $acx_pthread_config" >&5 -$as_echo "$acx_pthread_config" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - if test x"$acx_pthread_config" = xno; then continue; fi - PTHREAD_CFLAGS="`pthread-config --cflags`" - PTHREAD_LIBS="`pthread-config --ldflags` `pthread-config --libs`" - ;; - - *) - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for the pthreads library -l$flag" >&5 -$as_echo_n "checking for the pthreads library -l$flag... " >&6; } - PTHREAD_LIBS="-l$flag" - ;; - esac - - save_LIBS="$LIBS" - save_CFLAGS="$CFLAGS" - LIBS="$PTHREAD_LIBS $LIBS" - CFLAGS="$CFLAGS $PTHREAD_CFLAGS" - - # Check for various functions. We must include pthread.h, - # since some functions may be macros. (On the Sequent, we - # need a special flag -Kthread to make this header compile.) - # We check for pthread_join because it is in -lpthread on IRIX - # while pthread_create is in libc. We check for pthread_attr_init - # due to DEC craziness with -lpthreads. We check for - # pthread_cleanup_push because it is one of the few pthread - # functions on Solaris that doesn't have a non-functional libc stub. - # We try pthread_create on general principles. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main () -{ -pthread_t th; pthread_join(th, 0); - pthread_attr_init(0); pthread_cleanup_push(0, 0); - pthread_create(0,0,0,0); pthread_cleanup_pop(0); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - acx_pthread_ok=yes -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - - LIBS="$save_LIBS" - CFLAGS="$save_CFLAGS" - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $acx_pthread_ok" >&5 -$as_echo "$acx_pthread_ok" >&6; } - if test "x$acx_pthread_ok" = xyes; then - break; - fi - - PTHREAD_LIBS="" - PTHREAD_CFLAGS="" -done -fi - -# Various other checks: -if test "x$acx_pthread_ok" = xyes; then - save_LIBS="$LIBS" - LIBS="$PTHREAD_LIBS $LIBS" - save_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS $PTHREAD_CFLAGS" - - # Detect AIX lossage: JOINABLE attribute is called UNDETACHED. - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for joinable pthread attribute" >&5 -$as_echo_n "checking for joinable pthread attribute... " >&6; } - attr_name=unknown - for attr in PTHREAD_CREATE_JOINABLE PTHREAD_CREATE_UNDETACHED; do - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main () -{ -int attr=$attr; return attr; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - attr_name=$attr; break -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - done - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $attr_name" >&5 -$as_echo "$attr_name" >&6; } - if test "$attr_name" != PTHREAD_CREATE_JOINABLE; then - -cat >>confdefs.h <<_ACEOF -@%:@define PTHREAD_CREATE_JOINABLE $attr_name -_ACEOF - - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if more special flags are required for pthreads" >&5 -$as_echo_n "checking if more special flags are required for pthreads... " >&6; } - flag=no - case "${host_cpu}-${host_os}" in - *-aix* | *-freebsd* | *-darwin*) flag="-D_THREAD_SAFE";; - *solaris* | *-osf* | *-hpux*) flag="-D_REENTRANT";; - esac - { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${flag}" >&5 -$as_echo "${flag}" >&6; } - if test "x$flag" != xno; then - PTHREAD_CFLAGS="$flag $PTHREAD_CFLAGS" - fi - - LIBS="$save_LIBS" - CFLAGS="$save_CFLAGS" - - # More AIX lossage: must compile with xlc_r or cc_r - if test x"$GCC" != xyes; then - for ac_prog in xlc_r cc_r -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_PTHREAD_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$PTHREAD_CC"; then - ac_cv_prog_PTHREAD_CC="$PTHREAD_CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_PTHREAD_CC="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -PTHREAD_CC=$ac_cv_prog_PTHREAD_CC -if test -n "$PTHREAD_CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PTHREAD_CC" >&5 -$as_echo "$PTHREAD_CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$PTHREAD_CC" && break -done -test -n "$PTHREAD_CC" || PTHREAD_CC="${CC}" - - else - PTHREAD_CC=$CC - fi -else - PTHREAD_CC="$CC" -fi - - - - - -# Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND: -if test x"$acx_pthread_ok" = xyes; then - -$as_echo "@%:@define HAVE_PTHREAD 1" >>confdefs.h - - : -else - acx_pthread_ok=no - -fi -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - - - - - - - -# The comment about adding -g to $CFLAGS is unclear. Autoconf tries to add -# a -g flag; we remove it if the user's $CFLAGS was not set and debugging is -# disabled. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if you specifically want to enable debug-code -g" >&5 -$as_echo_n "checking if you specifically want to enable debug-code -g... " >&6; } -@%:@ Check whether --enable-debug was given. -if test "${enable_debug+set}" = set; then : - enableval=$enable_debug; enable_debug=yes -else - enable_debug=no -fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_debug" >&5 -$as_echo "$enable_debug" >&6; } - -if test "x$enable_debug" = "xyes" ; then - test -z "$ORIGINAL_CFLAGS" && CFLAGS=`echo ${CFLAGS} | sed -e 's/-O[1-9]\? //' -e 's/-O[1-9]\?$//'` - if test "$CC" = gcc; then - CFLAGS="$CFLAGS -g" - fi -#else -# CF_STRIP_G_OPT(CFLAGS) -fi - - - -GETTEXT_PACKAGE=guvcview - - -cat >>confdefs.h <<_ACEOF -@%:@define GETTEXT_PACKAGE "$GETTEXT_PACKAGE" -_ACEOF - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether NLS is requested" >&5 -$as_echo_n "checking whether NLS is requested... " >&6; } - @%:@ Check whether --enable-nls was given. -if test "${enable_nls+set}" = set; then : - enableval=$enable_nls; USE_NLS=$enableval -else - USE_NLS=yes -fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_NLS" >&5 -$as_echo "$USE_NLS" >&6; } - - - - -case "$am__api_version" in - 1.01234) - as_fn_error $? "Automake 1.5 or newer is required to use intltool" "$LINENO" 5 - ;; - *) - ;; -esac - -if test -n "0.40"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for intltool >= 0.40" >&5 -$as_echo_n "checking for intltool >= 0.40... " >&6; } - - INTLTOOL_REQUIRED_VERSION_AS_INT=`echo 0.40 | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'` - INTLTOOL_APPLIED_VERSION=`intltool-update --version | head -1 | cut -d" " -f3` - INTLTOOL_APPLIED_VERSION_AS_INT=`echo $INTLTOOL_APPLIED_VERSION | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'` - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_APPLIED_VERSION found" >&5 -$as_echo "$INTLTOOL_APPLIED_VERSION found" >&6; } - test "$INTLTOOL_APPLIED_VERSION_AS_INT" -ge "$INTLTOOL_REQUIRED_VERSION_AS_INT" || - as_fn_error $? "Your intltool is too old. You need intltool 0.40 or later." "$LINENO" 5 -fi - -# Extract the first word of "intltool-update", so it can be a program name with args. -set dummy intltool-update; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_INTLTOOL_UPDATE+:} false; then : - $as_echo_n "(cached) " >&6 -else - case $INTLTOOL_UPDATE in - [\\/]* | ?:[\\/]*) - ac_cv_path_INTLTOOL_UPDATE="$INTLTOOL_UPDATE" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_INTLTOOL_UPDATE="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - ;; -esac -fi -INTLTOOL_UPDATE=$ac_cv_path_INTLTOOL_UPDATE -if test -n "$INTLTOOL_UPDATE"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_UPDATE" >&5 -$as_echo "$INTLTOOL_UPDATE" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -# Extract the first word of "intltool-merge", so it can be a program name with args. -set dummy intltool-merge; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_INTLTOOL_MERGE+:} false; then : - $as_echo_n "(cached) " >&6 -else - case $INTLTOOL_MERGE in - [\\/]* | ?:[\\/]*) - ac_cv_path_INTLTOOL_MERGE="$INTLTOOL_MERGE" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_INTLTOOL_MERGE="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - ;; -esac -fi -INTLTOOL_MERGE=$ac_cv_path_INTLTOOL_MERGE -if test -n "$INTLTOOL_MERGE"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_MERGE" >&5 -$as_echo "$INTLTOOL_MERGE" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -# Extract the first word of "intltool-extract", so it can be a program name with args. -set dummy intltool-extract; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_INTLTOOL_EXTRACT+:} false; then : - $as_echo_n "(cached) " >&6 -else - case $INTLTOOL_EXTRACT in - [\\/]* | ?:[\\/]*) - ac_cv_path_INTLTOOL_EXTRACT="$INTLTOOL_EXTRACT" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_INTLTOOL_EXTRACT="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - ;; -esac -fi -INTLTOOL_EXTRACT=$ac_cv_path_INTLTOOL_EXTRACT -if test -n "$INTLTOOL_EXTRACT"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_EXTRACT" >&5 -$as_echo "$INTLTOOL_EXTRACT" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -if test -z "$INTLTOOL_UPDATE" -o -z "$INTLTOOL_MERGE" -o -z "$INTLTOOL_EXTRACT"; then - as_fn_error $? "The intltool scripts were not found. Please install intltool." "$LINENO" 5 -fi - - INTLTOOL_DESKTOP_RULE='%.desktop: %.desktop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' -INTLTOOL_DIRECTORY_RULE='%.directory: %.directory.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' - INTLTOOL_KEYS_RULE='%.keys: %.keys.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -k -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' - INTLTOOL_PROP_RULE='%.prop: %.prop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' - INTLTOOL_OAF_RULE='%.oaf: %.oaf.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -o -p $(top_srcdir)/po $< $@' - INTLTOOL_PONG_RULE='%.pong: %.pong.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' - INTLTOOL_SERVER_RULE='%.server: %.server.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -o -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' - INTLTOOL_SHEET_RULE='%.sheet: %.sheet.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' -INTLTOOL_SOUNDLIST_RULE='%.soundlist: %.soundlist.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' - INTLTOOL_UI_RULE='%.ui: %.ui.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' - INTLTOOL_XML_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' - INTLTOOL_XML_NOMERGE_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u /tmp $< $@' - INTLTOOL_XAM_RULE='%.xam: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' - INTLTOOL_KBD_RULE='%.kbd: %.kbd.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -m -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' - INTLTOOL_CAVES_RULE='%.caves: %.caves.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' - INTLTOOL_SCHEMAS_RULE='%.schemas: %.schemas.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -s -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' - INTLTOOL_THEME_RULE='%.theme: %.theme.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' - INTLTOOL_SERVICE_RULE='%.service: %.service.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' - INTLTOOL_POLICY_RULE='%.policy: %.policy.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -# Check the gettext tools to make sure they are GNU -# Extract the first word of "xgettext", so it can be a program name with args. -set dummy xgettext; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_XGETTEXT+:} false; then : - $as_echo_n "(cached) " >&6 -else - case $XGETTEXT in - [\\/]* | ?:[\\/]*) - ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_XGETTEXT="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - ;; -esac -fi -XGETTEXT=$ac_cv_path_XGETTEXT -if test -n "$XGETTEXT"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XGETTEXT" >&5 -$as_echo "$XGETTEXT" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -# Extract the first word of "msgmerge", so it can be a program name with args. -set dummy msgmerge; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_MSGMERGE+:} false; then : - $as_echo_n "(cached) " >&6 -else - case $MSGMERGE in - [\\/]* | ?:[\\/]*) - ac_cv_path_MSGMERGE="$MSGMERGE" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_MSGMERGE="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - ;; -esac -fi -MSGMERGE=$ac_cv_path_MSGMERGE -if test -n "$MSGMERGE"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGMERGE" >&5 -$as_echo "$MSGMERGE" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -# Extract the first word of "msgfmt", so it can be a program name with args. -set dummy msgfmt; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_MSGFMT+:} false; then : - $as_echo_n "(cached) " >&6 -else - case $MSGFMT in - [\\/]* | ?:[\\/]*) - ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_MSGFMT="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - ;; -esac -fi -MSGFMT=$ac_cv_path_MSGFMT -if test -n "$MSGFMT"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGFMT" >&5 -$as_echo "$MSGFMT" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -# Extract the first word of "gmsgfmt", so it can be a program name with args. -set dummy gmsgfmt; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_GMSGFMT+:} false; then : - $as_echo_n "(cached) " >&6 -else - case $GMSGFMT in - [\\/]* | ?:[\\/]*) - ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_GMSGFMT="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT" - ;; -esac -fi -GMSGFMT=$ac_cv_path_GMSGFMT -if test -n "$GMSGFMT"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GMSGFMT" >&5 -$as_echo "$GMSGFMT" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -if test -z "$XGETTEXT" -o -z "$MSGMERGE" -o -z "$MSGFMT"; then - as_fn_error $? "GNU gettext tools not found; required for intltool" "$LINENO" 5 -fi -xgversion="`$XGETTEXT --version|grep '(GNU ' 2> /dev/null`" -mmversion="`$MSGMERGE --version|grep '(GNU ' 2> /dev/null`" -mfversion="`$MSGFMT --version|grep '(GNU ' 2> /dev/null`" -if test -z "$xgversion" -o -z "$mmversion" -o -z "$mfversion"; then - as_fn_error $? "GNU gettext tools not found; required for intltool" "$LINENO" 5 -fi - -# Extract the first word of "perl", so it can be a program name with args. -set dummy perl; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_INTLTOOL_PERL+:} false; then : - $as_echo_n "(cached) " >&6 -else - case $INTLTOOL_PERL in - [\\/]* | ?:[\\/]*) - ac_cv_path_INTLTOOL_PERL="$INTLTOOL_PERL" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_INTLTOOL_PERL="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - ;; -esac -fi -INTLTOOL_PERL=$ac_cv_path_INTLTOOL_PERL -if test -n "$INTLTOOL_PERL"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_PERL" >&5 -$as_echo "$INTLTOOL_PERL" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -if test -z "$INTLTOOL_PERL"; then - as_fn_error $? "perl not found" "$LINENO" 5 -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for perl >= 5.8.1" >&5 -$as_echo_n "checking for perl >= 5.8.1... " >&6; } -$INTLTOOL_PERL -e "use 5.8.1;" > /dev/null 2>&1 -if test $? -ne 0; then - as_fn_error $? "perl 5.8.1 is required for intltool" "$LINENO" 5 -else - IT_PERL_VERSION="`$INTLTOOL_PERL -e \"printf '%vd', $^V\"`" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $IT_PERL_VERSION" >&5 -$as_echo "$IT_PERL_VERSION" >&6; } -fi -if test "x" != "xno-xml"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XML::Parser" >&5 -$as_echo_n "checking for XML::Parser... " >&6; } - if `$INTLTOOL_PERL -e "require XML::Parser" 2>/dev/null`; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5 -$as_echo "ok" >&6; } - else - as_fn_error $? "XML::Parser perl module is required for intltool" "$LINENO" 5 - fi -fi - -# Substitute ALL_LINGUAS so we can use it in po/Makefile - - -# Set DATADIRNAME correctly if it is not set yet -# (copied from glib-gettext.m4) -if test -z "$DATADIRNAME"; then - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ -extern int _nl_msg_cat_cntr; - return _nl_msg_cat_cntr - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - DATADIRNAME=share -else - case $host in - *-*-solaris*) - ac_fn_c_check_func "$LINENO" "bind_textdomain_codeset" "ac_cv_func_bind_textdomain_codeset" -if test "x$ac_cv_func_bind_textdomain_codeset" = xyes; then : - DATADIRNAME=share -else - DATADIRNAME=lib -fi - - ;; - *) - DATADIRNAME=lib - ;; - esac -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi - - - - - - -ALL_LINGUAS="bg bs cs da de en_AU es eu fo fr gl he hr it ja lv nl pl pt pt_BR ru si sr tr uk zh_TW" -# On IRIX 5.3, sys/types and inttypes.h are conflicting. -for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ - inttypes.h stdint.h unistd.h -do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default -" -if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -@%:@define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - - - for ac_header in locale.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "locale.h" "ac_cv_header_locale_h" "$ac_includes_default" -if test "x$ac_cv_header_locale_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -@%:@define HAVE_LOCALE_H 1 -_ACEOF - -fi - -done - - if test $ac_cv_header_locale_h = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for LC_MESSAGES" >&5 -$as_echo_n "checking for LC_MESSAGES... " >&6; } -if ${am_cv_val_LC_MESSAGES+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main () -{ -return LC_MESSAGES - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - am_cv_val_LC_MESSAGES=yes -else - am_cv_val_LC_MESSAGES=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_val_LC_MESSAGES" >&5 -$as_echo "$am_cv_val_LC_MESSAGES" >&6; } - if test $am_cv_val_LC_MESSAGES = yes; then - -$as_echo "@%:@define HAVE_LC_MESSAGES 1" >>confdefs.h - - fi - fi - USE_NLS=yes - - - gt_cv_have_gettext=no - - CATOBJEXT=NONE - XGETTEXT=: - INTLLIBS= - - ac_fn_c_check_header_mongrel "$LINENO" "libintl.h" "ac_cv_header_libintl_h" "$ac_includes_default" -if test "x$ac_cv_header_libintl_h" = xyes; then : - gt_cv_func_dgettext_libintl="no" - libintl_extra_libs="" - - # - # First check in libc - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ngettext in libc" >&5 -$as_echo_n "checking for ngettext in libc... " >&6; } -if ${gt_cv_func_ngettext_libc+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include - -int -main () -{ -return !ngettext ("","", 1) - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - gt_cv_func_ngettext_libc=yes -else - gt_cv_func_ngettext_libc=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_ngettext_libc" >&5 -$as_echo "$gt_cv_func_ngettext_libc" >&6; } - - if test "$gt_cv_func_ngettext_libc" = "yes" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dgettext in libc" >&5 -$as_echo_n "checking for dgettext in libc... " >&6; } -if ${gt_cv_func_dgettext_libc+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include - -int -main () -{ -return !dgettext ("","") - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - gt_cv_func_dgettext_libc=yes -else - gt_cv_func_dgettext_libc=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_dgettext_libc" >&5 -$as_echo "$gt_cv_func_dgettext_libc" >&6; } - fi - - if test "$gt_cv_func_ngettext_libc" = "yes" ; then - for ac_func in bind_textdomain_codeset -do : - ac_fn_c_check_func "$LINENO" "bind_textdomain_codeset" "ac_cv_func_bind_textdomain_codeset" -if test "x$ac_cv_func_bind_textdomain_codeset" = xyes; then : - cat >>confdefs.h <<_ACEOF -@%:@define HAVE_BIND_TEXTDOMAIN_CODESET 1 -_ACEOF - -fi -done - - fi - - # - # If we don't have everything we want, check in libintl - # - if test "$gt_cv_func_dgettext_libc" != "yes" \ - || test "$gt_cv_func_ngettext_libc" != "yes" \ - || test "$ac_cv_func_bind_textdomain_codeset" != "yes" ; then - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for bindtextdomain in -lintl" >&5 -$as_echo_n "checking for bindtextdomain in -lintl... " >&6; } -if ${ac_cv_lib_intl_bindtextdomain+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lintl $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char bindtextdomain (); -int -main () -{ -return bindtextdomain (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_intl_bindtextdomain=yes -else - ac_cv_lib_intl_bindtextdomain=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_bindtextdomain" >&5 -$as_echo "$ac_cv_lib_intl_bindtextdomain" >&6; } -if test "x$ac_cv_lib_intl_bindtextdomain" = xyes; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ngettext in -lintl" >&5 -$as_echo_n "checking for ngettext in -lintl... " >&6; } -if ${ac_cv_lib_intl_ngettext+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lintl $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char ngettext (); -int -main () -{ -return ngettext (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_intl_ngettext=yes -else - ac_cv_lib_intl_ngettext=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_ngettext" >&5 -$as_echo "$ac_cv_lib_intl_ngettext" >&6; } -if test "x$ac_cv_lib_intl_ngettext" = xyes; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dgettext in -lintl" >&5 -$as_echo_n "checking for dgettext in -lintl... " >&6; } -if ${ac_cv_lib_intl_dgettext+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lintl $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char dgettext (); -int -main () -{ -return dgettext (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_intl_dgettext=yes -else - ac_cv_lib_intl_dgettext=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_dgettext" >&5 -$as_echo "$ac_cv_lib_intl_dgettext" >&6; } -if test "x$ac_cv_lib_intl_dgettext" = xyes; then : - gt_cv_func_dgettext_libintl=yes -fi - -fi - -fi - - - if test "$gt_cv_func_dgettext_libintl" != "yes" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if -liconv is needed to use gettext" >&5 -$as_echo_n "checking if -liconv is needed to use gettext... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 -$as_echo "" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ngettext in -lintl" >&5 -$as_echo_n "checking for ngettext in -lintl... " >&6; } -if ${ac_cv_lib_intl_ngettext+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lintl -liconv $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char ngettext (); -int -main () -{ -return ngettext (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_intl_ngettext=yes -else - ac_cv_lib_intl_ngettext=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_ngettext" >&5 -$as_echo "$ac_cv_lib_intl_ngettext" >&6; } -if test "x$ac_cv_lib_intl_ngettext" = xyes; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dcgettext in -lintl" >&5 -$as_echo_n "checking for dcgettext in -lintl... " >&6; } -if ${ac_cv_lib_intl_dcgettext+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lintl -liconv $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char dcgettext (); -int -main () -{ -return dcgettext (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_intl_dcgettext=yes -else - ac_cv_lib_intl_dcgettext=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_dcgettext" >&5 -$as_echo "$ac_cv_lib_intl_dcgettext" >&6; } -if test "x$ac_cv_lib_intl_dcgettext" = xyes; then : - gt_cv_func_dgettext_libintl=yes - libintl_extra_libs=-liconv -else - : -fi - -else - : -fi - - fi - - # - # If we found libintl, then check in it for bind_textdomain_codeset(); - # we'll prefer libc if neither have bind_textdomain_codeset(), - # and both have dgettext and ngettext - # - if test "$gt_cv_func_dgettext_libintl" = "yes" ; then - glib_save_LIBS="$LIBS" - LIBS="$LIBS -lintl $libintl_extra_libs" - unset ac_cv_func_bind_textdomain_codeset - for ac_func in bind_textdomain_codeset -do : - ac_fn_c_check_func "$LINENO" "bind_textdomain_codeset" "ac_cv_func_bind_textdomain_codeset" -if test "x$ac_cv_func_bind_textdomain_codeset" = xyes; then : - cat >>confdefs.h <<_ACEOF -@%:@define HAVE_BIND_TEXTDOMAIN_CODESET 1 -_ACEOF - -fi -done - - LIBS="$glib_save_LIBS" - - if test "$ac_cv_func_bind_textdomain_codeset" = "yes" ; then - gt_cv_func_dgettext_libc=no - else - if test "$gt_cv_func_dgettext_libc" = "yes" \ - && test "$gt_cv_func_ngettext_libc" = "yes"; then - gt_cv_func_dgettext_libintl=no - fi - fi - fi - fi - - if test "$gt_cv_func_dgettext_libc" = "yes" \ - || test "$gt_cv_func_dgettext_libintl" = "yes"; then - gt_cv_have_gettext=yes - fi - - if test "$gt_cv_func_dgettext_libintl" = "yes"; then - INTLLIBS="-lintl $libintl_extra_libs" - fi - - if test "$gt_cv_have_gettext" = "yes"; then - -$as_echo "@%:@define HAVE_GETTEXT 1" >>confdefs.h - - # Extract the first word of "msgfmt", so it can be a program name with args. -set dummy msgfmt; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_MSGFMT+:} false; then : - $as_echo_n "(cached) " >&6 -else - case "$MSGFMT" in - /*) - ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path. - ;; - *) - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" - for ac_dir in $PATH; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - if test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"; then - ac_cv_path_MSGFMT="$ac_dir/$ac_word" - break - fi - fi - done - IFS="$ac_save_ifs" - test -z "$ac_cv_path_MSGFMT" && ac_cv_path_MSGFMT="no" - ;; -esac -fi -MSGFMT="$ac_cv_path_MSGFMT" -if test "$MSGFMT" != "no"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGFMT" >&5 -$as_echo "$MSGFMT" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - if test "$MSGFMT" != "no"; then - glib_save_LIBS="$LIBS" - LIBS="$LIBS $INTLLIBS" - for ac_func in dcgettext -do : - ac_fn_c_check_func "$LINENO" "dcgettext" "ac_cv_func_dcgettext" -if test "x$ac_cv_func_dcgettext" = xyes; then : - cat >>confdefs.h <<_ACEOF -@%:@define HAVE_DCGETTEXT 1 -_ACEOF - -fi -done - - MSGFMT_OPTS= - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if msgfmt accepts -c" >&5 -$as_echo_n "checking if msgfmt accepts -c... " >&6; } - cat >conftest.foo <<_ACEOF - -msgid "" -msgstr "" -"Content-Type: text/plain; charset=UTF-8\n" -"Project-Id-Version: test 1.0\n" -"PO-Revision-Date: 2007-02-15 12:01+0100\n" -"Last-Translator: test \n" -"Language-Team: C \n" -"MIME-Version: 1.0\n" -"Content-Transfer-Encoding: 8bit\n" - -_ACEOF -if { { $as_echo "$as_me:${as_lineno-$LINENO}: \$MSGFMT -c -o /dev/null conftest.foo"; } >&5 - ($MSGFMT -c -o /dev/null conftest.foo) 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - MSGFMT_OPTS=-c; { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -echo "$as_me: failed input was:" >&5 -sed 's/^/| /' conftest.foo >&5 -fi - - # Extract the first word of "gmsgfmt", so it can be a program name with args. -set dummy gmsgfmt; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_GMSGFMT+:} false; then : - $as_echo_n "(cached) " >&6 -else - case $GMSGFMT in - [\\/]* | ?:[\\/]*) - ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_GMSGFMT="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT" - ;; -esac -fi -GMSGFMT=$ac_cv_path_GMSGFMT -if test -n "$GMSGFMT"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GMSGFMT" >&5 -$as_echo "$GMSGFMT" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - # Extract the first word of "xgettext", so it can be a program name with args. -set dummy xgettext; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_XGETTEXT+:} false; then : - $as_echo_n "(cached) " >&6 -else - case "$XGETTEXT" in - /*) - ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path. - ;; - *) - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" - for ac_dir in $PATH; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - if test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"; then - ac_cv_path_XGETTEXT="$ac_dir/$ac_word" - break - fi - fi - done - IFS="$ac_save_ifs" - test -z "$ac_cv_path_XGETTEXT" && ac_cv_path_XGETTEXT=":" - ;; -esac -fi -XGETTEXT="$ac_cv_path_XGETTEXT" -if test "$XGETTEXT" != ":"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XGETTEXT" >&5 -$as_echo "$XGETTEXT" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ -extern int _nl_msg_cat_cntr; - return _nl_msg_cat_cntr - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - CATOBJEXT=.gmo - DATADIRNAME=share -else - case $host in - *-*-solaris*) - ac_fn_c_check_func "$LINENO" "bind_textdomain_codeset" "ac_cv_func_bind_textdomain_codeset" -if test "x$ac_cv_func_bind_textdomain_codeset" = xyes; then : - CATOBJEXT=.gmo - DATADIRNAME=share -else - CATOBJEXT=.mo - DATADIRNAME=lib -fi - - ;; - *-*-openbsd*) - CATOBJEXT=.mo - DATADIRNAME=share - ;; - *) - CATOBJEXT=.mo - DATADIRNAME=lib - ;; - esac -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - LIBS="$glib_save_LIBS" - INSTOBJEXT=.mo - else - gt_cv_have_gettext=no - fi - fi - -fi - - - - if test "$gt_cv_have_gettext" = "yes" ; then - -$as_echo "@%:@define ENABLE_NLS 1" >>confdefs.h - - fi - - if test "$XGETTEXT" != ":"; then - if $XGETTEXT --omit-header /dev/null 2> /dev/null; then - : ; - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: found xgettext program is not GNU xgettext; ignore it" >&5 -$as_echo "found xgettext program is not GNU xgettext; ignore it" >&6; } - XGETTEXT=":" - fi - fi - - # We need to process the po/ directory. - POSUB=po - - ac_config_commands="$ac_config_commands default-1" - - - for lang in $ALL_LINGUAS; do - GMOFILES="$GMOFILES $lang.gmo" - POFILES="$POFILES $lang.po" - done - - - - - - - - - - - - - - if test "$gt_cv_have_gettext" = "yes"; then - if test "x$ALL_LINGUAS" = "x"; then - LINGUAS= - else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for catalogs to be installed" >&5 -$as_echo_n "checking for catalogs to be installed... " >&6; } - NEW_LINGUAS= - for presentlang in $ALL_LINGUAS; do - useit=no - if test "%UNSET%" != "${LINGUAS-%UNSET%}"; then - desiredlanguages="$LINGUAS" - else - desiredlanguages="$ALL_LINGUAS" - fi - for desiredlang in $desiredlanguages; do - # Use the presentlang catalog if desiredlang is - # a. equal to presentlang, or - # b. a variant of presentlang (because in this case, - # presentlang can be used as a fallback for messages - # which are not translated in the desiredlang catalog). - case "$desiredlang" in - "$presentlang"*) useit=yes;; - esac - done - if test $useit = yes; then - NEW_LINGUAS="$NEW_LINGUAS $presentlang" - fi - done - LINGUAS=$NEW_LINGUAS - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LINGUAS" >&5 -$as_echo "$LINGUAS" >&6; } - fi - - if test -n "$LINGUAS"; then - for lang in $LINGUAS; do CATALOGS="$CATALOGS $lang$CATOBJEXT"; done - fi - fi - - MKINSTALLDIRS= - if test -n "$ac_aux_dir"; then - MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs" - fi - if test -z "$MKINSTALLDIRS"; then - MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs" - fi - - - test -d po || mkdir po - if test "x$srcdir" != "x."; then - if test "x`echo $srcdir | sed 's@/.*@@'`" = "x"; then - posrcprefix="$srcdir/" - else - posrcprefix="../$srcdir/" - fi - else - posrcprefix="../" - fi - rm -f po/POTFILES - sed -e "/^#/d" -e "/^\$/d" -e "s,.*, $posrcprefix& \\\\," -e "\$s/\(.*\) \\\\/\1/" \ - < $srcdir/po/POTFILES.in > po/POTFILES - - - - - - - - - -if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. -set dummy ${ac_tool_prefix}pkg-config; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_PKG_CONFIG+:} false; then : - $as_echo_n "(cached) " >&6 -else - case $PKG_CONFIG in - [\\/]* | ?:[\\/]*) - ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - ;; -esac -fi -PKG_CONFIG=$ac_cv_path_PKG_CONFIG -if test -n "$PKG_CONFIG"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5 -$as_echo "$PKG_CONFIG" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_path_PKG_CONFIG"; then - ac_pt_PKG_CONFIG=$PKG_CONFIG - # Extract the first word of "pkg-config", so it can be a program name with args. -set dummy pkg-config; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_ac_pt_PKG_CONFIG+:} false; then : - $as_echo_n "(cached) " >&6 -else - case $ac_pt_PKG_CONFIG in - [\\/]* | ?:[\\/]*) - ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - ;; -esac -fi -ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG -if test -n "$ac_pt_PKG_CONFIG"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5 -$as_echo "$ac_pt_PKG_CONFIG" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_pt_PKG_CONFIG" = x; then - PKG_CONFIG="" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - PKG_CONFIG=$ac_pt_PKG_CONFIG - fi -else - PKG_CONFIG="$ac_cv_path_PKG_CONFIG" -fi - -fi -if test -n "$PKG_CONFIG"; then - _pkg_min_version=0.9.0 - { $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5 -$as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; } - if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - PKG_CONFIG="" - fi -fi - -pkg_failed=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for DEPS" >&5 -$as_echo_n "checking for DEPS... " >&6; } - -if test -n "$DEPS_CFLAGS"; then - pkg_cv_DEPS_CFLAGS="$DEPS_CFLAGS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk+-3.0 >= 3.0.0 glib-2.0 >= 2.10.0 sdl >= 1.2.10 portaudio-2.0 libpng libavcodec libavutil libv4l2 libudev libusb-1.0\""; } >&5 - ($PKG_CONFIG --exists --print-errors "gtk+-3.0 >= 3.0.0 glib-2.0 >= 2.10.0 sdl >= 1.2.10 portaudio-2.0 libpng libavcodec libavutil libv4l2 libudev libusb-1.0") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_DEPS_CFLAGS=`$PKG_CONFIG --cflags "gtk+-3.0 >= 3.0.0 glib-2.0 >= 2.10.0 sdl >= 1.2.10 portaudio-2.0 libpng libavcodec libavutil libv4l2 libudev libusb-1.0" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi -if test -n "$DEPS_LIBS"; then - pkg_cv_DEPS_LIBS="$DEPS_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk+-3.0 >= 3.0.0 glib-2.0 >= 2.10.0 sdl >= 1.2.10 portaudio-2.0 libpng libavcodec libavutil libv4l2 libudev libusb-1.0\""; } >&5 - ($PKG_CONFIG --exists --print-errors "gtk+-3.0 >= 3.0.0 glib-2.0 >= 2.10.0 sdl >= 1.2.10 portaudio-2.0 libpng libavcodec libavutil libv4l2 libudev libusb-1.0") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_DEPS_LIBS=`$PKG_CONFIG --libs "gtk+-3.0 >= 3.0.0 glib-2.0 >= 2.10.0 sdl >= 1.2.10 portaudio-2.0 libpng libavcodec libavutil libv4l2 libudev libusb-1.0" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi - - - -if test $pkg_failed = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - -if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then - _pkg_short_errors_supported=yes -else - _pkg_short_errors_supported=no -fi - if test $_pkg_short_errors_supported = yes; then - DEPS_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "gtk+-3.0 >= 3.0.0 glib-2.0 >= 2.10.0 sdl >= 1.2.10 portaudio-2.0 libpng libavcodec libavutil libv4l2 libudev libusb-1.0" 2>&1` - else - DEPS_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "gtk+-3.0 >= 3.0.0 glib-2.0 >= 2.10.0 sdl >= 1.2.10 portaudio-2.0 libpng libavcodec libavutil libv4l2 libudev libusb-1.0" 2>&1` - fi - # Put the nasty error message in config.log where it belongs - echo "$DEPS_PKG_ERRORS" >&5 - - as_fn_error $? "Package requirements (gtk+-3.0 >= 3.0.0 glib-2.0 >= 2.10.0 sdl >= 1.2.10 portaudio-2.0 libpng libavcodec libavutil libv4l2 libudev libusb-1.0) were not met: - -$DEPS_PKG_ERRORS - -Consider adjusting the PKG_CONFIG_PATH environment variable if you -installed software in a non-standard prefix. - -Alternatively, you may set the environment variables DEPS_CFLAGS -and DEPS_LIBS to avoid the need to call pkg-config. -See the pkg-config man page for more details." "$LINENO" 5 -elif test $pkg_failed = untried; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it -is in your PATH or set the PKG_CONFIG environment variable to the full -path to pkg-config. - -Alternatively, you may set the environment variables DEPS_CFLAGS -and DEPS_LIBS to avoid the need to call pkg-config. -See the pkg-config man page for more details. - -To get pkg-config, see . -See \`config.log' for more details" "$LINENO" 5; } -else - DEPS_CFLAGS=$pkg_cv_DEPS_CFLAGS - DEPS_LIBS=$pkg_cv_DEPS_LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -fi - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if you want to enable debian menu" >&5 -$as_echo_n "checking if you want to enable debian menu... " >&6; } -@%:@ Check whether --enable-debian-menu was given. -if test "${enable_debian_menu+set}" = set; then : - enableval=$enable_debian_menu; enable_debian_menu=no -else - enable_debian_menu=yes -fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_debian_menu" >&5 -$as_echo "$enable_debian_menu" >&6; } - - if test "$enable_debian_menu" = yes; then - DEBIAN_MENU_TRUE= - DEBIAN_MENU_FALSE='#' -else - DEBIAN_MENU_TRUE='#' - DEBIAN_MENU_FALSE= -fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if you want to enable desktop file" >&5 -$as_echo_n "checking if you want to enable desktop file... " >&6; } -@%:@ Check whether --enable-desktop was given. -if test "${enable_desktop+set}" = set; then : - enableval=$enable_desktop; enable_desktop=no -else - enable_desktop=yes -fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_desktop" >&5 -$as_echo "$enable_desktop" >&6; } - - if test "$enable_desktop" = yes; then - DESKTOP_TRUE= - DESKTOP_FALSE='#' -else - DESKTOP_TRUE='#' - DESKTOP_FALSE= -fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if you want to enable pulse support" >&5 -$as_echo_n "checking if you want to enable pulse support... " >&6; } -@%:@ Check whether --enable-pulse was given. -if test "${enable_pulse+set}" = set; then : - enableval=$enable_pulse; enable_pulse=no -else - enable_pulse=yes -fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_pulse" >&5 -$as_echo "$enable_pulse" >&6; } - -if test $enable_pulse = yes; then - -pkg_failed=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for PULSE" >&5 -$as_echo_n "checking for PULSE... " >&6; } - -if test -n "$PULSE_CFLAGS"; then - pkg_cv_PULSE_CFLAGS="$PULSE_CFLAGS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libpulse >= 0.9.15\""; } >&5 - ($PKG_CONFIG --exists --print-errors "libpulse >= 0.9.15") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_PULSE_CFLAGS=`$PKG_CONFIG --cflags "libpulse >= 0.9.15" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi -if test -n "$PULSE_LIBS"; then - pkg_cv_PULSE_LIBS="$PULSE_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libpulse >= 0.9.15\""; } >&5 - ($PKG_CONFIG --exists --print-errors "libpulse >= 0.9.15") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_PULSE_LIBS=`$PKG_CONFIG --libs "libpulse >= 0.9.15" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi - - - -if test $pkg_failed = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - -if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then - _pkg_short_errors_supported=yes -else - _pkg_short_errors_supported=no -fi - if test $_pkg_short_errors_supported = yes; then - PULSE_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libpulse >= 0.9.15" 2>&1` - else - PULSE_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libpulse >= 0.9.15" 2>&1` - fi - # Put the nasty error message in config.log where it belongs - echo "$PULSE_PKG_ERRORS" >&5 - - has_pulse=no -elif test $pkg_failed = untried; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - has_pulse=no -else - PULSE_CFLAGS=$pkg_cv_PULSE_CFLAGS - PULSE_LIBS=$pkg_cv_PULSE_LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - has_pulse=yes -fi - - - if test "$has_pulse" = yes; then - -$as_echo "@%:@define PULSEAUDIO 1" >>confdefs.h - - else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libpulse missing... pulse support will be disabled." >&5 -$as_echo "$as_me: WARNING: libpulse missing... pulse support will be disabled." >&2;}; - enable_pulse=no - fi -fi - - -ac_fn_c_check_header_mongrel "$LINENO" "avcodec.h" "ac_cv_header_avcodec_h" "$ac_includes_default" -if test "x$ac_cv_header_avcodec_h" = xyes; then : - has_avcodec_h="yes" -fi - - - -ac_fn_c_check_header_mongrel "$LINENO" "ffmpeg/avcodec.h" "ac_cv_header_ffmpeg_avcodec_h" "$ac_includes_default" -if test "x$ac_cv_header_ffmpeg_avcodec_h" = xyes; then : - has_ffmpeg_dir="yes" -fi - - - -ac_fn_c_check_header_mongrel "$LINENO" "libavcodec/avcodec.h" "ac_cv_header_libavcodec_avcodec_h" "$ac_includes_default" -if test "x$ac_cv_header_libavcodec_avcodec_h" = xyes; then : - has_libavcodec_dir="yes" -fi - - - -if test "$has_avcodec_h" = yes; then - -$as_echo "@%:@define HAS_AVCODEC_H 1" >>confdefs.h - -fi -if test "$has_ffmpeg_dir" = yes; then - -$as_echo "@%:@define HAS_FFMPEG_AVCODEC_H 1" >>confdefs.h - -fi -if test "$has_libavcodec_dir" = yes; then - -$as_echo "@%:@define HAS_LIBAVCODEC_AVCODEC_H 1" >>confdefs.h - -fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether byte ordering is bigendian" >&5 -$as_echo_n "checking whether byte ordering is bigendian... " >&6; } -if ${ac_cv_c_bigendian+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_cv_c_bigendian=unknown - # See if we're dealing with a universal compiler. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#ifndef __APPLE_CC__ - not a universal capable compiler - #endif - typedef int dummy; - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - # Check for potential -arch flags. It is not universal unless - # there are at least two -arch flags with different values. - ac_arch= - ac_prev= - for ac_word in $CC $CFLAGS $CPPFLAGS $LDFLAGS; do - if test -n "$ac_prev"; then - case $ac_word in - i?86 | x86_64 | ppc | ppc64) - if test -z "$ac_arch" || test "$ac_arch" = "$ac_word"; then - ac_arch=$ac_word - else - ac_cv_c_bigendian=universal - break - fi - ;; - esac - ac_prev= - elif test "x$ac_word" = "x-arch"; then - ac_prev=arch - fi - done -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - if test $ac_cv_c_bigendian = unknown; then - # See if sys/param.h defines the BYTE_ORDER macro. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - #include - -int -main () -{ -#if ! (defined BYTE_ORDER && defined BIG_ENDIAN \ - && defined LITTLE_ENDIAN && BYTE_ORDER && BIG_ENDIAN \ - && LITTLE_ENDIAN) - bogus endian macros - #endif - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - # It does; now see whether it defined to BIG_ENDIAN or not. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - #include - -int -main () -{ -#if BYTE_ORDER != BIG_ENDIAN - not big endian - #endif - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_c_bigendian=yes -else - ac_cv_c_bigendian=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - if test $ac_cv_c_bigendian = unknown; then - # See if defines _LITTLE_ENDIAN or _BIG_ENDIAN (e.g., Solaris). - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - -int -main () -{ -#if ! (defined _LITTLE_ENDIAN || defined _BIG_ENDIAN) - bogus endian macros - #endif - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - # It does; now see whether it defined to _BIG_ENDIAN or not. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - -int -main () -{ -#ifndef _BIG_ENDIAN - not big endian - #endif - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_c_bigendian=yes -else - ac_cv_c_bigendian=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - if test $ac_cv_c_bigendian = unknown; then - # Compile a test program. - if test "$cross_compiling" = yes; then : - # Try to guess by grepping values from an object file. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -short int ascii_mm[] = - { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 }; - short int ascii_ii[] = - { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 }; - int use_ascii (int i) { - return ascii_mm[i] + ascii_ii[i]; - } - short int ebcdic_ii[] = - { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 }; - short int ebcdic_mm[] = - { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 }; - int use_ebcdic (int i) { - return ebcdic_mm[i] + ebcdic_ii[i]; - } - extern int foo; - -int -main () -{ -return use_ascii (foo) == use_ebcdic (foo); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - if grep BIGenDianSyS conftest.$ac_objext >/dev/null; then - ac_cv_c_bigendian=yes - fi - if grep LiTTleEnDian conftest.$ac_objext >/dev/null ; then - if test "$ac_cv_c_bigendian" = unknown; then - ac_cv_c_bigendian=no - else - # finding both strings is unlikely to happen, but who knows? - ac_cv_c_bigendian=unknown - fi - fi -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ - - /* Are we little or big endian? From Harbison&Steele. */ - union - { - long int l; - char c[sizeof (long int)]; - } u; - u.l = 1; - return u.c[sizeof (long int) - 1] == 1; - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - ac_cv_c_bigendian=no -else - ac_cv_c_bigendian=yes -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_bigendian" >&5 -$as_echo "$ac_cv_c_bigendian" >&6; } - case $ac_cv_c_bigendian in #( - yes) - $as_echo "@%:@define WORDS_BIGENDIAN 1" >>confdefs.h -;; #( - no) - ;; #( - universal) - -$as_echo "@%:@define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h - - ;; #( - *) - as_fn_error $? "unknown endianness - presetting ac_cv_c_bigendian=no (or yes) will help" "$LINENO" 5 ;; - esac - - -ac_config_files="$ac_config_files Makefile data/Makefile data/icons/Makefile data/guvcview.desktop.in data/guvcview.in po/Makefile.in src/Makefile" - -cat >confcache <<\_ACEOF -# This file is a shell script that caches the results of configure -# tests run on this system so they can be shared between configure -# scripts and configure runs, see configure's option --config-cache. -# It is not useful on other systems. If it contains results you don't -# want to keep, you may remove or edit it. -# -# config.status only pays attention to the cache file if you give it -# the --recheck option to rerun configure. -# -# `ac_cv_env_foo' variables (set or unset) will be overridden when -# loading this file, other *unset* `ac_cv_foo' will be assigned the -# following values. - -_ACEOF - -# The following way of writing the cache mishandles newlines in values, -# but we know of no workaround that is simple, portable, and efficient. -# So, we kill variables containing newlines. -# Ultrix sh set writes to stderr and can't be redirected directly, -# and sets the high bit in the cache file unless we assign to the vars. -( - for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do - eval ac_val=\$$ac_var - case $ac_val in #( - *${as_nl}*) - case $ac_var in #( - *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 -$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; - esac - case $ac_var in #( - _ | IFS | as_nl) ;; #( - BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( - *) { eval $ac_var=; unset $ac_var;} ;; - esac ;; - esac - done - - (set) 2>&1 | - case $as_nl`(ac_space=' '; set) 2>&1` in #( - *${as_nl}ac_space=\ *) - # `set' does not quote correctly, so add quotes: double-quote - # substitution turns \\\\ into \\, and sed turns \\ into \. - sed -n \ - "s/'/'\\\\''/g; - s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" - ;; #( - *) - # `set' quotes correctly as required by POSIX, so do not add quotes. - sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" - ;; - esac | - sort -) | - sed ' - /^ac_cv_env_/b end - t clear - :clear - s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ - t end - s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ - :end' >>confcache -if diff "$cache_file" confcache >/dev/null 2>&1; then :; else - if test -w "$cache_file"; then - if test "x$cache_file" != "x/dev/null"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 -$as_echo "$as_me: updating cache $cache_file" >&6;} - if test ! -f "$cache_file" || test -h "$cache_file"; then - cat confcache >"$cache_file" - else - case $cache_file in #( - */* | ?:*) - mv -f confcache "$cache_file"$$ && - mv -f "$cache_file"$$ "$cache_file" ;; #( - *) - mv -f confcache "$cache_file" ;; - esac - fi - fi - else - { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 -$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} - fi -fi -rm -f confcache - -test "x$prefix" = xNONE && prefix=$ac_default_prefix -# Let make expand exec_prefix. -test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' - -DEFS=-DHAVE_CONFIG_H - -ac_libobjs= -ac_ltlibobjs= -U= -for ac_i in : $LIB@&t@OBJS; do test "x$ac_i" = x: && continue - # 1. Remove the extension, and $U if already installed. - ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' - ac_i=`$as_echo "$ac_i" | sed "$ac_script"` - # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR - # will be set to the directory where LIBOBJS objects are built. - as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" - as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo' -done -LIB@&t@OBJS=$ac_libobjs - -LTLIBOBJS=$ac_ltlibobjs - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking that generated files are newer than configure" >&5 -$as_echo_n "checking that generated files are newer than configure... " >&6; } - if test -n "$am_sleep_pid"; then - # Hide warnings about reused PIDs. - wait $am_sleep_pid 2>/dev/null - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: done" >&5 -$as_echo "done" >&6; } - if test -n "$EXEEXT"; then - am__EXEEXT_TRUE= - am__EXEEXT_FALSE='#' -else - am__EXEEXT_TRUE='#' - am__EXEEXT_FALSE= -fi - -if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then - as_fn_error $? "conditional \"MAINTAINER_MODE\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then - as_fn_error $? "conditional \"AMDEP\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then - as_fn_error $? "conditional \"am__fastdepCC\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then - as_fn_error $? "conditional \"am__fastdepCC\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi - - ac_config_commands="$ac_config_commands po/stamp-it" - - -if test -z "${DEBIAN_MENU_TRUE}" && test -z "${DEBIAN_MENU_FALSE}"; then - as_fn_error $? "conditional \"DEBIAN_MENU\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${DESKTOP_TRUE}" && test -z "${DESKTOP_FALSE}"; then - as_fn_error $? "conditional \"DESKTOP\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi - - -: "${CONFIG_STATUS=./config.status}" -ac_write_fail=0 -ac_clean_files_save=$ac_clean_files -ac_clean_files="$ac_clean_files $CONFIG_STATUS" -{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 -$as_echo "$as_me: creating $CONFIG_STATUS" >&6;} -as_write_fail=0 -cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 -#! $SHELL -# Generated by $as_me. -# Run this file to recreate the current configuration. -# Compiler output produced by configure, useful for debugging -# configure, is in config.log if it exists. - -debug=false -ac_cs_recheck=false -ac_cs_silent=false - -SHELL=\${CONFIG_SHELL-$SHELL} -export SHELL -_ASEOF -cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 -## -------------------- ## -## M4sh Initialization. ## -## -------------------- ## - -# Be more Bourne compatible -DUALCASE=1; export DUALCASE # for MKS sh -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : - emulate sh - NULLCMD=: - # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which - # is contrary to our usage. Disable this feature. - alias -g '${1+"$@"}'='"$@"' - setopt NO_GLOB_SUBST -else - case `(set -o) 2>/dev/null` in @%:@( - *posix*) : - set -o posix ;; @%:@( - *) : - ;; -esac -fi - - -as_nl=' -' -export as_nl -# Printing a long string crashes Solaris 7 /usr/bin/printf. -as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' -as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo -as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo -# Prefer a ksh shell builtin over an external printf program on Solaris, -# but without wasting forks for bash or zsh. -if test -z "$BASH_VERSION$ZSH_VERSION" \ - && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then - as_echo='print -r --' - as_echo_n='print -rn --' -elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then - as_echo='printf %s\n' - as_echo_n='printf %s' -else - if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then - as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' - as_echo_n='/usr/ucb/echo -n' - else - as_echo_body='eval expr "X$1" : "X\\(.*\\)"' - as_echo_n_body='eval - arg=$1; - case $arg in @%:@( - *"$as_nl"*) - expr "X$arg" : "X\\(.*\\)$as_nl"; - arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; - esac; - expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" - ' - export as_echo_n_body - as_echo_n='sh -c $as_echo_n_body as_echo' - fi - export as_echo_body - as_echo='sh -c $as_echo_body as_echo' -fi - -# The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then - PATH_SEPARATOR=: - (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { - (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || - PATH_SEPARATOR=';' - } -fi - - -# IFS -# We need space, tab and new line, in precisely that order. Quoting is -# there to prevent editors from complaining about space-tab. -# (If _AS_PATH_WALK were called with IFS unset, it would disable word -# splitting by setting IFS to empty value.) -IFS=" "" $as_nl" - -# Find who we are. Look in the path if we contain no directory separator. -as_myself= -case $0 in @%:@(( - *[\\/]* ) as_myself=$0 ;; - *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break - done -IFS=$as_save_IFS - - ;; -esac -# We did not find ourselves, most probably we were run as `sh COMMAND' -# in which case we are not to be found in the path. -if test "x$as_myself" = x; then - as_myself=$0 -fi -if test ! -f "$as_myself"; then - $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 - exit 1 -fi - -# Unset variables that we do not need and which cause bugs (e.g. in -# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" -# suppresses any "Segmentation fault" message there. '((' could -# trigger a bug in pdksh 5.2.14. -for as_var in BASH_ENV ENV MAIL MAILPATH -do eval test x\${$as_var+set} = xset \ - && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : -done -PS1='$ ' -PS2='> ' -PS4='+ ' - -# NLS nuisances. -LC_ALL=C -export LC_ALL -LANGUAGE=C -export LANGUAGE - -# CDPATH. -(unset CDPATH) >/dev/null 2>&1 && unset CDPATH - - -@%:@ as_fn_error STATUS ERROR [LINENO LOG_FD] -@%:@ ---------------------------------------- -@%:@ Output "`basename @S|@0`: error: ERROR" to stderr. If LINENO and LOG_FD are -@%:@ provided, also output the error to LOG_FD, referencing LINENO. Then exit the -@%:@ script with STATUS, using 1 if that was 0. -as_fn_error () -{ - as_status=$1; test $as_status -eq 0 && as_status=1 - if test "$4"; then - as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 - fi - $as_echo "$as_me: error: $2" >&2 - as_fn_exit $as_status -} @%:@ as_fn_error - - -@%:@ as_fn_set_status STATUS -@%:@ ----------------------- -@%:@ Set @S|@? to STATUS, without forking. -as_fn_set_status () -{ - return $1 -} @%:@ as_fn_set_status - -@%:@ as_fn_exit STATUS -@%:@ ----------------- -@%:@ Exit the shell with STATUS, even in a "trap 0" or "set -e" context. -as_fn_exit () -{ - set +e - as_fn_set_status $1 - exit $1 -} @%:@ as_fn_exit - -@%:@ as_fn_unset VAR -@%:@ --------------- -@%:@ Portably unset VAR. -as_fn_unset () -{ - { eval $1=; unset $1;} -} -as_unset=as_fn_unset -@%:@ as_fn_append VAR VALUE -@%:@ ---------------------- -@%:@ Append the text in VALUE to the end of the definition contained in VAR. Take -@%:@ advantage of any shell optimizations that allow amortized linear growth over -@%:@ repeated appends, instead of the typical quadratic growth present in naive -@%:@ implementations. -if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : - eval 'as_fn_append () - { - eval $1+=\$2 - }' -else - as_fn_append () - { - eval $1=\$$1\$2 - } -fi # as_fn_append - -@%:@ as_fn_arith ARG... -@%:@ ------------------ -@%:@ Perform arithmetic evaluation on the ARGs, and store the result in the -@%:@ global @S|@as_val. Take advantage of shells that can avoid forks. The arguments -@%:@ must be portable across @S|@(()) and expr. -if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : - eval 'as_fn_arith () - { - as_val=$(( $* )) - }' -else - as_fn_arith () - { - as_val=`expr "$@" || test $? -eq 1` - } -fi # as_fn_arith - - -if expr a : '\(a\)' >/dev/null 2>&1 && - test "X`expr 00001 : '.*\(...\)'`" = X001; then - as_expr=expr -else - as_expr=false -fi - -if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then - as_basename=basename -else - as_basename=false -fi - -if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then - as_dirname=dirname -else - as_dirname=false -fi - -as_me=`$as_basename -- "$0" || -$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ - X"$0" : 'X\(//\)$' \| \ - X"$0" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X/"$0" | - sed '/^.*\/\([^/][^/]*\)\/*$/{ - s//\1/ - q - } - /^X\/\(\/\/\)$/{ - s//\1/ - q - } - /^X\/\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - -# Avoid depending upon Character Ranges. -as_cr_letters='abcdefghijklmnopqrstuvwxyz' -as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' -as_cr_Letters=$as_cr_letters$as_cr_LETTERS -as_cr_digits='0123456789' -as_cr_alnum=$as_cr_Letters$as_cr_digits - -ECHO_C= ECHO_N= ECHO_T= -case `echo -n x` in @%:@((((( --n*) - case `echo 'xy\c'` in - *c*) ECHO_T=' ';; # ECHO_T is single tab character. - xy) ECHO_C='\c';; - *) echo `echo ksh88 bug on AIX 6.1` > /dev/null - ECHO_T=' ';; - esac;; -*) - ECHO_N='-n';; -esac - -rm -f conf$$ conf$$.exe conf$$.file -if test -d conf$$.dir; then - rm -f conf$$.dir/conf$$.file -else - rm -f conf$$.dir - mkdir conf$$.dir 2>/dev/null -fi -if (echo >conf$$.file) 2>/dev/null; then - if ln -s conf$$.file conf$$ 2>/dev/null; then - as_ln_s='ln -s' - # ... but there are two gotchas: - # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. - # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. - # In both cases, we have to default to `cp -pR'. - ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || - as_ln_s='cp -pR' - elif ln conf$$.file conf$$ 2>/dev/null; then - as_ln_s=ln - else - as_ln_s='cp -pR' - fi -else - as_ln_s='cp -pR' -fi -rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file -rmdir conf$$.dir 2>/dev/null - - -@%:@ as_fn_mkdir_p -@%:@ ------------- -@%:@ Create "@S|@as_dir" as a directory, including parents if necessary. -as_fn_mkdir_p () -{ - - case $as_dir in #( - -*) as_dir=./$as_dir;; - esac - test -d "$as_dir" || eval $as_mkdir_p || { - as_dirs= - while :; do - case $as_dir in #( - *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( - *) as_qdir=$as_dir;; - esac - as_dirs="'$as_qdir' $as_dirs" - as_dir=`$as_dirname -- "$as_dir" || -$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$as_dir" : 'X\(//\)[^/]' \| \ - X"$as_dir" : 'X\(//\)$' \| \ - X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$as_dir" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - test -d "$as_dir" && break - done - test -z "$as_dirs" || eval "mkdir $as_dirs" - } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" - - -} @%:@ as_fn_mkdir_p -if mkdir -p . 2>/dev/null; then - as_mkdir_p='mkdir -p "$as_dir"' -else - test -d ./-p && rmdir ./-p - as_mkdir_p=false -fi - - -@%:@ as_fn_executable_p FILE -@%:@ ----------------------- -@%:@ Test if FILE is an executable regular file. -as_fn_executable_p () -{ - test -f "$1" && test -x "$1" -} @%:@ as_fn_executable_p -as_test_x='test -x' -as_executable_p=as_fn_executable_p - -# Sed expression to map a string onto a valid CPP name. -as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" - -# Sed expression to map a string onto a valid variable name. -as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" - - -exec 6>&1 -## ----------------------------------- ## -## Main body of $CONFIG_STATUS script. ## -## ----------------------------------- ## -_ASEOF -test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -# Save the log message, to keep $0 and so on meaningful, and to -# report actual input values of CONFIG_FILES etc. instead of their -# values after options handling. -ac_log=" -This file was extended by guvcview $as_me 1.7.2, which was -generated by GNU Autoconf 2.69. Invocation command line was - - CONFIG_FILES = $CONFIG_FILES - CONFIG_HEADERS = $CONFIG_HEADERS - CONFIG_LINKS = $CONFIG_LINKS - CONFIG_COMMANDS = $CONFIG_COMMANDS - $ $0 $@ - -on `(hostname || uname -n) 2>/dev/null | sed 1q` -" - -_ACEOF - -case $ac_config_files in *" -"*) set x $ac_config_files; shift; ac_config_files=$*;; -esac - -case $ac_config_headers in *" -"*) set x $ac_config_headers; shift; ac_config_headers=$*;; -esac - - -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -# Files that config.status was made for. -config_files="$ac_config_files" -config_headers="$ac_config_headers" -config_commands="$ac_config_commands" - -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -ac_cs_usage="\ -\`$as_me' instantiates files and other configuration actions -from templates according to the current configuration. Unless the files -and actions are specified as TAGs, all are instantiated by default. - -Usage: $0 [OPTION]... [TAG]... - - -h, --help print this help, then exit - -V, --version print version number and configuration settings, then exit - --config print configuration, then exit - -q, --quiet, --silent - do not print progress messages - -d, --debug don't remove temporary files - --recheck update $as_me by reconfiguring in the same conditions - --file=FILE[:TEMPLATE] - instantiate the configuration file FILE - --header=FILE[:TEMPLATE] - instantiate the configuration header FILE - -Configuration files: -$config_files - -Configuration headers: -$config_headers - -Configuration commands: -$config_commands - -Report bugs to ." - -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" -ac_cs_version="\\ -guvcview config.status 1.7.2 -configured by $0, generated by GNU Autoconf 2.69, - with options \\"\$ac_cs_config\\" - -Copyright (C) 2012 Free Software Foundation, Inc. -This config.status script is free software; the Free Software Foundation -gives unlimited permission to copy, distribute and modify it." - -ac_pwd='$ac_pwd' -srcdir='$srcdir' -INSTALL='$INSTALL' -MKDIR_P='$MKDIR_P' -AWK='$AWK' -test -n "\$AWK" || AWK=awk -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -# The default lists apply if the user does not specify any file. -ac_need_defaults=: -while test $# != 0 -do - case $1 in - --*=?*) - ac_option=`expr "X$1" : 'X\([^=]*\)='` - ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` - ac_shift=: - ;; - --*=) - ac_option=`expr "X$1" : 'X\([^=]*\)='` - ac_optarg= - ac_shift=: - ;; - *) - ac_option=$1 - ac_optarg=$2 - ac_shift=shift - ;; - esac - - case $ac_option in - # Handling of the options. - -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) - ac_cs_recheck=: ;; - --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) - $as_echo "$ac_cs_version"; exit ;; - --config | --confi | --conf | --con | --co | --c ) - $as_echo "$ac_cs_config"; exit ;; - --debug | --debu | --deb | --de | --d | -d ) - debug=: ;; - --file | --fil | --fi | --f ) - $ac_shift - case $ac_optarg in - *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; - '') as_fn_error $? "missing file argument" ;; - esac - as_fn_append CONFIG_FILES " '$ac_optarg'" - ac_need_defaults=false;; - --header | --heade | --head | --hea ) - $ac_shift - case $ac_optarg in - *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; - esac - as_fn_append CONFIG_HEADERS " '$ac_optarg'" - ac_need_defaults=false;; - --he | --h) - # Conflict between --help and --header - as_fn_error $? "ambiguous option: \`$1' -Try \`$0 --help' for more information.";; - --help | --hel | -h ) - $as_echo "$ac_cs_usage"; exit ;; - -q | -quiet | --quiet | --quie | --qui | --qu | --q \ - | -silent | --silent | --silen | --sile | --sil | --si | --s) - ac_cs_silent=: ;; - - # This is an error. - -*) as_fn_error $? "unrecognized option: \`$1' -Try \`$0 --help' for more information." ;; - - *) as_fn_append ac_config_targets " $1" - ac_need_defaults=false ;; - - esac - shift -done - -ac_configure_extra_args= - -if $ac_cs_silent; then - exec 6>/dev/null - ac_configure_extra_args="$ac_configure_extra_args --silent" -fi - -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -if \$ac_cs_recheck; then - set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion - shift - \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 - CONFIG_SHELL='$SHELL' - export CONFIG_SHELL - exec "\$@" -fi - -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -exec 5>>config.log -{ - echo - sed 'h;s/./-/g;s/^.../@%:@@%:@ /;s/...$/ @%:@@%:@/;p;x;p;x' <<_ASBOX -@%:@@%:@ Running $as_me. @%:@@%:@ -_ASBOX - $as_echo "$ac_log" -} >&5 - -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -# -# INIT-COMMANDS -# -AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" - - -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 - -# Handling of arguments. -for ac_config_target in $ac_config_targets -do - case $ac_config_target in - "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; - "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; - "default-1") CONFIG_COMMANDS="$CONFIG_COMMANDS default-1" ;; - "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; - "data/Makefile") CONFIG_FILES="$CONFIG_FILES data/Makefile" ;; - "data/icons/Makefile") CONFIG_FILES="$CONFIG_FILES data/icons/Makefile" ;; - "data/guvcview.desktop.in") CONFIG_FILES="$CONFIG_FILES data/guvcview.desktop.in" ;; - "data/guvcview.in") CONFIG_FILES="$CONFIG_FILES data/guvcview.in" ;; - "po/Makefile.in") CONFIG_FILES="$CONFIG_FILES po/Makefile.in" ;; - "src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;; - "po/stamp-it") CONFIG_COMMANDS="$CONFIG_COMMANDS po/stamp-it" ;; - - *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; - esac -done - - -# If the user did not use the arguments to specify the items to instantiate, -# then the envvar interface is used. Set only those that are not. -# We use the long form for the default assignment because of an extremely -# bizarre bug on SunOS 4.1.3. -if $ac_need_defaults; then - test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files - test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers - test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands -fi - -# Have a temporary directory for convenience. Make it in the build tree -# simply because there is no reason against having it here, and in addition, -# creating and moving files from /tmp can sometimes cause problems. -# Hook for its removal unless debugging. -# Note that there is a small window in which the directory will not be cleaned: -# after its creation but before its name has been assigned to `$tmp'. -$debug || -{ - tmp= ac_tmp= - trap 'exit_status=$? - : "${ac_tmp:=$tmp}" - { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status -' 0 - trap 'as_fn_exit 1' 1 2 13 15 -} -# Create a (secure) tmp directory for tmp files. - -{ - tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && - test -d "$tmp" -} || -{ - tmp=./conf$$-$RANDOM - (umask 077 && mkdir "$tmp") -} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 -ac_tmp=$tmp - -# Set up the scripts for CONFIG_FILES section. -# No need to generate them if there are no CONFIG_FILES. -# This happens for instance with `./config.status config.h'. -if test -n "$CONFIG_FILES"; then - - -ac_cr=`echo X | tr X '\015'` -# On cygwin, bash can eat \r inside `` if the user requested igncr. -# But we know of no other shell where ac_cr would be empty at this -# point, so we can use a bashism as a fallback. -if test "x$ac_cr" = x; then - eval ac_cr=\$\'\\r\' -fi -ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` -if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then - ac_cs_awk_cr='\\r' -else - ac_cs_awk_cr=$ac_cr -fi - -echo 'BEGIN {' >"$ac_tmp/subs1.awk" && -_ACEOF - - -{ - echo "cat >conf$$subs.awk <<_ACEOF" && - echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && - echo "_ACEOF" -} >conf$$subs.sh || - as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 -ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'` -ac_delim='%!_!# ' -for ac_last_try in false false false false false :; do - . ./conf$$subs.sh || - as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 - - ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` - if test $ac_delim_n = $ac_delim_num; then - break - elif $ac_last_try; then - as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 - else - ac_delim="$ac_delim!$ac_delim _$ac_delim!! " - fi -done -rm -f conf$$subs.sh - -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK && -_ACEOF -sed -n ' -h -s/^/S["/; s/!.*/"]=/ -p -g -s/^[^!]*!// -:repl -t repl -s/'"$ac_delim"'$// -t delim -:nl -h -s/\(.\{148\}\)..*/\1/ -t more1 -s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ -p -n -b repl -:more1 -s/["\\]/\\&/g; s/^/"/; s/$/"\\/ -p -g -s/.\{148\}// -t nl -:delim -h -s/\(.\{148\}\)..*/\1/ -t more2 -s/["\\]/\\&/g; s/^/"/; s/$/"/ -p -b -:more2 -s/["\\]/\\&/g; s/^/"/; s/$/"\\/ -p -g -s/.\{148\}// -t delim -' >$CONFIG_STATUS || ac_write_fail=1 -rm -f conf$$subs.awk -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -_ACAWK -cat >>"\$ac_tmp/subs1.awk" <<_ACAWK && - for (key in S) S_is_set[key] = 1 - FS = "" - -} -{ - line = $ 0 - nfields = split(line, field, "@") - substed = 0 - len = length(field[1]) - for (i = 2; i < nfields; i++) { - key = field[i] - keylen = length(key) - if (S_is_set[key]) { - value = S[key] - line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) - len += length(value) + length(field[++i]) - substed = 1 - } else - len += 1 + keylen - } - - print line -} - -_ACAWK -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then - sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" -else - cat -fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \ - || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 -_ACEOF - -# VPATH may cause trouble with some makes, so we remove sole $(srcdir), -# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and -# trailing colons and then remove the whole line if VPATH becomes empty -# (actually we leave an empty line to preserve line numbers). -if test "x$srcdir" = x.; then - ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{ -h -s/// -s/^/:/ -s/[ ]*$/:/ -s/:\$(srcdir):/:/g -s/:\${srcdir}:/:/g -s/:@srcdir@:/:/g -s/^:*// -s/:*$// -x -s/\(=[ ]*\).*/\1/ -G -s/\n// -s/^[^=]*=[ ]*$// -}' -fi - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -fi # test -n "$CONFIG_FILES" - -# Set up the scripts for CONFIG_HEADERS section. -# No need to generate them if there are no CONFIG_HEADERS. -# This happens for instance with `./config.status Makefile'. -if test -n "$CONFIG_HEADERS"; then -cat >"$ac_tmp/defines.awk" <<\_ACAWK || -BEGIN { -_ACEOF - -# Transform confdefs.h into an awk script `defines.awk', embedded as -# here-document in config.status, that substitutes the proper values into -# config.h.in to produce config.h. - -# Create a delimiter string that does not exist in confdefs.h, to ease -# handling of long lines. -ac_delim='%!_!# ' -for ac_last_try in false false :; do - ac_tt=`sed -n "/$ac_delim/p" confdefs.h` - if test -z "$ac_tt"; then - break - elif $ac_last_try; then - as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5 - else - ac_delim="$ac_delim!$ac_delim _$ac_delim!! " - fi -done - -# For the awk script, D is an array of macro values keyed by name, -# likewise P contains macro parameters if any. Preserve backslash -# newline sequences. - -ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* -sed -n ' -s/.\{148\}/&'"$ac_delim"'/g -t rset -:rset -s/^[ ]*#[ ]*define[ ][ ]*/ / -t def -d -:def -s/\\$// -t bsnl -s/["\\]/\\&/g -s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ -D["\1"]=" \3"/p -s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p -d -:bsnl -s/["\\]/\\&/g -s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ -D["\1"]=" \3\\\\\\n"\\/p -t cont -s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p -t cont -d -:cont -n -s/.\{148\}/&'"$ac_delim"'/g -t clear -:clear -s/\\$// -t bsnlc -s/["\\]/\\&/g; s/^/"/; s/$/"/p -d -:bsnlc -s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p -b cont -' >$CONFIG_STATUS || ac_write_fail=1 - -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 - for (key in D) D_is_set[key] = 1 - FS = "" -} -/^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ { - line = \$ 0 - split(line, arg, " ") - if (arg[1] == "#") { - defundef = arg[2] - mac1 = arg[3] - } else { - defundef = substr(arg[1], 2) - mac1 = arg[2] - } - split(mac1, mac2, "(") #) - macro = mac2[1] - prefix = substr(line, 1, index(line, defundef) - 1) - if (D_is_set[macro]) { - # Preserve the white space surrounding the "#". - print prefix "define", macro P[macro] D[macro] - next - } else { - # Replace #undef with comments. This is necessary, for example, - # in the case of _POSIX_SOURCE, which is predefined and required - # on some systems where configure will not decide to define it. - if (defundef == "undef") { - print "/*", prefix defundef, macro, "*/" - next - } - } -} -{ print } -_ACAWK -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 - as_fn_error $? "could not setup config headers machinery" "$LINENO" 5 -fi # test -n "$CONFIG_HEADERS" - - -eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS" -shift -for ac_tag -do - case $ac_tag in - :[FHLC]) ac_mode=$ac_tag; continue;; - esac - case $ac_mode$ac_tag in - :[FHL]*:*);; - :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;; - :[FH]-) ac_tag=-:-;; - :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; - esac - ac_save_IFS=$IFS - IFS=: - set x $ac_tag - IFS=$ac_save_IFS - shift - ac_file=$1 - shift - - case $ac_mode in - :L) ac_source=$1;; - :[FH]) - ac_file_inputs= - for ac_f - do - case $ac_f in - -) ac_f="$ac_tmp/stdin";; - *) # Look for the file first in the build tree, then in the source tree - # (if the path is not absolute). The absolute path cannot be DOS-style, - # because $ac_f cannot contain `:'. - test -f "$ac_f" || - case $ac_f in - [\\/$]*) false;; - *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; - esac || - as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;; - esac - case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac - as_fn_append ac_file_inputs " '$ac_f'" - done - - # Let's still pretend it is `configure' which instantiates (i.e., don't - # use $as_me), people would be surprised to read: - # /* config.h. Generated by config.status. */ - configure_input='Generated from '` - $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' - `' by configure.' - if test x"$ac_file" != x-; then - configure_input="$ac_file. $configure_input" - { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 -$as_echo "$as_me: creating $ac_file" >&6;} - fi - # Neutralize special characters interpreted by sed in replacement strings. - case $configure_input in #( - *\&* | *\|* | *\\* ) - ac_sed_conf_input=`$as_echo "$configure_input" | - sed 's/[\\\\&|]/\\\\&/g'`;; #( - *) ac_sed_conf_input=$configure_input;; - esac - - case $ac_tag in - *:-:* | *:-) cat >"$ac_tmp/stdin" \ - || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; - esac - ;; - esac - - ac_dir=`$as_dirname -- "$ac_file" || -$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$ac_file" : 'X\(//\)[^/]' \| \ - X"$ac_file" : 'X\(//\)$' \| \ - X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$ac_file" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - as_dir="$ac_dir"; as_fn_mkdir_p - ac_builddir=. - -case "$ac_dir" in -.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; -*) - ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` - # A ".." for each directory in $ac_dir_suffix. - ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` - case $ac_top_builddir_sub in - "") ac_top_builddir_sub=. ac_top_build_prefix= ;; - *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; - esac ;; -esac -ac_abs_top_builddir=$ac_pwd -ac_abs_builddir=$ac_pwd$ac_dir_suffix -# for backward compatibility: -ac_top_builddir=$ac_top_build_prefix - -case $srcdir in - .) # We are building in place. - ac_srcdir=. - ac_top_srcdir=$ac_top_builddir_sub - ac_abs_top_srcdir=$ac_pwd ;; - [\\/]* | ?:[\\/]* ) # Absolute name. - ac_srcdir=$srcdir$ac_dir_suffix; - ac_top_srcdir=$srcdir - ac_abs_top_srcdir=$srcdir ;; - *) # Relative name. - ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix - ac_top_srcdir=$ac_top_build_prefix$srcdir - ac_abs_top_srcdir=$ac_pwd/$srcdir ;; -esac -ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix - - - case $ac_mode in - :F) - # - # CONFIG_FILE - # - - case $INSTALL in - [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; - *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; - esac - ac_MKDIR_P=$MKDIR_P - case $MKDIR_P in - [\\/$]* | ?:[\\/]* ) ;; - */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;; - esac -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -# If the template does not know about datarootdir, expand it. -# FIXME: This hack should be removed a few years after 2.60. -ac_datarootdir_hack=; ac_datarootdir_seen= -ac_sed_dataroot=' -/datarootdir/ { - p - q -} -/@datadir@/p -/@docdir@/p -/@infodir@/p -/@localedir@/p -/@mandir@/p' -case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in -*datarootdir*) ac_datarootdir_seen=yes;; -*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 -$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 - ac_datarootdir_hack=' - s&@datadir@&$datadir&g - s&@docdir@&$docdir&g - s&@infodir@&$infodir&g - s&@localedir@&$localedir&g - s&@mandir@&$mandir&g - s&\\\${datarootdir}&$datarootdir&g' ;; -esac -_ACEOF - -# Neutralize VPATH when `$srcdir' = `.'. -# Shell code in configure.ac might set extrasub. -# FIXME: do we really want to maintain this feature? -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -ac_sed_extra="$ac_vpsub -$extrasub -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -:t -/@[a-zA-Z_][a-zA-Z_0-9]*@/!b -s|@configure_input@|$ac_sed_conf_input|;t t -s&@top_builddir@&$ac_top_builddir_sub&;t t -s&@top_build_prefix@&$ac_top_build_prefix&;t t -s&@srcdir@&$ac_srcdir&;t t -s&@abs_srcdir@&$ac_abs_srcdir&;t t -s&@top_srcdir@&$ac_top_srcdir&;t t -s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t -s&@builddir@&$ac_builddir&;t t -s&@abs_builddir@&$ac_abs_builddir&;t t -s&@abs_top_builddir@&$ac_abs_top_builddir&;t t -s&@INSTALL@&$ac_INSTALL&;t t -s&@MKDIR_P@&$ac_MKDIR_P&;t t -$ac_datarootdir_hack -" -eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \ - >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5 - -test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && - { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } && - { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ - "$ac_tmp/out"`; test -z "$ac_out"; } && - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' -which seems to be undefined. Please make sure it is defined" >&5 -$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' -which seems to be undefined. Please make sure it is defined" >&2;} - - rm -f "$ac_tmp/stdin" - case $ac_file in - -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";; - *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";; - esac \ - || as_fn_error $? "could not create $ac_file" "$LINENO" 5 - ;; - :H) - # - # CONFIG_HEADER - # - if test x"$ac_file" != x-; then - { - $as_echo "/* $configure_input */" \ - && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" - } >"$ac_tmp/config.h" \ - || as_fn_error $? "could not create $ac_file" "$LINENO" 5 - if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then - { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 -$as_echo "$as_me: $ac_file is unchanged" >&6;} - else - rm -f "$ac_file" - mv "$ac_tmp/config.h" "$ac_file" \ - || as_fn_error $? "could not create $ac_file" "$LINENO" 5 - fi - else - $as_echo "/* $configure_input */" \ - && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \ - || as_fn_error $? "could not create -" "$LINENO" 5 - fi -# Compute "$ac_file"'s index in $config_headers. -_am_arg="$ac_file" -_am_stamp_count=1 -for _am_header in $config_headers :; do - case $_am_header in - $_am_arg | $_am_arg:* ) - break ;; - * ) - _am_stamp_count=`expr $_am_stamp_count + 1` ;; - esac -done -echo "timestamp for $_am_arg" >`$as_dirname -- "$_am_arg" || -$as_expr X"$_am_arg" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$_am_arg" : 'X\(//\)[^/]' \| \ - X"$_am_arg" : 'X\(//\)$' \| \ - X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$_am_arg" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'`/stamp-h$_am_stamp_count - ;; - - :C) { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5 -$as_echo "$as_me: executing $ac_file commands" >&6;} - ;; - esac - - - case $ac_file$ac_mode in - "depfiles":C) test x"$AMDEP_TRUE" != x"" || { - # Older Autoconf quotes --file arguments for eval, but not when files - # are listed without --file. Let's play safe and only enable the eval - # if we detect the quoting. - case $CONFIG_FILES in - *\'*) eval set x "$CONFIG_FILES" ;; - *) set x $CONFIG_FILES ;; - esac - shift - for mf - do - # Strip MF so we end up with the name of the file. - mf=`echo "$mf" | sed -e 's/:.*$//'` - # Check whether this is an Automake generated Makefile or not. - # We used to match only the files named 'Makefile.in', but - # some people rename them; so instead we look at the file content. - # Grep'ing the first line is not enough: some people post-process - # each Makefile.in and add a new line on top of each file to say so. - # Grep'ing the whole file is not good either: AIX grep has a line - # limit of 2048, but all sed's we know have understand at least 4000. - if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then - dirpart=`$as_dirname -- "$mf" || -$as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$mf" : 'X\(//\)[^/]' \| \ - X"$mf" : 'X\(//\)$' \| \ - X"$mf" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$mf" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - else - continue - fi - # Extract the definition of DEPDIR, am__include, and am__quote - # from the Makefile without running 'make'. - DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` - test -z "$DEPDIR" && continue - am__include=`sed -n 's/^am__include = //p' < "$mf"` - test -z "$am__include" && continue - am__quote=`sed -n 's/^am__quote = //p' < "$mf"` - # Find all dependency output files, they are included files with - # $(DEPDIR) in their names. We invoke sed twice because it is the - # simplest approach to changing $(DEPDIR) to its actual value in the - # expansion. - for file in `sed -n " - s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ - sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do - # Make sure the directory exists. - test -f "$dirpart/$file" && continue - fdir=`$as_dirname -- "$file" || -$as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$file" : 'X\(//\)[^/]' \| \ - X"$file" : 'X\(//\)$' \| \ - X"$file" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$file" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - as_dir=$dirpart/$fdir; as_fn_mkdir_p - # echo "creating $dirpart/$file" - echo '# dummy' > "$dirpart/$file" - done - done -} - ;; - "default-1":C) case "$CONFIG_FILES" in *po/Makefile.in*) - sed -e "/POTFILES =/r po/POTFILES" po/Makefile.in > po/Makefile - esac ;; - "po/stamp-it":C) - if ! grep "^# INTLTOOL_MAKEFILE$" "po/Makefile.in" > /dev/null ; then - as_fn_error $? "po/Makefile.in.in was not created by intltoolize." "$LINENO" 5 - fi - rm -f "po/stamp-it" "po/stamp-it.tmp" "po/POTFILES" "po/Makefile.tmp" - >"po/stamp-it.tmp" - sed '/^#/d - s/^[[].*] *// - /^[ ]*$/d - '"s|^| $ac_top_srcdir/|" \ - "$srcdir/po/POTFILES.in" | sed '$!s/$/ \\/' >"po/POTFILES" - - sed '/^POTFILES =/,/[^\\]$/ { - /^POTFILES =/!d - r po/POTFILES - } - ' "po/Makefile.in" >"po/Makefile" - rm -f "po/Makefile.tmp" - mv "po/stamp-it.tmp" "po/stamp-it" - ;; - - esac -done # for ac_tag - - -as_fn_exit 0 -_ACEOF -ac_clean_files=$ac_clean_files_save - -test $ac_write_fail = 0 || - as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 - - -# configure is writing to config.log, and then calls config.status. -# config.status does its own redirection, appending to config.log. -# Unfortunately, on DOS this fails, as config.log is still kept open -# by configure, so config.status won't be able to write to it; its -# output is simply discarded. So we exec the FD to /dev/null, -# effectively closing config.log, so it can be properly (re)opened and -# appended to by config.status. When coming back to configure, we -# need to make the FD available again. -if test "$no_create" != yes; then - ac_cs_success=: - ac_config_status_args= - test "$silent" = yes && - ac_config_status_args="$ac_config_status_args --quiet" - exec 5>/dev/null - $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false - exec 5>>config.log - # Use ||, not &&, to avoid exiting from the if with $? = 1, which - # would make configure fail if this is the last instruction. - $ac_cs_success || as_fn_exit 1 -fi -if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 -$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} -fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: - - guvcview $VERSION - ---------------------- - - Prefix : ${prefix} - - Pulse API : ${enable_pulse} - - Desktop File : ${enable_desktop} - Debian Menu : ${enable_debian_menu} - - Debug Symbols : ${enable_debug} - -" >&5 -$as_echo "$as_me: - - guvcview $VERSION - ---------------------- - - Prefix : ${prefix} - - Pulse API : ${enable_pulse} - - Desktop File : ${enable_desktop} - Debian Menu : ${enable_debian_menu} - - Debug Symbols : ${enable_debug} - -" >&6;} - diff -Nru guvcview-1.7.3/autom4te.cache/output.1 guvcview-2.0.1+ubuntu1~ppa1/autom4te.cache/output.1 --- guvcview-1.7.3/autom4te.cache/output.1 2014-03-24 22:56:28.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/autom4te.cache/output.1 1970-01-01 00:00:00.000000000 +0000 @@ -1,8236 +0,0 @@ -@%:@! /bin/sh -@%:@ Guess values for system-dependent variables and create Makefiles. -@%:@ Generated by GNU Autoconf 2.69 for guvcview 1.7.3. -@%:@ -@%:@ Report bugs to . -@%:@ -@%:@ -@%:@ Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. -@%:@ -@%:@ -@%:@ This configure script is free software; the Free Software Foundation -@%:@ gives unlimited permission to copy, distribute and modify it. -## -------------------- ## -## M4sh Initialization. ## -## -------------------- ## - -# Be more Bourne compatible -DUALCASE=1; export DUALCASE # for MKS sh -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : - emulate sh - NULLCMD=: - # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which - # is contrary to our usage. Disable this feature. - alias -g '${1+"$@"}'='"$@"' - setopt NO_GLOB_SUBST -else - case `(set -o) 2>/dev/null` in @%:@( - *posix*) : - set -o posix ;; @%:@( - *) : - ;; -esac -fi - - -as_nl=' -' -export as_nl -# Printing a long string crashes Solaris 7 /usr/bin/printf. -as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' -as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo -as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo -# Prefer a ksh shell builtin over an external printf program on Solaris, -# but without wasting forks for bash or zsh. -if test -z "$BASH_VERSION$ZSH_VERSION" \ - && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then - as_echo='print -r --' - as_echo_n='print -rn --' -elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then - as_echo='printf %s\n' - as_echo_n='printf %s' -else - if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then - as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' - as_echo_n='/usr/ucb/echo -n' - else - as_echo_body='eval expr "X$1" : "X\\(.*\\)"' - as_echo_n_body='eval - arg=$1; - case $arg in @%:@( - *"$as_nl"*) - expr "X$arg" : "X\\(.*\\)$as_nl"; - arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; - esac; - expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" - ' - export as_echo_n_body - as_echo_n='sh -c $as_echo_n_body as_echo' - fi - export as_echo_body - as_echo='sh -c $as_echo_body as_echo' -fi - -# The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then - PATH_SEPARATOR=: - (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { - (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || - PATH_SEPARATOR=';' - } -fi - - -# IFS -# We need space, tab and new line, in precisely that order. Quoting is -# there to prevent editors from complaining about space-tab. -# (If _AS_PATH_WALK were called with IFS unset, it would disable word -# splitting by setting IFS to empty value.) -IFS=" "" $as_nl" - -# Find who we are. Look in the path if we contain no directory separator. -as_myself= -case $0 in @%:@(( - *[\\/]* ) as_myself=$0 ;; - *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break - done -IFS=$as_save_IFS - - ;; -esac -# We did not find ourselves, most probably we were run as `sh COMMAND' -# in which case we are not to be found in the path. -if test "x$as_myself" = x; then - as_myself=$0 -fi -if test ! -f "$as_myself"; then - $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 - exit 1 -fi - -# Unset variables that we do not need and which cause bugs (e.g. in -# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" -# suppresses any "Segmentation fault" message there. '((' could -# trigger a bug in pdksh 5.2.14. -for as_var in BASH_ENV ENV MAIL MAILPATH -do eval test x\${$as_var+set} = xset \ - && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : -done -PS1='$ ' -PS2='> ' -PS4='+ ' - -# NLS nuisances. -LC_ALL=C -export LC_ALL -LANGUAGE=C -export LANGUAGE - -# CDPATH. -(unset CDPATH) >/dev/null 2>&1 && unset CDPATH - -# Use a proper internal environment variable to ensure we don't fall - # into an infinite loop, continuously re-executing ourselves. - if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then - _as_can_reexec=no; export _as_can_reexec; - # We cannot yet assume a decent shell, so we have to provide a -# neutralization value for shells without unset; and this also -# works around shells that cannot unset nonexistent variables. -# Preserve -v and -x to the replacement shell. -BASH_ENV=/dev/null -ENV=/dev/null -(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV -case $- in @%:@ (((( - *v*x* | *x*v* ) as_opts=-vx ;; - *v* ) as_opts=-v ;; - *x* ) as_opts=-x ;; - * ) as_opts= ;; -esac -exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} -# Admittedly, this is quite paranoid, since all the known shells bail -# out after a failed `exec'. -$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 -as_fn_exit 255 - fi - # We don't want this to propagate to other subprocesses. - { _as_can_reexec=; unset _as_can_reexec;} -if test "x$CONFIG_SHELL" = x; then - as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : - emulate sh - NULLCMD=: - # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which - # is contrary to our usage. Disable this feature. - alias -g '\${1+\"\$@\"}'='\"\$@\"' - setopt NO_GLOB_SUBST -else - case \`(set -o) 2>/dev/null\` in @%:@( - *posix*) : - set -o posix ;; @%:@( - *) : - ;; -esac -fi -" - as_required="as_fn_return () { (exit \$1); } -as_fn_success () { as_fn_return 0; } -as_fn_failure () { as_fn_return 1; } -as_fn_ret_success () { return 0; } -as_fn_ret_failure () { return 1; } - -exitcode=0 -as_fn_success || { exitcode=1; echo as_fn_success failed.; } -as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } -as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } -as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } -if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : - -else - exitcode=1; echo positional parameters were not saved. -fi -test x\$exitcode = x0 || exit 1 -test -x / || exit 1" - as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO - as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO - eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && - test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1 -test \$(( 1 + 1 )) = 2 || exit 1" - if (eval "$as_required") 2>/dev/null; then : - as_have_required=yes -else - as_have_required=no -fi - if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then : - -else - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -as_found=false -for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - as_found=: - case $as_dir in @%:@( - /*) - for as_base in sh bash ksh sh5; do - # Try only shells that exist, to save several forks. - as_shell=$as_dir/$as_base - if { test -f "$as_shell" || test -f "$as_shell.exe"; } && - { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then : - CONFIG_SHELL=$as_shell as_have_required=yes - if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then : - break 2 -fi -fi - done;; - esac - as_found=false -done -$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } && - { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then : - CONFIG_SHELL=$SHELL as_have_required=yes -fi; } -IFS=$as_save_IFS - - - if test "x$CONFIG_SHELL" != x; then : - export CONFIG_SHELL - # We cannot yet assume a decent shell, so we have to provide a -# neutralization value for shells without unset; and this also -# works around shells that cannot unset nonexistent variables. -# Preserve -v and -x to the replacement shell. -BASH_ENV=/dev/null -ENV=/dev/null -(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV -case $- in @%:@ (((( - *v*x* | *x*v* ) as_opts=-vx ;; - *v* ) as_opts=-v ;; - *x* ) as_opts=-x ;; - * ) as_opts= ;; -esac -exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} -# Admittedly, this is quite paranoid, since all the known shells bail -# out after a failed `exec'. -$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 -exit 255 -fi - - if test x$as_have_required = xno; then : - $as_echo "$0: This script requires a shell more modern than all" - $as_echo "$0: the shells that I found on your system." - if test x${ZSH_VERSION+set} = xset ; then - $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should" - $as_echo "$0: be upgraded to zsh 4.3.4 or later." - else - $as_echo "$0: Please tell bug-autoconf@gnu.org and -$0: http://guvcview.sourceforge.net/ about your system, -$0: including any error possibly output before this -$0: message. Then install a modern shell, or manually run -$0: the script under such a shell if you do have one." - fi - exit 1 -fi -fi -fi -SHELL=${CONFIG_SHELL-/bin/sh} -export SHELL -# Unset more variables known to interfere with behavior of common tools. -CLICOLOR_FORCE= GREP_OPTIONS= -unset CLICOLOR_FORCE GREP_OPTIONS - -## --------------------- ## -## M4sh Shell Functions. ## -## --------------------- ## -@%:@ as_fn_unset VAR -@%:@ --------------- -@%:@ Portably unset VAR. -as_fn_unset () -{ - { eval $1=; unset $1;} -} -as_unset=as_fn_unset - -@%:@ as_fn_set_status STATUS -@%:@ ----------------------- -@%:@ Set @S|@? to STATUS, without forking. -as_fn_set_status () -{ - return $1 -} @%:@ as_fn_set_status - -@%:@ as_fn_exit STATUS -@%:@ ----------------- -@%:@ Exit the shell with STATUS, even in a "trap 0" or "set -e" context. -as_fn_exit () -{ - set +e - as_fn_set_status $1 - exit $1 -} @%:@ as_fn_exit - -@%:@ as_fn_mkdir_p -@%:@ ------------- -@%:@ Create "@S|@as_dir" as a directory, including parents if necessary. -as_fn_mkdir_p () -{ - - case $as_dir in #( - -*) as_dir=./$as_dir;; - esac - test -d "$as_dir" || eval $as_mkdir_p || { - as_dirs= - while :; do - case $as_dir in #( - *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( - *) as_qdir=$as_dir;; - esac - as_dirs="'$as_qdir' $as_dirs" - as_dir=`$as_dirname -- "$as_dir" || -$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$as_dir" : 'X\(//\)[^/]' \| \ - X"$as_dir" : 'X\(//\)$' \| \ - X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$as_dir" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - test -d "$as_dir" && break - done - test -z "$as_dirs" || eval "mkdir $as_dirs" - } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" - - -} @%:@ as_fn_mkdir_p - -@%:@ as_fn_executable_p FILE -@%:@ ----------------------- -@%:@ Test if FILE is an executable regular file. -as_fn_executable_p () -{ - test -f "$1" && test -x "$1" -} @%:@ as_fn_executable_p -@%:@ as_fn_append VAR VALUE -@%:@ ---------------------- -@%:@ Append the text in VALUE to the end of the definition contained in VAR. Take -@%:@ advantage of any shell optimizations that allow amortized linear growth over -@%:@ repeated appends, instead of the typical quadratic growth present in naive -@%:@ implementations. -if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : - eval 'as_fn_append () - { - eval $1+=\$2 - }' -else - as_fn_append () - { - eval $1=\$$1\$2 - } -fi # as_fn_append - -@%:@ as_fn_arith ARG... -@%:@ ------------------ -@%:@ Perform arithmetic evaluation on the ARGs, and store the result in the -@%:@ global @S|@as_val. Take advantage of shells that can avoid forks. The arguments -@%:@ must be portable across @S|@(()) and expr. -if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : - eval 'as_fn_arith () - { - as_val=$(( $* )) - }' -else - as_fn_arith () - { - as_val=`expr "$@" || test $? -eq 1` - } -fi # as_fn_arith - - -@%:@ as_fn_error STATUS ERROR [LINENO LOG_FD] -@%:@ ---------------------------------------- -@%:@ Output "`basename @S|@0`: error: ERROR" to stderr. If LINENO and LOG_FD are -@%:@ provided, also output the error to LOG_FD, referencing LINENO. Then exit the -@%:@ script with STATUS, using 1 if that was 0. -as_fn_error () -{ - as_status=$1; test $as_status -eq 0 && as_status=1 - if test "$4"; then - as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 - fi - $as_echo "$as_me: error: $2" >&2 - as_fn_exit $as_status -} @%:@ as_fn_error - -if expr a : '\(a\)' >/dev/null 2>&1 && - test "X`expr 00001 : '.*\(...\)'`" = X001; then - as_expr=expr -else - as_expr=false -fi - -if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then - as_basename=basename -else - as_basename=false -fi - -if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then - as_dirname=dirname -else - as_dirname=false -fi - -as_me=`$as_basename -- "$0" || -$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ - X"$0" : 'X\(//\)$' \| \ - X"$0" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X/"$0" | - sed '/^.*\/\([^/][^/]*\)\/*$/{ - s//\1/ - q - } - /^X\/\(\/\/\)$/{ - s//\1/ - q - } - /^X\/\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - -# Avoid depending upon Character Ranges. -as_cr_letters='abcdefghijklmnopqrstuvwxyz' -as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' -as_cr_Letters=$as_cr_letters$as_cr_LETTERS -as_cr_digits='0123456789' -as_cr_alnum=$as_cr_Letters$as_cr_digits - - - as_lineno_1=$LINENO as_lineno_1a=$LINENO - as_lineno_2=$LINENO as_lineno_2a=$LINENO - eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && - test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { - # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) - sed -n ' - p - /[$]LINENO/= - ' <$as_myself | - sed ' - s/[$]LINENO.*/&-/ - t lineno - b - :lineno - N - :loop - s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ - t loop - s/-\n.*// - ' >$as_me.lineno && - chmod +x "$as_me.lineno" || - { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } - - # If we had to re-execute with $CONFIG_SHELL, we're ensured to have - # already done that, so ensure we don't try to do so again and fall - # in an infinite loop. This has already happened in practice. - _as_can_reexec=no; export _as_can_reexec - # Don't try to exec as it changes $[0], causing all sort of problems - # (the dirname of $[0] is not the place where we might find the - # original and so on. Autoconf is especially sensitive to this). - . "./$as_me.lineno" - # Exit status is that of the last command. - exit -} - -ECHO_C= ECHO_N= ECHO_T= -case `echo -n x` in @%:@((((( --n*) - case `echo 'xy\c'` in - *c*) ECHO_T=' ';; # ECHO_T is single tab character. - xy) ECHO_C='\c';; - *) echo `echo ksh88 bug on AIX 6.1` > /dev/null - ECHO_T=' ';; - esac;; -*) - ECHO_N='-n';; -esac - -rm -f conf$$ conf$$.exe conf$$.file -if test -d conf$$.dir; then - rm -f conf$$.dir/conf$$.file -else - rm -f conf$$.dir - mkdir conf$$.dir 2>/dev/null -fi -if (echo >conf$$.file) 2>/dev/null; then - if ln -s conf$$.file conf$$ 2>/dev/null; then - as_ln_s='ln -s' - # ... but there are two gotchas: - # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. - # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. - # In both cases, we have to default to `cp -pR'. - ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || - as_ln_s='cp -pR' - elif ln conf$$.file conf$$ 2>/dev/null; then - as_ln_s=ln - else - as_ln_s='cp -pR' - fi -else - as_ln_s='cp -pR' -fi -rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file -rmdir conf$$.dir 2>/dev/null - -if mkdir -p . 2>/dev/null; then - as_mkdir_p='mkdir -p "$as_dir"' -else - test -d ./-p && rmdir ./-p - as_mkdir_p=false -fi - -as_test_x='test -x' -as_executable_p=as_fn_executable_p - -# Sed expression to map a string onto a valid CPP name. -as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" - -# Sed expression to map a string onto a valid variable name. -as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" - - -test -n "$DJDIR" || exec 7<&0 &1 - -# Name of the host. -# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status, -# so uname gets run too. -ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` - -# -# Initializations. -# -ac_default_prefix=/usr/local -ac_clean_files= -ac_config_libobj_dir=. -LIB@&t@OBJS= -cross_compiling=no -subdirs= -MFLAGS= -MAKEFLAGS= - -# Identity of this package. -PACKAGE_NAME='guvcview' -PACKAGE_TARNAME='guvcview' -PACKAGE_VERSION='1.7.3' -PACKAGE_STRING='guvcview 1.7.3' -PACKAGE_BUGREPORT='http://guvcview.sourceforge.net/' -PACKAGE_URL='' - -ac_default_prefix=/usr/local -# Factoring default headers for most tests. -ac_includes_default="\ -#include -#ifdef HAVE_SYS_TYPES_H -# include -#endif -#ifdef HAVE_SYS_STAT_H -# include -#endif -#ifdef STDC_HEADERS -# include -# include -#else -# ifdef HAVE_STDLIB_H -# include -# endif -#endif -#ifdef HAVE_STRING_H -# if !defined STDC_HEADERS && defined HAVE_MEMORY_H -# include -# endif -# include -#endif -#ifdef HAVE_STRINGS_H -# include -#endif -#ifdef HAVE_INTTYPES_H -# include -#endif -#ifdef HAVE_STDINT_H -# include -#endif -#ifdef HAVE_UNISTD_H -# include -#endif" - -ac_subst_vars='am__EXEEXT_FALSE -am__EXEEXT_TRUE -LTLIBOBJS -LIB@&t@OBJS -PULSE_LIBS -PULSE_CFLAGS -DESKTOP_FALSE -DESKTOP_TRUE -DEBIAN_MENU_FALSE -DEBIAN_MENU_TRUE -DEPS_LIBS -DEPS_CFLAGS -PKG_CONFIG_LIBDIR -PKG_CONFIG_PATH -PKG_CONFIG -MKINSTALLDIRS -POSUB -POFILES -PO_IN_DATADIR_FALSE -PO_IN_DATADIR_TRUE -INTLLIBS -INSTOBJEXT -GMOFILES -CATOBJEXT -CATALOGS -MSGFMT_OPTS -DATADIRNAME -ALL_LINGUAS -INTLTOOL_PERL -GMSGFMT -MSGFMT -MSGMERGE -XGETTEXT -INTLTOOL_POLICY_RULE -INTLTOOL_SERVICE_RULE -INTLTOOL_THEME_RULE -INTLTOOL_SCHEMAS_RULE -INTLTOOL_CAVES_RULE -INTLTOOL_XML_NOMERGE_RULE -INTLTOOL_XML_RULE -INTLTOOL_KBD_RULE -INTLTOOL_XAM_RULE -INTLTOOL_UI_RULE -INTLTOOL_SOUNDLIST_RULE -INTLTOOL_SHEET_RULE -INTLTOOL_SERVER_RULE -INTLTOOL_PONG_RULE -INTLTOOL_OAF_RULE -INTLTOOL_PROP_RULE -INTLTOOL_KEYS_RULE -INTLTOOL_DIRECTORY_RULE -INTLTOOL_DESKTOP_RULE -INTLTOOL_EXTRACT -INTLTOOL_MERGE -INTLTOOL_UPDATE -USE_NLS -GETTEXT_PACKAGE -PTHREAD_CFLAGS -PTHREAD_LIBS -PTHREAD_CC -acx_pthread_config -host_os -host_vendor -host_cpu -host -build_os -build_vendor -build_cpu -build -EGREP -GREP -CPP -am__fastdepCC_FALSE -am__fastdepCC_TRUE -CCDEPMODE -am__nodep -AMDEPBACKSLASH -AMDEP_FALSE -AMDEP_TRUE -am__quote -am__include -DEPDIR -OBJEXT -EXEEXT -ac_ct_CC -CPPFLAGS -LDFLAGS -CFLAGS -CC -MAINT -MAINTAINER_MODE_FALSE -MAINTAINER_MODE_TRUE -am__untar -am__tar -AMTAR -am__leading_dot -SET_MAKE -AWK -mkdir_p -MKDIR_P -INSTALL_STRIP_PROGRAM -STRIP -install_sh -MAKEINFO -AUTOHEADER -AUTOMAKE -AUTOCONF -ACLOCAL -VERSION -PACKAGE -CYGPATH_W -am__isrc -INSTALL_DATA -INSTALL_SCRIPT -INSTALL_PROGRAM -AM_BACKSLASH -AM_DEFAULT_VERBOSITY -AM_DEFAULT_V -AM_V -target_alias -host_alias -build_alias -LIBS -ECHO_T -ECHO_N -ECHO_C -DEFS -mandir -localedir -libdir -psdir -pdfdir -dvidir -htmldir -infodir -docdir -oldincludedir -includedir -localstatedir -sharedstatedir -sysconfdir -datadir -datarootdir -libexecdir -sbindir -bindir -program_transform_name -prefix -exec_prefix -PACKAGE_URL -PACKAGE_BUGREPORT -PACKAGE_STRING -PACKAGE_VERSION -PACKAGE_TARNAME -PACKAGE_NAME -PATH_SEPARATOR -SHELL' -ac_subst_files='' -ac_user_opts=' -enable_option_checking -enable_silent_rules -enable_maintainer_mode -enable_dependency_tracking -enable_debug -enable_nls -enable_debian_menu -enable_desktop -enable_pulse -' - ac_precious_vars='build_alias -host_alias -target_alias -CC -CFLAGS -LDFLAGS -LIBS -CPPFLAGS -CPP -PKG_CONFIG -PKG_CONFIG_PATH -PKG_CONFIG_LIBDIR -DEPS_CFLAGS -DEPS_LIBS -PULSE_CFLAGS -PULSE_LIBS' - - -# Initialize some variables set by options. -ac_init_help= -ac_init_version=false -ac_unrecognized_opts= -ac_unrecognized_sep= -# The variables have the same names as the options, with -# dashes changed to underlines. -cache_file=/dev/null -exec_prefix=NONE -no_create= -no_recursion= -prefix=NONE -program_prefix=NONE -program_suffix=NONE -program_transform_name=s,x,x, -silent= -site= -srcdir= -verbose= -x_includes=NONE -x_libraries=NONE - -# Installation directory options. -# These are left unexpanded so users can "make install exec_prefix=/foo" -# and all the variables that are supposed to be based on exec_prefix -# by default will actually change. -# Use braces instead of parens because sh, perl, etc. also accept them. -# (The list follows the same order as the GNU Coding Standards.) -bindir='${exec_prefix}/bin' -sbindir='${exec_prefix}/sbin' -libexecdir='${exec_prefix}/libexec' -datarootdir='${prefix}/share' -datadir='${datarootdir}' -sysconfdir='${prefix}/etc' -sharedstatedir='${prefix}/com' -localstatedir='${prefix}/var' -includedir='${prefix}/include' -oldincludedir='/usr/include' -docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' -infodir='${datarootdir}/info' -htmldir='${docdir}' -dvidir='${docdir}' -pdfdir='${docdir}' -psdir='${docdir}' -libdir='${exec_prefix}/lib' -localedir='${datarootdir}/locale' -mandir='${datarootdir}/man' - -ac_prev= -ac_dashdash= -for ac_option -do - # If the previous option needs an argument, assign it. - if test -n "$ac_prev"; then - eval $ac_prev=\$ac_option - ac_prev= - continue - fi - - case $ac_option in - *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; - *=) ac_optarg= ;; - *) ac_optarg=yes ;; - esac - - # Accept the important Cygnus configure options, so we can diagnose typos. - - case $ac_dashdash$ac_option in - --) - ac_dashdash=yes ;; - - -bindir | --bindir | --bindi | --bind | --bin | --bi) - ac_prev=bindir ;; - -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) - bindir=$ac_optarg ;; - - -build | --build | --buil | --bui | --bu) - ac_prev=build_alias ;; - -build=* | --build=* | --buil=* | --bui=* | --bu=*) - build_alias=$ac_optarg ;; - - -cache-file | --cache-file | --cache-fil | --cache-fi \ - | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) - ac_prev=cache_file ;; - -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ - | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) - cache_file=$ac_optarg ;; - - --config-cache | -C) - cache_file=config.cache ;; - - -datadir | --datadir | --datadi | --datad) - ac_prev=datadir ;; - -datadir=* | --datadir=* | --datadi=* | --datad=*) - datadir=$ac_optarg ;; - - -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ - | --dataroo | --dataro | --datar) - ac_prev=datarootdir ;; - -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ - | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) - datarootdir=$ac_optarg ;; - - -disable-* | --disable-*) - ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error $? "invalid feature name: $ac_useropt" - ac_useropt_orig=$ac_useropt - ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` - case $ac_user_opts in - *" -"enable_$ac_useropt" -"*) ;; - *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" - ac_unrecognized_sep=', ';; - esac - eval enable_$ac_useropt=no ;; - - -docdir | --docdir | --docdi | --doc | --do) - ac_prev=docdir ;; - -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) - docdir=$ac_optarg ;; - - -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) - ac_prev=dvidir ;; - -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) - dvidir=$ac_optarg ;; - - -enable-* | --enable-*) - ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error $? "invalid feature name: $ac_useropt" - ac_useropt_orig=$ac_useropt - ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` - case $ac_user_opts in - *" -"enable_$ac_useropt" -"*) ;; - *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" - ac_unrecognized_sep=', ';; - esac - eval enable_$ac_useropt=\$ac_optarg ;; - - -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ - | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ - | --exec | --exe | --ex) - ac_prev=exec_prefix ;; - -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ - | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ - | --exec=* | --exe=* | --ex=*) - exec_prefix=$ac_optarg ;; - - -gas | --gas | --ga | --g) - # Obsolete; use --with-gas. - with_gas=yes ;; - - -help | --help | --hel | --he | -h) - ac_init_help=long ;; - -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) - ac_init_help=recursive ;; - -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) - ac_init_help=short ;; - - -host | --host | --hos | --ho) - ac_prev=host_alias ;; - -host=* | --host=* | --hos=* | --ho=*) - host_alias=$ac_optarg ;; - - -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) - ac_prev=htmldir ;; - -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ - | --ht=*) - htmldir=$ac_optarg ;; - - -includedir | --includedir | --includedi | --included | --include \ - | --includ | --inclu | --incl | --inc) - ac_prev=includedir ;; - -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ - | --includ=* | --inclu=* | --incl=* | --inc=*) - includedir=$ac_optarg ;; - - -infodir | --infodir | --infodi | --infod | --info | --inf) - ac_prev=infodir ;; - -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) - infodir=$ac_optarg ;; - - -libdir | --libdir | --libdi | --libd) - ac_prev=libdir ;; - -libdir=* | --libdir=* | --libdi=* | --libd=*) - libdir=$ac_optarg ;; - - -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ - | --libexe | --libex | --libe) - ac_prev=libexecdir ;; - -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ - | --libexe=* | --libex=* | --libe=*) - libexecdir=$ac_optarg ;; - - -localedir | --localedir | --localedi | --localed | --locale) - ac_prev=localedir ;; - -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) - localedir=$ac_optarg ;; - - -localstatedir | --localstatedir | --localstatedi | --localstated \ - | --localstate | --localstat | --localsta | --localst | --locals) - ac_prev=localstatedir ;; - -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ - | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) - localstatedir=$ac_optarg ;; - - -mandir | --mandir | --mandi | --mand | --man | --ma | --m) - ac_prev=mandir ;; - -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) - mandir=$ac_optarg ;; - - -nfp | --nfp | --nf) - # Obsolete; use --without-fp. - with_fp=no ;; - - -no-create | --no-create | --no-creat | --no-crea | --no-cre \ - | --no-cr | --no-c | -n) - no_create=yes ;; - - -no-recursion | --no-recursion | --no-recursio | --no-recursi \ - | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) - no_recursion=yes ;; - - -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ - | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ - | --oldin | --oldi | --old | --ol | --o) - ac_prev=oldincludedir ;; - -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ - | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ - | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) - oldincludedir=$ac_optarg ;; - - -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) - ac_prev=prefix ;; - -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) - prefix=$ac_optarg ;; - - -program-prefix | --program-prefix | --program-prefi | --program-pref \ - | --program-pre | --program-pr | --program-p) - ac_prev=program_prefix ;; - -program-prefix=* | --program-prefix=* | --program-prefi=* \ - | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) - program_prefix=$ac_optarg ;; - - -program-suffix | --program-suffix | --program-suffi | --program-suff \ - | --program-suf | --program-su | --program-s) - ac_prev=program_suffix ;; - -program-suffix=* | --program-suffix=* | --program-suffi=* \ - | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) - program_suffix=$ac_optarg ;; - - -program-transform-name | --program-transform-name \ - | --program-transform-nam | --program-transform-na \ - | --program-transform-n | --program-transform- \ - | --program-transform | --program-transfor \ - | --program-transfo | --program-transf \ - | --program-trans | --program-tran \ - | --progr-tra | --program-tr | --program-t) - ac_prev=program_transform_name ;; - -program-transform-name=* | --program-transform-name=* \ - | --program-transform-nam=* | --program-transform-na=* \ - | --program-transform-n=* | --program-transform-=* \ - | --program-transform=* | --program-transfor=* \ - | --program-transfo=* | --program-transf=* \ - | --program-trans=* | --program-tran=* \ - | --progr-tra=* | --program-tr=* | --program-t=*) - program_transform_name=$ac_optarg ;; - - -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) - ac_prev=pdfdir ;; - -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) - pdfdir=$ac_optarg ;; - - -psdir | --psdir | --psdi | --psd | --ps) - ac_prev=psdir ;; - -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) - psdir=$ac_optarg ;; - - -q | -quiet | --quiet | --quie | --qui | --qu | --q \ - | -silent | --silent | --silen | --sile | --sil) - silent=yes ;; - - -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) - ac_prev=sbindir ;; - -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ - | --sbi=* | --sb=*) - sbindir=$ac_optarg ;; - - -sharedstatedir | --sharedstatedir | --sharedstatedi \ - | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ - | --sharedst | --shareds | --shared | --share | --shar \ - | --sha | --sh) - ac_prev=sharedstatedir ;; - -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ - | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ - | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ - | --sha=* | --sh=*) - sharedstatedir=$ac_optarg ;; - - -site | --site | --sit) - ac_prev=site ;; - -site=* | --site=* | --sit=*) - site=$ac_optarg ;; - - -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) - ac_prev=srcdir ;; - -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) - srcdir=$ac_optarg ;; - - -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ - | --syscon | --sysco | --sysc | --sys | --sy) - ac_prev=sysconfdir ;; - -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ - | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) - sysconfdir=$ac_optarg ;; - - -target | --target | --targe | --targ | --tar | --ta | --t) - ac_prev=target_alias ;; - -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) - target_alias=$ac_optarg ;; - - -v | -verbose | --verbose | --verbos | --verbo | --verb) - verbose=yes ;; - - -version | --version | --versio | --versi | --vers | -V) - ac_init_version=: ;; - - -with-* | --with-*) - ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error $? "invalid package name: $ac_useropt" - ac_useropt_orig=$ac_useropt - ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` - case $ac_user_opts in - *" -"with_$ac_useropt" -"*) ;; - *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" - ac_unrecognized_sep=', ';; - esac - eval with_$ac_useropt=\$ac_optarg ;; - - -without-* | --without-*) - ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error $? "invalid package name: $ac_useropt" - ac_useropt_orig=$ac_useropt - ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` - case $ac_user_opts in - *" -"with_$ac_useropt" -"*) ;; - *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" - ac_unrecognized_sep=', ';; - esac - eval with_$ac_useropt=no ;; - - --x) - # Obsolete; use --with-x. - with_x=yes ;; - - -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ - | --x-incl | --x-inc | --x-in | --x-i) - ac_prev=x_includes ;; - -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ - | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) - x_includes=$ac_optarg ;; - - -x-libraries | --x-libraries | --x-librarie | --x-librari \ - | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) - ac_prev=x_libraries ;; - -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ - | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) - x_libraries=$ac_optarg ;; - - -*) as_fn_error $? "unrecognized option: \`$ac_option' -Try \`$0 --help' for more information" - ;; - - *=*) - ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` - # Reject names that are not valid shell variable names. - case $ac_envvar in #( - '' | [0-9]* | *[!_$as_cr_alnum]* ) - as_fn_error $? "invalid variable name: \`$ac_envvar'" ;; - esac - eval $ac_envvar=\$ac_optarg - export $ac_envvar ;; - - *) - # FIXME: should be removed in autoconf 3.0. - $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 - expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && - $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 - : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}" - ;; - - esac -done - -if test -n "$ac_prev"; then - ac_option=--`echo $ac_prev | sed 's/_/-/g'` - as_fn_error $? "missing argument to $ac_option" -fi - -if test -n "$ac_unrecognized_opts"; then - case $enable_option_checking in - no) ;; - fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; - *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; - esac -fi - -# Check all directory arguments for consistency. -for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ - datadir sysconfdir sharedstatedir localstatedir includedir \ - oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ - libdir localedir mandir -do - eval ac_val=\$$ac_var - # Remove trailing slashes. - case $ac_val in - */ ) - ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` - eval $ac_var=\$ac_val;; - esac - # Be sure to have absolute directory names. - case $ac_val in - [\\/$]* | ?:[\\/]* ) continue;; - NONE | '' ) case $ac_var in *prefix ) continue;; esac;; - esac - as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" -done - -# There might be people who depend on the old broken behavior: `$host' -# used to hold the argument of --host etc. -# FIXME: To remove some day. -build=$build_alias -host=$host_alias -target=$target_alias - -# FIXME: To remove some day. -if test "x$host_alias" != x; then - if test "x$build_alias" = x; then - cross_compiling=maybe - elif test "x$build_alias" != "x$host_alias"; then - cross_compiling=yes - fi -fi - -ac_tool_prefix= -test -n "$host_alias" && ac_tool_prefix=$host_alias- - -test "$silent" = yes && exec 6>/dev/null - - -ac_pwd=`pwd` && test -n "$ac_pwd" && -ac_ls_di=`ls -di .` && -ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || - as_fn_error $? "working directory cannot be determined" -test "X$ac_ls_di" = "X$ac_pwd_ls_di" || - as_fn_error $? "pwd does not report name of working directory" - - -# Find the source files, if location was not specified. -if test -z "$srcdir"; then - ac_srcdir_defaulted=yes - # Try the directory containing this script, then the parent directory. - ac_confdir=`$as_dirname -- "$as_myself" || -$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$as_myself" : 'X\(//\)[^/]' \| \ - X"$as_myself" : 'X\(//\)$' \| \ - X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$as_myself" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - srcdir=$ac_confdir - if test ! -r "$srcdir/$ac_unique_file"; then - srcdir=.. - fi -else - ac_srcdir_defaulted=no -fi -if test ! -r "$srcdir/$ac_unique_file"; then - test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." - as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir" -fi -ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" -ac_abs_confdir=`( - cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg" - pwd)` -# When building in place, set srcdir=. -if test "$ac_abs_confdir" = "$ac_pwd"; then - srcdir=. -fi -# Remove unnecessary trailing slashes from srcdir. -# Double slashes in file names in object file debugging info -# mess up M-x gdb in Emacs. -case $srcdir in -*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; -esac -for ac_var in $ac_precious_vars; do - eval ac_env_${ac_var}_set=\${${ac_var}+set} - eval ac_env_${ac_var}_value=\$${ac_var} - eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} - eval ac_cv_env_${ac_var}_value=\$${ac_var} -done - -# -# Report the --help message. -# -if test "$ac_init_help" = "long"; then - # Omit some internal or obsolete options to make the list less imposing. - # This message is too long to be a string in the A/UX 3.1 sh. - cat <<_ACEOF -\`configure' configures guvcview 1.7.3 to adapt to many kinds of systems. - -Usage: $0 [OPTION]... [VAR=VALUE]... - -To assign environment variables (e.g., CC, CFLAGS...), specify them as -VAR=VALUE. See below for descriptions of some of the useful variables. - -Defaults for the options are specified in brackets. - -Configuration: - -h, --help display this help and exit - --help=short display options specific to this package - --help=recursive display the short help of all the included packages - -V, --version display version information and exit - -q, --quiet, --silent do not print \`checking ...' messages - --cache-file=FILE cache test results in FILE [disabled] - -C, --config-cache alias for \`--cache-file=config.cache' - -n, --no-create do not create output files - --srcdir=DIR find the sources in DIR [configure dir or \`..'] - -Installation directories: - --prefix=PREFIX install architecture-independent files in PREFIX - @<:@@S|@ac_default_prefix@:>@ - --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX - @<:@PREFIX@:>@ - -By default, \`make install' will install all the files in -\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify -an installation prefix other than \`$ac_default_prefix' using \`--prefix', -for instance \`--prefix=\$HOME'. - -For better control, use the options below. - -Fine tuning of the installation directories: - --bindir=DIR user executables [EPREFIX/bin] - --sbindir=DIR system admin executables [EPREFIX/sbin] - --libexecdir=DIR program executables [EPREFIX/libexec] - --sysconfdir=DIR read-only single-machine data [PREFIX/etc] - --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] - --localstatedir=DIR modifiable single-machine data [PREFIX/var] - --libdir=DIR object code libraries [EPREFIX/lib] - --includedir=DIR C header files [PREFIX/include] - --oldincludedir=DIR C header files for non-gcc [/usr/include] - --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] - --datadir=DIR read-only architecture-independent data [DATAROOTDIR] - --infodir=DIR info documentation [DATAROOTDIR/info] - --localedir=DIR locale-dependent data [DATAROOTDIR/locale] - --mandir=DIR man documentation [DATAROOTDIR/man] - --docdir=DIR documentation root @<:@DATAROOTDIR/doc/guvcview@:>@ - --htmldir=DIR html documentation [DOCDIR] - --dvidir=DIR dvi documentation [DOCDIR] - --pdfdir=DIR pdf documentation [DOCDIR] - --psdir=DIR ps documentation [DOCDIR] -_ACEOF - - cat <<\_ACEOF - -Program names: - --program-prefix=PREFIX prepend PREFIX to installed program names - --program-suffix=SUFFIX append SUFFIX to installed program names - --program-transform-name=PROGRAM run sed PROGRAM on installed program names - -System types: - --build=BUILD configure for building on BUILD [guessed] - --host=HOST cross-compile to build programs to run on HOST [BUILD] -_ACEOF -fi - -if test -n "$ac_init_help"; then - case $ac_init_help in - short | recursive ) echo "Configuration of guvcview 1.7.3:";; - esac - cat <<\_ACEOF - -Optional Features: - --disable-option-checking ignore unrecognized --enable/--with options - --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) - --enable-FEATURE[=ARG] include FEATURE [ARG=yes] - --enable-silent-rules less verbose build output (undo: "make V=1") - --disable-silent-rules verbose build output (undo: "make V=0") - --enable-maintainer-mode - enable make rules and dependencies not useful (and - sometimes confusing) to the casual installer - --enable-dependency-tracking - do not reject slow dependency extractors - --disable-dependency-tracking - speeds up one-time build - --enable-debug enable debug compile w/ debugging - if \@S|@CFLAGS is - set, add -g there, too - --disable-nls do not use Native Language Support - --disable-debian-menu disable debian menu (default: enabled) - --disable-desktop disable desktop file (default: enabled) - --disable-pulse disable pulseaudio support (default: enabled) - -Some influential environment variables: - CC C compiler command - CFLAGS C compiler flags - LDFLAGS linker flags, e.g. -L if you have libraries in a - nonstandard directory - LIBS libraries to pass to the linker, e.g. -l - CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I if - you have headers in a nonstandard directory - CPP C preprocessor - PKG_CONFIG path to pkg-config utility - PKG_CONFIG_PATH - directories to add to pkg-config's search path - PKG_CONFIG_LIBDIR - path overriding pkg-config's built-in search path - DEPS_CFLAGS C compiler flags for DEPS, overriding pkg-config - DEPS_LIBS linker flags for DEPS, overriding pkg-config - PULSE_CFLAGS - C compiler flags for PULSE, overriding pkg-config - PULSE_LIBS linker flags for PULSE, overriding pkg-config - -Use these variables to override the choices made by `configure' or to help -it to find libraries and programs with nonstandard names/locations. - -Report bugs to . -_ACEOF -ac_status=$? -fi - -if test "$ac_init_help" = "recursive"; then - # If there are subdirs, report their specific --help. - for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue - test -d "$ac_dir" || - { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || - continue - ac_builddir=. - -case "$ac_dir" in -.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; -*) - ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` - # A ".." for each directory in $ac_dir_suffix. - ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` - case $ac_top_builddir_sub in - "") ac_top_builddir_sub=. ac_top_build_prefix= ;; - *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; - esac ;; -esac -ac_abs_top_builddir=$ac_pwd -ac_abs_builddir=$ac_pwd$ac_dir_suffix -# for backward compatibility: -ac_top_builddir=$ac_top_build_prefix - -case $srcdir in - .) # We are building in place. - ac_srcdir=. - ac_top_srcdir=$ac_top_builddir_sub - ac_abs_top_srcdir=$ac_pwd ;; - [\\/]* | ?:[\\/]* ) # Absolute name. - ac_srcdir=$srcdir$ac_dir_suffix; - ac_top_srcdir=$srcdir - ac_abs_top_srcdir=$srcdir ;; - *) # Relative name. - ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix - ac_top_srcdir=$ac_top_build_prefix$srcdir - ac_abs_top_srcdir=$ac_pwd/$srcdir ;; -esac -ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix - - cd "$ac_dir" || { ac_status=$?; continue; } - # Check for guested configure. - if test -f "$ac_srcdir/configure.gnu"; then - echo && - $SHELL "$ac_srcdir/configure.gnu" --help=recursive - elif test -f "$ac_srcdir/configure"; then - echo && - $SHELL "$ac_srcdir/configure" --help=recursive - else - $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 - fi || ac_status=$? - cd "$ac_pwd" || { ac_status=$?; break; } - done -fi - -test -n "$ac_init_help" && exit $ac_status -if $ac_init_version; then - cat <<\_ACEOF -guvcview configure 1.7.3 -generated by GNU Autoconf 2.69 - -Copyright (C) 2012 Free Software Foundation, Inc. -This configure script is free software; the Free Software Foundation -gives unlimited permission to copy, distribute and modify it. -_ACEOF - exit -fi - -## ------------------------ ## -## Autoconf initialization. ## -## ------------------------ ## - -@%:@ ac_fn_c_try_compile LINENO -@%:@ -------------------------- -@%:@ Try to compile conftest.@S|@ac_ext, and return whether this succeeded. -ac_fn_c_try_compile () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - rm -f conftest.$ac_objext - if { { ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_compile") 2>conftest.err - ac_status=$? - if test -s conftest.err; then - grep -v '^ *+' conftest.err >conftest.er1 - cat conftest.er1 >&5 - mv -f conftest.er1 conftest.err - fi - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then : - ac_retval=0 -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_retval=1 -fi - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - as_fn_set_status $ac_retval - -} @%:@ ac_fn_c_try_compile - -@%:@ ac_fn_c_try_cpp LINENO -@%:@ ---------------------- -@%:@ Try to preprocess conftest.@S|@ac_ext, and return whether this succeeded. -ac_fn_c_try_cpp () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - if { { ac_try="$ac_cpp conftest.$ac_ext" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err - ac_status=$? - if test -s conftest.err; then - grep -v '^ *+' conftest.err >conftest.er1 - cat conftest.er1 >&5 - mv -f conftest.er1 conftest.err - fi - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } > conftest.i && { - test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || - test ! -s conftest.err - }; then : - ac_retval=0 -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_retval=1 -fi - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - as_fn_set_status $ac_retval - -} @%:@ ac_fn_c_try_cpp - -@%:@ ac_fn_c_try_run LINENO -@%:@ ---------------------- -@%:@ Try to link conftest.@S|@ac_ext, and return whether this succeeded. Assumes -@%:@ that executables *can* be run. -ac_fn_c_try_run () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - if { { ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_link") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && { ac_try='./conftest$ac_exeext' - { { case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; }; then : - ac_retval=0 -else - $as_echo "$as_me: program exited with status $ac_status" >&5 - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_retval=$ac_status -fi - rm -rf conftest.dSYM conftest_ipa8_conftest.oo - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - as_fn_set_status $ac_retval - -} @%:@ ac_fn_c_try_run - -@%:@ ac_fn_c_try_link LINENO -@%:@ ----------------------- -@%:@ Try to link conftest.@S|@ac_ext, and return whether this succeeded. -ac_fn_c_try_link () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - rm -f conftest.$ac_objext conftest$ac_exeext - if { { ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_link") 2>conftest.err - ac_status=$? - if test -s conftest.err; then - grep -v '^ *+' conftest.err >conftest.er1 - cat conftest.er1 >&5 - mv -f conftest.er1 conftest.err - fi - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && { - test "$cross_compiling" = yes || - test -x conftest$ac_exeext - }; then : - ac_retval=0 -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_retval=1 -fi - # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information - # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would - # interfere with the next link command; also delete a directory that is - # left behind by Apple's compiler. We do this before executing the actions. - rm -rf conftest.dSYM conftest_ipa8_conftest.oo - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - as_fn_set_status $ac_retval - -} @%:@ ac_fn_c_try_link - -@%:@ ac_fn_c_check_func LINENO FUNC VAR -@%:@ ---------------------------------- -@%:@ Tests whether FUNC exists, setting the cache variable VAR accordingly -ac_fn_c_check_func () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 -$as_echo_n "checking for $2... " >&6; } -if eval \${$3+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -/* Define $2 to an innocuous variant, in case declares $2. - For example, HP-UX 11i declares gettimeofday. */ -#define $2 innocuous_$2 - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char $2 (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef $2 - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char $2 (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined __stub_$2 || defined __stub___$2 -choke me -#endif - -int -main () -{ -return $2 (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - eval "$3=yes" -else - eval "$3=no" -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -eval ac_res=\$$3 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - -} @%:@ ac_fn_c_check_func - -@%:@ ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES -@%:@ ------------------------------------------------------- -@%:@ Tests whether HEADER exists, giving a warning if it cannot be compiled using -@%:@ the include files in INCLUDES and setting the cache variable VAR -@%:@ accordingly. -ac_fn_c_check_header_mongrel () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - if eval \${$3+:} false; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 -$as_echo_n "checking for $2... " >&6; } -if eval \${$3+:} false; then : - $as_echo_n "(cached) " >&6 -fi -eval ac_res=\$$3 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } -else - # Is the header compilable? -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5 -$as_echo_n "checking $2 usability... " >&6; } -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -@%:@include <$2> -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_header_compiler=yes -else - ac_header_compiler=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5 -$as_echo "$ac_header_compiler" >&6; } - -# Is the header present? -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5 -$as_echo_n "checking $2 presence... " >&6; } -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -@%:@include <$2> -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - ac_header_preproc=yes -else - ac_header_preproc=no -fi -rm -f conftest.err conftest.i conftest.$ac_ext -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5 -$as_echo "$ac_header_preproc" >&6; } - -# So? What about this header? -case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #(( - yes:no: ) - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5 -$as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 -$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} - ;; - no:yes:* ) - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5 -$as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: check for missing prerequisite headers?" >&5 -$as_echo "$as_me: WARNING: $2: check for missing prerequisite headers?" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5 -$as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&5 -$as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 -$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} -( $as_echo "## ----------------------------------------------- ## -## Report this to http://guvcview.sourceforge.net/ ## -## ----------------------------------------------- ##" - ) | sed "s/^/$as_me: WARNING: /" >&2 - ;; -esac - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 -$as_echo_n "checking for $2... " >&6; } -if eval \${$3+:} false; then : - $as_echo_n "(cached) " >&6 -else - eval "$3=\$ac_header_compiler" -fi -eval ac_res=\$$3 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } -fi - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - -} @%:@ ac_fn_c_check_header_mongrel - -@%:@ ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES -@%:@ ------------------------------------------------------- -@%:@ Tests whether HEADER exists and can be compiled using the include files in -@%:@ INCLUDES, setting the cache variable VAR accordingly. -ac_fn_c_check_header_compile () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 -$as_echo_n "checking for $2... " >&6; } -if eval \${$3+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -@%:@include <$2> -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - eval "$3=yes" -else - eval "$3=no" -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -eval ac_res=\$$3 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - -} @%:@ ac_fn_c_check_header_compile -cat >config.log <<_ACEOF -This file contains any messages produced by compilers while -running configure, to aid debugging if configure makes a mistake. - -It was created by guvcview $as_me 1.7.3, which was -generated by GNU Autoconf 2.69. Invocation command line was - - $ $0 $@ - -_ACEOF -exec 5>>config.log -{ -cat <<_ASUNAME -## --------- ## -## Platform. ## -## --------- ## - -hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` -uname -m = `(uname -m) 2>/dev/null || echo unknown` -uname -r = `(uname -r) 2>/dev/null || echo unknown` -uname -s = `(uname -s) 2>/dev/null || echo unknown` -uname -v = `(uname -v) 2>/dev/null || echo unknown` - -/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` -/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` - -/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` -/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` -/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` -/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` -/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` -/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` -/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` - -_ASUNAME - -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - $as_echo "PATH: $as_dir" - done -IFS=$as_save_IFS - -} >&5 - -cat >&5 <<_ACEOF - - -## ----------- ## -## Core tests. ## -## ----------- ## - -_ACEOF - - -# Keep a trace of the command line. -# Strip out --no-create and --no-recursion so they do not pile up. -# Strip out --silent because we don't want to record it for future runs. -# Also quote any args containing shell meta-characters. -# Make two passes to allow for proper duplicate-argument suppression. -ac_configure_args= -ac_configure_args0= -ac_configure_args1= -ac_must_keep_next=false -for ac_pass in 1 2 -do - for ac_arg - do - case $ac_arg in - -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; - -q | -quiet | --quiet | --quie | --qui | --qu | --q \ - | -silent | --silent | --silen | --sile | --sil) - continue ;; - *\'*) - ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; - esac - case $ac_pass in - 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; - 2) - as_fn_append ac_configure_args1 " '$ac_arg'" - if test $ac_must_keep_next = true; then - ac_must_keep_next=false # Got value, back to normal. - else - case $ac_arg in - *=* | --config-cache | -C | -disable-* | --disable-* \ - | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ - | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ - | -with-* | --with-* | -without-* | --without-* | --x) - case "$ac_configure_args0 " in - "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; - esac - ;; - -* ) ac_must_keep_next=true ;; - esac - fi - as_fn_append ac_configure_args " '$ac_arg'" - ;; - esac - done -done -{ ac_configure_args0=; unset ac_configure_args0;} -{ ac_configure_args1=; unset ac_configure_args1;} - -# When interrupted or exit'd, cleanup temporary files, and complete -# config.log. We remove comments because anyway the quotes in there -# would cause problems or look ugly. -# WARNING: Use '\'' to represent an apostrophe within the trap. -# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. -trap 'exit_status=$? - # Save into config.log some information that might help in debugging. - { - echo - - $as_echo "## ---------------- ## -## Cache variables. ## -## ---------------- ##" - echo - # The following way of writing the cache mishandles newlines in values, -( - for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do - eval ac_val=\$$ac_var - case $ac_val in #( - *${as_nl}*) - case $ac_var in #( - *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 -$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; - esac - case $ac_var in #( - _ | IFS | as_nl) ;; #( - BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( - *) { eval $ac_var=; unset $ac_var;} ;; - esac ;; - esac - done - (set) 2>&1 | - case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( - *${as_nl}ac_space=\ *) - sed -n \ - "s/'\''/'\''\\\\'\'''\''/g; - s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" - ;; #( - *) - sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" - ;; - esac | - sort -) - echo - - $as_echo "## ----------------- ## -## Output variables. ## -## ----------------- ##" - echo - for ac_var in $ac_subst_vars - do - eval ac_val=\$$ac_var - case $ac_val in - *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; - esac - $as_echo "$ac_var='\''$ac_val'\''" - done | sort - echo - - if test -n "$ac_subst_files"; then - $as_echo "## ------------------- ## -## File substitutions. ## -## ------------------- ##" - echo - for ac_var in $ac_subst_files - do - eval ac_val=\$$ac_var - case $ac_val in - *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; - esac - $as_echo "$ac_var='\''$ac_val'\''" - done | sort - echo - fi - - if test -s confdefs.h; then - $as_echo "## ----------- ## -## confdefs.h. ## -## ----------- ##" - echo - cat confdefs.h - echo - fi - test "$ac_signal" != 0 && - $as_echo "$as_me: caught signal $ac_signal" - $as_echo "$as_me: exit $exit_status" - } >&5 - rm -f core *.core core.conftest.* && - rm -f -r conftest* confdefs* conf$$* $ac_clean_files && - exit $exit_status -' 0 -for ac_signal in 1 2 13 15; do - trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal -done -ac_signal=0 - -# confdefs.h avoids OS command line length limits that DEFS can exceed. -rm -f -r conftest* confdefs.h - -$as_echo "/* confdefs.h */" > confdefs.h - -# Predefined preprocessor variables. - -cat >>confdefs.h <<_ACEOF -@%:@define PACKAGE_NAME "$PACKAGE_NAME" -_ACEOF - -cat >>confdefs.h <<_ACEOF -@%:@define PACKAGE_TARNAME "$PACKAGE_TARNAME" -_ACEOF - -cat >>confdefs.h <<_ACEOF -@%:@define PACKAGE_VERSION "$PACKAGE_VERSION" -_ACEOF - -cat >>confdefs.h <<_ACEOF -@%:@define PACKAGE_STRING "$PACKAGE_STRING" -_ACEOF - -cat >>confdefs.h <<_ACEOF -@%:@define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" -_ACEOF - -cat >>confdefs.h <<_ACEOF -@%:@define PACKAGE_URL "$PACKAGE_URL" -_ACEOF - - -# Let the site file select an alternate cache file if it wants to. -# Prefer an explicitly selected file to automatically selected ones. -ac_site_file1=NONE -ac_site_file2=NONE -if test -n "$CONFIG_SITE"; then - # We do not want a PATH search for config.site. - case $CONFIG_SITE in @%:@(( - -*) ac_site_file1=./$CONFIG_SITE;; - */*) ac_site_file1=$CONFIG_SITE;; - *) ac_site_file1=./$CONFIG_SITE;; - esac -elif test "x$prefix" != xNONE; then - ac_site_file1=$prefix/share/config.site - ac_site_file2=$prefix/etc/config.site -else - ac_site_file1=$ac_default_prefix/share/config.site - ac_site_file2=$ac_default_prefix/etc/config.site -fi -for ac_site_file in "$ac_site_file1" "$ac_site_file2" -do - test "x$ac_site_file" = xNONE && continue - if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 -$as_echo "$as_me: loading site script $ac_site_file" >&6;} - sed 's/^/| /' "$ac_site_file" >&5 - . "$ac_site_file" \ - || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "failed to load site script $ac_site_file -See \`config.log' for more details" "$LINENO" 5; } - fi -done - -if test -r "$cache_file"; then - # Some versions of bash will fail to source /dev/null (special files - # actually), so we avoid doing that. DJGPP emulates it as a regular file. - if test /dev/null != "$cache_file" && test -f "$cache_file"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 -$as_echo "$as_me: loading cache $cache_file" >&6;} - case $cache_file in - [\\/]* | ?:[\\/]* ) . "$cache_file";; - *) . "./$cache_file";; - esac - fi -else - { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 -$as_echo "$as_me: creating cache $cache_file" >&6;} - >$cache_file -fi - -# Check that the precious variables saved in the cache have kept the same -# value. -ac_cache_corrupted=false -for ac_var in $ac_precious_vars; do - eval ac_old_set=\$ac_cv_env_${ac_var}_set - eval ac_new_set=\$ac_env_${ac_var}_set - eval ac_old_val=\$ac_cv_env_${ac_var}_value - eval ac_new_val=\$ac_env_${ac_var}_value - case $ac_old_set,$ac_new_set in - set,) - { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 -$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} - ac_cache_corrupted=: ;; - ,set) - { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 -$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} - ac_cache_corrupted=: ;; - ,);; - *) - if test "x$ac_old_val" != "x$ac_new_val"; then - # differences in whitespace do not lead to failure. - ac_old_val_w=`echo x $ac_old_val` - ac_new_val_w=`echo x $ac_new_val` - if test "$ac_old_val_w" != "$ac_new_val_w"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 -$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} - ac_cache_corrupted=: - else - { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 -$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} - eval $ac_var=\$ac_old_val - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 -$as_echo "$as_me: former value: \`$ac_old_val'" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 -$as_echo "$as_me: current value: \`$ac_new_val'" >&2;} - fi;; - esac - # Pass precious variables to config.status. - if test "$ac_new_set" = set; then - case $ac_new_val in - *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; - *) ac_arg=$ac_var=$ac_new_val ;; - esac - case " $ac_configure_args " in - *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. - *) as_fn_append ac_configure_args " '$ac_arg'" ;; - esac - fi -done -if $ac_cache_corrupted; then - { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 -$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} - as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 -fi -## -------------------- ## -## Main body of script. ## -## -------------------- ## - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - -@%:@ Check whether --enable-silent-rules was given. -if test "${enable_silent_rules+set}" = set; then : - enableval=$enable_silent_rules; -fi - -case $enable_silent_rules in @%:@ ((( - yes) AM_DEFAULT_VERBOSITY=0;; - no) AM_DEFAULT_VERBOSITY=1;; - *) AM_DEFAULT_VERBOSITY=0;; -esac -am_make=${MAKE-make} -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5 -$as_echo_n "checking whether $am_make supports nested variables... " >&6; } -if ${am_cv_make_support_nested_variables+:} false; then : - $as_echo_n "(cached) " >&6 -else - if $as_echo 'TRUE=$(BAR$(V)) -BAR0=false -BAR1=true -V=1 -am__doit: - @$(TRUE) -.PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then - am_cv_make_support_nested_variables=yes -else - am_cv_make_support_nested_variables=no -fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5 -$as_echo "$am_cv_make_support_nested_variables" >&6; } -if test $am_cv_make_support_nested_variables = yes; then - AM_V='$(V)' - AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' -else - AM_V=$AM_DEFAULT_VERBOSITY - AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY -fi -AM_BACKSLASH='\' - - -am__api_version='1.13' - -ac_aux_dir= -for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do - if test -f "$ac_dir/install-sh"; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/install-sh -c" - break - elif test -f "$ac_dir/install.sh"; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/install.sh -c" - break - elif test -f "$ac_dir/shtool"; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/shtool install -c" - break - fi -done -if test -z "$ac_aux_dir"; then - as_fn_error $? "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5 -fi - -# These three variables are undocumented and unsupported, -# and are intended to be withdrawn in a future Autoconf release. -# They can cause serious problems if a builder's source tree is in a directory -# whose full name contains unusual characters. -ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. -ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. -ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. - - -# Find a good install program. We prefer a C program (faster), -# so one script is as good as another. But avoid the broken or -# incompatible versions: -# SysV /etc/install, /usr/sbin/install -# SunOS /usr/etc/install -# IRIX /sbin/install -# AIX /bin/install -# AmigaOS /C/install, which installs bootblocks on floppy discs -# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag -# AFS /usr/afsws/bin/install, which mishandles nonexistent args -# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" -# OS/2's system install, which has a completely different semantic -# ./install, which can be erroneously created by make from ./install.sh. -# Reject install programs that cannot install multiple files. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 -$as_echo_n "checking for a BSD-compatible install... " >&6; } -if test -z "$INSTALL"; then -if ${ac_cv_path_install+:} false; then : - $as_echo_n "(cached) " >&6 -else - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - # Account for people who put trailing slashes in PATH elements. -case $as_dir/ in @%:@(( - ./ | .// | /[cC]/* | \ - /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ - ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \ - /usr/ucb/* ) ;; - *) - # OSF1 and SCO ODT 3.0 have their own names for install. - # Don't use installbsd from OSF since it installs stuff as root - # by default. - for ac_prog in ginstall scoinst install; do - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then - if test $ac_prog = install && - grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then - # AIX install. It has an incompatible calling convention. - : - elif test $ac_prog = install && - grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then - # program-specific install script used by HP pwplus--don't use. - : - else - rm -rf conftest.one conftest.two conftest.dir - echo one > conftest.one - echo two > conftest.two - mkdir conftest.dir - if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" && - test -s conftest.one && test -s conftest.two && - test -s conftest.dir/conftest.one && - test -s conftest.dir/conftest.two - then - ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" - break 3 - fi - fi - fi - done - done - ;; -esac - - done -IFS=$as_save_IFS - -rm -rf conftest.one conftest.two conftest.dir - -fi - if test "${ac_cv_path_install+set}" = set; then - INSTALL=$ac_cv_path_install - else - # As a last resort, use the slow shell script. Don't cache a - # value for INSTALL within a source directory, because that will - # break other packages using the cache if that directory is - # removed, or if the value is a relative name. - INSTALL=$ac_install_sh - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5 -$as_echo "$INSTALL" >&6; } - -# Use test -z because SunOS4 sh mishandles braces in ${var-val}. -# It thinks the first close brace ends the variable substitution. -test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' - -test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' - -test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5 -$as_echo_n "checking whether build environment is sane... " >&6; } -# Reject unsafe characters in $srcdir or the absolute working directory -# name. Accept space and tab only in the latter. -am_lf=' -' -case `pwd` in - *[\\\"\#\$\&\'\`$am_lf]*) - as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5;; -esac -case $srcdir in - *[\\\"\#\$\&\'\`$am_lf\ \ ]*) - as_fn_error $? "unsafe srcdir value: '$srcdir'" "$LINENO" 5;; -esac - -# Do 'set' in a subshell so we don't clobber the current shell's -# arguments. Must try -L first in case configure is actually a -# symlink; some systems play weird games with the mod time of symlinks -# (eg FreeBSD returns the mod time of the symlink's containing -# directory). -if ( - am_has_slept=no - for am_try in 1 2; do - echo "timestamp, slept: $am_has_slept" > conftest.file - set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` - if test "$*" = "X"; then - # -L didn't work. - set X `ls -t "$srcdir/configure" conftest.file` - fi - if test "$*" != "X $srcdir/configure conftest.file" \ - && test "$*" != "X conftest.file $srcdir/configure"; then - - # If neither matched, then we have a broken ls. This can happen - # if, for instance, CONFIG_SHELL is bash and it inherits a - # broken ls alias from the environment. This has actually - # happened. Such a system could not be considered "sane". - as_fn_error $? "ls -t appears to fail. Make sure there is not a broken - alias in your environment" "$LINENO" 5 - fi - if test "$2" = conftest.file || test $am_try -eq 2; then - break - fi - # Just in case. - sleep 1 - am_has_slept=yes - done - test "$2" = conftest.file - ) -then - # Ok. - : -else - as_fn_error $? "newly created file is older than distributed files! -Check your system clock" "$LINENO" 5 -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -# If we didn't sleep, we still need to ensure time stamps of config.status and -# generated files are strictly newer. -am_sleep_pid= -if grep 'slept: no' conftest.file >/dev/null 2>&1; then - ( sleep 1 ) & - am_sleep_pid=$! -fi - -rm -f conftest.file - -test "$program_prefix" != NONE && - program_transform_name="s&^&$program_prefix&;$program_transform_name" -# Use a double $ so make ignores it. -test "$program_suffix" != NONE && - program_transform_name="s&\$&$program_suffix&;$program_transform_name" -# Double any \ or $. -# By default was `s,x,x', remove it if useless. -ac_script='s/[\\$]/&&/g;s/;s,x,x,$//' -program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"` - -# expand $ac_aux_dir to an absolute path -am_aux_dir=`cd $ac_aux_dir && pwd` - -if test x"${MISSING+set}" != xset; then - case $am_aux_dir in - *\ * | *\ *) - MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; - *) - MISSING="\${SHELL} $am_aux_dir/missing" ;; - esac -fi -# Use eval to expand $SHELL -if eval "$MISSING --is-lightweight"; then - am_missing_run="$MISSING " -else - am_missing_run= - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: 'missing' script is too old or missing" >&5 -$as_echo "$as_me: WARNING: 'missing' script is too old or missing" >&2;} -fi - -if test x"${install_sh}" != xset; then - case $am_aux_dir in - *\ * | *\ *) - install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; - *) - install_sh="\${SHELL} $am_aux_dir/install-sh" - esac -fi - -# Installed binaries are usually stripped using 'strip' when the user -# run "make install-strip". However 'strip' might not be the right -# tool to use in cross-compilation environments, therefore Automake -# will honor the 'STRIP' environment variable to overrule this program. -if test "$cross_compiling" != no; then - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. -set dummy ${ac_tool_prefix}strip; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_STRIP+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$STRIP"; then - ac_cv_prog_STRIP="$STRIP" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_STRIP="${ac_tool_prefix}strip" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -STRIP=$ac_cv_prog_STRIP -if test -n "$STRIP"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 -$as_echo "$STRIP" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_STRIP"; then - ac_ct_STRIP=$STRIP - # Extract the first word of "strip", so it can be a program name with args. -set dummy strip; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_STRIP+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_STRIP"; then - ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_STRIP="strip" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP -if test -n "$ac_ct_STRIP"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 -$as_echo "$ac_ct_STRIP" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_STRIP" = x; then - STRIP=":" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - STRIP=$ac_ct_STRIP - fi -else - STRIP="$ac_cv_prog_STRIP" -fi - -fi -INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5 -$as_echo_n "checking for a thread-safe mkdir -p... " >&6; } -if test -z "$MKDIR_P"; then - if ${ac_cv_path_mkdir+:} false; then : - $as_echo_n "(cached) " >&6 -else - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_prog in mkdir gmkdir; do - for ac_exec_ext in '' $ac_executable_extensions; do - as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext" || continue - case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #( - 'mkdir (GNU coreutils) '* | \ - 'mkdir (coreutils) '* | \ - 'mkdir (fileutils) '4.1*) - ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext - break 3;; - esac - done - done - done -IFS=$as_save_IFS - -fi - - test -d ./--version && rmdir ./--version - if test "${ac_cv_path_mkdir+set}" = set; then - MKDIR_P="$ac_cv_path_mkdir -p" - else - # As a last resort, use the slow shell script. Don't cache a - # value for MKDIR_P within a source directory, because that will - # break other packages using the cache if that directory is - # removed, or if the value is a relative name. - MKDIR_P="$ac_install_sh -d" - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5 -$as_echo "$MKDIR_P" >&6; } - -for ac_prog in gawk mawk nawk awk -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_AWK+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$AWK"; then - ac_cv_prog_AWK="$AWK" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_AWK="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -AWK=$ac_cv_prog_AWK -if test -n "$AWK"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5 -$as_echo "$AWK" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$AWK" && break -done - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 -$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } -set x ${MAKE-make} -ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` -if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat >conftest.make <<\_ACEOF -SHELL = /bin/sh -all: - @echo '@@@%%%=$(MAKE)=@@@%%%' -_ACEOF -# GNU make sometimes prints "make[1]: Entering ...", which would confuse us. -case `${MAKE-make} -f conftest.make 2>/dev/null` in - *@@@%%%=?*=@@@%%%*) - eval ac_cv_prog_make_${ac_make}_set=yes;; - *) - eval ac_cv_prog_make_${ac_make}_set=no;; -esac -rm -f conftest.make -fi -if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - SET_MAKE= -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - SET_MAKE="MAKE=${MAKE-make}" -fi - -rm -rf .tst 2>/dev/null -mkdir .tst 2>/dev/null -if test -d .tst; then - am__leading_dot=. -else - am__leading_dot=_ -fi -rmdir .tst 2>/dev/null - -if test "`cd $srcdir && pwd`" != "`pwd`"; then - # Use -I$(srcdir) only when $(srcdir) != ., so that make's output - # is not polluted with repeated "-I." - am__isrc=' -I$(srcdir)' - # test to see if srcdir already configured - if test -f $srcdir/config.status; then - as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5 - fi -fi - -# test whether we have cygpath -if test -z "$CYGPATH_W"; then - if (cygpath --version) >/dev/null 2>/dev/null; then - CYGPATH_W='cygpath -w' - else - CYGPATH_W=echo - fi -fi - - -# Define the identity of the package. - PACKAGE='guvcview' - VERSION='1.7.3' - - -cat >>confdefs.h <<_ACEOF -@%:@define PACKAGE "$PACKAGE" -_ACEOF - - -cat >>confdefs.h <<_ACEOF -@%:@define VERSION "$VERSION" -_ACEOF - -# Some tools Automake needs. - -ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"} - - -AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"} - - -AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"} - - -AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} - - -MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} - -# For better backward compatibility. To be removed once Automake 1.9.x -# dies out for good. For more background, see: -# -# -mkdir_p='$(MKDIR_P)' - -# We need awk for the "check" target. The system "awk" is bad on -# some platforms. -# Always define AMTAR for backward compatibility. Yes, it's still used -# in the wild :-( We should find a proper way to deprecate it ... -AMTAR='$${TAR-tar}' - - -# We'll loop over all known methods to create a tar archive until one works. -_am_tools='gnutar pax cpio none' - -am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -' - - - - - - - -ac_config_headers="$ac_config_headers config.h" - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable maintainer-specific portions of Makefiles" >&5 -$as_echo_n "checking whether to enable maintainer-specific portions of Makefiles... " >&6; } - @%:@ Check whether --enable-maintainer-mode was given. -if test "${enable_maintainer_mode+set}" = set; then : - enableval=$enable_maintainer_mode; USE_MAINTAINER_MODE=$enableval -else - USE_MAINTAINER_MODE=no -fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_MAINTAINER_MODE" >&5 -$as_echo "$USE_MAINTAINER_MODE" >&6; } - if test $USE_MAINTAINER_MODE = yes; then - MAINTAINER_MODE_TRUE= - MAINTAINER_MODE_FALSE='#' -else - MAINTAINER_MODE_TRUE='#' - MAINTAINER_MODE_FALSE= -fi - - MAINT=$MAINTAINER_MODE_TRUE - - - -# autoconf 2.5x defaults to no cache file; we need the cache file's information -# for building the config page. But start with it empty to avoid confusion by -# people who don't do a "make distclean" after applying patches. -cache_file=config.cache -rm -f config.cache; touch config.cache - - - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu -if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. -set dummy ${ac_tool_prefix}gcc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_CC="${ac_tool_prefix}gcc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_CC"; then - ac_ct_CC=$CC - # Extract the first word of "gcc", so it can be a program name with args. -set dummy gcc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_CC"; then - ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_CC="gcc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_CC=$ac_cv_prog_ac_ct_CC -if test -n "$ac_ct_CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 -$as_echo "$ac_ct_CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_CC" = x; then - CC="" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - CC=$ac_ct_CC - fi -else - CC="$ac_cv_prog_CC" -fi - -if test -z "$CC"; then - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. -set dummy ${ac_tool_prefix}cc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_CC="${ac_tool_prefix}cc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - fi -fi -if test -z "$CC"; then - # Extract the first word of "cc", so it can be a program name with args. -set dummy cc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else - ac_prog_rejected=no -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then - ac_prog_rejected=yes - continue - fi - ac_cv_prog_CC="cc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -if test $ac_prog_rejected = yes; then - # We found a bogon in the path, so make sure we never use it. - set dummy $ac_cv_prog_CC - shift - if test $@%:@ != 0; then - # We chose a different compiler from the bogus one. - # However, it has the same basename, so the bogon will be chosen - # first if we set CC to just the basename; use the full file name. - shift - ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" - fi -fi -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$CC"; then - if test -n "$ac_tool_prefix"; then - for ac_prog in cl.exe - do - # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. -set dummy $ac_tool_prefix$ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_CC="$ac_tool_prefix$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$CC" && break - done -fi -if test -z "$CC"; then - ac_ct_CC=$CC - for ac_prog in cl.exe -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_CC"; then - ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_CC="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_CC=$ac_cv_prog_ac_ct_CC -if test -n "$ac_ct_CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 -$as_echo "$ac_ct_CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$ac_ct_CC" && break -done - - if test "x$ac_ct_CC" = x; then - CC="" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - CC=$ac_ct_CC - fi -fi - -fi - - -test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "no acceptable C compiler found in \$PATH -See \`config.log' for more details" "$LINENO" 5; } - -# Provide some information about the compiler. -$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 -set X $ac_compile -ac_compiler=$2 -for ac_option in --version -v -V -qversion; do - { { ac_try="$ac_compiler $ac_option >&5" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_compiler $ac_option >&5") 2>conftest.err - ac_status=$? - if test -s conftest.err; then - sed '10a\ -... rest of stderr output deleted ... - 10q' conftest.err >conftest.er1 - cat conftest.er1 >&5 - fi - rm -f conftest.er1 conftest.err - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } -done - -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -ac_clean_files_save=$ac_clean_files -ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out" -# Try to create an executable without -o first, disregard a.out. -# It will help us diagnose broken compilers, and finding out an intuition -# of exeext. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5 -$as_echo_n "checking whether the C compiler works... " >&6; } -ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` - -# The possible output files: -ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" - -ac_rmfiles= -for ac_file in $ac_files -do - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; - * ) ac_rmfiles="$ac_rmfiles $ac_file";; - esac -done -rm -f $ac_rmfiles - -if { { ac_try="$ac_link_default" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_link_default") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then : - # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. -# So ignore a value of `no', otherwise this would lead to `EXEEXT = no' -# in a Makefile. We should not override ac_cv_exeext if it was cached, -# so that the user can short-circuit this test for compilers unknown to -# Autoconf. -for ac_file in $ac_files '' -do - test -f "$ac_file" || continue - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) - ;; - [ab].out ) - # We found the default executable, but exeext='' is most - # certainly right. - break;; - *.* ) - if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; - then :; else - ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` - fi - # We set ac_cv_exeext here because the later test for it is not - # safe: cross compilers may not add the suffix if given an `-o' - # argument, so we may need to know it at that point already. - # Even if this section looks crufty: it has the advantage of - # actually working. - break;; - * ) - break;; - esac -done -test "$ac_cv_exeext" = no && ac_cv_exeext= - -else - ac_file='' -fi -if test -z "$ac_file"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -$as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error 77 "C compiler cannot create executables -See \`config.log' for more details" "$LINENO" 5; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5 -$as_echo_n "checking for C compiler default output file name... " >&6; } -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 -$as_echo "$ac_file" >&6; } -ac_exeext=$ac_cv_exeext - -rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out -ac_clean_files=$ac_clean_files_save -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 -$as_echo_n "checking for suffix of executables... " >&6; } -if { { ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_link") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then : - # If both `conftest.exe' and `conftest' are `present' (well, observable) -# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will -# work properly (i.e., refer to `conftest.exe'), while it won't with -# `rm'. -for ac_file in conftest.exe conftest conftest.*; do - test -f "$ac_file" || continue - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; - *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` - break;; - * ) break;; - esac -done -else - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "cannot compute suffix of executables: cannot compile and link -See \`config.log' for more details" "$LINENO" 5; } -fi -rm -f conftest conftest$ac_cv_exeext -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 -$as_echo "$ac_cv_exeext" >&6; } - -rm -f conftest.$ac_ext -EXEEXT=$ac_cv_exeext -ac_exeext=$EXEEXT -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -@%:@include -int -main () -{ -FILE *f = fopen ("conftest.out", "w"); - return ferror (f) || fclose (f) != 0; - - ; - return 0; -} -_ACEOF -ac_clean_files="$ac_clean_files conftest.out" -# Check that the compiler produces executables we can run. If not, either -# the compiler is broken, or we cross compile. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 -$as_echo_n "checking whether we are cross compiling... " >&6; } -if test "$cross_compiling" != yes; then - { { ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_link") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } - if { ac_try='./conftest$ac_cv_exeext' - { { case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; }; then - cross_compiling=no - else - if test "$cross_compiling" = maybe; then - cross_compiling=yes - else - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "cannot run C compiled programs. -If you meant to cross compile, use \`--host'. -See \`config.log' for more details" "$LINENO" 5; } - fi - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 -$as_echo "$cross_compiling" >&6; } - -rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out -ac_clean_files=$ac_clean_files_save -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 -$as_echo_n "checking for suffix of object files... " >&6; } -if ${ac_cv_objext+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.o conftest.obj -if { { ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_compile") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then : - for ac_file in conftest.o conftest.obj conftest.*; do - test -f "$ac_file" || continue; - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; - *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` - break;; - esac -done -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "cannot compute suffix of object files: cannot compile -See \`config.log' for more details" "$LINENO" 5; } -fi -rm -f conftest.$ac_cv_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 -$as_echo "$ac_cv_objext" >&6; } -OBJEXT=$ac_cv_objext -ac_objext=$OBJEXT -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 -$as_echo_n "checking whether we are using the GNU C compiler... " >&6; } -if ${ac_cv_c_compiler_gnu+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ -#ifndef __GNUC__ - choke me -#endif - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_compiler_gnu=yes -else - ac_compiler_gnu=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -ac_cv_c_compiler_gnu=$ac_compiler_gnu - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 -$as_echo "$ac_cv_c_compiler_gnu" >&6; } -if test $ac_compiler_gnu = yes; then - GCC=yes -else - GCC= -fi -ac_test_CFLAGS=${CFLAGS+set} -ac_save_CFLAGS=$CFLAGS -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 -$as_echo_n "checking whether $CC accepts -g... " >&6; } -if ${ac_cv_prog_cc_g+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_save_c_werror_flag=$ac_c_werror_flag - ac_c_werror_flag=yes - ac_cv_prog_cc_g=no - CFLAGS="-g" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_prog_cc_g=yes -else - CFLAGS="" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - -else - ac_c_werror_flag=$ac_save_c_werror_flag - CFLAGS="-g" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_prog_cc_g=yes -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - ac_c_werror_flag=$ac_save_c_werror_flag -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 -$as_echo "$ac_cv_prog_cc_g" >&6; } -if test "$ac_test_CFLAGS" = set; then - CFLAGS=$ac_save_CFLAGS -elif test $ac_cv_prog_cc_g = yes; then - if test "$GCC" = yes; then - CFLAGS="-g -O2" - else - CFLAGS="-g" - fi -else - if test "$GCC" = yes; then - CFLAGS="-O2" - else - CFLAGS= - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 -$as_echo_n "checking for $CC option to accept ISO C89... " >&6; } -if ${ac_cv_prog_cc_c89+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_cv_prog_cc_c89=no -ac_save_CC=$CC -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include -struct stat; -/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ -struct buf { int x; }; -FILE * (*rcsopen) (struct buf *, struct stat *, int); -static char *e (p, i) - char **p; - int i; -{ - return p[i]; -} -static char *f (char * (*g) (char **, int), char **p, ...) -{ - char *s; - va_list v; - va_start (v,p); - s = g (p, va_arg (v,int)); - va_end (v); - return s; -} - -/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has - function prototypes and stuff, but not '\xHH' hex character constants. - These don't provoke an error unfortunately, instead are silently treated - as 'x'. The following induces an error, until -std is added to get - proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an - array size at least. It's necessary to write '\x00'==0 to get something - that's true only with -std. */ -int osf4_cc_array ['\x00' == 0 ? 1 : -1]; - -/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters - inside strings and character constants. */ -#define FOO(x) 'x' -int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; - -int test (int i, double x); -struct s1 {int (*f) (int a);}; -struct s2 {int (*f) (double a);}; -int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); -int argc; -char **argv; -int -main () -{ -return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; - ; - return 0; -} -_ACEOF -for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ - -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" -do - CC="$ac_save_CC $ac_arg" - if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_prog_cc_c89=$ac_arg -fi -rm -f core conftest.err conftest.$ac_objext - test "x$ac_cv_prog_cc_c89" != "xno" && break -done -rm -f conftest.$ac_ext -CC=$ac_save_CC - -fi -# AC_CACHE_VAL -case "x$ac_cv_prog_cc_c89" in - x) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 -$as_echo "none needed" >&6; } ;; - xno) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 -$as_echo "unsupported" >&6; } ;; - *) - CC="$CC $ac_cv_prog_cc_c89" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 -$as_echo "$ac_cv_prog_cc_c89" >&6; } ;; -esac -if test "x$ac_cv_prog_cc_c89" != xno; then : - -fi - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu -DEPDIR="${am__leading_dot}deps" - -ac_config_commands="$ac_config_commands depfiles" - - -am_make=${MAKE-make} -cat > confinc << 'END' -am__doit: - @echo this is the am__doit target -.PHONY: am__doit -END -# If we don't find an include directive, just comment out the code. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for style of include used by $am_make" >&5 -$as_echo_n "checking for style of include used by $am_make... " >&6; } -am__include="#" -am__quote= -_am_result=none -# First try GNU make style include. -echo "include confinc" > confmf -# Ignore all kinds of additional output from 'make'. -case `$am_make -s -f confmf 2> /dev/null` in #( -*the\ am__doit\ target*) - am__include=include - am__quote= - _am_result=GNU - ;; -esac -# Now try BSD make style include. -if test "$am__include" = "#"; then - echo '.include "confinc"' > confmf - case `$am_make -s -f confmf 2> /dev/null` in #( - *the\ am__doit\ target*) - am__include=.include - am__quote="\"" - _am_result=BSD - ;; - esac -fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $_am_result" >&5 -$as_echo "$_am_result" >&6; } -rm -f confinc confmf - -@%:@ Check whether --enable-dependency-tracking was given. -if test "${enable_dependency_tracking+set}" = set; then : - enableval=$enable_dependency_tracking; -fi - -if test "x$enable_dependency_tracking" != xno; then - am_depcomp="$ac_aux_dir/depcomp" - AMDEPBACKSLASH='\' - am__nodep='_no' -fi - if test "x$enable_dependency_tracking" != xno; then - AMDEP_TRUE= - AMDEP_FALSE='#' -else - AMDEP_TRUE='#' - AMDEP_FALSE= -fi - - - -depcc="$CC" am_compiler_list= - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 -$as_echo_n "checking dependency style of $depcc... " >&6; } -if ${am_cv_CC_dependencies_compiler_type+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then - # We make a subdir and do the tests there. Otherwise we can end up - # making bogus files that we don't know about and never remove. For - # instance it was reported that on HP-UX the gcc test will end up - # making a dummy file named 'D' -- because '-MD' means "put the output - # in D". - rm -rf conftest.dir - mkdir conftest.dir - # Copy depcomp to subdir because otherwise we won't find it if we're - # using a relative directory. - cp "$am_depcomp" conftest.dir - cd conftest.dir - # We will build objects and dependencies in a subdirectory because - # it helps to detect inapplicable dependency modes. For instance - # both Tru64's cc and ICC support -MD to output dependencies as a - # side effect of compilation, but ICC will put the dependencies in - # the current directory while Tru64 will put them in the object - # directory. - mkdir sub - - am_cv_CC_dependencies_compiler_type=none - if test "$am_compiler_list" = ""; then - am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` - fi - am__universal=false - case " $depcc " in #( - *\ -arch\ *\ -arch\ *) am__universal=true ;; - esac - - for depmode in $am_compiler_list; do - # Setup a source with many dependencies, because some compilers - # like to wrap large dependency lists on column 80 (with \), and - # we should not choose a depcomp mode which is confused by this. - # - # We need to recreate these files for each test, as the compiler may - # overwrite some of them when testing with obscure command lines. - # This happens at least with the AIX C compiler. - : > sub/conftest.c - for i in 1 2 3 4 5 6; do - echo '#include "conftst'$i'.h"' >> sub/conftest.c - # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with - # Solaris 10 /bin/sh. - echo '/* dummy */' > sub/conftst$i.h - done - echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf - - # We check with '-c' and '-o' for the sake of the "dashmstdout" - # mode. It turns out that the SunPro C++ compiler does not properly - # handle '-M -o', and we need to detect this. Also, some Intel - # versions had trouble with output in subdirs. - am__obj=sub/conftest.${OBJEXT-o} - am__minus_obj="-o $am__obj" - case $depmode in - gcc) - # This depmode causes a compiler race in universal mode. - test "$am__universal" = false || continue - ;; - nosideeffect) - # After this tag, mechanisms are not by side-effect, so they'll - # only be used when explicitly requested. - if test "x$enable_dependency_tracking" = xyes; then - continue - else - break - fi - ;; - msvc7 | msvc7msys | msvisualcpp | msvcmsys) - # This compiler won't grok '-c -o', but also, the minuso test has - # not run yet. These depmodes are late enough in the game, and - # so weak that their functioning should not be impacted. - am__obj=conftest.${OBJEXT-o} - am__minus_obj= - ;; - none) break ;; - esac - if depmode=$depmode \ - source=sub/conftest.c object=$am__obj \ - depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ - $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ - >/dev/null 2>conftest.err && - grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && - grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && - grep $am__obj sub/conftest.Po > /dev/null 2>&1 && - ${MAKE-make} -s -f confmf > /dev/null 2>&1; then - # icc doesn't choke on unknown options, it will just issue warnings - # or remarks (even with -Werror). So we grep stderr for any message - # that says an option was ignored or not supported. - # When given -MP, icc 7.0 and 7.1 complain thusly: - # icc: Command line warning: ignoring option '-M'; no argument required - # The diagnosis changed in icc 8.0: - # icc: Command line remark: option '-MP' not supported - if (grep 'ignoring option' conftest.err || - grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else - am_cv_CC_dependencies_compiler_type=$depmode - break - fi - fi - done - - cd .. - rm -rf conftest.dir -else - am_cv_CC_dependencies_compiler_type=none -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5 -$as_echo "$am_cv_CC_dependencies_compiler_type" >&6; } -CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type - - if - test "x$enable_dependency_tracking" != xno \ - && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then - am__fastdepCC_TRUE= - am__fastdepCC_FALSE='#' -else - am__fastdepCC_TRUE='#' - am__fastdepCC_FALSE= -fi - - -if test "x$CC" != xcc; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC and cc understand -c and -o together" >&5 -$as_echo_n "checking whether $CC and cc understand -c and -o together... " >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether cc understands -c and -o together" >&5 -$as_echo_n "checking whether cc understands -c and -o together... " >&6; } -fi -set dummy $CC; ac_cc=`$as_echo "$2" | - sed 's/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/'` -if eval \${ac_cv_prog_cc_${ac_cc}_c_o+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -# Make sure it works both with $CC and with simple cc. -# We do the test twice because some compilers refuse to overwrite an -# existing .o file with -o, though they will create one. -ac_try='$CC -c conftest.$ac_ext -o conftest2.$ac_objext >&5' -rm -f conftest2.* -if { { case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && - test -f conftest2.$ac_objext && { { case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; -then - eval ac_cv_prog_cc_${ac_cc}_c_o=yes - if test "x$CC" != xcc; then - # Test first that cc exists at all. - if { ac_try='cc -c conftest.$ac_ext >&5' - { { case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; }; then - ac_try='cc -c conftest.$ac_ext -o conftest2.$ac_objext >&5' - rm -f conftest2.* - if { { case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && - test -f conftest2.$ac_objext && { { case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; - then - # cc works too. - : - else - # cc exists but doesn't like -o. - eval ac_cv_prog_cc_${ac_cc}_c_o=no - fi - fi - fi -else - eval ac_cv_prog_cc_${ac_cc}_c_o=no -fi -rm -f core conftest* - -fi -if eval test \$ac_cv_prog_cc_${ac_cc}_c_o = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - -$as_echo "@%:@define NO_MINUS_C_MINUS_O 1" >>confdefs.h - -fi - -# FIXME: we rely on the cache variable name because -# there is no other way. -set dummy $CC -am_cc=`echo $2 | sed 's/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/'` -eval am_t=\$ac_cv_prog_cc_${am_cc}_c_o -if test "$am_t" != yes; then - # Losing compiler, so override with the script. - # FIXME: It is wrong to rewrite CC. - # But if we don't then we get into trouble of one sort or another. - # A longer-term fix would be to have automake use am__CC in this case, - # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" - CC="$am_aux_dir/compile $CC" -fi - - - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 -$as_echo_n "checking how to run the C preprocessor... " >&6; } -# On Suns, sometimes $CPP names a directory. -if test -n "$CPP" && test -d "$CPP"; then - CPP= -fi -if test -z "$CPP"; then - if ${ac_cv_prog_CPP+:} false; then : - $as_echo_n "(cached) " >&6 -else - # Double quotes because CPP needs to be expanded - for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" - do - ac_preproc_ok=false -for ac_c_preproc_warn_flag in '' yes -do - # Use a header file that comes with gcc, so configuring glibc - # with a fresh cross-compiler works. - # Prefer to if __STDC__ is defined, since - # exists even on freestanding compilers. - # On the NeXT, cc -E runs the code through the compiler's parser, - # not just through cpp. "Syntax error" is here to catch this case. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -@%:@ifdef __STDC__ -@%:@ include -@%:@else -@%:@ include -@%:@endif - Syntax error -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - -else - # Broken: fails on valid input. -continue -fi -rm -f conftest.err conftest.i conftest.$ac_ext - - # OK, works on sane cases. Now check whether nonexistent headers - # can be detected and how. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -@%:@include -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - # Broken: success on invalid input. -continue -else - # Passes both tests. -ac_preproc_ok=: -break -fi -rm -f conftest.err conftest.i conftest.$ac_ext - -done -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -f conftest.i conftest.err conftest.$ac_ext -if $ac_preproc_ok; then : - break -fi - - done - ac_cv_prog_CPP=$CPP - -fi - CPP=$ac_cv_prog_CPP -else - ac_cv_prog_CPP=$CPP -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 -$as_echo "$CPP" >&6; } -ac_preproc_ok=false -for ac_c_preproc_warn_flag in '' yes -do - # Use a header file that comes with gcc, so configuring glibc - # with a fresh cross-compiler works. - # Prefer to if __STDC__ is defined, since - # exists even on freestanding compilers. - # On the NeXT, cc -E runs the code through the compiler's parser, - # not just through cpp. "Syntax error" is here to catch this case. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -@%:@ifdef __STDC__ -@%:@ include -@%:@else -@%:@ include -@%:@endif - Syntax error -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - -else - # Broken: fails on valid input. -continue -fi -rm -f conftest.err conftest.i conftest.$ac_ext - - # OK, works on sane cases. Now check whether nonexistent headers - # can be detected and how. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -@%:@include -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - # Broken: success on invalid input. -continue -else - # Passes both tests. -ac_preproc_ok=: -break -fi -rm -f conftest.err conftest.i conftest.$ac_ext - -done -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -f conftest.i conftest.err conftest.$ac_ext -if $ac_preproc_ok; then : - -else - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "C preprocessor \"$CPP\" fails sanity check -See \`config.log' for more details" "$LINENO" 5; } -fi - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 -$as_echo_n "checking for grep that handles long lines and -e... " >&6; } -if ${ac_cv_path_GREP+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -z "$GREP"; then - ac_path_GREP_found=false - # Loop through the user's path and test for each of PROGNAME-LIST - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_prog in grep ggrep; do - for ac_exec_ext in '' $ac_executable_extensions; do - ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" - as_fn_executable_p "$ac_path_GREP" || continue -# Check for GNU ac_path_GREP and select it if it is found. - # Check for GNU $ac_path_GREP -case `"$ac_path_GREP" --version 2>&1` in -*GNU*) - ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; -*) - ac_count=0 - $as_echo_n 0123456789 >"conftest.in" - while : - do - cat "conftest.in" "conftest.in" >"conftest.tmp" - mv "conftest.tmp" "conftest.in" - cp "conftest.in" "conftest.nl" - $as_echo 'GREP' >> "conftest.nl" - "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break - diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break - as_fn_arith $ac_count + 1 && ac_count=$as_val - if test $ac_count -gt ${ac_path_GREP_max-0}; then - # Best one so far, save it but keep looking for a better one - ac_cv_path_GREP="$ac_path_GREP" - ac_path_GREP_max=$ac_count - fi - # 10*(2^10) chars as input seems more than enough - test $ac_count -gt 10 && break - done - rm -f conftest.in conftest.tmp conftest.nl conftest.out;; -esac - - $ac_path_GREP_found && break 3 - done - done - done -IFS=$as_save_IFS - if test -z "$ac_cv_path_GREP"; then - as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 - fi -else - ac_cv_path_GREP=$GREP -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 -$as_echo "$ac_cv_path_GREP" >&6; } - GREP="$ac_cv_path_GREP" - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 -$as_echo_n "checking for egrep... " >&6; } -if ${ac_cv_path_EGREP+:} false; then : - $as_echo_n "(cached) " >&6 -else - if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 - then ac_cv_path_EGREP="$GREP -E" - else - if test -z "$EGREP"; then - ac_path_EGREP_found=false - # Loop through the user's path and test for each of PROGNAME-LIST - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_prog in egrep; do - for ac_exec_ext in '' $ac_executable_extensions; do - ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" - as_fn_executable_p "$ac_path_EGREP" || continue -# Check for GNU ac_path_EGREP and select it if it is found. - # Check for GNU $ac_path_EGREP -case `"$ac_path_EGREP" --version 2>&1` in -*GNU*) - ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; -*) - ac_count=0 - $as_echo_n 0123456789 >"conftest.in" - while : - do - cat "conftest.in" "conftest.in" >"conftest.tmp" - mv "conftest.tmp" "conftest.in" - cp "conftest.in" "conftest.nl" - $as_echo 'EGREP' >> "conftest.nl" - "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break - diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break - as_fn_arith $ac_count + 1 && ac_count=$as_val - if test $ac_count -gt ${ac_path_EGREP_max-0}; then - # Best one so far, save it but keep looking for a better one - ac_cv_path_EGREP="$ac_path_EGREP" - ac_path_EGREP_max=$ac_count - fi - # 10*(2^10) chars as input seems more than enough - test $ac_count -gt 10 && break - done - rm -f conftest.in conftest.tmp conftest.nl conftest.out;; -esac - - $ac_path_EGREP_found && break 3 - done - done - done -IFS=$as_save_IFS - if test -z "$ac_cv_path_EGREP"; then - as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 - fi -else - ac_cv_path_EGREP=$EGREP -fi - - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 -$as_echo "$ac_cv_path_EGREP" >&6; } - EGREP="$ac_cv_path_EGREP" - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 -$as_echo_n "checking for ANSI C header files... " >&6; } -if ${ac_cv_header_stdc+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include -#include -#include - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_header_stdc=yes -else - ac_cv_header_stdc=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -if test $ac_cv_header_stdc = yes; then - # SunOS 4.x string.h does not declare mem*, contrary to ANSI. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "memchr" >/dev/null 2>&1; then : - -else - ac_cv_header_stdc=no -fi -rm -f conftest* - -fi - -if test $ac_cv_header_stdc = yes; then - # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "free" >/dev/null 2>&1; then : - -else - ac_cv_header_stdc=no -fi -rm -f conftest* - -fi - -if test $ac_cv_header_stdc = yes; then - # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. - if test "$cross_compiling" = yes; then : - : -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include -#if ((' ' & 0x0FF) == 0x020) -# define ISLOWER(c) ('a' <= (c) && (c) <= 'z') -# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) -#else -# define ISLOWER(c) \ - (('a' <= (c) && (c) <= 'i') \ - || ('j' <= (c) && (c) <= 'r') \ - || ('s' <= (c) && (c) <= 'z')) -# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) -#endif - -#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) -int -main () -{ - int i; - for (i = 0; i < 256; i++) - if (XOR (islower (i), ISLOWER (i)) - || toupper (i) != TOUPPER (i)) - return 2; - return 0; -} -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - -else - ac_cv_header_stdc=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - -fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 -$as_echo "$ac_cv_header_stdc" >&6; } -if test $ac_cv_header_stdc = yes; then - -$as_echo "@%:@define STDC_HEADERS 1" >>confdefs.h - -fi - - -# Make sure we can run config.sub. -$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || - as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5 - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 -$as_echo_n "checking build system type... " >&6; } -if ${ac_cv_build+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_build_alias=$build_alias -test "x$ac_build_alias" = x && - ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` -test "x$ac_build_alias" = x && - as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5 -ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || - as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5 - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5 -$as_echo "$ac_cv_build" >&6; } -case $ac_cv_build in -*-*-*) ;; -*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;; -esac -build=$ac_cv_build -ac_save_IFS=$IFS; IFS='-' -set x $ac_cv_build -shift -build_cpu=$1 -build_vendor=$2 -shift; shift -# Remember, the first character of IFS is used to create $*, -# except with old shells: -build_os=$* -IFS=$ac_save_IFS -case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5 -$as_echo_n "checking host system type... " >&6; } -if ${ac_cv_host+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "x$host_alias" = x; then - ac_cv_host=$ac_cv_build -else - ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || - as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5 -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5 -$as_echo "$ac_cv_host" >&6; } -case $ac_cv_host in -*-*-*) ;; -*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;; -esac -host=$ac_cv_host -ac_save_IFS=$IFS; IFS='-' -set x $ac_cv_host -shift -host_cpu=$1 -host_vendor=$2 -shift; shift -# Remember, the first character of IFS is used to create $*, -# except with old shells: -host_os=$* -IFS=$ac_save_IFS -case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac - - - - - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - -acx_pthread_ok=no - -# We used to check for pthread.h first, but this fails if pthread.h -# requires special compiler flags (e.g. on True64 or Sequent). -# It gets checked for in the link test anyway. - -# First of all, check if the user has set any of the PTHREAD_LIBS, -# etcetera environment variables, and if threads linking works using -# them: -if test x"$PTHREAD_LIBS$PTHREAD_CFLAGS" != x; then - save_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS $PTHREAD_CFLAGS" - save_LIBS="$LIBS" - LIBS="$PTHREAD_LIBS $LIBS" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread_join in LIBS=$PTHREAD_LIBS with CFLAGS=$PTHREAD_CFLAGS" >&5 -$as_echo_n "checking for pthread_join in LIBS=$PTHREAD_LIBS with CFLAGS=$PTHREAD_CFLAGS... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char pthread_join (); -int -main () -{ -return pthread_join (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - acx_pthread_ok=yes -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $acx_pthread_ok" >&5 -$as_echo "$acx_pthread_ok" >&6; } - if test x"$acx_pthread_ok" = xno; then - PTHREAD_LIBS="" - PTHREAD_CFLAGS="" - fi - LIBS="$save_LIBS" - CFLAGS="$save_CFLAGS" -fi - -# We must check for the threads library under a number of different -# names; the ordering is very important because some systems -# (e.g. DEC) have both -lpthread and -lpthreads, where one of the -# libraries is broken (non-POSIX). - -# Create a list of thread flags to try. Items starting with a "-" are -# C compiler flags, and other items are library names, except for "none" -# which indicates that we try without any flags at all, and "pthread-config" -# which is a program returning the flags for the Pth emulation library. - -acx_pthread_flags="pthreads none -Kthread -kthread lthread -pthread -pthreads -mthreads pthread --thread-safe -mt pthread-config" - -# The ordering *is* (sometimes) important. Some notes on the -# individual items follow: - -# pthreads: AIX (must check this before -lpthread) -# none: in case threads are in libc; should be tried before -Kthread and -# other compiler flags to prevent continual compiler warnings -# -Kthread: Sequent (threads in libc, but -Kthread needed for pthread.h) -# -kthread: FreeBSD kernel threads (preferred to -pthread since SMP-able) -# lthread: LinuxThreads port on FreeBSD (also preferred to -pthread) -# -pthread: Linux/gcc (kernel threads), BSD/gcc (userland threads) -# -pthreads: Solaris/gcc -# -mthreads: Mingw32/gcc, Lynx/gcc -# -mt: Sun Workshop C (may only link SunOS threads [-lthread], but it -# doesn't hurt to check since this sometimes defines pthreads too; -# also defines -D_REENTRANT) -# ... -mt is also the pthreads flag for HP/aCC -# pthread: Linux, etcetera -# --thread-safe: KAI C++ -# pthread-config: use pthread-config program (for GNU Pth library) - -case "${host_cpu}-${host_os}" in - *solaris*) - - # On Solaris (at least, for some versions), libc contains stubbed - # (non-functional) versions of the pthreads routines, so link-based - # tests will erroneously succeed. (We need to link with -pthreads/-mt/ - # -lpthread.) (The stubs are missing pthread_cleanup_push, or rather - # a function called by this macro, so we could check for that, but - # who knows whether they'll stub that too in a future libc.) So, - # we'll just look for -pthreads and -lpthread first: - - acx_pthread_flags="-pthreads pthread -mt -pthread $acx_pthread_flags" - ;; -esac - -if test x"$acx_pthread_ok" = xno; then -for flag in $acx_pthread_flags; do - - case $flag in - none) - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether pthreads work without any flags" >&5 -$as_echo_n "checking whether pthreads work without any flags... " >&6; } - ;; - - -*) - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether pthreads work with $flag" >&5 -$as_echo_n "checking whether pthreads work with $flag... " >&6; } - PTHREAD_CFLAGS="$flag" - ;; - - pthread-config) - # Extract the first word of "pthread-config", so it can be a program name with args. -set dummy pthread-config; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_acx_pthread_config+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$acx_pthread_config"; then - ac_cv_prog_acx_pthread_config="$acx_pthread_config" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_acx_pthread_config="yes" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - test -z "$ac_cv_prog_acx_pthread_config" && ac_cv_prog_acx_pthread_config="no" -fi -fi -acx_pthread_config=$ac_cv_prog_acx_pthread_config -if test -n "$acx_pthread_config"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $acx_pthread_config" >&5 -$as_echo "$acx_pthread_config" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - if test x"$acx_pthread_config" = xno; then continue; fi - PTHREAD_CFLAGS="`pthread-config --cflags`" - PTHREAD_LIBS="`pthread-config --ldflags` `pthread-config --libs`" - ;; - - *) - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for the pthreads library -l$flag" >&5 -$as_echo_n "checking for the pthreads library -l$flag... " >&6; } - PTHREAD_LIBS="-l$flag" - ;; - esac - - save_LIBS="$LIBS" - save_CFLAGS="$CFLAGS" - LIBS="$PTHREAD_LIBS $LIBS" - CFLAGS="$CFLAGS $PTHREAD_CFLAGS" - - # Check for various functions. We must include pthread.h, - # since some functions may be macros. (On the Sequent, we - # need a special flag -Kthread to make this header compile.) - # We check for pthread_join because it is in -lpthread on IRIX - # while pthread_create is in libc. We check for pthread_attr_init - # due to DEC craziness with -lpthreads. We check for - # pthread_cleanup_push because it is one of the few pthread - # functions on Solaris that doesn't have a non-functional libc stub. - # We try pthread_create on general principles. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main () -{ -pthread_t th; pthread_join(th, 0); - pthread_attr_init(0); pthread_cleanup_push(0, 0); - pthread_create(0,0,0,0); pthread_cleanup_pop(0); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - acx_pthread_ok=yes -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - - LIBS="$save_LIBS" - CFLAGS="$save_CFLAGS" - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $acx_pthread_ok" >&5 -$as_echo "$acx_pthread_ok" >&6; } - if test "x$acx_pthread_ok" = xyes; then - break; - fi - - PTHREAD_LIBS="" - PTHREAD_CFLAGS="" -done -fi - -# Various other checks: -if test "x$acx_pthread_ok" = xyes; then - save_LIBS="$LIBS" - LIBS="$PTHREAD_LIBS $LIBS" - save_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS $PTHREAD_CFLAGS" - - # Detect AIX lossage: JOINABLE attribute is called UNDETACHED. - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for joinable pthread attribute" >&5 -$as_echo_n "checking for joinable pthread attribute... " >&6; } - attr_name=unknown - for attr in PTHREAD_CREATE_JOINABLE PTHREAD_CREATE_UNDETACHED; do - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main () -{ -int attr=$attr; return attr; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - attr_name=$attr; break -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - done - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $attr_name" >&5 -$as_echo "$attr_name" >&6; } - if test "$attr_name" != PTHREAD_CREATE_JOINABLE; then - -cat >>confdefs.h <<_ACEOF -@%:@define PTHREAD_CREATE_JOINABLE $attr_name -_ACEOF - - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if more special flags are required for pthreads" >&5 -$as_echo_n "checking if more special flags are required for pthreads... " >&6; } - flag=no - case "${host_cpu}-${host_os}" in - *-aix* | *-freebsd* | *-darwin*) flag="-D_THREAD_SAFE";; - *solaris* | *-osf* | *-hpux*) flag="-D_REENTRANT";; - esac - { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${flag}" >&5 -$as_echo "${flag}" >&6; } - if test "x$flag" != xno; then - PTHREAD_CFLAGS="$flag $PTHREAD_CFLAGS" - fi - - LIBS="$save_LIBS" - CFLAGS="$save_CFLAGS" - - # More AIX lossage: must compile with xlc_r or cc_r - if test x"$GCC" != xyes; then - for ac_prog in xlc_r cc_r -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_PTHREAD_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$PTHREAD_CC"; then - ac_cv_prog_PTHREAD_CC="$PTHREAD_CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_PTHREAD_CC="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -PTHREAD_CC=$ac_cv_prog_PTHREAD_CC -if test -n "$PTHREAD_CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PTHREAD_CC" >&5 -$as_echo "$PTHREAD_CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$PTHREAD_CC" && break -done -test -n "$PTHREAD_CC" || PTHREAD_CC="${CC}" - - else - PTHREAD_CC=$CC - fi -else - PTHREAD_CC="$CC" -fi - - - - - -# Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND: -if test x"$acx_pthread_ok" = xyes; then - -$as_echo "@%:@define HAVE_PTHREAD 1" >>confdefs.h - - : -else - acx_pthread_ok=no - -fi -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - - - - - - - -# The comment about adding -g to $CFLAGS is unclear. Autoconf tries to add -# a -g flag; we remove it if the user's $CFLAGS was not set and debugging is -# disabled. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if you specifically want to enable debug-code -g" >&5 -$as_echo_n "checking if you specifically want to enable debug-code -g... " >&6; } -@%:@ Check whether --enable-debug was given. -if test "${enable_debug+set}" = set; then : - enableval=$enable_debug; enable_debug=yes -else - enable_debug=no -fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_debug" >&5 -$as_echo "$enable_debug" >&6; } - -if test "x$enable_debug" = "xyes" ; then - test -z "$ORIGINAL_CFLAGS" && CFLAGS=`echo ${CFLAGS} | sed -e 's/-O[1-9]\? //' -e 's/-O[1-9]\?$//'` - if test "$CC" = gcc; then - CFLAGS="$CFLAGS -g" - fi -#else -# CF_STRIP_G_OPT(CFLAGS) -fi - - - -GETTEXT_PACKAGE=guvcview - - -cat >>confdefs.h <<_ACEOF -@%:@define GETTEXT_PACKAGE "$GETTEXT_PACKAGE" -_ACEOF - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether NLS is requested" >&5 -$as_echo_n "checking whether NLS is requested... " >&6; } - @%:@ Check whether --enable-nls was given. -if test "${enable_nls+set}" = set; then : - enableval=$enable_nls; USE_NLS=$enableval -else - USE_NLS=yes -fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_NLS" >&5 -$as_echo "$USE_NLS" >&6; } - - - - -case "$am__api_version" in - 1.01234) - as_fn_error $? "Automake 1.5 or newer is required to use intltool" "$LINENO" 5 - ;; - *) - ;; -esac - -if test -n "0.40"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for intltool >= 0.40" >&5 -$as_echo_n "checking for intltool >= 0.40... " >&6; } - - INTLTOOL_REQUIRED_VERSION_AS_INT=`echo 0.40 | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'` - INTLTOOL_APPLIED_VERSION=`intltool-update --version | head -1 | cut -d" " -f3` - INTLTOOL_APPLIED_VERSION_AS_INT=`echo $INTLTOOL_APPLIED_VERSION | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'` - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_APPLIED_VERSION found" >&5 -$as_echo "$INTLTOOL_APPLIED_VERSION found" >&6; } - test "$INTLTOOL_APPLIED_VERSION_AS_INT" -ge "$INTLTOOL_REQUIRED_VERSION_AS_INT" || - as_fn_error $? "Your intltool is too old. You need intltool 0.40 or later." "$LINENO" 5 -fi - -# Extract the first word of "intltool-update", so it can be a program name with args. -set dummy intltool-update; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_INTLTOOL_UPDATE+:} false; then : - $as_echo_n "(cached) " >&6 -else - case $INTLTOOL_UPDATE in - [\\/]* | ?:[\\/]*) - ac_cv_path_INTLTOOL_UPDATE="$INTLTOOL_UPDATE" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_INTLTOOL_UPDATE="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - ;; -esac -fi -INTLTOOL_UPDATE=$ac_cv_path_INTLTOOL_UPDATE -if test -n "$INTLTOOL_UPDATE"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_UPDATE" >&5 -$as_echo "$INTLTOOL_UPDATE" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -# Extract the first word of "intltool-merge", so it can be a program name with args. -set dummy intltool-merge; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_INTLTOOL_MERGE+:} false; then : - $as_echo_n "(cached) " >&6 -else - case $INTLTOOL_MERGE in - [\\/]* | ?:[\\/]*) - ac_cv_path_INTLTOOL_MERGE="$INTLTOOL_MERGE" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_INTLTOOL_MERGE="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - ;; -esac -fi -INTLTOOL_MERGE=$ac_cv_path_INTLTOOL_MERGE -if test -n "$INTLTOOL_MERGE"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_MERGE" >&5 -$as_echo "$INTLTOOL_MERGE" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -# Extract the first word of "intltool-extract", so it can be a program name with args. -set dummy intltool-extract; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_INTLTOOL_EXTRACT+:} false; then : - $as_echo_n "(cached) " >&6 -else - case $INTLTOOL_EXTRACT in - [\\/]* | ?:[\\/]*) - ac_cv_path_INTLTOOL_EXTRACT="$INTLTOOL_EXTRACT" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_INTLTOOL_EXTRACT="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - ;; -esac -fi -INTLTOOL_EXTRACT=$ac_cv_path_INTLTOOL_EXTRACT -if test -n "$INTLTOOL_EXTRACT"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_EXTRACT" >&5 -$as_echo "$INTLTOOL_EXTRACT" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -if test -z "$INTLTOOL_UPDATE" -o -z "$INTLTOOL_MERGE" -o -z "$INTLTOOL_EXTRACT"; then - as_fn_error $? "The intltool scripts were not found. Please install intltool." "$LINENO" 5 -fi - - INTLTOOL_DESKTOP_RULE='%.desktop: %.desktop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' -INTLTOOL_DIRECTORY_RULE='%.directory: %.directory.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' - INTLTOOL_KEYS_RULE='%.keys: %.keys.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -k -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' - INTLTOOL_PROP_RULE='%.prop: %.prop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' - INTLTOOL_OAF_RULE='%.oaf: %.oaf.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -o -p $(top_srcdir)/po $< $@' - INTLTOOL_PONG_RULE='%.pong: %.pong.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' - INTLTOOL_SERVER_RULE='%.server: %.server.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -o -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' - INTLTOOL_SHEET_RULE='%.sheet: %.sheet.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' -INTLTOOL_SOUNDLIST_RULE='%.soundlist: %.soundlist.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' - INTLTOOL_UI_RULE='%.ui: %.ui.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' - INTLTOOL_XML_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' - INTLTOOL_XML_NOMERGE_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u /tmp $< $@' - INTLTOOL_XAM_RULE='%.xam: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' - INTLTOOL_KBD_RULE='%.kbd: %.kbd.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -m -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' - INTLTOOL_CAVES_RULE='%.caves: %.caves.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' - INTLTOOL_SCHEMAS_RULE='%.schemas: %.schemas.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -s -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' - INTLTOOL_THEME_RULE='%.theme: %.theme.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' - INTLTOOL_SERVICE_RULE='%.service: %.service.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' - INTLTOOL_POLICY_RULE='%.policy: %.policy.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -# Check the gettext tools to make sure they are GNU -# Extract the first word of "xgettext", so it can be a program name with args. -set dummy xgettext; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_XGETTEXT+:} false; then : - $as_echo_n "(cached) " >&6 -else - case $XGETTEXT in - [\\/]* | ?:[\\/]*) - ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_XGETTEXT="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - ;; -esac -fi -XGETTEXT=$ac_cv_path_XGETTEXT -if test -n "$XGETTEXT"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XGETTEXT" >&5 -$as_echo "$XGETTEXT" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -# Extract the first word of "msgmerge", so it can be a program name with args. -set dummy msgmerge; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_MSGMERGE+:} false; then : - $as_echo_n "(cached) " >&6 -else - case $MSGMERGE in - [\\/]* | ?:[\\/]*) - ac_cv_path_MSGMERGE="$MSGMERGE" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_MSGMERGE="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - ;; -esac -fi -MSGMERGE=$ac_cv_path_MSGMERGE -if test -n "$MSGMERGE"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGMERGE" >&5 -$as_echo "$MSGMERGE" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -# Extract the first word of "msgfmt", so it can be a program name with args. -set dummy msgfmt; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_MSGFMT+:} false; then : - $as_echo_n "(cached) " >&6 -else - case $MSGFMT in - [\\/]* | ?:[\\/]*) - ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_MSGFMT="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - ;; -esac -fi -MSGFMT=$ac_cv_path_MSGFMT -if test -n "$MSGFMT"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGFMT" >&5 -$as_echo "$MSGFMT" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -# Extract the first word of "gmsgfmt", so it can be a program name with args. -set dummy gmsgfmt; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_GMSGFMT+:} false; then : - $as_echo_n "(cached) " >&6 -else - case $GMSGFMT in - [\\/]* | ?:[\\/]*) - ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_GMSGFMT="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT" - ;; -esac -fi -GMSGFMT=$ac_cv_path_GMSGFMT -if test -n "$GMSGFMT"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GMSGFMT" >&5 -$as_echo "$GMSGFMT" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -if test -z "$XGETTEXT" -o -z "$MSGMERGE" -o -z "$MSGFMT"; then - as_fn_error $? "GNU gettext tools not found; required for intltool" "$LINENO" 5 -fi -xgversion="`$XGETTEXT --version|grep '(GNU ' 2> /dev/null`" -mmversion="`$MSGMERGE --version|grep '(GNU ' 2> /dev/null`" -mfversion="`$MSGFMT --version|grep '(GNU ' 2> /dev/null`" -if test -z "$xgversion" -o -z "$mmversion" -o -z "$mfversion"; then - as_fn_error $? "GNU gettext tools not found; required for intltool" "$LINENO" 5 -fi - -# Extract the first word of "perl", so it can be a program name with args. -set dummy perl; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_INTLTOOL_PERL+:} false; then : - $as_echo_n "(cached) " >&6 -else - case $INTLTOOL_PERL in - [\\/]* | ?:[\\/]*) - ac_cv_path_INTLTOOL_PERL="$INTLTOOL_PERL" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_INTLTOOL_PERL="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - ;; -esac -fi -INTLTOOL_PERL=$ac_cv_path_INTLTOOL_PERL -if test -n "$INTLTOOL_PERL"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_PERL" >&5 -$as_echo "$INTLTOOL_PERL" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -if test -z "$INTLTOOL_PERL"; then - as_fn_error $? "perl not found" "$LINENO" 5 -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for perl >= 5.8.1" >&5 -$as_echo_n "checking for perl >= 5.8.1... " >&6; } -$INTLTOOL_PERL -e "use 5.8.1;" > /dev/null 2>&1 -if test $? -ne 0; then - as_fn_error $? "perl 5.8.1 is required for intltool" "$LINENO" 5 -else - IT_PERL_VERSION="`$INTLTOOL_PERL -e \"printf '%vd', $^V\"`" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $IT_PERL_VERSION" >&5 -$as_echo "$IT_PERL_VERSION" >&6; } -fi -if test "x" != "xno-xml"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XML::Parser" >&5 -$as_echo_n "checking for XML::Parser... " >&6; } - if `$INTLTOOL_PERL -e "require XML::Parser" 2>/dev/null`; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5 -$as_echo "ok" >&6; } - else - as_fn_error $? "XML::Parser perl module is required for intltool" "$LINENO" 5 - fi -fi - -# Substitute ALL_LINGUAS so we can use it in po/Makefile - - -# Set DATADIRNAME correctly if it is not set yet -# (copied from glib-gettext.m4) -if test -z "$DATADIRNAME"; then - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ -extern int _nl_msg_cat_cntr; - return _nl_msg_cat_cntr - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - DATADIRNAME=share -else - case $host in - *-*-solaris*) - ac_fn_c_check_func "$LINENO" "bind_textdomain_codeset" "ac_cv_func_bind_textdomain_codeset" -if test "x$ac_cv_func_bind_textdomain_codeset" = xyes; then : - DATADIRNAME=share -else - DATADIRNAME=lib -fi - - ;; - *) - DATADIRNAME=lib - ;; - esac -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi - - - - - - -ALL_LINGUAS="bg bs cs da de en_AU es eu fo fr gl he hr it ja lv nl pl pt pt_BR ru si sr tr uk zh_TW" -# On IRIX 5.3, sys/types and inttypes.h are conflicting. -for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ - inttypes.h stdint.h unistd.h -do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default -" -if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -@%:@define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - - - for ac_header in locale.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "locale.h" "ac_cv_header_locale_h" "$ac_includes_default" -if test "x$ac_cv_header_locale_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -@%:@define HAVE_LOCALE_H 1 -_ACEOF - -fi - -done - - if test $ac_cv_header_locale_h = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for LC_MESSAGES" >&5 -$as_echo_n "checking for LC_MESSAGES... " >&6; } -if ${am_cv_val_LC_MESSAGES+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main () -{ -return LC_MESSAGES - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - am_cv_val_LC_MESSAGES=yes -else - am_cv_val_LC_MESSAGES=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_val_LC_MESSAGES" >&5 -$as_echo "$am_cv_val_LC_MESSAGES" >&6; } - if test $am_cv_val_LC_MESSAGES = yes; then - -$as_echo "@%:@define HAVE_LC_MESSAGES 1" >>confdefs.h - - fi - fi - USE_NLS=yes - - - gt_cv_have_gettext=no - - CATOBJEXT=NONE - XGETTEXT=: - INTLLIBS= - - ac_fn_c_check_header_mongrel "$LINENO" "libintl.h" "ac_cv_header_libintl_h" "$ac_includes_default" -if test "x$ac_cv_header_libintl_h" = xyes; then : - gt_cv_func_dgettext_libintl="no" - libintl_extra_libs="" - - # - # First check in libc - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ngettext in libc" >&5 -$as_echo_n "checking for ngettext in libc... " >&6; } -if ${gt_cv_func_ngettext_libc+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include - -int -main () -{ -return !ngettext ("","", 1) - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - gt_cv_func_ngettext_libc=yes -else - gt_cv_func_ngettext_libc=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_ngettext_libc" >&5 -$as_echo "$gt_cv_func_ngettext_libc" >&6; } - - if test "$gt_cv_func_ngettext_libc" = "yes" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dgettext in libc" >&5 -$as_echo_n "checking for dgettext in libc... " >&6; } -if ${gt_cv_func_dgettext_libc+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include - -int -main () -{ -return !dgettext ("","") - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - gt_cv_func_dgettext_libc=yes -else - gt_cv_func_dgettext_libc=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_dgettext_libc" >&5 -$as_echo "$gt_cv_func_dgettext_libc" >&6; } - fi - - if test "$gt_cv_func_ngettext_libc" = "yes" ; then - for ac_func in bind_textdomain_codeset -do : - ac_fn_c_check_func "$LINENO" "bind_textdomain_codeset" "ac_cv_func_bind_textdomain_codeset" -if test "x$ac_cv_func_bind_textdomain_codeset" = xyes; then : - cat >>confdefs.h <<_ACEOF -@%:@define HAVE_BIND_TEXTDOMAIN_CODESET 1 -_ACEOF - -fi -done - - fi - - # - # If we don't have everything we want, check in libintl - # - if test "$gt_cv_func_dgettext_libc" != "yes" \ - || test "$gt_cv_func_ngettext_libc" != "yes" \ - || test "$ac_cv_func_bind_textdomain_codeset" != "yes" ; then - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for bindtextdomain in -lintl" >&5 -$as_echo_n "checking for bindtextdomain in -lintl... " >&6; } -if ${ac_cv_lib_intl_bindtextdomain+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lintl $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char bindtextdomain (); -int -main () -{ -return bindtextdomain (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_intl_bindtextdomain=yes -else - ac_cv_lib_intl_bindtextdomain=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_bindtextdomain" >&5 -$as_echo "$ac_cv_lib_intl_bindtextdomain" >&6; } -if test "x$ac_cv_lib_intl_bindtextdomain" = xyes; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ngettext in -lintl" >&5 -$as_echo_n "checking for ngettext in -lintl... " >&6; } -if ${ac_cv_lib_intl_ngettext+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lintl $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char ngettext (); -int -main () -{ -return ngettext (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_intl_ngettext=yes -else - ac_cv_lib_intl_ngettext=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_ngettext" >&5 -$as_echo "$ac_cv_lib_intl_ngettext" >&6; } -if test "x$ac_cv_lib_intl_ngettext" = xyes; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dgettext in -lintl" >&5 -$as_echo_n "checking for dgettext in -lintl... " >&6; } -if ${ac_cv_lib_intl_dgettext+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lintl $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char dgettext (); -int -main () -{ -return dgettext (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_intl_dgettext=yes -else - ac_cv_lib_intl_dgettext=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_dgettext" >&5 -$as_echo "$ac_cv_lib_intl_dgettext" >&6; } -if test "x$ac_cv_lib_intl_dgettext" = xyes; then : - gt_cv_func_dgettext_libintl=yes -fi - -fi - -fi - - - if test "$gt_cv_func_dgettext_libintl" != "yes" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if -liconv is needed to use gettext" >&5 -$as_echo_n "checking if -liconv is needed to use gettext... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 -$as_echo "" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ngettext in -lintl" >&5 -$as_echo_n "checking for ngettext in -lintl... " >&6; } -if ${ac_cv_lib_intl_ngettext+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lintl -liconv $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char ngettext (); -int -main () -{ -return ngettext (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_intl_ngettext=yes -else - ac_cv_lib_intl_ngettext=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_ngettext" >&5 -$as_echo "$ac_cv_lib_intl_ngettext" >&6; } -if test "x$ac_cv_lib_intl_ngettext" = xyes; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dcgettext in -lintl" >&5 -$as_echo_n "checking for dcgettext in -lintl... " >&6; } -if ${ac_cv_lib_intl_dcgettext+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lintl -liconv $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char dcgettext (); -int -main () -{ -return dcgettext (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_intl_dcgettext=yes -else - ac_cv_lib_intl_dcgettext=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_dcgettext" >&5 -$as_echo "$ac_cv_lib_intl_dcgettext" >&6; } -if test "x$ac_cv_lib_intl_dcgettext" = xyes; then : - gt_cv_func_dgettext_libintl=yes - libintl_extra_libs=-liconv -else - : -fi - -else - : -fi - - fi - - # - # If we found libintl, then check in it for bind_textdomain_codeset(); - # we'll prefer libc if neither have bind_textdomain_codeset(), - # and both have dgettext and ngettext - # - if test "$gt_cv_func_dgettext_libintl" = "yes" ; then - glib_save_LIBS="$LIBS" - LIBS="$LIBS -lintl $libintl_extra_libs" - unset ac_cv_func_bind_textdomain_codeset - for ac_func in bind_textdomain_codeset -do : - ac_fn_c_check_func "$LINENO" "bind_textdomain_codeset" "ac_cv_func_bind_textdomain_codeset" -if test "x$ac_cv_func_bind_textdomain_codeset" = xyes; then : - cat >>confdefs.h <<_ACEOF -@%:@define HAVE_BIND_TEXTDOMAIN_CODESET 1 -_ACEOF - -fi -done - - LIBS="$glib_save_LIBS" - - if test "$ac_cv_func_bind_textdomain_codeset" = "yes" ; then - gt_cv_func_dgettext_libc=no - else - if test "$gt_cv_func_dgettext_libc" = "yes" \ - && test "$gt_cv_func_ngettext_libc" = "yes"; then - gt_cv_func_dgettext_libintl=no - fi - fi - fi - fi - - if test "$gt_cv_func_dgettext_libc" = "yes" \ - || test "$gt_cv_func_dgettext_libintl" = "yes"; then - gt_cv_have_gettext=yes - fi - - if test "$gt_cv_func_dgettext_libintl" = "yes"; then - INTLLIBS="-lintl $libintl_extra_libs" - fi - - if test "$gt_cv_have_gettext" = "yes"; then - -$as_echo "@%:@define HAVE_GETTEXT 1" >>confdefs.h - - # Extract the first word of "msgfmt", so it can be a program name with args. -set dummy msgfmt; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_MSGFMT+:} false; then : - $as_echo_n "(cached) " >&6 -else - case "$MSGFMT" in - /*) - ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path. - ;; - *) - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" - for ac_dir in $PATH; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - if test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"; then - ac_cv_path_MSGFMT="$ac_dir/$ac_word" - break - fi - fi - done - IFS="$ac_save_ifs" - test -z "$ac_cv_path_MSGFMT" && ac_cv_path_MSGFMT="no" - ;; -esac -fi -MSGFMT="$ac_cv_path_MSGFMT" -if test "$MSGFMT" != "no"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGFMT" >&5 -$as_echo "$MSGFMT" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - if test "$MSGFMT" != "no"; then - glib_save_LIBS="$LIBS" - LIBS="$LIBS $INTLLIBS" - for ac_func in dcgettext -do : - ac_fn_c_check_func "$LINENO" "dcgettext" "ac_cv_func_dcgettext" -if test "x$ac_cv_func_dcgettext" = xyes; then : - cat >>confdefs.h <<_ACEOF -@%:@define HAVE_DCGETTEXT 1 -_ACEOF - -fi -done - - MSGFMT_OPTS= - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if msgfmt accepts -c" >&5 -$as_echo_n "checking if msgfmt accepts -c... " >&6; } - cat >conftest.foo <<_ACEOF - -msgid "" -msgstr "" -"Content-Type: text/plain; charset=UTF-8\n" -"Project-Id-Version: test 1.0\n" -"PO-Revision-Date: 2007-02-15 12:01+0100\n" -"Last-Translator: test \n" -"Language-Team: C \n" -"MIME-Version: 1.0\n" -"Content-Transfer-Encoding: 8bit\n" - -_ACEOF -if { { $as_echo "$as_me:${as_lineno-$LINENO}: \$MSGFMT -c -o /dev/null conftest.foo"; } >&5 - ($MSGFMT -c -o /dev/null conftest.foo) 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - MSGFMT_OPTS=-c; { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -echo "$as_me: failed input was:" >&5 -sed 's/^/| /' conftest.foo >&5 -fi - - # Extract the first word of "gmsgfmt", so it can be a program name with args. -set dummy gmsgfmt; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_GMSGFMT+:} false; then : - $as_echo_n "(cached) " >&6 -else - case $GMSGFMT in - [\\/]* | ?:[\\/]*) - ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_GMSGFMT="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT" - ;; -esac -fi -GMSGFMT=$ac_cv_path_GMSGFMT -if test -n "$GMSGFMT"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GMSGFMT" >&5 -$as_echo "$GMSGFMT" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - # Extract the first word of "xgettext", so it can be a program name with args. -set dummy xgettext; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_XGETTEXT+:} false; then : - $as_echo_n "(cached) " >&6 -else - case "$XGETTEXT" in - /*) - ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path. - ;; - *) - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" - for ac_dir in $PATH; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - if test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"; then - ac_cv_path_XGETTEXT="$ac_dir/$ac_word" - break - fi - fi - done - IFS="$ac_save_ifs" - test -z "$ac_cv_path_XGETTEXT" && ac_cv_path_XGETTEXT=":" - ;; -esac -fi -XGETTEXT="$ac_cv_path_XGETTEXT" -if test "$XGETTEXT" != ":"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XGETTEXT" >&5 -$as_echo "$XGETTEXT" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ -extern int _nl_msg_cat_cntr; - return _nl_msg_cat_cntr - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - CATOBJEXT=.gmo - DATADIRNAME=share -else - case $host in - *-*-solaris*) - ac_fn_c_check_func "$LINENO" "bind_textdomain_codeset" "ac_cv_func_bind_textdomain_codeset" -if test "x$ac_cv_func_bind_textdomain_codeset" = xyes; then : - CATOBJEXT=.gmo - DATADIRNAME=share -else - CATOBJEXT=.mo - DATADIRNAME=lib -fi - - ;; - *-*-openbsd*) - CATOBJEXT=.mo - DATADIRNAME=share - ;; - *) - CATOBJEXT=.mo - DATADIRNAME=lib - ;; - esac -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - LIBS="$glib_save_LIBS" - INSTOBJEXT=.mo - else - gt_cv_have_gettext=no - fi - fi - -fi - - - - if test "$gt_cv_have_gettext" = "yes" ; then - -$as_echo "@%:@define ENABLE_NLS 1" >>confdefs.h - - fi - - if test "$XGETTEXT" != ":"; then - if $XGETTEXT --omit-header /dev/null 2> /dev/null; then - : ; - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: found xgettext program is not GNU xgettext; ignore it" >&5 -$as_echo "found xgettext program is not GNU xgettext; ignore it" >&6; } - XGETTEXT=":" - fi - fi - - # We need to process the po/ directory. - POSUB=po - - ac_config_commands="$ac_config_commands default-1" - - - for lang in $ALL_LINGUAS; do - GMOFILES="$GMOFILES $lang.gmo" - POFILES="$POFILES $lang.po" - done - - - - - - - - - - - - - - if test "$gt_cv_have_gettext" = "yes"; then - if test "x$ALL_LINGUAS" = "x"; then - LINGUAS= - else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for catalogs to be installed" >&5 -$as_echo_n "checking for catalogs to be installed... " >&6; } - NEW_LINGUAS= - for presentlang in $ALL_LINGUAS; do - useit=no - if test "%UNSET%" != "${LINGUAS-%UNSET%}"; then - desiredlanguages="$LINGUAS" - else - desiredlanguages="$ALL_LINGUAS" - fi - for desiredlang in $desiredlanguages; do - # Use the presentlang catalog if desiredlang is - # a. equal to presentlang, or - # b. a variant of presentlang (because in this case, - # presentlang can be used as a fallback for messages - # which are not translated in the desiredlang catalog). - case "$desiredlang" in - "$presentlang"*) useit=yes;; - esac - done - if test $useit = yes; then - NEW_LINGUAS="$NEW_LINGUAS $presentlang" - fi - done - LINGUAS=$NEW_LINGUAS - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LINGUAS" >&5 -$as_echo "$LINGUAS" >&6; } - fi - - if test -n "$LINGUAS"; then - for lang in $LINGUAS; do CATALOGS="$CATALOGS $lang$CATOBJEXT"; done - fi - fi - - MKINSTALLDIRS= - if test -n "$ac_aux_dir"; then - MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs" - fi - if test -z "$MKINSTALLDIRS"; then - MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs" - fi - - - test -d po || mkdir po - if test "x$srcdir" != "x."; then - if test "x`echo $srcdir | sed 's@/.*@@'`" = "x"; then - posrcprefix="$srcdir/" - else - posrcprefix="../$srcdir/" - fi - else - posrcprefix="../" - fi - rm -f po/POTFILES - sed -e "/^#/d" -e "/^\$/d" -e "s,.*, $posrcprefix& \\\\," -e "\$s/\(.*\) \\\\/\1/" \ - < $srcdir/po/POTFILES.in > po/POTFILES - - - - - - - - - -if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. -set dummy ${ac_tool_prefix}pkg-config; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_PKG_CONFIG+:} false; then : - $as_echo_n "(cached) " >&6 -else - case $PKG_CONFIG in - [\\/]* | ?:[\\/]*) - ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - ;; -esac -fi -PKG_CONFIG=$ac_cv_path_PKG_CONFIG -if test -n "$PKG_CONFIG"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5 -$as_echo "$PKG_CONFIG" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_path_PKG_CONFIG"; then - ac_pt_PKG_CONFIG=$PKG_CONFIG - # Extract the first word of "pkg-config", so it can be a program name with args. -set dummy pkg-config; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_ac_pt_PKG_CONFIG+:} false; then : - $as_echo_n "(cached) " >&6 -else - case $ac_pt_PKG_CONFIG in - [\\/]* | ?:[\\/]*) - ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - ;; -esac -fi -ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG -if test -n "$ac_pt_PKG_CONFIG"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5 -$as_echo "$ac_pt_PKG_CONFIG" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_pt_PKG_CONFIG" = x; then - PKG_CONFIG="" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - PKG_CONFIG=$ac_pt_PKG_CONFIG - fi -else - PKG_CONFIG="$ac_cv_path_PKG_CONFIG" -fi - -fi -if test -n "$PKG_CONFIG"; then - _pkg_min_version=0.9.0 - { $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5 -$as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; } - if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - PKG_CONFIG="" - fi -fi - -pkg_failed=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for DEPS" >&5 -$as_echo_n "checking for DEPS... " >&6; } - -if test -n "$DEPS_CFLAGS"; then - pkg_cv_DEPS_CFLAGS="$DEPS_CFLAGS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk+-3.0 >= 3.0.0 glib-2.0 >= 2.10.0 sdl >= 1.2.10 portaudio-2.0 libpng libavcodec libavutil libv4l2 libudev libusb-1.0\""; } >&5 - ($PKG_CONFIG --exists --print-errors "gtk+-3.0 >= 3.0.0 glib-2.0 >= 2.10.0 sdl >= 1.2.10 portaudio-2.0 libpng libavcodec libavutil libv4l2 libudev libusb-1.0") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_DEPS_CFLAGS=`$PKG_CONFIG --cflags "gtk+-3.0 >= 3.0.0 glib-2.0 >= 2.10.0 sdl >= 1.2.10 portaudio-2.0 libpng libavcodec libavutil libv4l2 libudev libusb-1.0" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi -if test -n "$DEPS_LIBS"; then - pkg_cv_DEPS_LIBS="$DEPS_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk+-3.0 >= 3.0.0 glib-2.0 >= 2.10.0 sdl >= 1.2.10 portaudio-2.0 libpng libavcodec libavutil libv4l2 libudev libusb-1.0\""; } >&5 - ($PKG_CONFIG --exists --print-errors "gtk+-3.0 >= 3.0.0 glib-2.0 >= 2.10.0 sdl >= 1.2.10 portaudio-2.0 libpng libavcodec libavutil libv4l2 libudev libusb-1.0") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_DEPS_LIBS=`$PKG_CONFIG --libs "gtk+-3.0 >= 3.0.0 glib-2.0 >= 2.10.0 sdl >= 1.2.10 portaudio-2.0 libpng libavcodec libavutil libv4l2 libudev libusb-1.0" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi - - - -if test $pkg_failed = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - -if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then - _pkg_short_errors_supported=yes -else - _pkg_short_errors_supported=no -fi - if test $_pkg_short_errors_supported = yes; then - DEPS_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "gtk+-3.0 >= 3.0.0 glib-2.0 >= 2.10.0 sdl >= 1.2.10 portaudio-2.0 libpng libavcodec libavutil libv4l2 libudev libusb-1.0" 2>&1` - else - DEPS_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "gtk+-3.0 >= 3.0.0 glib-2.0 >= 2.10.0 sdl >= 1.2.10 portaudio-2.0 libpng libavcodec libavutil libv4l2 libudev libusb-1.0" 2>&1` - fi - # Put the nasty error message in config.log where it belongs - echo "$DEPS_PKG_ERRORS" >&5 - - as_fn_error $? "Package requirements (gtk+-3.0 >= 3.0.0 glib-2.0 >= 2.10.0 sdl >= 1.2.10 portaudio-2.0 libpng libavcodec libavutil libv4l2 libudev libusb-1.0) were not met: - -$DEPS_PKG_ERRORS - -Consider adjusting the PKG_CONFIG_PATH environment variable if you -installed software in a non-standard prefix. - -Alternatively, you may set the environment variables DEPS_CFLAGS -and DEPS_LIBS to avoid the need to call pkg-config. -See the pkg-config man page for more details." "$LINENO" 5 -elif test $pkg_failed = untried; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it -is in your PATH or set the PKG_CONFIG environment variable to the full -path to pkg-config. - -Alternatively, you may set the environment variables DEPS_CFLAGS -and DEPS_LIBS to avoid the need to call pkg-config. -See the pkg-config man page for more details. - -To get pkg-config, see . -See \`config.log' for more details" "$LINENO" 5; } -else - DEPS_CFLAGS=$pkg_cv_DEPS_CFLAGS - DEPS_LIBS=$pkg_cv_DEPS_LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -fi - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if you want to enable debian menu" >&5 -$as_echo_n "checking if you want to enable debian menu... " >&6; } -@%:@ Check whether --enable-debian-menu was given. -if test "${enable_debian_menu+set}" = set; then : - enableval=$enable_debian_menu; enable_debian_menu=no -else - enable_debian_menu=yes -fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_debian_menu" >&5 -$as_echo "$enable_debian_menu" >&6; } - - if test "$enable_debian_menu" = yes; then - DEBIAN_MENU_TRUE= - DEBIAN_MENU_FALSE='#' -else - DEBIAN_MENU_TRUE='#' - DEBIAN_MENU_FALSE= -fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if you want to enable desktop file" >&5 -$as_echo_n "checking if you want to enable desktop file... " >&6; } -@%:@ Check whether --enable-desktop was given. -if test "${enable_desktop+set}" = set; then : - enableval=$enable_desktop; enable_desktop=no -else - enable_desktop=yes -fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_desktop" >&5 -$as_echo "$enable_desktop" >&6; } - - if test "$enable_desktop" = yes; then - DESKTOP_TRUE= - DESKTOP_FALSE='#' -else - DESKTOP_TRUE='#' - DESKTOP_FALSE= -fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if you want to enable pulse support" >&5 -$as_echo_n "checking if you want to enable pulse support... " >&6; } -@%:@ Check whether --enable-pulse was given. -if test "${enable_pulse+set}" = set; then : - enableval=$enable_pulse; enable_pulse=no -else - enable_pulse=yes -fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_pulse" >&5 -$as_echo "$enable_pulse" >&6; } - -if test $enable_pulse = yes; then - -pkg_failed=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for PULSE" >&5 -$as_echo_n "checking for PULSE... " >&6; } - -if test -n "$PULSE_CFLAGS"; then - pkg_cv_PULSE_CFLAGS="$PULSE_CFLAGS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libpulse >= 0.9.15\""; } >&5 - ($PKG_CONFIG --exists --print-errors "libpulse >= 0.9.15") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_PULSE_CFLAGS=`$PKG_CONFIG --cflags "libpulse >= 0.9.15" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi -if test -n "$PULSE_LIBS"; then - pkg_cv_PULSE_LIBS="$PULSE_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libpulse >= 0.9.15\""; } >&5 - ($PKG_CONFIG --exists --print-errors "libpulse >= 0.9.15") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_PULSE_LIBS=`$PKG_CONFIG --libs "libpulse >= 0.9.15" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi - - - -if test $pkg_failed = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - -if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then - _pkg_short_errors_supported=yes -else - _pkg_short_errors_supported=no -fi - if test $_pkg_short_errors_supported = yes; then - PULSE_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libpulse >= 0.9.15" 2>&1` - else - PULSE_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libpulse >= 0.9.15" 2>&1` - fi - # Put the nasty error message in config.log where it belongs - echo "$PULSE_PKG_ERRORS" >&5 - - has_pulse=no -elif test $pkg_failed = untried; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - has_pulse=no -else - PULSE_CFLAGS=$pkg_cv_PULSE_CFLAGS - PULSE_LIBS=$pkg_cv_PULSE_LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - has_pulse=yes -fi - - - if test "$has_pulse" = yes; then - -$as_echo "@%:@define PULSEAUDIO 1" >>confdefs.h - - else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libpulse missing... pulse support will be disabled." >&5 -$as_echo "$as_me: WARNING: libpulse missing... pulse support will be disabled." >&2;}; - enable_pulse=no - fi -fi - - -ac_fn_c_check_header_mongrel "$LINENO" "avcodec.h" "ac_cv_header_avcodec_h" "$ac_includes_default" -if test "x$ac_cv_header_avcodec_h" = xyes; then : - has_avcodec_h="yes" -fi - - - -ac_fn_c_check_header_mongrel "$LINENO" "ffmpeg/avcodec.h" "ac_cv_header_ffmpeg_avcodec_h" "$ac_includes_default" -if test "x$ac_cv_header_ffmpeg_avcodec_h" = xyes; then : - has_ffmpeg_dir="yes" -fi - - - -ac_fn_c_check_header_mongrel "$LINENO" "libavcodec/avcodec.h" "ac_cv_header_libavcodec_avcodec_h" "$ac_includes_default" -if test "x$ac_cv_header_libavcodec_avcodec_h" = xyes; then : - has_libavcodec_dir="yes" -fi - - - -if test "$has_avcodec_h" = yes; then - -$as_echo "@%:@define HAS_AVCODEC_H 1" >>confdefs.h - -fi -if test "$has_ffmpeg_dir" = yes; then - -$as_echo "@%:@define HAS_FFMPEG_AVCODEC_H 1" >>confdefs.h - -fi -if test "$has_libavcodec_dir" = yes; then - -$as_echo "@%:@define HAS_LIBAVCODEC_AVCODEC_H 1" >>confdefs.h - -fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether byte ordering is bigendian" >&5 -$as_echo_n "checking whether byte ordering is bigendian... " >&6; } -if ${ac_cv_c_bigendian+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_cv_c_bigendian=unknown - # See if we're dealing with a universal compiler. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#ifndef __APPLE_CC__ - not a universal capable compiler - #endif - typedef int dummy; - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - # Check for potential -arch flags. It is not universal unless - # there are at least two -arch flags with different values. - ac_arch= - ac_prev= - for ac_word in $CC $CFLAGS $CPPFLAGS $LDFLAGS; do - if test -n "$ac_prev"; then - case $ac_word in - i?86 | x86_64 | ppc | ppc64) - if test -z "$ac_arch" || test "$ac_arch" = "$ac_word"; then - ac_arch=$ac_word - else - ac_cv_c_bigendian=universal - break - fi - ;; - esac - ac_prev= - elif test "x$ac_word" = "x-arch"; then - ac_prev=arch - fi - done -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - if test $ac_cv_c_bigendian = unknown; then - # See if sys/param.h defines the BYTE_ORDER macro. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - #include - -int -main () -{ -#if ! (defined BYTE_ORDER && defined BIG_ENDIAN \ - && defined LITTLE_ENDIAN && BYTE_ORDER && BIG_ENDIAN \ - && LITTLE_ENDIAN) - bogus endian macros - #endif - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - # It does; now see whether it defined to BIG_ENDIAN or not. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - #include - -int -main () -{ -#if BYTE_ORDER != BIG_ENDIAN - not big endian - #endif - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_c_bigendian=yes -else - ac_cv_c_bigendian=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - if test $ac_cv_c_bigendian = unknown; then - # See if defines _LITTLE_ENDIAN or _BIG_ENDIAN (e.g., Solaris). - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - -int -main () -{ -#if ! (defined _LITTLE_ENDIAN || defined _BIG_ENDIAN) - bogus endian macros - #endif - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - # It does; now see whether it defined to _BIG_ENDIAN or not. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - -int -main () -{ -#ifndef _BIG_ENDIAN - not big endian - #endif - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_c_bigendian=yes -else - ac_cv_c_bigendian=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - if test $ac_cv_c_bigendian = unknown; then - # Compile a test program. - if test "$cross_compiling" = yes; then : - # Try to guess by grepping values from an object file. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -short int ascii_mm[] = - { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 }; - short int ascii_ii[] = - { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 }; - int use_ascii (int i) { - return ascii_mm[i] + ascii_ii[i]; - } - short int ebcdic_ii[] = - { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 }; - short int ebcdic_mm[] = - { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 }; - int use_ebcdic (int i) { - return ebcdic_mm[i] + ebcdic_ii[i]; - } - extern int foo; - -int -main () -{ -return use_ascii (foo) == use_ebcdic (foo); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - if grep BIGenDianSyS conftest.$ac_objext >/dev/null; then - ac_cv_c_bigendian=yes - fi - if grep LiTTleEnDian conftest.$ac_objext >/dev/null ; then - if test "$ac_cv_c_bigendian" = unknown; then - ac_cv_c_bigendian=no - else - # finding both strings is unlikely to happen, but who knows? - ac_cv_c_bigendian=unknown - fi - fi -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ - - /* Are we little or big endian? From Harbison&Steele. */ - union - { - long int l; - char c[sizeof (long int)]; - } u; - u.l = 1; - return u.c[sizeof (long int) - 1] == 1; - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - ac_cv_c_bigendian=no -else - ac_cv_c_bigendian=yes -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_bigendian" >&5 -$as_echo "$ac_cv_c_bigendian" >&6; } - case $ac_cv_c_bigendian in #( - yes) - $as_echo "@%:@define WORDS_BIGENDIAN 1" >>confdefs.h -;; #( - no) - ;; #( - universal) - -$as_echo "@%:@define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h - - ;; #( - *) - as_fn_error $? "unknown endianness - presetting ac_cv_c_bigendian=no (or yes) will help" "$LINENO" 5 ;; - esac - - -ac_config_files="$ac_config_files Makefile data/Makefile data/icons/Makefile data/guvcview.desktop.in data/guvcview.in po/Makefile.in src/Makefile" - -cat >confcache <<\_ACEOF -# This file is a shell script that caches the results of configure -# tests run on this system so they can be shared between configure -# scripts and configure runs, see configure's option --config-cache. -# It is not useful on other systems. If it contains results you don't -# want to keep, you may remove or edit it. -# -# config.status only pays attention to the cache file if you give it -# the --recheck option to rerun configure. -# -# `ac_cv_env_foo' variables (set or unset) will be overridden when -# loading this file, other *unset* `ac_cv_foo' will be assigned the -# following values. - -_ACEOF - -# The following way of writing the cache mishandles newlines in values, -# but we know of no workaround that is simple, portable, and efficient. -# So, we kill variables containing newlines. -# Ultrix sh set writes to stderr and can't be redirected directly, -# and sets the high bit in the cache file unless we assign to the vars. -( - for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do - eval ac_val=\$$ac_var - case $ac_val in #( - *${as_nl}*) - case $ac_var in #( - *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 -$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; - esac - case $ac_var in #( - _ | IFS | as_nl) ;; #( - BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( - *) { eval $ac_var=; unset $ac_var;} ;; - esac ;; - esac - done - - (set) 2>&1 | - case $as_nl`(ac_space=' '; set) 2>&1` in #( - *${as_nl}ac_space=\ *) - # `set' does not quote correctly, so add quotes: double-quote - # substitution turns \\\\ into \\, and sed turns \\ into \. - sed -n \ - "s/'/'\\\\''/g; - s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" - ;; #( - *) - # `set' quotes correctly as required by POSIX, so do not add quotes. - sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" - ;; - esac | - sort -) | - sed ' - /^ac_cv_env_/b end - t clear - :clear - s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ - t end - s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ - :end' >>confcache -if diff "$cache_file" confcache >/dev/null 2>&1; then :; else - if test -w "$cache_file"; then - if test "x$cache_file" != "x/dev/null"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 -$as_echo "$as_me: updating cache $cache_file" >&6;} - if test ! -f "$cache_file" || test -h "$cache_file"; then - cat confcache >"$cache_file" - else - case $cache_file in #( - */* | ?:*) - mv -f confcache "$cache_file"$$ && - mv -f "$cache_file"$$ "$cache_file" ;; #( - *) - mv -f confcache "$cache_file" ;; - esac - fi - fi - else - { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 -$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} - fi -fi -rm -f confcache - -test "x$prefix" = xNONE && prefix=$ac_default_prefix -# Let make expand exec_prefix. -test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' - -DEFS=-DHAVE_CONFIG_H - -ac_libobjs= -ac_ltlibobjs= -U= -for ac_i in : $LIB@&t@OBJS; do test "x$ac_i" = x: && continue - # 1. Remove the extension, and $U if already installed. - ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' - ac_i=`$as_echo "$ac_i" | sed "$ac_script"` - # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR - # will be set to the directory where LIBOBJS objects are built. - as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" - as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo' -done -LIB@&t@OBJS=$ac_libobjs - -LTLIBOBJS=$ac_ltlibobjs - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking that generated files are newer than configure" >&5 -$as_echo_n "checking that generated files are newer than configure... " >&6; } - if test -n "$am_sleep_pid"; then - # Hide warnings about reused PIDs. - wait $am_sleep_pid 2>/dev/null - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: done" >&5 -$as_echo "done" >&6; } - if test -n "$EXEEXT"; then - am__EXEEXT_TRUE= - am__EXEEXT_FALSE='#' -else - am__EXEEXT_TRUE='#' - am__EXEEXT_FALSE= -fi - -if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then - as_fn_error $? "conditional \"MAINTAINER_MODE\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then - as_fn_error $? "conditional \"AMDEP\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then - as_fn_error $? "conditional \"am__fastdepCC\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi - - ac_config_commands="$ac_config_commands po/stamp-it" - - -if test -z "${DEBIAN_MENU_TRUE}" && test -z "${DEBIAN_MENU_FALSE}"; then - as_fn_error $? "conditional \"DEBIAN_MENU\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${DESKTOP_TRUE}" && test -z "${DESKTOP_FALSE}"; then - as_fn_error $? "conditional \"DESKTOP\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi - - -: "${CONFIG_STATUS=./config.status}" -ac_write_fail=0 -ac_clean_files_save=$ac_clean_files -ac_clean_files="$ac_clean_files $CONFIG_STATUS" -{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 -$as_echo "$as_me: creating $CONFIG_STATUS" >&6;} -as_write_fail=0 -cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 -#! $SHELL -# Generated by $as_me. -# Run this file to recreate the current configuration. -# Compiler output produced by configure, useful for debugging -# configure, is in config.log if it exists. - -debug=false -ac_cs_recheck=false -ac_cs_silent=false - -SHELL=\${CONFIG_SHELL-$SHELL} -export SHELL -_ASEOF -cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 -## -------------------- ## -## M4sh Initialization. ## -## -------------------- ## - -# Be more Bourne compatible -DUALCASE=1; export DUALCASE # for MKS sh -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : - emulate sh - NULLCMD=: - # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which - # is contrary to our usage. Disable this feature. - alias -g '${1+"$@"}'='"$@"' - setopt NO_GLOB_SUBST -else - case `(set -o) 2>/dev/null` in @%:@( - *posix*) : - set -o posix ;; @%:@( - *) : - ;; -esac -fi - - -as_nl=' -' -export as_nl -# Printing a long string crashes Solaris 7 /usr/bin/printf. -as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' -as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo -as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo -# Prefer a ksh shell builtin over an external printf program on Solaris, -# but without wasting forks for bash or zsh. -if test -z "$BASH_VERSION$ZSH_VERSION" \ - && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then - as_echo='print -r --' - as_echo_n='print -rn --' -elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then - as_echo='printf %s\n' - as_echo_n='printf %s' -else - if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then - as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' - as_echo_n='/usr/ucb/echo -n' - else - as_echo_body='eval expr "X$1" : "X\\(.*\\)"' - as_echo_n_body='eval - arg=$1; - case $arg in @%:@( - *"$as_nl"*) - expr "X$arg" : "X\\(.*\\)$as_nl"; - arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; - esac; - expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" - ' - export as_echo_n_body - as_echo_n='sh -c $as_echo_n_body as_echo' - fi - export as_echo_body - as_echo='sh -c $as_echo_body as_echo' -fi - -# The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then - PATH_SEPARATOR=: - (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { - (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || - PATH_SEPARATOR=';' - } -fi - - -# IFS -# We need space, tab and new line, in precisely that order. Quoting is -# there to prevent editors from complaining about space-tab. -# (If _AS_PATH_WALK were called with IFS unset, it would disable word -# splitting by setting IFS to empty value.) -IFS=" "" $as_nl" - -# Find who we are. Look in the path if we contain no directory separator. -as_myself= -case $0 in @%:@(( - *[\\/]* ) as_myself=$0 ;; - *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break - done -IFS=$as_save_IFS - - ;; -esac -# We did not find ourselves, most probably we were run as `sh COMMAND' -# in which case we are not to be found in the path. -if test "x$as_myself" = x; then - as_myself=$0 -fi -if test ! -f "$as_myself"; then - $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 - exit 1 -fi - -# Unset variables that we do not need and which cause bugs (e.g. in -# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" -# suppresses any "Segmentation fault" message there. '((' could -# trigger a bug in pdksh 5.2.14. -for as_var in BASH_ENV ENV MAIL MAILPATH -do eval test x\${$as_var+set} = xset \ - && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : -done -PS1='$ ' -PS2='> ' -PS4='+ ' - -# NLS nuisances. -LC_ALL=C -export LC_ALL -LANGUAGE=C -export LANGUAGE - -# CDPATH. -(unset CDPATH) >/dev/null 2>&1 && unset CDPATH - - -@%:@ as_fn_error STATUS ERROR [LINENO LOG_FD] -@%:@ ---------------------------------------- -@%:@ Output "`basename @S|@0`: error: ERROR" to stderr. If LINENO and LOG_FD are -@%:@ provided, also output the error to LOG_FD, referencing LINENO. Then exit the -@%:@ script with STATUS, using 1 if that was 0. -as_fn_error () -{ - as_status=$1; test $as_status -eq 0 && as_status=1 - if test "$4"; then - as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 - fi - $as_echo "$as_me: error: $2" >&2 - as_fn_exit $as_status -} @%:@ as_fn_error - - -@%:@ as_fn_set_status STATUS -@%:@ ----------------------- -@%:@ Set @S|@? to STATUS, without forking. -as_fn_set_status () -{ - return $1 -} @%:@ as_fn_set_status - -@%:@ as_fn_exit STATUS -@%:@ ----------------- -@%:@ Exit the shell with STATUS, even in a "trap 0" or "set -e" context. -as_fn_exit () -{ - set +e - as_fn_set_status $1 - exit $1 -} @%:@ as_fn_exit - -@%:@ as_fn_unset VAR -@%:@ --------------- -@%:@ Portably unset VAR. -as_fn_unset () -{ - { eval $1=; unset $1;} -} -as_unset=as_fn_unset -@%:@ as_fn_append VAR VALUE -@%:@ ---------------------- -@%:@ Append the text in VALUE to the end of the definition contained in VAR. Take -@%:@ advantage of any shell optimizations that allow amortized linear growth over -@%:@ repeated appends, instead of the typical quadratic growth present in naive -@%:@ implementations. -if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : - eval 'as_fn_append () - { - eval $1+=\$2 - }' -else - as_fn_append () - { - eval $1=\$$1\$2 - } -fi # as_fn_append - -@%:@ as_fn_arith ARG... -@%:@ ------------------ -@%:@ Perform arithmetic evaluation on the ARGs, and store the result in the -@%:@ global @S|@as_val. Take advantage of shells that can avoid forks. The arguments -@%:@ must be portable across @S|@(()) and expr. -if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : - eval 'as_fn_arith () - { - as_val=$(( $* )) - }' -else - as_fn_arith () - { - as_val=`expr "$@" || test $? -eq 1` - } -fi # as_fn_arith - - -if expr a : '\(a\)' >/dev/null 2>&1 && - test "X`expr 00001 : '.*\(...\)'`" = X001; then - as_expr=expr -else - as_expr=false -fi - -if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then - as_basename=basename -else - as_basename=false -fi - -if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then - as_dirname=dirname -else - as_dirname=false -fi - -as_me=`$as_basename -- "$0" || -$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ - X"$0" : 'X\(//\)$' \| \ - X"$0" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X/"$0" | - sed '/^.*\/\([^/][^/]*\)\/*$/{ - s//\1/ - q - } - /^X\/\(\/\/\)$/{ - s//\1/ - q - } - /^X\/\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - -# Avoid depending upon Character Ranges. -as_cr_letters='abcdefghijklmnopqrstuvwxyz' -as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' -as_cr_Letters=$as_cr_letters$as_cr_LETTERS -as_cr_digits='0123456789' -as_cr_alnum=$as_cr_Letters$as_cr_digits - -ECHO_C= ECHO_N= ECHO_T= -case `echo -n x` in @%:@((((( --n*) - case `echo 'xy\c'` in - *c*) ECHO_T=' ';; # ECHO_T is single tab character. - xy) ECHO_C='\c';; - *) echo `echo ksh88 bug on AIX 6.1` > /dev/null - ECHO_T=' ';; - esac;; -*) - ECHO_N='-n';; -esac - -rm -f conf$$ conf$$.exe conf$$.file -if test -d conf$$.dir; then - rm -f conf$$.dir/conf$$.file -else - rm -f conf$$.dir - mkdir conf$$.dir 2>/dev/null -fi -if (echo >conf$$.file) 2>/dev/null; then - if ln -s conf$$.file conf$$ 2>/dev/null; then - as_ln_s='ln -s' - # ... but there are two gotchas: - # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. - # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. - # In both cases, we have to default to `cp -pR'. - ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || - as_ln_s='cp -pR' - elif ln conf$$.file conf$$ 2>/dev/null; then - as_ln_s=ln - else - as_ln_s='cp -pR' - fi -else - as_ln_s='cp -pR' -fi -rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file -rmdir conf$$.dir 2>/dev/null - - -@%:@ as_fn_mkdir_p -@%:@ ------------- -@%:@ Create "@S|@as_dir" as a directory, including parents if necessary. -as_fn_mkdir_p () -{ - - case $as_dir in #( - -*) as_dir=./$as_dir;; - esac - test -d "$as_dir" || eval $as_mkdir_p || { - as_dirs= - while :; do - case $as_dir in #( - *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( - *) as_qdir=$as_dir;; - esac - as_dirs="'$as_qdir' $as_dirs" - as_dir=`$as_dirname -- "$as_dir" || -$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$as_dir" : 'X\(//\)[^/]' \| \ - X"$as_dir" : 'X\(//\)$' \| \ - X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$as_dir" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - test -d "$as_dir" && break - done - test -z "$as_dirs" || eval "mkdir $as_dirs" - } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" - - -} @%:@ as_fn_mkdir_p -if mkdir -p . 2>/dev/null; then - as_mkdir_p='mkdir -p "$as_dir"' -else - test -d ./-p && rmdir ./-p - as_mkdir_p=false -fi - - -@%:@ as_fn_executable_p FILE -@%:@ ----------------------- -@%:@ Test if FILE is an executable regular file. -as_fn_executable_p () -{ - test -f "$1" && test -x "$1" -} @%:@ as_fn_executable_p -as_test_x='test -x' -as_executable_p=as_fn_executable_p - -# Sed expression to map a string onto a valid CPP name. -as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" - -# Sed expression to map a string onto a valid variable name. -as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" - - -exec 6>&1 -## ----------------------------------- ## -## Main body of $CONFIG_STATUS script. ## -## ----------------------------------- ## -_ASEOF -test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -# Save the log message, to keep $0 and so on meaningful, and to -# report actual input values of CONFIG_FILES etc. instead of their -# values after options handling. -ac_log=" -This file was extended by guvcview $as_me 1.7.3, which was -generated by GNU Autoconf 2.69. Invocation command line was - - CONFIG_FILES = $CONFIG_FILES - CONFIG_HEADERS = $CONFIG_HEADERS - CONFIG_LINKS = $CONFIG_LINKS - CONFIG_COMMANDS = $CONFIG_COMMANDS - $ $0 $@ - -on `(hostname || uname -n) 2>/dev/null | sed 1q` -" - -_ACEOF - -case $ac_config_files in *" -"*) set x $ac_config_files; shift; ac_config_files=$*;; -esac - -case $ac_config_headers in *" -"*) set x $ac_config_headers; shift; ac_config_headers=$*;; -esac - - -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -# Files that config.status was made for. -config_files="$ac_config_files" -config_headers="$ac_config_headers" -config_commands="$ac_config_commands" - -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -ac_cs_usage="\ -\`$as_me' instantiates files and other configuration actions -from templates according to the current configuration. Unless the files -and actions are specified as TAGs, all are instantiated by default. - -Usage: $0 [OPTION]... [TAG]... - - -h, --help print this help, then exit - -V, --version print version number and configuration settings, then exit - --config print configuration, then exit - -q, --quiet, --silent - do not print progress messages - -d, --debug don't remove temporary files - --recheck update $as_me by reconfiguring in the same conditions - --file=FILE[:TEMPLATE] - instantiate the configuration file FILE - --header=FILE[:TEMPLATE] - instantiate the configuration header FILE - -Configuration files: -$config_files - -Configuration headers: -$config_headers - -Configuration commands: -$config_commands - -Report bugs to ." - -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" -ac_cs_version="\\ -guvcview config.status 1.7.3 -configured by $0, generated by GNU Autoconf 2.69, - with options \\"\$ac_cs_config\\" - -Copyright (C) 2012 Free Software Foundation, Inc. -This config.status script is free software; the Free Software Foundation -gives unlimited permission to copy, distribute and modify it." - -ac_pwd='$ac_pwd' -srcdir='$srcdir' -INSTALL='$INSTALL' -MKDIR_P='$MKDIR_P' -AWK='$AWK' -test -n "\$AWK" || AWK=awk -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -# The default lists apply if the user does not specify any file. -ac_need_defaults=: -while test $# != 0 -do - case $1 in - --*=?*) - ac_option=`expr "X$1" : 'X\([^=]*\)='` - ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` - ac_shift=: - ;; - --*=) - ac_option=`expr "X$1" : 'X\([^=]*\)='` - ac_optarg= - ac_shift=: - ;; - *) - ac_option=$1 - ac_optarg=$2 - ac_shift=shift - ;; - esac - - case $ac_option in - # Handling of the options. - -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) - ac_cs_recheck=: ;; - --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) - $as_echo "$ac_cs_version"; exit ;; - --config | --confi | --conf | --con | --co | --c ) - $as_echo "$ac_cs_config"; exit ;; - --debug | --debu | --deb | --de | --d | -d ) - debug=: ;; - --file | --fil | --fi | --f ) - $ac_shift - case $ac_optarg in - *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; - '') as_fn_error $? "missing file argument" ;; - esac - as_fn_append CONFIG_FILES " '$ac_optarg'" - ac_need_defaults=false;; - --header | --heade | --head | --hea ) - $ac_shift - case $ac_optarg in - *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; - esac - as_fn_append CONFIG_HEADERS " '$ac_optarg'" - ac_need_defaults=false;; - --he | --h) - # Conflict between --help and --header - as_fn_error $? "ambiguous option: \`$1' -Try \`$0 --help' for more information.";; - --help | --hel | -h ) - $as_echo "$ac_cs_usage"; exit ;; - -q | -quiet | --quiet | --quie | --qui | --qu | --q \ - | -silent | --silent | --silen | --sile | --sil | --si | --s) - ac_cs_silent=: ;; - - # This is an error. - -*) as_fn_error $? "unrecognized option: \`$1' -Try \`$0 --help' for more information." ;; - - *) as_fn_append ac_config_targets " $1" - ac_need_defaults=false ;; - - esac - shift -done - -ac_configure_extra_args= - -if $ac_cs_silent; then - exec 6>/dev/null - ac_configure_extra_args="$ac_configure_extra_args --silent" -fi - -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -if \$ac_cs_recheck; then - set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion - shift - \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 - CONFIG_SHELL='$SHELL' - export CONFIG_SHELL - exec "\$@" -fi - -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -exec 5>>config.log -{ - echo - sed 'h;s/./-/g;s/^.../@%:@@%:@ /;s/...$/ @%:@@%:@/;p;x;p;x' <<_ASBOX -@%:@@%:@ Running $as_me. @%:@@%:@ -_ASBOX - $as_echo "$ac_log" -} >&5 - -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -# -# INIT-COMMANDS -# -AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" - - -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 - -# Handling of arguments. -for ac_config_target in $ac_config_targets -do - case $ac_config_target in - "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; - "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; - "default-1") CONFIG_COMMANDS="$CONFIG_COMMANDS default-1" ;; - "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; - "data/Makefile") CONFIG_FILES="$CONFIG_FILES data/Makefile" ;; - "data/icons/Makefile") CONFIG_FILES="$CONFIG_FILES data/icons/Makefile" ;; - "data/guvcview.desktop.in") CONFIG_FILES="$CONFIG_FILES data/guvcview.desktop.in" ;; - "data/guvcview.in") CONFIG_FILES="$CONFIG_FILES data/guvcview.in" ;; - "po/Makefile.in") CONFIG_FILES="$CONFIG_FILES po/Makefile.in" ;; - "src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;; - "po/stamp-it") CONFIG_COMMANDS="$CONFIG_COMMANDS po/stamp-it" ;; - - *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; - esac -done - - -# If the user did not use the arguments to specify the items to instantiate, -# then the envvar interface is used. Set only those that are not. -# We use the long form for the default assignment because of an extremely -# bizarre bug on SunOS 4.1.3. -if $ac_need_defaults; then - test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files - test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers - test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands -fi - -# Have a temporary directory for convenience. Make it in the build tree -# simply because there is no reason against having it here, and in addition, -# creating and moving files from /tmp can sometimes cause problems. -# Hook for its removal unless debugging. -# Note that there is a small window in which the directory will not be cleaned: -# after its creation but before its name has been assigned to `$tmp'. -$debug || -{ - tmp= ac_tmp= - trap 'exit_status=$? - : "${ac_tmp:=$tmp}" - { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status -' 0 - trap 'as_fn_exit 1' 1 2 13 15 -} -# Create a (secure) tmp directory for tmp files. - -{ - tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && - test -d "$tmp" -} || -{ - tmp=./conf$$-$RANDOM - (umask 077 && mkdir "$tmp") -} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 -ac_tmp=$tmp - -# Set up the scripts for CONFIG_FILES section. -# No need to generate them if there are no CONFIG_FILES. -# This happens for instance with `./config.status config.h'. -if test -n "$CONFIG_FILES"; then - - -ac_cr=`echo X | tr X '\015'` -# On cygwin, bash can eat \r inside `` if the user requested igncr. -# But we know of no other shell where ac_cr would be empty at this -# point, so we can use a bashism as a fallback. -if test "x$ac_cr" = x; then - eval ac_cr=\$\'\\r\' -fi -ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` -if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then - ac_cs_awk_cr='\\r' -else - ac_cs_awk_cr=$ac_cr -fi - -echo 'BEGIN {' >"$ac_tmp/subs1.awk" && -_ACEOF - - -{ - echo "cat >conf$$subs.awk <<_ACEOF" && - echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && - echo "_ACEOF" -} >conf$$subs.sh || - as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 -ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'` -ac_delim='%!_!# ' -for ac_last_try in false false false false false :; do - . ./conf$$subs.sh || - as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 - - ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` - if test $ac_delim_n = $ac_delim_num; then - break - elif $ac_last_try; then - as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 - else - ac_delim="$ac_delim!$ac_delim _$ac_delim!! " - fi -done -rm -f conf$$subs.sh - -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK && -_ACEOF -sed -n ' -h -s/^/S["/; s/!.*/"]=/ -p -g -s/^[^!]*!// -:repl -t repl -s/'"$ac_delim"'$// -t delim -:nl -h -s/\(.\{148\}\)..*/\1/ -t more1 -s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ -p -n -b repl -:more1 -s/["\\]/\\&/g; s/^/"/; s/$/"\\/ -p -g -s/.\{148\}// -t nl -:delim -h -s/\(.\{148\}\)..*/\1/ -t more2 -s/["\\]/\\&/g; s/^/"/; s/$/"/ -p -b -:more2 -s/["\\]/\\&/g; s/^/"/; s/$/"\\/ -p -g -s/.\{148\}// -t delim -' >$CONFIG_STATUS || ac_write_fail=1 -rm -f conf$$subs.awk -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -_ACAWK -cat >>"\$ac_tmp/subs1.awk" <<_ACAWK && - for (key in S) S_is_set[key] = 1 - FS = "" - -} -{ - line = $ 0 - nfields = split(line, field, "@") - substed = 0 - len = length(field[1]) - for (i = 2; i < nfields; i++) { - key = field[i] - keylen = length(key) - if (S_is_set[key]) { - value = S[key] - line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) - len += length(value) + length(field[++i]) - substed = 1 - } else - len += 1 + keylen - } - - print line -} - -_ACAWK -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then - sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" -else - cat -fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \ - || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 -_ACEOF - -# VPATH may cause trouble with some makes, so we remove sole $(srcdir), -# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and -# trailing colons and then remove the whole line if VPATH becomes empty -# (actually we leave an empty line to preserve line numbers). -if test "x$srcdir" = x.; then - ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{ -h -s/// -s/^/:/ -s/[ ]*$/:/ -s/:\$(srcdir):/:/g -s/:\${srcdir}:/:/g -s/:@srcdir@:/:/g -s/^:*// -s/:*$// -x -s/\(=[ ]*\).*/\1/ -G -s/\n// -s/^[^=]*=[ ]*$// -}' -fi - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -fi # test -n "$CONFIG_FILES" - -# Set up the scripts for CONFIG_HEADERS section. -# No need to generate them if there are no CONFIG_HEADERS. -# This happens for instance with `./config.status Makefile'. -if test -n "$CONFIG_HEADERS"; then -cat >"$ac_tmp/defines.awk" <<\_ACAWK || -BEGIN { -_ACEOF - -# Transform confdefs.h into an awk script `defines.awk', embedded as -# here-document in config.status, that substitutes the proper values into -# config.h.in to produce config.h. - -# Create a delimiter string that does not exist in confdefs.h, to ease -# handling of long lines. -ac_delim='%!_!# ' -for ac_last_try in false false :; do - ac_tt=`sed -n "/$ac_delim/p" confdefs.h` - if test -z "$ac_tt"; then - break - elif $ac_last_try; then - as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5 - else - ac_delim="$ac_delim!$ac_delim _$ac_delim!! " - fi -done - -# For the awk script, D is an array of macro values keyed by name, -# likewise P contains macro parameters if any. Preserve backslash -# newline sequences. - -ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* -sed -n ' -s/.\{148\}/&'"$ac_delim"'/g -t rset -:rset -s/^[ ]*#[ ]*define[ ][ ]*/ / -t def -d -:def -s/\\$// -t bsnl -s/["\\]/\\&/g -s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ -D["\1"]=" \3"/p -s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p -d -:bsnl -s/["\\]/\\&/g -s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ -D["\1"]=" \3\\\\\\n"\\/p -t cont -s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p -t cont -d -:cont -n -s/.\{148\}/&'"$ac_delim"'/g -t clear -:clear -s/\\$// -t bsnlc -s/["\\]/\\&/g; s/^/"/; s/$/"/p -d -:bsnlc -s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p -b cont -' >$CONFIG_STATUS || ac_write_fail=1 - -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 - for (key in D) D_is_set[key] = 1 - FS = "" -} -/^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ { - line = \$ 0 - split(line, arg, " ") - if (arg[1] == "#") { - defundef = arg[2] - mac1 = arg[3] - } else { - defundef = substr(arg[1], 2) - mac1 = arg[2] - } - split(mac1, mac2, "(") #) - macro = mac2[1] - prefix = substr(line, 1, index(line, defundef) - 1) - if (D_is_set[macro]) { - # Preserve the white space surrounding the "#". - print prefix "define", macro P[macro] D[macro] - next - } else { - # Replace #undef with comments. This is necessary, for example, - # in the case of _POSIX_SOURCE, which is predefined and required - # on some systems where configure will not decide to define it. - if (defundef == "undef") { - print "/*", prefix defundef, macro, "*/" - next - } - } -} -{ print } -_ACAWK -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 - as_fn_error $? "could not setup config headers machinery" "$LINENO" 5 -fi # test -n "$CONFIG_HEADERS" - - -eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS" -shift -for ac_tag -do - case $ac_tag in - :[FHLC]) ac_mode=$ac_tag; continue;; - esac - case $ac_mode$ac_tag in - :[FHL]*:*);; - :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;; - :[FH]-) ac_tag=-:-;; - :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; - esac - ac_save_IFS=$IFS - IFS=: - set x $ac_tag - IFS=$ac_save_IFS - shift - ac_file=$1 - shift - - case $ac_mode in - :L) ac_source=$1;; - :[FH]) - ac_file_inputs= - for ac_f - do - case $ac_f in - -) ac_f="$ac_tmp/stdin";; - *) # Look for the file first in the build tree, then in the source tree - # (if the path is not absolute). The absolute path cannot be DOS-style, - # because $ac_f cannot contain `:'. - test -f "$ac_f" || - case $ac_f in - [\\/$]*) false;; - *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; - esac || - as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;; - esac - case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac - as_fn_append ac_file_inputs " '$ac_f'" - done - - # Let's still pretend it is `configure' which instantiates (i.e., don't - # use $as_me), people would be surprised to read: - # /* config.h. Generated by config.status. */ - configure_input='Generated from '` - $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' - `' by configure.' - if test x"$ac_file" != x-; then - configure_input="$ac_file. $configure_input" - { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 -$as_echo "$as_me: creating $ac_file" >&6;} - fi - # Neutralize special characters interpreted by sed in replacement strings. - case $configure_input in #( - *\&* | *\|* | *\\* ) - ac_sed_conf_input=`$as_echo "$configure_input" | - sed 's/[\\\\&|]/\\\\&/g'`;; #( - *) ac_sed_conf_input=$configure_input;; - esac - - case $ac_tag in - *:-:* | *:-) cat >"$ac_tmp/stdin" \ - || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; - esac - ;; - esac - - ac_dir=`$as_dirname -- "$ac_file" || -$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$ac_file" : 'X\(//\)[^/]' \| \ - X"$ac_file" : 'X\(//\)$' \| \ - X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$ac_file" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - as_dir="$ac_dir"; as_fn_mkdir_p - ac_builddir=. - -case "$ac_dir" in -.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; -*) - ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` - # A ".." for each directory in $ac_dir_suffix. - ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` - case $ac_top_builddir_sub in - "") ac_top_builddir_sub=. ac_top_build_prefix= ;; - *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; - esac ;; -esac -ac_abs_top_builddir=$ac_pwd -ac_abs_builddir=$ac_pwd$ac_dir_suffix -# for backward compatibility: -ac_top_builddir=$ac_top_build_prefix - -case $srcdir in - .) # We are building in place. - ac_srcdir=. - ac_top_srcdir=$ac_top_builddir_sub - ac_abs_top_srcdir=$ac_pwd ;; - [\\/]* | ?:[\\/]* ) # Absolute name. - ac_srcdir=$srcdir$ac_dir_suffix; - ac_top_srcdir=$srcdir - ac_abs_top_srcdir=$srcdir ;; - *) # Relative name. - ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix - ac_top_srcdir=$ac_top_build_prefix$srcdir - ac_abs_top_srcdir=$ac_pwd/$srcdir ;; -esac -ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix - - - case $ac_mode in - :F) - # - # CONFIG_FILE - # - - case $INSTALL in - [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; - *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; - esac - ac_MKDIR_P=$MKDIR_P - case $MKDIR_P in - [\\/$]* | ?:[\\/]* ) ;; - */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;; - esac -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -# If the template does not know about datarootdir, expand it. -# FIXME: This hack should be removed a few years after 2.60. -ac_datarootdir_hack=; ac_datarootdir_seen= -ac_sed_dataroot=' -/datarootdir/ { - p - q -} -/@datadir@/p -/@docdir@/p -/@infodir@/p -/@localedir@/p -/@mandir@/p' -case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in -*datarootdir*) ac_datarootdir_seen=yes;; -*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 -$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 - ac_datarootdir_hack=' - s&@datadir@&$datadir&g - s&@docdir@&$docdir&g - s&@infodir@&$infodir&g - s&@localedir@&$localedir&g - s&@mandir@&$mandir&g - s&\\\${datarootdir}&$datarootdir&g' ;; -esac -_ACEOF - -# Neutralize VPATH when `$srcdir' = `.'. -# Shell code in configure.ac might set extrasub. -# FIXME: do we really want to maintain this feature? -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -ac_sed_extra="$ac_vpsub -$extrasub -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -:t -/@[a-zA-Z_][a-zA-Z_0-9]*@/!b -s|@configure_input@|$ac_sed_conf_input|;t t -s&@top_builddir@&$ac_top_builddir_sub&;t t -s&@top_build_prefix@&$ac_top_build_prefix&;t t -s&@srcdir@&$ac_srcdir&;t t -s&@abs_srcdir@&$ac_abs_srcdir&;t t -s&@top_srcdir@&$ac_top_srcdir&;t t -s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t -s&@builddir@&$ac_builddir&;t t -s&@abs_builddir@&$ac_abs_builddir&;t t -s&@abs_top_builddir@&$ac_abs_top_builddir&;t t -s&@INSTALL@&$ac_INSTALL&;t t -s&@MKDIR_P@&$ac_MKDIR_P&;t t -$ac_datarootdir_hack -" -eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \ - >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5 - -test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && - { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } && - { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ - "$ac_tmp/out"`; test -z "$ac_out"; } && - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' -which seems to be undefined. Please make sure it is defined" >&5 -$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' -which seems to be undefined. Please make sure it is defined" >&2;} - - rm -f "$ac_tmp/stdin" - case $ac_file in - -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";; - *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";; - esac \ - || as_fn_error $? "could not create $ac_file" "$LINENO" 5 - ;; - :H) - # - # CONFIG_HEADER - # - if test x"$ac_file" != x-; then - { - $as_echo "/* $configure_input */" \ - && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" - } >"$ac_tmp/config.h" \ - || as_fn_error $? "could not create $ac_file" "$LINENO" 5 - if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then - { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 -$as_echo "$as_me: $ac_file is unchanged" >&6;} - else - rm -f "$ac_file" - mv "$ac_tmp/config.h" "$ac_file" \ - || as_fn_error $? "could not create $ac_file" "$LINENO" 5 - fi - else - $as_echo "/* $configure_input */" \ - && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \ - || as_fn_error $? "could not create -" "$LINENO" 5 - fi -# Compute "$ac_file"'s index in $config_headers. -_am_arg="$ac_file" -_am_stamp_count=1 -for _am_header in $config_headers :; do - case $_am_header in - $_am_arg | $_am_arg:* ) - break ;; - * ) - _am_stamp_count=`expr $_am_stamp_count + 1` ;; - esac -done -echo "timestamp for $_am_arg" >`$as_dirname -- "$_am_arg" || -$as_expr X"$_am_arg" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$_am_arg" : 'X\(//\)[^/]' \| \ - X"$_am_arg" : 'X\(//\)$' \| \ - X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$_am_arg" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'`/stamp-h$_am_stamp_count - ;; - - :C) { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5 -$as_echo "$as_me: executing $ac_file commands" >&6;} - ;; - esac - - - case $ac_file$ac_mode in - "depfiles":C) test x"$AMDEP_TRUE" != x"" || { - # Older Autoconf quotes --file arguments for eval, but not when files - # are listed without --file. Let's play safe and only enable the eval - # if we detect the quoting. - case $CONFIG_FILES in - *\'*) eval set x "$CONFIG_FILES" ;; - *) set x $CONFIG_FILES ;; - esac - shift - for mf - do - # Strip MF so we end up with the name of the file. - mf=`echo "$mf" | sed -e 's/:.*$//'` - # Check whether this is an Automake generated Makefile or not. - # We used to match only the files named 'Makefile.in', but - # some people rename them; so instead we look at the file content. - # Grep'ing the first line is not enough: some people post-process - # each Makefile.in and add a new line on top of each file to say so. - # Grep'ing the whole file is not good either: AIX grep has a line - # limit of 2048, but all sed's we know have understand at least 4000. - if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then - dirpart=`$as_dirname -- "$mf" || -$as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$mf" : 'X\(//\)[^/]' \| \ - X"$mf" : 'X\(//\)$' \| \ - X"$mf" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$mf" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - else - continue - fi - # Extract the definition of DEPDIR, am__include, and am__quote - # from the Makefile without running 'make'. - DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` - test -z "$DEPDIR" && continue - am__include=`sed -n 's/^am__include = //p' < "$mf"` - test -z "$am__include" && continue - am__quote=`sed -n 's/^am__quote = //p' < "$mf"` - # Find all dependency output files, they are included files with - # $(DEPDIR) in their names. We invoke sed twice because it is the - # simplest approach to changing $(DEPDIR) to its actual value in the - # expansion. - for file in `sed -n " - s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ - sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do - # Make sure the directory exists. - test -f "$dirpart/$file" && continue - fdir=`$as_dirname -- "$file" || -$as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$file" : 'X\(//\)[^/]' \| \ - X"$file" : 'X\(//\)$' \| \ - X"$file" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$file" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - as_dir=$dirpart/$fdir; as_fn_mkdir_p - # echo "creating $dirpart/$file" - echo '# dummy' > "$dirpart/$file" - done - done -} - ;; - "default-1":C) case "$CONFIG_FILES" in *po/Makefile.in*) - sed -e "/POTFILES =/r po/POTFILES" po/Makefile.in > po/Makefile - esac ;; - "po/stamp-it":C) - if ! grep "^# INTLTOOL_MAKEFILE$" "po/Makefile.in" > /dev/null ; then - as_fn_error $? "po/Makefile.in.in was not created by intltoolize." "$LINENO" 5 - fi - rm -f "po/stamp-it" "po/stamp-it.tmp" "po/POTFILES" "po/Makefile.tmp" - >"po/stamp-it.tmp" - sed '/^#/d - s/^[[].*] *// - /^[ ]*$/d - '"s|^| $ac_top_srcdir/|" \ - "$srcdir/po/POTFILES.in" | sed '$!s/$/ \\/' >"po/POTFILES" - - sed '/^POTFILES =/,/[^\\]$/ { - /^POTFILES =/!d - r po/POTFILES - } - ' "po/Makefile.in" >"po/Makefile" - rm -f "po/Makefile.tmp" - mv "po/stamp-it.tmp" "po/stamp-it" - ;; - - esac -done # for ac_tag - - -as_fn_exit 0 -_ACEOF -ac_clean_files=$ac_clean_files_save - -test $ac_write_fail = 0 || - as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 - - -# configure is writing to config.log, and then calls config.status. -# config.status does its own redirection, appending to config.log. -# Unfortunately, on DOS this fails, as config.log is still kept open -# by configure, so config.status won't be able to write to it; its -# output is simply discarded. So we exec the FD to /dev/null, -# effectively closing config.log, so it can be properly (re)opened and -# appended to by config.status. When coming back to configure, we -# need to make the FD available again. -if test "$no_create" != yes; then - ac_cs_success=: - ac_config_status_args= - test "$silent" = yes && - ac_config_status_args="$ac_config_status_args --quiet" - exec 5>/dev/null - $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false - exec 5>>config.log - # Use ||, not &&, to avoid exiting from the if with $? = 1, which - # would make configure fail if this is the last instruction. - $ac_cs_success || as_fn_exit 1 -fi -if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 -$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} -fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: - - guvcview $VERSION - ---------------------- - - Prefix : ${prefix} - - Pulse API : ${enable_pulse} - - Desktop File : ${enable_desktop} - Debian Menu : ${enable_debian_menu} - - Debug Symbols : ${enable_debug} - -" >&5 -$as_echo "$as_me: - - guvcview $VERSION - ---------------------- - - Prefix : ${prefix} - - Pulse API : ${enable_pulse} - - Desktop File : ${enable_desktop} - Debian Menu : ${enable_debian_menu} - - Debug Symbols : ${enable_debug} - -" >&6;} - diff -Nru guvcview-1.7.3/autom4te.cache/output.2 guvcview-2.0.1+ubuntu1~ppa1/autom4te.cache/output.2 --- guvcview-1.7.3/autom4te.cache/output.2 2014-03-24 22:56:28.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/autom4te.cache/output.2 1970-01-01 00:00:00.000000000 +0000 @@ -1,8236 +0,0 @@ -@%:@! /bin/sh -@%:@ Guess values for system-dependent variables and create Makefiles. -@%:@ Generated by GNU Autoconf 2.69 for guvcview 1.7.3. -@%:@ -@%:@ Report bugs to . -@%:@ -@%:@ -@%:@ Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. -@%:@ -@%:@ -@%:@ This configure script is free software; the Free Software Foundation -@%:@ gives unlimited permission to copy, distribute and modify it. -## -------------------- ## -## M4sh Initialization. ## -## -------------------- ## - -# Be more Bourne compatible -DUALCASE=1; export DUALCASE # for MKS sh -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : - emulate sh - NULLCMD=: - # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which - # is contrary to our usage. Disable this feature. - alias -g '${1+"$@"}'='"$@"' - setopt NO_GLOB_SUBST -else - case `(set -o) 2>/dev/null` in @%:@( - *posix*) : - set -o posix ;; @%:@( - *) : - ;; -esac -fi - - -as_nl=' -' -export as_nl -# Printing a long string crashes Solaris 7 /usr/bin/printf. -as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' -as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo -as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo -# Prefer a ksh shell builtin over an external printf program on Solaris, -# but without wasting forks for bash or zsh. -if test -z "$BASH_VERSION$ZSH_VERSION" \ - && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then - as_echo='print -r --' - as_echo_n='print -rn --' -elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then - as_echo='printf %s\n' - as_echo_n='printf %s' -else - if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then - as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' - as_echo_n='/usr/ucb/echo -n' - else - as_echo_body='eval expr "X$1" : "X\\(.*\\)"' - as_echo_n_body='eval - arg=$1; - case $arg in @%:@( - *"$as_nl"*) - expr "X$arg" : "X\\(.*\\)$as_nl"; - arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; - esac; - expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" - ' - export as_echo_n_body - as_echo_n='sh -c $as_echo_n_body as_echo' - fi - export as_echo_body - as_echo='sh -c $as_echo_body as_echo' -fi - -# The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then - PATH_SEPARATOR=: - (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { - (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || - PATH_SEPARATOR=';' - } -fi - - -# IFS -# We need space, tab and new line, in precisely that order. Quoting is -# there to prevent editors from complaining about space-tab. -# (If _AS_PATH_WALK were called with IFS unset, it would disable word -# splitting by setting IFS to empty value.) -IFS=" "" $as_nl" - -# Find who we are. Look in the path if we contain no directory separator. -as_myself= -case $0 in @%:@(( - *[\\/]* ) as_myself=$0 ;; - *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break - done -IFS=$as_save_IFS - - ;; -esac -# We did not find ourselves, most probably we were run as `sh COMMAND' -# in which case we are not to be found in the path. -if test "x$as_myself" = x; then - as_myself=$0 -fi -if test ! -f "$as_myself"; then - $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 - exit 1 -fi - -# Unset variables that we do not need and which cause bugs (e.g. in -# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" -# suppresses any "Segmentation fault" message there. '((' could -# trigger a bug in pdksh 5.2.14. -for as_var in BASH_ENV ENV MAIL MAILPATH -do eval test x\${$as_var+set} = xset \ - && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : -done -PS1='$ ' -PS2='> ' -PS4='+ ' - -# NLS nuisances. -LC_ALL=C -export LC_ALL -LANGUAGE=C -export LANGUAGE - -# CDPATH. -(unset CDPATH) >/dev/null 2>&1 && unset CDPATH - -# Use a proper internal environment variable to ensure we don't fall - # into an infinite loop, continuously re-executing ourselves. - if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then - _as_can_reexec=no; export _as_can_reexec; - # We cannot yet assume a decent shell, so we have to provide a -# neutralization value for shells without unset; and this also -# works around shells that cannot unset nonexistent variables. -# Preserve -v and -x to the replacement shell. -BASH_ENV=/dev/null -ENV=/dev/null -(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV -case $- in @%:@ (((( - *v*x* | *x*v* ) as_opts=-vx ;; - *v* ) as_opts=-v ;; - *x* ) as_opts=-x ;; - * ) as_opts= ;; -esac -exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} -# Admittedly, this is quite paranoid, since all the known shells bail -# out after a failed `exec'. -$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 -as_fn_exit 255 - fi - # We don't want this to propagate to other subprocesses. - { _as_can_reexec=; unset _as_can_reexec;} -if test "x$CONFIG_SHELL" = x; then - as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : - emulate sh - NULLCMD=: - # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which - # is contrary to our usage. Disable this feature. - alias -g '\${1+\"\$@\"}'='\"\$@\"' - setopt NO_GLOB_SUBST -else - case \`(set -o) 2>/dev/null\` in @%:@( - *posix*) : - set -o posix ;; @%:@( - *) : - ;; -esac -fi -" - as_required="as_fn_return () { (exit \$1); } -as_fn_success () { as_fn_return 0; } -as_fn_failure () { as_fn_return 1; } -as_fn_ret_success () { return 0; } -as_fn_ret_failure () { return 1; } - -exitcode=0 -as_fn_success || { exitcode=1; echo as_fn_success failed.; } -as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } -as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } -as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } -if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : - -else - exitcode=1; echo positional parameters were not saved. -fi -test x\$exitcode = x0 || exit 1 -test -x / || exit 1" - as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO - as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO - eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && - test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1 -test \$(( 1 + 1 )) = 2 || exit 1" - if (eval "$as_required") 2>/dev/null; then : - as_have_required=yes -else - as_have_required=no -fi - if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then : - -else - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -as_found=false -for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - as_found=: - case $as_dir in @%:@( - /*) - for as_base in sh bash ksh sh5; do - # Try only shells that exist, to save several forks. - as_shell=$as_dir/$as_base - if { test -f "$as_shell" || test -f "$as_shell.exe"; } && - { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then : - CONFIG_SHELL=$as_shell as_have_required=yes - if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then : - break 2 -fi -fi - done;; - esac - as_found=false -done -$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } && - { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then : - CONFIG_SHELL=$SHELL as_have_required=yes -fi; } -IFS=$as_save_IFS - - - if test "x$CONFIG_SHELL" != x; then : - export CONFIG_SHELL - # We cannot yet assume a decent shell, so we have to provide a -# neutralization value for shells without unset; and this also -# works around shells that cannot unset nonexistent variables. -# Preserve -v and -x to the replacement shell. -BASH_ENV=/dev/null -ENV=/dev/null -(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV -case $- in @%:@ (((( - *v*x* | *x*v* ) as_opts=-vx ;; - *v* ) as_opts=-v ;; - *x* ) as_opts=-x ;; - * ) as_opts= ;; -esac -exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} -# Admittedly, this is quite paranoid, since all the known shells bail -# out after a failed `exec'. -$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 -exit 255 -fi - - if test x$as_have_required = xno; then : - $as_echo "$0: This script requires a shell more modern than all" - $as_echo "$0: the shells that I found on your system." - if test x${ZSH_VERSION+set} = xset ; then - $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should" - $as_echo "$0: be upgraded to zsh 4.3.4 or later." - else - $as_echo "$0: Please tell bug-autoconf@gnu.org and -$0: http://guvcview.sourceforge.net/ about your system, -$0: including any error possibly output before this -$0: message. Then install a modern shell, or manually run -$0: the script under such a shell if you do have one." - fi - exit 1 -fi -fi -fi -SHELL=${CONFIG_SHELL-/bin/sh} -export SHELL -# Unset more variables known to interfere with behavior of common tools. -CLICOLOR_FORCE= GREP_OPTIONS= -unset CLICOLOR_FORCE GREP_OPTIONS - -## --------------------- ## -## M4sh Shell Functions. ## -## --------------------- ## -@%:@ as_fn_unset VAR -@%:@ --------------- -@%:@ Portably unset VAR. -as_fn_unset () -{ - { eval $1=; unset $1;} -} -as_unset=as_fn_unset - -@%:@ as_fn_set_status STATUS -@%:@ ----------------------- -@%:@ Set @S|@? to STATUS, without forking. -as_fn_set_status () -{ - return $1 -} @%:@ as_fn_set_status - -@%:@ as_fn_exit STATUS -@%:@ ----------------- -@%:@ Exit the shell with STATUS, even in a "trap 0" or "set -e" context. -as_fn_exit () -{ - set +e - as_fn_set_status $1 - exit $1 -} @%:@ as_fn_exit - -@%:@ as_fn_mkdir_p -@%:@ ------------- -@%:@ Create "@S|@as_dir" as a directory, including parents if necessary. -as_fn_mkdir_p () -{ - - case $as_dir in #( - -*) as_dir=./$as_dir;; - esac - test -d "$as_dir" || eval $as_mkdir_p || { - as_dirs= - while :; do - case $as_dir in #( - *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( - *) as_qdir=$as_dir;; - esac - as_dirs="'$as_qdir' $as_dirs" - as_dir=`$as_dirname -- "$as_dir" || -$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$as_dir" : 'X\(//\)[^/]' \| \ - X"$as_dir" : 'X\(//\)$' \| \ - X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$as_dir" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - test -d "$as_dir" && break - done - test -z "$as_dirs" || eval "mkdir $as_dirs" - } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" - - -} @%:@ as_fn_mkdir_p - -@%:@ as_fn_executable_p FILE -@%:@ ----------------------- -@%:@ Test if FILE is an executable regular file. -as_fn_executable_p () -{ - test -f "$1" && test -x "$1" -} @%:@ as_fn_executable_p -@%:@ as_fn_append VAR VALUE -@%:@ ---------------------- -@%:@ Append the text in VALUE to the end of the definition contained in VAR. Take -@%:@ advantage of any shell optimizations that allow amortized linear growth over -@%:@ repeated appends, instead of the typical quadratic growth present in naive -@%:@ implementations. -if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : - eval 'as_fn_append () - { - eval $1+=\$2 - }' -else - as_fn_append () - { - eval $1=\$$1\$2 - } -fi # as_fn_append - -@%:@ as_fn_arith ARG... -@%:@ ------------------ -@%:@ Perform arithmetic evaluation on the ARGs, and store the result in the -@%:@ global @S|@as_val. Take advantage of shells that can avoid forks. The arguments -@%:@ must be portable across @S|@(()) and expr. -if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : - eval 'as_fn_arith () - { - as_val=$(( $* )) - }' -else - as_fn_arith () - { - as_val=`expr "$@" || test $? -eq 1` - } -fi # as_fn_arith - - -@%:@ as_fn_error STATUS ERROR [LINENO LOG_FD] -@%:@ ---------------------------------------- -@%:@ Output "`basename @S|@0`: error: ERROR" to stderr. If LINENO and LOG_FD are -@%:@ provided, also output the error to LOG_FD, referencing LINENO. Then exit the -@%:@ script with STATUS, using 1 if that was 0. -as_fn_error () -{ - as_status=$1; test $as_status -eq 0 && as_status=1 - if test "$4"; then - as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 - fi - $as_echo "$as_me: error: $2" >&2 - as_fn_exit $as_status -} @%:@ as_fn_error - -if expr a : '\(a\)' >/dev/null 2>&1 && - test "X`expr 00001 : '.*\(...\)'`" = X001; then - as_expr=expr -else - as_expr=false -fi - -if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then - as_basename=basename -else - as_basename=false -fi - -if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then - as_dirname=dirname -else - as_dirname=false -fi - -as_me=`$as_basename -- "$0" || -$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ - X"$0" : 'X\(//\)$' \| \ - X"$0" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X/"$0" | - sed '/^.*\/\([^/][^/]*\)\/*$/{ - s//\1/ - q - } - /^X\/\(\/\/\)$/{ - s//\1/ - q - } - /^X\/\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - -# Avoid depending upon Character Ranges. -as_cr_letters='abcdefghijklmnopqrstuvwxyz' -as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' -as_cr_Letters=$as_cr_letters$as_cr_LETTERS -as_cr_digits='0123456789' -as_cr_alnum=$as_cr_Letters$as_cr_digits - - - as_lineno_1=$LINENO as_lineno_1a=$LINENO - as_lineno_2=$LINENO as_lineno_2a=$LINENO - eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && - test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { - # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) - sed -n ' - p - /[$]LINENO/= - ' <$as_myself | - sed ' - s/[$]LINENO.*/&-/ - t lineno - b - :lineno - N - :loop - s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ - t loop - s/-\n.*// - ' >$as_me.lineno && - chmod +x "$as_me.lineno" || - { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } - - # If we had to re-execute with $CONFIG_SHELL, we're ensured to have - # already done that, so ensure we don't try to do so again and fall - # in an infinite loop. This has already happened in practice. - _as_can_reexec=no; export _as_can_reexec - # Don't try to exec as it changes $[0], causing all sort of problems - # (the dirname of $[0] is not the place where we might find the - # original and so on. Autoconf is especially sensitive to this). - . "./$as_me.lineno" - # Exit status is that of the last command. - exit -} - -ECHO_C= ECHO_N= ECHO_T= -case `echo -n x` in @%:@((((( --n*) - case `echo 'xy\c'` in - *c*) ECHO_T=' ';; # ECHO_T is single tab character. - xy) ECHO_C='\c';; - *) echo `echo ksh88 bug on AIX 6.1` > /dev/null - ECHO_T=' ';; - esac;; -*) - ECHO_N='-n';; -esac - -rm -f conf$$ conf$$.exe conf$$.file -if test -d conf$$.dir; then - rm -f conf$$.dir/conf$$.file -else - rm -f conf$$.dir - mkdir conf$$.dir 2>/dev/null -fi -if (echo >conf$$.file) 2>/dev/null; then - if ln -s conf$$.file conf$$ 2>/dev/null; then - as_ln_s='ln -s' - # ... but there are two gotchas: - # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. - # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. - # In both cases, we have to default to `cp -pR'. - ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || - as_ln_s='cp -pR' - elif ln conf$$.file conf$$ 2>/dev/null; then - as_ln_s=ln - else - as_ln_s='cp -pR' - fi -else - as_ln_s='cp -pR' -fi -rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file -rmdir conf$$.dir 2>/dev/null - -if mkdir -p . 2>/dev/null; then - as_mkdir_p='mkdir -p "$as_dir"' -else - test -d ./-p && rmdir ./-p - as_mkdir_p=false -fi - -as_test_x='test -x' -as_executable_p=as_fn_executable_p - -# Sed expression to map a string onto a valid CPP name. -as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" - -# Sed expression to map a string onto a valid variable name. -as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" - - -test -n "$DJDIR" || exec 7<&0 &1 - -# Name of the host. -# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status, -# so uname gets run too. -ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` - -# -# Initializations. -# -ac_default_prefix=/usr/local -ac_clean_files= -ac_config_libobj_dir=. -LIB@&t@OBJS= -cross_compiling=no -subdirs= -MFLAGS= -MAKEFLAGS= - -# Identity of this package. -PACKAGE_NAME='guvcview' -PACKAGE_TARNAME='guvcview' -PACKAGE_VERSION='1.7.3' -PACKAGE_STRING='guvcview 1.7.3' -PACKAGE_BUGREPORT='http://guvcview.sourceforge.net/' -PACKAGE_URL='' - -ac_default_prefix=/usr/local -# Factoring default headers for most tests. -ac_includes_default="\ -#include -#ifdef HAVE_SYS_TYPES_H -# include -#endif -#ifdef HAVE_SYS_STAT_H -# include -#endif -#ifdef STDC_HEADERS -# include -# include -#else -# ifdef HAVE_STDLIB_H -# include -# endif -#endif -#ifdef HAVE_STRING_H -# if !defined STDC_HEADERS && defined HAVE_MEMORY_H -# include -# endif -# include -#endif -#ifdef HAVE_STRINGS_H -# include -#endif -#ifdef HAVE_INTTYPES_H -# include -#endif -#ifdef HAVE_STDINT_H -# include -#endif -#ifdef HAVE_UNISTD_H -# include -#endif" - -ac_subst_vars='am__EXEEXT_FALSE -am__EXEEXT_TRUE -LTLIBOBJS -LIB@&t@OBJS -PULSE_LIBS -PULSE_CFLAGS -DESKTOP_FALSE -DESKTOP_TRUE -DEBIAN_MENU_FALSE -DEBIAN_MENU_TRUE -DEPS_LIBS -DEPS_CFLAGS -PKG_CONFIG_LIBDIR -PKG_CONFIG_PATH -PKG_CONFIG -MKINSTALLDIRS -POSUB -POFILES -PO_IN_DATADIR_FALSE -PO_IN_DATADIR_TRUE -INTLLIBS -INSTOBJEXT -GMOFILES -CATOBJEXT -CATALOGS -MSGFMT_OPTS -DATADIRNAME -ALL_LINGUAS -INTLTOOL_PERL -GMSGFMT -MSGFMT -MSGMERGE -XGETTEXT -INTLTOOL_POLICY_RULE -INTLTOOL_SERVICE_RULE -INTLTOOL_THEME_RULE -INTLTOOL_SCHEMAS_RULE -INTLTOOL_CAVES_RULE -INTLTOOL_XML_NOMERGE_RULE -INTLTOOL_XML_RULE -INTLTOOL_KBD_RULE -INTLTOOL_XAM_RULE -INTLTOOL_UI_RULE -INTLTOOL_SOUNDLIST_RULE -INTLTOOL_SHEET_RULE -INTLTOOL_SERVER_RULE -INTLTOOL_PONG_RULE -INTLTOOL_OAF_RULE -INTLTOOL_PROP_RULE -INTLTOOL_KEYS_RULE -INTLTOOL_DIRECTORY_RULE -INTLTOOL_DESKTOP_RULE -INTLTOOL_EXTRACT -INTLTOOL_MERGE -INTLTOOL_UPDATE -USE_NLS -GETTEXT_PACKAGE -PTHREAD_CFLAGS -PTHREAD_LIBS -PTHREAD_CC -acx_pthread_config -host_os -host_vendor -host_cpu -host -build_os -build_vendor -build_cpu -build -EGREP -GREP -CPP -am__fastdepCC_FALSE -am__fastdepCC_TRUE -CCDEPMODE -am__nodep -AMDEPBACKSLASH -AMDEP_FALSE -AMDEP_TRUE -am__quote -am__include -DEPDIR -OBJEXT -EXEEXT -ac_ct_CC -CPPFLAGS -LDFLAGS -CFLAGS -CC -MAINT -MAINTAINER_MODE_FALSE -MAINTAINER_MODE_TRUE -am__untar -am__tar -AMTAR -am__leading_dot -SET_MAKE -AWK -mkdir_p -MKDIR_P -INSTALL_STRIP_PROGRAM -STRIP -install_sh -MAKEINFO -AUTOHEADER -AUTOMAKE -AUTOCONF -ACLOCAL -VERSION -PACKAGE -CYGPATH_W -am__isrc -INSTALL_DATA -INSTALL_SCRIPT -INSTALL_PROGRAM -AM_BACKSLASH -AM_DEFAULT_VERBOSITY -AM_DEFAULT_V -AM_V -target_alias -host_alias -build_alias -LIBS -ECHO_T -ECHO_N -ECHO_C -DEFS -mandir -localedir -libdir -psdir -pdfdir -dvidir -htmldir -infodir -docdir -oldincludedir -includedir -localstatedir -sharedstatedir -sysconfdir -datadir -datarootdir -libexecdir -sbindir -bindir -program_transform_name -prefix -exec_prefix -PACKAGE_URL -PACKAGE_BUGREPORT -PACKAGE_STRING -PACKAGE_VERSION -PACKAGE_TARNAME -PACKAGE_NAME -PATH_SEPARATOR -SHELL' -ac_subst_files='' -ac_user_opts=' -enable_option_checking -enable_silent_rules -enable_maintainer_mode -enable_dependency_tracking -enable_debug -enable_nls -enable_debian_menu -enable_desktop -enable_pulse -' - ac_precious_vars='build_alias -host_alias -target_alias -CC -CFLAGS -LDFLAGS -LIBS -CPPFLAGS -CPP -PKG_CONFIG -PKG_CONFIG_PATH -PKG_CONFIG_LIBDIR -DEPS_CFLAGS -DEPS_LIBS -PULSE_CFLAGS -PULSE_LIBS' - - -# Initialize some variables set by options. -ac_init_help= -ac_init_version=false -ac_unrecognized_opts= -ac_unrecognized_sep= -# The variables have the same names as the options, with -# dashes changed to underlines. -cache_file=/dev/null -exec_prefix=NONE -no_create= -no_recursion= -prefix=NONE -program_prefix=NONE -program_suffix=NONE -program_transform_name=s,x,x, -silent= -site= -srcdir= -verbose= -x_includes=NONE -x_libraries=NONE - -# Installation directory options. -# These are left unexpanded so users can "make install exec_prefix=/foo" -# and all the variables that are supposed to be based on exec_prefix -# by default will actually change. -# Use braces instead of parens because sh, perl, etc. also accept them. -# (The list follows the same order as the GNU Coding Standards.) -bindir='${exec_prefix}/bin' -sbindir='${exec_prefix}/sbin' -libexecdir='${exec_prefix}/libexec' -datarootdir='${prefix}/share' -datadir='${datarootdir}' -sysconfdir='${prefix}/etc' -sharedstatedir='${prefix}/com' -localstatedir='${prefix}/var' -includedir='${prefix}/include' -oldincludedir='/usr/include' -docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' -infodir='${datarootdir}/info' -htmldir='${docdir}' -dvidir='${docdir}' -pdfdir='${docdir}' -psdir='${docdir}' -libdir='${exec_prefix}/lib' -localedir='${datarootdir}/locale' -mandir='${datarootdir}/man' - -ac_prev= -ac_dashdash= -for ac_option -do - # If the previous option needs an argument, assign it. - if test -n "$ac_prev"; then - eval $ac_prev=\$ac_option - ac_prev= - continue - fi - - case $ac_option in - *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; - *=) ac_optarg= ;; - *) ac_optarg=yes ;; - esac - - # Accept the important Cygnus configure options, so we can diagnose typos. - - case $ac_dashdash$ac_option in - --) - ac_dashdash=yes ;; - - -bindir | --bindir | --bindi | --bind | --bin | --bi) - ac_prev=bindir ;; - -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) - bindir=$ac_optarg ;; - - -build | --build | --buil | --bui | --bu) - ac_prev=build_alias ;; - -build=* | --build=* | --buil=* | --bui=* | --bu=*) - build_alias=$ac_optarg ;; - - -cache-file | --cache-file | --cache-fil | --cache-fi \ - | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) - ac_prev=cache_file ;; - -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ - | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) - cache_file=$ac_optarg ;; - - --config-cache | -C) - cache_file=config.cache ;; - - -datadir | --datadir | --datadi | --datad) - ac_prev=datadir ;; - -datadir=* | --datadir=* | --datadi=* | --datad=*) - datadir=$ac_optarg ;; - - -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ - | --dataroo | --dataro | --datar) - ac_prev=datarootdir ;; - -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ - | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) - datarootdir=$ac_optarg ;; - - -disable-* | --disable-*) - ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error $? "invalid feature name: $ac_useropt" - ac_useropt_orig=$ac_useropt - ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` - case $ac_user_opts in - *" -"enable_$ac_useropt" -"*) ;; - *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" - ac_unrecognized_sep=', ';; - esac - eval enable_$ac_useropt=no ;; - - -docdir | --docdir | --docdi | --doc | --do) - ac_prev=docdir ;; - -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) - docdir=$ac_optarg ;; - - -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) - ac_prev=dvidir ;; - -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) - dvidir=$ac_optarg ;; - - -enable-* | --enable-*) - ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error $? "invalid feature name: $ac_useropt" - ac_useropt_orig=$ac_useropt - ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` - case $ac_user_opts in - *" -"enable_$ac_useropt" -"*) ;; - *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" - ac_unrecognized_sep=', ';; - esac - eval enable_$ac_useropt=\$ac_optarg ;; - - -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ - | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ - | --exec | --exe | --ex) - ac_prev=exec_prefix ;; - -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ - | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ - | --exec=* | --exe=* | --ex=*) - exec_prefix=$ac_optarg ;; - - -gas | --gas | --ga | --g) - # Obsolete; use --with-gas. - with_gas=yes ;; - - -help | --help | --hel | --he | -h) - ac_init_help=long ;; - -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) - ac_init_help=recursive ;; - -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) - ac_init_help=short ;; - - -host | --host | --hos | --ho) - ac_prev=host_alias ;; - -host=* | --host=* | --hos=* | --ho=*) - host_alias=$ac_optarg ;; - - -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) - ac_prev=htmldir ;; - -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ - | --ht=*) - htmldir=$ac_optarg ;; - - -includedir | --includedir | --includedi | --included | --include \ - | --includ | --inclu | --incl | --inc) - ac_prev=includedir ;; - -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ - | --includ=* | --inclu=* | --incl=* | --inc=*) - includedir=$ac_optarg ;; - - -infodir | --infodir | --infodi | --infod | --info | --inf) - ac_prev=infodir ;; - -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) - infodir=$ac_optarg ;; - - -libdir | --libdir | --libdi | --libd) - ac_prev=libdir ;; - -libdir=* | --libdir=* | --libdi=* | --libd=*) - libdir=$ac_optarg ;; - - -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ - | --libexe | --libex | --libe) - ac_prev=libexecdir ;; - -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ - | --libexe=* | --libex=* | --libe=*) - libexecdir=$ac_optarg ;; - - -localedir | --localedir | --localedi | --localed | --locale) - ac_prev=localedir ;; - -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) - localedir=$ac_optarg ;; - - -localstatedir | --localstatedir | --localstatedi | --localstated \ - | --localstate | --localstat | --localsta | --localst | --locals) - ac_prev=localstatedir ;; - -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ - | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) - localstatedir=$ac_optarg ;; - - -mandir | --mandir | --mandi | --mand | --man | --ma | --m) - ac_prev=mandir ;; - -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) - mandir=$ac_optarg ;; - - -nfp | --nfp | --nf) - # Obsolete; use --without-fp. - with_fp=no ;; - - -no-create | --no-create | --no-creat | --no-crea | --no-cre \ - | --no-cr | --no-c | -n) - no_create=yes ;; - - -no-recursion | --no-recursion | --no-recursio | --no-recursi \ - | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) - no_recursion=yes ;; - - -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ - | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ - | --oldin | --oldi | --old | --ol | --o) - ac_prev=oldincludedir ;; - -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ - | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ - | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) - oldincludedir=$ac_optarg ;; - - -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) - ac_prev=prefix ;; - -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) - prefix=$ac_optarg ;; - - -program-prefix | --program-prefix | --program-prefi | --program-pref \ - | --program-pre | --program-pr | --program-p) - ac_prev=program_prefix ;; - -program-prefix=* | --program-prefix=* | --program-prefi=* \ - | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) - program_prefix=$ac_optarg ;; - - -program-suffix | --program-suffix | --program-suffi | --program-suff \ - | --program-suf | --program-su | --program-s) - ac_prev=program_suffix ;; - -program-suffix=* | --program-suffix=* | --program-suffi=* \ - | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) - program_suffix=$ac_optarg ;; - - -program-transform-name | --program-transform-name \ - | --program-transform-nam | --program-transform-na \ - | --program-transform-n | --program-transform- \ - | --program-transform | --program-transfor \ - | --program-transfo | --program-transf \ - | --program-trans | --program-tran \ - | --progr-tra | --program-tr | --program-t) - ac_prev=program_transform_name ;; - -program-transform-name=* | --program-transform-name=* \ - | --program-transform-nam=* | --program-transform-na=* \ - | --program-transform-n=* | --program-transform-=* \ - | --program-transform=* | --program-transfor=* \ - | --program-transfo=* | --program-transf=* \ - | --program-trans=* | --program-tran=* \ - | --progr-tra=* | --program-tr=* | --program-t=*) - program_transform_name=$ac_optarg ;; - - -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) - ac_prev=pdfdir ;; - -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) - pdfdir=$ac_optarg ;; - - -psdir | --psdir | --psdi | --psd | --ps) - ac_prev=psdir ;; - -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) - psdir=$ac_optarg ;; - - -q | -quiet | --quiet | --quie | --qui | --qu | --q \ - | -silent | --silent | --silen | --sile | --sil) - silent=yes ;; - - -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) - ac_prev=sbindir ;; - -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ - | --sbi=* | --sb=*) - sbindir=$ac_optarg ;; - - -sharedstatedir | --sharedstatedir | --sharedstatedi \ - | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ - | --sharedst | --shareds | --shared | --share | --shar \ - | --sha | --sh) - ac_prev=sharedstatedir ;; - -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ - | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ - | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ - | --sha=* | --sh=*) - sharedstatedir=$ac_optarg ;; - - -site | --site | --sit) - ac_prev=site ;; - -site=* | --site=* | --sit=*) - site=$ac_optarg ;; - - -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) - ac_prev=srcdir ;; - -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) - srcdir=$ac_optarg ;; - - -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ - | --syscon | --sysco | --sysc | --sys | --sy) - ac_prev=sysconfdir ;; - -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ - | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) - sysconfdir=$ac_optarg ;; - - -target | --target | --targe | --targ | --tar | --ta | --t) - ac_prev=target_alias ;; - -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) - target_alias=$ac_optarg ;; - - -v | -verbose | --verbose | --verbos | --verbo | --verb) - verbose=yes ;; - - -version | --version | --versio | --versi | --vers | -V) - ac_init_version=: ;; - - -with-* | --with-*) - ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error $? "invalid package name: $ac_useropt" - ac_useropt_orig=$ac_useropt - ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` - case $ac_user_opts in - *" -"with_$ac_useropt" -"*) ;; - *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" - ac_unrecognized_sep=', ';; - esac - eval with_$ac_useropt=\$ac_optarg ;; - - -without-* | --without-*) - ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error $? "invalid package name: $ac_useropt" - ac_useropt_orig=$ac_useropt - ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` - case $ac_user_opts in - *" -"with_$ac_useropt" -"*) ;; - *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" - ac_unrecognized_sep=', ';; - esac - eval with_$ac_useropt=no ;; - - --x) - # Obsolete; use --with-x. - with_x=yes ;; - - -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ - | --x-incl | --x-inc | --x-in | --x-i) - ac_prev=x_includes ;; - -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ - | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) - x_includes=$ac_optarg ;; - - -x-libraries | --x-libraries | --x-librarie | --x-librari \ - | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) - ac_prev=x_libraries ;; - -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ - | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) - x_libraries=$ac_optarg ;; - - -*) as_fn_error $? "unrecognized option: \`$ac_option' -Try \`$0 --help' for more information" - ;; - - *=*) - ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` - # Reject names that are not valid shell variable names. - case $ac_envvar in #( - '' | [0-9]* | *[!_$as_cr_alnum]* ) - as_fn_error $? "invalid variable name: \`$ac_envvar'" ;; - esac - eval $ac_envvar=\$ac_optarg - export $ac_envvar ;; - - *) - # FIXME: should be removed in autoconf 3.0. - $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 - expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && - $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 - : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}" - ;; - - esac -done - -if test -n "$ac_prev"; then - ac_option=--`echo $ac_prev | sed 's/_/-/g'` - as_fn_error $? "missing argument to $ac_option" -fi - -if test -n "$ac_unrecognized_opts"; then - case $enable_option_checking in - no) ;; - fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; - *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; - esac -fi - -# Check all directory arguments for consistency. -for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ - datadir sysconfdir sharedstatedir localstatedir includedir \ - oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ - libdir localedir mandir -do - eval ac_val=\$$ac_var - # Remove trailing slashes. - case $ac_val in - */ ) - ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` - eval $ac_var=\$ac_val;; - esac - # Be sure to have absolute directory names. - case $ac_val in - [\\/$]* | ?:[\\/]* ) continue;; - NONE | '' ) case $ac_var in *prefix ) continue;; esac;; - esac - as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" -done - -# There might be people who depend on the old broken behavior: `$host' -# used to hold the argument of --host etc. -# FIXME: To remove some day. -build=$build_alias -host=$host_alias -target=$target_alias - -# FIXME: To remove some day. -if test "x$host_alias" != x; then - if test "x$build_alias" = x; then - cross_compiling=maybe - elif test "x$build_alias" != "x$host_alias"; then - cross_compiling=yes - fi -fi - -ac_tool_prefix= -test -n "$host_alias" && ac_tool_prefix=$host_alias- - -test "$silent" = yes && exec 6>/dev/null - - -ac_pwd=`pwd` && test -n "$ac_pwd" && -ac_ls_di=`ls -di .` && -ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || - as_fn_error $? "working directory cannot be determined" -test "X$ac_ls_di" = "X$ac_pwd_ls_di" || - as_fn_error $? "pwd does not report name of working directory" - - -# Find the source files, if location was not specified. -if test -z "$srcdir"; then - ac_srcdir_defaulted=yes - # Try the directory containing this script, then the parent directory. - ac_confdir=`$as_dirname -- "$as_myself" || -$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$as_myself" : 'X\(//\)[^/]' \| \ - X"$as_myself" : 'X\(//\)$' \| \ - X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$as_myself" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - srcdir=$ac_confdir - if test ! -r "$srcdir/$ac_unique_file"; then - srcdir=.. - fi -else - ac_srcdir_defaulted=no -fi -if test ! -r "$srcdir/$ac_unique_file"; then - test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." - as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir" -fi -ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" -ac_abs_confdir=`( - cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg" - pwd)` -# When building in place, set srcdir=. -if test "$ac_abs_confdir" = "$ac_pwd"; then - srcdir=. -fi -# Remove unnecessary trailing slashes from srcdir. -# Double slashes in file names in object file debugging info -# mess up M-x gdb in Emacs. -case $srcdir in -*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; -esac -for ac_var in $ac_precious_vars; do - eval ac_env_${ac_var}_set=\${${ac_var}+set} - eval ac_env_${ac_var}_value=\$${ac_var} - eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} - eval ac_cv_env_${ac_var}_value=\$${ac_var} -done - -# -# Report the --help message. -# -if test "$ac_init_help" = "long"; then - # Omit some internal or obsolete options to make the list less imposing. - # This message is too long to be a string in the A/UX 3.1 sh. - cat <<_ACEOF -\`configure' configures guvcview 1.7.3 to adapt to many kinds of systems. - -Usage: $0 [OPTION]... [VAR=VALUE]... - -To assign environment variables (e.g., CC, CFLAGS...), specify them as -VAR=VALUE. See below for descriptions of some of the useful variables. - -Defaults for the options are specified in brackets. - -Configuration: - -h, --help display this help and exit - --help=short display options specific to this package - --help=recursive display the short help of all the included packages - -V, --version display version information and exit - -q, --quiet, --silent do not print \`checking ...' messages - --cache-file=FILE cache test results in FILE [disabled] - -C, --config-cache alias for \`--cache-file=config.cache' - -n, --no-create do not create output files - --srcdir=DIR find the sources in DIR [configure dir or \`..'] - -Installation directories: - --prefix=PREFIX install architecture-independent files in PREFIX - @<:@@S|@ac_default_prefix@:>@ - --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX - @<:@PREFIX@:>@ - -By default, \`make install' will install all the files in -\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify -an installation prefix other than \`$ac_default_prefix' using \`--prefix', -for instance \`--prefix=\$HOME'. - -For better control, use the options below. - -Fine tuning of the installation directories: - --bindir=DIR user executables [EPREFIX/bin] - --sbindir=DIR system admin executables [EPREFIX/sbin] - --libexecdir=DIR program executables [EPREFIX/libexec] - --sysconfdir=DIR read-only single-machine data [PREFIX/etc] - --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] - --localstatedir=DIR modifiable single-machine data [PREFIX/var] - --libdir=DIR object code libraries [EPREFIX/lib] - --includedir=DIR C header files [PREFIX/include] - --oldincludedir=DIR C header files for non-gcc [/usr/include] - --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] - --datadir=DIR read-only architecture-independent data [DATAROOTDIR] - --infodir=DIR info documentation [DATAROOTDIR/info] - --localedir=DIR locale-dependent data [DATAROOTDIR/locale] - --mandir=DIR man documentation [DATAROOTDIR/man] - --docdir=DIR documentation root @<:@DATAROOTDIR/doc/guvcview@:>@ - --htmldir=DIR html documentation [DOCDIR] - --dvidir=DIR dvi documentation [DOCDIR] - --pdfdir=DIR pdf documentation [DOCDIR] - --psdir=DIR ps documentation [DOCDIR] -_ACEOF - - cat <<\_ACEOF - -Program names: - --program-prefix=PREFIX prepend PREFIX to installed program names - --program-suffix=SUFFIX append SUFFIX to installed program names - --program-transform-name=PROGRAM run sed PROGRAM on installed program names - -System types: - --build=BUILD configure for building on BUILD [guessed] - --host=HOST cross-compile to build programs to run on HOST [BUILD] -_ACEOF -fi - -if test -n "$ac_init_help"; then - case $ac_init_help in - short | recursive ) echo "Configuration of guvcview 1.7.3:";; - esac - cat <<\_ACEOF - -Optional Features: - --disable-option-checking ignore unrecognized --enable/--with options - --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) - --enable-FEATURE[=ARG] include FEATURE [ARG=yes] - --enable-silent-rules less verbose build output (undo: "make V=1") - --disable-silent-rules verbose build output (undo: "make V=0") - --enable-maintainer-mode - enable make rules and dependencies not useful (and - sometimes confusing) to the casual installer - --enable-dependency-tracking - do not reject slow dependency extractors - --disable-dependency-tracking - speeds up one-time build - --enable-debug enable debug compile w/ debugging - if \@S|@CFLAGS is - set, add -g there, too - --disable-nls do not use Native Language Support - --disable-debian-menu disable debian menu (default: enabled) - --disable-desktop disable desktop file (default: enabled) - --disable-pulse disable pulseaudio support (default: enabled) - -Some influential environment variables: - CC C compiler command - CFLAGS C compiler flags - LDFLAGS linker flags, e.g. -L if you have libraries in a - nonstandard directory - LIBS libraries to pass to the linker, e.g. -l - CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I if - you have headers in a nonstandard directory - CPP C preprocessor - PKG_CONFIG path to pkg-config utility - PKG_CONFIG_PATH - directories to add to pkg-config's search path - PKG_CONFIG_LIBDIR - path overriding pkg-config's built-in search path - DEPS_CFLAGS C compiler flags for DEPS, overriding pkg-config - DEPS_LIBS linker flags for DEPS, overriding pkg-config - PULSE_CFLAGS - C compiler flags for PULSE, overriding pkg-config - PULSE_LIBS linker flags for PULSE, overriding pkg-config - -Use these variables to override the choices made by `configure' or to help -it to find libraries and programs with nonstandard names/locations. - -Report bugs to . -_ACEOF -ac_status=$? -fi - -if test "$ac_init_help" = "recursive"; then - # If there are subdirs, report their specific --help. - for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue - test -d "$ac_dir" || - { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || - continue - ac_builddir=. - -case "$ac_dir" in -.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; -*) - ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` - # A ".." for each directory in $ac_dir_suffix. - ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` - case $ac_top_builddir_sub in - "") ac_top_builddir_sub=. ac_top_build_prefix= ;; - *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; - esac ;; -esac -ac_abs_top_builddir=$ac_pwd -ac_abs_builddir=$ac_pwd$ac_dir_suffix -# for backward compatibility: -ac_top_builddir=$ac_top_build_prefix - -case $srcdir in - .) # We are building in place. - ac_srcdir=. - ac_top_srcdir=$ac_top_builddir_sub - ac_abs_top_srcdir=$ac_pwd ;; - [\\/]* | ?:[\\/]* ) # Absolute name. - ac_srcdir=$srcdir$ac_dir_suffix; - ac_top_srcdir=$srcdir - ac_abs_top_srcdir=$srcdir ;; - *) # Relative name. - ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix - ac_top_srcdir=$ac_top_build_prefix$srcdir - ac_abs_top_srcdir=$ac_pwd/$srcdir ;; -esac -ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix - - cd "$ac_dir" || { ac_status=$?; continue; } - # Check for guested configure. - if test -f "$ac_srcdir/configure.gnu"; then - echo && - $SHELL "$ac_srcdir/configure.gnu" --help=recursive - elif test -f "$ac_srcdir/configure"; then - echo && - $SHELL "$ac_srcdir/configure" --help=recursive - else - $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 - fi || ac_status=$? - cd "$ac_pwd" || { ac_status=$?; break; } - done -fi - -test -n "$ac_init_help" && exit $ac_status -if $ac_init_version; then - cat <<\_ACEOF -guvcview configure 1.7.3 -generated by GNU Autoconf 2.69 - -Copyright (C) 2012 Free Software Foundation, Inc. -This configure script is free software; the Free Software Foundation -gives unlimited permission to copy, distribute and modify it. -_ACEOF - exit -fi - -## ------------------------ ## -## Autoconf initialization. ## -## ------------------------ ## - -@%:@ ac_fn_c_try_compile LINENO -@%:@ -------------------------- -@%:@ Try to compile conftest.@S|@ac_ext, and return whether this succeeded. -ac_fn_c_try_compile () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - rm -f conftest.$ac_objext - if { { ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_compile") 2>conftest.err - ac_status=$? - if test -s conftest.err; then - grep -v '^ *+' conftest.err >conftest.er1 - cat conftest.er1 >&5 - mv -f conftest.er1 conftest.err - fi - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then : - ac_retval=0 -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_retval=1 -fi - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - as_fn_set_status $ac_retval - -} @%:@ ac_fn_c_try_compile - -@%:@ ac_fn_c_try_cpp LINENO -@%:@ ---------------------- -@%:@ Try to preprocess conftest.@S|@ac_ext, and return whether this succeeded. -ac_fn_c_try_cpp () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - if { { ac_try="$ac_cpp conftest.$ac_ext" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err - ac_status=$? - if test -s conftest.err; then - grep -v '^ *+' conftest.err >conftest.er1 - cat conftest.er1 >&5 - mv -f conftest.er1 conftest.err - fi - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } > conftest.i && { - test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || - test ! -s conftest.err - }; then : - ac_retval=0 -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_retval=1 -fi - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - as_fn_set_status $ac_retval - -} @%:@ ac_fn_c_try_cpp - -@%:@ ac_fn_c_try_run LINENO -@%:@ ---------------------- -@%:@ Try to link conftest.@S|@ac_ext, and return whether this succeeded. Assumes -@%:@ that executables *can* be run. -ac_fn_c_try_run () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - if { { ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_link") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && { ac_try='./conftest$ac_exeext' - { { case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; }; then : - ac_retval=0 -else - $as_echo "$as_me: program exited with status $ac_status" >&5 - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_retval=$ac_status -fi - rm -rf conftest.dSYM conftest_ipa8_conftest.oo - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - as_fn_set_status $ac_retval - -} @%:@ ac_fn_c_try_run - -@%:@ ac_fn_c_try_link LINENO -@%:@ ----------------------- -@%:@ Try to link conftest.@S|@ac_ext, and return whether this succeeded. -ac_fn_c_try_link () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - rm -f conftest.$ac_objext conftest$ac_exeext - if { { ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_link") 2>conftest.err - ac_status=$? - if test -s conftest.err; then - grep -v '^ *+' conftest.err >conftest.er1 - cat conftest.er1 >&5 - mv -f conftest.er1 conftest.err - fi - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && { - test "$cross_compiling" = yes || - test -x conftest$ac_exeext - }; then : - ac_retval=0 -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_retval=1 -fi - # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information - # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would - # interfere with the next link command; also delete a directory that is - # left behind by Apple's compiler. We do this before executing the actions. - rm -rf conftest.dSYM conftest_ipa8_conftest.oo - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - as_fn_set_status $ac_retval - -} @%:@ ac_fn_c_try_link - -@%:@ ac_fn_c_check_func LINENO FUNC VAR -@%:@ ---------------------------------- -@%:@ Tests whether FUNC exists, setting the cache variable VAR accordingly -ac_fn_c_check_func () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 -$as_echo_n "checking for $2... " >&6; } -if eval \${$3+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -/* Define $2 to an innocuous variant, in case declares $2. - For example, HP-UX 11i declares gettimeofday. */ -#define $2 innocuous_$2 - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char $2 (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef $2 - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char $2 (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined __stub_$2 || defined __stub___$2 -choke me -#endif - -int -main () -{ -return $2 (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - eval "$3=yes" -else - eval "$3=no" -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -eval ac_res=\$$3 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - -} @%:@ ac_fn_c_check_func - -@%:@ ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES -@%:@ ------------------------------------------------------- -@%:@ Tests whether HEADER exists, giving a warning if it cannot be compiled using -@%:@ the include files in INCLUDES and setting the cache variable VAR -@%:@ accordingly. -ac_fn_c_check_header_mongrel () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - if eval \${$3+:} false; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 -$as_echo_n "checking for $2... " >&6; } -if eval \${$3+:} false; then : - $as_echo_n "(cached) " >&6 -fi -eval ac_res=\$$3 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } -else - # Is the header compilable? -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5 -$as_echo_n "checking $2 usability... " >&6; } -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -@%:@include <$2> -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_header_compiler=yes -else - ac_header_compiler=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5 -$as_echo "$ac_header_compiler" >&6; } - -# Is the header present? -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5 -$as_echo_n "checking $2 presence... " >&6; } -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -@%:@include <$2> -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - ac_header_preproc=yes -else - ac_header_preproc=no -fi -rm -f conftest.err conftest.i conftest.$ac_ext -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5 -$as_echo "$ac_header_preproc" >&6; } - -# So? What about this header? -case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #(( - yes:no: ) - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5 -$as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 -$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} - ;; - no:yes:* ) - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5 -$as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: check for missing prerequisite headers?" >&5 -$as_echo "$as_me: WARNING: $2: check for missing prerequisite headers?" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5 -$as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&5 -$as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 -$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} -( $as_echo "## ----------------------------------------------- ## -## Report this to http://guvcview.sourceforge.net/ ## -## ----------------------------------------------- ##" - ) | sed "s/^/$as_me: WARNING: /" >&2 - ;; -esac - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 -$as_echo_n "checking for $2... " >&6; } -if eval \${$3+:} false; then : - $as_echo_n "(cached) " >&6 -else - eval "$3=\$ac_header_compiler" -fi -eval ac_res=\$$3 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } -fi - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - -} @%:@ ac_fn_c_check_header_mongrel - -@%:@ ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES -@%:@ ------------------------------------------------------- -@%:@ Tests whether HEADER exists and can be compiled using the include files in -@%:@ INCLUDES, setting the cache variable VAR accordingly. -ac_fn_c_check_header_compile () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 -$as_echo_n "checking for $2... " >&6; } -if eval \${$3+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -@%:@include <$2> -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - eval "$3=yes" -else - eval "$3=no" -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -eval ac_res=\$$3 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - -} @%:@ ac_fn_c_check_header_compile -cat >config.log <<_ACEOF -This file contains any messages produced by compilers while -running configure, to aid debugging if configure makes a mistake. - -It was created by guvcview $as_me 1.7.3, which was -generated by GNU Autoconf 2.69. Invocation command line was - - $ $0 $@ - -_ACEOF -exec 5>>config.log -{ -cat <<_ASUNAME -## --------- ## -## Platform. ## -## --------- ## - -hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` -uname -m = `(uname -m) 2>/dev/null || echo unknown` -uname -r = `(uname -r) 2>/dev/null || echo unknown` -uname -s = `(uname -s) 2>/dev/null || echo unknown` -uname -v = `(uname -v) 2>/dev/null || echo unknown` - -/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` -/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` - -/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` -/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` -/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` -/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` -/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` -/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` -/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` - -_ASUNAME - -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - $as_echo "PATH: $as_dir" - done -IFS=$as_save_IFS - -} >&5 - -cat >&5 <<_ACEOF - - -## ----------- ## -## Core tests. ## -## ----------- ## - -_ACEOF - - -# Keep a trace of the command line. -# Strip out --no-create and --no-recursion so they do not pile up. -# Strip out --silent because we don't want to record it for future runs. -# Also quote any args containing shell meta-characters. -# Make two passes to allow for proper duplicate-argument suppression. -ac_configure_args= -ac_configure_args0= -ac_configure_args1= -ac_must_keep_next=false -for ac_pass in 1 2 -do - for ac_arg - do - case $ac_arg in - -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; - -q | -quiet | --quiet | --quie | --qui | --qu | --q \ - | -silent | --silent | --silen | --sile | --sil) - continue ;; - *\'*) - ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; - esac - case $ac_pass in - 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; - 2) - as_fn_append ac_configure_args1 " '$ac_arg'" - if test $ac_must_keep_next = true; then - ac_must_keep_next=false # Got value, back to normal. - else - case $ac_arg in - *=* | --config-cache | -C | -disable-* | --disable-* \ - | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ - | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ - | -with-* | --with-* | -without-* | --without-* | --x) - case "$ac_configure_args0 " in - "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; - esac - ;; - -* ) ac_must_keep_next=true ;; - esac - fi - as_fn_append ac_configure_args " '$ac_arg'" - ;; - esac - done -done -{ ac_configure_args0=; unset ac_configure_args0;} -{ ac_configure_args1=; unset ac_configure_args1;} - -# When interrupted or exit'd, cleanup temporary files, and complete -# config.log. We remove comments because anyway the quotes in there -# would cause problems or look ugly. -# WARNING: Use '\'' to represent an apostrophe within the trap. -# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. -trap 'exit_status=$? - # Save into config.log some information that might help in debugging. - { - echo - - $as_echo "## ---------------- ## -## Cache variables. ## -## ---------------- ##" - echo - # The following way of writing the cache mishandles newlines in values, -( - for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do - eval ac_val=\$$ac_var - case $ac_val in #( - *${as_nl}*) - case $ac_var in #( - *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 -$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; - esac - case $ac_var in #( - _ | IFS | as_nl) ;; #( - BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( - *) { eval $ac_var=; unset $ac_var;} ;; - esac ;; - esac - done - (set) 2>&1 | - case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( - *${as_nl}ac_space=\ *) - sed -n \ - "s/'\''/'\''\\\\'\'''\''/g; - s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" - ;; #( - *) - sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" - ;; - esac | - sort -) - echo - - $as_echo "## ----------------- ## -## Output variables. ## -## ----------------- ##" - echo - for ac_var in $ac_subst_vars - do - eval ac_val=\$$ac_var - case $ac_val in - *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; - esac - $as_echo "$ac_var='\''$ac_val'\''" - done | sort - echo - - if test -n "$ac_subst_files"; then - $as_echo "## ------------------- ## -## File substitutions. ## -## ------------------- ##" - echo - for ac_var in $ac_subst_files - do - eval ac_val=\$$ac_var - case $ac_val in - *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; - esac - $as_echo "$ac_var='\''$ac_val'\''" - done | sort - echo - fi - - if test -s confdefs.h; then - $as_echo "## ----------- ## -## confdefs.h. ## -## ----------- ##" - echo - cat confdefs.h - echo - fi - test "$ac_signal" != 0 && - $as_echo "$as_me: caught signal $ac_signal" - $as_echo "$as_me: exit $exit_status" - } >&5 - rm -f core *.core core.conftest.* && - rm -f -r conftest* confdefs* conf$$* $ac_clean_files && - exit $exit_status -' 0 -for ac_signal in 1 2 13 15; do - trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal -done -ac_signal=0 - -# confdefs.h avoids OS command line length limits that DEFS can exceed. -rm -f -r conftest* confdefs.h - -$as_echo "/* confdefs.h */" > confdefs.h - -# Predefined preprocessor variables. - -cat >>confdefs.h <<_ACEOF -@%:@define PACKAGE_NAME "$PACKAGE_NAME" -_ACEOF - -cat >>confdefs.h <<_ACEOF -@%:@define PACKAGE_TARNAME "$PACKAGE_TARNAME" -_ACEOF - -cat >>confdefs.h <<_ACEOF -@%:@define PACKAGE_VERSION "$PACKAGE_VERSION" -_ACEOF - -cat >>confdefs.h <<_ACEOF -@%:@define PACKAGE_STRING "$PACKAGE_STRING" -_ACEOF - -cat >>confdefs.h <<_ACEOF -@%:@define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" -_ACEOF - -cat >>confdefs.h <<_ACEOF -@%:@define PACKAGE_URL "$PACKAGE_URL" -_ACEOF - - -# Let the site file select an alternate cache file if it wants to. -# Prefer an explicitly selected file to automatically selected ones. -ac_site_file1=NONE -ac_site_file2=NONE -if test -n "$CONFIG_SITE"; then - # We do not want a PATH search for config.site. - case $CONFIG_SITE in @%:@(( - -*) ac_site_file1=./$CONFIG_SITE;; - */*) ac_site_file1=$CONFIG_SITE;; - *) ac_site_file1=./$CONFIG_SITE;; - esac -elif test "x$prefix" != xNONE; then - ac_site_file1=$prefix/share/config.site - ac_site_file2=$prefix/etc/config.site -else - ac_site_file1=$ac_default_prefix/share/config.site - ac_site_file2=$ac_default_prefix/etc/config.site -fi -for ac_site_file in "$ac_site_file1" "$ac_site_file2" -do - test "x$ac_site_file" = xNONE && continue - if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 -$as_echo "$as_me: loading site script $ac_site_file" >&6;} - sed 's/^/| /' "$ac_site_file" >&5 - . "$ac_site_file" \ - || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "failed to load site script $ac_site_file -See \`config.log' for more details" "$LINENO" 5; } - fi -done - -if test -r "$cache_file"; then - # Some versions of bash will fail to source /dev/null (special files - # actually), so we avoid doing that. DJGPP emulates it as a regular file. - if test /dev/null != "$cache_file" && test -f "$cache_file"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 -$as_echo "$as_me: loading cache $cache_file" >&6;} - case $cache_file in - [\\/]* | ?:[\\/]* ) . "$cache_file";; - *) . "./$cache_file";; - esac - fi -else - { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 -$as_echo "$as_me: creating cache $cache_file" >&6;} - >$cache_file -fi - -# Check that the precious variables saved in the cache have kept the same -# value. -ac_cache_corrupted=false -for ac_var in $ac_precious_vars; do - eval ac_old_set=\$ac_cv_env_${ac_var}_set - eval ac_new_set=\$ac_env_${ac_var}_set - eval ac_old_val=\$ac_cv_env_${ac_var}_value - eval ac_new_val=\$ac_env_${ac_var}_value - case $ac_old_set,$ac_new_set in - set,) - { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 -$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} - ac_cache_corrupted=: ;; - ,set) - { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 -$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} - ac_cache_corrupted=: ;; - ,);; - *) - if test "x$ac_old_val" != "x$ac_new_val"; then - # differences in whitespace do not lead to failure. - ac_old_val_w=`echo x $ac_old_val` - ac_new_val_w=`echo x $ac_new_val` - if test "$ac_old_val_w" != "$ac_new_val_w"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 -$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} - ac_cache_corrupted=: - else - { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 -$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} - eval $ac_var=\$ac_old_val - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 -$as_echo "$as_me: former value: \`$ac_old_val'" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 -$as_echo "$as_me: current value: \`$ac_new_val'" >&2;} - fi;; - esac - # Pass precious variables to config.status. - if test "$ac_new_set" = set; then - case $ac_new_val in - *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; - *) ac_arg=$ac_var=$ac_new_val ;; - esac - case " $ac_configure_args " in - *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. - *) as_fn_append ac_configure_args " '$ac_arg'" ;; - esac - fi -done -if $ac_cache_corrupted; then - { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 -$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} - as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 -fi -## -------------------- ## -## Main body of script. ## -## -------------------- ## - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - -@%:@ Check whether --enable-silent-rules was given. -if test "${enable_silent_rules+set}" = set; then : - enableval=$enable_silent_rules; -fi - -case $enable_silent_rules in @%:@ ((( - yes) AM_DEFAULT_VERBOSITY=0;; - no) AM_DEFAULT_VERBOSITY=1;; - *) AM_DEFAULT_VERBOSITY=0;; -esac -am_make=${MAKE-make} -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5 -$as_echo_n "checking whether $am_make supports nested variables... " >&6; } -if ${am_cv_make_support_nested_variables+:} false; then : - $as_echo_n "(cached) " >&6 -else - if $as_echo 'TRUE=$(BAR$(V)) -BAR0=false -BAR1=true -V=1 -am__doit: - @$(TRUE) -.PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then - am_cv_make_support_nested_variables=yes -else - am_cv_make_support_nested_variables=no -fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5 -$as_echo "$am_cv_make_support_nested_variables" >&6; } -if test $am_cv_make_support_nested_variables = yes; then - AM_V='$(V)' - AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' -else - AM_V=$AM_DEFAULT_VERBOSITY - AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY -fi -AM_BACKSLASH='\' - - -am__api_version='1.13' - -ac_aux_dir= -for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do - if test -f "$ac_dir/install-sh"; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/install-sh -c" - break - elif test -f "$ac_dir/install.sh"; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/install.sh -c" - break - elif test -f "$ac_dir/shtool"; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/shtool install -c" - break - fi -done -if test -z "$ac_aux_dir"; then - as_fn_error $? "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5 -fi - -# These three variables are undocumented and unsupported, -# and are intended to be withdrawn in a future Autoconf release. -# They can cause serious problems if a builder's source tree is in a directory -# whose full name contains unusual characters. -ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. -ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. -ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. - - -# Find a good install program. We prefer a C program (faster), -# so one script is as good as another. But avoid the broken or -# incompatible versions: -# SysV /etc/install, /usr/sbin/install -# SunOS /usr/etc/install -# IRIX /sbin/install -# AIX /bin/install -# AmigaOS /C/install, which installs bootblocks on floppy discs -# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag -# AFS /usr/afsws/bin/install, which mishandles nonexistent args -# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" -# OS/2's system install, which has a completely different semantic -# ./install, which can be erroneously created by make from ./install.sh. -# Reject install programs that cannot install multiple files. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 -$as_echo_n "checking for a BSD-compatible install... " >&6; } -if test -z "$INSTALL"; then -if ${ac_cv_path_install+:} false; then : - $as_echo_n "(cached) " >&6 -else - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - # Account for people who put trailing slashes in PATH elements. -case $as_dir/ in @%:@(( - ./ | .// | /[cC]/* | \ - /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ - ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \ - /usr/ucb/* ) ;; - *) - # OSF1 and SCO ODT 3.0 have their own names for install. - # Don't use installbsd from OSF since it installs stuff as root - # by default. - for ac_prog in ginstall scoinst install; do - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then - if test $ac_prog = install && - grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then - # AIX install. It has an incompatible calling convention. - : - elif test $ac_prog = install && - grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then - # program-specific install script used by HP pwplus--don't use. - : - else - rm -rf conftest.one conftest.two conftest.dir - echo one > conftest.one - echo two > conftest.two - mkdir conftest.dir - if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" && - test -s conftest.one && test -s conftest.two && - test -s conftest.dir/conftest.one && - test -s conftest.dir/conftest.two - then - ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" - break 3 - fi - fi - fi - done - done - ;; -esac - - done -IFS=$as_save_IFS - -rm -rf conftest.one conftest.two conftest.dir - -fi - if test "${ac_cv_path_install+set}" = set; then - INSTALL=$ac_cv_path_install - else - # As a last resort, use the slow shell script. Don't cache a - # value for INSTALL within a source directory, because that will - # break other packages using the cache if that directory is - # removed, or if the value is a relative name. - INSTALL=$ac_install_sh - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5 -$as_echo "$INSTALL" >&6; } - -# Use test -z because SunOS4 sh mishandles braces in ${var-val}. -# It thinks the first close brace ends the variable substitution. -test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' - -test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' - -test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5 -$as_echo_n "checking whether build environment is sane... " >&6; } -# Reject unsafe characters in $srcdir or the absolute working directory -# name. Accept space and tab only in the latter. -am_lf=' -' -case `pwd` in - *[\\\"\#\$\&\'\`$am_lf]*) - as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5;; -esac -case $srcdir in - *[\\\"\#\$\&\'\`$am_lf\ \ ]*) - as_fn_error $? "unsafe srcdir value: '$srcdir'" "$LINENO" 5;; -esac - -# Do 'set' in a subshell so we don't clobber the current shell's -# arguments. Must try -L first in case configure is actually a -# symlink; some systems play weird games with the mod time of symlinks -# (eg FreeBSD returns the mod time of the symlink's containing -# directory). -if ( - am_has_slept=no - for am_try in 1 2; do - echo "timestamp, slept: $am_has_slept" > conftest.file - set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` - if test "$*" = "X"; then - # -L didn't work. - set X `ls -t "$srcdir/configure" conftest.file` - fi - if test "$*" != "X $srcdir/configure conftest.file" \ - && test "$*" != "X conftest.file $srcdir/configure"; then - - # If neither matched, then we have a broken ls. This can happen - # if, for instance, CONFIG_SHELL is bash and it inherits a - # broken ls alias from the environment. This has actually - # happened. Such a system could not be considered "sane". - as_fn_error $? "ls -t appears to fail. Make sure there is not a broken - alias in your environment" "$LINENO" 5 - fi - if test "$2" = conftest.file || test $am_try -eq 2; then - break - fi - # Just in case. - sleep 1 - am_has_slept=yes - done - test "$2" = conftest.file - ) -then - # Ok. - : -else - as_fn_error $? "newly created file is older than distributed files! -Check your system clock" "$LINENO" 5 -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -# If we didn't sleep, we still need to ensure time stamps of config.status and -# generated files are strictly newer. -am_sleep_pid= -if grep 'slept: no' conftest.file >/dev/null 2>&1; then - ( sleep 1 ) & - am_sleep_pid=$! -fi - -rm -f conftest.file - -test "$program_prefix" != NONE && - program_transform_name="s&^&$program_prefix&;$program_transform_name" -# Use a double $ so make ignores it. -test "$program_suffix" != NONE && - program_transform_name="s&\$&$program_suffix&;$program_transform_name" -# Double any \ or $. -# By default was `s,x,x', remove it if useless. -ac_script='s/[\\$]/&&/g;s/;s,x,x,$//' -program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"` - -# expand $ac_aux_dir to an absolute path -am_aux_dir=`cd $ac_aux_dir && pwd` - -if test x"${MISSING+set}" != xset; then - case $am_aux_dir in - *\ * | *\ *) - MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; - *) - MISSING="\${SHELL} $am_aux_dir/missing" ;; - esac -fi -# Use eval to expand $SHELL -if eval "$MISSING --is-lightweight"; then - am_missing_run="$MISSING " -else - am_missing_run= - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: 'missing' script is too old or missing" >&5 -$as_echo "$as_me: WARNING: 'missing' script is too old or missing" >&2;} -fi - -if test x"${install_sh}" != xset; then - case $am_aux_dir in - *\ * | *\ *) - install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; - *) - install_sh="\${SHELL} $am_aux_dir/install-sh" - esac -fi - -# Installed binaries are usually stripped using 'strip' when the user -# run "make install-strip". However 'strip' might not be the right -# tool to use in cross-compilation environments, therefore Automake -# will honor the 'STRIP' environment variable to overrule this program. -if test "$cross_compiling" != no; then - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. -set dummy ${ac_tool_prefix}strip; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_STRIP+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$STRIP"; then - ac_cv_prog_STRIP="$STRIP" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_STRIP="${ac_tool_prefix}strip" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -STRIP=$ac_cv_prog_STRIP -if test -n "$STRIP"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 -$as_echo "$STRIP" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_STRIP"; then - ac_ct_STRIP=$STRIP - # Extract the first word of "strip", so it can be a program name with args. -set dummy strip; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_STRIP+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_STRIP"; then - ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_STRIP="strip" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP -if test -n "$ac_ct_STRIP"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 -$as_echo "$ac_ct_STRIP" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_STRIP" = x; then - STRIP=":" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - STRIP=$ac_ct_STRIP - fi -else - STRIP="$ac_cv_prog_STRIP" -fi - -fi -INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5 -$as_echo_n "checking for a thread-safe mkdir -p... " >&6; } -if test -z "$MKDIR_P"; then - if ${ac_cv_path_mkdir+:} false; then : - $as_echo_n "(cached) " >&6 -else - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_prog in mkdir gmkdir; do - for ac_exec_ext in '' $ac_executable_extensions; do - as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext" || continue - case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #( - 'mkdir (GNU coreutils) '* | \ - 'mkdir (coreutils) '* | \ - 'mkdir (fileutils) '4.1*) - ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext - break 3;; - esac - done - done - done -IFS=$as_save_IFS - -fi - - test -d ./--version && rmdir ./--version - if test "${ac_cv_path_mkdir+set}" = set; then - MKDIR_P="$ac_cv_path_mkdir -p" - else - # As a last resort, use the slow shell script. Don't cache a - # value for MKDIR_P within a source directory, because that will - # break other packages using the cache if that directory is - # removed, or if the value is a relative name. - MKDIR_P="$ac_install_sh -d" - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5 -$as_echo "$MKDIR_P" >&6; } - -for ac_prog in gawk mawk nawk awk -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_AWK+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$AWK"; then - ac_cv_prog_AWK="$AWK" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_AWK="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -AWK=$ac_cv_prog_AWK -if test -n "$AWK"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5 -$as_echo "$AWK" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$AWK" && break -done - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 -$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } -set x ${MAKE-make} -ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` -if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat >conftest.make <<\_ACEOF -SHELL = /bin/sh -all: - @echo '@@@%%%=$(MAKE)=@@@%%%' -_ACEOF -# GNU make sometimes prints "make[1]: Entering ...", which would confuse us. -case `${MAKE-make} -f conftest.make 2>/dev/null` in - *@@@%%%=?*=@@@%%%*) - eval ac_cv_prog_make_${ac_make}_set=yes;; - *) - eval ac_cv_prog_make_${ac_make}_set=no;; -esac -rm -f conftest.make -fi -if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - SET_MAKE= -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - SET_MAKE="MAKE=${MAKE-make}" -fi - -rm -rf .tst 2>/dev/null -mkdir .tst 2>/dev/null -if test -d .tst; then - am__leading_dot=. -else - am__leading_dot=_ -fi -rmdir .tst 2>/dev/null - -if test "`cd $srcdir && pwd`" != "`pwd`"; then - # Use -I$(srcdir) only when $(srcdir) != ., so that make's output - # is not polluted with repeated "-I." - am__isrc=' -I$(srcdir)' - # test to see if srcdir already configured - if test -f $srcdir/config.status; then - as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5 - fi -fi - -# test whether we have cygpath -if test -z "$CYGPATH_W"; then - if (cygpath --version) >/dev/null 2>/dev/null; then - CYGPATH_W='cygpath -w' - else - CYGPATH_W=echo - fi -fi - - -# Define the identity of the package. - PACKAGE='guvcview' - VERSION='1.7.3' - - -cat >>confdefs.h <<_ACEOF -@%:@define PACKAGE "$PACKAGE" -_ACEOF - - -cat >>confdefs.h <<_ACEOF -@%:@define VERSION "$VERSION" -_ACEOF - -# Some tools Automake needs. - -ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"} - - -AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"} - - -AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"} - - -AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} - - -MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} - -# For better backward compatibility. To be removed once Automake 1.9.x -# dies out for good. For more background, see: -# -# -mkdir_p='$(MKDIR_P)' - -# We need awk for the "check" target. The system "awk" is bad on -# some platforms. -# Always define AMTAR for backward compatibility. Yes, it's still used -# in the wild :-( We should find a proper way to deprecate it ... -AMTAR='$${TAR-tar}' - - -# We'll loop over all known methods to create a tar archive until one works. -_am_tools='gnutar pax cpio none' - -am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -' - - - - - - - -ac_config_headers="$ac_config_headers config.h" - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable maintainer-specific portions of Makefiles" >&5 -$as_echo_n "checking whether to enable maintainer-specific portions of Makefiles... " >&6; } - @%:@ Check whether --enable-maintainer-mode was given. -if test "${enable_maintainer_mode+set}" = set; then : - enableval=$enable_maintainer_mode; USE_MAINTAINER_MODE=$enableval -else - USE_MAINTAINER_MODE=no -fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_MAINTAINER_MODE" >&5 -$as_echo "$USE_MAINTAINER_MODE" >&6; } - if test $USE_MAINTAINER_MODE = yes; then - MAINTAINER_MODE_TRUE= - MAINTAINER_MODE_FALSE='#' -else - MAINTAINER_MODE_TRUE='#' - MAINTAINER_MODE_FALSE= -fi - - MAINT=$MAINTAINER_MODE_TRUE - - - -# autoconf 2.5x defaults to no cache file; we need the cache file's information -# for building the config page. But start with it empty to avoid confusion by -# people who don't do a "make distclean" after applying patches. -cache_file=config.cache -rm -f config.cache; touch config.cache - - - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu -if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. -set dummy ${ac_tool_prefix}gcc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_CC="${ac_tool_prefix}gcc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_CC"; then - ac_ct_CC=$CC - # Extract the first word of "gcc", so it can be a program name with args. -set dummy gcc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_CC"; then - ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_CC="gcc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_CC=$ac_cv_prog_ac_ct_CC -if test -n "$ac_ct_CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 -$as_echo "$ac_ct_CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_CC" = x; then - CC="" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - CC=$ac_ct_CC - fi -else - CC="$ac_cv_prog_CC" -fi - -if test -z "$CC"; then - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. -set dummy ${ac_tool_prefix}cc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_CC="${ac_tool_prefix}cc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - fi -fi -if test -z "$CC"; then - # Extract the first word of "cc", so it can be a program name with args. -set dummy cc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else - ac_prog_rejected=no -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then - ac_prog_rejected=yes - continue - fi - ac_cv_prog_CC="cc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -if test $ac_prog_rejected = yes; then - # We found a bogon in the path, so make sure we never use it. - set dummy $ac_cv_prog_CC - shift - if test $@%:@ != 0; then - # We chose a different compiler from the bogus one. - # However, it has the same basename, so the bogon will be chosen - # first if we set CC to just the basename; use the full file name. - shift - ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" - fi -fi -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$CC"; then - if test -n "$ac_tool_prefix"; then - for ac_prog in cl.exe - do - # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. -set dummy $ac_tool_prefix$ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_CC="$ac_tool_prefix$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$CC" && break - done -fi -if test -z "$CC"; then - ac_ct_CC=$CC - for ac_prog in cl.exe -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_CC"; then - ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_CC="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_CC=$ac_cv_prog_ac_ct_CC -if test -n "$ac_ct_CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 -$as_echo "$ac_ct_CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$ac_ct_CC" && break -done - - if test "x$ac_ct_CC" = x; then - CC="" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - CC=$ac_ct_CC - fi -fi - -fi - - -test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "no acceptable C compiler found in \$PATH -See \`config.log' for more details" "$LINENO" 5; } - -# Provide some information about the compiler. -$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 -set X $ac_compile -ac_compiler=$2 -for ac_option in --version -v -V -qversion; do - { { ac_try="$ac_compiler $ac_option >&5" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_compiler $ac_option >&5") 2>conftest.err - ac_status=$? - if test -s conftest.err; then - sed '10a\ -... rest of stderr output deleted ... - 10q' conftest.err >conftest.er1 - cat conftest.er1 >&5 - fi - rm -f conftest.er1 conftest.err - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } -done - -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -ac_clean_files_save=$ac_clean_files -ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out" -# Try to create an executable without -o first, disregard a.out. -# It will help us diagnose broken compilers, and finding out an intuition -# of exeext. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5 -$as_echo_n "checking whether the C compiler works... " >&6; } -ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` - -# The possible output files: -ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" - -ac_rmfiles= -for ac_file in $ac_files -do - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; - * ) ac_rmfiles="$ac_rmfiles $ac_file";; - esac -done -rm -f $ac_rmfiles - -if { { ac_try="$ac_link_default" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_link_default") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then : - # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. -# So ignore a value of `no', otherwise this would lead to `EXEEXT = no' -# in a Makefile. We should not override ac_cv_exeext if it was cached, -# so that the user can short-circuit this test for compilers unknown to -# Autoconf. -for ac_file in $ac_files '' -do - test -f "$ac_file" || continue - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) - ;; - [ab].out ) - # We found the default executable, but exeext='' is most - # certainly right. - break;; - *.* ) - if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; - then :; else - ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` - fi - # We set ac_cv_exeext here because the later test for it is not - # safe: cross compilers may not add the suffix if given an `-o' - # argument, so we may need to know it at that point already. - # Even if this section looks crufty: it has the advantage of - # actually working. - break;; - * ) - break;; - esac -done -test "$ac_cv_exeext" = no && ac_cv_exeext= - -else - ac_file='' -fi -if test -z "$ac_file"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -$as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error 77 "C compiler cannot create executables -See \`config.log' for more details" "$LINENO" 5; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5 -$as_echo_n "checking for C compiler default output file name... " >&6; } -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 -$as_echo "$ac_file" >&6; } -ac_exeext=$ac_cv_exeext - -rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out -ac_clean_files=$ac_clean_files_save -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 -$as_echo_n "checking for suffix of executables... " >&6; } -if { { ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_link") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then : - # If both `conftest.exe' and `conftest' are `present' (well, observable) -# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will -# work properly (i.e., refer to `conftest.exe'), while it won't with -# `rm'. -for ac_file in conftest.exe conftest conftest.*; do - test -f "$ac_file" || continue - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; - *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` - break;; - * ) break;; - esac -done -else - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "cannot compute suffix of executables: cannot compile and link -See \`config.log' for more details" "$LINENO" 5; } -fi -rm -f conftest conftest$ac_cv_exeext -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 -$as_echo "$ac_cv_exeext" >&6; } - -rm -f conftest.$ac_ext -EXEEXT=$ac_cv_exeext -ac_exeext=$EXEEXT -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -@%:@include -int -main () -{ -FILE *f = fopen ("conftest.out", "w"); - return ferror (f) || fclose (f) != 0; - - ; - return 0; -} -_ACEOF -ac_clean_files="$ac_clean_files conftest.out" -# Check that the compiler produces executables we can run. If not, either -# the compiler is broken, or we cross compile. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 -$as_echo_n "checking whether we are cross compiling... " >&6; } -if test "$cross_compiling" != yes; then - { { ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_link") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } - if { ac_try='./conftest$ac_cv_exeext' - { { case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; }; then - cross_compiling=no - else - if test "$cross_compiling" = maybe; then - cross_compiling=yes - else - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "cannot run C compiled programs. -If you meant to cross compile, use \`--host'. -See \`config.log' for more details" "$LINENO" 5; } - fi - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 -$as_echo "$cross_compiling" >&6; } - -rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out -ac_clean_files=$ac_clean_files_save -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 -$as_echo_n "checking for suffix of object files... " >&6; } -if ${ac_cv_objext+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.o conftest.obj -if { { ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_compile") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then : - for ac_file in conftest.o conftest.obj conftest.*; do - test -f "$ac_file" || continue; - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; - *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` - break;; - esac -done -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "cannot compute suffix of object files: cannot compile -See \`config.log' for more details" "$LINENO" 5; } -fi -rm -f conftest.$ac_cv_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 -$as_echo "$ac_cv_objext" >&6; } -OBJEXT=$ac_cv_objext -ac_objext=$OBJEXT -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 -$as_echo_n "checking whether we are using the GNU C compiler... " >&6; } -if ${ac_cv_c_compiler_gnu+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ -#ifndef __GNUC__ - choke me -#endif - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_compiler_gnu=yes -else - ac_compiler_gnu=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -ac_cv_c_compiler_gnu=$ac_compiler_gnu - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 -$as_echo "$ac_cv_c_compiler_gnu" >&6; } -if test $ac_compiler_gnu = yes; then - GCC=yes -else - GCC= -fi -ac_test_CFLAGS=${CFLAGS+set} -ac_save_CFLAGS=$CFLAGS -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 -$as_echo_n "checking whether $CC accepts -g... " >&6; } -if ${ac_cv_prog_cc_g+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_save_c_werror_flag=$ac_c_werror_flag - ac_c_werror_flag=yes - ac_cv_prog_cc_g=no - CFLAGS="-g" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_prog_cc_g=yes -else - CFLAGS="" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - -else - ac_c_werror_flag=$ac_save_c_werror_flag - CFLAGS="-g" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_prog_cc_g=yes -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - ac_c_werror_flag=$ac_save_c_werror_flag -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 -$as_echo "$ac_cv_prog_cc_g" >&6; } -if test "$ac_test_CFLAGS" = set; then - CFLAGS=$ac_save_CFLAGS -elif test $ac_cv_prog_cc_g = yes; then - if test "$GCC" = yes; then - CFLAGS="-g -O2" - else - CFLAGS="-g" - fi -else - if test "$GCC" = yes; then - CFLAGS="-O2" - else - CFLAGS= - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 -$as_echo_n "checking for $CC option to accept ISO C89... " >&6; } -if ${ac_cv_prog_cc_c89+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_cv_prog_cc_c89=no -ac_save_CC=$CC -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include -struct stat; -/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ -struct buf { int x; }; -FILE * (*rcsopen) (struct buf *, struct stat *, int); -static char *e (p, i) - char **p; - int i; -{ - return p[i]; -} -static char *f (char * (*g) (char **, int), char **p, ...) -{ - char *s; - va_list v; - va_start (v,p); - s = g (p, va_arg (v,int)); - va_end (v); - return s; -} - -/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has - function prototypes and stuff, but not '\xHH' hex character constants. - These don't provoke an error unfortunately, instead are silently treated - as 'x'. The following induces an error, until -std is added to get - proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an - array size at least. It's necessary to write '\x00'==0 to get something - that's true only with -std. */ -int osf4_cc_array ['\x00' == 0 ? 1 : -1]; - -/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters - inside strings and character constants. */ -#define FOO(x) 'x' -int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; - -int test (int i, double x); -struct s1 {int (*f) (int a);}; -struct s2 {int (*f) (double a);}; -int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); -int argc; -char **argv; -int -main () -{ -return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; - ; - return 0; -} -_ACEOF -for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ - -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" -do - CC="$ac_save_CC $ac_arg" - if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_prog_cc_c89=$ac_arg -fi -rm -f core conftest.err conftest.$ac_objext - test "x$ac_cv_prog_cc_c89" != "xno" && break -done -rm -f conftest.$ac_ext -CC=$ac_save_CC - -fi -# AC_CACHE_VAL -case "x$ac_cv_prog_cc_c89" in - x) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 -$as_echo "none needed" >&6; } ;; - xno) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 -$as_echo "unsupported" >&6; } ;; - *) - CC="$CC $ac_cv_prog_cc_c89" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 -$as_echo "$ac_cv_prog_cc_c89" >&6; } ;; -esac -if test "x$ac_cv_prog_cc_c89" != xno; then : - -fi - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu -DEPDIR="${am__leading_dot}deps" - -ac_config_commands="$ac_config_commands depfiles" - - -am_make=${MAKE-make} -cat > confinc << 'END' -am__doit: - @echo this is the am__doit target -.PHONY: am__doit -END -# If we don't find an include directive, just comment out the code. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for style of include used by $am_make" >&5 -$as_echo_n "checking for style of include used by $am_make... " >&6; } -am__include="#" -am__quote= -_am_result=none -# First try GNU make style include. -echo "include confinc" > confmf -# Ignore all kinds of additional output from 'make'. -case `$am_make -s -f confmf 2> /dev/null` in #( -*the\ am__doit\ target*) - am__include=include - am__quote= - _am_result=GNU - ;; -esac -# Now try BSD make style include. -if test "$am__include" = "#"; then - echo '.include "confinc"' > confmf - case `$am_make -s -f confmf 2> /dev/null` in #( - *the\ am__doit\ target*) - am__include=.include - am__quote="\"" - _am_result=BSD - ;; - esac -fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $_am_result" >&5 -$as_echo "$_am_result" >&6; } -rm -f confinc confmf - -@%:@ Check whether --enable-dependency-tracking was given. -if test "${enable_dependency_tracking+set}" = set; then : - enableval=$enable_dependency_tracking; -fi - -if test "x$enable_dependency_tracking" != xno; then - am_depcomp="$ac_aux_dir/depcomp" - AMDEPBACKSLASH='\' - am__nodep='_no' -fi - if test "x$enable_dependency_tracking" != xno; then - AMDEP_TRUE= - AMDEP_FALSE='#' -else - AMDEP_TRUE='#' - AMDEP_FALSE= -fi - - - -depcc="$CC" am_compiler_list= - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 -$as_echo_n "checking dependency style of $depcc... " >&6; } -if ${am_cv_CC_dependencies_compiler_type+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then - # We make a subdir and do the tests there. Otherwise we can end up - # making bogus files that we don't know about and never remove. For - # instance it was reported that on HP-UX the gcc test will end up - # making a dummy file named 'D' -- because '-MD' means "put the output - # in D". - rm -rf conftest.dir - mkdir conftest.dir - # Copy depcomp to subdir because otherwise we won't find it if we're - # using a relative directory. - cp "$am_depcomp" conftest.dir - cd conftest.dir - # We will build objects and dependencies in a subdirectory because - # it helps to detect inapplicable dependency modes. For instance - # both Tru64's cc and ICC support -MD to output dependencies as a - # side effect of compilation, but ICC will put the dependencies in - # the current directory while Tru64 will put them in the object - # directory. - mkdir sub - - am_cv_CC_dependencies_compiler_type=none - if test "$am_compiler_list" = ""; then - am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` - fi - am__universal=false - case " $depcc " in #( - *\ -arch\ *\ -arch\ *) am__universal=true ;; - esac - - for depmode in $am_compiler_list; do - # Setup a source with many dependencies, because some compilers - # like to wrap large dependency lists on column 80 (with \), and - # we should not choose a depcomp mode which is confused by this. - # - # We need to recreate these files for each test, as the compiler may - # overwrite some of them when testing with obscure command lines. - # This happens at least with the AIX C compiler. - : > sub/conftest.c - for i in 1 2 3 4 5 6; do - echo '#include "conftst'$i'.h"' >> sub/conftest.c - # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with - # Solaris 10 /bin/sh. - echo '/* dummy */' > sub/conftst$i.h - done - echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf - - # We check with '-c' and '-o' for the sake of the "dashmstdout" - # mode. It turns out that the SunPro C++ compiler does not properly - # handle '-M -o', and we need to detect this. Also, some Intel - # versions had trouble with output in subdirs. - am__obj=sub/conftest.${OBJEXT-o} - am__minus_obj="-o $am__obj" - case $depmode in - gcc) - # This depmode causes a compiler race in universal mode. - test "$am__universal" = false || continue - ;; - nosideeffect) - # After this tag, mechanisms are not by side-effect, so they'll - # only be used when explicitly requested. - if test "x$enable_dependency_tracking" = xyes; then - continue - else - break - fi - ;; - msvc7 | msvc7msys | msvisualcpp | msvcmsys) - # This compiler won't grok '-c -o', but also, the minuso test has - # not run yet. These depmodes are late enough in the game, and - # so weak that their functioning should not be impacted. - am__obj=conftest.${OBJEXT-o} - am__minus_obj= - ;; - none) break ;; - esac - if depmode=$depmode \ - source=sub/conftest.c object=$am__obj \ - depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ - $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ - >/dev/null 2>conftest.err && - grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && - grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && - grep $am__obj sub/conftest.Po > /dev/null 2>&1 && - ${MAKE-make} -s -f confmf > /dev/null 2>&1; then - # icc doesn't choke on unknown options, it will just issue warnings - # or remarks (even with -Werror). So we grep stderr for any message - # that says an option was ignored or not supported. - # When given -MP, icc 7.0 and 7.1 complain thusly: - # icc: Command line warning: ignoring option '-M'; no argument required - # The diagnosis changed in icc 8.0: - # icc: Command line remark: option '-MP' not supported - if (grep 'ignoring option' conftest.err || - grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else - am_cv_CC_dependencies_compiler_type=$depmode - break - fi - fi - done - - cd .. - rm -rf conftest.dir -else - am_cv_CC_dependencies_compiler_type=none -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5 -$as_echo "$am_cv_CC_dependencies_compiler_type" >&6; } -CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type - - if - test "x$enable_dependency_tracking" != xno \ - && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then - am__fastdepCC_TRUE= - am__fastdepCC_FALSE='#' -else - am__fastdepCC_TRUE='#' - am__fastdepCC_FALSE= -fi - - -if test "x$CC" != xcc; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC and cc understand -c and -o together" >&5 -$as_echo_n "checking whether $CC and cc understand -c and -o together... " >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether cc understands -c and -o together" >&5 -$as_echo_n "checking whether cc understands -c and -o together... " >&6; } -fi -set dummy $CC; ac_cc=`$as_echo "$2" | - sed 's/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/'` -if eval \${ac_cv_prog_cc_${ac_cc}_c_o+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -# Make sure it works both with $CC and with simple cc. -# We do the test twice because some compilers refuse to overwrite an -# existing .o file with -o, though they will create one. -ac_try='$CC -c conftest.$ac_ext -o conftest2.$ac_objext >&5' -rm -f conftest2.* -if { { case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && - test -f conftest2.$ac_objext && { { case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; -then - eval ac_cv_prog_cc_${ac_cc}_c_o=yes - if test "x$CC" != xcc; then - # Test first that cc exists at all. - if { ac_try='cc -c conftest.$ac_ext >&5' - { { case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; }; then - ac_try='cc -c conftest.$ac_ext -o conftest2.$ac_objext >&5' - rm -f conftest2.* - if { { case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && - test -f conftest2.$ac_objext && { { case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; - then - # cc works too. - : - else - # cc exists but doesn't like -o. - eval ac_cv_prog_cc_${ac_cc}_c_o=no - fi - fi - fi -else - eval ac_cv_prog_cc_${ac_cc}_c_o=no -fi -rm -f core conftest* - -fi -if eval test \$ac_cv_prog_cc_${ac_cc}_c_o = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - -$as_echo "@%:@define NO_MINUS_C_MINUS_O 1" >>confdefs.h - -fi - -# FIXME: we rely on the cache variable name because -# there is no other way. -set dummy $CC -am_cc=`echo $2 | sed 's/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/'` -eval am_t=\$ac_cv_prog_cc_${am_cc}_c_o -if test "$am_t" != yes; then - # Losing compiler, so override with the script. - # FIXME: It is wrong to rewrite CC. - # But if we don't then we get into trouble of one sort or another. - # A longer-term fix would be to have automake use am__CC in this case, - # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" - CC="$am_aux_dir/compile $CC" -fi - - - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 -$as_echo_n "checking how to run the C preprocessor... " >&6; } -# On Suns, sometimes $CPP names a directory. -if test -n "$CPP" && test -d "$CPP"; then - CPP= -fi -if test -z "$CPP"; then - if ${ac_cv_prog_CPP+:} false; then : - $as_echo_n "(cached) " >&6 -else - # Double quotes because CPP needs to be expanded - for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" - do - ac_preproc_ok=false -for ac_c_preproc_warn_flag in '' yes -do - # Use a header file that comes with gcc, so configuring glibc - # with a fresh cross-compiler works. - # Prefer to if __STDC__ is defined, since - # exists even on freestanding compilers. - # On the NeXT, cc -E runs the code through the compiler's parser, - # not just through cpp. "Syntax error" is here to catch this case. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -@%:@ifdef __STDC__ -@%:@ include -@%:@else -@%:@ include -@%:@endif - Syntax error -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - -else - # Broken: fails on valid input. -continue -fi -rm -f conftest.err conftest.i conftest.$ac_ext - - # OK, works on sane cases. Now check whether nonexistent headers - # can be detected and how. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -@%:@include -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - # Broken: success on invalid input. -continue -else - # Passes both tests. -ac_preproc_ok=: -break -fi -rm -f conftest.err conftest.i conftest.$ac_ext - -done -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -f conftest.i conftest.err conftest.$ac_ext -if $ac_preproc_ok; then : - break -fi - - done - ac_cv_prog_CPP=$CPP - -fi - CPP=$ac_cv_prog_CPP -else - ac_cv_prog_CPP=$CPP -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 -$as_echo "$CPP" >&6; } -ac_preproc_ok=false -for ac_c_preproc_warn_flag in '' yes -do - # Use a header file that comes with gcc, so configuring glibc - # with a fresh cross-compiler works. - # Prefer to if __STDC__ is defined, since - # exists even on freestanding compilers. - # On the NeXT, cc -E runs the code through the compiler's parser, - # not just through cpp. "Syntax error" is here to catch this case. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -@%:@ifdef __STDC__ -@%:@ include -@%:@else -@%:@ include -@%:@endif - Syntax error -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - -else - # Broken: fails on valid input. -continue -fi -rm -f conftest.err conftest.i conftest.$ac_ext - - # OK, works on sane cases. Now check whether nonexistent headers - # can be detected and how. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -@%:@include -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - # Broken: success on invalid input. -continue -else - # Passes both tests. -ac_preproc_ok=: -break -fi -rm -f conftest.err conftest.i conftest.$ac_ext - -done -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -f conftest.i conftest.err conftest.$ac_ext -if $ac_preproc_ok; then : - -else - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "C preprocessor \"$CPP\" fails sanity check -See \`config.log' for more details" "$LINENO" 5; } -fi - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 -$as_echo_n "checking for grep that handles long lines and -e... " >&6; } -if ${ac_cv_path_GREP+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -z "$GREP"; then - ac_path_GREP_found=false - # Loop through the user's path and test for each of PROGNAME-LIST - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_prog in grep ggrep; do - for ac_exec_ext in '' $ac_executable_extensions; do - ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" - as_fn_executable_p "$ac_path_GREP" || continue -# Check for GNU ac_path_GREP and select it if it is found. - # Check for GNU $ac_path_GREP -case `"$ac_path_GREP" --version 2>&1` in -*GNU*) - ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; -*) - ac_count=0 - $as_echo_n 0123456789 >"conftest.in" - while : - do - cat "conftest.in" "conftest.in" >"conftest.tmp" - mv "conftest.tmp" "conftest.in" - cp "conftest.in" "conftest.nl" - $as_echo 'GREP' >> "conftest.nl" - "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break - diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break - as_fn_arith $ac_count + 1 && ac_count=$as_val - if test $ac_count -gt ${ac_path_GREP_max-0}; then - # Best one so far, save it but keep looking for a better one - ac_cv_path_GREP="$ac_path_GREP" - ac_path_GREP_max=$ac_count - fi - # 10*(2^10) chars as input seems more than enough - test $ac_count -gt 10 && break - done - rm -f conftest.in conftest.tmp conftest.nl conftest.out;; -esac - - $ac_path_GREP_found && break 3 - done - done - done -IFS=$as_save_IFS - if test -z "$ac_cv_path_GREP"; then - as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 - fi -else - ac_cv_path_GREP=$GREP -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 -$as_echo "$ac_cv_path_GREP" >&6; } - GREP="$ac_cv_path_GREP" - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 -$as_echo_n "checking for egrep... " >&6; } -if ${ac_cv_path_EGREP+:} false; then : - $as_echo_n "(cached) " >&6 -else - if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 - then ac_cv_path_EGREP="$GREP -E" - else - if test -z "$EGREP"; then - ac_path_EGREP_found=false - # Loop through the user's path and test for each of PROGNAME-LIST - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_prog in egrep; do - for ac_exec_ext in '' $ac_executable_extensions; do - ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" - as_fn_executable_p "$ac_path_EGREP" || continue -# Check for GNU ac_path_EGREP and select it if it is found. - # Check for GNU $ac_path_EGREP -case `"$ac_path_EGREP" --version 2>&1` in -*GNU*) - ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; -*) - ac_count=0 - $as_echo_n 0123456789 >"conftest.in" - while : - do - cat "conftest.in" "conftest.in" >"conftest.tmp" - mv "conftest.tmp" "conftest.in" - cp "conftest.in" "conftest.nl" - $as_echo 'EGREP' >> "conftest.nl" - "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break - diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break - as_fn_arith $ac_count + 1 && ac_count=$as_val - if test $ac_count -gt ${ac_path_EGREP_max-0}; then - # Best one so far, save it but keep looking for a better one - ac_cv_path_EGREP="$ac_path_EGREP" - ac_path_EGREP_max=$ac_count - fi - # 10*(2^10) chars as input seems more than enough - test $ac_count -gt 10 && break - done - rm -f conftest.in conftest.tmp conftest.nl conftest.out;; -esac - - $ac_path_EGREP_found && break 3 - done - done - done -IFS=$as_save_IFS - if test -z "$ac_cv_path_EGREP"; then - as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 - fi -else - ac_cv_path_EGREP=$EGREP -fi - - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 -$as_echo "$ac_cv_path_EGREP" >&6; } - EGREP="$ac_cv_path_EGREP" - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 -$as_echo_n "checking for ANSI C header files... " >&6; } -if ${ac_cv_header_stdc+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include -#include -#include - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_header_stdc=yes -else - ac_cv_header_stdc=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -if test $ac_cv_header_stdc = yes; then - # SunOS 4.x string.h does not declare mem*, contrary to ANSI. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "memchr" >/dev/null 2>&1; then : - -else - ac_cv_header_stdc=no -fi -rm -f conftest* - -fi - -if test $ac_cv_header_stdc = yes; then - # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "free" >/dev/null 2>&1; then : - -else - ac_cv_header_stdc=no -fi -rm -f conftest* - -fi - -if test $ac_cv_header_stdc = yes; then - # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. - if test "$cross_compiling" = yes; then : - : -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include -#if ((' ' & 0x0FF) == 0x020) -# define ISLOWER(c) ('a' <= (c) && (c) <= 'z') -# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) -#else -# define ISLOWER(c) \ - (('a' <= (c) && (c) <= 'i') \ - || ('j' <= (c) && (c) <= 'r') \ - || ('s' <= (c) && (c) <= 'z')) -# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) -#endif - -#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) -int -main () -{ - int i; - for (i = 0; i < 256; i++) - if (XOR (islower (i), ISLOWER (i)) - || toupper (i) != TOUPPER (i)) - return 2; - return 0; -} -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - -else - ac_cv_header_stdc=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - -fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 -$as_echo "$ac_cv_header_stdc" >&6; } -if test $ac_cv_header_stdc = yes; then - -$as_echo "@%:@define STDC_HEADERS 1" >>confdefs.h - -fi - - -# Make sure we can run config.sub. -$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || - as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5 - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 -$as_echo_n "checking build system type... " >&6; } -if ${ac_cv_build+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_build_alias=$build_alias -test "x$ac_build_alias" = x && - ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` -test "x$ac_build_alias" = x && - as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5 -ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || - as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5 - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5 -$as_echo "$ac_cv_build" >&6; } -case $ac_cv_build in -*-*-*) ;; -*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;; -esac -build=$ac_cv_build -ac_save_IFS=$IFS; IFS='-' -set x $ac_cv_build -shift -build_cpu=$1 -build_vendor=$2 -shift; shift -# Remember, the first character of IFS is used to create $*, -# except with old shells: -build_os=$* -IFS=$ac_save_IFS -case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5 -$as_echo_n "checking host system type... " >&6; } -if ${ac_cv_host+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "x$host_alias" = x; then - ac_cv_host=$ac_cv_build -else - ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || - as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5 -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5 -$as_echo "$ac_cv_host" >&6; } -case $ac_cv_host in -*-*-*) ;; -*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;; -esac -host=$ac_cv_host -ac_save_IFS=$IFS; IFS='-' -set x $ac_cv_host -shift -host_cpu=$1 -host_vendor=$2 -shift; shift -# Remember, the first character of IFS is used to create $*, -# except with old shells: -host_os=$* -IFS=$ac_save_IFS -case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac - - - - - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - -acx_pthread_ok=no - -# We used to check for pthread.h first, but this fails if pthread.h -# requires special compiler flags (e.g. on True64 or Sequent). -# It gets checked for in the link test anyway. - -# First of all, check if the user has set any of the PTHREAD_LIBS, -# etcetera environment variables, and if threads linking works using -# them: -if test x"$PTHREAD_LIBS$PTHREAD_CFLAGS" != x; then - save_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS $PTHREAD_CFLAGS" - save_LIBS="$LIBS" - LIBS="$PTHREAD_LIBS $LIBS" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread_join in LIBS=$PTHREAD_LIBS with CFLAGS=$PTHREAD_CFLAGS" >&5 -$as_echo_n "checking for pthread_join in LIBS=$PTHREAD_LIBS with CFLAGS=$PTHREAD_CFLAGS... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char pthread_join (); -int -main () -{ -return pthread_join (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - acx_pthread_ok=yes -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $acx_pthread_ok" >&5 -$as_echo "$acx_pthread_ok" >&6; } - if test x"$acx_pthread_ok" = xno; then - PTHREAD_LIBS="" - PTHREAD_CFLAGS="" - fi - LIBS="$save_LIBS" - CFLAGS="$save_CFLAGS" -fi - -# We must check for the threads library under a number of different -# names; the ordering is very important because some systems -# (e.g. DEC) have both -lpthread and -lpthreads, where one of the -# libraries is broken (non-POSIX). - -# Create a list of thread flags to try. Items starting with a "-" are -# C compiler flags, and other items are library names, except for "none" -# which indicates that we try without any flags at all, and "pthread-config" -# which is a program returning the flags for the Pth emulation library. - -acx_pthread_flags="pthreads none -Kthread -kthread lthread -pthread -pthreads -mthreads pthread --thread-safe -mt pthread-config" - -# The ordering *is* (sometimes) important. Some notes on the -# individual items follow: - -# pthreads: AIX (must check this before -lpthread) -# none: in case threads are in libc; should be tried before -Kthread and -# other compiler flags to prevent continual compiler warnings -# -Kthread: Sequent (threads in libc, but -Kthread needed for pthread.h) -# -kthread: FreeBSD kernel threads (preferred to -pthread since SMP-able) -# lthread: LinuxThreads port on FreeBSD (also preferred to -pthread) -# -pthread: Linux/gcc (kernel threads), BSD/gcc (userland threads) -# -pthreads: Solaris/gcc -# -mthreads: Mingw32/gcc, Lynx/gcc -# -mt: Sun Workshop C (may only link SunOS threads [-lthread], but it -# doesn't hurt to check since this sometimes defines pthreads too; -# also defines -D_REENTRANT) -# ... -mt is also the pthreads flag for HP/aCC -# pthread: Linux, etcetera -# --thread-safe: KAI C++ -# pthread-config: use pthread-config program (for GNU Pth library) - -case "${host_cpu}-${host_os}" in - *solaris*) - - # On Solaris (at least, for some versions), libc contains stubbed - # (non-functional) versions of the pthreads routines, so link-based - # tests will erroneously succeed. (We need to link with -pthreads/-mt/ - # -lpthread.) (The stubs are missing pthread_cleanup_push, or rather - # a function called by this macro, so we could check for that, but - # who knows whether they'll stub that too in a future libc.) So, - # we'll just look for -pthreads and -lpthread first: - - acx_pthread_flags="-pthreads pthread -mt -pthread $acx_pthread_flags" - ;; -esac - -if test x"$acx_pthread_ok" = xno; then -for flag in $acx_pthread_flags; do - - case $flag in - none) - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether pthreads work without any flags" >&5 -$as_echo_n "checking whether pthreads work without any flags... " >&6; } - ;; - - -*) - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether pthreads work with $flag" >&5 -$as_echo_n "checking whether pthreads work with $flag... " >&6; } - PTHREAD_CFLAGS="$flag" - ;; - - pthread-config) - # Extract the first word of "pthread-config", so it can be a program name with args. -set dummy pthread-config; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_acx_pthread_config+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$acx_pthread_config"; then - ac_cv_prog_acx_pthread_config="$acx_pthread_config" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_acx_pthread_config="yes" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - test -z "$ac_cv_prog_acx_pthread_config" && ac_cv_prog_acx_pthread_config="no" -fi -fi -acx_pthread_config=$ac_cv_prog_acx_pthread_config -if test -n "$acx_pthread_config"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $acx_pthread_config" >&5 -$as_echo "$acx_pthread_config" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - if test x"$acx_pthread_config" = xno; then continue; fi - PTHREAD_CFLAGS="`pthread-config --cflags`" - PTHREAD_LIBS="`pthread-config --ldflags` `pthread-config --libs`" - ;; - - *) - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for the pthreads library -l$flag" >&5 -$as_echo_n "checking for the pthreads library -l$flag... " >&6; } - PTHREAD_LIBS="-l$flag" - ;; - esac - - save_LIBS="$LIBS" - save_CFLAGS="$CFLAGS" - LIBS="$PTHREAD_LIBS $LIBS" - CFLAGS="$CFLAGS $PTHREAD_CFLAGS" - - # Check for various functions. We must include pthread.h, - # since some functions may be macros. (On the Sequent, we - # need a special flag -Kthread to make this header compile.) - # We check for pthread_join because it is in -lpthread on IRIX - # while pthread_create is in libc. We check for pthread_attr_init - # due to DEC craziness with -lpthreads. We check for - # pthread_cleanup_push because it is one of the few pthread - # functions on Solaris that doesn't have a non-functional libc stub. - # We try pthread_create on general principles. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main () -{ -pthread_t th; pthread_join(th, 0); - pthread_attr_init(0); pthread_cleanup_push(0, 0); - pthread_create(0,0,0,0); pthread_cleanup_pop(0); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - acx_pthread_ok=yes -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - - LIBS="$save_LIBS" - CFLAGS="$save_CFLAGS" - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $acx_pthread_ok" >&5 -$as_echo "$acx_pthread_ok" >&6; } - if test "x$acx_pthread_ok" = xyes; then - break; - fi - - PTHREAD_LIBS="" - PTHREAD_CFLAGS="" -done -fi - -# Various other checks: -if test "x$acx_pthread_ok" = xyes; then - save_LIBS="$LIBS" - LIBS="$PTHREAD_LIBS $LIBS" - save_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS $PTHREAD_CFLAGS" - - # Detect AIX lossage: JOINABLE attribute is called UNDETACHED. - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for joinable pthread attribute" >&5 -$as_echo_n "checking for joinable pthread attribute... " >&6; } - attr_name=unknown - for attr in PTHREAD_CREATE_JOINABLE PTHREAD_CREATE_UNDETACHED; do - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main () -{ -int attr=$attr; return attr; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - attr_name=$attr; break -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - done - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $attr_name" >&5 -$as_echo "$attr_name" >&6; } - if test "$attr_name" != PTHREAD_CREATE_JOINABLE; then - -cat >>confdefs.h <<_ACEOF -@%:@define PTHREAD_CREATE_JOINABLE $attr_name -_ACEOF - - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if more special flags are required for pthreads" >&5 -$as_echo_n "checking if more special flags are required for pthreads... " >&6; } - flag=no - case "${host_cpu}-${host_os}" in - *-aix* | *-freebsd* | *-darwin*) flag="-D_THREAD_SAFE";; - *solaris* | *-osf* | *-hpux*) flag="-D_REENTRANT";; - esac - { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${flag}" >&5 -$as_echo "${flag}" >&6; } - if test "x$flag" != xno; then - PTHREAD_CFLAGS="$flag $PTHREAD_CFLAGS" - fi - - LIBS="$save_LIBS" - CFLAGS="$save_CFLAGS" - - # More AIX lossage: must compile with xlc_r or cc_r - if test x"$GCC" != xyes; then - for ac_prog in xlc_r cc_r -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_PTHREAD_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$PTHREAD_CC"; then - ac_cv_prog_PTHREAD_CC="$PTHREAD_CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_PTHREAD_CC="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -PTHREAD_CC=$ac_cv_prog_PTHREAD_CC -if test -n "$PTHREAD_CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PTHREAD_CC" >&5 -$as_echo "$PTHREAD_CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$PTHREAD_CC" && break -done -test -n "$PTHREAD_CC" || PTHREAD_CC="${CC}" - - else - PTHREAD_CC=$CC - fi -else - PTHREAD_CC="$CC" -fi - - - - - -# Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND: -if test x"$acx_pthread_ok" = xyes; then - -$as_echo "@%:@define HAVE_PTHREAD 1" >>confdefs.h - - : -else - acx_pthread_ok=no - -fi -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - - - - - - - -# The comment about adding -g to $CFLAGS is unclear. Autoconf tries to add -# a -g flag; we remove it if the user's $CFLAGS was not set and debugging is -# disabled. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if you specifically want to enable debug-code -g" >&5 -$as_echo_n "checking if you specifically want to enable debug-code -g... " >&6; } -@%:@ Check whether --enable-debug was given. -if test "${enable_debug+set}" = set; then : - enableval=$enable_debug; enable_debug=yes -else - enable_debug=no -fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_debug" >&5 -$as_echo "$enable_debug" >&6; } - -if test "x$enable_debug" = "xyes" ; then - test -z "$ORIGINAL_CFLAGS" && CFLAGS=`echo ${CFLAGS} | sed -e 's/-O[1-9]\? //' -e 's/-O[1-9]\?$//'` - if test "$CC" = gcc; then - CFLAGS="$CFLAGS -g" - fi -#else -# CF_STRIP_G_OPT(CFLAGS) -fi - - - -GETTEXT_PACKAGE=guvcview - - -cat >>confdefs.h <<_ACEOF -@%:@define GETTEXT_PACKAGE "$GETTEXT_PACKAGE" -_ACEOF - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether NLS is requested" >&5 -$as_echo_n "checking whether NLS is requested... " >&6; } - @%:@ Check whether --enable-nls was given. -if test "${enable_nls+set}" = set; then : - enableval=$enable_nls; USE_NLS=$enableval -else - USE_NLS=yes -fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_NLS" >&5 -$as_echo "$USE_NLS" >&6; } - - - - -case "$am__api_version" in - 1.01234) - as_fn_error $? "Automake 1.5 or newer is required to use intltool" "$LINENO" 5 - ;; - *) - ;; -esac - -if test -n "0.40"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for intltool >= 0.40" >&5 -$as_echo_n "checking for intltool >= 0.40... " >&6; } - - INTLTOOL_REQUIRED_VERSION_AS_INT=`echo 0.40 | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'` - INTLTOOL_APPLIED_VERSION=`intltool-update --version | head -1 | cut -d" " -f3` - INTLTOOL_APPLIED_VERSION_AS_INT=`echo $INTLTOOL_APPLIED_VERSION | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'` - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_APPLIED_VERSION found" >&5 -$as_echo "$INTLTOOL_APPLIED_VERSION found" >&6; } - test "$INTLTOOL_APPLIED_VERSION_AS_INT" -ge "$INTLTOOL_REQUIRED_VERSION_AS_INT" || - as_fn_error $? "Your intltool is too old. You need intltool 0.40 or later." "$LINENO" 5 -fi - -# Extract the first word of "intltool-update", so it can be a program name with args. -set dummy intltool-update; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_INTLTOOL_UPDATE+:} false; then : - $as_echo_n "(cached) " >&6 -else - case $INTLTOOL_UPDATE in - [\\/]* | ?:[\\/]*) - ac_cv_path_INTLTOOL_UPDATE="$INTLTOOL_UPDATE" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_INTLTOOL_UPDATE="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - ;; -esac -fi -INTLTOOL_UPDATE=$ac_cv_path_INTLTOOL_UPDATE -if test -n "$INTLTOOL_UPDATE"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_UPDATE" >&5 -$as_echo "$INTLTOOL_UPDATE" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -# Extract the first word of "intltool-merge", so it can be a program name with args. -set dummy intltool-merge; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_INTLTOOL_MERGE+:} false; then : - $as_echo_n "(cached) " >&6 -else - case $INTLTOOL_MERGE in - [\\/]* | ?:[\\/]*) - ac_cv_path_INTLTOOL_MERGE="$INTLTOOL_MERGE" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_INTLTOOL_MERGE="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - ;; -esac -fi -INTLTOOL_MERGE=$ac_cv_path_INTLTOOL_MERGE -if test -n "$INTLTOOL_MERGE"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_MERGE" >&5 -$as_echo "$INTLTOOL_MERGE" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -# Extract the first word of "intltool-extract", so it can be a program name with args. -set dummy intltool-extract; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_INTLTOOL_EXTRACT+:} false; then : - $as_echo_n "(cached) " >&6 -else - case $INTLTOOL_EXTRACT in - [\\/]* | ?:[\\/]*) - ac_cv_path_INTLTOOL_EXTRACT="$INTLTOOL_EXTRACT" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_INTLTOOL_EXTRACT="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - ;; -esac -fi -INTLTOOL_EXTRACT=$ac_cv_path_INTLTOOL_EXTRACT -if test -n "$INTLTOOL_EXTRACT"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_EXTRACT" >&5 -$as_echo "$INTLTOOL_EXTRACT" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -if test -z "$INTLTOOL_UPDATE" -o -z "$INTLTOOL_MERGE" -o -z "$INTLTOOL_EXTRACT"; then - as_fn_error $? "The intltool scripts were not found. Please install intltool." "$LINENO" 5 -fi - - INTLTOOL_DESKTOP_RULE='%.desktop: %.desktop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' -INTLTOOL_DIRECTORY_RULE='%.directory: %.directory.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' - INTLTOOL_KEYS_RULE='%.keys: %.keys.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -k -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' - INTLTOOL_PROP_RULE='%.prop: %.prop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' - INTLTOOL_OAF_RULE='%.oaf: %.oaf.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -o -p $(top_srcdir)/po $< $@' - INTLTOOL_PONG_RULE='%.pong: %.pong.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' - INTLTOOL_SERVER_RULE='%.server: %.server.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -o -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' - INTLTOOL_SHEET_RULE='%.sheet: %.sheet.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' -INTLTOOL_SOUNDLIST_RULE='%.soundlist: %.soundlist.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' - INTLTOOL_UI_RULE='%.ui: %.ui.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' - INTLTOOL_XML_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' - INTLTOOL_XML_NOMERGE_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u /tmp $< $@' - INTLTOOL_XAM_RULE='%.xam: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' - INTLTOOL_KBD_RULE='%.kbd: %.kbd.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -m -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' - INTLTOOL_CAVES_RULE='%.caves: %.caves.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' - INTLTOOL_SCHEMAS_RULE='%.schemas: %.schemas.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -s -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' - INTLTOOL_THEME_RULE='%.theme: %.theme.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' - INTLTOOL_SERVICE_RULE='%.service: %.service.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' - INTLTOOL_POLICY_RULE='%.policy: %.policy.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -# Check the gettext tools to make sure they are GNU -# Extract the first word of "xgettext", so it can be a program name with args. -set dummy xgettext; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_XGETTEXT+:} false; then : - $as_echo_n "(cached) " >&6 -else - case $XGETTEXT in - [\\/]* | ?:[\\/]*) - ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_XGETTEXT="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - ;; -esac -fi -XGETTEXT=$ac_cv_path_XGETTEXT -if test -n "$XGETTEXT"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XGETTEXT" >&5 -$as_echo "$XGETTEXT" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -# Extract the first word of "msgmerge", so it can be a program name with args. -set dummy msgmerge; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_MSGMERGE+:} false; then : - $as_echo_n "(cached) " >&6 -else - case $MSGMERGE in - [\\/]* | ?:[\\/]*) - ac_cv_path_MSGMERGE="$MSGMERGE" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_MSGMERGE="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - ;; -esac -fi -MSGMERGE=$ac_cv_path_MSGMERGE -if test -n "$MSGMERGE"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGMERGE" >&5 -$as_echo "$MSGMERGE" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -# Extract the first word of "msgfmt", so it can be a program name with args. -set dummy msgfmt; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_MSGFMT+:} false; then : - $as_echo_n "(cached) " >&6 -else - case $MSGFMT in - [\\/]* | ?:[\\/]*) - ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_MSGFMT="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - ;; -esac -fi -MSGFMT=$ac_cv_path_MSGFMT -if test -n "$MSGFMT"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGFMT" >&5 -$as_echo "$MSGFMT" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -# Extract the first word of "gmsgfmt", so it can be a program name with args. -set dummy gmsgfmt; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_GMSGFMT+:} false; then : - $as_echo_n "(cached) " >&6 -else - case $GMSGFMT in - [\\/]* | ?:[\\/]*) - ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_GMSGFMT="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT" - ;; -esac -fi -GMSGFMT=$ac_cv_path_GMSGFMT -if test -n "$GMSGFMT"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GMSGFMT" >&5 -$as_echo "$GMSGFMT" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -if test -z "$XGETTEXT" -o -z "$MSGMERGE" -o -z "$MSGFMT"; then - as_fn_error $? "GNU gettext tools not found; required for intltool" "$LINENO" 5 -fi -xgversion="`$XGETTEXT --version|grep '(GNU ' 2> /dev/null`" -mmversion="`$MSGMERGE --version|grep '(GNU ' 2> /dev/null`" -mfversion="`$MSGFMT --version|grep '(GNU ' 2> /dev/null`" -if test -z "$xgversion" -o -z "$mmversion" -o -z "$mfversion"; then - as_fn_error $? "GNU gettext tools not found; required for intltool" "$LINENO" 5 -fi - -# Extract the first word of "perl", so it can be a program name with args. -set dummy perl; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_INTLTOOL_PERL+:} false; then : - $as_echo_n "(cached) " >&6 -else - case $INTLTOOL_PERL in - [\\/]* | ?:[\\/]*) - ac_cv_path_INTLTOOL_PERL="$INTLTOOL_PERL" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_INTLTOOL_PERL="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - ;; -esac -fi -INTLTOOL_PERL=$ac_cv_path_INTLTOOL_PERL -if test -n "$INTLTOOL_PERL"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_PERL" >&5 -$as_echo "$INTLTOOL_PERL" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -if test -z "$INTLTOOL_PERL"; then - as_fn_error $? "perl not found" "$LINENO" 5 -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for perl >= 5.8.1" >&5 -$as_echo_n "checking for perl >= 5.8.1... " >&6; } -$INTLTOOL_PERL -e "use 5.8.1;" > /dev/null 2>&1 -if test $? -ne 0; then - as_fn_error $? "perl 5.8.1 is required for intltool" "$LINENO" 5 -else - IT_PERL_VERSION="`$INTLTOOL_PERL -e \"printf '%vd', $^V\"`" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $IT_PERL_VERSION" >&5 -$as_echo "$IT_PERL_VERSION" >&6; } -fi -if test "x" != "xno-xml"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XML::Parser" >&5 -$as_echo_n "checking for XML::Parser... " >&6; } - if `$INTLTOOL_PERL -e "require XML::Parser" 2>/dev/null`; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5 -$as_echo "ok" >&6; } - else - as_fn_error $? "XML::Parser perl module is required for intltool" "$LINENO" 5 - fi -fi - -# Substitute ALL_LINGUAS so we can use it in po/Makefile - - -# Set DATADIRNAME correctly if it is not set yet -# (copied from glib-gettext.m4) -if test -z "$DATADIRNAME"; then - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ -extern int _nl_msg_cat_cntr; - return _nl_msg_cat_cntr - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - DATADIRNAME=share -else - case $host in - *-*-solaris*) - ac_fn_c_check_func "$LINENO" "bind_textdomain_codeset" "ac_cv_func_bind_textdomain_codeset" -if test "x$ac_cv_func_bind_textdomain_codeset" = xyes; then : - DATADIRNAME=share -else - DATADIRNAME=lib -fi - - ;; - *) - DATADIRNAME=lib - ;; - esac -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi - - - - - - -ALL_LINGUAS="bg bs cs da de en_AU es eu fo fr gl he hr it ja lv nl pl pt pt_BR ru si sr tr uk zh_TW" -# On IRIX 5.3, sys/types and inttypes.h are conflicting. -for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ - inttypes.h stdint.h unistd.h -do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default -" -if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -@%:@define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - - - for ac_header in locale.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "locale.h" "ac_cv_header_locale_h" "$ac_includes_default" -if test "x$ac_cv_header_locale_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -@%:@define HAVE_LOCALE_H 1 -_ACEOF - -fi - -done - - if test $ac_cv_header_locale_h = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for LC_MESSAGES" >&5 -$as_echo_n "checking for LC_MESSAGES... " >&6; } -if ${am_cv_val_LC_MESSAGES+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main () -{ -return LC_MESSAGES - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - am_cv_val_LC_MESSAGES=yes -else - am_cv_val_LC_MESSAGES=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_val_LC_MESSAGES" >&5 -$as_echo "$am_cv_val_LC_MESSAGES" >&6; } - if test $am_cv_val_LC_MESSAGES = yes; then - -$as_echo "@%:@define HAVE_LC_MESSAGES 1" >>confdefs.h - - fi - fi - USE_NLS=yes - - - gt_cv_have_gettext=no - - CATOBJEXT=NONE - XGETTEXT=: - INTLLIBS= - - ac_fn_c_check_header_mongrel "$LINENO" "libintl.h" "ac_cv_header_libintl_h" "$ac_includes_default" -if test "x$ac_cv_header_libintl_h" = xyes; then : - gt_cv_func_dgettext_libintl="no" - libintl_extra_libs="" - - # - # First check in libc - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ngettext in libc" >&5 -$as_echo_n "checking for ngettext in libc... " >&6; } -if ${gt_cv_func_ngettext_libc+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include - -int -main () -{ -return !ngettext ("","", 1) - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - gt_cv_func_ngettext_libc=yes -else - gt_cv_func_ngettext_libc=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_ngettext_libc" >&5 -$as_echo "$gt_cv_func_ngettext_libc" >&6; } - - if test "$gt_cv_func_ngettext_libc" = "yes" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dgettext in libc" >&5 -$as_echo_n "checking for dgettext in libc... " >&6; } -if ${gt_cv_func_dgettext_libc+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include - -int -main () -{ -return !dgettext ("","") - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - gt_cv_func_dgettext_libc=yes -else - gt_cv_func_dgettext_libc=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_dgettext_libc" >&5 -$as_echo "$gt_cv_func_dgettext_libc" >&6; } - fi - - if test "$gt_cv_func_ngettext_libc" = "yes" ; then - for ac_func in bind_textdomain_codeset -do : - ac_fn_c_check_func "$LINENO" "bind_textdomain_codeset" "ac_cv_func_bind_textdomain_codeset" -if test "x$ac_cv_func_bind_textdomain_codeset" = xyes; then : - cat >>confdefs.h <<_ACEOF -@%:@define HAVE_BIND_TEXTDOMAIN_CODESET 1 -_ACEOF - -fi -done - - fi - - # - # If we don't have everything we want, check in libintl - # - if test "$gt_cv_func_dgettext_libc" != "yes" \ - || test "$gt_cv_func_ngettext_libc" != "yes" \ - || test "$ac_cv_func_bind_textdomain_codeset" != "yes" ; then - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for bindtextdomain in -lintl" >&5 -$as_echo_n "checking for bindtextdomain in -lintl... " >&6; } -if ${ac_cv_lib_intl_bindtextdomain+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lintl $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char bindtextdomain (); -int -main () -{ -return bindtextdomain (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_intl_bindtextdomain=yes -else - ac_cv_lib_intl_bindtextdomain=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_bindtextdomain" >&5 -$as_echo "$ac_cv_lib_intl_bindtextdomain" >&6; } -if test "x$ac_cv_lib_intl_bindtextdomain" = xyes; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ngettext in -lintl" >&5 -$as_echo_n "checking for ngettext in -lintl... " >&6; } -if ${ac_cv_lib_intl_ngettext+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lintl $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char ngettext (); -int -main () -{ -return ngettext (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_intl_ngettext=yes -else - ac_cv_lib_intl_ngettext=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_ngettext" >&5 -$as_echo "$ac_cv_lib_intl_ngettext" >&6; } -if test "x$ac_cv_lib_intl_ngettext" = xyes; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dgettext in -lintl" >&5 -$as_echo_n "checking for dgettext in -lintl... " >&6; } -if ${ac_cv_lib_intl_dgettext+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lintl $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char dgettext (); -int -main () -{ -return dgettext (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_intl_dgettext=yes -else - ac_cv_lib_intl_dgettext=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_dgettext" >&5 -$as_echo "$ac_cv_lib_intl_dgettext" >&6; } -if test "x$ac_cv_lib_intl_dgettext" = xyes; then : - gt_cv_func_dgettext_libintl=yes -fi - -fi - -fi - - - if test "$gt_cv_func_dgettext_libintl" != "yes" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if -liconv is needed to use gettext" >&5 -$as_echo_n "checking if -liconv is needed to use gettext... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 -$as_echo "" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ngettext in -lintl" >&5 -$as_echo_n "checking for ngettext in -lintl... " >&6; } -if ${ac_cv_lib_intl_ngettext+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lintl -liconv $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char ngettext (); -int -main () -{ -return ngettext (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_intl_ngettext=yes -else - ac_cv_lib_intl_ngettext=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_ngettext" >&5 -$as_echo "$ac_cv_lib_intl_ngettext" >&6; } -if test "x$ac_cv_lib_intl_ngettext" = xyes; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dcgettext in -lintl" >&5 -$as_echo_n "checking for dcgettext in -lintl... " >&6; } -if ${ac_cv_lib_intl_dcgettext+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lintl -liconv $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char dcgettext (); -int -main () -{ -return dcgettext (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_intl_dcgettext=yes -else - ac_cv_lib_intl_dcgettext=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_dcgettext" >&5 -$as_echo "$ac_cv_lib_intl_dcgettext" >&6; } -if test "x$ac_cv_lib_intl_dcgettext" = xyes; then : - gt_cv_func_dgettext_libintl=yes - libintl_extra_libs=-liconv -else - : -fi - -else - : -fi - - fi - - # - # If we found libintl, then check in it for bind_textdomain_codeset(); - # we'll prefer libc if neither have bind_textdomain_codeset(), - # and both have dgettext and ngettext - # - if test "$gt_cv_func_dgettext_libintl" = "yes" ; then - glib_save_LIBS="$LIBS" - LIBS="$LIBS -lintl $libintl_extra_libs" - unset ac_cv_func_bind_textdomain_codeset - for ac_func in bind_textdomain_codeset -do : - ac_fn_c_check_func "$LINENO" "bind_textdomain_codeset" "ac_cv_func_bind_textdomain_codeset" -if test "x$ac_cv_func_bind_textdomain_codeset" = xyes; then : - cat >>confdefs.h <<_ACEOF -@%:@define HAVE_BIND_TEXTDOMAIN_CODESET 1 -_ACEOF - -fi -done - - LIBS="$glib_save_LIBS" - - if test "$ac_cv_func_bind_textdomain_codeset" = "yes" ; then - gt_cv_func_dgettext_libc=no - else - if test "$gt_cv_func_dgettext_libc" = "yes" \ - && test "$gt_cv_func_ngettext_libc" = "yes"; then - gt_cv_func_dgettext_libintl=no - fi - fi - fi - fi - - if test "$gt_cv_func_dgettext_libc" = "yes" \ - || test "$gt_cv_func_dgettext_libintl" = "yes"; then - gt_cv_have_gettext=yes - fi - - if test "$gt_cv_func_dgettext_libintl" = "yes"; then - INTLLIBS="-lintl $libintl_extra_libs" - fi - - if test "$gt_cv_have_gettext" = "yes"; then - -$as_echo "@%:@define HAVE_GETTEXT 1" >>confdefs.h - - # Extract the first word of "msgfmt", so it can be a program name with args. -set dummy msgfmt; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_MSGFMT+:} false; then : - $as_echo_n "(cached) " >&6 -else - case "$MSGFMT" in - /*) - ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path. - ;; - *) - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" - for ac_dir in $PATH; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - if test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"; then - ac_cv_path_MSGFMT="$ac_dir/$ac_word" - break - fi - fi - done - IFS="$ac_save_ifs" - test -z "$ac_cv_path_MSGFMT" && ac_cv_path_MSGFMT="no" - ;; -esac -fi -MSGFMT="$ac_cv_path_MSGFMT" -if test "$MSGFMT" != "no"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGFMT" >&5 -$as_echo "$MSGFMT" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - if test "$MSGFMT" != "no"; then - glib_save_LIBS="$LIBS" - LIBS="$LIBS $INTLLIBS" - for ac_func in dcgettext -do : - ac_fn_c_check_func "$LINENO" "dcgettext" "ac_cv_func_dcgettext" -if test "x$ac_cv_func_dcgettext" = xyes; then : - cat >>confdefs.h <<_ACEOF -@%:@define HAVE_DCGETTEXT 1 -_ACEOF - -fi -done - - MSGFMT_OPTS= - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if msgfmt accepts -c" >&5 -$as_echo_n "checking if msgfmt accepts -c... " >&6; } - cat >conftest.foo <<_ACEOF - -msgid "" -msgstr "" -"Content-Type: text/plain; charset=UTF-8\n" -"Project-Id-Version: test 1.0\n" -"PO-Revision-Date: 2007-02-15 12:01+0100\n" -"Last-Translator: test \n" -"Language-Team: C \n" -"MIME-Version: 1.0\n" -"Content-Transfer-Encoding: 8bit\n" - -_ACEOF -if { { $as_echo "$as_me:${as_lineno-$LINENO}: \$MSGFMT -c -o /dev/null conftest.foo"; } >&5 - ($MSGFMT -c -o /dev/null conftest.foo) 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - MSGFMT_OPTS=-c; { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -echo "$as_me: failed input was:" >&5 -sed 's/^/| /' conftest.foo >&5 -fi - - # Extract the first word of "gmsgfmt", so it can be a program name with args. -set dummy gmsgfmt; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_GMSGFMT+:} false; then : - $as_echo_n "(cached) " >&6 -else - case $GMSGFMT in - [\\/]* | ?:[\\/]*) - ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_GMSGFMT="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT" - ;; -esac -fi -GMSGFMT=$ac_cv_path_GMSGFMT -if test -n "$GMSGFMT"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GMSGFMT" >&5 -$as_echo "$GMSGFMT" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - # Extract the first word of "xgettext", so it can be a program name with args. -set dummy xgettext; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_XGETTEXT+:} false; then : - $as_echo_n "(cached) " >&6 -else - case "$XGETTEXT" in - /*) - ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path. - ;; - *) - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" - for ac_dir in $PATH; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - if test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"; then - ac_cv_path_XGETTEXT="$ac_dir/$ac_word" - break - fi - fi - done - IFS="$ac_save_ifs" - test -z "$ac_cv_path_XGETTEXT" && ac_cv_path_XGETTEXT=":" - ;; -esac -fi -XGETTEXT="$ac_cv_path_XGETTEXT" -if test "$XGETTEXT" != ":"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XGETTEXT" >&5 -$as_echo "$XGETTEXT" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ -extern int _nl_msg_cat_cntr; - return _nl_msg_cat_cntr - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - CATOBJEXT=.gmo - DATADIRNAME=share -else - case $host in - *-*-solaris*) - ac_fn_c_check_func "$LINENO" "bind_textdomain_codeset" "ac_cv_func_bind_textdomain_codeset" -if test "x$ac_cv_func_bind_textdomain_codeset" = xyes; then : - CATOBJEXT=.gmo - DATADIRNAME=share -else - CATOBJEXT=.mo - DATADIRNAME=lib -fi - - ;; - *-*-openbsd*) - CATOBJEXT=.mo - DATADIRNAME=share - ;; - *) - CATOBJEXT=.mo - DATADIRNAME=lib - ;; - esac -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - LIBS="$glib_save_LIBS" - INSTOBJEXT=.mo - else - gt_cv_have_gettext=no - fi - fi - -fi - - - - if test "$gt_cv_have_gettext" = "yes" ; then - -$as_echo "@%:@define ENABLE_NLS 1" >>confdefs.h - - fi - - if test "$XGETTEXT" != ":"; then - if $XGETTEXT --omit-header /dev/null 2> /dev/null; then - : ; - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: found xgettext program is not GNU xgettext; ignore it" >&5 -$as_echo "found xgettext program is not GNU xgettext; ignore it" >&6; } - XGETTEXT=":" - fi - fi - - # We need to process the po/ directory. - POSUB=po - - ac_config_commands="$ac_config_commands default-1" - - - for lang in $ALL_LINGUAS; do - GMOFILES="$GMOFILES $lang.gmo" - POFILES="$POFILES $lang.po" - done - - - - - - - - - - - - - - if test "$gt_cv_have_gettext" = "yes"; then - if test "x$ALL_LINGUAS" = "x"; then - LINGUAS= - else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for catalogs to be installed" >&5 -$as_echo_n "checking for catalogs to be installed... " >&6; } - NEW_LINGUAS= - for presentlang in $ALL_LINGUAS; do - useit=no - if test "%UNSET%" != "${LINGUAS-%UNSET%}"; then - desiredlanguages="$LINGUAS" - else - desiredlanguages="$ALL_LINGUAS" - fi - for desiredlang in $desiredlanguages; do - # Use the presentlang catalog if desiredlang is - # a. equal to presentlang, or - # b. a variant of presentlang (because in this case, - # presentlang can be used as a fallback for messages - # which are not translated in the desiredlang catalog). - case "$desiredlang" in - "$presentlang"*) useit=yes;; - esac - done - if test $useit = yes; then - NEW_LINGUAS="$NEW_LINGUAS $presentlang" - fi - done - LINGUAS=$NEW_LINGUAS - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LINGUAS" >&5 -$as_echo "$LINGUAS" >&6; } - fi - - if test -n "$LINGUAS"; then - for lang in $LINGUAS; do CATALOGS="$CATALOGS $lang$CATOBJEXT"; done - fi - fi - - MKINSTALLDIRS= - if test -n "$ac_aux_dir"; then - MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs" - fi - if test -z "$MKINSTALLDIRS"; then - MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs" - fi - - - test -d po || mkdir po - if test "x$srcdir" != "x."; then - if test "x`echo $srcdir | sed 's@/.*@@'`" = "x"; then - posrcprefix="$srcdir/" - else - posrcprefix="../$srcdir/" - fi - else - posrcprefix="../" - fi - rm -f po/POTFILES - sed -e "/^#/d" -e "/^\$/d" -e "s,.*, $posrcprefix& \\\\," -e "\$s/\(.*\) \\\\/\1/" \ - < $srcdir/po/POTFILES.in > po/POTFILES - - - - - - - - - -if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. -set dummy ${ac_tool_prefix}pkg-config; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_PKG_CONFIG+:} false; then : - $as_echo_n "(cached) " >&6 -else - case $PKG_CONFIG in - [\\/]* | ?:[\\/]*) - ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - ;; -esac -fi -PKG_CONFIG=$ac_cv_path_PKG_CONFIG -if test -n "$PKG_CONFIG"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5 -$as_echo "$PKG_CONFIG" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_path_PKG_CONFIG"; then - ac_pt_PKG_CONFIG=$PKG_CONFIG - # Extract the first word of "pkg-config", so it can be a program name with args. -set dummy pkg-config; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_ac_pt_PKG_CONFIG+:} false; then : - $as_echo_n "(cached) " >&6 -else - case $ac_pt_PKG_CONFIG in - [\\/]* | ?:[\\/]*) - ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - ;; -esac -fi -ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG -if test -n "$ac_pt_PKG_CONFIG"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5 -$as_echo "$ac_pt_PKG_CONFIG" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_pt_PKG_CONFIG" = x; then - PKG_CONFIG="" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - PKG_CONFIG=$ac_pt_PKG_CONFIG - fi -else - PKG_CONFIG="$ac_cv_path_PKG_CONFIG" -fi - -fi -if test -n "$PKG_CONFIG"; then - _pkg_min_version=0.9.0 - { $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5 -$as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; } - if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - PKG_CONFIG="" - fi -fi - -pkg_failed=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for DEPS" >&5 -$as_echo_n "checking for DEPS... " >&6; } - -if test -n "$DEPS_CFLAGS"; then - pkg_cv_DEPS_CFLAGS="$DEPS_CFLAGS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk+-3.0 >= 3.0.0 glib-2.0 >= 2.10.0 sdl >= 1.2.10 portaudio-2.0 libpng libavcodec libavutil libv4l2 libudev libusb-1.0\""; } >&5 - ($PKG_CONFIG --exists --print-errors "gtk+-3.0 >= 3.0.0 glib-2.0 >= 2.10.0 sdl >= 1.2.10 portaudio-2.0 libpng libavcodec libavutil libv4l2 libudev libusb-1.0") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_DEPS_CFLAGS=`$PKG_CONFIG --cflags "gtk+-3.0 >= 3.0.0 glib-2.0 >= 2.10.0 sdl >= 1.2.10 portaudio-2.0 libpng libavcodec libavutil libv4l2 libudev libusb-1.0" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi -if test -n "$DEPS_LIBS"; then - pkg_cv_DEPS_LIBS="$DEPS_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk+-3.0 >= 3.0.0 glib-2.0 >= 2.10.0 sdl >= 1.2.10 portaudio-2.0 libpng libavcodec libavutil libv4l2 libudev libusb-1.0\""; } >&5 - ($PKG_CONFIG --exists --print-errors "gtk+-3.0 >= 3.0.0 glib-2.0 >= 2.10.0 sdl >= 1.2.10 portaudio-2.0 libpng libavcodec libavutil libv4l2 libudev libusb-1.0") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_DEPS_LIBS=`$PKG_CONFIG --libs "gtk+-3.0 >= 3.0.0 glib-2.0 >= 2.10.0 sdl >= 1.2.10 portaudio-2.0 libpng libavcodec libavutil libv4l2 libudev libusb-1.0" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi - - - -if test $pkg_failed = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - -if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then - _pkg_short_errors_supported=yes -else - _pkg_short_errors_supported=no -fi - if test $_pkg_short_errors_supported = yes; then - DEPS_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "gtk+-3.0 >= 3.0.0 glib-2.0 >= 2.10.0 sdl >= 1.2.10 portaudio-2.0 libpng libavcodec libavutil libv4l2 libudev libusb-1.0" 2>&1` - else - DEPS_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "gtk+-3.0 >= 3.0.0 glib-2.0 >= 2.10.0 sdl >= 1.2.10 portaudio-2.0 libpng libavcodec libavutil libv4l2 libudev libusb-1.0" 2>&1` - fi - # Put the nasty error message in config.log where it belongs - echo "$DEPS_PKG_ERRORS" >&5 - - as_fn_error $? "Package requirements (gtk+-3.0 >= 3.0.0 glib-2.0 >= 2.10.0 sdl >= 1.2.10 portaudio-2.0 libpng libavcodec libavutil libv4l2 libudev libusb-1.0) were not met: - -$DEPS_PKG_ERRORS - -Consider adjusting the PKG_CONFIG_PATH environment variable if you -installed software in a non-standard prefix. - -Alternatively, you may set the environment variables DEPS_CFLAGS -and DEPS_LIBS to avoid the need to call pkg-config. -See the pkg-config man page for more details." "$LINENO" 5 -elif test $pkg_failed = untried; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it -is in your PATH or set the PKG_CONFIG environment variable to the full -path to pkg-config. - -Alternatively, you may set the environment variables DEPS_CFLAGS -and DEPS_LIBS to avoid the need to call pkg-config. -See the pkg-config man page for more details. - -To get pkg-config, see . -See \`config.log' for more details" "$LINENO" 5; } -else - DEPS_CFLAGS=$pkg_cv_DEPS_CFLAGS - DEPS_LIBS=$pkg_cv_DEPS_LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -fi - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if you want to enable debian menu" >&5 -$as_echo_n "checking if you want to enable debian menu... " >&6; } -@%:@ Check whether --enable-debian-menu was given. -if test "${enable_debian_menu+set}" = set; then : - enableval=$enable_debian_menu; enable_debian_menu=no -else - enable_debian_menu=yes -fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_debian_menu" >&5 -$as_echo "$enable_debian_menu" >&6; } - - if test "$enable_debian_menu" = yes; then - DEBIAN_MENU_TRUE= - DEBIAN_MENU_FALSE='#' -else - DEBIAN_MENU_TRUE='#' - DEBIAN_MENU_FALSE= -fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if you want to enable desktop file" >&5 -$as_echo_n "checking if you want to enable desktop file... " >&6; } -@%:@ Check whether --enable-desktop was given. -if test "${enable_desktop+set}" = set; then : - enableval=$enable_desktop; enable_desktop=no -else - enable_desktop=yes -fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_desktop" >&5 -$as_echo "$enable_desktop" >&6; } - - if test "$enable_desktop" = yes; then - DESKTOP_TRUE= - DESKTOP_FALSE='#' -else - DESKTOP_TRUE='#' - DESKTOP_FALSE= -fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if you want to enable pulse support" >&5 -$as_echo_n "checking if you want to enable pulse support... " >&6; } -@%:@ Check whether --enable-pulse was given. -if test "${enable_pulse+set}" = set; then : - enableval=$enable_pulse; enable_pulse=no -else - enable_pulse=yes -fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_pulse" >&5 -$as_echo "$enable_pulse" >&6; } - -if test $enable_pulse = yes; then - -pkg_failed=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for PULSE" >&5 -$as_echo_n "checking for PULSE... " >&6; } - -if test -n "$PULSE_CFLAGS"; then - pkg_cv_PULSE_CFLAGS="$PULSE_CFLAGS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libpulse >= 0.9.15\""; } >&5 - ($PKG_CONFIG --exists --print-errors "libpulse >= 0.9.15") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_PULSE_CFLAGS=`$PKG_CONFIG --cflags "libpulse >= 0.9.15" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi -if test -n "$PULSE_LIBS"; then - pkg_cv_PULSE_LIBS="$PULSE_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libpulse >= 0.9.15\""; } >&5 - ($PKG_CONFIG --exists --print-errors "libpulse >= 0.9.15") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_PULSE_LIBS=`$PKG_CONFIG --libs "libpulse >= 0.9.15" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi - - - -if test $pkg_failed = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - -if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then - _pkg_short_errors_supported=yes -else - _pkg_short_errors_supported=no -fi - if test $_pkg_short_errors_supported = yes; then - PULSE_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libpulse >= 0.9.15" 2>&1` - else - PULSE_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libpulse >= 0.9.15" 2>&1` - fi - # Put the nasty error message in config.log where it belongs - echo "$PULSE_PKG_ERRORS" >&5 - - has_pulse=no -elif test $pkg_failed = untried; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - has_pulse=no -else - PULSE_CFLAGS=$pkg_cv_PULSE_CFLAGS - PULSE_LIBS=$pkg_cv_PULSE_LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - has_pulse=yes -fi - - - if test "$has_pulse" = yes; then - -$as_echo "@%:@define PULSEAUDIO 1" >>confdefs.h - - else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libpulse missing... pulse support will be disabled." >&5 -$as_echo "$as_me: WARNING: libpulse missing... pulse support will be disabled." >&2;}; - enable_pulse=no - fi -fi - - -ac_fn_c_check_header_mongrel "$LINENO" "avcodec.h" "ac_cv_header_avcodec_h" "$ac_includes_default" -if test "x$ac_cv_header_avcodec_h" = xyes; then : - has_avcodec_h="yes" -fi - - - -ac_fn_c_check_header_mongrel "$LINENO" "ffmpeg/avcodec.h" "ac_cv_header_ffmpeg_avcodec_h" "$ac_includes_default" -if test "x$ac_cv_header_ffmpeg_avcodec_h" = xyes; then : - has_ffmpeg_dir="yes" -fi - - - -ac_fn_c_check_header_mongrel "$LINENO" "libavcodec/avcodec.h" "ac_cv_header_libavcodec_avcodec_h" "$ac_includes_default" -if test "x$ac_cv_header_libavcodec_avcodec_h" = xyes; then : - has_libavcodec_dir="yes" -fi - - - -if test "$has_avcodec_h" = yes; then - -$as_echo "@%:@define HAS_AVCODEC_H 1" >>confdefs.h - -fi -if test "$has_ffmpeg_dir" = yes; then - -$as_echo "@%:@define HAS_FFMPEG_AVCODEC_H 1" >>confdefs.h - -fi -if test "$has_libavcodec_dir" = yes; then - -$as_echo "@%:@define HAS_LIBAVCODEC_AVCODEC_H 1" >>confdefs.h - -fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether byte ordering is bigendian" >&5 -$as_echo_n "checking whether byte ordering is bigendian... " >&6; } -if ${ac_cv_c_bigendian+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_cv_c_bigendian=unknown - # See if we're dealing with a universal compiler. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#ifndef __APPLE_CC__ - not a universal capable compiler - #endif - typedef int dummy; - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - # Check for potential -arch flags. It is not universal unless - # there are at least two -arch flags with different values. - ac_arch= - ac_prev= - for ac_word in $CC $CFLAGS $CPPFLAGS $LDFLAGS; do - if test -n "$ac_prev"; then - case $ac_word in - i?86 | x86_64 | ppc | ppc64) - if test -z "$ac_arch" || test "$ac_arch" = "$ac_word"; then - ac_arch=$ac_word - else - ac_cv_c_bigendian=universal - break - fi - ;; - esac - ac_prev= - elif test "x$ac_word" = "x-arch"; then - ac_prev=arch - fi - done -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - if test $ac_cv_c_bigendian = unknown; then - # See if sys/param.h defines the BYTE_ORDER macro. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - #include - -int -main () -{ -#if ! (defined BYTE_ORDER && defined BIG_ENDIAN \ - && defined LITTLE_ENDIAN && BYTE_ORDER && BIG_ENDIAN \ - && LITTLE_ENDIAN) - bogus endian macros - #endif - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - # It does; now see whether it defined to BIG_ENDIAN or not. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - #include - -int -main () -{ -#if BYTE_ORDER != BIG_ENDIAN - not big endian - #endif - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_c_bigendian=yes -else - ac_cv_c_bigendian=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - if test $ac_cv_c_bigendian = unknown; then - # See if defines _LITTLE_ENDIAN or _BIG_ENDIAN (e.g., Solaris). - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - -int -main () -{ -#if ! (defined _LITTLE_ENDIAN || defined _BIG_ENDIAN) - bogus endian macros - #endif - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - # It does; now see whether it defined to _BIG_ENDIAN or not. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - -int -main () -{ -#ifndef _BIG_ENDIAN - not big endian - #endif - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_c_bigendian=yes -else - ac_cv_c_bigendian=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - if test $ac_cv_c_bigendian = unknown; then - # Compile a test program. - if test "$cross_compiling" = yes; then : - # Try to guess by grepping values from an object file. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -short int ascii_mm[] = - { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 }; - short int ascii_ii[] = - { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 }; - int use_ascii (int i) { - return ascii_mm[i] + ascii_ii[i]; - } - short int ebcdic_ii[] = - { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 }; - short int ebcdic_mm[] = - { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 }; - int use_ebcdic (int i) { - return ebcdic_mm[i] + ebcdic_ii[i]; - } - extern int foo; - -int -main () -{ -return use_ascii (foo) == use_ebcdic (foo); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - if grep BIGenDianSyS conftest.$ac_objext >/dev/null; then - ac_cv_c_bigendian=yes - fi - if grep LiTTleEnDian conftest.$ac_objext >/dev/null ; then - if test "$ac_cv_c_bigendian" = unknown; then - ac_cv_c_bigendian=no - else - # finding both strings is unlikely to happen, but who knows? - ac_cv_c_bigendian=unknown - fi - fi -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ - - /* Are we little or big endian? From Harbison&Steele. */ - union - { - long int l; - char c[sizeof (long int)]; - } u; - u.l = 1; - return u.c[sizeof (long int) - 1] == 1; - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - ac_cv_c_bigendian=no -else - ac_cv_c_bigendian=yes -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_bigendian" >&5 -$as_echo "$ac_cv_c_bigendian" >&6; } - case $ac_cv_c_bigendian in #( - yes) - $as_echo "@%:@define WORDS_BIGENDIAN 1" >>confdefs.h -;; #( - no) - ;; #( - universal) - -$as_echo "@%:@define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h - - ;; #( - *) - as_fn_error $? "unknown endianness - presetting ac_cv_c_bigendian=no (or yes) will help" "$LINENO" 5 ;; - esac - - -ac_config_files="$ac_config_files Makefile data/Makefile data/icons/Makefile data/guvcview.desktop.in data/guvcview.in po/Makefile.in src/Makefile" - -cat >confcache <<\_ACEOF -# This file is a shell script that caches the results of configure -# tests run on this system so they can be shared between configure -# scripts and configure runs, see configure's option --config-cache. -# It is not useful on other systems. If it contains results you don't -# want to keep, you may remove or edit it. -# -# config.status only pays attention to the cache file if you give it -# the --recheck option to rerun configure. -# -# `ac_cv_env_foo' variables (set or unset) will be overridden when -# loading this file, other *unset* `ac_cv_foo' will be assigned the -# following values. - -_ACEOF - -# The following way of writing the cache mishandles newlines in values, -# but we know of no workaround that is simple, portable, and efficient. -# So, we kill variables containing newlines. -# Ultrix sh set writes to stderr and can't be redirected directly, -# and sets the high bit in the cache file unless we assign to the vars. -( - for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do - eval ac_val=\$$ac_var - case $ac_val in #( - *${as_nl}*) - case $ac_var in #( - *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 -$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; - esac - case $ac_var in #( - _ | IFS | as_nl) ;; #( - BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( - *) { eval $ac_var=; unset $ac_var;} ;; - esac ;; - esac - done - - (set) 2>&1 | - case $as_nl`(ac_space=' '; set) 2>&1` in #( - *${as_nl}ac_space=\ *) - # `set' does not quote correctly, so add quotes: double-quote - # substitution turns \\\\ into \\, and sed turns \\ into \. - sed -n \ - "s/'/'\\\\''/g; - s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" - ;; #( - *) - # `set' quotes correctly as required by POSIX, so do not add quotes. - sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" - ;; - esac | - sort -) | - sed ' - /^ac_cv_env_/b end - t clear - :clear - s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ - t end - s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ - :end' >>confcache -if diff "$cache_file" confcache >/dev/null 2>&1; then :; else - if test -w "$cache_file"; then - if test "x$cache_file" != "x/dev/null"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 -$as_echo "$as_me: updating cache $cache_file" >&6;} - if test ! -f "$cache_file" || test -h "$cache_file"; then - cat confcache >"$cache_file" - else - case $cache_file in #( - */* | ?:*) - mv -f confcache "$cache_file"$$ && - mv -f "$cache_file"$$ "$cache_file" ;; #( - *) - mv -f confcache "$cache_file" ;; - esac - fi - fi - else - { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 -$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} - fi -fi -rm -f confcache - -test "x$prefix" = xNONE && prefix=$ac_default_prefix -# Let make expand exec_prefix. -test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' - -DEFS=-DHAVE_CONFIG_H - -ac_libobjs= -ac_ltlibobjs= -U= -for ac_i in : $LIB@&t@OBJS; do test "x$ac_i" = x: && continue - # 1. Remove the extension, and $U if already installed. - ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' - ac_i=`$as_echo "$ac_i" | sed "$ac_script"` - # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR - # will be set to the directory where LIBOBJS objects are built. - as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" - as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo' -done -LIB@&t@OBJS=$ac_libobjs - -LTLIBOBJS=$ac_ltlibobjs - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking that generated files are newer than configure" >&5 -$as_echo_n "checking that generated files are newer than configure... " >&6; } - if test -n "$am_sleep_pid"; then - # Hide warnings about reused PIDs. - wait $am_sleep_pid 2>/dev/null - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: done" >&5 -$as_echo "done" >&6; } - if test -n "$EXEEXT"; then - am__EXEEXT_TRUE= - am__EXEEXT_FALSE='#' -else - am__EXEEXT_TRUE='#' - am__EXEEXT_FALSE= -fi - -if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then - as_fn_error $? "conditional \"MAINTAINER_MODE\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then - as_fn_error $? "conditional \"AMDEP\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then - as_fn_error $? "conditional \"am__fastdepCC\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi - - ac_config_commands="$ac_config_commands po/stamp-it" - - -if test -z "${DEBIAN_MENU_TRUE}" && test -z "${DEBIAN_MENU_FALSE}"; then - as_fn_error $? "conditional \"DEBIAN_MENU\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${DESKTOP_TRUE}" && test -z "${DESKTOP_FALSE}"; then - as_fn_error $? "conditional \"DESKTOP\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi - - -: "${CONFIG_STATUS=./config.status}" -ac_write_fail=0 -ac_clean_files_save=$ac_clean_files -ac_clean_files="$ac_clean_files $CONFIG_STATUS" -{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 -$as_echo "$as_me: creating $CONFIG_STATUS" >&6;} -as_write_fail=0 -cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 -#! $SHELL -# Generated by $as_me. -# Run this file to recreate the current configuration. -# Compiler output produced by configure, useful for debugging -# configure, is in config.log if it exists. - -debug=false -ac_cs_recheck=false -ac_cs_silent=false - -SHELL=\${CONFIG_SHELL-$SHELL} -export SHELL -_ASEOF -cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 -## -------------------- ## -## M4sh Initialization. ## -## -------------------- ## - -# Be more Bourne compatible -DUALCASE=1; export DUALCASE # for MKS sh -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : - emulate sh - NULLCMD=: - # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which - # is contrary to our usage. Disable this feature. - alias -g '${1+"$@"}'='"$@"' - setopt NO_GLOB_SUBST -else - case `(set -o) 2>/dev/null` in @%:@( - *posix*) : - set -o posix ;; @%:@( - *) : - ;; -esac -fi - - -as_nl=' -' -export as_nl -# Printing a long string crashes Solaris 7 /usr/bin/printf. -as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' -as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo -as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo -# Prefer a ksh shell builtin over an external printf program on Solaris, -# but without wasting forks for bash or zsh. -if test -z "$BASH_VERSION$ZSH_VERSION" \ - && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then - as_echo='print -r --' - as_echo_n='print -rn --' -elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then - as_echo='printf %s\n' - as_echo_n='printf %s' -else - if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then - as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' - as_echo_n='/usr/ucb/echo -n' - else - as_echo_body='eval expr "X$1" : "X\\(.*\\)"' - as_echo_n_body='eval - arg=$1; - case $arg in @%:@( - *"$as_nl"*) - expr "X$arg" : "X\\(.*\\)$as_nl"; - arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; - esac; - expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" - ' - export as_echo_n_body - as_echo_n='sh -c $as_echo_n_body as_echo' - fi - export as_echo_body - as_echo='sh -c $as_echo_body as_echo' -fi - -# The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then - PATH_SEPARATOR=: - (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { - (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || - PATH_SEPARATOR=';' - } -fi - - -# IFS -# We need space, tab and new line, in precisely that order. Quoting is -# there to prevent editors from complaining about space-tab. -# (If _AS_PATH_WALK were called with IFS unset, it would disable word -# splitting by setting IFS to empty value.) -IFS=" "" $as_nl" - -# Find who we are. Look in the path if we contain no directory separator. -as_myself= -case $0 in @%:@(( - *[\\/]* ) as_myself=$0 ;; - *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break - done -IFS=$as_save_IFS - - ;; -esac -# We did not find ourselves, most probably we were run as `sh COMMAND' -# in which case we are not to be found in the path. -if test "x$as_myself" = x; then - as_myself=$0 -fi -if test ! -f "$as_myself"; then - $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 - exit 1 -fi - -# Unset variables that we do not need and which cause bugs (e.g. in -# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" -# suppresses any "Segmentation fault" message there. '((' could -# trigger a bug in pdksh 5.2.14. -for as_var in BASH_ENV ENV MAIL MAILPATH -do eval test x\${$as_var+set} = xset \ - && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : -done -PS1='$ ' -PS2='> ' -PS4='+ ' - -# NLS nuisances. -LC_ALL=C -export LC_ALL -LANGUAGE=C -export LANGUAGE - -# CDPATH. -(unset CDPATH) >/dev/null 2>&1 && unset CDPATH - - -@%:@ as_fn_error STATUS ERROR [LINENO LOG_FD] -@%:@ ---------------------------------------- -@%:@ Output "`basename @S|@0`: error: ERROR" to stderr. If LINENO and LOG_FD are -@%:@ provided, also output the error to LOG_FD, referencing LINENO. Then exit the -@%:@ script with STATUS, using 1 if that was 0. -as_fn_error () -{ - as_status=$1; test $as_status -eq 0 && as_status=1 - if test "$4"; then - as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 - fi - $as_echo "$as_me: error: $2" >&2 - as_fn_exit $as_status -} @%:@ as_fn_error - - -@%:@ as_fn_set_status STATUS -@%:@ ----------------------- -@%:@ Set @S|@? to STATUS, without forking. -as_fn_set_status () -{ - return $1 -} @%:@ as_fn_set_status - -@%:@ as_fn_exit STATUS -@%:@ ----------------- -@%:@ Exit the shell with STATUS, even in a "trap 0" or "set -e" context. -as_fn_exit () -{ - set +e - as_fn_set_status $1 - exit $1 -} @%:@ as_fn_exit - -@%:@ as_fn_unset VAR -@%:@ --------------- -@%:@ Portably unset VAR. -as_fn_unset () -{ - { eval $1=; unset $1;} -} -as_unset=as_fn_unset -@%:@ as_fn_append VAR VALUE -@%:@ ---------------------- -@%:@ Append the text in VALUE to the end of the definition contained in VAR. Take -@%:@ advantage of any shell optimizations that allow amortized linear growth over -@%:@ repeated appends, instead of the typical quadratic growth present in naive -@%:@ implementations. -if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : - eval 'as_fn_append () - { - eval $1+=\$2 - }' -else - as_fn_append () - { - eval $1=\$$1\$2 - } -fi # as_fn_append - -@%:@ as_fn_arith ARG... -@%:@ ------------------ -@%:@ Perform arithmetic evaluation on the ARGs, and store the result in the -@%:@ global @S|@as_val. Take advantage of shells that can avoid forks. The arguments -@%:@ must be portable across @S|@(()) and expr. -if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : - eval 'as_fn_arith () - { - as_val=$(( $* )) - }' -else - as_fn_arith () - { - as_val=`expr "$@" || test $? -eq 1` - } -fi # as_fn_arith - - -if expr a : '\(a\)' >/dev/null 2>&1 && - test "X`expr 00001 : '.*\(...\)'`" = X001; then - as_expr=expr -else - as_expr=false -fi - -if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then - as_basename=basename -else - as_basename=false -fi - -if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then - as_dirname=dirname -else - as_dirname=false -fi - -as_me=`$as_basename -- "$0" || -$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ - X"$0" : 'X\(//\)$' \| \ - X"$0" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X/"$0" | - sed '/^.*\/\([^/][^/]*\)\/*$/{ - s//\1/ - q - } - /^X\/\(\/\/\)$/{ - s//\1/ - q - } - /^X\/\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - -# Avoid depending upon Character Ranges. -as_cr_letters='abcdefghijklmnopqrstuvwxyz' -as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' -as_cr_Letters=$as_cr_letters$as_cr_LETTERS -as_cr_digits='0123456789' -as_cr_alnum=$as_cr_Letters$as_cr_digits - -ECHO_C= ECHO_N= ECHO_T= -case `echo -n x` in @%:@((((( --n*) - case `echo 'xy\c'` in - *c*) ECHO_T=' ';; # ECHO_T is single tab character. - xy) ECHO_C='\c';; - *) echo `echo ksh88 bug on AIX 6.1` > /dev/null - ECHO_T=' ';; - esac;; -*) - ECHO_N='-n';; -esac - -rm -f conf$$ conf$$.exe conf$$.file -if test -d conf$$.dir; then - rm -f conf$$.dir/conf$$.file -else - rm -f conf$$.dir - mkdir conf$$.dir 2>/dev/null -fi -if (echo >conf$$.file) 2>/dev/null; then - if ln -s conf$$.file conf$$ 2>/dev/null; then - as_ln_s='ln -s' - # ... but there are two gotchas: - # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. - # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. - # In both cases, we have to default to `cp -pR'. - ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || - as_ln_s='cp -pR' - elif ln conf$$.file conf$$ 2>/dev/null; then - as_ln_s=ln - else - as_ln_s='cp -pR' - fi -else - as_ln_s='cp -pR' -fi -rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file -rmdir conf$$.dir 2>/dev/null - - -@%:@ as_fn_mkdir_p -@%:@ ------------- -@%:@ Create "@S|@as_dir" as a directory, including parents if necessary. -as_fn_mkdir_p () -{ - - case $as_dir in #( - -*) as_dir=./$as_dir;; - esac - test -d "$as_dir" || eval $as_mkdir_p || { - as_dirs= - while :; do - case $as_dir in #( - *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( - *) as_qdir=$as_dir;; - esac - as_dirs="'$as_qdir' $as_dirs" - as_dir=`$as_dirname -- "$as_dir" || -$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$as_dir" : 'X\(//\)[^/]' \| \ - X"$as_dir" : 'X\(//\)$' \| \ - X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$as_dir" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - test -d "$as_dir" && break - done - test -z "$as_dirs" || eval "mkdir $as_dirs" - } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" - - -} @%:@ as_fn_mkdir_p -if mkdir -p . 2>/dev/null; then - as_mkdir_p='mkdir -p "$as_dir"' -else - test -d ./-p && rmdir ./-p - as_mkdir_p=false -fi - - -@%:@ as_fn_executable_p FILE -@%:@ ----------------------- -@%:@ Test if FILE is an executable regular file. -as_fn_executable_p () -{ - test -f "$1" && test -x "$1" -} @%:@ as_fn_executable_p -as_test_x='test -x' -as_executable_p=as_fn_executable_p - -# Sed expression to map a string onto a valid CPP name. -as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" - -# Sed expression to map a string onto a valid variable name. -as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" - - -exec 6>&1 -## ----------------------------------- ## -## Main body of $CONFIG_STATUS script. ## -## ----------------------------------- ## -_ASEOF -test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -# Save the log message, to keep $0 and so on meaningful, and to -# report actual input values of CONFIG_FILES etc. instead of their -# values after options handling. -ac_log=" -This file was extended by guvcview $as_me 1.7.3, which was -generated by GNU Autoconf 2.69. Invocation command line was - - CONFIG_FILES = $CONFIG_FILES - CONFIG_HEADERS = $CONFIG_HEADERS - CONFIG_LINKS = $CONFIG_LINKS - CONFIG_COMMANDS = $CONFIG_COMMANDS - $ $0 $@ - -on `(hostname || uname -n) 2>/dev/null | sed 1q` -" - -_ACEOF - -case $ac_config_files in *" -"*) set x $ac_config_files; shift; ac_config_files=$*;; -esac - -case $ac_config_headers in *" -"*) set x $ac_config_headers; shift; ac_config_headers=$*;; -esac - - -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -# Files that config.status was made for. -config_files="$ac_config_files" -config_headers="$ac_config_headers" -config_commands="$ac_config_commands" - -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -ac_cs_usage="\ -\`$as_me' instantiates files and other configuration actions -from templates according to the current configuration. Unless the files -and actions are specified as TAGs, all are instantiated by default. - -Usage: $0 [OPTION]... [TAG]... - - -h, --help print this help, then exit - -V, --version print version number and configuration settings, then exit - --config print configuration, then exit - -q, --quiet, --silent - do not print progress messages - -d, --debug don't remove temporary files - --recheck update $as_me by reconfiguring in the same conditions - --file=FILE[:TEMPLATE] - instantiate the configuration file FILE - --header=FILE[:TEMPLATE] - instantiate the configuration header FILE - -Configuration files: -$config_files - -Configuration headers: -$config_headers - -Configuration commands: -$config_commands - -Report bugs to ." - -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" -ac_cs_version="\\ -guvcview config.status 1.7.3 -configured by $0, generated by GNU Autoconf 2.69, - with options \\"\$ac_cs_config\\" - -Copyright (C) 2012 Free Software Foundation, Inc. -This config.status script is free software; the Free Software Foundation -gives unlimited permission to copy, distribute and modify it." - -ac_pwd='$ac_pwd' -srcdir='$srcdir' -INSTALL='$INSTALL' -MKDIR_P='$MKDIR_P' -AWK='$AWK' -test -n "\$AWK" || AWK=awk -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -# The default lists apply if the user does not specify any file. -ac_need_defaults=: -while test $# != 0 -do - case $1 in - --*=?*) - ac_option=`expr "X$1" : 'X\([^=]*\)='` - ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` - ac_shift=: - ;; - --*=) - ac_option=`expr "X$1" : 'X\([^=]*\)='` - ac_optarg= - ac_shift=: - ;; - *) - ac_option=$1 - ac_optarg=$2 - ac_shift=shift - ;; - esac - - case $ac_option in - # Handling of the options. - -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) - ac_cs_recheck=: ;; - --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) - $as_echo "$ac_cs_version"; exit ;; - --config | --confi | --conf | --con | --co | --c ) - $as_echo "$ac_cs_config"; exit ;; - --debug | --debu | --deb | --de | --d | -d ) - debug=: ;; - --file | --fil | --fi | --f ) - $ac_shift - case $ac_optarg in - *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; - '') as_fn_error $? "missing file argument" ;; - esac - as_fn_append CONFIG_FILES " '$ac_optarg'" - ac_need_defaults=false;; - --header | --heade | --head | --hea ) - $ac_shift - case $ac_optarg in - *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; - esac - as_fn_append CONFIG_HEADERS " '$ac_optarg'" - ac_need_defaults=false;; - --he | --h) - # Conflict between --help and --header - as_fn_error $? "ambiguous option: \`$1' -Try \`$0 --help' for more information.";; - --help | --hel | -h ) - $as_echo "$ac_cs_usage"; exit ;; - -q | -quiet | --quiet | --quie | --qui | --qu | --q \ - | -silent | --silent | --silen | --sile | --sil | --si | --s) - ac_cs_silent=: ;; - - # This is an error. - -*) as_fn_error $? "unrecognized option: \`$1' -Try \`$0 --help' for more information." ;; - - *) as_fn_append ac_config_targets " $1" - ac_need_defaults=false ;; - - esac - shift -done - -ac_configure_extra_args= - -if $ac_cs_silent; then - exec 6>/dev/null - ac_configure_extra_args="$ac_configure_extra_args --silent" -fi - -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -if \$ac_cs_recheck; then - set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion - shift - \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 - CONFIG_SHELL='$SHELL' - export CONFIG_SHELL - exec "\$@" -fi - -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -exec 5>>config.log -{ - echo - sed 'h;s/./-/g;s/^.../@%:@@%:@ /;s/...$/ @%:@@%:@/;p;x;p;x' <<_ASBOX -@%:@@%:@ Running $as_me. @%:@@%:@ -_ASBOX - $as_echo "$ac_log" -} >&5 - -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -# -# INIT-COMMANDS -# -AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" - - -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 - -# Handling of arguments. -for ac_config_target in $ac_config_targets -do - case $ac_config_target in - "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; - "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; - "default-1") CONFIG_COMMANDS="$CONFIG_COMMANDS default-1" ;; - "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; - "data/Makefile") CONFIG_FILES="$CONFIG_FILES data/Makefile" ;; - "data/icons/Makefile") CONFIG_FILES="$CONFIG_FILES data/icons/Makefile" ;; - "data/guvcview.desktop.in") CONFIG_FILES="$CONFIG_FILES data/guvcview.desktop.in" ;; - "data/guvcview.in") CONFIG_FILES="$CONFIG_FILES data/guvcview.in" ;; - "po/Makefile.in") CONFIG_FILES="$CONFIG_FILES po/Makefile.in" ;; - "src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;; - "po/stamp-it") CONFIG_COMMANDS="$CONFIG_COMMANDS po/stamp-it" ;; - - *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; - esac -done - - -# If the user did not use the arguments to specify the items to instantiate, -# then the envvar interface is used. Set only those that are not. -# We use the long form for the default assignment because of an extremely -# bizarre bug on SunOS 4.1.3. -if $ac_need_defaults; then - test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files - test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers - test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands -fi - -# Have a temporary directory for convenience. Make it in the build tree -# simply because there is no reason against having it here, and in addition, -# creating and moving files from /tmp can sometimes cause problems. -# Hook for its removal unless debugging. -# Note that there is a small window in which the directory will not be cleaned: -# after its creation but before its name has been assigned to `$tmp'. -$debug || -{ - tmp= ac_tmp= - trap 'exit_status=$? - : "${ac_tmp:=$tmp}" - { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status -' 0 - trap 'as_fn_exit 1' 1 2 13 15 -} -# Create a (secure) tmp directory for tmp files. - -{ - tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && - test -d "$tmp" -} || -{ - tmp=./conf$$-$RANDOM - (umask 077 && mkdir "$tmp") -} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 -ac_tmp=$tmp - -# Set up the scripts for CONFIG_FILES section. -# No need to generate them if there are no CONFIG_FILES. -# This happens for instance with `./config.status config.h'. -if test -n "$CONFIG_FILES"; then - - -ac_cr=`echo X | tr X '\015'` -# On cygwin, bash can eat \r inside `` if the user requested igncr. -# But we know of no other shell where ac_cr would be empty at this -# point, so we can use a bashism as a fallback. -if test "x$ac_cr" = x; then - eval ac_cr=\$\'\\r\' -fi -ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` -if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then - ac_cs_awk_cr='\\r' -else - ac_cs_awk_cr=$ac_cr -fi - -echo 'BEGIN {' >"$ac_tmp/subs1.awk" && -_ACEOF - - -{ - echo "cat >conf$$subs.awk <<_ACEOF" && - echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && - echo "_ACEOF" -} >conf$$subs.sh || - as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 -ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'` -ac_delim='%!_!# ' -for ac_last_try in false false false false false :; do - . ./conf$$subs.sh || - as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 - - ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` - if test $ac_delim_n = $ac_delim_num; then - break - elif $ac_last_try; then - as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 - else - ac_delim="$ac_delim!$ac_delim _$ac_delim!! " - fi -done -rm -f conf$$subs.sh - -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK && -_ACEOF -sed -n ' -h -s/^/S["/; s/!.*/"]=/ -p -g -s/^[^!]*!// -:repl -t repl -s/'"$ac_delim"'$// -t delim -:nl -h -s/\(.\{148\}\)..*/\1/ -t more1 -s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ -p -n -b repl -:more1 -s/["\\]/\\&/g; s/^/"/; s/$/"\\/ -p -g -s/.\{148\}// -t nl -:delim -h -s/\(.\{148\}\)..*/\1/ -t more2 -s/["\\]/\\&/g; s/^/"/; s/$/"/ -p -b -:more2 -s/["\\]/\\&/g; s/^/"/; s/$/"\\/ -p -g -s/.\{148\}// -t delim -' >$CONFIG_STATUS || ac_write_fail=1 -rm -f conf$$subs.awk -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -_ACAWK -cat >>"\$ac_tmp/subs1.awk" <<_ACAWK && - for (key in S) S_is_set[key] = 1 - FS = "" - -} -{ - line = $ 0 - nfields = split(line, field, "@") - substed = 0 - len = length(field[1]) - for (i = 2; i < nfields; i++) { - key = field[i] - keylen = length(key) - if (S_is_set[key]) { - value = S[key] - line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) - len += length(value) + length(field[++i]) - substed = 1 - } else - len += 1 + keylen - } - - print line -} - -_ACAWK -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then - sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" -else - cat -fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \ - || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 -_ACEOF - -# VPATH may cause trouble with some makes, so we remove sole $(srcdir), -# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and -# trailing colons and then remove the whole line if VPATH becomes empty -# (actually we leave an empty line to preserve line numbers). -if test "x$srcdir" = x.; then - ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{ -h -s/// -s/^/:/ -s/[ ]*$/:/ -s/:\$(srcdir):/:/g -s/:\${srcdir}:/:/g -s/:@srcdir@:/:/g -s/^:*// -s/:*$// -x -s/\(=[ ]*\).*/\1/ -G -s/\n// -s/^[^=]*=[ ]*$// -}' -fi - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -fi # test -n "$CONFIG_FILES" - -# Set up the scripts for CONFIG_HEADERS section. -# No need to generate them if there are no CONFIG_HEADERS. -# This happens for instance with `./config.status Makefile'. -if test -n "$CONFIG_HEADERS"; then -cat >"$ac_tmp/defines.awk" <<\_ACAWK || -BEGIN { -_ACEOF - -# Transform confdefs.h into an awk script `defines.awk', embedded as -# here-document in config.status, that substitutes the proper values into -# config.h.in to produce config.h. - -# Create a delimiter string that does not exist in confdefs.h, to ease -# handling of long lines. -ac_delim='%!_!# ' -for ac_last_try in false false :; do - ac_tt=`sed -n "/$ac_delim/p" confdefs.h` - if test -z "$ac_tt"; then - break - elif $ac_last_try; then - as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5 - else - ac_delim="$ac_delim!$ac_delim _$ac_delim!! " - fi -done - -# For the awk script, D is an array of macro values keyed by name, -# likewise P contains macro parameters if any. Preserve backslash -# newline sequences. - -ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* -sed -n ' -s/.\{148\}/&'"$ac_delim"'/g -t rset -:rset -s/^[ ]*#[ ]*define[ ][ ]*/ / -t def -d -:def -s/\\$// -t bsnl -s/["\\]/\\&/g -s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ -D["\1"]=" \3"/p -s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p -d -:bsnl -s/["\\]/\\&/g -s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ -D["\1"]=" \3\\\\\\n"\\/p -t cont -s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p -t cont -d -:cont -n -s/.\{148\}/&'"$ac_delim"'/g -t clear -:clear -s/\\$// -t bsnlc -s/["\\]/\\&/g; s/^/"/; s/$/"/p -d -:bsnlc -s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p -b cont -' >$CONFIG_STATUS || ac_write_fail=1 - -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 - for (key in D) D_is_set[key] = 1 - FS = "" -} -/^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ { - line = \$ 0 - split(line, arg, " ") - if (arg[1] == "#") { - defundef = arg[2] - mac1 = arg[3] - } else { - defundef = substr(arg[1], 2) - mac1 = arg[2] - } - split(mac1, mac2, "(") #) - macro = mac2[1] - prefix = substr(line, 1, index(line, defundef) - 1) - if (D_is_set[macro]) { - # Preserve the white space surrounding the "#". - print prefix "define", macro P[macro] D[macro] - next - } else { - # Replace #undef with comments. This is necessary, for example, - # in the case of _POSIX_SOURCE, which is predefined and required - # on some systems where configure will not decide to define it. - if (defundef == "undef") { - print "/*", prefix defundef, macro, "*/" - next - } - } -} -{ print } -_ACAWK -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 - as_fn_error $? "could not setup config headers machinery" "$LINENO" 5 -fi # test -n "$CONFIG_HEADERS" - - -eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS" -shift -for ac_tag -do - case $ac_tag in - :[FHLC]) ac_mode=$ac_tag; continue;; - esac - case $ac_mode$ac_tag in - :[FHL]*:*);; - :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;; - :[FH]-) ac_tag=-:-;; - :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; - esac - ac_save_IFS=$IFS - IFS=: - set x $ac_tag - IFS=$ac_save_IFS - shift - ac_file=$1 - shift - - case $ac_mode in - :L) ac_source=$1;; - :[FH]) - ac_file_inputs= - for ac_f - do - case $ac_f in - -) ac_f="$ac_tmp/stdin";; - *) # Look for the file first in the build tree, then in the source tree - # (if the path is not absolute). The absolute path cannot be DOS-style, - # because $ac_f cannot contain `:'. - test -f "$ac_f" || - case $ac_f in - [\\/$]*) false;; - *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; - esac || - as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;; - esac - case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac - as_fn_append ac_file_inputs " '$ac_f'" - done - - # Let's still pretend it is `configure' which instantiates (i.e., don't - # use $as_me), people would be surprised to read: - # /* config.h. Generated by config.status. */ - configure_input='Generated from '` - $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' - `' by configure.' - if test x"$ac_file" != x-; then - configure_input="$ac_file. $configure_input" - { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 -$as_echo "$as_me: creating $ac_file" >&6;} - fi - # Neutralize special characters interpreted by sed in replacement strings. - case $configure_input in #( - *\&* | *\|* | *\\* ) - ac_sed_conf_input=`$as_echo "$configure_input" | - sed 's/[\\\\&|]/\\\\&/g'`;; #( - *) ac_sed_conf_input=$configure_input;; - esac - - case $ac_tag in - *:-:* | *:-) cat >"$ac_tmp/stdin" \ - || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; - esac - ;; - esac - - ac_dir=`$as_dirname -- "$ac_file" || -$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$ac_file" : 'X\(//\)[^/]' \| \ - X"$ac_file" : 'X\(//\)$' \| \ - X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$ac_file" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - as_dir="$ac_dir"; as_fn_mkdir_p - ac_builddir=. - -case "$ac_dir" in -.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; -*) - ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` - # A ".." for each directory in $ac_dir_suffix. - ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` - case $ac_top_builddir_sub in - "") ac_top_builddir_sub=. ac_top_build_prefix= ;; - *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; - esac ;; -esac -ac_abs_top_builddir=$ac_pwd -ac_abs_builddir=$ac_pwd$ac_dir_suffix -# for backward compatibility: -ac_top_builddir=$ac_top_build_prefix - -case $srcdir in - .) # We are building in place. - ac_srcdir=. - ac_top_srcdir=$ac_top_builddir_sub - ac_abs_top_srcdir=$ac_pwd ;; - [\\/]* | ?:[\\/]* ) # Absolute name. - ac_srcdir=$srcdir$ac_dir_suffix; - ac_top_srcdir=$srcdir - ac_abs_top_srcdir=$srcdir ;; - *) # Relative name. - ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix - ac_top_srcdir=$ac_top_build_prefix$srcdir - ac_abs_top_srcdir=$ac_pwd/$srcdir ;; -esac -ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix - - - case $ac_mode in - :F) - # - # CONFIG_FILE - # - - case $INSTALL in - [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; - *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; - esac - ac_MKDIR_P=$MKDIR_P - case $MKDIR_P in - [\\/$]* | ?:[\\/]* ) ;; - */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;; - esac -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -# If the template does not know about datarootdir, expand it. -# FIXME: This hack should be removed a few years after 2.60. -ac_datarootdir_hack=; ac_datarootdir_seen= -ac_sed_dataroot=' -/datarootdir/ { - p - q -} -/@datadir@/p -/@docdir@/p -/@infodir@/p -/@localedir@/p -/@mandir@/p' -case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in -*datarootdir*) ac_datarootdir_seen=yes;; -*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 -$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 - ac_datarootdir_hack=' - s&@datadir@&$datadir&g - s&@docdir@&$docdir&g - s&@infodir@&$infodir&g - s&@localedir@&$localedir&g - s&@mandir@&$mandir&g - s&\\\${datarootdir}&$datarootdir&g' ;; -esac -_ACEOF - -# Neutralize VPATH when `$srcdir' = `.'. -# Shell code in configure.ac might set extrasub. -# FIXME: do we really want to maintain this feature? -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -ac_sed_extra="$ac_vpsub -$extrasub -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -:t -/@[a-zA-Z_][a-zA-Z_0-9]*@/!b -s|@configure_input@|$ac_sed_conf_input|;t t -s&@top_builddir@&$ac_top_builddir_sub&;t t -s&@top_build_prefix@&$ac_top_build_prefix&;t t -s&@srcdir@&$ac_srcdir&;t t -s&@abs_srcdir@&$ac_abs_srcdir&;t t -s&@top_srcdir@&$ac_top_srcdir&;t t -s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t -s&@builddir@&$ac_builddir&;t t -s&@abs_builddir@&$ac_abs_builddir&;t t -s&@abs_top_builddir@&$ac_abs_top_builddir&;t t -s&@INSTALL@&$ac_INSTALL&;t t -s&@MKDIR_P@&$ac_MKDIR_P&;t t -$ac_datarootdir_hack -" -eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \ - >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5 - -test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && - { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } && - { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ - "$ac_tmp/out"`; test -z "$ac_out"; } && - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' -which seems to be undefined. Please make sure it is defined" >&5 -$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' -which seems to be undefined. Please make sure it is defined" >&2;} - - rm -f "$ac_tmp/stdin" - case $ac_file in - -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";; - *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";; - esac \ - || as_fn_error $? "could not create $ac_file" "$LINENO" 5 - ;; - :H) - # - # CONFIG_HEADER - # - if test x"$ac_file" != x-; then - { - $as_echo "/* $configure_input */" \ - && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" - } >"$ac_tmp/config.h" \ - || as_fn_error $? "could not create $ac_file" "$LINENO" 5 - if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then - { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 -$as_echo "$as_me: $ac_file is unchanged" >&6;} - else - rm -f "$ac_file" - mv "$ac_tmp/config.h" "$ac_file" \ - || as_fn_error $? "could not create $ac_file" "$LINENO" 5 - fi - else - $as_echo "/* $configure_input */" \ - && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \ - || as_fn_error $? "could not create -" "$LINENO" 5 - fi -# Compute "$ac_file"'s index in $config_headers. -_am_arg="$ac_file" -_am_stamp_count=1 -for _am_header in $config_headers :; do - case $_am_header in - $_am_arg | $_am_arg:* ) - break ;; - * ) - _am_stamp_count=`expr $_am_stamp_count + 1` ;; - esac -done -echo "timestamp for $_am_arg" >`$as_dirname -- "$_am_arg" || -$as_expr X"$_am_arg" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$_am_arg" : 'X\(//\)[^/]' \| \ - X"$_am_arg" : 'X\(//\)$' \| \ - X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$_am_arg" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'`/stamp-h$_am_stamp_count - ;; - - :C) { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5 -$as_echo "$as_me: executing $ac_file commands" >&6;} - ;; - esac - - - case $ac_file$ac_mode in - "depfiles":C) test x"$AMDEP_TRUE" != x"" || { - # Older Autoconf quotes --file arguments for eval, but not when files - # are listed without --file. Let's play safe and only enable the eval - # if we detect the quoting. - case $CONFIG_FILES in - *\'*) eval set x "$CONFIG_FILES" ;; - *) set x $CONFIG_FILES ;; - esac - shift - for mf - do - # Strip MF so we end up with the name of the file. - mf=`echo "$mf" | sed -e 's/:.*$//'` - # Check whether this is an Automake generated Makefile or not. - # We used to match only the files named 'Makefile.in', but - # some people rename them; so instead we look at the file content. - # Grep'ing the first line is not enough: some people post-process - # each Makefile.in and add a new line on top of each file to say so. - # Grep'ing the whole file is not good either: AIX grep has a line - # limit of 2048, but all sed's we know have understand at least 4000. - if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then - dirpart=`$as_dirname -- "$mf" || -$as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$mf" : 'X\(//\)[^/]' \| \ - X"$mf" : 'X\(//\)$' \| \ - X"$mf" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$mf" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - else - continue - fi - # Extract the definition of DEPDIR, am__include, and am__quote - # from the Makefile without running 'make'. - DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` - test -z "$DEPDIR" && continue - am__include=`sed -n 's/^am__include = //p' < "$mf"` - test -z "$am__include" && continue - am__quote=`sed -n 's/^am__quote = //p' < "$mf"` - # Find all dependency output files, they are included files with - # $(DEPDIR) in their names. We invoke sed twice because it is the - # simplest approach to changing $(DEPDIR) to its actual value in the - # expansion. - for file in `sed -n " - s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ - sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do - # Make sure the directory exists. - test -f "$dirpart/$file" && continue - fdir=`$as_dirname -- "$file" || -$as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$file" : 'X\(//\)[^/]' \| \ - X"$file" : 'X\(//\)$' \| \ - X"$file" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$file" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - as_dir=$dirpart/$fdir; as_fn_mkdir_p - # echo "creating $dirpart/$file" - echo '# dummy' > "$dirpart/$file" - done - done -} - ;; - "default-1":C) case "$CONFIG_FILES" in *po/Makefile.in*) - sed -e "/POTFILES =/r po/POTFILES" po/Makefile.in > po/Makefile - esac ;; - "po/stamp-it":C) - if ! grep "^# INTLTOOL_MAKEFILE$" "po/Makefile.in" > /dev/null ; then - as_fn_error $? "po/Makefile.in.in was not created by intltoolize." "$LINENO" 5 - fi - rm -f "po/stamp-it" "po/stamp-it.tmp" "po/POTFILES" "po/Makefile.tmp" - >"po/stamp-it.tmp" - sed '/^#/d - s/^[[].*] *// - /^[ ]*$/d - '"s|^| $ac_top_srcdir/|" \ - "$srcdir/po/POTFILES.in" | sed '$!s/$/ \\/' >"po/POTFILES" - - sed '/^POTFILES =/,/[^\\]$/ { - /^POTFILES =/!d - r po/POTFILES - } - ' "po/Makefile.in" >"po/Makefile" - rm -f "po/Makefile.tmp" - mv "po/stamp-it.tmp" "po/stamp-it" - ;; - - esac -done # for ac_tag - - -as_fn_exit 0 -_ACEOF -ac_clean_files=$ac_clean_files_save - -test $ac_write_fail = 0 || - as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 - - -# configure is writing to config.log, and then calls config.status. -# config.status does its own redirection, appending to config.log. -# Unfortunately, on DOS this fails, as config.log is still kept open -# by configure, so config.status won't be able to write to it; its -# output is simply discarded. So we exec the FD to /dev/null, -# effectively closing config.log, so it can be properly (re)opened and -# appended to by config.status. When coming back to configure, we -# need to make the FD available again. -if test "$no_create" != yes; then - ac_cs_success=: - ac_config_status_args= - test "$silent" = yes && - ac_config_status_args="$ac_config_status_args --quiet" - exec 5>/dev/null - $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false - exec 5>>config.log - # Use ||, not &&, to avoid exiting from the if with $? = 1, which - # would make configure fail if this is the last instruction. - $ac_cs_success || as_fn_exit 1 -fi -if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 -$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} -fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: - - guvcview $VERSION - ---------------------- - - Prefix : ${prefix} - - Pulse API : ${enable_pulse} - - Desktop File : ${enable_desktop} - Debian Menu : ${enable_debian_menu} - - Debug Symbols : ${enable_debug} - -" >&5 -$as_echo "$as_me: - - guvcview $VERSION - ---------------------- - - Prefix : ${prefix} - - Pulse API : ${enable_pulse} - - Desktop File : ${enable_desktop} - Debian Menu : ${enable_debian_menu} - - Debug Symbols : ${enable_debug} - -" >&6;} - diff -Nru guvcview-1.7.3/autom4te.cache/requests guvcview-2.0.1+ubuntu1~ppa1/autom4te.cache/requests --- guvcview-1.7.3/autom4te.cache/requests 2014-03-24 22:56:28.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/autom4te.cache/requests 1970-01-01 00:00:00.000000000 +0000 @@ -1,268 +0,0 @@ -# This file was generated by Autom4te Wed Aug 21 09:31:00 UTC 2013. -# It contains the lists of macros which have been traced. -# It can be safely removed. - -@request = ( - bless( [ - '0', - 1, - [ - '/usr/share/autoconf' - ], - [ - '/usr/share/autoconf/autoconf/autoconf.m4f', - '-', - '/usr/share/aclocal-1.13/internal/ac-config-macro-dirs.m4', - '/usr/share/aclocal/glib-gettext.m4', - '/usr/share/aclocal/pkg.m4', - '/usr/share/aclocal-1.13/amversion.m4', - '/usr/share/aclocal-1.13/auxdir.m4', - '/usr/share/aclocal-1.13/cond.m4', - '/usr/share/aclocal-1.13/depend.m4', - '/usr/share/aclocal-1.13/depout.m4', - '/usr/share/aclocal-1.13/init.m4', - '/usr/share/aclocal-1.13/install-sh.m4', - '/usr/share/aclocal-1.13/lead-dot.m4', - '/usr/share/aclocal-1.13/maintainer.m4', - '/usr/share/aclocal-1.13/make.m4', - '/usr/share/aclocal-1.13/missing.m4', - '/usr/share/aclocal-1.13/options.m4', - '/usr/share/aclocal-1.13/runlog.m4', - '/usr/share/aclocal-1.13/sanity.m4', - '/usr/share/aclocal-1.13/silent.m4', - '/usr/share/aclocal-1.13/strip.m4', - '/usr/share/aclocal-1.13/substnot.m4', - '/usr/share/aclocal-1.13/tar.m4', - 'm4/acx_pthread.m4', - 'm4/intltool.m4', - 'm4/nls.m4', - 'configure.ac' - ], - { - 'IT_PROG_INTLTOOL' => 1, - 'm4_pattern_forbid' => 1, - 'AM_SET_CURRENT_AUTOMAKE_VERSION' => 1, - '_AM_SET_OPTION' => 1, - 'CF_STRIP_G_OPT' => 1, - 'AC_DEFUN' => 1, - 'GLIB_RUN_PROG' => 1, - 'AM_GLIB_DEFINE_LOCALEDIR' => 1, - 'AM_GLIB_GNU_GETTEXT' => 1, - 'AM_INIT_AUTOMAKE' => 1, - 'AM_AUTOMAKE_VERSION' => 1, - 'AM_MISSING_HAS_RUN' => 1, - 'AM_SUBST_NOTMAKE' => 1, - 'AM_MISSING_PROG' => 1, - 'CF_STRIP_O_OPT' => 1, - 'IT_PO_SUBDIR' => 1, - 'AM_OUTPUT_DEPENDENCY_COMMANDS' => 1, - 'AM_MAINTAINER_MODE' => 1, - 'AC_DEFUN_ONCE' => 1, - 'AM_NLS' => 1, - '_AM_CONFIG_MACRO_DIRS' => 1, - 'AM_PROG_INSTALL_STRIP' => 1, - '_PKG_SHORT_ERRORS_SUPPORTED' => 1, - '_m4_warn' => 1, - 'AM_SANITY_CHECK' => 1, - 'PKG_CHECK_EXISTS' => 1, - '_IT_SUBST' => 1, - 'AM_SILENT_RULES' => 1, - 'include' => 1, - 'AC_PROG_INTLTOOL' => 1, - '_AM_PROG_TAR' => 1, - 'AM_AUX_DIR_EXPAND' => 1, - 'AM_DEP_TRACK' => 1, - '_AM_SET_OPTIONS' => 1, - '_AM_OUTPUT_DEPENDENCY_COMMANDS' => 1, - 'AM_RUN_LOG' => 1, - '_AM_IF_OPTION' => 1, - 'AC_CONFIG_MACRO_DIR' => 1, - 'ACX_PTHREAD' => 1, - '_AM_SUBST_NOTMAKE' => 1, - '_AM_AUTOCONF_VERSION' => 1, - 'm4_pattern_allow' => 1, - '_AM_MANGLE_OPTION' => 1, - 'AM_CONDITIONAL' => 1, - 'AM_SET_LEADING_DOT' => 1, - 'AC_CONFIG_MACRO_DIR_TRACE' => 1, - 'AM_SET_DEPDIR' => 1, - '_AM_DEPENDENCIES' => 1, - 'AM_PROG_INSTALL_SH' => 1, - 'PKG_PROG_PKG_CONFIG' => 1, - 'm4_include' => 1, - 'PKG_CHECK_MODULES' => 1, - '_AC_AM_CONFIG_HEADER_HOOK' => 1, - 'AU_DEFUN' => 1, - 'AM_MAKE_INCLUDE' => 1 - } - ], 'Autom4te::Request' ), - bless( [ - '1', - 1, - [ - '/usr/share/autoconf' - ], - [ - '/usr/share/autoconf/autoconf/autoconf.m4f', - 'aclocal.m4', - 'configure.ac' - ], - { - 'AM_PROG_F77_C_O' => 1, - '_LT_AC_TAGCONFIG' => 1, - 'AC_INIT' => 1, - 'm4_pattern_forbid' => 1, - 'AC_CANONICAL_TARGET' => 1, - '_AM_COND_IF' => 1, - 'AC_CONFIG_LIBOBJ_DIR' => 1, - 'AC_SUBST' => 1, - 'AM_EXTRA_RECURSIVE_TARGETS' => 1, - 'AC_CANONICAL_HOST' => 1, - 'AC_FC_SRCEXT' => 1, - 'AC_PROG_LIBTOOL' => 1, - 'AM_PROG_MKDIR_P' => 1, - 'AM_INIT_AUTOMAKE' => 1, - 'AC_CONFIG_SUBDIRS' => 1, - 'AM_PATH_GUILE' => 1, - 'AM_AUTOMAKE_VERSION' => 1, - 'LT_CONFIG_LTDL_DIR' => 1, - 'AC_CONFIG_LINKS' => 1, - 'AC_REQUIRE_AUX_FILE' => 1, - 'LT_SUPPORTED_TAG' => 1, - 'm4_sinclude' => 1, - 'AM_MAINTAINER_MODE' => 1, - 'AM_NLS' => 1, - 'AC_FC_PP_DEFINE' => 1, - 'AM_GNU_GETTEXT_INTL_SUBDIR' => 1, - '_m4_warn' => 1, - 'AM_MAKEFILE_INCLUDE' => 1, - 'AM_PROG_CXX_C_O' => 1, - '_AM_MAKEFILE_INCLUDE' => 1, - '_AM_COND_ENDIF' => 1, - 'AM_ENABLE_MULTILIB' => 1, - 'AM_SILENT_RULES' => 1, - 'AM_PROG_MOC' => 1, - 'AC_CONFIG_FILES' => 1, - 'include' => 1, - 'LT_INIT' => 1, - 'AM_GNU_GETTEXT' => 1, - 'AM_PROG_AR' => 1, - 'AC_LIBSOURCE' => 1, - 'AC_CANONICAL_BUILD' => 1, - 'AM_PROG_FC_C_O' => 1, - 'AC_FC_FREEFORM' => 1, - 'AC_FC_PP_SRCEXT' => 1, - 'AH_OUTPUT' => 1, - 'AC_CONFIG_AUX_DIR' => 1, - '_AM_SUBST_NOTMAKE' => 1, - 'm4_pattern_allow' => 1, - 'AM_PROG_CC_C_O' => 1, - 'sinclude' => 1, - 'AM_CONDITIONAL' => 1, - 'AC_CANONICAL_SYSTEM' => 1, - 'AM_XGETTEXT_OPTION' => 1, - 'AC_CONFIG_HEADERS' => 1, - 'AC_DEFINE_TRACE_LITERAL' => 1, - 'AM_POT_TOOLS' => 1, - 'm4_include' => 1, - '_AM_COND_ELSE' => 1, - 'AC_SUBST_TRACE' => 1 - } - ], 'Autom4te::Request' ), - bless( [ - '2', - 1, - [ - '/usr/share/autoconf' - ], - [ - '/usr/share/autoconf/autoconf/autoconf.m4f', - '-', - '/usr/share/aclocal-1.13/internal/ac-config-macro-dirs.m4', - '/usr/share/aclocal/glib-gettext.m4', - '/usr/share/aclocal/pkg.m4', - '/usr/share/aclocal-1.13/amversion.m4', - '/usr/share/aclocal-1.13/auxdir.m4', - '/usr/share/aclocal-1.13/cond.m4', - '/usr/share/aclocal-1.13/depend.m4', - '/usr/share/aclocal-1.13/depout.m4', - '/usr/share/aclocal-1.13/init.m4', - '/usr/share/aclocal-1.13/install-sh.m4', - '/usr/share/aclocal-1.13/lead-dot.m4', - '/usr/share/aclocal-1.13/maintainer.m4', - '/usr/share/aclocal-1.13/make.m4', - '/usr/share/aclocal-1.13/minuso.m4', - '/usr/share/aclocal-1.13/missing.m4', - '/usr/share/aclocal-1.13/options.m4', - '/usr/share/aclocal-1.13/runlog.m4', - '/usr/share/aclocal-1.13/sanity.m4', - '/usr/share/aclocal-1.13/silent.m4', - '/usr/share/aclocal-1.13/strip.m4', - '/usr/share/aclocal-1.13/substnot.m4', - '/usr/share/aclocal-1.13/tar.m4', - 'm4/acx_pthread.m4', - 'm4/intltool.m4', - 'm4/nls.m4', - 'configure.ac' - ], - { - 'IT_PROG_INTLTOOL' => 1, - 'm4_pattern_forbid' => 1, - 'AM_SET_CURRENT_AUTOMAKE_VERSION' => 1, - '_AM_SET_OPTION' => 1, - 'CF_STRIP_G_OPT' => 1, - 'AC_DEFUN' => 1, - 'GLIB_RUN_PROG' => 1, - 'AM_GLIB_DEFINE_LOCALEDIR' => 1, - 'AM_GLIB_GNU_GETTEXT' => 1, - 'AM_INIT_AUTOMAKE' => 1, - 'AM_AUTOMAKE_VERSION' => 1, - 'AM_MISSING_HAS_RUN' => 1, - 'AM_SUBST_NOTMAKE' => 1, - 'AM_MISSING_PROG' => 1, - 'CF_STRIP_O_OPT' => 1, - 'IT_PO_SUBDIR' => 1, - 'AM_OUTPUT_DEPENDENCY_COMMANDS' => 1, - 'AM_MAINTAINER_MODE' => 1, - 'AC_DEFUN_ONCE' => 1, - 'AM_NLS' => 1, - '_AM_CONFIG_MACRO_DIRS' => 1, - 'AM_PROG_INSTALL_STRIP' => 1, - '_PKG_SHORT_ERRORS_SUPPORTED' => 1, - '_m4_warn' => 1, - 'AM_SANITY_CHECK' => 1, - 'PKG_CHECK_EXISTS' => 1, - '_IT_SUBST' => 1, - 'AM_SILENT_RULES' => 1, - 'include' => 1, - 'AC_PROG_INTLTOOL' => 1, - '_AM_PROG_TAR' => 1, - 'AM_AUX_DIR_EXPAND' => 1, - 'AM_DEP_TRACK' => 1, - '_AM_SET_OPTIONS' => 1, - '_AM_OUTPUT_DEPENDENCY_COMMANDS' => 1, - 'AM_RUN_LOG' => 1, - '_AM_IF_OPTION' => 1, - 'AC_CONFIG_MACRO_DIR' => 1, - 'ACX_PTHREAD' => 1, - '_AM_SUBST_NOTMAKE' => 1, - 'AM_PROG_CC_C_O' => 1, - '_AM_AUTOCONF_VERSION' => 1, - 'm4_pattern_allow' => 1, - '_AM_MANGLE_OPTION' => 1, - 'AM_CONDITIONAL' => 1, - 'AM_SET_LEADING_DOT' => 1, - 'AC_CONFIG_MACRO_DIR_TRACE' => 1, - 'AM_SET_DEPDIR' => 1, - '_AM_DEPENDENCIES' => 1, - 'AM_PROG_INSTALL_SH' => 1, - 'PKG_PROG_PKG_CONFIG' => 1, - 'm4_include' => 1, - 'PKG_CHECK_MODULES' => 1, - '_AC_AM_CONFIG_HEADER_HOOK' => 1, - 'AU_DEFUN' => 1, - 'AM_MAKE_INCLUDE' => 1 - } - ], 'Autom4te::Request' ) - ); - diff -Nru guvcview-1.7.3/autom4te.cache/traces.0 guvcview-2.0.1+ubuntu1~ppa1/autom4te.cache/traces.0 --- guvcview-1.7.3/autom4te.cache/traces.0 2014-03-24 22:56:28.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/autom4te.cache/traces.0 1970-01-01 00:00:00.000000000 +0000 @@ -1,1625 +0,0 @@ -m4trace:/usr/share/aclocal/glib-gettext.m4:415: -1- AC_DEFUN([AM_GLIB_GNU_GETTEXT], [GLIB_GNU_GETTEXT($@)]) -m4trace:/usr/share/aclocal/glib-gettext.m4:415: -1- AC_DEFUN([AM_GLIB_DEFINE_LOCALEDIR], [GLIB_DEFINE_LOCALEDIR($@)]) -m4trace:/usr/share/aclocal/glib-gettext.m4:425: -1- AC_DEFUN([GLIB_RUN_PROG], [cat >conftest.foo <<_ACEOF -$2 -_ACEOF -if AC_RUN_LOG([$1 conftest.foo]); then - m4_ifval([$3], [$3], [:]) -m4_ifvaln([$4], [else $4])dnl -echo "$as_me: failed input was:" >&AS_MESSAGE_LOG_FD -sed 's/^/| /' conftest.foo >&AS_MESSAGE_LOG_FD -fi]) -m4trace:/usr/share/aclocal/pkg.m4:27: -1- AC_DEFUN([PKG_PROG_PKG_CONFIG], [m4_pattern_forbid([^_?PKG_[A-Z_]+$]) -m4_pattern_allow([^PKG_CONFIG(_(PATH|LIBDIR|SYSROOT_DIR|ALLOW_SYSTEM_(CFLAGS|LIBS)))?$]) -m4_pattern_allow([^PKG_CONFIG_(DISABLE_UNINSTALLED|TOP_BUILD_DIR|DEBUG_SPEW)$]) -AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility]) -AC_ARG_VAR([PKG_CONFIG_PATH], [directories to add to pkg-config's search path]) -AC_ARG_VAR([PKG_CONFIG_LIBDIR], [path overriding pkg-config's built-in search path]) - -if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then - AC_PATH_TOOL([PKG_CONFIG], [pkg-config]) -fi -if test -n "$PKG_CONFIG"; then - _pkg_min_version=m4_default([$1], [0.9.0]) - AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version]) - if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then - AC_MSG_RESULT([yes]) - else - AC_MSG_RESULT([no]) - PKG_CONFIG="" - fi -fi[]dnl -]) -m4trace:/usr/share/aclocal/pkg.m4:60: -1- AC_DEFUN([PKG_CHECK_EXISTS], [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl -if test -n "$PKG_CONFIG" && \ - AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then - m4_default([$2], [:]) -m4_ifvaln([$3], [else - $3])dnl -fi]) -m4trace:/usr/share/aclocal/pkg.m4:86: -1- AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED], [AC_REQUIRE([PKG_PROG_PKG_CONFIG]) -if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then - _pkg_short_errors_supported=yes -else - _pkg_short_errors_supported=no -fi[]dnl -]) -m4trace:/usr/share/aclocal/pkg.m4:106: -1- AC_DEFUN([PKG_CHECK_MODULES], [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl -AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl -AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl - -pkg_failed=no -AC_MSG_CHECKING([for $1]) - -_PKG_CONFIG([$1][_CFLAGS], [cflags], [$2]) -_PKG_CONFIG([$1][_LIBS], [libs], [$2]) - -m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS -and $1[]_LIBS to avoid the need to call pkg-config. -See the pkg-config man page for more details.]) - -if test $pkg_failed = yes; then - AC_MSG_RESULT([no]) - _PKG_SHORT_ERRORS_SUPPORTED - if test $_pkg_short_errors_supported = yes; then - $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "$2" 2>&1` - else - $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "$2" 2>&1` - fi - # Put the nasty error message in config.log where it belongs - echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD - - m4_default([$4], [AC_MSG_ERROR( -[Package requirements ($2) were not met: - -$$1_PKG_ERRORS - -Consider adjusting the PKG_CONFIG_PATH environment variable if you -installed software in a non-standard prefix. - -_PKG_TEXT])[]dnl - ]) -elif test $pkg_failed = untried; then - AC_MSG_RESULT([no]) - m4_default([$4], [AC_MSG_FAILURE( -[The pkg-config script could not be found or is too old. Make sure it -is in your PATH or set the PKG_CONFIG environment variable to the full -path to pkg-config. - -_PKG_TEXT - -To get pkg-config, see .])[]dnl - ]) -else - $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS - $1[]_LIBS=$pkg_cv_[]$1[]_LIBS - AC_MSG_RESULT([yes]) - $3 -fi[]dnl -]) -m4trace:/usr/share/aclocal-1.13/amversion.m4:14: -1- AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version='1.13' -dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to -dnl require some minimum version. Point them to the right macro. -m4_if([$1], [1.13.3], [], - [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl -]) -m4trace:/usr/share/aclocal-1.13/amversion.m4:33: -1- AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], [AM_AUTOMAKE_VERSION([1.13.3])dnl -m4_ifndef([AC_AUTOCONF_VERSION], - [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl -_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) -m4trace:/usr/share/aclocal-1.13/auxdir.m4:47: -1- AC_DEFUN([AM_AUX_DIR_EXPAND], [dnl Rely on autoconf to set up CDPATH properly. -AC_PREREQ([2.50])dnl -# expand $ac_aux_dir to an absolute path -am_aux_dir=`cd $ac_aux_dir && pwd` -]) -m4trace:/usr/share/aclocal-1.13/cond.m4:12: -1- AC_DEFUN([AM_CONDITIONAL], [AC_PREREQ([2.52])dnl - m4_if([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], - [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl -AC_SUBST([$1_TRUE])dnl -AC_SUBST([$1_FALSE])dnl -_AM_SUBST_NOTMAKE([$1_TRUE])dnl -_AM_SUBST_NOTMAKE([$1_FALSE])dnl -m4_define([_AM_COND_VALUE_$1], [$2])dnl -if $2; then - $1_TRUE= - $1_FALSE='#' -else - $1_TRUE='#' - $1_FALSE= -fi -AC_CONFIG_COMMANDS_PRE( -[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then - AC_MSG_ERROR([[conditional "$1" was never defined. -Usually this means the macro was only invoked conditionally.]]) -fi])]) -m4trace:/usr/share/aclocal-1.13/depend.m4:26: -1- AC_DEFUN([_AM_DEPENDENCIES], [AC_REQUIRE([AM_SET_DEPDIR])dnl -AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl -AC_REQUIRE([AM_MAKE_INCLUDE])dnl -AC_REQUIRE([AM_DEP_TRACK])dnl - -m4_if([$1], [CC], [depcc="$CC" am_compiler_list=], - [$1], [CXX], [depcc="$CXX" am_compiler_list=], - [$1], [OBJC], [depcc="$OBJC" am_compiler_list='gcc3 gcc'], - [$1], [OBJCXX], [depcc="$OBJCXX" am_compiler_list='gcc3 gcc'], - [$1], [UPC], [depcc="$UPC" am_compiler_list=], - [$1], [GCJ], [depcc="$GCJ" am_compiler_list='gcc3 gcc'], - [depcc="$$1" am_compiler_list=]) - -AC_CACHE_CHECK([dependency style of $depcc], - [am_cv_$1_dependencies_compiler_type], -[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then - # We make a subdir and do the tests there. Otherwise we can end up - # making bogus files that we don't know about and never remove. For - # instance it was reported that on HP-UX the gcc test will end up - # making a dummy file named 'D' -- because '-MD' means "put the output - # in D". - rm -rf conftest.dir - mkdir conftest.dir - # Copy depcomp to subdir because otherwise we won't find it if we're - # using a relative directory. - cp "$am_depcomp" conftest.dir - cd conftest.dir - # We will build objects and dependencies in a subdirectory because - # it helps to detect inapplicable dependency modes. For instance - # both Tru64's cc and ICC support -MD to output dependencies as a - # side effect of compilation, but ICC will put the dependencies in - # the current directory while Tru64 will put them in the object - # directory. - mkdir sub - - am_cv_$1_dependencies_compiler_type=none - if test "$am_compiler_list" = ""; then - am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp` - fi - am__universal=false - m4_case([$1], [CC], - [case " $depcc " in #( - *\ -arch\ *\ -arch\ *) am__universal=true ;; - esac], - [CXX], - [case " $depcc " in #( - *\ -arch\ *\ -arch\ *) am__universal=true ;; - esac]) - - for depmode in $am_compiler_list; do - # Setup a source with many dependencies, because some compilers - # like to wrap large dependency lists on column 80 (with \), and - # we should not choose a depcomp mode which is confused by this. - # - # We need to recreate these files for each test, as the compiler may - # overwrite some of them when testing with obscure command lines. - # This happens at least with the AIX C compiler. - : > sub/conftest.c - for i in 1 2 3 4 5 6; do - echo '#include "conftst'$i'.h"' >> sub/conftest.c - # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with - # Solaris 10 /bin/sh. - echo '/* dummy */' > sub/conftst$i.h - done - echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf - - # We check with '-c' and '-o' for the sake of the "dashmstdout" - # mode. It turns out that the SunPro C++ compiler does not properly - # handle '-M -o', and we need to detect this. Also, some Intel - # versions had trouble with output in subdirs. - am__obj=sub/conftest.${OBJEXT-o} - am__minus_obj="-o $am__obj" - case $depmode in - gcc) - # This depmode causes a compiler race in universal mode. - test "$am__universal" = false || continue - ;; - nosideeffect) - # After this tag, mechanisms are not by side-effect, so they'll - # only be used when explicitly requested. - if test "x$enable_dependency_tracking" = xyes; then - continue - else - break - fi - ;; - msvc7 | msvc7msys | msvisualcpp | msvcmsys) - # This compiler won't grok '-c -o', but also, the minuso test has - # not run yet. These depmodes are late enough in the game, and - # so weak that their functioning should not be impacted. - am__obj=conftest.${OBJEXT-o} - am__minus_obj= - ;; - none) break ;; - esac - if depmode=$depmode \ - source=sub/conftest.c object=$am__obj \ - depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ - $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ - >/dev/null 2>conftest.err && - grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && - grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && - grep $am__obj sub/conftest.Po > /dev/null 2>&1 && - ${MAKE-make} -s -f confmf > /dev/null 2>&1; then - # icc doesn't choke on unknown options, it will just issue warnings - # or remarks (even with -Werror). So we grep stderr for any message - # that says an option was ignored or not supported. - # When given -MP, icc 7.0 and 7.1 complain thusly: - # icc: Command line warning: ignoring option '-M'; no argument required - # The diagnosis changed in icc 8.0: - # icc: Command line remark: option '-MP' not supported - if (grep 'ignoring option' conftest.err || - grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else - am_cv_$1_dependencies_compiler_type=$depmode - break - fi - fi - done - - cd .. - rm -rf conftest.dir -else - am_cv_$1_dependencies_compiler_type=none -fi -]) -AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type]) -AM_CONDITIONAL([am__fastdep$1], [ - test "x$enable_dependency_tracking" != xno \ - && test "$am_cv_$1_dependencies_compiler_type" = gcc3]) -]) -m4trace:/usr/share/aclocal-1.13/depend.m4:163: -1- AC_DEFUN([AM_SET_DEPDIR], [AC_REQUIRE([AM_SET_LEADING_DOT])dnl -AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl -]) -m4trace:/usr/share/aclocal-1.13/depend.m4:171: -1- AC_DEFUN([AM_DEP_TRACK], [AC_ARG_ENABLE([dependency-tracking], [dnl -AS_HELP_STRING( - [--enable-dependency-tracking], - [do not reject slow dependency extractors]) -AS_HELP_STRING( - [--disable-dependency-tracking], - [speeds up one-time build])]) -if test "x$enable_dependency_tracking" != xno; then - am_depcomp="$ac_aux_dir/depcomp" - AMDEPBACKSLASH='\' - am__nodep='_no' -fi -AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) -AC_SUBST([AMDEPBACKSLASH])dnl -_AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl -AC_SUBST([am__nodep])dnl -_AM_SUBST_NOTMAKE([am__nodep])dnl -]) -m4trace:/usr/share/aclocal-1.13/depout.m4:12: -1- AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], [{ - # Older Autoconf quotes --file arguments for eval, but not when files - # are listed without --file. Let's play safe and only enable the eval - # if we detect the quoting. - case $CONFIG_FILES in - *\'*) eval set x "$CONFIG_FILES" ;; - *) set x $CONFIG_FILES ;; - esac - shift - for mf - do - # Strip MF so we end up with the name of the file. - mf=`echo "$mf" | sed -e 's/:.*$//'` - # Check whether this is an Automake generated Makefile or not. - # We used to match only the files named 'Makefile.in', but - # some people rename them; so instead we look at the file content. - # Grep'ing the first line is not enough: some people post-process - # each Makefile.in and add a new line on top of each file to say so. - # Grep'ing the whole file is not good either: AIX grep has a line - # limit of 2048, but all sed's we know have understand at least 4000. - if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then - dirpart=`AS_DIRNAME("$mf")` - else - continue - fi - # Extract the definition of DEPDIR, am__include, and am__quote - # from the Makefile without running 'make'. - DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` - test -z "$DEPDIR" && continue - am__include=`sed -n 's/^am__include = //p' < "$mf"` - test -z "$am__include" && continue - am__quote=`sed -n 's/^am__quote = //p' < "$mf"` - # Find all dependency output files, they are included files with - # $(DEPDIR) in their names. We invoke sed twice because it is the - # simplest approach to changing $(DEPDIR) to its actual value in the - # expansion. - for file in `sed -n " - s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ - sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do - # Make sure the directory exists. - test -f "$dirpart/$file" && continue - fdir=`AS_DIRNAME(["$file"])` - AS_MKDIR_P([$dirpart/$fdir]) - # echo "creating $dirpart/$file" - echo '# dummy' > "$dirpart/$file" - done - done -} -]) -m4trace:/usr/share/aclocal-1.13/depout.m4:71: -1- AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], [AC_CONFIG_COMMANDS([depfiles], - [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS], - [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"]) -]) -m4trace:/usr/share/aclocal-1.13/init.m4:23: -1- AC_DEFUN([AM_INIT_AUTOMAKE], [AC_PREREQ([2.65])dnl -dnl Autoconf wants to disallow AM_ names. We explicitly allow -dnl the ones we care about. -m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl -AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl -AC_REQUIRE([AC_PROG_INSTALL])dnl -if test "`cd $srcdir && pwd`" != "`pwd`"; then - # Use -I$(srcdir) only when $(srcdir) != ., so that make's output - # is not polluted with repeated "-I." - AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl - # test to see if srcdir already configured - if test -f $srcdir/config.status; then - AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) - fi -fi - -# test whether we have cygpath -if test -z "$CYGPATH_W"; then - if (cygpath --version) >/dev/null 2>/dev/null; then - CYGPATH_W='cygpath -w' - else - CYGPATH_W=echo - fi -fi -AC_SUBST([CYGPATH_W]) - -# Define the identity of the package. -dnl Distinguish between old-style and new-style calls. -m4_ifval([$2], -[AC_DIAGNOSE([obsolete], - [$0: two- and three-arguments forms are deprecated.]) -m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl - AC_SUBST([PACKAGE], [$1])dnl - AC_SUBST([VERSION], [$2])], -[_AM_SET_OPTIONS([$1])dnl -dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT. -m4_if( - m4_ifdef([AC_PACKAGE_NAME], [ok]):m4_ifdef([AC_PACKAGE_VERSION], [ok]), - [ok:ok],, - [m4_fatal([AC_INIT should be called with package and version arguments])])dnl - AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl - AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl - -_AM_IF_OPTION([no-define],, -[AC_DEFINE_UNQUOTED([PACKAGE], ["$PACKAGE"], [Name of package]) - AC_DEFINE_UNQUOTED([VERSION], ["$VERSION"], [Version number of package])])dnl - -# Some tools Automake needs. -AC_REQUIRE([AM_SANITY_CHECK])dnl -AC_REQUIRE([AC_ARG_PROGRAM])dnl -AM_MISSING_PROG([ACLOCAL], [aclocal-${am__api_version}]) -AM_MISSING_PROG([AUTOCONF], [autoconf]) -AM_MISSING_PROG([AUTOMAKE], [automake-${am__api_version}]) -AM_MISSING_PROG([AUTOHEADER], [autoheader]) -AM_MISSING_PROG([MAKEINFO], [makeinfo]) -AC_REQUIRE([AM_PROG_INSTALL_SH])dnl -AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl -AC_REQUIRE([AC_PROG_MKDIR_P])dnl -# For better backward compatibility. To be removed once Automake 1.9.x -# dies out for good. For more background, see: -# -# -AC_SUBST([mkdir_p], ['$(MKDIR_P)']) -# We need awk for the "check" target. The system "awk" is bad on -# some platforms. -AC_REQUIRE([AC_PROG_AWK])dnl -AC_REQUIRE([AC_PROG_MAKE_SET])dnl -AC_REQUIRE([AM_SET_LEADING_DOT])dnl -_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], - [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], - [_AM_PROG_TAR([v7])])]) -_AM_IF_OPTION([no-dependencies],, -[AC_PROVIDE_IFELSE([AC_PROG_CC], - [_AM_DEPENDENCIES([CC])], - [m4_define([AC_PROG_CC], - m4_defn([AC_PROG_CC])[_AM_DEPENDENCIES([CC])])])dnl -AC_PROVIDE_IFELSE([AC_PROG_CXX], - [_AM_DEPENDENCIES([CXX])], - [m4_define([AC_PROG_CXX], - m4_defn([AC_PROG_CXX])[_AM_DEPENDENCIES([CXX])])])dnl -AC_PROVIDE_IFELSE([AC_PROG_OBJC], - [_AM_DEPENDENCIES([OBJC])], - [m4_define([AC_PROG_OBJC], - m4_defn([AC_PROG_OBJC])[_AM_DEPENDENCIES([OBJC])])])dnl -AC_PROVIDE_IFELSE([AC_PROG_OBJCXX], - [_AM_DEPENDENCIES([OBJCXX])], - [m4_define([AC_PROG_OBJCXX], - m4_defn([AC_PROG_OBJCXX])[_AM_DEPENDENCIES([OBJCXX])])])dnl -]) -AC_REQUIRE([AM_SILENT_RULES])dnl -dnl The testsuite driver may need to know about EXEEXT, so add the -dnl 'am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This -dnl macro is hooked onto _AC_COMPILER_EXEEXT early, see below. -AC_CONFIG_COMMANDS_PRE(dnl -[m4_provide_if([_AM_COMPILER_EXEEXT], - [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl -]) -m4trace:/usr/share/aclocal-1.13/init.m4:136: -1- AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK], [# Compute $1's index in $config_headers. -_am_arg=$1 -_am_stamp_count=1 -for _am_header in $config_headers :; do - case $_am_header in - $_am_arg | $_am_arg:* ) - break ;; - * ) - _am_stamp_count=`expr $_am_stamp_count + 1` ;; - esac -done -echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) -m4trace:/usr/share/aclocal-1.13/install-sh.m4:11: -1- AC_DEFUN([AM_PROG_INSTALL_SH], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl -if test x"${install_sh}" != xset; then - case $am_aux_dir in - *\ * | *\ *) - install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; - *) - install_sh="\${SHELL} $am_aux_dir/install-sh" - esac -fi -AC_SUBST([install_sh])]) -m4trace:/usr/share/aclocal-1.13/lead-dot.m4:10: -1- AC_DEFUN([AM_SET_LEADING_DOT], [rm -rf .tst 2>/dev/null -mkdir .tst 2>/dev/null -if test -d .tst; then - am__leading_dot=. -else - am__leading_dot=_ -fi -rmdir .tst 2>/dev/null -AC_SUBST([am__leading_dot])]) -m4trace:/usr/share/aclocal-1.13/maintainer.m4:16: -1- AC_DEFUN([AM_MAINTAINER_MODE], [m4_case(m4_default([$1], [disable]), - [enable], [m4_define([am_maintainer_other], [disable])], - [disable], [m4_define([am_maintainer_other], [enable])], - [m4_define([am_maintainer_other], [enable]) - m4_warn([syntax], [unexpected argument to AM@&t@_MAINTAINER_MODE: $1])]) -AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) - dnl maintainer-mode's default is 'disable' unless 'enable' is passed - AC_ARG_ENABLE([maintainer-mode], - [AS_HELP_STRING([--]am_maintainer_other[-maintainer-mode], - am_maintainer_other[ make rules and dependencies not useful - (and sometimes confusing) to the casual installer])], - [USE_MAINTAINER_MODE=$enableval], - [USE_MAINTAINER_MODE=]m4_if(am_maintainer_other, [enable], [no], [yes])) - AC_MSG_RESULT([$USE_MAINTAINER_MODE]) - AM_CONDITIONAL([MAINTAINER_MODE], [test $USE_MAINTAINER_MODE = yes]) - MAINT=$MAINTAINER_MODE_TRUE - AC_SUBST([MAINT])dnl - -]) -m4trace:/usr/share/aclocal-1.13/make.m4:12: -1- AC_DEFUN([AM_MAKE_INCLUDE], [am_make=${MAKE-make} -cat > confinc << 'END' -am__doit: - @echo this is the am__doit target -.PHONY: am__doit -END -# If we don't find an include directive, just comment out the code. -AC_MSG_CHECKING([for style of include used by $am_make]) -am__include="#" -am__quote= -_am_result=none -# First try GNU make style include. -echo "include confinc" > confmf -# Ignore all kinds of additional output from 'make'. -case `$am_make -s -f confmf 2> /dev/null` in #( -*the\ am__doit\ target*) - am__include=include - am__quote= - _am_result=GNU - ;; -esac -# Now try BSD make style include. -if test "$am__include" = "#"; then - echo '.include "confinc"' > confmf - case `$am_make -s -f confmf 2> /dev/null` in #( - *the\ am__doit\ target*) - am__include=.include - am__quote="\"" - _am_result=BSD - ;; - esac -fi -AC_SUBST([am__include]) -AC_SUBST([am__quote]) -AC_MSG_RESULT([$_am_result]) -rm -f confinc confmf -]) -m4trace:/usr/share/aclocal-1.13/missing.m4:11: -1- AC_DEFUN([AM_MISSING_PROG], [AC_REQUIRE([AM_MISSING_HAS_RUN]) -$1=${$1-"${am_missing_run}$2"} -AC_SUBST($1)]) -m4trace:/usr/share/aclocal-1.13/missing.m4:20: -1- AC_DEFUN([AM_MISSING_HAS_RUN], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl -AC_REQUIRE_AUX_FILE([missing])dnl -if test x"${MISSING+set}" != xset; then - case $am_aux_dir in - *\ * | *\ *) - MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; - *) - MISSING="\${SHELL} $am_aux_dir/missing" ;; - esac -fi -# Use eval to expand $SHELL -if eval "$MISSING --is-lightweight"; then - am_missing_run="$MISSING " -else - am_missing_run= - AC_MSG_WARN(['missing' script is too old or missing]) -fi -]) -m4trace:/usr/share/aclocal-1.13/options.m4:11: -1- AC_DEFUN([_AM_MANGLE_OPTION], [[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) -m4trace:/usr/share/aclocal-1.13/options.m4:17: -1- AC_DEFUN([_AM_SET_OPTION], [m4_define(_AM_MANGLE_OPTION([$1]), [1])]) -m4trace:/usr/share/aclocal-1.13/options.m4:23: -1- AC_DEFUN([_AM_SET_OPTIONS], [m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) -m4trace:/usr/share/aclocal-1.13/options.m4:29: -1- AC_DEFUN([_AM_IF_OPTION], [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) -m4trace:/usr/share/aclocal-1.13/runlog.m4:12: -1- AC_DEFUN([AM_RUN_LOG], [{ echo "$as_me:$LINENO: $1" >&AS_MESSAGE_LOG_FD - ($1) >&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD - (exit $ac_status); }]) -m4trace:/usr/share/aclocal-1.13/sanity.m4:11: -1- AC_DEFUN([AM_SANITY_CHECK], [AC_MSG_CHECKING([whether build environment is sane]) -# Reject unsafe characters in $srcdir or the absolute working directory -# name. Accept space and tab only in the latter. -am_lf=' -' -case `pwd` in - *[[\\\"\#\$\&\'\`$am_lf]]*) - AC_MSG_ERROR([unsafe absolute working directory name]);; -esac -case $srcdir in - *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*) - AC_MSG_ERROR([unsafe srcdir value: '$srcdir']);; -esac - -# Do 'set' in a subshell so we don't clobber the current shell's -# arguments. Must try -L first in case configure is actually a -# symlink; some systems play weird games with the mod time of symlinks -# (eg FreeBSD returns the mod time of the symlink's containing -# directory). -if ( - am_has_slept=no - for am_try in 1 2; do - echo "timestamp, slept: $am_has_slept" > conftest.file - set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` - if test "$[*]" = "X"; then - # -L didn't work. - set X `ls -t "$srcdir/configure" conftest.file` - fi - if test "$[*]" != "X $srcdir/configure conftest.file" \ - && test "$[*]" != "X conftest.file $srcdir/configure"; then - - # If neither matched, then we have a broken ls. This can happen - # if, for instance, CONFIG_SHELL is bash and it inherits a - # broken ls alias from the environment. This has actually - # happened. Such a system could not be considered "sane". - AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken - alias in your environment]) - fi - if test "$[2]" = conftest.file || test $am_try -eq 2; then - break - fi - # Just in case. - sleep 1 - am_has_slept=yes - done - test "$[2]" = conftest.file - ) -then - # Ok. - : -else - AC_MSG_ERROR([newly created file is older than distributed files! -Check your system clock]) -fi -AC_MSG_RESULT([yes]) -# If we didn't sleep, we still need to ensure time stamps of config.status and -# generated files are strictly newer. -am_sleep_pid= -if grep 'slept: no' conftest.file >/dev/null 2>&1; then - ( sleep 1 ) & - am_sleep_pid=$! -fi -AC_CONFIG_COMMANDS_PRE( - [AC_MSG_CHECKING([that generated files are newer than configure]) - if test -n "$am_sleep_pid"; then - # Hide warnings about reused PIDs. - wait $am_sleep_pid 2>/dev/null - fi - AC_MSG_RESULT([done])]) -rm -f conftest.file -]) -m4trace:/usr/share/aclocal-1.13/silent.m4:12: -1- AC_DEFUN([AM_SILENT_RULES], [AC_ARG_ENABLE([silent-rules], [dnl -AS_HELP_STRING( - [--enable-silent-rules], - [less verbose build output (undo: "make V=1")]) -AS_HELP_STRING( - [--disable-silent-rules], - [verbose build output (undo: "make V=0")])dnl -]) -case $enable_silent_rules in @%:@ ((( - yes) AM_DEFAULT_VERBOSITY=0;; - no) AM_DEFAULT_VERBOSITY=1;; - *) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);; -esac -dnl -dnl A few 'make' implementations (e.g., NonStop OS and NextStep) -dnl do not support nested variable expansions. -dnl See automake bug#9928 and bug#10237. -am_make=${MAKE-make} -AC_CACHE_CHECK([whether $am_make supports nested variables], - [am_cv_make_support_nested_variables], - [if AS_ECHO([['TRUE=$(BAR$(V)) -BAR0=false -BAR1=true -V=1 -am__doit: - @$(TRUE) -.PHONY: am__doit']]) | $am_make -f - >/dev/null 2>&1; then - am_cv_make_support_nested_variables=yes -else - am_cv_make_support_nested_variables=no -fi]) -if test $am_cv_make_support_nested_variables = yes; then - dnl Using '$V' instead of '$(V)' breaks IRIX make. - AM_V='$(V)' - AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' -else - AM_V=$AM_DEFAULT_VERBOSITY - AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY -fi -AC_SUBST([AM_V])dnl -AM_SUBST_NOTMAKE([AM_V])dnl -AC_SUBST([AM_DEFAULT_V])dnl -AM_SUBST_NOTMAKE([AM_DEFAULT_V])dnl -AC_SUBST([AM_DEFAULT_VERBOSITY])dnl -AM_BACKSLASH='\' -AC_SUBST([AM_BACKSLASH])dnl -_AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl -]) -m4trace:/usr/share/aclocal-1.13/strip.m4:17: -1- AC_DEFUN([AM_PROG_INSTALL_STRIP], [AC_REQUIRE([AM_PROG_INSTALL_SH])dnl -# Installed binaries are usually stripped using 'strip' when the user -# run "make install-strip". However 'strip' might not be the right -# tool to use in cross-compilation environments, therefore Automake -# will honor the 'STRIP' environment variable to overrule this program. -dnl Don't test for $cross_compiling = yes, because it might be 'maybe'. -if test "$cross_compiling" != no; then - AC_CHECK_TOOL([STRIP], [strip], :) -fi -INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" -AC_SUBST([INSTALL_STRIP_PROGRAM])]) -m4trace:/usr/share/aclocal-1.13/substnot.m4:12: -1- AC_DEFUN([_AM_SUBST_NOTMAKE]) -m4trace:/usr/share/aclocal-1.13/substnot.m4:17: -1- AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) -m4trace:/usr/share/aclocal-1.13/tar.m4:23: -1- AC_DEFUN([_AM_PROG_TAR], [# Always define AMTAR for backward compatibility. Yes, it's still used -# in the wild :-( We should find a proper way to deprecate it ... -AC_SUBST([AMTAR], ['$${TAR-tar}']) - -# We'll loop over all known methods to create a tar archive until one works. -_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' - -m4_if([$1], [v7], - [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'], - - [m4_case([$1], - [ustar], - [# The POSIX 1988 'ustar' format is defined with fixed-size fields. - # There is notably a 21 bits limit for the UID and the GID. In fact, - # the 'pax' utility can hang on bigger UID/GID (see automake bug#8343 - # and bug#13588). - am_max_uid=2097151 # 2^21 - 1 - am_max_gid=$am_max_uid - # The $UID and $GID variables are not portable, so we need to resort - # to the POSIX-mandated id(1) utility. Errors in the 'id' calls - # below are definitely unexpected, so allow the users to see them - # (that is, avoid stderr redirection). - am_uid=`id -u || echo unknown` - am_gid=`id -g || echo unknown` - AC_MSG_CHECKING([whether UID '$am_uid' is supported by ustar format]) - if test $am_uid -le $am_max_uid; then - AC_MSG_RESULT([yes]) - else - AC_MSG_RESULT([no]) - _am_tools=none - fi - AC_MSG_CHECKING([whether GID '$am_gid' is supported by ustar format]) - if test $am_gid -le $am_max_gid; then - AC_MSG_RESULT([yes]) - else - AC_MSG_RESULT([no]) - _am_tools=none - fi], - - [pax], - [], - - [m4_fatal([Unknown tar format])]) - - AC_MSG_CHECKING([how to create a $1 tar archive]) - - # Go ahead even if we have the value already cached. We do so because we - # need to set the values for the 'am__tar' and 'am__untar' variables. - _am_tools=${am_cv_prog_tar_$1-$_am_tools} - - for _am_tool in $_am_tools; do - case $_am_tool in - gnutar) - for _am_tar in tar gnutar gtar; do - AM_RUN_LOG([$_am_tar --version]) && break - done - am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"' - am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"' - am__untar="$_am_tar -xf -" - ;; - plaintar) - # Must skip GNU tar: if it does not support --format= it doesn't create - # ustar tarball either. - (tar --version) >/dev/null 2>&1 && continue - am__tar='tar chf - "$$tardir"' - am__tar_='tar chf - "$tardir"' - am__untar='tar xf -' - ;; - pax) - am__tar='pax -L -x $1 -w "$$tardir"' - am__tar_='pax -L -x $1 -w "$tardir"' - am__untar='pax -r' - ;; - cpio) - am__tar='find "$$tardir" -print | cpio -o -H $1 -L' - am__tar_='find "$tardir" -print | cpio -o -H $1 -L' - am__untar='cpio -i -H $1 -d' - ;; - none) - am__tar=false - am__tar_=false - am__untar=false - ;; - esac - - # If the value was cached, stop now. We just wanted to have am__tar - # and am__untar set. - test -n "${am_cv_prog_tar_$1}" && break - - # tar/untar a dummy directory, and stop if the command works. - rm -rf conftest.dir - mkdir conftest.dir - echo GrepMe > conftest.dir/file - AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) - rm -rf conftest.dir - if test -s conftest.tar; then - AM_RUN_LOG([$am__untar /dev/null 2>&1 && break - fi - done - rm -rf conftest.dir - - AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool]) - AC_MSG_RESULT([$am_cv_prog_tar_$1])]) - -AC_SUBST([am__tar]) -AC_SUBST([am__untar]) -]) -m4trace:m4/acx_pthread.m4:49: -1- AC_DEFUN([ACX_PTHREAD], [ -AC_REQUIRE([AC_CANONICAL_HOST]) -AC_LANG_SAVE -AC_LANG_C -acx_pthread_ok=no - -# We used to check for pthread.h first, but this fails if pthread.h -# requires special compiler flags (e.g. on True64 or Sequent). -# It gets checked for in the link test anyway. - -# First of all, check if the user has set any of the PTHREAD_LIBS, -# etcetera environment variables, and if threads linking works using -# them: -if test x"$PTHREAD_LIBS$PTHREAD_CFLAGS" != x; then - save_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS $PTHREAD_CFLAGS" - save_LIBS="$LIBS" - LIBS="$PTHREAD_LIBS $LIBS" - AC_MSG_CHECKING([for pthread_join in LIBS=$PTHREAD_LIBS with CFLAGS=$PTHREAD_CFLAGS]) - AC_TRY_LINK_FUNC(pthread_join, acx_pthread_ok=yes) - AC_MSG_RESULT($acx_pthread_ok) - if test x"$acx_pthread_ok" = xno; then - PTHREAD_LIBS="" - PTHREAD_CFLAGS="" - fi - LIBS="$save_LIBS" - CFLAGS="$save_CFLAGS" -fi - -# We must check for the threads library under a number of different -# names; the ordering is very important because some systems -# (e.g. DEC) have both -lpthread and -lpthreads, where one of the -# libraries is broken (non-POSIX). - -# Create a list of thread flags to try. Items starting with a "-" are -# C compiler flags, and other items are library names, except for "none" -# which indicates that we try without any flags at all, and "pthread-config" -# which is a program returning the flags for the Pth emulation library. - -acx_pthread_flags="pthreads none -Kthread -kthread lthread -pthread -pthreads -mthreads pthread --thread-safe -mt pthread-config" - -# The ordering *is* (sometimes) important. Some notes on the -# individual items follow: - -# pthreads: AIX (must check this before -lpthread) -# none: in case threads are in libc; should be tried before -Kthread and -# other compiler flags to prevent continual compiler warnings -# -Kthread: Sequent (threads in libc, but -Kthread needed for pthread.h) -# -kthread: FreeBSD kernel threads (preferred to -pthread since SMP-able) -# lthread: LinuxThreads port on FreeBSD (also preferred to -pthread) -# -pthread: Linux/gcc (kernel threads), BSD/gcc (userland threads) -# -pthreads: Solaris/gcc -# -mthreads: Mingw32/gcc, Lynx/gcc -# -mt: Sun Workshop C (may only link SunOS threads [-lthread], but it -# doesn't hurt to check since this sometimes defines pthreads too; -# also defines -D_REENTRANT) -# ... -mt is also the pthreads flag for HP/aCC -# pthread: Linux, etcetera -# --thread-safe: KAI C++ -# pthread-config: use pthread-config program (for GNU Pth library) - -case "${host_cpu}-${host_os}" in - *solaris*) - - # On Solaris (at least, for some versions), libc contains stubbed - # (non-functional) versions of the pthreads routines, so link-based - # tests will erroneously succeed. (We need to link with -pthreads/-mt/ - # -lpthread.) (The stubs are missing pthread_cleanup_push, or rather - # a function called by this macro, so we could check for that, but - # who knows whether they'll stub that too in a future libc.) So, - # we'll just look for -pthreads and -lpthread first: - - acx_pthread_flags="-pthreads pthread -mt -pthread $acx_pthread_flags" - ;; -esac - -if test x"$acx_pthread_ok" = xno; then -for flag in $acx_pthread_flags; do - - case $flag in - none) - AC_MSG_CHECKING([whether pthreads work without any flags]) - ;; - - -*) - AC_MSG_CHECKING([whether pthreads work with $flag]) - PTHREAD_CFLAGS="$flag" - ;; - - pthread-config) - AC_CHECK_PROG(acx_pthread_config, pthread-config, yes, no) - if test x"$acx_pthread_config" = xno; then continue; fi - PTHREAD_CFLAGS="`pthread-config --cflags`" - PTHREAD_LIBS="`pthread-config --ldflags` `pthread-config --libs`" - ;; - - *) - AC_MSG_CHECKING([for the pthreads library -l$flag]) - PTHREAD_LIBS="-l$flag" - ;; - esac - - save_LIBS="$LIBS" - save_CFLAGS="$CFLAGS" - LIBS="$PTHREAD_LIBS $LIBS" - CFLAGS="$CFLAGS $PTHREAD_CFLAGS" - - # Check for various functions. We must include pthread.h, - # since some functions may be macros. (On the Sequent, we - # need a special flag -Kthread to make this header compile.) - # We check for pthread_join because it is in -lpthread on IRIX - # while pthread_create is in libc. We check for pthread_attr_init - # due to DEC craziness with -lpthreads. We check for - # pthread_cleanup_push because it is one of the few pthread - # functions on Solaris that doesn't have a non-functional libc stub. - # We try pthread_create on general principles. - AC_TRY_LINK([#include ], - [pthread_t th; pthread_join(th, 0); - pthread_attr_init(0); pthread_cleanup_push(0, 0); - pthread_create(0,0,0,0); pthread_cleanup_pop(0); ], - [acx_pthread_ok=yes]) - - LIBS="$save_LIBS" - CFLAGS="$save_CFLAGS" - - AC_MSG_RESULT($acx_pthread_ok) - if test "x$acx_pthread_ok" = xyes; then - break; - fi - - PTHREAD_LIBS="" - PTHREAD_CFLAGS="" -done -fi - -# Various other checks: -if test "x$acx_pthread_ok" = xyes; then - save_LIBS="$LIBS" - LIBS="$PTHREAD_LIBS $LIBS" - save_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS $PTHREAD_CFLAGS" - - # Detect AIX lossage: JOINABLE attribute is called UNDETACHED. - AC_MSG_CHECKING([for joinable pthread attribute]) - attr_name=unknown - for attr in PTHREAD_CREATE_JOINABLE PTHREAD_CREATE_UNDETACHED; do - AC_TRY_LINK([#include ], [int attr=$attr; return attr;], - [attr_name=$attr; break]) - done - AC_MSG_RESULT($attr_name) - if test "$attr_name" != PTHREAD_CREATE_JOINABLE; then - AC_DEFINE_UNQUOTED(PTHREAD_CREATE_JOINABLE, $attr_name, - [Define to necessary symbol if this constant - uses a non-standard name on your system.]) - fi - - AC_MSG_CHECKING([if more special flags are required for pthreads]) - flag=no - case "${host_cpu}-${host_os}" in - *-aix* | *-freebsd* | *-darwin*) flag="-D_THREAD_SAFE";; - *solaris* | *-osf* | *-hpux*) flag="-D_REENTRANT";; - esac - AC_MSG_RESULT(${flag}) - if test "x$flag" != xno; then - PTHREAD_CFLAGS="$flag $PTHREAD_CFLAGS" - fi - - LIBS="$save_LIBS" - CFLAGS="$save_CFLAGS" - - # More AIX lossage: must compile with xlc_r or cc_r - if test x"$GCC" != xyes; then - AC_CHECK_PROGS(PTHREAD_CC, xlc_r cc_r, ${CC}) - else - PTHREAD_CC=$CC - fi -else - PTHREAD_CC="$CC" -fi - -AC_SUBST(PTHREAD_LIBS) -AC_SUBST(PTHREAD_CFLAGS) -AC_SUBST(PTHREAD_CC) - -# Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND: -if test x"$acx_pthread_ok" = xyes; then - ifelse([$1],,AC_DEFINE(HAVE_PTHREAD,1,[Define if you have POSIX threads libraries and header files.]),[$1]) - : -else - acx_pthread_ok=no - $2 -fi -AC_LANG_RESTORE -]) -m4trace:m4/intltool.m4:27: -1- AC_DEFUN([IT_PROG_INTLTOOL], [ -AC_PREREQ([2.50])dnl -AC_REQUIRE([AM_NLS])dnl - -case "$am__api_version" in - 1.[01234]) - AC_MSG_ERROR([Automake 1.5 or newer is required to use intltool]) - ;; - *) - ;; -esac - -if test -n "$1"; then - AC_MSG_CHECKING([for intltool >= $1]) - - INTLTOOL_REQUIRED_VERSION_AS_INT=`echo $1 | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'` - INTLTOOL_APPLIED_VERSION=`intltool-update --version | head -1 | cut -d" " -f3` - [INTLTOOL_APPLIED_VERSION_AS_INT=`echo $INTLTOOL_APPLIED_VERSION | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'` - ] - AC_MSG_RESULT([$INTLTOOL_APPLIED_VERSION found]) - test "$INTLTOOL_APPLIED_VERSION_AS_INT" -ge "$INTLTOOL_REQUIRED_VERSION_AS_INT" || - AC_MSG_ERROR([Your intltool is too old. You need intltool $1 or later.]) -fi - -AC_PATH_PROG(INTLTOOL_UPDATE, [intltool-update]) -AC_PATH_PROG(INTLTOOL_MERGE, [intltool-merge]) -AC_PATH_PROG(INTLTOOL_EXTRACT, [intltool-extract]) -if test -z "$INTLTOOL_UPDATE" -o -z "$INTLTOOL_MERGE" -o -z "$INTLTOOL_EXTRACT"; then - AC_MSG_ERROR([The intltool scripts were not found. Please install intltool.]) -fi - - INTLTOOL_DESKTOP_RULE='%.desktop: %.desktop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' -INTLTOOL_DIRECTORY_RULE='%.directory: %.directory.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' - INTLTOOL_KEYS_RULE='%.keys: %.keys.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -k -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' - INTLTOOL_PROP_RULE='%.prop: %.prop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' - INTLTOOL_OAF_RULE='%.oaf: %.oaf.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -o -p $(top_srcdir)/po $< [$]@' - INTLTOOL_PONG_RULE='%.pong: %.pong.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' - INTLTOOL_SERVER_RULE='%.server: %.server.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -o -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' - INTLTOOL_SHEET_RULE='%.sheet: %.sheet.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' -INTLTOOL_SOUNDLIST_RULE='%.soundlist: %.soundlist.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' - INTLTOOL_UI_RULE='%.ui: %.ui.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' - INTLTOOL_XML_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' - INTLTOOL_XML_NOMERGE_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u /tmp $< [$]@' - INTLTOOL_XAM_RULE='%.xam: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' - INTLTOOL_KBD_RULE='%.kbd: %.kbd.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -m -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' - INTLTOOL_CAVES_RULE='%.caves: %.caves.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' - INTLTOOL_SCHEMAS_RULE='%.schemas: %.schemas.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -s -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' - INTLTOOL_THEME_RULE='%.theme: %.theme.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' - INTLTOOL_SERVICE_RULE='%.service: %.service.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' - INTLTOOL_POLICY_RULE='%.policy: %.policy.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' - -_IT_SUBST(INTLTOOL_DESKTOP_RULE) -_IT_SUBST(INTLTOOL_DIRECTORY_RULE) -_IT_SUBST(INTLTOOL_KEYS_RULE) -_IT_SUBST(INTLTOOL_PROP_RULE) -_IT_SUBST(INTLTOOL_OAF_RULE) -_IT_SUBST(INTLTOOL_PONG_RULE) -_IT_SUBST(INTLTOOL_SERVER_RULE) -_IT_SUBST(INTLTOOL_SHEET_RULE) -_IT_SUBST(INTLTOOL_SOUNDLIST_RULE) -_IT_SUBST(INTLTOOL_UI_RULE) -_IT_SUBST(INTLTOOL_XAM_RULE) -_IT_SUBST(INTLTOOL_KBD_RULE) -_IT_SUBST(INTLTOOL_XML_RULE) -_IT_SUBST(INTLTOOL_XML_NOMERGE_RULE) -_IT_SUBST(INTLTOOL_CAVES_RULE) -_IT_SUBST(INTLTOOL_SCHEMAS_RULE) -_IT_SUBST(INTLTOOL_THEME_RULE) -_IT_SUBST(INTLTOOL_SERVICE_RULE) -_IT_SUBST(INTLTOOL_POLICY_RULE) - -# Check the gettext tools to make sure they are GNU -AC_PATH_PROG(XGETTEXT, xgettext) -AC_PATH_PROG(MSGMERGE, msgmerge) -AC_PATH_PROG(MSGFMT, msgfmt) -AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT) -if test -z "$XGETTEXT" -o -z "$MSGMERGE" -o -z "$MSGFMT"; then - AC_MSG_ERROR([GNU gettext tools not found; required for intltool]) -fi -xgversion="`$XGETTEXT --version|grep '(GNU ' 2> /dev/null`" -mmversion="`$MSGMERGE --version|grep '(GNU ' 2> /dev/null`" -mfversion="`$MSGFMT --version|grep '(GNU ' 2> /dev/null`" -if test -z "$xgversion" -o -z "$mmversion" -o -z "$mfversion"; then - AC_MSG_ERROR([GNU gettext tools not found; required for intltool]) -fi - -AC_PATH_PROG(INTLTOOL_PERL, perl) -if test -z "$INTLTOOL_PERL"; then - AC_MSG_ERROR([perl not found]) -fi -AC_MSG_CHECKING([for perl >= 5.8.1]) -$INTLTOOL_PERL -e "use 5.8.1;" > /dev/null 2>&1 -if test $? -ne 0; then - AC_MSG_ERROR([perl 5.8.1 is required for intltool]) -else - IT_PERL_VERSION="`$INTLTOOL_PERL -e \"printf '%vd', $^V\"`" - AC_MSG_RESULT([$IT_PERL_VERSION]) -fi -if test "x$2" != "xno-xml"; then - AC_MSG_CHECKING([for XML::Parser]) - if `$INTLTOOL_PERL -e "require XML::Parser" 2>/dev/null`; then - AC_MSG_RESULT([ok]) - else - AC_MSG_ERROR([XML::Parser perl module is required for intltool]) - fi -fi - -# Substitute ALL_LINGUAS so we can use it in po/Makefile -AC_SUBST(ALL_LINGUAS) - -# Set DATADIRNAME correctly if it is not set yet -# (copied from glib-gettext.m4) -if test -z "$DATADIRNAME"; then - AC_LINK_IFELSE( - [AC_LANG_PROGRAM([[]], - [[extern int _nl_msg_cat_cntr; - return _nl_msg_cat_cntr]])], - [DATADIRNAME=share], - [case $host in - *-*-solaris*) - dnl On Solaris, if bind_textdomain_codeset is in libc, - dnl GNU format message catalog is always supported, - dnl since both are added to the libc all together. - dnl Hence, we'd like to go with DATADIRNAME=share - dnl in this case. - AC_CHECK_FUNC(bind_textdomain_codeset, - [DATADIRNAME=share], [DATADIRNAME=lib]) - ;; - *) - [DATADIRNAME=lib] - ;; - esac]) -fi -AC_SUBST(DATADIRNAME) - -IT_PO_SUBDIR([po]) - -]) -m4trace:m4/intltool.m4:172: -1- AC_DEFUN([IT_PO_SUBDIR], [AC_PREREQ([2.53])dnl We use ac_top_srcdir inside AC_CONFIG_COMMANDS. -dnl -dnl The following CONFIG_COMMANDS should be executed at the very end -dnl of config.status. -AC_CONFIG_COMMANDS_PRE([ - AC_CONFIG_COMMANDS([$1/stamp-it], [ - if [ ! grep "^# INTLTOOL_MAKEFILE$" "$1/Makefile.in" > /dev/null ]; then - AC_MSG_ERROR([$1/Makefile.in.in was not created by intltoolize.]) - fi - rm -f "$1/stamp-it" "$1/stamp-it.tmp" "$1/POTFILES" "$1/Makefile.tmp" - >"$1/stamp-it.tmp" - [sed '/^#/d - s/^[[].*] *// - /^[ ]*$/d - '"s|^| $ac_top_srcdir/|" \ - "$srcdir/$1/POTFILES.in" | sed '$!s/$/ \\/' >"$1/POTFILES" - ] - [sed '/^POTFILES =/,/[^\\]$/ { - /^POTFILES =/!d - r $1/POTFILES - } - ' "$1/Makefile.in" >"$1/Makefile"] - rm -f "$1/Makefile.tmp" - mv "$1/stamp-it.tmp" "$1/stamp-it" - ]) -])dnl -]) -m4trace:m4/intltool.m4:205: -1- AC_DEFUN([_IT_SUBST], [ -AC_SUBST([$1]) -m4_ifdef([_AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE([$1])]) - -]) -m4trace:m4/intltool.m4:213: -1- AU_DEFUN([AC_PROG_INTLTOOL], [m4_if($#, 0, [IT_PROG_INTLTOOL], [IT_PROG_INTLTOOL($@)])]) -m4trace:m4/intltool.m4:213: -1- AC_DEFUN([AC_PROG_INTLTOOL], [AC_DIAGNOSE([obsolete], [The macro `AC_PROG_INTLTOOL' is obsolete. -You should run autoupdate.])dnl -m4_if($#, 0, [IT_PROG_INTLTOOL], [IT_PROG_INTLTOOL($@)])]) -m4trace:m4/nls.m4:22: -1- AC_DEFUN([AM_NLS], [ - AC_MSG_CHECKING([whether NLS is requested]) - dnl Default is enabled NLS - AC_ARG_ENABLE(nls, - [ --disable-nls do not use Native Language Support], - USE_NLS=$enableval, USE_NLS=yes) - AC_MSG_RESULT($USE_NLS) - AC_SUBST(USE_NLS) -]) -m4trace:configure.ac:16: -1- m4_pattern_forbid([^_?A[CHUM]_]) -m4trace:configure.ac:16: -1- m4_pattern_forbid([_AC_]) -m4trace:configure.ac:16: -1- m4_pattern_forbid([^LIBOBJS$], [do not use LIBOBJS directly, use AC_LIBOBJ (see section `AC_LIBOBJ vs LIBOBJS']) -m4trace:configure.ac:16: -1- m4_pattern_allow([^AS_FLAGS$]) -m4trace:configure.ac:16: -1- m4_pattern_forbid([^_?m4_]) -m4trace:configure.ac:16: -1- m4_pattern_forbid([^dnl$]) -m4trace:configure.ac:16: -1- m4_pattern_forbid([^_?AS_]) -m4trace:configure.ac:16: -1- m4_pattern_allow([^SHELL$]) -m4trace:configure.ac:16: -1- m4_pattern_allow([^PATH_SEPARATOR$]) -m4trace:configure.ac:16: -1- m4_pattern_allow([^PACKAGE_NAME$]) -m4trace:configure.ac:16: -1- m4_pattern_allow([^PACKAGE_TARNAME$]) -m4trace:configure.ac:16: -1- m4_pattern_allow([^PACKAGE_VERSION$]) -m4trace:configure.ac:16: -1- m4_pattern_allow([^PACKAGE_STRING$]) -m4trace:configure.ac:16: -1- m4_pattern_allow([^PACKAGE_BUGREPORT$]) -m4trace:configure.ac:16: -1- m4_pattern_allow([^PACKAGE_URL$]) -m4trace:configure.ac:16: -1- m4_pattern_allow([^exec_prefix$]) -m4trace:configure.ac:16: -1- m4_pattern_allow([^prefix$]) -m4trace:configure.ac:16: -1- m4_pattern_allow([^program_transform_name$]) -m4trace:configure.ac:16: -1- m4_pattern_allow([^bindir$]) -m4trace:configure.ac:16: -1- m4_pattern_allow([^sbindir$]) -m4trace:configure.ac:16: -1- m4_pattern_allow([^libexecdir$]) -m4trace:configure.ac:16: -1- m4_pattern_allow([^datarootdir$]) -m4trace:configure.ac:16: -1- m4_pattern_allow([^datadir$]) -m4trace:configure.ac:16: -1- m4_pattern_allow([^sysconfdir$]) -m4trace:configure.ac:16: -1- m4_pattern_allow([^sharedstatedir$]) -m4trace:configure.ac:16: -1- m4_pattern_allow([^localstatedir$]) -m4trace:configure.ac:16: -1- m4_pattern_allow([^includedir$]) -m4trace:configure.ac:16: -1- m4_pattern_allow([^oldincludedir$]) -m4trace:configure.ac:16: -1- m4_pattern_allow([^docdir$]) -m4trace:configure.ac:16: -1- m4_pattern_allow([^infodir$]) -m4trace:configure.ac:16: -1- m4_pattern_allow([^htmldir$]) -m4trace:configure.ac:16: -1- m4_pattern_allow([^dvidir$]) -m4trace:configure.ac:16: -1- m4_pattern_allow([^pdfdir$]) -m4trace:configure.ac:16: -1- m4_pattern_allow([^psdir$]) -m4trace:configure.ac:16: -1- m4_pattern_allow([^libdir$]) -m4trace:configure.ac:16: -1- m4_pattern_allow([^localedir$]) -m4trace:configure.ac:16: -1- m4_pattern_allow([^mandir$]) -m4trace:configure.ac:16: -1- m4_pattern_allow([^PACKAGE_NAME$]) -m4trace:configure.ac:16: -1- m4_pattern_allow([^PACKAGE_TARNAME$]) -m4trace:configure.ac:16: -1- m4_pattern_allow([^PACKAGE_VERSION$]) -m4trace:configure.ac:16: -1- m4_pattern_allow([^PACKAGE_STRING$]) -m4trace:configure.ac:16: -1- m4_pattern_allow([^PACKAGE_BUGREPORT$]) -m4trace:configure.ac:16: -1- m4_pattern_allow([^PACKAGE_URL$]) -m4trace:configure.ac:16: -1- m4_pattern_allow([^DEFS$]) -m4trace:configure.ac:16: -1- m4_pattern_allow([^ECHO_C$]) -m4trace:configure.ac:16: -1- m4_pattern_allow([^ECHO_N$]) -m4trace:configure.ac:16: -1- m4_pattern_allow([^ECHO_T$]) -m4trace:configure.ac:16: -1- m4_pattern_allow([^LIBS$]) -m4trace:configure.ac:16: -1- m4_pattern_allow([^build_alias$]) -m4trace:configure.ac:16: -1- m4_pattern_allow([^host_alias$]) -m4trace:configure.ac:16: -1- m4_pattern_allow([^target_alias$]) -m4trace:configure.ac:17: -1- AM_SILENT_RULES([yes]) -m4trace:configure.ac:17: -1- m4_pattern_allow([^AM_V$]) -m4trace:configure.ac:17: -1- AM_SUBST_NOTMAKE([AM_V]) -m4trace:configure.ac:17: -1- _AM_SUBST_NOTMAKE([AM_V]) -m4trace:configure.ac:17: -1- m4_pattern_allow([^AM_DEFAULT_V$]) -m4trace:configure.ac:17: -1- AM_SUBST_NOTMAKE([AM_DEFAULT_V]) -m4trace:configure.ac:17: -1- _AM_SUBST_NOTMAKE([AM_DEFAULT_V]) -m4trace:configure.ac:17: -1- m4_pattern_allow([^AM_DEFAULT_VERBOSITY$]) -m4trace:configure.ac:17: -1- m4_pattern_allow([^AM_BACKSLASH$]) -m4trace:configure.ac:17: -1- _AM_SUBST_NOTMAKE([AM_BACKSLASH]) -m4trace:configure.ac:19: -1- AM_INIT_AUTOMAKE([gnu]) -m4trace:configure.ac:19: -1- m4_pattern_allow([^AM_[A-Z]+FLAGS$]) -m4trace:configure.ac:19: -1- AM_SET_CURRENT_AUTOMAKE_VERSION -m4trace:configure.ac:19: -1- AM_AUTOMAKE_VERSION([1.13.3]) -m4trace:configure.ac:19: -1- _AM_AUTOCONF_VERSION([2.69]) -m4trace:configure.ac:19: -1- m4_pattern_allow([^INSTALL_PROGRAM$]) -m4trace:configure.ac:19: -1- m4_pattern_allow([^INSTALL_SCRIPT$]) -m4trace:configure.ac:19: -1- m4_pattern_allow([^INSTALL_DATA$]) -m4trace:configure.ac:19: -1- m4_pattern_allow([^am__isrc$]) -m4trace:configure.ac:19: -1- _AM_SUBST_NOTMAKE([am__isrc]) -m4trace:configure.ac:19: -1- m4_pattern_allow([^CYGPATH_W$]) -m4trace:configure.ac:19: -1- _AM_SET_OPTIONS([gnu]) -m4trace:configure.ac:19: -1- _AM_SET_OPTION([gnu]) -m4trace:configure.ac:19: -2- _AM_MANGLE_OPTION([gnu]) -m4trace:configure.ac:19: -1- m4_pattern_allow([^PACKAGE$]) -m4trace:configure.ac:19: -1- m4_pattern_allow([^VERSION$]) -m4trace:configure.ac:19: -1- _AM_IF_OPTION([no-define], [], [AC_DEFINE_UNQUOTED([PACKAGE], ["$PACKAGE"], [Name of package]) - AC_DEFINE_UNQUOTED([VERSION], ["$VERSION"], [Version number of package])]) -m4trace:configure.ac:19: -2- _AM_MANGLE_OPTION([no-define]) -m4trace:configure.ac:19: -1- m4_pattern_allow([^PACKAGE$]) -m4trace:configure.ac:19: -1- m4_pattern_allow([^VERSION$]) -m4trace:configure.ac:19: -1- AM_SANITY_CHECK -m4trace:configure.ac:19: -1- AM_MISSING_PROG([ACLOCAL], [aclocal-${am__api_version}]) -m4trace:configure.ac:19: -1- AM_MISSING_HAS_RUN -m4trace:configure.ac:19: -1- AM_AUX_DIR_EXPAND -m4trace:configure.ac:19: -1- m4_pattern_allow([^ACLOCAL$]) -m4trace:configure.ac:19: -1- AM_MISSING_PROG([AUTOCONF], [autoconf]) -m4trace:configure.ac:19: -1- m4_pattern_allow([^AUTOCONF$]) -m4trace:configure.ac:19: -1- AM_MISSING_PROG([AUTOMAKE], [automake-${am__api_version}]) -m4trace:configure.ac:19: -1- m4_pattern_allow([^AUTOMAKE$]) -m4trace:configure.ac:19: -1- AM_MISSING_PROG([AUTOHEADER], [autoheader]) -m4trace:configure.ac:19: -1- m4_pattern_allow([^AUTOHEADER$]) -m4trace:configure.ac:19: -1- AM_MISSING_PROG([MAKEINFO], [makeinfo]) -m4trace:configure.ac:19: -1- m4_pattern_allow([^MAKEINFO$]) -m4trace:configure.ac:19: -1- AM_PROG_INSTALL_SH -m4trace:configure.ac:19: -1- m4_pattern_allow([^install_sh$]) -m4trace:configure.ac:19: -1- AM_PROG_INSTALL_STRIP -m4trace:configure.ac:19: -1- m4_pattern_allow([^STRIP$]) -m4trace:configure.ac:19: -1- m4_pattern_allow([^INSTALL_STRIP_PROGRAM$]) -m4trace:configure.ac:19: -1- m4_pattern_allow([^MKDIR_P$]) -m4trace:configure.ac:19: -1- m4_pattern_allow([^mkdir_p$]) -m4trace:configure.ac:19: -1- m4_pattern_allow([^AWK$]) -m4trace:configure.ac:19: -1- m4_pattern_allow([^SET_MAKE$]) -m4trace:configure.ac:19: -1- AM_SET_LEADING_DOT -m4trace:configure.ac:19: -1- m4_pattern_allow([^am__leading_dot$]) -m4trace:configure.ac:19: -1- _AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], - [_AM_PROG_TAR([v7])])]) -m4trace:configure.ac:19: -2- _AM_MANGLE_OPTION([tar-ustar]) -m4trace:configure.ac:19: -1- _AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], [_AM_PROG_TAR([v7])]) -m4trace:configure.ac:19: -2- _AM_MANGLE_OPTION([tar-pax]) -m4trace:configure.ac:19: -1- _AM_PROG_TAR([v7]) -m4trace:configure.ac:19: -1- m4_pattern_allow([^AMTAR$]) -m4trace:configure.ac:19: -1- m4_pattern_allow([^am__tar$]) -m4trace:configure.ac:19: -1- m4_pattern_allow([^am__untar$]) -m4trace:configure.ac:19: -1- _AM_IF_OPTION([no-dependencies], [], [AC_PROVIDE_IFELSE([AC_PROG_CC], - [_AM_DEPENDENCIES([CC])], - [m4_define([AC_PROG_CC], - m4_defn([AC_PROG_CC])[_AM_DEPENDENCIES([CC])])])dnl -AC_PROVIDE_IFELSE([AC_PROG_CXX], - [_AM_DEPENDENCIES([CXX])], - [m4_define([AC_PROG_CXX], - m4_defn([AC_PROG_CXX])[_AM_DEPENDENCIES([CXX])])])dnl -AC_PROVIDE_IFELSE([AC_PROG_OBJC], - [_AM_DEPENDENCIES([OBJC])], - [m4_define([AC_PROG_OBJC], - m4_defn([AC_PROG_OBJC])[_AM_DEPENDENCIES([OBJC])])])dnl -AC_PROVIDE_IFELSE([AC_PROG_OBJCXX], - [_AM_DEPENDENCIES([OBJCXX])], - [m4_define([AC_PROG_OBJCXX], - m4_defn([AC_PROG_OBJCXX])[_AM_DEPENDENCIES([OBJCXX])])])dnl -]) -m4trace:configure.ac:19: -2- _AM_MANGLE_OPTION([no-dependencies]) -m4trace:configure.ac:20: -1- AC_CONFIG_MACRO_DIR([m4]) -m4trace:configure.ac:22: -1- AM_MAINTAINER_MODE([disable]) -m4trace:configure.ac:22: -1- AM_CONDITIONAL([MAINTAINER_MODE], [test $USE_MAINTAINER_MODE = yes]) -m4trace:configure.ac:22: -1- m4_pattern_allow([^MAINTAINER_MODE_TRUE$]) -m4trace:configure.ac:22: -1- m4_pattern_allow([^MAINTAINER_MODE_FALSE$]) -m4trace:configure.ac:22: -1- _AM_SUBST_NOTMAKE([MAINTAINER_MODE_TRUE]) -m4trace:configure.ac:22: -1- _AM_SUBST_NOTMAKE([MAINTAINER_MODE_FALSE]) -m4trace:configure.ac:22: -1- m4_pattern_allow([^MAINT$]) -m4trace:configure.ac:32: -1- _m4_warn([obsolete], [The macro `AC_ISC_POSIX' is obsolete. -You should run autoupdate.], [../../lib/autoconf/specific.m4:446: AC_ISC_POSIX is expanded from... -configure.ac:32: the top level]) -m4trace:configure.ac:32: -1- m4_pattern_allow([^CC$]) -m4trace:configure.ac:32: -1- m4_pattern_allow([^CFLAGS$]) -m4trace:configure.ac:32: -1- m4_pattern_allow([^LDFLAGS$]) -m4trace:configure.ac:32: -1- m4_pattern_allow([^LIBS$]) -m4trace:configure.ac:32: -1- m4_pattern_allow([^CPPFLAGS$]) -m4trace:configure.ac:32: -1- m4_pattern_allow([^CC$]) -m4trace:configure.ac:32: -1- m4_pattern_allow([^CC$]) -m4trace:configure.ac:32: -1- m4_pattern_allow([^CC$]) -m4trace:configure.ac:32: -1- m4_pattern_allow([^CC$]) -m4trace:configure.ac:32: -1- m4_pattern_allow([^ac_ct_CC$]) -m4trace:configure.ac:32: -1- m4_pattern_allow([^EXEEXT$]) -m4trace:configure.ac:32: -1- m4_pattern_allow([^OBJEXT$]) -m4trace:configure.ac:32: -1- _AM_DEPENDENCIES([CC]) -m4trace:configure.ac:32: -1- AM_SET_DEPDIR -m4trace:configure.ac:32: -1- m4_pattern_allow([^DEPDIR$]) -m4trace:configure.ac:32: -1- AM_OUTPUT_DEPENDENCY_COMMANDS -m4trace:configure.ac:32: -1- AM_MAKE_INCLUDE -m4trace:configure.ac:32: -1- m4_pattern_allow([^am__include$]) -m4trace:configure.ac:32: -1- m4_pattern_allow([^am__quote$]) -m4trace:configure.ac:32: -1- AM_DEP_TRACK -m4trace:configure.ac:32: -1- AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) -m4trace:configure.ac:32: -1- m4_pattern_allow([^AMDEP_TRUE$]) -m4trace:configure.ac:32: -1- m4_pattern_allow([^AMDEP_FALSE$]) -m4trace:configure.ac:32: -1- _AM_SUBST_NOTMAKE([AMDEP_TRUE]) -m4trace:configure.ac:32: -1- _AM_SUBST_NOTMAKE([AMDEP_FALSE]) -m4trace:configure.ac:32: -1- m4_pattern_allow([^AMDEPBACKSLASH$]) -m4trace:configure.ac:32: -1- _AM_SUBST_NOTMAKE([AMDEPBACKSLASH]) -m4trace:configure.ac:32: -1- m4_pattern_allow([^am__nodep$]) -m4trace:configure.ac:32: -1- _AM_SUBST_NOTMAKE([am__nodep]) -m4trace:configure.ac:32: -1- m4_pattern_allow([^CCDEPMODE$]) -m4trace:configure.ac:32: -1- AM_CONDITIONAL([am__fastdepCC], [ - test "x$enable_dependency_tracking" != xno \ - && test "$am_cv_CC_dependencies_compiler_type" = gcc3]) -m4trace:configure.ac:32: -1- m4_pattern_allow([^am__fastdepCC_TRUE$]) -m4trace:configure.ac:32: -1- m4_pattern_allow([^am__fastdepCC_FALSE$]) -m4trace:configure.ac:32: -1- _AM_SUBST_NOTMAKE([am__fastdepCC_TRUE]) -m4trace:configure.ac:32: -1- _AM_SUBST_NOTMAKE([am__fastdepCC_FALSE]) -m4trace:configure.ac:33: -1- m4_pattern_allow([^CC$]) -m4trace:configure.ac:33: -1- m4_pattern_allow([^CFLAGS$]) -m4trace:configure.ac:33: -1- m4_pattern_allow([^LDFLAGS$]) -m4trace:configure.ac:33: -1- m4_pattern_allow([^LIBS$]) -m4trace:configure.ac:33: -1- m4_pattern_allow([^CPPFLAGS$]) -m4trace:configure.ac:33: -1- m4_pattern_allow([^CC$]) -m4trace:configure.ac:33: -1- m4_pattern_allow([^CC$]) -m4trace:configure.ac:33: -1- m4_pattern_allow([^CC$]) -m4trace:configure.ac:33: -1- m4_pattern_allow([^CC$]) -m4trace:configure.ac:33: -1- m4_pattern_allow([^ac_ct_CC$]) -m4trace:configure.ac:33: -1- _AM_DEPENDENCIES([CC]) -m4trace:configure.ac:33: -1- m4_pattern_allow([^CCDEPMODE$]) -m4trace:configure.ac:33: -1- AM_CONDITIONAL([am__fastdepCC], [ - test "x$enable_dependency_tracking" != xno \ - && test "$am_cv_CC_dependencies_compiler_type" = gcc3]) -m4trace:configure.ac:33: -1- m4_pattern_allow([^am__fastdepCC_TRUE$]) -m4trace:configure.ac:33: -1- m4_pattern_allow([^am__fastdepCC_FALSE$]) -m4trace:configure.ac:33: -1- _AM_SUBST_NOTMAKE([am__fastdepCC_TRUE]) -m4trace:configure.ac:33: -1- _AM_SUBST_NOTMAKE([am__fastdepCC_FALSE]) -m4trace:configure.ac:34: -1- m4_pattern_allow([^CPP$]) -m4trace:configure.ac:34: -1- m4_pattern_allow([^CPPFLAGS$]) -m4trace:configure.ac:34: -1- m4_pattern_allow([^CPP$]) -m4trace:configure.ac:34: -1- m4_pattern_allow([^GREP$]) -m4trace:configure.ac:34: -1- m4_pattern_allow([^EGREP$]) -m4trace:configure.ac:34: -1- m4_pattern_allow([^STDC_HEADERS$]) -m4trace:configure.ac:40: -1- ACX_PTHREAD([]) -m4trace:configure.ac:40: -1- m4_pattern_allow([^build$]) -m4trace:configure.ac:40: -1- m4_pattern_allow([^build_cpu$]) -m4trace:configure.ac:40: -1- m4_pattern_allow([^build_vendor$]) -m4trace:configure.ac:40: -1- m4_pattern_allow([^build_os$]) -m4trace:configure.ac:40: -1- m4_pattern_allow([^host$]) -m4trace:configure.ac:40: -1- m4_pattern_allow([^host_cpu$]) -m4trace:configure.ac:40: -1- m4_pattern_allow([^host_vendor$]) -m4trace:configure.ac:40: -1- m4_pattern_allow([^host_os$]) -m4trace:configure.ac:40: -1- _m4_warn([obsolete], [The macro `AC_LANG_SAVE' is obsolete. -You should run autoupdate.], [../../lib/autoconf/lang.m4:125: AC_LANG_SAVE is expanded from... -m4/acx_pthread.m4:49: ACX_PTHREAD is expanded from... -configure.ac:40: the top level]) -m4trace:configure.ac:40: -1- _m4_warn([obsolete], [The macro `AC_LANG_C' is obsolete. -You should run autoupdate.], [../../lib/autoconf/c.m4:72: AC_LANG_C is expanded from... -m4/acx_pthread.m4:49: ACX_PTHREAD is expanded from... -configure.ac:40: the top level]) -m4trace:configure.ac:40: -1- m4_pattern_allow([^acx_pthread_config$]) -m4trace:configure.ac:40: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2687: AC_TRY_LINK is expanded from... -m4/acx_pthread.m4:49: ACX_PTHREAD is expanded from... -configure.ac:40: the top level]) -m4trace:configure.ac:40: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2687: AC_TRY_LINK is expanded from... -m4/acx_pthread.m4:49: ACX_PTHREAD is expanded from... -configure.ac:40: the top level]) -m4trace:configure.ac:40: -1- m4_pattern_allow([^PTHREAD_CREATE_JOINABLE$]) -m4trace:configure.ac:40: -1- m4_pattern_allow([^PTHREAD_CC$]) -m4trace:configure.ac:40: -1- m4_pattern_allow([^PTHREAD_LIBS$]) -m4trace:configure.ac:40: -1- m4_pattern_allow([^PTHREAD_CFLAGS$]) -m4trace:configure.ac:40: -1- m4_pattern_allow([^PTHREAD_CC$]) -m4trace:configure.ac:40: -2- m4_pattern_allow([^HAVE_PTHREAD$]) -m4trace:configure.ac:40: -1- _m4_warn([obsolete], [The macro `AC_LANG_RESTORE' is obsolete. -You should run autoupdate.], [../../lib/autoconf/lang.m4:134: AC_LANG_RESTORE is expanded from... -m4/acx_pthread.m4:49: ACX_PTHREAD is expanded from... -configure.ac:40: the top level]) -m4trace:configure.ac:50: -1- AC_DEFUN([CF_STRIP_G_OPT], [$1=`echo ${$1} | sed -e 's%-g %%' -e 's%-g$%%'`]) -m4trace:configure.ac:57: -1- AC_DEFUN([CF_STRIP_O_OPT], [$1=`echo ${$1} | sed -e 's/-O[[1-9]]\? //' -e 's/-O[[1-9]]\?$//'`]) -m4trace:configure.ac:72: -1- CF_STRIP_O_OPT([CFLAGS]) -m4trace:configure.ac:80: -1- m4_pattern_allow([^CFLAGS$]) -m4trace:configure.ac:86: -1- m4_pattern_allow([^GETTEXT_PACKAGE$]) -m4trace:configure.ac:87: -1- m4_pattern_allow([^GETTEXT_PACKAGE$]) -m4trace:configure.ac:89: -1- IT_PROG_INTLTOOL([0.40]) -m4trace:configure.ac:89: -1- AM_NLS -m4trace:configure.ac:89: -1- m4_pattern_allow([^USE_NLS$]) -m4trace:configure.ac:89: -1- m4_pattern_allow([^INTLTOOL_UPDATE$]) -m4trace:configure.ac:89: -1- m4_pattern_allow([^INTLTOOL_MERGE$]) -m4trace:configure.ac:89: -1- m4_pattern_allow([^INTLTOOL_EXTRACT$]) -m4trace:configure.ac:89: -1- _IT_SUBST([INTLTOOL_DESKTOP_RULE]) -m4trace:configure.ac:89: -1- m4_pattern_allow([^INTLTOOL_DESKTOP_RULE$]) -m4trace:configure.ac:89: -1- _AM_SUBST_NOTMAKE([INTLTOOL_DESKTOP_RULE]) -m4trace:configure.ac:89: -1- _IT_SUBST([INTLTOOL_DIRECTORY_RULE]) -m4trace:configure.ac:89: -1- m4_pattern_allow([^INTLTOOL_DIRECTORY_RULE$]) -m4trace:configure.ac:89: -1- _AM_SUBST_NOTMAKE([INTLTOOL_DIRECTORY_RULE]) -m4trace:configure.ac:89: -1- _IT_SUBST([INTLTOOL_KEYS_RULE]) -m4trace:configure.ac:89: -1- m4_pattern_allow([^INTLTOOL_KEYS_RULE$]) -m4trace:configure.ac:89: -1- _AM_SUBST_NOTMAKE([INTLTOOL_KEYS_RULE]) -m4trace:configure.ac:89: -1- _IT_SUBST([INTLTOOL_PROP_RULE]) -m4trace:configure.ac:89: -1- m4_pattern_allow([^INTLTOOL_PROP_RULE$]) -m4trace:configure.ac:89: -1- _AM_SUBST_NOTMAKE([INTLTOOL_PROP_RULE]) -m4trace:configure.ac:89: -1- _IT_SUBST([INTLTOOL_OAF_RULE]) -m4trace:configure.ac:89: -1- m4_pattern_allow([^INTLTOOL_OAF_RULE$]) -m4trace:configure.ac:89: -1- _AM_SUBST_NOTMAKE([INTLTOOL_OAF_RULE]) -m4trace:configure.ac:89: -1- _IT_SUBST([INTLTOOL_PONG_RULE]) -m4trace:configure.ac:89: -1- m4_pattern_allow([^INTLTOOL_PONG_RULE$]) -m4trace:configure.ac:89: -1- _AM_SUBST_NOTMAKE([INTLTOOL_PONG_RULE]) -m4trace:configure.ac:89: -1- _IT_SUBST([INTLTOOL_SERVER_RULE]) -m4trace:configure.ac:89: -1- m4_pattern_allow([^INTLTOOL_SERVER_RULE$]) -m4trace:configure.ac:89: -1- _AM_SUBST_NOTMAKE([INTLTOOL_SERVER_RULE]) -m4trace:configure.ac:89: -1- _IT_SUBST([INTLTOOL_SHEET_RULE]) -m4trace:configure.ac:89: -1- m4_pattern_allow([^INTLTOOL_SHEET_RULE$]) -m4trace:configure.ac:89: -1- _AM_SUBST_NOTMAKE([INTLTOOL_SHEET_RULE]) -m4trace:configure.ac:89: -1- _IT_SUBST([INTLTOOL_SOUNDLIST_RULE]) -m4trace:configure.ac:89: -1- m4_pattern_allow([^INTLTOOL_SOUNDLIST_RULE$]) -m4trace:configure.ac:89: -1- _AM_SUBST_NOTMAKE([INTLTOOL_SOUNDLIST_RULE]) -m4trace:configure.ac:89: -1- _IT_SUBST([INTLTOOL_UI_RULE]) -m4trace:configure.ac:89: -1- m4_pattern_allow([^INTLTOOL_UI_RULE$]) -m4trace:configure.ac:89: -1- _AM_SUBST_NOTMAKE([INTLTOOL_UI_RULE]) -m4trace:configure.ac:89: -1- _IT_SUBST([INTLTOOL_XAM_RULE]) -m4trace:configure.ac:89: -1- m4_pattern_allow([^INTLTOOL_XAM_RULE$]) -m4trace:configure.ac:89: -1- _AM_SUBST_NOTMAKE([INTLTOOL_XAM_RULE]) -m4trace:configure.ac:89: -1- _IT_SUBST([INTLTOOL_KBD_RULE]) -m4trace:configure.ac:89: -1- m4_pattern_allow([^INTLTOOL_KBD_RULE$]) -m4trace:configure.ac:89: -1- _AM_SUBST_NOTMAKE([INTLTOOL_KBD_RULE]) -m4trace:configure.ac:89: -1- _IT_SUBST([INTLTOOL_XML_RULE]) -m4trace:configure.ac:89: -1- m4_pattern_allow([^INTLTOOL_XML_RULE$]) -m4trace:configure.ac:89: -1- _AM_SUBST_NOTMAKE([INTLTOOL_XML_RULE]) -m4trace:configure.ac:89: -1- _IT_SUBST([INTLTOOL_XML_NOMERGE_RULE]) -m4trace:configure.ac:89: -1- m4_pattern_allow([^INTLTOOL_XML_NOMERGE_RULE$]) -m4trace:configure.ac:89: -1- _AM_SUBST_NOTMAKE([INTLTOOL_XML_NOMERGE_RULE]) -m4trace:configure.ac:89: -1- _IT_SUBST([INTLTOOL_CAVES_RULE]) -m4trace:configure.ac:89: -1- m4_pattern_allow([^INTLTOOL_CAVES_RULE$]) -m4trace:configure.ac:89: -1- _AM_SUBST_NOTMAKE([INTLTOOL_CAVES_RULE]) -m4trace:configure.ac:89: -1- _IT_SUBST([INTLTOOL_SCHEMAS_RULE]) -m4trace:configure.ac:89: -1- m4_pattern_allow([^INTLTOOL_SCHEMAS_RULE$]) -m4trace:configure.ac:89: -1- _AM_SUBST_NOTMAKE([INTLTOOL_SCHEMAS_RULE]) -m4trace:configure.ac:89: -1- _IT_SUBST([INTLTOOL_THEME_RULE]) -m4trace:configure.ac:89: -1- m4_pattern_allow([^INTLTOOL_THEME_RULE$]) -m4trace:configure.ac:89: -1- _AM_SUBST_NOTMAKE([INTLTOOL_THEME_RULE]) -m4trace:configure.ac:89: -1- _IT_SUBST([INTLTOOL_SERVICE_RULE]) -m4trace:configure.ac:89: -1- m4_pattern_allow([^INTLTOOL_SERVICE_RULE$]) -m4trace:configure.ac:89: -1- _AM_SUBST_NOTMAKE([INTLTOOL_SERVICE_RULE]) -m4trace:configure.ac:89: -1- _IT_SUBST([INTLTOOL_POLICY_RULE]) -m4trace:configure.ac:89: -1- m4_pattern_allow([^INTLTOOL_POLICY_RULE$]) -m4trace:configure.ac:89: -1- _AM_SUBST_NOTMAKE([INTLTOOL_POLICY_RULE]) -m4trace:configure.ac:89: -1- m4_pattern_allow([^XGETTEXT$]) -m4trace:configure.ac:89: -1- m4_pattern_allow([^MSGMERGE$]) -m4trace:configure.ac:89: -1- m4_pattern_allow([^MSGFMT$]) -m4trace:configure.ac:89: -1- m4_pattern_allow([^GMSGFMT$]) -m4trace:configure.ac:89: -1- m4_pattern_allow([^INTLTOOL_PERL$]) -m4trace:configure.ac:89: -1- m4_pattern_allow([^ALL_LINGUAS$]) -m4trace:configure.ac:89: -1- m4_pattern_allow([^DATADIRNAME$]) -m4trace:configure.ac:89: -1- IT_PO_SUBDIR([po]) -m4trace:configure.ac:95: -1- AM_GLIB_GNU_GETTEXT([external]) -m4trace:configure.ac:95: -1- m4_pattern_allow([^HAVE_LOCALE_H$]) -m4trace:configure.ac:95: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2687: AC_TRY_LINK is expanded from... -../../lib/m4sugar/m4sh.m4:639: AS_IF is expanded from... -../../lib/autoconf/general.m4:2031: AC_CACHE_VAL is expanded from... -../../lib/autoconf/general.m4:2052: AC_CACHE_CHECK is expanded from... -/usr/share/aclocal/glib-gettext.m4:48: GLIB_LC_MESSAGES is expanded from... -/usr/share/aclocal/glib-gettext.m4:316: GLIB_GNU_GETTEXT is expanded from... -/usr/share/aclocal/glib-gettext.m4:415: AM_GLIB_GNU_GETTEXT is expanded from... -configure.ac:95: the top level]) -m4trace:configure.ac:95: -1- m4_pattern_allow([^HAVE_LC_MESSAGES$]) -m4trace:configure.ac:95: -1- m4_pattern_allow([^USE_NLS$]) -m4trace:configure.ac:95: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2687: AC_TRY_LINK is expanded from... -../../lib/m4sugar/m4sh.m4:639: AS_IF is expanded from... -../../lib/autoconf/general.m4:2031: AC_CACHE_VAL is expanded from... -../../lib/autoconf/general.m4:2052: AC_CACHE_CHECK is expanded from... -../../lib/m4sugar/m4sh.m4:639: AS_IF is expanded from... -../../lib/autoconf/headers.m4:129: _AC_CHECK_HEADER_MONGREL is expanded from... -../../lib/autoconf/headers.m4:67: AC_CHECK_HEADER is expanded from... -/usr/share/aclocal/glib-gettext.m4:102: GLIB_WITH_NLS is expanded from... -/usr/share/aclocal/glib-gettext.m4:316: GLIB_GNU_GETTEXT is expanded from... -/usr/share/aclocal/glib-gettext.m4:415: AM_GLIB_GNU_GETTEXT is expanded from... -configure.ac:95: the top level]) -m4trace:configure.ac:95: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2687: AC_TRY_LINK is expanded from... -../../lib/m4sugar/m4sh.m4:639: AS_IF is expanded from... -../../lib/autoconf/general.m4:2031: AC_CACHE_VAL is expanded from... -../../lib/autoconf/general.m4:2052: AC_CACHE_CHECK is expanded from... -../../lib/m4sugar/m4sh.m4:639: AS_IF is expanded from... -../../lib/autoconf/headers.m4:129: _AC_CHECK_HEADER_MONGREL is expanded from... -../../lib/autoconf/headers.m4:67: AC_CHECK_HEADER is expanded from... -/usr/share/aclocal/glib-gettext.m4:102: GLIB_WITH_NLS is expanded from... -/usr/share/aclocal/glib-gettext.m4:316: GLIB_GNU_GETTEXT is expanded from... -/usr/share/aclocal/glib-gettext.m4:415: AM_GLIB_GNU_GETTEXT is expanded from... -configure.ac:95: the top level]) -m4trace:configure.ac:95: -1- m4_pattern_allow([^HAVE_BIND_TEXTDOMAIN_CODESET$]) -m4trace:configure.ac:95: -1- m4_pattern_allow([^HAVE_BIND_TEXTDOMAIN_CODESET$]) -m4trace:configure.ac:95: -1- m4_pattern_allow([^HAVE_GETTEXT$]) -m4trace:configure.ac:95: -1- m4_pattern_allow([^MSGFMT$]) -m4trace:configure.ac:95: -1- m4_pattern_allow([^HAVE_DCGETTEXT$]) -m4trace:configure.ac:95: -1- GLIB_RUN_PROG([$MSGFMT -c -o /dev/null], [ -msgid "" -msgstr "" -"Content-Type: text/plain; charset=UTF-8\n" -"Project-Id-Version: test 1.0\n" -"PO-Revision-Date: 2007-02-15 12:01+0100\n" -"Last-Translator: test \n" -"Language-Team: C \n" -"MIME-Version: 1.0\n" -"Content-Transfer-Encoding: 8bit\n" -], [MSGFMT_OPTS=-c; AC_MSG_RESULT([yes])], [AC_MSG_RESULT([no])]) -m4trace:configure.ac:95: -1- m4_pattern_allow([^MSGFMT_OPTS$]) -m4trace:configure.ac:95: -1- m4_pattern_allow([^GMSGFMT$]) -m4trace:configure.ac:95: -1- m4_pattern_allow([^XGETTEXT$]) -m4trace:configure.ac:95: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2687: AC_TRY_LINK is expanded from... -../../lib/m4sugar/m4sh.m4:639: AS_IF is expanded from... -../../lib/autoconf/headers.m4:129: _AC_CHECK_HEADER_MONGREL is expanded from... -../../lib/autoconf/headers.m4:67: AC_CHECK_HEADER is expanded from... -/usr/share/aclocal/glib-gettext.m4:102: GLIB_WITH_NLS is expanded from... -/usr/share/aclocal/glib-gettext.m4:316: GLIB_GNU_GETTEXT is expanded from... -/usr/share/aclocal/glib-gettext.m4:415: AM_GLIB_GNU_GETTEXT is expanded from... -configure.ac:95: the top level]) -m4trace:configure.ac:95: -1- m4_pattern_allow([^ENABLE_NLS$]) -m4trace:configure.ac:95: -1- _m4_warn([obsolete], [The macro `AC_OUTPUT_COMMANDS' is obsolete. -You should run autoupdate.], [../../lib/autoconf/status.m4:1026: AC_OUTPUT_COMMANDS is expanded from... -/usr/share/aclocal/glib-gettext.m4:102: GLIB_WITH_NLS is expanded from... -/usr/share/aclocal/glib-gettext.m4:316: GLIB_GNU_GETTEXT is expanded from... -/usr/share/aclocal/glib-gettext.m4:415: AM_GLIB_GNU_GETTEXT is expanded from... -configure.ac:95: the top level]) -m4trace:configure.ac:95: -1- m4_pattern_allow([^CATALOGS$]) -m4trace:configure.ac:95: -1- m4_pattern_allow([^CATOBJEXT$]) -m4trace:configure.ac:95: -1- m4_pattern_allow([^DATADIRNAME$]) -m4trace:configure.ac:95: -1- m4_pattern_allow([^GMOFILES$]) -m4trace:configure.ac:95: -1- m4_pattern_allow([^INSTOBJEXT$]) -m4trace:configure.ac:95: -1- m4_pattern_allow([^INTLLIBS$]) -m4trace:configure.ac:95: -1- m4_pattern_allow([^PO_IN_DATADIR_TRUE$]) -m4trace:configure.ac:95: -1- m4_pattern_allow([^PO_IN_DATADIR_FALSE$]) -m4trace:configure.ac:95: -1- m4_pattern_allow([^POFILES$]) -m4trace:configure.ac:95: -1- m4_pattern_allow([^POSUB$]) -m4trace:configure.ac:95: -1- m4_pattern_allow([^MKINSTALLDIRS$]) -m4trace:configure.ac:100: -1- PKG_CHECK_MODULES([DEPS], [gtk+-3.0 >= 3.0.0 glib-2.0 >= 2.10.0 sdl >= 1.2.10 portaudio-2.0 libpng libavcodec libavutil libv4l2 libudev libusb-1.0]) -m4trace:configure.ac:100: -1- PKG_PROG_PKG_CONFIG -m4trace:configure.ac:100: -1- m4_pattern_forbid([^_?PKG_[A-Z_]+$]) -m4trace:configure.ac:100: -1- m4_pattern_allow([^PKG_CONFIG(_(PATH|LIBDIR|SYSROOT_DIR|ALLOW_SYSTEM_(CFLAGS|LIBS)))?$]) -m4trace:configure.ac:100: -1- m4_pattern_allow([^PKG_CONFIG_(DISABLE_UNINSTALLED|TOP_BUILD_DIR|DEBUG_SPEW)$]) -m4trace:configure.ac:100: -1- m4_pattern_allow([^PKG_CONFIG$]) -m4trace:configure.ac:100: -1- m4_pattern_allow([^PKG_CONFIG_PATH$]) -m4trace:configure.ac:100: -1- m4_pattern_allow([^PKG_CONFIG_LIBDIR$]) -m4trace:configure.ac:100: -1- m4_pattern_allow([^PKG_CONFIG$]) -m4trace:configure.ac:100: -1- m4_pattern_allow([^DEPS_CFLAGS$]) -m4trace:configure.ac:100: -1- m4_pattern_allow([^DEPS_LIBS$]) -m4trace:configure.ac:100: -1- PKG_CHECK_EXISTS([gtk+-3.0 >= 3.0.0 glib-2.0 >= 2.10.0 sdl >= 1.2.10 portaudio-2.0 libpng libavcodec libavutil libv4l2 libudev libusb-1.0], [pkg_cv_[]DEPS_CFLAGS=`$PKG_CONFIG --[]cflags "gtk+-3.0 >= 3.0.0 glib-2.0 >= 2.10.0 sdl >= 1.2.10 portaudio-2.0 libpng libavcodec libavutil libv4l2 libudev libusb-1.0" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes ], [pkg_failed=yes]) -m4trace:configure.ac:100: -1- PKG_CHECK_EXISTS([gtk+-3.0 >= 3.0.0 glib-2.0 >= 2.10.0 sdl >= 1.2.10 portaudio-2.0 libpng libavcodec libavutil libv4l2 libudev libusb-1.0], [pkg_cv_[]DEPS_LIBS=`$PKG_CONFIG --[]libs "gtk+-3.0 >= 3.0.0 glib-2.0 >= 2.10.0 sdl >= 1.2.10 portaudio-2.0 libpng libavcodec libavutil libv4l2 libudev libusb-1.0" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes ], [pkg_failed=yes]) -m4trace:configure.ac:100: -1- _PKG_SHORT_ERRORS_SUPPORTED -m4trace:configure.ac:101: -1- m4_pattern_allow([^DEPS_CFLAGS$]) -m4trace:configure.ac:102: -1- m4_pattern_allow([^DEPS_LIBS$]) -m4trace:configure.ac:115: -1- AM_CONDITIONAL([DEBIAN_MENU], [test "$enable_debian_menu" = yes]) -m4trace:configure.ac:115: -1- m4_pattern_allow([^DEBIAN_MENU_TRUE$]) -m4trace:configure.ac:115: -1- m4_pattern_allow([^DEBIAN_MENU_FALSE$]) -m4trace:configure.ac:115: -1- _AM_SUBST_NOTMAKE([DEBIAN_MENU_TRUE]) -m4trace:configure.ac:115: -1- _AM_SUBST_NOTMAKE([DEBIAN_MENU_FALSE]) -m4trace:configure.ac:128: -1- AM_CONDITIONAL([DESKTOP], [test "$enable_desktop" = yes]) -m4trace:configure.ac:128: -1- m4_pattern_allow([^DESKTOP_TRUE$]) -m4trace:configure.ac:128: -1- m4_pattern_allow([^DESKTOP_FALSE$]) -m4trace:configure.ac:128: -1- _AM_SUBST_NOTMAKE([DESKTOP_TRUE]) -m4trace:configure.ac:128: -1- _AM_SUBST_NOTMAKE([DESKTOP_FALSE]) -m4trace:configure.ac:142: -1- PKG_CHECK_MODULES([PULSE], [libpulse >= 0.9.15], [has_pulse=yes], [has_pulse=no]) -m4trace:configure.ac:142: -1- m4_pattern_allow([^PULSE_CFLAGS$]) -m4trace:configure.ac:142: -1- m4_pattern_allow([^PULSE_LIBS$]) -m4trace:configure.ac:142: -1- PKG_CHECK_EXISTS([libpulse >= 0.9.15], [pkg_cv_[]PULSE_CFLAGS=`$PKG_CONFIG --[]cflags "libpulse >= 0.9.15" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes ], [pkg_failed=yes]) -m4trace:configure.ac:142: -1- PKG_CHECK_EXISTS([libpulse >= 0.9.15], [pkg_cv_[]PULSE_LIBS=`$PKG_CONFIG --[]libs "libpulse >= 0.9.15" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes ], [pkg_failed=yes]) -m4trace:configure.ac:142: -1- _PKG_SHORT_ERRORS_SUPPORTED -m4trace:configure.ac:143: -1- m4_pattern_allow([^PULSE_CFLAGS$]) -m4trace:configure.ac:144: -1- m4_pattern_allow([^PULSE_LIBS$]) -m4trace:configure.ac:146: -1- m4_pattern_allow([^PULSEAUDIO$]) -m4trace:configure.ac:169: -1- m4_pattern_allow([^HAS_AVCODEC_H$]) -m4trace:configure.ac:172: -1- m4_pattern_allow([^HAS_FFMPEG_AVCODEC_H$]) -m4trace:configure.ac:175: -1- m4_pattern_allow([^HAS_LIBAVCODEC_AVCODEC_H$]) -m4trace:configure.ac:182: -1- m4_pattern_allow([^WORDS_BIGENDIAN$]) -m4trace:configure.ac:182: -1- m4_pattern_allow([^AC_APPLE_UNIVERSAL_BUILD$]) -m4trace:configure.ac:194: -1- m4_pattern_allow([^LIB@&t@OBJS$]) -m4trace:configure.ac:194: -1- m4_pattern_allow([^LTLIBOBJS$]) -m4trace:configure.ac:194: -1- AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"]) -m4trace:configure.ac:194: -1- m4_pattern_allow([^am__EXEEXT_TRUE$]) -m4trace:configure.ac:194: -1- m4_pattern_allow([^am__EXEEXT_FALSE$]) -m4trace:configure.ac:194: -1- _AM_SUBST_NOTMAKE([am__EXEEXT_TRUE]) -m4trace:configure.ac:194: -1- _AM_SUBST_NOTMAKE([am__EXEEXT_FALSE]) -m4trace:configure.ac:194: -1- _AC_AM_CONFIG_HEADER_HOOK(["$ac_file"]) -m4trace:configure.ac:194: -1- _AM_OUTPUT_DEPENDENCY_COMMANDS diff -Nru guvcview-1.7.3/autom4te.cache/traces.1 guvcview-2.0.1+ubuntu1~ppa1/autom4te.cache/traces.1 --- guvcview-1.7.3/autom4te.cache/traces.1 2014-03-24 22:56:28.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/autom4te.cache/traces.1 1970-01-01 00:00:00.000000000 +0000 @@ -1,825 +0,0 @@ -m4trace:aclocal.m4:1704: -1- m4_include([m4/acx_pthread.m4]) -m4trace:aclocal.m4:1705: -1- m4_include([m4/intltool.m4]) -m4trace:aclocal.m4:1706: -1- m4_include([m4/nls.m4]) -m4trace:configure.ac:16: -1- AC_INIT([guvcview], [guvcview_version], [http://guvcview.sourceforge.net/]) -m4trace:configure.ac:16: -1- m4_pattern_forbid([^_?A[CHUM]_]) -m4trace:configure.ac:16: -1- m4_pattern_forbid([_AC_]) -m4trace:configure.ac:16: -1- m4_pattern_forbid([^LIBOBJS$], [do not use LIBOBJS directly, use AC_LIBOBJ (see section `AC_LIBOBJ vs LIBOBJS']) -m4trace:configure.ac:16: -1- m4_pattern_allow([^AS_FLAGS$]) -m4trace:configure.ac:16: -1- m4_pattern_forbid([^_?m4_]) -m4trace:configure.ac:16: -1- m4_pattern_forbid([^dnl$]) -m4trace:configure.ac:16: -1- m4_pattern_forbid([^_?AS_]) -m4trace:configure.ac:16: -1- AC_SUBST([SHELL]) -m4trace:configure.ac:16: -1- AC_SUBST_TRACE([SHELL]) -m4trace:configure.ac:16: -1- m4_pattern_allow([^SHELL$]) -m4trace:configure.ac:16: -1- AC_SUBST([PATH_SEPARATOR]) -m4trace:configure.ac:16: -1- AC_SUBST_TRACE([PATH_SEPARATOR]) -m4trace:configure.ac:16: -1- m4_pattern_allow([^PATH_SEPARATOR$]) -m4trace:configure.ac:16: -1- AC_SUBST([PACKAGE_NAME], [m4_ifdef([AC_PACKAGE_NAME], ['AC_PACKAGE_NAME'])]) -m4trace:configure.ac:16: -1- AC_SUBST_TRACE([PACKAGE_NAME]) -m4trace:configure.ac:16: -1- m4_pattern_allow([^PACKAGE_NAME$]) -m4trace:configure.ac:16: -1- AC_SUBST([PACKAGE_TARNAME], [m4_ifdef([AC_PACKAGE_TARNAME], ['AC_PACKAGE_TARNAME'])]) -m4trace:configure.ac:16: -1- AC_SUBST_TRACE([PACKAGE_TARNAME]) -m4trace:configure.ac:16: -1- m4_pattern_allow([^PACKAGE_TARNAME$]) -m4trace:configure.ac:16: -1- AC_SUBST([PACKAGE_VERSION], [m4_ifdef([AC_PACKAGE_VERSION], ['AC_PACKAGE_VERSION'])]) -m4trace:configure.ac:16: -1- AC_SUBST_TRACE([PACKAGE_VERSION]) -m4trace:configure.ac:16: -1- m4_pattern_allow([^PACKAGE_VERSION$]) -m4trace:configure.ac:16: -1- AC_SUBST([PACKAGE_STRING], [m4_ifdef([AC_PACKAGE_STRING], ['AC_PACKAGE_STRING'])]) -m4trace:configure.ac:16: -1- AC_SUBST_TRACE([PACKAGE_STRING]) -m4trace:configure.ac:16: -1- m4_pattern_allow([^PACKAGE_STRING$]) -m4trace:configure.ac:16: -1- AC_SUBST([PACKAGE_BUGREPORT], [m4_ifdef([AC_PACKAGE_BUGREPORT], ['AC_PACKAGE_BUGREPORT'])]) -m4trace:configure.ac:16: -1- AC_SUBST_TRACE([PACKAGE_BUGREPORT]) -m4trace:configure.ac:16: -1- m4_pattern_allow([^PACKAGE_BUGREPORT$]) -m4trace:configure.ac:16: -1- AC_SUBST([PACKAGE_URL], [m4_ifdef([AC_PACKAGE_URL], ['AC_PACKAGE_URL'])]) -m4trace:configure.ac:16: -1- AC_SUBST_TRACE([PACKAGE_URL]) -m4trace:configure.ac:16: -1- m4_pattern_allow([^PACKAGE_URL$]) -m4trace:configure.ac:16: -1- AC_SUBST([exec_prefix], [NONE]) -m4trace:configure.ac:16: -1- AC_SUBST_TRACE([exec_prefix]) -m4trace:configure.ac:16: -1- m4_pattern_allow([^exec_prefix$]) -m4trace:configure.ac:16: -1- AC_SUBST([prefix], [NONE]) -m4trace:configure.ac:16: -1- AC_SUBST_TRACE([prefix]) -m4trace:configure.ac:16: -1- m4_pattern_allow([^prefix$]) -m4trace:configure.ac:16: -1- AC_SUBST([program_transform_name], [s,x,x,]) -m4trace:configure.ac:16: -1- AC_SUBST_TRACE([program_transform_name]) -m4trace:configure.ac:16: -1- m4_pattern_allow([^program_transform_name$]) -m4trace:configure.ac:16: -1- AC_SUBST([bindir], ['${exec_prefix}/bin']) -m4trace:configure.ac:16: -1- AC_SUBST_TRACE([bindir]) -m4trace:configure.ac:16: -1- m4_pattern_allow([^bindir$]) -m4trace:configure.ac:16: -1- AC_SUBST([sbindir], ['${exec_prefix}/sbin']) -m4trace:configure.ac:16: -1- AC_SUBST_TRACE([sbindir]) -m4trace:configure.ac:16: -1- m4_pattern_allow([^sbindir$]) -m4trace:configure.ac:16: -1- AC_SUBST([libexecdir], ['${exec_prefix}/libexec']) -m4trace:configure.ac:16: -1- AC_SUBST_TRACE([libexecdir]) -m4trace:configure.ac:16: -1- m4_pattern_allow([^libexecdir$]) -m4trace:configure.ac:16: -1- AC_SUBST([datarootdir], ['${prefix}/share']) -m4trace:configure.ac:16: -1- AC_SUBST_TRACE([datarootdir]) -m4trace:configure.ac:16: -1- m4_pattern_allow([^datarootdir$]) -m4trace:configure.ac:16: -1- AC_SUBST([datadir], ['${datarootdir}']) -m4trace:configure.ac:16: -1- AC_SUBST_TRACE([datadir]) -m4trace:configure.ac:16: -1- m4_pattern_allow([^datadir$]) -m4trace:configure.ac:16: -1- AC_SUBST([sysconfdir], ['${prefix}/etc']) -m4trace:configure.ac:16: -1- AC_SUBST_TRACE([sysconfdir]) -m4trace:configure.ac:16: -1- m4_pattern_allow([^sysconfdir$]) -m4trace:configure.ac:16: -1- AC_SUBST([sharedstatedir], ['${prefix}/com']) -m4trace:configure.ac:16: -1- AC_SUBST_TRACE([sharedstatedir]) -m4trace:configure.ac:16: -1- m4_pattern_allow([^sharedstatedir$]) -m4trace:configure.ac:16: -1- AC_SUBST([localstatedir], ['${prefix}/var']) -m4trace:configure.ac:16: -1- AC_SUBST_TRACE([localstatedir]) -m4trace:configure.ac:16: -1- m4_pattern_allow([^localstatedir$]) -m4trace:configure.ac:16: -1- AC_SUBST([includedir], ['${prefix}/include']) -m4trace:configure.ac:16: -1- AC_SUBST_TRACE([includedir]) -m4trace:configure.ac:16: -1- m4_pattern_allow([^includedir$]) -m4trace:configure.ac:16: -1- AC_SUBST([oldincludedir], ['/usr/include']) -m4trace:configure.ac:16: -1- AC_SUBST_TRACE([oldincludedir]) -m4trace:configure.ac:16: -1- m4_pattern_allow([^oldincludedir$]) -m4trace:configure.ac:16: -1- AC_SUBST([docdir], [m4_ifset([AC_PACKAGE_TARNAME], - ['${datarootdir}/doc/${PACKAGE_TARNAME}'], - ['${datarootdir}/doc/${PACKAGE}'])]) -m4trace:configure.ac:16: -1- AC_SUBST_TRACE([docdir]) -m4trace:configure.ac:16: -1- m4_pattern_allow([^docdir$]) -m4trace:configure.ac:16: -1- AC_SUBST([infodir], ['${datarootdir}/info']) -m4trace:configure.ac:16: -1- AC_SUBST_TRACE([infodir]) -m4trace:configure.ac:16: -1- m4_pattern_allow([^infodir$]) -m4trace:configure.ac:16: -1- AC_SUBST([htmldir], ['${docdir}']) -m4trace:configure.ac:16: -1- AC_SUBST_TRACE([htmldir]) -m4trace:configure.ac:16: -1- m4_pattern_allow([^htmldir$]) -m4trace:configure.ac:16: -1- AC_SUBST([dvidir], ['${docdir}']) -m4trace:configure.ac:16: -1- AC_SUBST_TRACE([dvidir]) -m4trace:configure.ac:16: -1- m4_pattern_allow([^dvidir$]) -m4trace:configure.ac:16: -1- AC_SUBST([pdfdir], ['${docdir}']) -m4trace:configure.ac:16: -1- AC_SUBST_TRACE([pdfdir]) -m4trace:configure.ac:16: -1- m4_pattern_allow([^pdfdir$]) -m4trace:configure.ac:16: -1- AC_SUBST([psdir], ['${docdir}']) -m4trace:configure.ac:16: -1- AC_SUBST_TRACE([psdir]) -m4trace:configure.ac:16: -1- m4_pattern_allow([^psdir$]) -m4trace:configure.ac:16: -1- AC_SUBST([libdir], ['${exec_prefix}/lib']) -m4trace:configure.ac:16: -1- AC_SUBST_TRACE([libdir]) -m4trace:configure.ac:16: -1- m4_pattern_allow([^libdir$]) -m4trace:configure.ac:16: -1- AC_SUBST([localedir], ['${datarootdir}/locale']) -m4trace:configure.ac:16: -1- AC_SUBST_TRACE([localedir]) -m4trace:configure.ac:16: -1- m4_pattern_allow([^localedir$]) -m4trace:configure.ac:16: -1- AC_SUBST([mandir], ['${datarootdir}/man']) -m4trace:configure.ac:16: -1- AC_SUBST_TRACE([mandir]) -m4trace:configure.ac:16: -1- m4_pattern_allow([^mandir$]) -m4trace:configure.ac:16: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_NAME]) -m4trace:configure.ac:16: -1- m4_pattern_allow([^PACKAGE_NAME$]) -m4trace:configure.ac:16: -1- AH_OUTPUT([PACKAGE_NAME], [/* Define to the full name of this package. */ -@%:@undef PACKAGE_NAME]) -m4trace:configure.ac:16: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_TARNAME]) -m4trace:configure.ac:16: -1- m4_pattern_allow([^PACKAGE_TARNAME$]) -m4trace:configure.ac:16: -1- AH_OUTPUT([PACKAGE_TARNAME], [/* Define to the one symbol short name of this package. */ -@%:@undef PACKAGE_TARNAME]) -m4trace:configure.ac:16: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_VERSION]) -m4trace:configure.ac:16: -1- m4_pattern_allow([^PACKAGE_VERSION$]) -m4trace:configure.ac:16: -1- AH_OUTPUT([PACKAGE_VERSION], [/* Define to the version of this package. */ -@%:@undef PACKAGE_VERSION]) -m4trace:configure.ac:16: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_STRING]) -m4trace:configure.ac:16: -1- m4_pattern_allow([^PACKAGE_STRING$]) -m4trace:configure.ac:16: -1- AH_OUTPUT([PACKAGE_STRING], [/* Define to the full name and version of this package. */ -@%:@undef PACKAGE_STRING]) -m4trace:configure.ac:16: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_BUGREPORT]) -m4trace:configure.ac:16: -1- m4_pattern_allow([^PACKAGE_BUGREPORT$]) -m4trace:configure.ac:16: -1- AH_OUTPUT([PACKAGE_BUGREPORT], [/* Define to the address where bug reports for this package should be sent. */ -@%:@undef PACKAGE_BUGREPORT]) -m4trace:configure.ac:16: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_URL]) -m4trace:configure.ac:16: -1- m4_pattern_allow([^PACKAGE_URL$]) -m4trace:configure.ac:16: -1- AH_OUTPUT([PACKAGE_URL], [/* Define to the home page for this package. */ -@%:@undef PACKAGE_URL]) -m4trace:configure.ac:16: -1- AC_SUBST([DEFS]) -m4trace:configure.ac:16: -1- AC_SUBST_TRACE([DEFS]) -m4trace:configure.ac:16: -1- m4_pattern_allow([^DEFS$]) -m4trace:configure.ac:16: -1- AC_SUBST([ECHO_C]) -m4trace:configure.ac:16: -1- AC_SUBST_TRACE([ECHO_C]) -m4trace:configure.ac:16: -1- m4_pattern_allow([^ECHO_C$]) -m4trace:configure.ac:16: -1- AC_SUBST([ECHO_N]) -m4trace:configure.ac:16: -1- AC_SUBST_TRACE([ECHO_N]) -m4trace:configure.ac:16: -1- m4_pattern_allow([^ECHO_N$]) -m4trace:configure.ac:16: -1- AC_SUBST([ECHO_T]) -m4trace:configure.ac:16: -1- AC_SUBST_TRACE([ECHO_T]) -m4trace:configure.ac:16: -1- m4_pattern_allow([^ECHO_T$]) -m4trace:configure.ac:16: -1- AC_SUBST([LIBS]) -m4trace:configure.ac:16: -1- AC_SUBST_TRACE([LIBS]) -m4trace:configure.ac:16: -1- m4_pattern_allow([^LIBS$]) -m4trace:configure.ac:16: -1- AC_SUBST([build_alias]) -m4trace:configure.ac:16: -1- AC_SUBST_TRACE([build_alias]) -m4trace:configure.ac:16: -1- m4_pattern_allow([^build_alias$]) -m4trace:configure.ac:16: -1- AC_SUBST([host_alias]) -m4trace:configure.ac:16: -1- AC_SUBST_TRACE([host_alias]) -m4trace:configure.ac:16: -1- m4_pattern_allow([^host_alias$]) -m4trace:configure.ac:16: -1- AC_SUBST([target_alias]) -m4trace:configure.ac:16: -1- AC_SUBST_TRACE([target_alias]) -m4trace:configure.ac:16: -1- m4_pattern_allow([^target_alias$]) -m4trace:configure.ac:17: -1- AM_SILENT_RULES([yes]) -m4trace:configure.ac:17: -1- AC_SUBST([AM_V]) -m4trace:configure.ac:17: -1- AC_SUBST_TRACE([AM_V]) -m4trace:configure.ac:17: -1- m4_pattern_allow([^AM_V$]) -m4trace:configure.ac:17: -1- _AM_SUBST_NOTMAKE([AM_V]) -m4trace:configure.ac:17: -1- AC_SUBST([AM_DEFAULT_V]) -m4trace:configure.ac:17: -1- AC_SUBST_TRACE([AM_DEFAULT_V]) -m4trace:configure.ac:17: -1- m4_pattern_allow([^AM_DEFAULT_V$]) -m4trace:configure.ac:17: -1- _AM_SUBST_NOTMAKE([AM_DEFAULT_V]) -m4trace:configure.ac:17: -1- AC_SUBST([AM_DEFAULT_VERBOSITY]) -m4trace:configure.ac:17: -1- AC_SUBST_TRACE([AM_DEFAULT_VERBOSITY]) -m4trace:configure.ac:17: -1- m4_pattern_allow([^AM_DEFAULT_VERBOSITY$]) -m4trace:configure.ac:17: -1- AC_SUBST([AM_BACKSLASH]) -m4trace:configure.ac:17: -1- AC_SUBST_TRACE([AM_BACKSLASH]) -m4trace:configure.ac:17: -1- m4_pattern_allow([^AM_BACKSLASH$]) -m4trace:configure.ac:17: -1- _AM_SUBST_NOTMAKE([AM_BACKSLASH]) -m4trace:configure.ac:19: -1- AM_INIT_AUTOMAKE([gnu]) -m4trace:configure.ac:19: -1- m4_pattern_allow([^AM_[A-Z]+FLAGS$]) -m4trace:configure.ac:19: -1- AM_AUTOMAKE_VERSION([1.13.3]) -m4trace:configure.ac:19: -1- AC_REQUIRE_AUX_FILE([install-sh]) -m4trace:configure.ac:19: -1- AC_SUBST([INSTALL_PROGRAM]) -m4trace:configure.ac:19: -1- AC_SUBST_TRACE([INSTALL_PROGRAM]) -m4trace:configure.ac:19: -1- m4_pattern_allow([^INSTALL_PROGRAM$]) -m4trace:configure.ac:19: -1- AC_SUBST([INSTALL_SCRIPT]) -m4trace:configure.ac:19: -1- AC_SUBST_TRACE([INSTALL_SCRIPT]) -m4trace:configure.ac:19: -1- m4_pattern_allow([^INSTALL_SCRIPT$]) -m4trace:configure.ac:19: -1- AC_SUBST([INSTALL_DATA]) -m4trace:configure.ac:19: -1- AC_SUBST_TRACE([INSTALL_DATA]) -m4trace:configure.ac:19: -1- m4_pattern_allow([^INSTALL_DATA$]) -m4trace:configure.ac:19: -1- AC_SUBST([am__isrc], [' -I$(srcdir)']) -m4trace:configure.ac:19: -1- AC_SUBST_TRACE([am__isrc]) -m4trace:configure.ac:19: -1- m4_pattern_allow([^am__isrc$]) -m4trace:configure.ac:19: -1- _AM_SUBST_NOTMAKE([am__isrc]) -m4trace:configure.ac:19: -1- AC_SUBST([CYGPATH_W]) -m4trace:configure.ac:19: -1- AC_SUBST_TRACE([CYGPATH_W]) -m4trace:configure.ac:19: -1- m4_pattern_allow([^CYGPATH_W$]) -m4trace:configure.ac:19: -1- AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME']) -m4trace:configure.ac:19: -1- AC_SUBST_TRACE([PACKAGE]) -m4trace:configure.ac:19: -1- m4_pattern_allow([^PACKAGE$]) -m4trace:configure.ac:19: -1- AC_SUBST([VERSION], ['AC_PACKAGE_VERSION']) -m4trace:configure.ac:19: -1- AC_SUBST_TRACE([VERSION]) -m4trace:configure.ac:19: -1- m4_pattern_allow([^VERSION$]) -m4trace:configure.ac:19: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE]) -m4trace:configure.ac:19: -1- m4_pattern_allow([^PACKAGE$]) -m4trace:configure.ac:19: -1- AH_OUTPUT([PACKAGE], [/* Name of package */ -@%:@undef PACKAGE]) -m4trace:configure.ac:19: -1- AC_DEFINE_TRACE_LITERAL([VERSION]) -m4trace:configure.ac:19: -1- m4_pattern_allow([^VERSION$]) -m4trace:configure.ac:19: -1- AH_OUTPUT([VERSION], [/* Version number of package */ -@%:@undef VERSION]) -m4trace:configure.ac:19: -1- AC_REQUIRE_AUX_FILE([missing]) -m4trace:configure.ac:19: -1- AC_SUBST([ACLOCAL]) -m4trace:configure.ac:19: -1- AC_SUBST_TRACE([ACLOCAL]) -m4trace:configure.ac:19: -1- m4_pattern_allow([^ACLOCAL$]) -m4trace:configure.ac:19: -1- AC_SUBST([AUTOCONF]) -m4trace:configure.ac:19: -1- AC_SUBST_TRACE([AUTOCONF]) -m4trace:configure.ac:19: -1- m4_pattern_allow([^AUTOCONF$]) -m4trace:configure.ac:19: -1- AC_SUBST([AUTOMAKE]) -m4trace:configure.ac:19: -1- AC_SUBST_TRACE([AUTOMAKE]) -m4trace:configure.ac:19: -1- m4_pattern_allow([^AUTOMAKE$]) -m4trace:configure.ac:19: -1- AC_SUBST([AUTOHEADER]) -m4trace:configure.ac:19: -1- AC_SUBST_TRACE([AUTOHEADER]) -m4trace:configure.ac:19: -1- m4_pattern_allow([^AUTOHEADER$]) -m4trace:configure.ac:19: -1- AC_SUBST([MAKEINFO]) -m4trace:configure.ac:19: -1- AC_SUBST_TRACE([MAKEINFO]) -m4trace:configure.ac:19: -1- m4_pattern_allow([^MAKEINFO$]) -m4trace:configure.ac:19: -1- AC_SUBST([install_sh]) -m4trace:configure.ac:19: -1- AC_SUBST_TRACE([install_sh]) -m4trace:configure.ac:19: -1- m4_pattern_allow([^install_sh$]) -m4trace:configure.ac:19: -1- AC_SUBST([STRIP]) -m4trace:configure.ac:19: -1- AC_SUBST_TRACE([STRIP]) -m4trace:configure.ac:19: -1- m4_pattern_allow([^STRIP$]) -m4trace:configure.ac:19: -1- AC_SUBST([INSTALL_STRIP_PROGRAM]) -m4trace:configure.ac:19: -1- AC_SUBST_TRACE([INSTALL_STRIP_PROGRAM]) -m4trace:configure.ac:19: -1- m4_pattern_allow([^INSTALL_STRIP_PROGRAM$]) -m4trace:configure.ac:19: -1- AC_REQUIRE_AUX_FILE([install-sh]) -m4trace:configure.ac:19: -1- AC_SUBST([MKDIR_P]) -m4trace:configure.ac:19: -1- AC_SUBST_TRACE([MKDIR_P]) -m4trace:configure.ac:19: -1- m4_pattern_allow([^MKDIR_P$]) -m4trace:configure.ac:19: -1- AC_SUBST([mkdir_p], ['$(MKDIR_P)']) -m4trace:configure.ac:19: -1- AC_SUBST_TRACE([mkdir_p]) -m4trace:configure.ac:19: -1- m4_pattern_allow([^mkdir_p$]) -m4trace:configure.ac:19: -1- AC_SUBST([AWK]) -m4trace:configure.ac:19: -1- AC_SUBST_TRACE([AWK]) -m4trace:configure.ac:19: -1- m4_pattern_allow([^AWK$]) -m4trace:configure.ac:19: -1- AC_SUBST([SET_MAKE]) -m4trace:configure.ac:19: -1- AC_SUBST_TRACE([SET_MAKE]) -m4trace:configure.ac:19: -1- m4_pattern_allow([^SET_MAKE$]) -m4trace:configure.ac:19: -1- AC_SUBST([am__leading_dot]) -m4trace:configure.ac:19: -1- AC_SUBST_TRACE([am__leading_dot]) -m4trace:configure.ac:19: -1- m4_pattern_allow([^am__leading_dot$]) -m4trace:configure.ac:19: -1- AC_SUBST([AMTAR], ['$${TAR-tar}']) -m4trace:configure.ac:19: -1- AC_SUBST_TRACE([AMTAR]) -m4trace:configure.ac:19: -1- m4_pattern_allow([^AMTAR$]) -m4trace:configure.ac:19: -1- AC_SUBST([am__tar]) -m4trace:configure.ac:19: -1- AC_SUBST_TRACE([am__tar]) -m4trace:configure.ac:19: -1- m4_pattern_allow([^am__tar$]) -m4trace:configure.ac:19: -1- AC_SUBST([am__untar]) -m4trace:configure.ac:19: -1- AC_SUBST_TRACE([am__untar]) -m4trace:configure.ac:19: -1- m4_pattern_allow([^am__untar$]) -m4trace:configure.ac:21: -1- AC_CONFIG_HEADERS([config.h]) -m4trace:configure.ac:22: -1- AM_MAINTAINER_MODE([disable]) -m4trace:configure.ac:22: -1- AM_CONDITIONAL([MAINTAINER_MODE], [test $USE_MAINTAINER_MODE = yes]) -m4trace:configure.ac:22: -1- AC_SUBST([MAINTAINER_MODE_TRUE]) -m4trace:configure.ac:22: -1- AC_SUBST_TRACE([MAINTAINER_MODE_TRUE]) -m4trace:configure.ac:22: -1- m4_pattern_allow([^MAINTAINER_MODE_TRUE$]) -m4trace:configure.ac:22: -1- AC_SUBST([MAINTAINER_MODE_FALSE]) -m4trace:configure.ac:22: -1- AC_SUBST_TRACE([MAINTAINER_MODE_FALSE]) -m4trace:configure.ac:22: -1- m4_pattern_allow([^MAINTAINER_MODE_FALSE$]) -m4trace:configure.ac:22: -1- _AM_SUBST_NOTMAKE([MAINTAINER_MODE_TRUE]) -m4trace:configure.ac:22: -1- _AM_SUBST_NOTMAKE([MAINTAINER_MODE_FALSE]) -m4trace:configure.ac:22: -1- AC_SUBST([MAINT]) -m4trace:configure.ac:22: -1- AC_SUBST_TRACE([MAINT]) -m4trace:configure.ac:22: -1- m4_pattern_allow([^MAINT$]) -m4trace:configure.ac:32: -1- AC_SUBST([CC]) -m4trace:configure.ac:32: -1- AC_SUBST_TRACE([CC]) -m4trace:configure.ac:32: -1- m4_pattern_allow([^CC$]) -m4trace:configure.ac:32: -1- AC_SUBST([CFLAGS]) -m4trace:configure.ac:32: -1- AC_SUBST_TRACE([CFLAGS]) -m4trace:configure.ac:32: -1- m4_pattern_allow([^CFLAGS$]) -m4trace:configure.ac:32: -1- AC_SUBST([LDFLAGS]) -m4trace:configure.ac:32: -1- AC_SUBST_TRACE([LDFLAGS]) -m4trace:configure.ac:32: -1- m4_pattern_allow([^LDFLAGS$]) -m4trace:configure.ac:32: -1- AC_SUBST([LIBS]) -m4trace:configure.ac:32: -1- AC_SUBST_TRACE([LIBS]) -m4trace:configure.ac:32: -1- m4_pattern_allow([^LIBS$]) -m4trace:configure.ac:32: -1- AC_SUBST([CPPFLAGS]) -m4trace:configure.ac:32: -1- AC_SUBST_TRACE([CPPFLAGS]) -m4trace:configure.ac:32: -1- m4_pattern_allow([^CPPFLAGS$]) -m4trace:configure.ac:32: -1- AC_SUBST([CC]) -m4trace:configure.ac:32: -1- AC_SUBST_TRACE([CC]) -m4trace:configure.ac:32: -1- m4_pattern_allow([^CC$]) -m4trace:configure.ac:32: -1- AC_SUBST([CC]) -m4trace:configure.ac:32: -1- AC_SUBST_TRACE([CC]) -m4trace:configure.ac:32: -1- m4_pattern_allow([^CC$]) -m4trace:configure.ac:32: -1- AC_SUBST([CC]) -m4trace:configure.ac:32: -1- AC_SUBST_TRACE([CC]) -m4trace:configure.ac:32: -1- m4_pattern_allow([^CC$]) -m4trace:configure.ac:32: -1- AC_SUBST([CC]) -m4trace:configure.ac:32: -1- AC_SUBST_TRACE([CC]) -m4trace:configure.ac:32: -1- m4_pattern_allow([^CC$]) -m4trace:configure.ac:32: -1- AC_SUBST([ac_ct_CC]) -m4trace:configure.ac:32: -1- AC_SUBST_TRACE([ac_ct_CC]) -m4trace:configure.ac:32: -1- m4_pattern_allow([^ac_ct_CC$]) -m4trace:configure.ac:32: -1- AC_SUBST([EXEEXT], [$ac_cv_exeext]) -m4trace:configure.ac:32: -1- AC_SUBST_TRACE([EXEEXT]) -m4trace:configure.ac:32: -1- m4_pattern_allow([^EXEEXT$]) -m4trace:configure.ac:32: -1- AC_SUBST([OBJEXT], [$ac_cv_objext]) -m4trace:configure.ac:32: -1- AC_SUBST_TRACE([OBJEXT]) -m4trace:configure.ac:32: -1- m4_pattern_allow([^OBJEXT$]) -m4trace:configure.ac:32: -1- AC_SUBST([DEPDIR], ["${am__leading_dot}deps"]) -m4trace:configure.ac:32: -1- AC_SUBST_TRACE([DEPDIR]) -m4trace:configure.ac:32: -1- m4_pattern_allow([^DEPDIR$]) -m4trace:configure.ac:32: -1- AC_SUBST([am__include]) -m4trace:configure.ac:32: -1- AC_SUBST_TRACE([am__include]) -m4trace:configure.ac:32: -1- m4_pattern_allow([^am__include$]) -m4trace:configure.ac:32: -1- AC_SUBST([am__quote]) -m4trace:configure.ac:32: -1- AC_SUBST_TRACE([am__quote]) -m4trace:configure.ac:32: -1- m4_pattern_allow([^am__quote$]) -m4trace:configure.ac:32: -1- AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) -m4trace:configure.ac:32: -1- AC_SUBST([AMDEP_TRUE]) -m4trace:configure.ac:32: -1- AC_SUBST_TRACE([AMDEP_TRUE]) -m4trace:configure.ac:32: -1- m4_pattern_allow([^AMDEP_TRUE$]) -m4trace:configure.ac:32: -1- AC_SUBST([AMDEP_FALSE]) -m4trace:configure.ac:32: -1- AC_SUBST_TRACE([AMDEP_FALSE]) -m4trace:configure.ac:32: -1- m4_pattern_allow([^AMDEP_FALSE$]) -m4trace:configure.ac:32: -1- _AM_SUBST_NOTMAKE([AMDEP_TRUE]) -m4trace:configure.ac:32: -1- _AM_SUBST_NOTMAKE([AMDEP_FALSE]) -m4trace:configure.ac:32: -1- AC_SUBST([AMDEPBACKSLASH]) -m4trace:configure.ac:32: -1- AC_SUBST_TRACE([AMDEPBACKSLASH]) -m4trace:configure.ac:32: -1- m4_pattern_allow([^AMDEPBACKSLASH$]) -m4trace:configure.ac:32: -1- _AM_SUBST_NOTMAKE([AMDEPBACKSLASH]) -m4trace:configure.ac:32: -1- AC_SUBST([am__nodep]) -m4trace:configure.ac:32: -1- AC_SUBST_TRACE([am__nodep]) -m4trace:configure.ac:32: -1- m4_pattern_allow([^am__nodep$]) -m4trace:configure.ac:32: -1- _AM_SUBST_NOTMAKE([am__nodep]) -m4trace:configure.ac:32: -1- AC_SUBST([CCDEPMODE], [depmode=$am_cv_CC_dependencies_compiler_type]) -m4trace:configure.ac:32: -1- AC_SUBST_TRACE([CCDEPMODE]) -m4trace:configure.ac:32: -1- m4_pattern_allow([^CCDEPMODE$]) -m4trace:configure.ac:32: -1- AM_CONDITIONAL([am__fastdepCC], [ - test "x$enable_dependency_tracking" != xno \ - && test "$am_cv_CC_dependencies_compiler_type" = gcc3]) -m4trace:configure.ac:32: -1- AC_SUBST([am__fastdepCC_TRUE]) -m4trace:configure.ac:32: -1- AC_SUBST_TRACE([am__fastdepCC_TRUE]) -m4trace:configure.ac:32: -1- m4_pattern_allow([^am__fastdepCC_TRUE$]) -m4trace:configure.ac:32: -1- AC_SUBST([am__fastdepCC_FALSE]) -m4trace:configure.ac:32: -1- AC_SUBST_TRACE([am__fastdepCC_FALSE]) -m4trace:configure.ac:32: -1- m4_pattern_allow([^am__fastdepCC_FALSE$]) -m4trace:configure.ac:32: -1- _AM_SUBST_NOTMAKE([am__fastdepCC_TRUE]) -m4trace:configure.ac:32: -1- _AM_SUBST_NOTMAKE([am__fastdepCC_FALSE]) -m4trace:configure.ac:33: -1- AM_PROG_CC_C_O -m4trace:configure.ac:33: -1- AC_DEFINE_TRACE_LITERAL([NO_MINUS_C_MINUS_O]) -m4trace:configure.ac:33: -1- m4_pattern_allow([^NO_MINUS_C_MINUS_O$]) -m4trace:configure.ac:33: -1- AH_OUTPUT([NO_MINUS_C_MINUS_O], [/* Define to 1 if your C compiler doesn\'t accept -c and -o together. */ -@%:@undef NO_MINUS_C_MINUS_O]) -m4trace:configure.ac:33: -1- AC_REQUIRE_AUX_FILE([compile]) -m4trace:configure.ac:34: -1- AC_SUBST([CPP]) -m4trace:configure.ac:34: -1- AC_SUBST_TRACE([CPP]) -m4trace:configure.ac:34: -1- m4_pattern_allow([^CPP$]) -m4trace:configure.ac:34: -1- AC_SUBST([CPPFLAGS]) -m4trace:configure.ac:34: -1- AC_SUBST_TRACE([CPPFLAGS]) -m4trace:configure.ac:34: -1- m4_pattern_allow([^CPPFLAGS$]) -m4trace:configure.ac:34: -1- AC_SUBST([CPP]) -m4trace:configure.ac:34: -1- AC_SUBST_TRACE([CPP]) -m4trace:configure.ac:34: -1- m4_pattern_allow([^CPP$]) -m4trace:configure.ac:34: -1- AC_SUBST([GREP]) -m4trace:configure.ac:34: -1- AC_SUBST_TRACE([GREP]) -m4trace:configure.ac:34: -1- m4_pattern_allow([^GREP$]) -m4trace:configure.ac:34: -1- AC_SUBST([EGREP]) -m4trace:configure.ac:34: -1- AC_SUBST_TRACE([EGREP]) -m4trace:configure.ac:34: -1- m4_pattern_allow([^EGREP$]) -m4trace:configure.ac:34: -1- AC_DEFINE_TRACE_LITERAL([STDC_HEADERS]) -m4trace:configure.ac:34: -1- m4_pattern_allow([^STDC_HEADERS$]) -m4trace:configure.ac:34: -1- AH_OUTPUT([STDC_HEADERS], [/* Define to 1 if you have the ANSI C header files. */ -@%:@undef STDC_HEADERS]) -m4trace:configure.ac:40: -1- AC_CANONICAL_HOST -m4trace:configure.ac:40: -1- AC_CANONICAL_BUILD -m4trace:configure.ac:40: -1- AC_REQUIRE_AUX_FILE([config.sub]) -m4trace:configure.ac:40: -1- AC_REQUIRE_AUX_FILE([config.guess]) -m4trace:configure.ac:40: -1- AC_SUBST([build], [$ac_cv_build]) -m4trace:configure.ac:40: -1- AC_SUBST_TRACE([build]) -m4trace:configure.ac:40: -1- m4_pattern_allow([^build$]) -m4trace:configure.ac:40: -1- AC_SUBST([build_cpu], [$[1]]) -m4trace:configure.ac:40: -1- AC_SUBST_TRACE([build_cpu]) -m4trace:configure.ac:40: -1- m4_pattern_allow([^build_cpu$]) -m4trace:configure.ac:40: -1- AC_SUBST([build_vendor], [$[2]]) -m4trace:configure.ac:40: -1- AC_SUBST_TRACE([build_vendor]) -m4trace:configure.ac:40: -1- m4_pattern_allow([^build_vendor$]) -m4trace:configure.ac:40: -1- AC_SUBST([build_os]) -m4trace:configure.ac:40: -1- AC_SUBST_TRACE([build_os]) -m4trace:configure.ac:40: -1- m4_pattern_allow([^build_os$]) -m4trace:configure.ac:40: -1- AC_SUBST([host], [$ac_cv_host]) -m4trace:configure.ac:40: -1- AC_SUBST_TRACE([host]) -m4trace:configure.ac:40: -1- m4_pattern_allow([^host$]) -m4trace:configure.ac:40: -1- AC_SUBST([host_cpu], [$[1]]) -m4trace:configure.ac:40: -1- AC_SUBST_TRACE([host_cpu]) -m4trace:configure.ac:40: -1- m4_pattern_allow([^host_cpu$]) -m4trace:configure.ac:40: -1- AC_SUBST([host_vendor], [$[2]]) -m4trace:configure.ac:40: -1- AC_SUBST_TRACE([host_vendor]) -m4trace:configure.ac:40: -1- m4_pattern_allow([^host_vendor$]) -m4trace:configure.ac:40: -1- AC_SUBST([host_os]) -m4trace:configure.ac:40: -1- AC_SUBST_TRACE([host_os]) -m4trace:configure.ac:40: -1- m4_pattern_allow([^host_os$]) -m4trace:configure.ac:40: -1- _m4_warn([obsolete], [The macro `AC_LANG_SAVE' is obsolete. -You should run autoupdate.], [../../lib/autoconf/lang.m4:125: AC_LANG_SAVE is expanded from... -m4/acx_pthread.m4:49: ACX_PTHREAD is expanded from... -configure.ac:40: the top level]) -m4trace:configure.ac:40: -1- _m4_warn([obsolete], [The macro `AC_LANG_C' is obsolete. -You should run autoupdate.], [../../lib/autoconf/c.m4:72: AC_LANG_C is expanded from... -m4/acx_pthread.m4:49: ACX_PTHREAD is expanded from... -configure.ac:40: the top level]) -m4trace:configure.ac:40: -1- AC_SUBST([acx_pthread_config]) -m4trace:configure.ac:40: -1- AC_SUBST_TRACE([acx_pthread_config]) -m4trace:configure.ac:40: -1- m4_pattern_allow([^acx_pthread_config$]) -m4trace:configure.ac:40: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2687: AC_TRY_LINK is expanded from... -m4/acx_pthread.m4:49: ACX_PTHREAD is expanded from... -configure.ac:40: the top level]) -m4trace:configure.ac:40: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2687: AC_TRY_LINK is expanded from... -m4/acx_pthread.m4:49: ACX_PTHREAD is expanded from... -configure.ac:40: the top level]) -m4trace:configure.ac:40: -1- AC_DEFINE_TRACE_LITERAL([PTHREAD_CREATE_JOINABLE]) -m4trace:configure.ac:40: -1- m4_pattern_allow([^PTHREAD_CREATE_JOINABLE$]) -m4trace:configure.ac:40: -1- AH_OUTPUT([PTHREAD_CREATE_JOINABLE], [/* Define to necessary symbol if this constant uses a non-standard name on - your system. */ -@%:@undef PTHREAD_CREATE_JOINABLE]) -m4trace:configure.ac:40: -1- AC_SUBST([PTHREAD_CC]) -m4trace:configure.ac:40: -1- AC_SUBST_TRACE([PTHREAD_CC]) -m4trace:configure.ac:40: -1- m4_pattern_allow([^PTHREAD_CC$]) -m4trace:configure.ac:40: -1- AC_SUBST([PTHREAD_LIBS]) -m4trace:configure.ac:40: -1- AC_SUBST_TRACE([PTHREAD_LIBS]) -m4trace:configure.ac:40: -1- m4_pattern_allow([^PTHREAD_LIBS$]) -m4trace:configure.ac:40: -1- AC_SUBST([PTHREAD_CFLAGS]) -m4trace:configure.ac:40: -1- AC_SUBST_TRACE([PTHREAD_CFLAGS]) -m4trace:configure.ac:40: -1- m4_pattern_allow([^PTHREAD_CFLAGS$]) -m4trace:configure.ac:40: -1- AC_SUBST([PTHREAD_CC]) -m4trace:configure.ac:40: -1- AC_SUBST_TRACE([PTHREAD_CC]) -m4trace:configure.ac:40: -1- m4_pattern_allow([^PTHREAD_CC$]) -m4trace:configure.ac:40: -2- AC_DEFINE_TRACE_LITERAL([HAVE_PTHREAD]) -m4trace:configure.ac:40: -2- m4_pattern_allow([^HAVE_PTHREAD$]) -m4trace:configure.ac:40: -2- AH_OUTPUT([HAVE_PTHREAD], [/* Define if you have POSIX threads libraries and header files. */ -@%:@undef HAVE_PTHREAD]) -m4trace:configure.ac:40: -1- _m4_warn([obsolete], [The macro `AC_LANG_RESTORE' is obsolete. -You should run autoupdate.], [../../lib/autoconf/lang.m4:134: AC_LANG_RESTORE is expanded from... -m4/acx_pthread.m4:49: ACX_PTHREAD is expanded from... -configure.ac:40: the top level]) -m4trace:configure.ac:80: -1- AC_SUBST([CFLAGS]) -m4trace:configure.ac:80: -1- AC_SUBST_TRACE([CFLAGS]) -m4trace:configure.ac:80: -1- m4_pattern_allow([^CFLAGS$]) -m4trace:configure.ac:86: -1- AC_SUBST([GETTEXT_PACKAGE]) -m4trace:configure.ac:86: -1- AC_SUBST_TRACE([GETTEXT_PACKAGE]) -m4trace:configure.ac:86: -1- m4_pattern_allow([^GETTEXT_PACKAGE$]) -m4trace:configure.ac:87: -1- AC_DEFINE_TRACE_LITERAL([GETTEXT_PACKAGE]) -m4trace:configure.ac:87: -1- m4_pattern_allow([^GETTEXT_PACKAGE$]) -m4trace:configure.ac:87: -1- AH_OUTPUT([GETTEXT_PACKAGE], [/* guvcview */ -@%:@undef GETTEXT_PACKAGE]) -m4trace:configure.ac:89: -1- AM_NLS -m4trace:configure.ac:89: -1- AC_SUBST([USE_NLS]) -m4trace:configure.ac:89: -1- AC_SUBST_TRACE([USE_NLS]) -m4trace:configure.ac:89: -1- m4_pattern_allow([^USE_NLS$]) -m4trace:configure.ac:89: -1- AC_SUBST([INTLTOOL_UPDATE]) -m4trace:configure.ac:89: -1- AC_SUBST_TRACE([INTLTOOL_UPDATE]) -m4trace:configure.ac:89: -1- m4_pattern_allow([^INTLTOOL_UPDATE$]) -m4trace:configure.ac:89: -1- AC_SUBST([INTLTOOL_MERGE]) -m4trace:configure.ac:89: -1- AC_SUBST_TRACE([INTLTOOL_MERGE]) -m4trace:configure.ac:89: -1- m4_pattern_allow([^INTLTOOL_MERGE$]) -m4trace:configure.ac:89: -1- AC_SUBST([INTLTOOL_EXTRACT]) -m4trace:configure.ac:89: -1- AC_SUBST_TRACE([INTLTOOL_EXTRACT]) -m4trace:configure.ac:89: -1- m4_pattern_allow([^INTLTOOL_EXTRACT$]) -m4trace:configure.ac:89: -1- AC_SUBST([INTLTOOL_DESKTOP_RULE]) -m4trace:configure.ac:89: -1- AC_SUBST_TRACE([INTLTOOL_DESKTOP_RULE]) -m4trace:configure.ac:89: -1- m4_pattern_allow([^INTLTOOL_DESKTOP_RULE$]) -m4trace:configure.ac:89: -1- _AM_SUBST_NOTMAKE([INTLTOOL_DESKTOP_RULE]) -m4trace:configure.ac:89: -1- AC_SUBST([INTLTOOL_DIRECTORY_RULE]) -m4trace:configure.ac:89: -1- AC_SUBST_TRACE([INTLTOOL_DIRECTORY_RULE]) -m4trace:configure.ac:89: -1- m4_pattern_allow([^INTLTOOL_DIRECTORY_RULE$]) -m4trace:configure.ac:89: -1- _AM_SUBST_NOTMAKE([INTLTOOL_DIRECTORY_RULE]) -m4trace:configure.ac:89: -1- AC_SUBST([INTLTOOL_KEYS_RULE]) -m4trace:configure.ac:89: -1- AC_SUBST_TRACE([INTLTOOL_KEYS_RULE]) -m4trace:configure.ac:89: -1- m4_pattern_allow([^INTLTOOL_KEYS_RULE$]) -m4trace:configure.ac:89: -1- _AM_SUBST_NOTMAKE([INTLTOOL_KEYS_RULE]) -m4trace:configure.ac:89: -1- AC_SUBST([INTLTOOL_PROP_RULE]) -m4trace:configure.ac:89: -1- AC_SUBST_TRACE([INTLTOOL_PROP_RULE]) -m4trace:configure.ac:89: -1- m4_pattern_allow([^INTLTOOL_PROP_RULE$]) -m4trace:configure.ac:89: -1- _AM_SUBST_NOTMAKE([INTLTOOL_PROP_RULE]) -m4trace:configure.ac:89: -1- AC_SUBST([INTLTOOL_OAF_RULE]) -m4trace:configure.ac:89: -1- AC_SUBST_TRACE([INTLTOOL_OAF_RULE]) -m4trace:configure.ac:89: -1- m4_pattern_allow([^INTLTOOL_OAF_RULE$]) -m4trace:configure.ac:89: -1- _AM_SUBST_NOTMAKE([INTLTOOL_OAF_RULE]) -m4trace:configure.ac:89: -1- AC_SUBST([INTLTOOL_PONG_RULE]) -m4trace:configure.ac:89: -1- AC_SUBST_TRACE([INTLTOOL_PONG_RULE]) -m4trace:configure.ac:89: -1- m4_pattern_allow([^INTLTOOL_PONG_RULE$]) -m4trace:configure.ac:89: -1- _AM_SUBST_NOTMAKE([INTLTOOL_PONG_RULE]) -m4trace:configure.ac:89: -1- AC_SUBST([INTLTOOL_SERVER_RULE]) -m4trace:configure.ac:89: -1- AC_SUBST_TRACE([INTLTOOL_SERVER_RULE]) -m4trace:configure.ac:89: -1- m4_pattern_allow([^INTLTOOL_SERVER_RULE$]) -m4trace:configure.ac:89: -1- _AM_SUBST_NOTMAKE([INTLTOOL_SERVER_RULE]) -m4trace:configure.ac:89: -1- AC_SUBST([INTLTOOL_SHEET_RULE]) -m4trace:configure.ac:89: -1- AC_SUBST_TRACE([INTLTOOL_SHEET_RULE]) -m4trace:configure.ac:89: -1- m4_pattern_allow([^INTLTOOL_SHEET_RULE$]) -m4trace:configure.ac:89: -1- _AM_SUBST_NOTMAKE([INTLTOOL_SHEET_RULE]) -m4trace:configure.ac:89: -1- AC_SUBST([INTLTOOL_SOUNDLIST_RULE]) -m4trace:configure.ac:89: -1- AC_SUBST_TRACE([INTLTOOL_SOUNDLIST_RULE]) -m4trace:configure.ac:89: -1- m4_pattern_allow([^INTLTOOL_SOUNDLIST_RULE$]) -m4trace:configure.ac:89: -1- _AM_SUBST_NOTMAKE([INTLTOOL_SOUNDLIST_RULE]) -m4trace:configure.ac:89: -1- AC_SUBST([INTLTOOL_UI_RULE]) -m4trace:configure.ac:89: -1- AC_SUBST_TRACE([INTLTOOL_UI_RULE]) -m4trace:configure.ac:89: -1- m4_pattern_allow([^INTLTOOL_UI_RULE$]) -m4trace:configure.ac:89: -1- _AM_SUBST_NOTMAKE([INTLTOOL_UI_RULE]) -m4trace:configure.ac:89: -1- AC_SUBST([INTLTOOL_XAM_RULE]) -m4trace:configure.ac:89: -1- AC_SUBST_TRACE([INTLTOOL_XAM_RULE]) -m4trace:configure.ac:89: -1- m4_pattern_allow([^INTLTOOL_XAM_RULE$]) -m4trace:configure.ac:89: -1- _AM_SUBST_NOTMAKE([INTLTOOL_XAM_RULE]) -m4trace:configure.ac:89: -1- AC_SUBST([INTLTOOL_KBD_RULE]) -m4trace:configure.ac:89: -1- AC_SUBST_TRACE([INTLTOOL_KBD_RULE]) -m4trace:configure.ac:89: -1- m4_pattern_allow([^INTLTOOL_KBD_RULE$]) -m4trace:configure.ac:89: -1- _AM_SUBST_NOTMAKE([INTLTOOL_KBD_RULE]) -m4trace:configure.ac:89: -1- AC_SUBST([INTLTOOL_XML_RULE]) -m4trace:configure.ac:89: -1- AC_SUBST_TRACE([INTLTOOL_XML_RULE]) -m4trace:configure.ac:89: -1- m4_pattern_allow([^INTLTOOL_XML_RULE$]) -m4trace:configure.ac:89: -1- _AM_SUBST_NOTMAKE([INTLTOOL_XML_RULE]) -m4trace:configure.ac:89: -1- AC_SUBST([INTLTOOL_XML_NOMERGE_RULE]) -m4trace:configure.ac:89: -1- AC_SUBST_TRACE([INTLTOOL_XML_NOMERGE_RULE]) -m4trace:configure.ac:89: -1- m4_pattern_allow([^INTLTOOL_XML_NOMERGE_RULE$]) -m4trace:configure.ac:89: -1- _AM_SUBST_NOTMAKE([INTLTOOL_XML_NOMERGE_RULE]) -m4trace:configure.ac:89: -1- AC_SUBST([INTLTOOL_CAVES_RULE]) -m4trace:configure.ac:89: -1- AC_SUBST_TRACE([INTLTOOL_CAVES_RULE]) -m4trace:configure.ac:89: -1- m4_pattern_allow([^INTLTOOL_CAVES_RULE$]) -m4trace:configure.ac:89: -1- _AM_SUBST_NOTMAKE([INTLTOOL_CAVES_RULE]) -m4trace:configure.ac:89: -1- AC_SUBST([INTLTOOL_SCHEMAS_RULE]) -m4trace:configure.ac:89: -1- AC_SUBST_TRACE([INTLTOOL_SCHEMAS_RULE]) -m4trace:configure.ac:89: -1- m4_pattern_allow([^INTLTOOL_SCHEMAS_RULE$]) -m4trace:configure.ac:89: -1- _AM_SUBST_NOTMAKE([INTLTOOL_SCHEMAS_RULE]) -m4trace:configure.ac:89: -1- AC_SUBST([INTLTOOL_THEME_RULE]) -m4trace:configure.ac:89: -1- AC_SUBST_TRACE([INTLTOOL_THEME_RULE]) -m4trace:configure.ac:89: -1- m4_pattern_allow([^INTLTOOL_THEME_RULE$]) -m4trace:configure.ac:89: -1- _AM_SUBST_NOTMAKE([INTLTOOL_THEME_RULE]) -m4trace:configure.ac:89: -1- AC_SUBST([INTLTOOL_SERVICE_RULE]) -m4trace:configure.ac:89: -1- AC_SUBST_TRACE([INTLTOOL_SERVICE_RULE]) -m4trace:configure.ac:89: -1- m4_pattern_allow([^INTLTOOL_SERVICE_RULE$]) -m4trace:configure.ac:89: -1- _AM_SUBST_NOTMAKE([INTLTOOL_SERVICE_RULE]) -m4trace:configure.ac:89: -1- AC_SUBST([INTLTOOL_POLICY_RULE]) -m4trace:configure.ac:89: -1- AC_SUBST_TRACE([INTLTOOL_POLICY_RULE]) -m4trace:configure.ac:89: -1- m4_pattern_allow([^INTLTOOL_POLICY_RULE$]) -m4trace:configure.ac:89: -1- _AM_SUBST_NOTMAKE([INTLTOOL_POLICY_RULE]) -m4trace:configure.ac:89: -1- AC_SUBST([XGETTEXT]) -m4trace:configure.ac:89: -1- AC_SUBST_TRACE([XGETTEXT]) -m4trace:configure.ac:89: -1- m4_pattern_allow([^XGETTEXT$]) -m4trace:configure.ac:89: -1- AC_SUBST([MSGMERGE]) -m4trace:configure.ac:89: -1- AC_SUBST_TRACE([MSGMERGE]) -m4trace:configure.ac:89: -1- m4_pattern_allow([^MSGMERGE$]) -m4trace:configure.ac:89: -1- AC_SUBST([MSGFMT]) -m4trace:configure.ac:89: -1- AC_SUBST_TRACE([MSGFMT]) -m4trace:configure.ac:89: -1- m4_pattern_allow([^MSGFMT$]) -m4trace:configure.ac:89: -1- AC_SUBST([GMSGFMT]) -m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GMSGFMT]) -m4trace:configure.ac:89: -1- m4_pattern_allow([^GMSGFMT$]) -m4trace:configure.ac:89: -1- AC_SUBST([INTLTOOL_PERL]) -m4trace:configure.ac:89: -1- AC_SUBST_TRACE([INTLTOOL_PERL]) -m4trace:configure.ac:89: -1- m4_pattern_allow([^INTLTOOL_PERL$]) -m4trace:configure.ac:89: -1- AC_SUBST([ALL_LINGUAS]) -m4trace:configure.ac:89: -1- AC_SUBST_TRACE([ALL_LINGUAS]) -m4trace:configure.ac:89: -1- m4_pattern_allow([^ALL_LINGUAS$]) -m4trace:configure.ac:89: -1- AC_SUBST([DATADIRNAME]) -m4trace:configure.ac:89: -1- AC_SUBST_TRACE([DATADIRNAME]) -m4trace:configure.ac:89: -1- m4_pattern_allow([^DATADIRNAME$]) -m4trace:configure.ac:95: -1- AH_OUTPUT([HAVE_LOCALE_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_LOCALE_H]) -m4trace:configure.ac:95: -1- AH_OUTPUT([HAVE_SYS_TYPES_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_SYS_TYPES_H]) -m4trace:configure.ac:95: -1- AH_OUTPUT([HAVE_SYS_STAT_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_SYS_STAT_H]) -m4trace:configure.ac:95: -1- AH_OUTPUT([HAVE_STDLIB_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_STDLIB_H]) -m4trace:configure.ac:95: -1- AH_OUTPUT([HAVE_STRING_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_STRING_H]) -m4trace:configure.ac:95: -1- AH_OUTPUT([HAVE_MEMORY_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_MEMORY_H]) -m4trace:configure.ac:95: -1- AH_OUTPUT([HAVE_STRINGS_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_STRINGS_H]) -m4trace:configure.ac:95: -1- AH_OUTPUT([HAVE_INTTYPES_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_INTTYPES_H]) -m4trace:configure.ac:95: -1- AH_OUTPUT([HAVE_STDINT_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_STDINT_H]) -m4trace:configure.ac:95: -1- AH_OUTPUT([HAVE_UNISTD_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_UNISTD_H]) -m4trace:configure.ac:95: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LOCALE_H]) -m4trace:configure.ac:95: -1- m4_pattern_allow([^HAVE_LOCALE_H$]) -m4trace:configure.ac:95: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2687: AC_TRY_LINK is expanded from... -../../lib/m4sugar/m4sh.m4:639: AS_IF is expanded from... -../../lib/autoconf/general.m4:2031: AC_CACHE_VAL is expanded from... -../../lib/autoconf/general.m4:2052: AC_CACHE_CHECK is expanded from... -aclocal.m4:70: GLIB_LC_MESSAGES is expanded from... -aclocal.m4:338: GLIB_GNU_GETTEXT is expanded from... -aclocal.m4:437: AM_GLIB_GNU_GETTEXT is expanded from... -configure.ac:95: the top level]) -m4trace:configure.ac:95: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LC_MESSAGES]) -m4trace:configure.ac:95: -1- m4_pattern_allow([^HAVE_LC_MESSAGES$]) -m4trace:configure.ac:95: -1- AH_OUTPUT([HAVE_LC_MESSAGES], [/* Define if your file defines LC_MESSAGES. */ -@%:@undef HAVE_LC_MESSAGES]) -m4trace:configure.ac:95: -1- AC_SUBST([USE_NLS]) -m4trace:configure.ac:95: -1- AC_SUBST_TRACE([USE_NLS]) -m4trace:configure.ac:95: -1- m4_pattern_allow([^USE_NLS$]) -m4trace:configure.ac:95: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2687: AC_TRY_LINK is expanded from... -../../lib/m4sugar/m4sh.m4:639: AS_IF is expanded from... -../../lib/autoconf/general.m4:2031: AC_CACHE_VAL is expanded from... -../../lib/autoconf/general.m4:2052: AC_CACHE_CHECK is expanded from... -../../lib/m4sugar/m4sh.m4:639: AS_IF is expanded from... -../../lib/autoconf/headers.m4:129: _AC_CHECK_HEADER_MONGREL is expanded from... -../../lib/autoconf/headers.m4:67: AC_CHECK_HEADER is expanded from... -aclocal.m4:124: GLIB_WITH_NLS is expanded from... -aclocal.m4:338: GLIB_GNU_GETTEXT is expanded from... -aclocal.m4:437: AM_GLIB_GNU_GETTEXT is expanded from... -configure.ac:95: the top level]) -m4trace:configure.ac:95: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2687: AC_TRY_LINK is expanded from... -../../lib/m4sugar/m4sh.m4:639: AS_IF is expanded from... -../../lib/autoconf/general.m4:2031: AC_CACHE_VAL is expanded from... -../../lib/autoconf/general.m4:2052: AC_CACHE_CHECK is expanded from... -../../lib/m4sugar/m4sh.m4:639: AS_IF is expanded from... -../../lib/autoconf/headers.m4:129: _AC_CHECK_HEADER_MONGREL is expanded from... -../../lib/autoconf/headers.m4:67: AC_CHECK_HEADER is expanded from... -aclocal.m4:124: GLIB_WITH_NLS is expanded from... -aclocal.m4:338: GLIB_GNU_GETTEXT is expanded from... -aclocal.m4:437: AM_GLIB_GNU_GETTEXT is expanded from... -configure.ac:95: the top level]) -m4trace:configure.ac:95: -1- AH_OUTPUT([HAVE_BIND_TEXTDOMAIN_CODESET], [/* Define to 1 if you have the `bind_textdomain_codeset\' function. */ -@%:@undef HAVE_BIND_TEXTDOMAIN_CODESET]) -m4trace:configure.ac:95: -1- AC_DEFINE_TRACE_LITERAL([HAVE_BIND_TEXTDOMAIN_CODESET]) -m4trace:configure.ac:95: -1- m4_pattern_allow([^HAVE_BIND_TEXTDOMAIN_CODESET$]) -m4trace:configure.ac:95: -1- AH_OUTPUT([HAVE_BIND_TEXTDOMAIN_CODESET], [/* Define to 1 if you have the `bind_textdomain_codeset\' function. */ -@%:@undef HAVE_BIND_TEXTDOMAIN_CODESET]) -m4trace:configure.ac:95: -1- AC_DEFINE_TRACE_LITERAL([HAVE_BIND_TEXTDOMAIN_CODESET]) -m4trace:configure.ac:95: -1- m4_pattern_allow([^HAVE_BIND_TEXTDOMAIN_CODESET$]) -m4trace:configure.ac:95: -1- AC_DEFINE_TRACE_LITERAL([HAVE_GETTEXT]) -m4trace:configure.ac:95: -1- m4_pattern_allow([^HAVE_GETTEXT$]) -m4trace:configure.ac:95: -1- AH_OUTPUT([HAVE_GETTEXT], [/* Define if the GNU gettext() function is already present or preinstalled. */ -@%:@undef HAVE_GETTEXT]) -m4trace:configure.ac:95: -1- AC_SUBST([MSGFMT]) -m4trace:configure.ac:95: -1- AC_SUBST_TRACE([MSGFMT]) -m4trace:configure.ac:95: -1- m4_pattern_allow([^MSGFMT$]) -m4trace:configure.ac:95: -1- AH_OUTPUT([HAVE_DCGETTEXT], [/* Define to 1 if you have the `dcgettext\' function. */ -@%:@undef HAVE_DCGETTEXT]) -m4trace:configure.ac:95: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DCGETTEXT]) -m4trace:configure.ac:95: -1- m4_pattern_allow([^HAVE_DCGETTEXT$]) -m4trace:configure.ac:95: -1- AC_SUBST([MSGFMT_OPTS]) -m4trace:configure.ac:95: -1- AC_SUBST_TRACE([MSGFMT_OPTS]) -m4trace:configure.ac:95: -1- m4_pattern_allow([^MSGFMT_OPTS$]) -m4trace:configure.ac:95: -1- AC_SUBST([GMSGFMT]) -m4trace:configure.ac:95: -1- AC_SUBST_TRACE([GMSGFMT]) -m4trace:configure.ac:95: -1- m4_pattern_allow([^GMSGFMT$]) -m4trace:configure.ac:95: -1- AC_SUBST([XGETTEXT]) -m4trace:configure.ac:95: -1- AC_SUBST_TRACE([XGETTEXT]) -m4trace:configure.ac:95: -1- m4_pattern_allow([^XGETTEXT$]) -m4trace:configure.ac:95: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2687: AC_TRY_LINK is expanded from... -../../lib/m4sugar/m4sh.m4:639: AS_IF is expanded from... -../../lib/autoconf/headers.m4:129: _AC_CHECK_HEADER_MONGREL is expanded from... -../../lib/autoconf/headers.m4:67: AC_CHECK_HEADER is expanded from... -aclocal.m4:124: GLIB_WITH_NLS is expanded from... -aclocal.m4:338: GLIB_GNU_GETTEXT is expanded from... -aclocal.m4:437: AM_GLIB_GNU_GETTEXT is expanded from... -configure.ac:95: the top level]) -m4trace:configure.ac:95: -1- AC_DEFINE_TRACE_LITERAL([ENABLE_NLS]) -m4trace:configure.ac:95: -1- m4_pattern_allow([^ENABLE_NLS$]) -m4trace:configure.ac:95: -1- AH_OUTPUT([ENABLE_NLS], [/* always defined to indicate that i18n is enabled */ -@%:@undef ENABLE_NLS]) -m4trace:configure.ac:95: -1- _m4_warn([obsolete], [The macro `AC_OUTPUT_COMMANDS' is obsolete. -You should run autoupdate.], [../../lib/autoconf/status.m4:1026: AC_OUTPUT_COMMANDS is expanded from... -aclocal.m4:124: GLIB_WITH_NLS is expanded from... -aclocal.m4:338: GLIB_GNU_GETTEXT is expanded from... -aclocal.m4:437: AM_GLIB_GNU_GETTEXT is expanded from... -configure.ac:95: the top level]) -m4trace:configure.ac:95: -1- AC_SUBST([CATALOGS]) -m4trace:configure.ac:95: -1- AC_SUBST_TRACE([CATALOGS]) -m4trace:configure.ac:95: -1- m4_pattern_allow([^CATALOGS$]) -m4trace:configure.ac:95: -1- AC_SUBST([CATOBJEXT]) -m4trace:configure.ac:95: -1- AC_SUBST_TRACE([CATOBJEXT]) -m4trace:configure.ac:95: -1- m4_pattern_allow([^CATOBJEXT$]) -m4trace:configure.ac:95: -1- AC_SUBST([DATADIRNAME]) -m4trace:configure.ac:95: -1- AC_SUBST_TRACE([DATADIRNAME]) -m4trace:configure.ac:95: -1- m4_pattern_allow([^DATADIRNAME$]) -m4trace:configure.ac:95: -1- AC_SUBST([GMOFILES]) -m4trace:configure.ac:95: -1- AC_SUBST_TRACE([GMOFILES]) -m4trace:configure.ac:95: -1- m4_pattern_allow([^GMOFILES$]) -m4trace:configure.ac:95: -1- AC_SUBST([INSTOBJEXT]) -m4trace:configure.ac:95: -1- AC_SUBST_TRACE([INSTOBJEXT]) -m4trace:configure.ac:95: -1- m4_pattern_allow([^INSTOBJEXT$]) -m4trace:configure.ac:95: -1- AC_SUBST([INTLLIBS]) -m4trace:configure.ac:95: -1- AC_SUBST_TRACE([INTLLIBS]) -m4trace:configure.ac:95: -1- m4_pattern_allow([^INTLLIBS$]) -m4trace:configure.ac:95: -1- AC_SUBST([PO_IN_DATADIR_TRUE]) -m4trace:configure.ac:95: -1- AC_SUBST_TRACE([PO_IN_DATADIR_TRUE]) -m4trace:configure.ac:95: -1- m4_pattern_allow([^PO_IN_DATADIR_TRUE$]) -m4trace:configure.ac:95: -1- AC_SUBST([PO_IN_DATADIR_FALSE]) -m4trace:configure.ac:95: -1- AC_SUBST_TRACE([PO_IN_DATADIR_FALSE]) -m4trace:configure.ac:95: -1- m4_pattern_allow([^PO_IN_DATADIR_FALSE$]) -m4trace:configure.ac:95: -1- AC_SUBST([POFILES]) -m4trace:configure.ac:95: -1- AC_SUBST_TRACE([POFILES]) -m4trace:configure.ac:95: -1- m4_pattern_allow([^POFILES$]) -m4trace:configure.ac:95: -1- AC_SUBST([POSUB]) -m4trace:configure.ac:95: -1- AC_SUBST_TRACE([POSUB]) -m4trace:configure.ac:95: -1- m4_pattern_allow([^POSUB$]) -m4trace:configure.ac:95: -1- AC_SUBST([MKINSTALLDIRS]) -m4trace:configure.ac:95: -1- AC_SUBST_TRACE([MKINSTALLDIRS]) -m4trace:configure.ac:95: -1- m4_pattern_allow([^MKINSTALLDIRS$]) -m4trace:configure.ac:100: -1- m4_pattern_forbid([^_?PKG_[A-Z_]+$]) -m4trace:configure.ac:100: -1- m4_pattern_allow([^PKG_CONFIG(_(PATH|LIBDIR|SYSROOT_DIR|ALLOW_SYSTEM_(CFLAGS|LIBS)))?$]) -m4trace:configure.ac:100: -1- m4_pattern_allow([^PKG_CONFIG_(DISABLE_UNINSTALLED|TOP_BUILD_DIR|DEBUG_SPEW)$]) -m4trace:configure.ac:100: -1- AC_SUBST([PKG_CONFIG]) -m4trace:configure.ac:100: -1- AC_SUBST_TRACE([PKG_CONFIG]) -m4trace:configure.ac:100: -1- m4_pattern_allow([^PKG_CONFIG$]) -m4trace:configure.ac:100: -1- AC_SUBST([PKG_CONFIG_PATH]) -m4trace:configure.ac:100: -1- AC_SUBST_TRACE([PKG_CONFIG_PATH]) -m4trace:configure.ac:100: -1- m4_pattern_allow([^PKG_CONFIG_PATH$]) -m4trace:configure.ac:100: -1- AC_SUBST([PKG_CONFIG_LIBDIR]) -m4trace:configure.ac:100: -1- AC_SUBST_TRACE([PKG_CONFIG_LIBDIR]) -m4trace:configure.ac:100: -1- m4_pattern_allow([^PKG_CONFIG_LIBDIR$]) -m4trace:configure.ac:100: -1- AC_SUBST([PKG_CONFIG]) -m4trace:configure.ac:100: -1- AC_SUBST_TRACE([PKG_CONFIG]) -m4trace:configure.ac:100: -1- m4_pattern_allow([^PKG_CONFIG$]) -m4trace:configure.ac:100: -1- AC_SUBST([DEPS_CFLAGS]) -m4trace:configure.ac:100: -1- AC_SUBST_TRACE([DEPS_CFLAGS]) -m4trace:configure.ac:100: -1- m4_pattern_allow([^DEPS_CFLAGS$]) -m4trace:configure.ac:100: -1- AC_SUBST([DEPS_LIBS]) -m4trace:configure.ac:100: -1- AC_SUBST_TRACE([DEPS_LIBS]) -m4trace:configure.ac:100: -1- m4_pattern_allow([^DEPS_LIBS$]) -m4trace:configure.ac:101: -1- AC_SUBST([DEPS_CFLAGS]) -m4trace:configure.ac:101: -1- AC_SUBST_TRACE([DEPS_CFLAGS]) -m4trace:configure.ac:101: -1- m4_pattern_allow([^DEPS_CFLAGS$]) -m4trace:configure.ac:102: -1- AC_SUBST([DEPS_LIBS]) -m4trace:configure.ac:102: -1- AC_SUBST_TRACE([DEPS_LIBS]) -m4trace:configure.ac:102: -1- m4_pattern_allow([^DEPS_LIBS$]) -m4trace:configure.ac:115: -1- AM_CONDITIONAL([DEBIAN_MENU], [test "$enable_debian_menu" = yes]) -m4trace:configure.ac:115: -1- AC_SUBST([DEBIAN_MENU_TRUE]) -m4trace:configure.ac:115: -1- AC_SUBST_TRACE([DEBIAN_MENU_TRUE]) -m4trace:configure.ac:115: -1- m4_pattern_allow([^DEBIAN_MENU_TRUE$]) -m4trace:configure.ac:115: -1- AC_SUBST([DEBIAN_MENU_FALSE]) -m4trace:configure.ac:115: -1- AC_SUBST_TRACE([DEBIAN_MENU_FALSE]) -m4trace:configure.ac:115: -1- m4_pattern_allow([^DEBIAN_MENU_FALSE$]) -m4trace:configure.ac:115: -1- _AM_SUBST_NOTMAKE([DEBIAN_MENU_TRUE]) -m4trace:configure.ac:115: -1- _AM_SUBST_NOTMAKE([DEBIAN_MENU_FALSE]) -m4trace:configure.ac:128: -1- AM_CONDITIONAL([DESKTOP], [test "$enable_desktop" = yes]) -m4trace:configure.ac:128: -1- AC_SUBST([DESKTOP_TRUE]) -m4trace:configure.ac:128: -1- AC_SUBST_TRACE([DESKTOP_TRUE]) -m4trace:configure.ac:128: -1- m4_pattern_allow([^DESKTOP_TRUE$]) -m4trace:configure.ac:128: -1- AC_SUBST([DESKTOP_FALSE]) -m4trace:configure.ac:128: -1- AC_SUBST_TRACE([DESKTOP_FALSE]) -m4trace:configure.ac:128: -1- m4_pattern_allow([^DESKTOP_FALSE$]) -m4trace:configure.ac:128: -1- _AM_SUBST_NOTMAKE([DESKTOP_TRUE]) -m4trace:configure.ac:128: -1- _AM_SUBST_NOTMAKE([DESKTOP_FALSE]) -m4trace:configure.ac:142: -1- AC_SUBST([PULSE_CFLAGS]) -m4trace:configure.ac:142: -1- AC_SUBST_TRACE([PULSE_CFLAGS]) -m4trace:configure.ac:142: -1- m4_pattern_allow([^PULSE_CFLAGS$]) -m4trace:configure.ac:142: -1- AC_SUBST([PULSE_LIBS]) -m4trace:configure.ac:142: -1- AC_SUBST_TRACE([PULSE_LIBS]) -m4trace:configure.ac:142: -1- m4_pattern_allow([^PULSE_LIBS$]) -m4trace:configure.ac:143: -1- AC_SUBST([PULSE_CFLAGS]) -m4trace:configure.ac:143: -1- AC_SUBST_TRACE([PULSE_CFLAGS]) -m4trace:configure.ac:143: -1- m4_pattern_allow([^PULSE_CFLAGS$]) -m4trace:configure.ac:144: -1- AC_SUBST([PULSE_LIBS]) -m4trace:configure.ac:144: -1- AC_SUBST_TRACE([PULSE_LIBS]) -m4trace:configure.ac:144: -1- m4_pattern_allow([^PULSE_LIBS$]) -m4trace:configure.ac:146: -1- AC_DEFINE_TRACE_LITERAL([PULSEAUDIO]) -m4trace:configure.ac:146: -1- m4_pattern_allow([^PULSEAUDIO$]) -m4trace:configure.ac:146: -1- AH_OUTPUT([PULSEAUDIO], [/* set to 1 if pulseaudio installed */ -@%:@undef PULSEAUDIO]) -m4trace:configure.ac:169: -1- AC_DEFINE_TRACE_LITERAL([HAS_AVCODEC_H]) -m4trace:configure.ac:169: -1- m4_pattern_allow([^HAS_AVCODEC_H$]) -m4trace:configure.ac:169: -1- AH_OUTPUT([HAS_AVCODEC_H], [/* Define if avcodec.h can be acessed directly */ -@%:@undef HAS_AVCODEC_H]) -m4trace:configure.ac:172: -1- AC_DEFINE_TRACE_LITERAL([HAS_FFMPEG_AVCODEC_H]) -m4trace:configure.ac:172: -1- m4_pattern_allow([^HAS_FFMPEG_AVCODEC_H$]) -m4trace:configure.ac:172: -1- AH_OUTPUT([HAS_FFMPEG_AVCODEC_H], [/* Define if avcodec.h installed to ffmpeg dir */ -@%:@undef HAS_FFMPEG_AVCODEC_H]) -m4trace:configure.ac:175: -1- AC_DEFINE_TRACE_LITERAL([HAS_LIBAVCODEC_AVCODEC_H]) -m4trace:configure.ac:175: -1- m4_pattern_allow([^HAS_LIBAVCODEC_AVCODEC_H$]) -m4trace:configure.ac:175: -1- AH_OUTPUT([HAS_LIBAVCODEC_AVCODEC_H], [/* Define if avcodec.h installed to libavcodec dir */ -@%:@undef HAS_LIBAVCODEC_AVCODEC_H]) -m4trace:configure.ac:182: -1- AH_OUTPUT([WORDS_BIGENDIAN], [/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most - significant byte first (like Motorola and SPARC, unlike Intel). */ -#if defined AC_APPLE_UNIVERSAL_BUILD -# if defined __BIG_ENDIAN__ -# define WORDS_BIGENDIAN 1 -# endif -#else -# ifndef WORDS_BIGENDIAN -# undef WORDS_BIGENDIAN -# endif -#endif]) -m4trace:configure.ac:182: -1- AC_DEFINE_TRACE_LITERAL([WORDS_BIGENDIAN]) -m4trace:configure.ac:182: -1- m4_pattern_allow([^WORDS_BIGENDIAN$]) -m4trace:configure.ac:182: -1- AC_DEFINE_TRACE_LITERAL([AC_APPLE_UNIVERSAL_BUILD]) -m4trace:configure.ac:182: -1- m4_pattern_allow([^AC_APPLE_UNIVERSAL_BUILD$]) -m4trace:configure.ac:182: -1- AH_OUTPUT([AC_APPLE_UNIVERSAL_BUILD], [/* Define if building universal (internal helper macro) */ -@%:@undef AC_APPLE_UNIVERSAL_BUILD]) -m4trace:configure.ac:185: -1- AC_CONFIG_FILES([ - Makefile - data/Makefile - data/icons/Makefile - data/guvcview.desktop.in - data/guvcview.in - po/Makefile.in - src/Makefile -]) -m4trace:configure.ac:194: -1- AC_SUBST([LIB@&t@OBJS], [$ac_libobjs]) -m4trace:configure.ac:194: -1- AC_SUBST_TRACE([LIB@&t@OBJS]) -m4trace:configure.ac:194: -1- m4_pattern_allow([^LIB@&t@OBJS$]) -m4trace:configure.ac:194: -1- AC_SUBST([LTLIBOBJS], [$ac_ltlibobjs]) -m4trace:configure.ac:194: -1- AC_SUBST_TRACE([LTLIBOBJS]) -m4trace:configure.ac:194: -1- m4_pattern_allow([^LTLIBOBJS$]) -m4trace:configure.ac:194: -1- AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"]) -m4trace:configure.ac:194: -1- AC_SUBST([am__EXEEXT_TRUE]) -m4trace:configure.ac:194: -1- AC_SUBST_TRACE([am__EXEEXT_TRUE]) -m4trace:configure.ac:194: -1- m4_pattern_allow([^am__EXEEXT_TRUE$]) -m4trace:configure.ac:194: -1- AC_SUBST([am__EXEEXT_FALSE]) -m4trace:configure.ac:194: -1- AC_SUBST_TRACE([am__EXEEXT_FALSE]) -m4trace:configure.ac:194: -1- m4_pattern_allow([^am__EXEEXT_FALSE$]) -m4trace:configure.ac:194: -1- _AM_SUBST_NOTMAKE([am__EXEEXT_TRUE]) -m4trace:configure.ac:194: -1- _AM_SUBST_NOTMAKE([am__EXEEXT_FALSE]) -m4trace:configure.ac:194: -1- AC_SUBST_TRACE([top_builddir]) -m4trace:configure.ac:194: -1- AC_SUBST_TRACE([top_build_prefix]) -m4trace:configure.ac:194: -1- AC_SUBST_TRACE([srcdir]) -m4trace:configure.ac:194: -1- AC_SUBST_TRACE([abs_srcdir]) -m4trace:configure.ac:194: -1- AC_SUBST_TRACE([top_srcdir]) -m4trace:configure.ac:194: -1- AC_SUBST_TRACE([abs_top_srcdir]) -m4trace:configure.ac:194: -1- AC_SUBST_TRACE([builddir]) -m4trace:configure.ac:194: -1- AC_SUBST_TRACE([abs_builddir]) -m4trace:configure.ac:194: -1- AC_SUBST_TRACE([abs_top_builddir]) -m4trace:configure.ac:194: -1- AC_SUBST_TRACE([INSTALL]) -m4trace:configure.ac:194: -1- AC_SUBST_TRACE([MKDIR_P]) diff -Nru guvcview-1.7.3/autom4te.cache/traces.2 guvcview-2.0.1+ubuntu1~ppa1/autom4te.cache/traces.2 --- guvcview-1.7.3/autom4te.cache/traces.2 2014-03-24 22:56:28.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/autom4te.cache/traces.2 1970-01-01 00:00:00.000000000 +0000 @@ -1,1626 +0,0 @@ -m4trace:/usr/share/aclocal/glib-gettext.m4:415: -1- AC_DEFUN([AM_GLIB_GNU_GETTEXT], [GLIB_GNU_GETTEXT($@)]) -m4trace:/usr/share/aclocal/glib-gettext.m4:415: -1- AC_DEFUN([AM_GLIB_DEFINE_LOCALEDIR], [GLIB_DEFINE_LOCALEDIR($@)]) -m4trace:/usr/share/aclocal/glib-gettext.m4:425: -1- AC_DEFUN([GLIB_RUN_PROG], [cat >conftest.foo <<_ACEOF -$2 -_ACEOF -if AC_RUN_LOG([$1 conftest.foo]); then - m4_ifval([$3], [$3], [:]) -m4_ifvaln([$4], [else $4])dnl -echo "$as_me: failed input was:" >&AS_MESSAGE_LOG_FD -sed 's/^/| /' conftest.foo >&AS_MESSAGE_LOG_FD -fi]) -m4trace:/usr/share/aclocal/pkg.m4:27: -1- AC_DEFUN([PKG_PROG_PKG_CONFIG], [m4_pattern_forbid([^_?PKG_[A-Z_]+$]) -m4_pattern_allow([^PKG_CONFIG(_(PATH|LIBDIR|SYSROOT_DIR|ALLOW_SYSTEM_(CFLAGS|LIBS)))?$]) -m4_pattern_allow([^PKG_CONFIG_(DISABLE_UNINSTALLED|TOP_BUILD_DIR|DEBUG_SPEW)$]) -AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility]) -AC_ARG_VAR([PKG_CONFIG_PATH], [directories to add to pkg-config's search path]) -AC_ARG_VAR([PKG_CONFIG_LIBDIR], [path overriding pkg-config's built-in search path]) - -if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then - AC_PATH_TOOL([PKG_CONFIG], [pkg-config]) -fi -if test -n "$PKG_CONFIG"; then - _pkg_min_version=m4_default([$1], [0.9.0]) - AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version]) - if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then - AC_MSG_RESULT([yes]) - else - AC_MSG_RESULT([no]) - PKG_CONFIG="" - fi -fi[]dnl -]) -m4trace:/usr/share/aclocal/pkg.m4:60: -1- AC_DEFUN([PKG_CHECK_EXISTS], [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl -if test -n "$PKG_CONFIG" && \ - AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then - m4_default([$2], [:]) -m4_ifvaln([$3], [else - $3])dnl -fi]) -m4trace:/usr/share/aclocal/pkg.m4:86: -1- AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED], [AC_REQUIRE([PKG_PROG_PKG_CONFIG]) -if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then - _pkg_short_errors_supported=yes -else - _pkg_short_errors_supported=no -fi[]dnl -]) -m4trace:/usr/share/aclocal/pkg.m4:106: -1- AC_DEFUN([PKG_CHECK_MODULES], [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl -AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl -AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl - -pkg_failed=no -AC_MSG_CHECKING([for $1]) - -_PKG_CONFIG([$1][_CFLAGS], [cflags], [$2]) -_PKG_CONFIG([$1][_LIBS], [libs], [$2]) - -m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS -and $1[]_LIBS to avoid the need to call pkg-config. -See the pkg-config man page for more details.]) - -if test $pkg_failed = yes; then - AC_MSG_RESULT([no]) - _PKG_SHORT_ERRORS_SUPPORTED - if test $_pkg_short_errors_supported = yes; then - $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "$2" 2>&1` - else - $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "$2" 2>&1` - fi - # Put the nasty error message in config.log where it belongs - echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD - - m4_default([$4], [AC_MSG_ERROR( -[Package requirements ($2) were not met: - -$$1_PKG_ERRORS - -Consider adjusting the PKG_CONFIG_PATH environment variable if you -installed software in a non-standard prefix. - -_PKG_TEXT])[]dnl - ]) -elif test $pkg_failed = untried; then - AC_MSG_RESULT([no]) - m4_default([$4], [AC_MSG_FAILURE( -[The pkg-config script could not be found or is too old. Make sure it -is in your PATH or set the PKG_CONFIG environment variable to the full -path to pkg-config. - -_PKG_TEXT - -To get pkg-config, see .])[]dnl - ]) -else - $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS - $1[]_LIBS=$pkg_cv_[]$1[]_LIBS - AC_MSG_RESULT([yes]) - $3 -fi[]dnl -]) -m4trace:/usr/share/aclocal-1.13/amversion.m4:14: -1- AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version='1.13' -dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to -dnl require some minimum version. Point them to the right macro. -m4_if([$1], [1.13.3], [], - [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl -]) -m4trace:/usr/share/aclocal-1.13/amversion.m4:33: -1- AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], [AM_AUTOMAKE_VERSION([1.13.3])dnl -m4_ifndef([AC_AUTOCONF_VERSION], - [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl -_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) -m4trace:/usr/share/aclocal-1.13/auxdir.m4:47: -1- AC_DEFUN([AM_AUX_DIR_EXPAND], [dnl Rely on autoconf to set up CDPATH properly. -AC_PREREQ([2.50])dnl -# expand $ac_aux_dir to an absolute path -am_aux_dir=`cd $ac_aux_dir && pwd` -]) -m4trace:/usr/share/aclocal-1.13/cond.m4:12: -1- AC_DEFUN([AM_CONDITIONAL], [AC_PREREQ([2.52])dnl - m4_if([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], - [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl -AC_SUBST([$1_TRUE])dnl -AC_SUBST([$1_FALSE])dnl -_AM_SUBST_NOTMAKE([$1_TRUE])dnl -_AM_SUBST_NOTMAKE([$1_FALSE])dnl -m4_define([_AM_COND_VALUE_$1], [$2])dnl -if $2; then - $1_TRUE= - $1_FALSE='#' -else - $1_TRUE='#' - $1_FALSE= -fi -AC_CONFIG_COMMANDS_PRE( -[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then - AC_MSG_ERROR([[conditional "$1" was never defined. -Usually this means the macro was only invoked conditionally.]]) -fi])]) -m4trace:/usr/share/aclocal-1.13/depend.m4:26: -1- AC_DEFUN([_AM_DEPENDENCIES], [AC_REQUIRE([AM_SET_DEPDIR])dnl -AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl -AC_REQUIRE([AM_MAKE_INCLUDE])dnl -AC_REQUIRE([AM_DEP_TRACK])dnl - -m4_if([$1], [CC], [depcc="$CC" am_compiler_list=], - [$1], [CXX], [depcc="$CXX" am_compiler_list=], - [$1], [OBJC], [depcc="$OBJC" am_compiler_list='gcc3 gcc'], - [$1], [OBJCXX], [depcc="$OBJCXX" am_compiler_list='gcc3 gcc'], - [$1], [UPC], [depcc="$UPC" am_compiler_list=], - [$1], [GCJ], [depcc="$GCJ" am_compiler_list='gcc3 gcc'], - [depcc="$$1" am_compiler_list=]) - -AC_CACHE_CHECK([dependency style of $depcc], - [am_cv_$1_dependencies_compiler_type], -[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then - # We make a subdir and do the tests there. Otherwise we can end up - # making bogus files that we don't know about and never remove. For - # instance it was reported that on HP-UX the gcc test will end up - # making a dummy file named 'D' -- because '-MD' means "put the output - # in D". - rm -rf conftest.dir - mkdir conftest.dir - # Copy depcomp to subdir because otherwise we won't find it if we're - # using a relative directory. - cp "$am_depcomp" conftest.dir - cd conftest.dir - # We will build objects and dependencies in a subdirectory because - # it helps to detect inapplicable dependency modes. For instance - # both Tru64's cc and ICC support -MD to output dependencies as a - # side effect of compilation, but ICC will put the dependencies in - # the current directory while Tru64 will put them in the object - # directory. - mkdir sub - - am_cv_$1_dependencies_compiler_type=none - if test "$am_compiler_list" = ""; then - am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp` - fi - am__universal=false - m4_case([$1], [CC], - [case " $depcc " in #( - *\ -arch\ *\ -arch\ *) am__universal=true ;; - esac], - [CXX], - [case " $depcc " in #( - *\ -arch\ *\ -arch\ *) am__universal=true ;; - esac]) - - for depmode in $am_compiler_list; do - # Setup a source with many dependencies, because some compilers - # like to wrap large dependency lists on column 80 (with \), and - # we should not choose a depcomp mode which is confused by this. - # - # We need to recreate these files for each test, as the compiler may - # overwrite some of them when testing with obscure command lines. - # This happens at least with the AIX C compiler. - : > sub/conftest.c - for i in 1 2 3 4 5 6; do - echo '#include "conftst'$i'.h"' >> sub/conftest.c - # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with - # Solaris 10 /bin/sh. - echo '/* dummy */' > sub/conftst$i.h - done - echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf - - # We check with '-c' and '-o' for the sake of the "dashmstdout" - # mode. It turns out that the SunPro C++ compiler does not properly - # handle '-M -o', and we need to detect this. Also, some Intel - # versions had trouble with output in subdirs. - am__obj=sub/conftest.${OBJEXT-o} - am__minus_obj="-o $am__obj" - case $depmode in - gcc) - # This depmode causes a compiler race in universal mode. - test "$am__universal" = false || continue - ;; - nosideeffect) - # After this tag, mechanisms are not by side-effect, so they'll - # only be used when explicitly requested. - if test "x$enable_dependency_tracking" = xyes; then - continue - else - break - fi - ;; - msvc7 | msvc7msys | msvisualcpp | msvcmsys) - # This compiler won't grok '-c -o', but also, the minuso test has - # not run yet. These depmodes are late enough in the game, and - # so weak that their functioning should not be impacted. - am__obj=conftest.${OBJEXT-o} - am__minus_obj= - ;; - none) break ;; - esac - if depmode=$depmode \ - source=sub/conftest.c object=$am__obj \ - depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ - $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ - >/dev/null 2>conftest.err && - grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && - grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && - grep $am__obj sub/conftest.Po > /dev/null 2>&1 && - ${MAKE-make} -s -f confmf > /dev/null 2>&1; then - # icc doesn't choke on unknown options, it will just issue warnings - # or remarks (even with -Werror). So we grep stderr for any message - # that says an option was ignored or not supported. - # When given -MP, icc 7.0 and 7.1 complain thusly: - # icc: Command line warning: ignoring option '-M'; no argument required - # The diagnosis changed in icc 8.0: - # icc: Command line remark: option '-MP' not supported - if (grep 'ignoring option' conftest.err || - grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else - am_cv_$1_dependencies_compiler_type=$depmode - break - fi - fi - done - - cd .. - rm -rf conftest.dir -else - am_cv_$1_dependencies_compiler_type=none -fi -]) -AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type]) -AM_CONDITIONAL([am__fastdep$1], [ - test "x$enable_dependency_tracking" != xno \ - && test "$am_cv_$1_dependencies_compiler_type" = gcc3]) -]) -m4trace:/usr/share/aclocal-1.13/depend.m4:163: -1- AC_DEFUN([AM_SET_DEPDIR], [AC_REQUIRE([AM_SET_LEADING_DOT])dnl -AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl -]) -m4trace:/usr/share/aclocal-1.13/depend.m4:171: -1- AC_DEFUN([AM_DEP_TRACK], [AC_ARG_ENABLE([dependency-tracking], [dnl -AS_HELP_STRING( - [--enable-dependency-tracking], - [do not reject slow dependency extractors]) -AS_HELP_STRING( - [--disable-dependency-tracking], - [speeds up one-time build])]) -if test "x$enable_dependency_tracking" != xno; then - am_depcomp="$ac_aux_dir/depcomp" - AMDEPBACKSLASH='\' - am__nodep='_no' -fi -AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) -AC_SUBST([AMDEPBACKSLASH])dnl -_AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl -AC_SUBST([am__nodep])dnl -_AM_SUBST_NOTMAKE([am__nodep])dnl -]) -m4trace:/usr/share/aclocal-1.13/depout.m4:12: -1- AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], [{ - # Older Autoconf quotes --file arguments for eval, but not when files - # are listed without --file. Let's play safe and only enable the eval - # if we detect the quoting. - case $CONFIG_FILES in - *\'*) eval set x "$CONFIG_FILES" ;; - *) set x $CONFIG_FILES ;; - esac - shift - for mf - do - # Strip MF so we end up with the name of the file. - mf=`echo "$mf" | sed -e 's/:.*$//'` - # Check whether this is an Automake generated Makefile or not. - # We used to match only the files named 'Makefile.in', but - # some people rename them; so instead we look at the file content. - # Grep'ing the first line is not enough: some people post-process - # each Makefile.in and add a new line on top of each file to say so. - # Grep'ing the whole file is not good either: AIX grep has a line - # limit of 2048, but all sed's we know have understand at least 4000. - if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then - dirpart=`AS_DIRNAME("$mf")` - else - continue - fi - # Extract the definition of DEPDIR, am__include, and am__quote - # from the Makefile without running 'make'. - DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` - test -z "$DEPDIR" && continue - am__include=`sed -n 's/^am__include = //p' < "$mf"` - test -z "$am__include" && continue - am__quote=`sed -n 's/^am__quote = //p' < "$mf"` - # Find all dependency output files, they are included files with - # $(DEPDIR) in their names. We invoke sed twice because it is the - # simplest approach to changing $(DEPDIR) to its actual value in the - # expansion. - for file in `sed -n " - s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ - sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do - # Make sure the directory exists. - test -f "$dirpart/$file" && continue - fdir=`AS_DIRNAME(["$file"])` - AS_MKDIR_P([$dirpart/$fdir]) - # echo "creating $dirpart/$file" - echo '# dummy' > "$dirpart/$file" - done - done -} -]) -m4trace:/usr/share/aclocal-1.13/depout.m4:71: -1- AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], [AC_CONFIG_COMMANDS([depfiles], - [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS], - [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"]) -]) -m4trace:/usr/share/aclocal-1.13/init.m4:23: -1- AC_DEFUN([AM_INIT_AUTOMAKE], [AC_PREREQ([2.65])dnl -dnl Autoconf wants to disallow AM_ names. We explicitly allow -dnl the ones we care about. -m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl -AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl -AC_REQUIRE([AC_PROG_INSTALL])dnl -if test "`cd $srcdir && pwd`" != "`pwd`"; then - # Use -I$(srcdir) only when $(srcdir) != ., so that make's output - # is not polluted with repeated "-I." - AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl - # test to see if srcdir already configured - if test -f $srcdir/config.status; then - AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) - fi -fi - -# test whether we have cygpath -if test -z "$CYGPATH_W"; then - if (cygpath --version) >/dev/null 2>/dev/null; then - CYGPATH_W='cygpath -w' - else - CYGPATH_W=echo - fi -fi -AC_SUBST([CYGPATH_W]) - -# Define the identity of the package. -dnl Distinguish between old-style and new-style calls. -m4_ifval([$2], -[AC_DIAGNOSE([obsolete], - [$0: two- and three-arguments forms are deprecated.]) -m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl - AC_SUBST([PACKAGE], [$1])dnl - AC_SUBST([VERSION], [$2])], -[_AM_SET_OPTIONS([$1])dnl -dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT. -m4_if( - m4_ifdef([AC_PACKAGE_NAME], [ok]):m4_ifdef([AC_PACKAGE_VERSION], [ok]), - [ok:ok],, - [m4_fatal([AC_INIT should be called with package and version arguments])])dnl - AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl - AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl - -_AM_IF_OPTION([no-define],, -[AC_DEFINE_UNQUOTED([PACKAGE], ["$PACKAGE"], [Name of package]) - AC_DEFINE_UNQUOTED([VERSION], ["$VERSION"], [Version number of package])])dnl - -# Some tools Automake needs. -AC_REQUIRE([AM_SANITY_CHECK])dnl -AC_REQUIRE([AC_ARG_PROGRAM])dnl -AM_MISSING_PROG([ACLOCAL], [aclocal-${am__api_version}]) -AM_MISSING_PROG([AUTOCONF], [autoconf]) -AM_MISSING_PROG([AUTOMAKE], [automake-${am__api_version}]) -AM_MISSING_PROG([AUTOHEADER], [autoheader]) -AM_MISSING_PROG([MAKEINFO], [makeinfo]) -AC_REQUIRE([AM_PROG_INSTALL_SH])dnl -AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl -AC_REQUIRE([AC_PROG_MKDIR_P])dnl -# For better backward compatibility. To be removed once Automake 1.9.x -# dies out for good. For more background, see: -# -# -AC_SUBST([mkdir_p], ['$(MKDIR_P)']) -# We need awk for the "check" target. The system "awk" is bad on -# some platforms. -AC_REQUIRE([AC_PROG_AWK])dnl -AC_REQUIRE([AC_PROG_MAKE_SET])dnl -AC_REQUIRE([AM_SET_LEADING_DOT])dnl -_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], - [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], - [_AM_PROG_TAR([v7])])]) -_AM_IF_OPTION([no-dependencies],, -[AC_PROVIDE_IFELSE([AC_PROG_CC], - [_AM_DEPENDENCIES([CC])], - [m4_define([AC_PROG_CC], - m4_defn([AC_PROG_CC])[_AM_DEPENDENCIES([CC])])])dnl -AC_PROVIDE_IFELSE([AC_PROG_CXX], - [_AM_DEPENDENCIES([CXX])], - [m4_define([AC_PROG_CXX], - m4_defn([AC_PROG_CXX])[_AM_DEPENDENCIES([CXX])])])dnl -AC_PROVIDE_IFELSE([AC_PROG_OBJC], - [_AM_DEPENDENCIES([OBJC])], - [m4_define([AC_PROG_OBJC], - m4_defn([AC_PROG_OBJC])[_AM_DEPENDENCIES([OBJC])])])dnl -AC_PROVIDE_IFELSE([AC_PROG_OBJCXX], - [_AM_DEPENDENCIES([OBJCXX])], - [m4_define([AC_PROG_OBJCXX], - m4_defn([AC_PROG_OBJCXX])[_AM_DEPENDENCIES([OBJCXX])])])dnl -]) -AC_REQUIRE([AM_SILENT_RULES])dnl -dnl The testsuite driver may need to know about EXEEXT, so add the -dnl 'am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This -dnl macro is hooked onto _AC_COMPILER_EXEEXT early, see below. -AC_CONFIG_COMMANDS_PRE(dnl -[m4_provide_if([_AM_COMPILER_EXEEXT], - [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl -]) -m4trace:/usr/share/aclocal-1.13/init.m4:136: -1- AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK], [# Compute $1's index in $config_headers. -_am_arg=$1 -_am_stamp_count=1 -for _am_header in $config_headers :; do - case $_am_header in - $_am_arg | $_am_arg:* ) - break ;; - * ) - _am_stamp_count=`expr $_am_stamp_count + 1` ;; - esac -done -echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) -m4trace:/usr/share/aclocal-1.13/install-sh.m4:11: -1- AC_DEFUN([AM_PROG_INSTALL_SH], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl -if test x"${install_sh}" != xset; then - case $am_aux_dir in - *\ * | *\ *) - install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; - *) - install_sh="\${SHELL} $am_aux_dir/install-sh" - esac -fi -AC_SUBST([install_sh])]) -m4trace:/usr/share/aclocal-1.13/lead-dot.m4:10: -1- AC_DEFUN([AM_SET_LEADING_DOT], [rm -rf .tst 2>/dev/null -mkdir .tst 2>/dev/null -if test -d .tst; then - am__leading_dot=. -else - am__leading_dot=_ -fi -rmdir .tst 2>/dev/null -AC_SUBST([am__leading_dot])]) -m4trace:/usr/share/aclocal-1.13/maintainer.m4:16: -1- AC_DEFUN([AM_MAINTAINER_MODE], [m4_case(m4_default([$1], [disable]), - [enable], [m4_define([am_maintainer_other], [disable])], - [disable], [m4_define([am_maintainer_other], [enable])], - [m4_define([am_maintainer_other], [enable]) - m4_warn([syntax], [unexpected argument to AM@&t@_MAINTAINER_MODE: $1])]) -AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) - dnl maintainer-mode's default is 'disable' unless 'enable' is passed - AC_ARG_ENABLE([maintainer-mode], - [AS_HELP_STRING([--]am_maintainer_other[-maintainer-mode], - am_maintainer_other[ make rules and dependencies not useful - (and sometimes confusing) to the casual installer])], - [USE_MAINTAINER_MODE=$enableval], - [USE_MAINTAINER_MODE=]m4_if(am_maintainer_other, [enable], [no], [yes])) - AC_MSG_RESULT([$USE_MAINTAINER_MODE]) - AM_CONDITIONAL([MAINTAINER_MODE], [test $USE_MAINTAINER_MODE = yes]) - MAINT=$MAINTAINER_MODE_TRUE - AC_SUBST([MAINT])dnl - -]) -m4trace:/usr/share/aclocal-1.13/make.m4:12: -1- AC_DEFUN([AM_MAKE_INCLUDE], [am_make=${MAKE-make} -cat > confinc << 'END' -am__doit: - @echo this is the am__doit target -.PHONY: am__doit -END -# If we don't find an include directive, just comment out the code. -AC_MSG_CHECKING([for style of include used by $am_make]) -am__include="#" -am__quote= -_am_result=none -# First try GNU make style include. -echo "include confinc" > confmf -# Ignore all kinds of additional output from 'make'. -case `$am_make -s -f confmf 2> /dev/null` in #( -*the\ am__doit\ target*) - am__include=include - am__quote= - _am_result=GNU - ;; -esac -# Now try BSD make style include. -if test "$am__include" = "#"; then - echo '.include "confinc"' > confmf - case `$am_make -s -f confmf 2> /dev/null` in #( - *the\ am__doit\ target*) - am__include=.include - am__quote="\"" - _am_result=BSD - ;; - esac -fi -AC_SUBST([am__include]) -AC_SUBST([am__quote]) -AC_MSG_RESULT([$_am_result]) -rm -f confinc confmf -]) -m4trace:/usr/share/aclocal-1.13/minuso.m4:11: -1- AC_DEFUN([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC_C_O])dnl -AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl -AC_REQUIRE_AUX_FILE([compile])dnl -# FIXME: we rely on the cache variable name because -# there is no other way. -set dummy $CC -am_cc=`echo $[2] | sed ['s/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/']` -eval am_t=\$ac_cv_prog_cc_${am_cc}_c_o -if test "$am_t" != yes; then - # Losing compiler, so override with the script. - # FIXME: It is wrong to rewrite CC. - # But if we don't then we get into trouble of one sort or another. - # A longer-term fix would be to have automake use am__CC in this case, - # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" - CC="$am_aux_dir/compile $CC" -fi -dnl Make sure AC_PROG_CC is never called again, or it will override our -dnl setting of CC. -m4_define([AC_PROG_CC], - [m4_fatal([AC_PROG_CC cannot be called after AM_PROG_CC_C_O])]) -]) -m4trace:/usr/share/aclocal-1.13/missing.m4:11: -1- AC_DEFUN([AM_MISSING_PROG], [AC_REQUIRE([AM_MISSING_HAS_RUN]) -$1=${$1-"${am_missing_run}$2"} -AC_SUBST($1)]) -m4trace:/usr/share/aclocal-1.13/missing.m4:20: -1- AC_DEFUN([AM_MISSING_HAS_RUN], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl -AC_REQUIRE_AUX_FILE([missing])dnl -if test x"${MISSING+set}" != xset; then - case $am_aux_dir in - *\ * | *\ *) - MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; - *) - MISSING="\${SHELL} $am_aux_dir/missing" ;; - esac -fi -# Use eval to expand $SHELL -if eval "$MISSING --is-lightweight"; then - am_missing_run="$MISSING " -else - am_missing_run= - AC_MSG_WARN(['missing' script is too old or missing]) -fi -]) -m4trace:/usr/share/aclocal-1.13/options.m4:11: -1- AC_DEFUN([_AM_MANGLE_OPTION], [[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) -m4trace:/usr/share/aclocal-1.13/options.m4:17: -1- AC_DEFUN([_AM_SET_OPTION], [m4_define(_AM_MANGLE_OPTION([$1]), [1])]) -m4trace:/usr/share/aclocal-1.13/options.m4:23: -1- AC_DEFUN([_AM_SET_OPTIONS], [m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) -m4trace:/usr/share/aclocal-1.13/options.m4:29: -1- AC_DEFUN([_AM_IF_OPTION], [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) -m4trace:/usr/share/aclocal-1.13/runlog.m4:12: -1- AC_DEFUN([AM_RUN_LOG], [{ echo "$as_me:$LINENO: $1" >&AS_MESSAGE_LOG_FD - ($1) >&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD - (exit $ac_status); }]) -m4trace:/usr/share/aclocal-1.13/sanity.m4:11: -1- AC_DEFUN([AM_SANITY_CHECK], [AC_MSG_CHECKING([whether build environment is sane]) -# Reject unsafe characters in $srcdir or the absolute working directory -# name. Accept space and tab only in the latter. -am_lf=' -' -case `pwd` in - *[[\\\"\#\$\&\'\`$am_lf]]*) - AC_MSG_ERROR([unsafe absolute working directory name]);; -esac -case $srcdir in - *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*) - AC_MSG_ERROR([unsafe srcdir value: '$srcdir']);; -esac - -# Do 'set' in a subshell so we don't clobber the current shell's -# arguments. Must try -L first in case configure is actually a -# symlink; some systems play weird games with the mod time of symlinks -# (eg FreeBSD returns the mod time of the symlink's containing -# directory). -if ( - am_has_slept=no - for am_try in 1 2; do - echo "timestamp, slept: $am_has_slept" > conftest.file - set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` - if test "$[*]" = "X"; then - # -L didn't work. - set X `ls -t "$srcdir/configure" conftest.file` - fi - if test "$[*]" != "X $srcdir/configure conftest.file" \ - && test "$[*]" != "X conftest.file $srcdir/configure"; then - - # If neither matched, then we have a broken ls. This can happen - # if, for instance, CONFIG_SHELL is bash and it inherits a - # broken ls alias from the environment. This has actually - # happened. Such a system could not be considered "sane". - AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken - alias in your environment]) - fi - if test "$[2]" = conftest.file || test $am_try -eq 2; then - break - fi - # Just in case. - sleep 1 - am_has_slept=yes - done - test "$[2]" = conftest.file - ) -then - # Ok. - : -else - AC_MSG_ERROR([newly created file is older than distributed files! -Check your system clock]) -fi -AC_MSG_RESULT([yes]) -# If we didn't sleep, we still need to ensure time stamps of config.status and -# generated files are strictly newer. -am_sleep_pid= -if grep 'slept: no' conftest.file >/dev/null 2>&1; then - ( sleep 1 ) & - am_sleep_pid=$! -fi -AC_CONFIG_COMMANDS_PRE( - [AC_MSG_CHECKING([that generated files are newer than configure]) - if test -n "$am_sleep_pid"; then - # Hide warnings about reused PIDs. - wait $am_sleep_pid 2>/dev/null - fi - AC_MSG_RESULT([done])]) -rm -f conftest.file -]) -m4trace:/usr/share/aclocal-1.13/silent.m4:12: -1- AC_DEFUN([AM_SILENT_RULES], [AC_ARG_ENABLE([silent-rules], [dnl -AS_HELP_STRING( - [--enable-silent-rules], - [less verbose build output (undo: "make V=1")]) -AS_HELP_STRING( - [--disable-silent-rules], - [verbose build output (undo: "make V=0")])dnl -]) -case $enable_silent_rules in @%:@ ((( - yes) AM_DEFAULT_VERBOSITY=0;; - no) AM_DEFAULT_VERBOSITY=1;; - *) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);; -esac -dnl -dnl A few 'make' implementations (e.g., NonStop OS and NextStep) -dnl do not support nested variable expansions. -dnl See automake bug#9928 and bug#10237. -am_make=${MAKE-make} -AC_CACHE_CHECK([whether $am_make supports nested variables], - [am_cv_make_support_nested_variables], - [if AS_ECHO([['TRUE=$(BAR$(V)) -BAR0=false -BAR1=true -V=1 -am__doit: - @$(TRUE) -.PHONY: am__doit']]) | $am_make -f - >/dev/null 2>&1; then - am_cv_make_support_nested_variables=yes -else - am_cv_make_support_nested_variables=no -fi]) -if test $am_cv_make_support_nested_variables = yes; then - dnl Using '$V' instead of '$(V)' breaks IRIX make. - AM_V='$(V)' - AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' -else - AM_V=$AM_DEFAULT_VERBOSITY - AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY -fi -AC_SUBST([AM_V])dnl -AM_SUBST_NOTMAKE([AM_V])dnl -AC_SUBST([AM_DEFAULT_V])dnl -AM_SUBST_NOTMAKE([AM_DEFAULT_V])dnl -AC_SUBST([AM_DEFAULT_VERBOSITY])dnl -AM_BACKSLASH='\' -AC_SUBST([AM_BACKSLASH])dnl -_AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl -]) -m4trace:/usr/share/aclocal-1.13/strip.m4:17: -1- AC_DEFUN([AM_PROG_INSTALL_STRIP], [AC_REQUIRE([AM_PROG_INSTALL_SH])dnl -# Installed binaries are usually stripped using 'strip' when the user -# run "make install-strip". However 'strip' might not be the right -# tool to use in cross-compilation environments, therefore Automake -# will honor the 'STRIP' environment variable to overrule this program. -dnl Don't test for $cross_compiling = yes, because it might be 'maybe'. -if test "$cross_compiling" != no; then - AC_CHECK_TOOL([STRIP], [strip], :) -fi -INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" -AC_SUBST([INSTALL_STRIP_PROGRAM])]) -m4trace:/usr/share/aclocal-1.13/substnot.m4:12: -1- AC_DEFUN([_AM_SUBST_NOTMAKE]) -m4trace:/usr/share/aclocal-1.13/substnot.m4:17: -1- AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) -m4trace:/usr/share/aclocal-1.13/tar.m4:23: -1- AC_DEFUN([_AM_PROG_TAR], [# Always define AMTAR for backward compatibility. Yes, it's still used -# in the wild :-( We should find a proper way to deprecate it ... -AC_SUBST([AMTAR], ['$${TAR-tar}']) - -# We'll loop over all known methods to create a tar archive until one works. -_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' - -m4_if([$1], [v7], - [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'], - - [m4_case([$1], - [ustar], - [# The POSIX 1988 'ustar' format is defined with fixed-size fields. - # There is notably a 21 bits limit for the UID and the GID. In fact, - # the 'pax' utility can hang on bigger UID/GID (see automake bug#8343 - # and bug#13588). - am_max_uid=2097151 # 2^21 - 1 - am_max_gid=$am_max_uid - # The $UID and $GID variables are not portable, so we need to resort - # to the POSIX-mandated id(1) utility. Errors in the 'id' calls - # below are definitely unexpected, so allow the users to see them - # (that is, avoid stderr redirection). - am_uid=`id -u || echo unknown` - am_gid=`id -g || echo unknown` - AC_MSG_CHECKING([whether UID '$am_uid' is supported by ustar format]) - if test $am_uid -le $am_max_uid; then - AC_MSG_RESULT([yes]) - else - AC_MSG_RESULT([no]) - _am_tools=none - fi - AC_MSG_CHECKING([whether GID '$am_gid' is supported by ustar format]) - if test $am_gid -le $am_max_gid; then - AC_MSG_RESULT([yes]) - else - AC_MSG_RESULT([no]) - _am_tools=none - fi], - - [pax], - [], - - [m4_fatal([Unknown tar format])]) - - AC_MSG_CHECKING([how to create a $1 tar archive]) - - # Go ahead even if we have the value already cached. We do so because we - # need to set the values for the 'am__tar' and 'am__untar' variables. - _am_tools=${am_cv_prog_tar_$1-$_am_tools} - - for _am_tool in $_am_tools; do - case $_am_tool in - gnutar) - for _am_tar in tar gnutar gtar; do - AM_RUN_LOG([$_am_tar --version]) && break - done - am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"' - am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"' - am__untar="$_am_tar -xf -" - ;; - plaintar) - # Must skip GNU tar: if it does not support --format= it doesn't create - # ustar tarball either. - (tar --version) >/dev/null 2>&1 && continue - am__tar='tar chf - "$$tardir"' - am__tar_='tar chf - "$tardir"' - am__untar='tar xf -' - ;; - pax) - am__tar='pax -L -x $1 -w "$$tardir"' - am__tar_='pax -L -x $1 -w "$tardir"' - am__untar='pax -r' - ;; - cpio) - am__tar='find "$$tardir" -print | cpio -o -H $1 -L' - am__tar_='find "$tardir" -print | cpio -o -H $1 -L' - am__untar='cpio -i -H $1 -d' - ;; - none) - am__tar=false - am__tar_=false - am__untar=false - ;; - esac - - # If the value was cached, stop now. We just wanted to have am__tar - # and am__untar set. - test -n "${am_cv_prog_tar_$1}" && break - - # tar/untar a dummy directory, and stop if the command works. - rm -rf conftest.dir - mkdir conftest.dir - echo GrepMe > conftest.dir/file - AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) - rm -rf conftest.dir - if test -s conftest.tar; then - AM_RUN_LOG([$am__untar /dev/null 2>&1 && break - fi - done - rm -rf conftest.dir - - AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool]) - AC_MSG_RESULT([$am_cv_prog_tar_$1])]) - -AC_SUBST([am__tar]) -AC_SUBST([am__untar]) -]) -m4trace:m4/acx_pthread.m4:49: -1- AC_DEFUN([ACX_PTHREAD], [ -AC_REQUIRE([AC_CANONICAL_HOST]) -AC_LANG_SAVE -AC_LANG_C -acx_pthread_ok=no - -# We used to check for pthread.h first, but this fails if pthread.h -# requires special compiler flags (e.g. on True64 or Sequent). -# It gets checked for in the link test anyway. - -# First of all, check if the user has set any of the PTHREAD_LIBS, -# etcetera environment variables, and if threads linking works using -# them: -if test x"$PTHREAD_LIBS$PTHREAD_CFLAGS" != x; then - save_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS $PTHREAD_CFLAGS" - save_LIBS="$LIBS" - LIBS="$PTHREAD_LIBS $LIBS" - AC_MSG_CHECKING([for pthread_join in LIBS=$PTHREAD_LIBS with CFLAGS=$PTHREAD_CFLAGS]) - AC_TRY_LINK_FUNC(pthread_join, acx_pthread_ok=yes) - AC_MSG_RESULT($acx_pthread_ok) - if test x"$acx_pthread_ok" = xno; then - PTHREAD_LIBS="" - PTHREAD_CFLAGS="" - fi - LIBS="$save_LIBS" - CFLAGS="$save_CFLAGS" -fi - -# We must check for the threads library under a number of different -# names; the ordering is very important because some systems -# (e.g. DEC) have both -lpthread and -lpthreads, where one of the -# libraries is broken (non-POSIX). - -# Create a list of thread flags to try. Items starting with a "-" are -# C compiler flags, and other items are library names, except for "none" -# which indicates that we try without any flags at all, and "pthread-config" -# which is a program returning the flags for the Pth emulation library. - -acx_pthread_flags="pthreads none -Kthread -kthread lthread -pthread -pthreads -mthreads pthread --thread-safe -mt pthread-config" - -# The ordering *is* (sometimes) important. Some notes on the -# individual items follow: - -# pthreads: AIX (must check this before -lpthread) -# none: in case threads are in libc; should be tried before -Kthread and -# other compiler flags to prevent continual compiler warnings -# -Kthread: Sequent (threads in libc, but -Kthread needed for pthread.h) -# -kthread: FreeBSD kernel threads (preferred to -pthread since SMP-able) -# lthread: LinuxThreads port on FreeBSD (also preferred to -pthread) -# -pthread: Linux/gcc (kernel threads), BSD/gcc (userland threads) -# -pthreads: Solaris/gcc -# -mthreads: Mingw32/gcc, Lynx/gcc -# -mt: Sun Workshop C (may only link SunOS threads [-lthread], but it -# doesn't hurt to check since this sometimes defines pthreads too; -# also defines -D_REENTRANT) -# ... -mt is also the pthreads flag for HP/aCC -# pthread: Linux, etcetera -# --thread-safe: KAI C++ -# pthread-config: use pthread-config program (for GNU Pth library) - -case "${host_cpu}-${host_os}" in - *solaris*) - - # On Solaris (at least, for some versions), libc contains stubbed - # (non-functional) versions of the pthreads routines, so link-based - # tests will erroneously succeed. (We need to link with -pthreads/-mt/ - # -lpthread.) (The stubs are missing pthread_cleanup_push, or rather - # a function called by this macro, so we could check for that, but - # who knows whether they'll stub that too in a future libc.) So, - # we'll just look for -pthreads and -lpthread first: - - acx_pthread_flags="-pthreads pthread -mt -pthread $acx_pthread_flags" - ;; -esac - -if test x"$acx_pthread_ok" = xno; then -for flag in $acx_pthread_flags; do - - case $flag in - none) - AC_MSG_CHECKING([whether pthreads work without any flags]) - ;; - - -*) - AC_MSG_CHECKING([whether pthreads work with $flag]) - PTHREAD_CFLAGS="$flag" - ;; - - pthread-config) - AC_CHECK_PROG(acx_pthread_config, pthread-config, yes, no) - if test x"$acx_pthread_config" = xno; then continue; fi - PTHREAD_CFLAGS="`pthread-config --cflags`" - PTHREAD_LIBS="`pthread-config --ldflags` `pthread-config --libs`" - ;; - - *) - AC_MSG_CHECKING([for the pthreads library -l$flag]) - PTHREAD_LIBS="-l$flag" - ;; - esac - - save_LIBS="$LIBS" - save_CFLAGS="$CFLAGS" - LIBS="$PTHREAD_LIBS $LIBS" - CFLAGS="$CFLAGS $PTHREAD_CFLAGS" - - # Check for various functions. We must include pthread.h, - # since some functions may be macros. (On the Sequent, we - # need a special flag -Kthread to make this header compile.) - # We check for pthread_join because it is in -lpthread on IRIX - # while pthread_create is in libc. We check for pthread_attr_init - # due to DEC craziness with -lpthreads. We check for - # pthread_cleanup_push because it is one of the few pthread - # functions on Solaris that doesn't have a non-functional libc stub. - # We try pthread_create on general principles. - AC_TRY_LINK([#include ], - [pthread_t th; pthread_join(th, 0); - pthread_attr_init(0); pthread_cleanup_push(0, 0); - pthread_create(0,0,0,0); pthread_cleanup_pop(0); ], - [acx_pthread_ok=yes]) - - LIBS="$save_LIBS" - CFLAGS="$save_CFLAGS" - - AC_MSG_RESULT($acx_pthread_ok) - if test "x$acx_pthread_ok" = xyes; then - break; - fi - - PTHREAD_LIBS="" - PTHREAD_CFLAGS="" -done -fi - -# Various other checks: -if test "x$acx_pthread_ok" = xyes; then - save_LIBS="$LIBS" - LIBS="$PTHREAD_LIBS $LIBS" - save_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS $PTHREAD_CFLAGS" - - # Detect AIX lossage: JOINABLE attribute is called UNDETACHED. - AC_MSG_CHECKING([for joinable pthread attribute]) - attr_name=unknown - for attr in PTHREAD_CREATE_JOINABLE PTHREAD_CREATE_UNDETACHED; do - AC_TRY_LINK([#include ], [int attr=$attr; return attr;], - [attr_name=$attr; break]) - done - AC_MSG_RESULT($attr_name) - if test "$attr_name" != PTHREAD_CREATE_JOINABLE; then - AC_DEFINE_UNQUOTED(PTHREAD_CREATE_JOINABLE, $attr_name, - [Define to necessary symbol if this constant - uses a non-standard name on your system.]) - fi - - AC_MSG_CHECKING([if more special flags are required for pthreads]) - flag=no - case "${host_cpu}-${host_os}" in - *-aix* | *-freebsd* | *-darwin*) flag="-D_THREAD_SAFE";; - *solaris* | *-osf* | *-hpux*) flag="-D_REENTRANT";; - esac - AC_MSG_RESULT(${flag}) - if test "x$flag" != xno; then - PTHREAD_CFLAGS="$flag $PTHREAD_CFLAGS" - fi - - LIBS="$save_LIBS" - CFLAGS="$save_CFLAGS" - - # More AIX lossage: must compile with xlc_r or cc_r - if test x"$GCC" != xyes; then - AC_CHECK_PROGS(PTHREAD_CC, xlc_r cc_r, ${CC}) - else - PTHREAD_CC=$CC - fi -else - PTHREAD_CC="$CC" -fi - -AC_SUBST(PTHREAD_LIBS) -AC_SUBST(PTHREAD_CFLAGS) -AC_SUBST(PTHREAD_CC) - -# Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND: -if test x"$acx_pthread_ok" = xyes; then - ifelse([$1],,AC_DEFINE(HAVE_PTHREAD,1,[Define if you have POSIX threads libraries and header files.]),[$1]) - : -else - acx_pthread_ok=no - $2 -fi -AC_LANG_RESTORE -]) -m4trace:m4/intltool.m4:27: -1- AC_DEFUN([IT_PROG_INTLTOOL], [ -AC_PREREQ([2.50])dnl -AC_REQUIRE([AM_NLS])dnl - -case "$am__api_version" in - 1.[01234]) - AC_MSG_ERROR([Automake 1.5 or newer is required to use intltool]) - ;; - *) - ;; -esac - -if test -n "$1"; then - AC_MSG_CHECKING([for intltool >= $1]) - - INTLTOOL_REQUIRED_VERSION_AS_INT=`echo $1 | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'` - INTLTOOL_APPLIED_VERSION=`intltool-update --version | head -1 | cut -d" " -f3` - [INTLTOOL_APPLIED_VERSION_AS_INT=`echo $INTLTOOL_APPLIED_VERSION | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'` - ] - AC_MSG_RESULT([$INTLTOOL_APPLIED_VERSION found]) - test "$INTLTOOL_APPLIED_VERSION_AS_INT" -ge "$INTLTOOL_REQUIRED_VERSION_AS_INT" || - AC_MSG_ERROR([Your intltool is too old. You need intltool $1 or later.]) -fi - -AC_PATH_PROG(INTLTOOL_UPDATE, [intltool-update]) -AC_PATH_PROG(INTLTOOL_MERGE, [intltool-merge]) -AC_PATH_PROG(INTLTOOL_EXTRACT, [intltool-extract]) -if test -z "$INTLTOOL_UPDATE" -o -z "$INTLTOOL_MERGE" -o -z "$INTLTOOL_EXTRACT"; then - AC_MSG_ERROR([The intltool scripts were not found. Please install intltool.]) -fi - - INTLTOOL_DESKTOP_RULE='%.desktop: %.desktop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' -INTLTOOL_DIRECTORY_RULE='%.directory: %.directory.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' - INTLTOOL_KEYS_RULE='%.keys: %.keys.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -k -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' - INTLTOOL_PROP_RULE='%.prop: %.prop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' - INTLTOOL_OAF_RULE='%.oaf: %.oaf.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -o -p $(top_srcdir)/po $< [$]@' - INTLTOOL_PONG_RULE='%.pong: %.pong.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' - INTLTOOL_SERVER_RULE='%.server: %.server.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -o -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' - INTLTOOL_SHEET_RULE='%.sheet: %.sheet.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' -INTLTOOL_SOUNDLIST_RULE='%.soundlist: %.soundlist.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' - INTLTOOL_UI_RULE='%.ui: %.ui.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' - INTLTOOL_XML_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' - INTLTOOL_XML_NOMERGE_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u /tmp $< [$]@' - INTLTOOL_XAM_RULE='%.xam: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' - INTLTOOL_KBD_RULE='%.kbd: %.kbd.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -m -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' - INTLTOOL_CAVES_RULE='%.caves: %.caves.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' - INTLTOOL_SCHEMAS_RULE='%.schemas: %.schemas.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -s -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' - INTLTOOL_THEME_RULE='%.theme: %.theme.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' - INTLTOOL_SERVICE_RULE='%.service: %.service.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' - INTLTOOL_POLICY_RULE='%.policy: %.policy.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' - -_IT_SUBST(INTLTOOL_DESKTOP_RULE) -_IT_SUBST(INTLTOOL_DIRECTORY_RULE) -_IT_SUBST(INTLTOOL_KEYS_RULE) -_IT_SUBST(INTLTOOL_PROP_RULE) -_IT_SUBST(INTLTOOL_OAF_RULE) -_IT_SUBST(INTLTOOL_PONG_RULE) -_IT_SUBST(INTLTOOL_SERVER_RULE) -_IT_SUBST(INTLTOOL_SHEET_RULE) -_IT_SUBST(INTLTOOL_SOUNDLIST_RULE) -_IT_SUBST(INTLTOOL_UI_RULE) -_IT_SUBST(INTLTOOL_XAM_RULE) -_IT_SUBST(INTLTOOL_KBD_RULE) -_IT_SUBST(INTLTOOL_XML_RULE) -_IT_SUBST(INTLTOOL_XML_NOMERGE_RULE) -_IT_SUBST(INTLTOOL_CAVES_RULE) -_IT_SUBST(INTLTOOL_SCHEMAS_RULE) -_IT_SUBST(INTLTOOL_THEME_RULE) -_IT_SUBST(INTLTOOL_SERVICE_RULE) -_IT_SUBST(INTLTOOL_POLICY_RULE) - -# Check the gettext tools to make sure they are GNU -AC_PATH_PROG(XGETTEXT, xgettext) -AC_PATH_PROG(MSGMERGE, msgmerge) -AC_PATH_PROG(MSGFMT, msgfmt) -AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT) -if test -z "$XGETTEXT" -o -z "$MSGMERGE" -o -z "$MSGFMT"; then - AC_MSG_ERROR([GNU gettext tools not found; required for intltool]) -fi -xgversion="`$XGETTEXT --version|grep '(GNU ' 2> /dev/null`" -mmversion="`$MSGMERGE --version|grep '(GNU ' 2> /dev/null`" -mfversion="`$MSGFMT --version|grep '(GNU ' 2> /dev/null`" -if test -z "$xgversion" -o -z "$mmversion" -o -z "$mfversion"; then - AC_MSG_ERROR([GNU gettext tools not found; required for intltool]) -fi - -AC_PATH_PROG(INTLTOOL_PERL, perl) -if test -z "$INTLTOOL_PERL"; then - AC_MSG_ERROR([perl not found]) -fi -AC_MSG_CHECKING([for perl >= 5.8.1]) -$INTLTOOL_PERL -e "use 5.8.1;" > /dev/null 2>&1 -if test $? -ne 0; then - AC_MSG_ERROR([perl 5.8.1 is required for intltool]) -else - IT_PERL_VERSION="`$INTLTOOL_PERL -e \"printf '%vd', $^V\"`" - AC_MSG_RESULT([$IT_PERL_VERSION]) -fi -if test "x$2" != "xno-xml"; then - AC_MSG_CHECKING([for XML::Parser]) - if `$INTLTOOL_PERL -e "require XML::Parser" 2>/dev/null`; then - AC_MSG_RESULT([ok]) - else - AC_MSG_ERROR([XML::Parser perl module is required for intltool]) - fi -fi - -# Substitute ALL_LINGUAS so we can use it in po/Makefile -AC_SUBST(ALL_LINGUAS) - -# Set DATADIRNAME correctly if it is not set yet -# (copied from glib-gettext.m4) -if test -z "$DATADIRNAME"; then - AC_LINK_IFELSE( - [AC_LANG_PROGRAM([[]], - [[extern int _nl_msg_cat_cntr; - return _nl_msg_cat_cntr]])], - [DATADIRNAME=share], - [case $host in - *-*-solaris*) - dnl On Solaris, if bind_textdomain_codeset is in libc, - dnl GNU format message catalog is always supported, - dnl since both are added to the libc all together. - dnl Hence, we'd like to go with DATADIRNAME=share - dnl in this case. - AC_CHECK_FUNC(bind_textdomain_codeset, - [DATADIRNAME=share], [DATADIRNAME=lib]) - ;; - *) - [DATADIRNAME=lib] - ;; - esac]) -fi -AC_SUBST(DATADIRNAME) - -IT_PO_SUBDIR([po]) - -]) -m4trace:m4/intltool.m4:172: -1- AC_DEFUN([IT_PO_SUBDIR], [AC_PREREQ([2.53])dnl We use ac_top_srcdir inside AC_CONFIG_COMMANDS. -dnl -dnl The following CONFIG_COMMANDS should be executed at the very end -dnl of config.status. -AC_CONFIG_COMMANDS_PRE([ - AC_CONFIG_COMMANDS([$1/stamp-it], [ - if [ ! grep "^# INTLTOOL_MAKEFILE$" "$1/Makefile.in" > /dev/null ]; then - AC_MSG_ERROR([$1/Makefile.in.in was not created by intltoolize.]) - fi - rm -f "$1/stamp-it" "$1/stamp-it.tmp" "$1/POTFILES" "$1/Makefile.tmp" - >"$1/stamp-it.tmp" - [sed '/^#/d - s/^[[].*] *// - /^[ ]*$/d - '"s|^| $ac_top_srcdir/|" \ - "$srcdir/$1/POTFILES.in" | sed '$!s/$/ \\/' >"$1/POTFILES" - ] - [sed '/^POTFILES =/,/[^\\]$/ { - /^POTFILES =/!d - r $1/POTFILES - } - ' "$1/Makefile.in" >"$1/Makefile"] - rm -f "$1/Makefile.tmp" - mv "$1/stamp-it.tmp" "$1/stamp-it" - ]) -])dnl -]) -m4trace:m4/intltool.m4:205: -1- AC_DEFUN([_IT_SUBST], [ -AC_SUBST([$1]) -m4_ifdef([_AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE([$1])]) - -]) -m4trace:m4/intltool.m4:213: -1- AU_DEFUN([AC_PROG_INTLTOOL], [m4_if($#, 0, [IT_PROG_INTLTOOL], [IT_PROG_INTLTOOL($@)])]) -m4trace:m4/intltool.m4:213: -1- AC_DEFUN([AC_PROG_INTLTOOL], [AC_DIAGNOSE([obsolete], [The macro `AC_PROG_INTLTOOL' is obsolete. -You should run autoupdate.])dnl -m4_if($#, 0, [IT_PROG_INTLTOOL], [IT_PROG_INTLTOOL($@)])]) -m4trace:m4/nls.m4:22: -1- AC_DEFUN([AM_NLS], [ - AC_MSG_CHECKING([whether NLS is requested]) - dnl Default is enabled NLS - AC_ARG_ENABLE(nls, - [ --disable-nls do not use Native Language Support], - USE_NLS=$enableval, USE_NLS=yes) - AC_MSG_RESULT($USE_NLS) - AC_SUBST(USE_NLS) -]) -m4trace:configure.ac:16: -1- m4_pattern_forbid([^_?A[CHUM]_]) -m4trace:configure.ac:16: -1- m4_pattern_forbid([_AC_]) -m4trace:configure.ac:16: -1- m4_pattern_forbid([^LIBOBJS$], [do not use LIBOBJS directly, use AC_LIBOBJ (see section `AC_LIBOBJ vs LIBOBJS']) -m4trace:configure.ac:16: -1- m4_pattern_allow([^AS_FLAGS$]) -m4trace:configure.ac:16: -1- m4_pattern_forbid([^_?m4_]) -m4trace:configure.ac:16: -1- m4_pattern_forbid([^dnl$]) -m4trace:configure.ac:16: -1- m4_pattern_forbid([^_?AS_]) -m4trace:configure.ac:16: -1- m4_pattern_allow([^SHELL$]) -m4trace:configure.ac:16: -1- m4_pattern_allow([^PATH_SEPARATOR$]) -m4trace:configure.ac:16: -1- m4_pattern_allow([^PACKAGE_NAME$]) -m4trace:configure.ac:16: -1- m4_pattern_allow([^PACKAGE_TARNAME$]) -m4trace:configure.ac:16: -1- m4_pattern_allow([^PACKAGE_VERSION$]) -m4trace:configure.ac:16: -1- m4_pattern_allow([^PACKAGE_STRING$]) -m4trace:configure.ac:16: -1- m4_pattern_allow([^PACKAGE_BUGREPORT$]) -m4trace:configure.ac:16: -1- m4_pattern_allow([^PACKAGE_URL$]) -m4trace:configure.ac:16: -1- m4_pattern_allow([^exec_prefix$]) -m4trace:configure.ac:16: -1- m4_pattern_allow([^prefix$]) -m4trace:configure.ac:16: -1- m4_pattern_allow([^program_transform_name$]) -m4trace:configure.ac:16: -1- m4_pattern_allow([^bindir$]) -m4trace:configure.ac:16: -1- m4_pattern_allow([^sbindir$]) -m4trace:configure.ac:16: -1- m4_pattern_allow([^libexecdir$]) -m4trace:configure.ac:16: -1- m4_pattern_allow([^datarootdir$]) -m4trace:configure.ac:16: -1- m4_pattern_allow([^datadir$]) -m4trace:configure.ac:16: -1- m4_pattern_allow([^sysconfdir$]) -m4trace:configure.ac:16: -1- m4_pattern_allow([^sharedstatedir$]) -m4trace:configure.ac:16: -1- m4_pattern_allow([^localstatedir$]) -m4trace:configure.ac:16: -1- m4_pattern_allow([^includedir$]) -m4trace:configure.ac:16: -1- m4_pattern_allow([^oldincludedir$]) -m4trace:configure.ac:16: -1- m4_pattern_allow([^docdir$]) -m4trace:configure.ac:16: -1- m4_pattern_allow([^infodir$]) -m4trace:configure.ac:16: -1- m4_pattern_allow([^htmldir$]) -m4trace:configure.ac:16: -1- m4_pattern_allow([^dvidir$]) -m4trace:configure.ac:16: -1- m4_pattern_allow([^pdfdir$]) -m4trace:configure.ac:16: -1- m4_pattern_allow([^psdir$]) -m4trace:configure.ac:16: -1- m4_pattern_allow([^libdir$]) -m4trace:configure.ac:16: -1- m4_pattern_allow([^localedir$]) -m4trace:configure.ac:16: -1- m4_pattern_allow([^mandir$]) -m4trace:configure.ac:16: -1- m4_pattern_allow([^PACKAGE_NAME$]) -m4trace:configure.ac:16: -1- m4_pattern_allow([^PACKAGE_TARNAME$]) -m4trace:configure.ac:16: -1- m4_pattern_allow([^PACKAGE_VERSION$]) -m4trace:configure.ac:16: -1- m4_pattern_allow([^PACKAGE_STRING$]) -m4trace:configure.ac:16: -1- m4_pattern_allow([^PACKAGE_BUGREPORT$]) -m4trace:configure.ac:16: -1- m4_pattern_allow([^PACKAGE_URL$]) -m4trace:configure.ac:16: -1- m4_pattern_allow([^DEFS$]) -m4trace:configure.ac:16: -1- m4_pattern_allow([^ECHO_C$]) -m4trace:configure.ac:16: -1- m4_pattern_allow([^ECHO_N$]) -m4trace:configure.ac:16: -1- m4_pattern_allow([^ECHO_T$]) -m4trace:configure.ac:16: -1- m4_pattern_allow([^LIBS$]) -m4trace:configure.ac:16: -1- m4_pattern_allow([^build_alias$]) -m4trace:configure.ac:16: -1- m4_pattern_allow([^host_alias$]) -m4trace:configure.ac:16: -1- m4_pattern_allow([^target_alias$]) -m4trace:configure.ac:17: -1- AM_SILENT_RULES([yes]) -m4trace:configure.ac:17: -1- m4_pattern_allow([^AM_V$]) -m4trace:configure.ac:17: -1- AM_SUBST_NOTMAKE([AM_V]) -m4trace:configure.ac:17: -1- _AM_SUBST_NOTMAKE([AM_V]) -m4trace:configure.ac:17: -1- m4_pattern_allow([^AM_DEFAULT_V$]) -m4trace:configure.ac:17: -1- AM_SUBST_NOTMAKE([AM_DEFAULT_V]) -m4trace:configure.ac:17: -1- _AM_SUBST_NOTMAKE([AM_DEFAULT_V]) -m4trace:configure.ac:17: -1- m4_pattern_allow([^AM_DEFAULT_VERBOSITY$]) -m4trace:configure.ac:17: -1- m4_pattern_allow([^AM_BACKSLASH$]) -m4trace:configure.ac:17: -1- _AM_SUBST_NOTMAKE([AM_BACKSLASH]) -m4trace:configure.ac:19: -1- AM_INIT_AUTOMAKE([gnu]) -m4trace:configure.ac:19: -1- m4_pattern_allow([^AM_[A-Z]+FLAGS$]) -m4trace:configure.ac:19: -1- AM_SET_CURRENT_AUTOMAKE_VERSION -m4trace:configure.ac:19: -1- AM_AUTOMAKE_VERSION([1.13.3]) -m4trace:configure.ac:19: -1- _AM_AUTOCONF_VERSION([2.69]) -m4trace:configure.ac:19: -1- m4_pattern_allow([^INSTALL_PROGRAM$]) -m4trace:configure.ac:19: -1- m4_pattern_allow([^INSTALL_SCRIPT$]) -m4trace:configure.ac:19: -1- m4_pattern_allow([^INSTALL_DATA$]) -m4trace:configure.ac:19: -1- m4_pattern_allow([^am__isrc$]) -m4trace:configure.ac:19: -1- _AM_SUBST_NOTMAKE([am__isrc]) -m4trace:configure.ac:19: -1- m4_pattern_allow([^CYGPATH_W$]) -m4trace:configure.ac:19: -1- _AM_SET_OPTIONS([gnu]) -m4trace:configure.ac:19: -1- _AM_SET_OPTION([gnu]) -m4trace:configure.ac:19: -2- _AM_MANGLE_OPTION([gnu]) -m4trace:configure.ac:19: -1- m4_pattern_allow([^PACKAGE$]) -m4trace:configure.ac:19: -1- m4_pattern_allow([^VERSION$]) -m4trace:configure.ac:19: -1- _AM_IF_OPTION([no-define], [], [AC_DEFINE_UNQUOTED([PACKAGE], ["$PACKAGE"], [Name of package]) - AC_DEFINE_UNQUOTED([VERSION], ["$VERSION"], [Version number of package])]) -m4trace:configure.ac:19: -2- _AM_MANGLE_OPTION([no-define]) -m4trace:configure.ac:19: -1- m4_pattern_allow([^PACKAGE$]) -m4trace:configure.ac:19: -1- m4_pattern_allow([^VERSION$]) -m4trace:configure.ac:19: -1- AM_SANITY_CHECK -m4trace:configure.ac:19: -1- AM_MISSING_PROG([ACLOCAL], [aclocal-${am__api_version}]) -m4trace:configure.ac:19: -1- AM_MISSING_HAS_RUN -m4trace:configure.ac:19: -1- AM_AUX_DIR_EXPAND -m4trace:configure.ac:19: -1- m4_pattern_allow([^ACLOCAL$]) -m4trace:configure.ac:19: -1- AM_MISSING_PROG([AUTOCONF], [autoconf]) -m4trace:configure.ac:19: -1- m4_pattern_allow([^AUTOCONF$]) -m4trace:configure.ac:19: -1- AM_MISSING_PROG([AUTOMAKE], [automake-${am__api_version}]) -m4trace:configure.ac:19: -1- m4_pattern_allow([^AUTOMAKE$]) -m4trace:configure.ac:19: -1- AM_MISSING_PROG([AUTOHEADER], [autoheader]) -m4trace:configure.ac:19: -1- m4_pattern_allow([^AUTOHEADER$]) -m4trace:configure.ac:19: -1- AM_MISSING_PROG([MAKEINFO], [makeinfo]) -m4trace:configure.ac:19: -1- m4_pattern_allow([^MAKEINFO$]) -m4trace:configure.ac:19: -1- AM_PROG_INSTALL_SH -m4trace:configure.ac:19: -1- m4_pattern_allow([^install_sh$]) -m4trace:configure.ac:19: -1- AM_PROG_INSTALL_STRIP -m4trace:configure.ac:19: -1- m4_pattern_allow([^STRIP$]) -m4trace:configure.ac:19: -1- m4_pattern_allow([^INSTALL_STRIP_PROGRAM$]) -m4trace:configure.ac:19: -1- m4_pattern_allow([^MKDIR_P$]) -m4trace:configure.ac:19: -1- m4_pattern_allow([^mkdir_p$]) -m4trace:configure.ac:19: -1- m4_pattern_allow([^AWK$]) -m4trace:configure.ac:19: -1- m4_pattern_allow([^SET_MAKE$]) -m4trace:configure.ac:19: -1- AM_SET_LEADING_DOT -m4trace:configure.ac:19: -1- m4_pattern_allow([^am__leading_dot$]) -m4trace:configure.ac:19: -1- _AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], - [_AM_PROG_TAR([v7])])]) -m4trace:configure.ac:19: -2- _AM_MANGLE_OPTION([tar-ustar]) -m4trace:configure.ac:19: -1- _AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], [_AM_PROG_TAR([v7])]) -m4trace:configure.ac:19: -2- _AM_MANGLE_OPTION([tar-pax]) -m4trace:configure.ac:19: -1- _AM_PROG_TAR([v7]) -m4trace:configure.ac:19: -1- m4_pattern_allow([^AMTAR$]) -m4trace:configure.ac:19: -1- m4_pattern_allow([^am__tar$]) -m4trace:configure.ac:19: -1- m4_pattern_allow([^am__untar$]) -m4trace:configure.ac:19: -1- _AM_IF_OPTION([no-dependencies], [], [AC_PROVIDE_IFELSE([AC_PROG_CC], - [_AM_DEPENDENCIES([CC])], - [m4_define([AC_PROG_CC], - m4_defn([AC_PROG_CC])[_AM_DEPENDENCIES([CC])])])dnl -AC_PROVIDE_IFELSE([AC_PROG_CXX], - [_AM_DEPENDENCIES([CXX])], - [m4_define([AC_PROG_CXX], - m4_defn([AC_PROG_CXX])[_AM_DEPENDENCIES([CXX])])])dnl -AC_PROVIDE_IFELSE([AC_PROG_OBJC], - [_AM_DEPENDENCIES([OBJC])], - [m4_define([AC_PROG_OBJC], - m4_defn([AC_PROG_OBJC])[_AM_DEPENDENCIES([OBJC])])])dnl -AC_PROVIDE_IFELSE([AC_PROG_OBJCXX], - [_AM_DEPENDENCIES([OBJCXX])], - [m4_define([AC_PROG_OBJCXX], - m4_defn([AC_PROG_OBJCXX])[_AM_DEPENDENCIES([OBJCXX])])])dnl -]) -m4trace:configure.ac:19: -2- _AM_MANGLE_OPTION([no-dependencies]) -m4trace:configure.ac:20: -1- AC_CONFIG_MACRO_DIR([m4]) -m4trace:configure.ac:22: -1- AM_MAINTAINER_MODE([disable]) -m4trace:configure.ac:22: -1- AM_CONDITIONAL([MAINTAINER_MODE], [test $USE_MAINTAINER_MODE = yes]) -m4trace:configure.ac:22: -1- m4_pattern_allow([^MAINTAINER_MODE_TRUE$]) -m4trace:configure.ac:22: -1- m4_pattern_allow([^MAINTAINER_MODE_FALSE$]) -m4trace:configure.ac:22: -1- _AM_SUBST_NOTMAKE([MAINTAINER_MODE_TRUE]) -m4trace:configure.ac:22: -1- _AM_SUBST_NOTMAKE([MAINTAINER_MODE_FALSE]) -m4trace:configure.ac:22: -1- m4_pattern_allow([^MAINT$]) -m4trace:configure.ac:32: -1- m4_pattern_allow([^CC$]) -m4trace:configure.ac:32: -1- m4_pattern_allow([^CFLAGS$]) -m4trace:configure.ac:32: -1- m4_pattern_allow([^LDFLAGS$]) -m4trace:configure.ac:32: -1- m4_pattern_allow([^LIBS$]) -m4trace:configure.ac:32: -1- m4_pattern_allow([^CPPFLAGS$]) -m4trace:configure.ac:32: -1- m4_pattern_allow([^CC$]) -m4trace:configure.ac:32: -1- m4_pattern_allow([^CC$]) -m4trace:configure.ac:32: -1- m4_pattern_allow([^CC$]) -m4trace:configure.ac:32: -1- m4_pattern_allow([^CC$]) -m4trace:configure.ac:32: -1- m4_pattern_allow([^ac_ct_CC$]) -m4trace:configure.ac:32: -1- m4_pattern_allow([^EXEEXT$]) -m4trace:configure.ac:32: -1- m4_pattern_allow([^OBJEXT$]) -m4trace:configure.ac:32: -1- _AM_DEPENDENCIES([CC]) -m4trace:configure.ac:32: -1- AM_SET_DEPDIR -m4trace:configure.ac:32: -1- m4_pattern_allow([^DEPDIR$]) -m4trace:configure.ac:32: -1- AM_OUTPUT_DEPENDENCY_COMMANDS -m4trace:configure.ac:32: -1- AM_MAKE_INCLUDE -m4trace:configure.ac:32: -1- m4_pattern_allow([^am__include$]) -m4trace:configure.ac:32: -1- m4_pattern_allow([^am__quote$]) -m4trace:configure.ac:32: -1- AM_DEP_TRACK -m4trace:configure.ac:32: -1- AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) -m4trace:configure.ac:32: -1- m4_pattern_allow([^AMDEP_TRUE$]) -m4trace:configure.ac:32: -1- m4_pattern_allow([^AMDEP_FALSE$]) -m4trace:configure.ac:32: -1- _AM_SUBST_NOTMAKE([AMDEP_TRUE]) -m4trace:configure.ac:32: -1- _AM_SUBST_NOTMAKE([AMDEP_FALSE]) -m4trace:configure.ac:32: -1- m4_pattern_allow([^AMDEPBACKSLASH$]) -m4trace:configure.ac:32: -1- _AM_SUBST_NOTMAKE([AMDEPBACKSLASH]) -m4trace:configure.ac:32: -1- m4_pattern_allow([^am__nodep$]) -m4trace:configure.ac:32: -1- _AM_SUBST_NOTMAKE([am__nodep]) -m4trace:configure.ac:32: -1- m4_pattern_allow([^CCDEPMODE$]) -m4trace:configure.ac:32: -1- AM_CONDITIONAL([am__fastdepCC], [ - test "x$enable_dependency_tracking" != xno \ - && test "$am_cv_CC_dependencies_compiler_type" = gcc3]) -m4trace:configure.ac:32: -1- m4_pattern_allow([^am__fastdepCC_TRUE$]) -m4trace:configure.ac:32: -1- m4_pattern_allow([^am__fastdepCC_FALSE$]) -m4trace:configure.ac:32: -1- _AM_SUBST_NOTMAKE([am__fastdepCC_TRUE]) -m4trace:configure.ac:32: -1- _AM_SUBST_NOTMAKE([am__fastdepCC_FALSE]) -m4trace:configure.ac:33: -1- AM_PROG_CC_C_O -m4trace:configure.ac:33: -1- m4_pattern_allow([^NO_MINUS_C_MINUS_O$]) -m4trace:configure.ac:34: -1- m4_pattern_allow([^CPP$]) -m4trace:configure.ac:34: -1- m4_pattern_allow([^CPPFLAGS$]) -m4trace:configure.ac:34: -1- m4_pattern_allow([^CPP$]) -m4trace:configure.ac:34: -1- m4_pattern_allow([^GREP$]) -m4trace:configure.ac:34: -1- m4_pattern_allow([^EGREP$]) -m4trace:configure.ac:34: -1- m4_pattern_allow([^STDC_HEADERS$]) -m4trace:configure.ac:40: -1- ACX_PTHREAD([]) -m4trace:configure.ac:40: -1- m4_pattern_allow([^build$]) -m4trace:configure.ac:40: -1- m4_pattern_allow([^build_cpu$]) -m4trace:configure.ac:40: -1- m4_pattern_allow([^build_vendor$]) -m4trace:configure.ac:40: -1- m4_pattern_allow([^build_os$]) -m4trace:configure.ac:40: -1- m4_pattern_allow([^host$]) -m4trace:configure.ac:40: -1- m4_pattern_allow([^host_cpu$]) -m4trace:configure.ac:40: -1- m4_pattern_allow([^host_vendor$]) -m4trace:configure.ac:40: -1- m4_pattern_allow([^host_os$]) -m4trace:configure.ac:40: -1- _m4_warn([obsolete], [The macro `AC_LANG_SAVE' is obsolete. -You should run autoupdate.], [../../lib/autoconf/lang.m4:125: AC_LANG_SAVE is expanded from... -m4/acx_pthread.m4:49: ACX_PTHREAD is expanded from... -configure.ac:40: the top level]) -m4trace:configure.ac:40: -1- _m4_warn([obsolete], [The macro `AC_LANG_C' is obsolete. -You should run autoupdate.], [../../lib/autoconf/c.m4:72: AC_LANG_C is expanded from... -m4/acx_pthread.m4:49: ACX_PTHREAD is expanded from... -configure.ac:40: the top level]) -m4trace:configure.ac:40: -1- m4_pattern_allow([^acx_pthread_config$]) -m4trace:configure.ac:40: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2687: AC_TRY_LINK is expanded from... -m4/acx_pthread.m4:49: ACX_PTHREAD is expanded from... -configure.ac:40: the top level]) -m4trace:configure.ac:40: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2687: AC_TRY_LINK is expanded from... -m4/acx_pthread.m4:49: ACX_PTHREAD is expanded from... -configure.ac:40: the top level]) -m4trace:configure.ac:40: -1- m4_pattern_allow([^PTHREAD_CREATE_JOINABLE$]) -m4trace:configure.ac:40: -1- m4_pattern_allow([^PTHREAD_CC$]) -m4trace:configure.ac:40: -1- m4_pattern_allow([^PTHREAD_LIBS$]) -m4trace:configure.ac:40: -1- m4_pattern_allow([^PTHREAD_CFLAGS$]) -m4trace:configure.ac:40: -1- m4_pattern_allow([^PTHREAD_CC$]) -m4trace:configure.ac:40: -2- m4_pattern_allow([^HAVE_PTHREAD$]) -m4trace:configure.ac:40: -1- _m4_warn([obsolete], [The macro `AC_LANG_RESTORE' is obsolete. -You should run autoupdate.], [../../lib/autoconf/lang.m4:134: AC_LANG_RESTORE is expanded from... -m4/acx_pthread.m4:49: ACX_PTHREAD is expanded from... -configure.ac:40: the top level]) -m4trace:configure.ac:50: -1- AC_DEFUN([CF_STRIP_G_OPT], [$1=`echo ${$1} | sed -e 's%-g %%' -e 's%-g$%%'`]) -m4trace:configure.ac:57: -1- AC_DEFUN([CF_STRIP_O_OPT], [$1=`echo ${$1} | sed -e 's/-O[[1-9]]\? //' -e 's/-O[[1-9]]\?$//'`]) -m4trace:configure.ac:72: -1- CF_STRIP_O_OPT([CFLAGS]) -m4trace:configure.ac:80: -1- m4_pattern_allow([^CFLAGS$]) -m4trace:configure.ac:86: -1- m4_pattern_allow([^GETTEXT_PACKAGE$]) -m4trace:configure.ac:87: -1- m4_pattern_allow([^GETTEXT_PACKAGE$]) -m4trace:configure.ac:89: -1- IT_PROG_INTLTOOL([0.40]) -m4trace:configure.ac:89: -1- AM_NLS -m4trace:configure.ac:89: -1- m4_pattern_allow([^USE_NLS$]) -m4trace:configure.ac:89: -1- m4_pattern_allow([^INTLTOOL_UPDATE$]) -m4trace:configure.ac:89: -1- m4_pattern_allow([^INTLTOOL_MERGE$]) -m4trace:configure.ac:89: -1- m4_pattern_allow([^INTLTOOL_EXTRACT$]) -m4trace:configure.ac:89: -1- _IT_SUBST([INTLTOOL_DESKTOP_RULE]) -m4trace:configure.ac:89: -1- m4_pattern_allow([^INTLTOOL_DESKTOP_RULE$]) -m4trace:configure.ac:89: -1- _AM_SUBST_NOTMAKE([INTLTOOL_DESKTOP_RULE]) -m4trace:configure.ac:89: -1- _IT_SUBST([INTLTOOL_DIRECTORY_RULE]) -m4trace:configure.ac:89: -1- m4_pattern_allow([^INTLTOOL_DIRECTORY_RULE$]) -m4trace:configure.ac:89: -1- _AM_SUBST_NOTMAKE([INTLTOOL_DIRECTORY_RULE]) -m4trace:configure.ac:89: -1- _IT_SUBST([INTLTOOL_KEYS_RULE]) -m4trace:configure.ac:89: -1- m4_pattern_allow([^INTLTOOL_KEYS_RULE$]) -m4trace:configure.ac:89: -1- _AM_SUBST_NOTMAKE([INTLTOOL_KEYS_RULE]) -m4trace:configure.ac:89: -1- _IT_SUBST([INTLTOOL_PROP_RULE]) -m4trace:configure.ac:89: -1- m4_pattern_allow([^INTLTOOL_PROP_RULE$]) -m4trace:configure.ac:89: -1- _AM_SUBST_NOTMAKE([INTLTOOL_PROP_RULE]) -m4trace:configure.ac:89: -1- _IT_SUBST([INTLTOOL_OAF_RULE]) -m4trace:configure.ac:89: -1- m4_pattern_allow([^INTLTOOL_OAF_RULE$]) -m4trace:configure.ac:89: -1- _AM_SUBST_NOTMAKE([INTLTOOL_OAF_RULE]) -m4trace:configure.ac:89: -1- _IT_SUBST([INTLTOOL_PONG_RULE]) -m4trace:configure.ac:89: -1- m4_pattern_allow([^INTLTOOL_PONG_RULE$]) -m4trace:configure.ac:89: -1- _AM_SUBST_NOTMAKE([INTLTOOL_PONG_RULE]) -m4trace:configure.ac:89: -1- _IT_SUBST([INTLTOOL_SERVER_RULE]) -m4trace:configure.ac:89: -1- m4_pattern_allow([^INTLTOOL_SERVER_RULE$]) -m4trace:configure.ac:89: -1- _AM_SUBST_NOTMAKE([INTLTOOL_SERVER_RULE]) -m4trace:configure.ac:89: -1- _IT_SUBST([INTLTOOL_SHEET_RULE]) -m4trace:configure.ac:89: -1- m4_pattern_allow([^INTLTOOL_SHEET_RULE$]) -m4trace:configure.ac:89: -1- _AM_SUBST_NOTMAKE([INTLTOOL_SHEET_RULE]) -m4trace:configure.ac:89: -1- _IT_SUBST([INTLTOOL_SOUNDLIST_RULE]) -m4trace:configure.ac:89: -1- m4_pattern_allow([^INTLTOOL_SOUNDLIST_RULE$]) -m4trace:configure.ac:89: -1- _AM_SUBST_NOTMAKE([INTLTOOL_SOUNDLIST_RULE]) -m4trace:configure.ac:89: -1- _IT_SUBST([INTLTOOL_UI_RULE]) -m4trace:configure.ac:89: -1- m4_pattern_allow([^INTLTOOL_UI_RULE$]) -m4trace:configure.ac:89: -1- _AM_SUBST_NOTMAKE([INTLTOOL_UI_RULE]) -m4trace:configure.ac:89: -1- _IT_SUBST([INTLTOOL_XAM_RULE]) -m4trace:configure.ac:89: -1- m4_pattern_allow([^INTLTOOL_XAM_RULE$]) -m4trace:configure.ac:89: -1- _AM_SUBST_NOTMAKE([INTLTOOL_XAM_RULE]) -m4trace:configure.ac:89: -1- _IT_SUBST([INTLTOOL_KBD_RULE]) -m4trace:configure.ac:89: -1- m4_pattern_allow([^INTLTOOL_KBD_RULE$]) -m4trace:configure.ac:89: -1- _AM_SUBST_NOTMAKE([INTLTOOL_KBD_RULE]) -m4trace:configure.ac:89: -1- _IT_SUBST([INTLTOOL_XML_RULE]) -m4trace:configure.ac:89: -1- m4_pattern_allow([^INTLTOOL_XML_RULE$]) -m4trace:configure.ac:89: -1- _AM_SUBST_NOTMAKE([INTLTOOL_XML_RULE]) -m4trace:configure.ac:89: -1- _IT_SUBST([INTLTOOL_XML_NOMERGE_RULE]) -m4trace:configure.ac:89: -1- m4_pattern_allow([^INTLTOOL_XML_NOMERGE_RULE$]) -m4trace:configure.ac:89: -1- _AM_SUBST_NOTMAKE([INTLTOOL_XML_NOMERGE_RULE]) -m4trace:configure.ac:89: -1- _IT_SUBST([INTLTOOL_CAVES_RULE]) -m4trace:configure.ac:89: -1- m4_pattern_allow([^INTLTOOL_CAVES_RULE$]) -m4trace:configure.ac:89: -1- _AM_SUBST_NOTMAKE([INTLTOOL_CAVES_RULE]) -m4trace:configure.ac:89: -1- _IT_SUBST([INTLTOOL_SCHEMAS_RULE]) -m4trace:configure.ac:89: -1- m4_pattern_allow([^INTLTOOL_SCHEMAS_RULE$]) -m4trace:configure.ac:89: -1- _AM_SUBST_NOTMAKE([INTLTOOL_SCHEMAS_RULE]) -m4trace:configure.ac:89: -1- _IT_SUBST([INTLTOOL_THEME_RULE]) -m4trace:configure.ac:89: -1- m4_pattern_allow([^INTLTOOL_THEME_RULE$]) -m4trace:configure.ac:89: -1- _AM_SUBST_NOTMAKE([INTLTOOL_THEME_RULE]) -m4trace:configure.ac:89: -1- _IT_SUBST([INTLTOOL_SERVICE_RULE]) -m4trace:configure.ac:89: -1- m4_pattern_allow([^INTLTOOL_SERVICE_RULE$]) -m4trace:configure.ac:89: -1- _AM_SUBST_NOTMAKE([INTLTOOL_SERVICE_RULE]) -m4trace:configure.ac:89: -1- _IT_SUBST([INTLTOOL_POLICY_RULE]) -m4trace:configure.ac:89: -1- m4_pattern_allow([^INTLTOOL_POLICY_RULE$]) -m4trace:configure.ac:89: -1- _AM_SUBST_NOTMAKE([INTLTOOL_POLICY_RULE]) -m4trace:configure.ac:89: -1- m4_pattern_allow([^XGETTEXT$]) -m4trace:configure.ac:89: -1- m4_pattern_allow([^MSGMERGE$]) -m4trace:configure.ac:89: -1- m4_pattern_allow([^MSGFMT$]) -m4trace:configure.ac:89: -1- m4_pattern_allow([^GMSGFMT$]) -m4trace:configure.ac:89: -1- m4_pattern_allow([^INTLTOOL_PERL$]) -m4trace:configure.ac:89: -1- m4_pattern_allow([^ALL_LINGUAS$]) -m4trace:configure.ac:89: -1- m4_pattern_allow([^DATADIRNAME$]) -m4trace:configure.ac:89: -1- IT_PO_SUBDIR([po]) -m4trace:configure.ac:95: -1- AM_GLIB_GNU_GETTEXT([external]) -m4trace:configure.ac:95: -1- m4_pattern_allow([^HAVE_LOCALE_H$]) -m4trace:configure.ac:95: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2687: AC_TRY_LINK is expanded from... -../../lib/m4sugar/m4sh.m4:639: AS_IF is expanded from... -../../lib/autoconf/general.m4:2031: AC_CACHE_VAL is expanded from... -../../lib/autoconf/general.m4:2052: AC_CACHE_CHECK is expanded from... -/usr/share/aclocal/glib-gettext.m4:48: GLIB_LC_MESSAGES is expanded from... -/usr/share/aclocal/glib-gettext.m4:316: GLIB_GNU_GETTEXT is expanded from... -/usr/share/aclocal/glib-gettext.m4:415: AM_GLIB_GNU_GETTEXT is expanded from... -configure.ac:95: the top level]) -m4trace:configure.ac:95: -1- m4_pattern_allow([^HAVE_LC_MESSAGES$]) -m4trace:configure.ac:95: -1- m4_pattern_allow([^USE_NLS$]) -m4trace:configure.ac:95: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2687: AC_TRY_LINK is expanded from... -../../lib/m4sugar/m4sh.m4:639: AS_IF is expanded from... -../../lib/autoconf/general.m4:2031: AC_CACHE_VAL is expanded from... -../../lib/autoconf/general.m4:2052: AC_CACHE_CHECK is expanded from... -../../lib/m4sugar/m4sh.m4:639: AS_IF is expanded from... -../../lib/autoconf/headers.m4:129: _AC_CHECK_HEADER_MONGREL is expanded from... -../../lib/autoconf/headers.m4:67: AC_CHECK_HEADER is expanded from... -/usr/share/aclocal/glib-gettext.m4:102: GLIB_WITH_NLS is expanded from... -/usr/share/aclocal/glib-gettext.m4:316: GLIB_GNU_GETTEXT is expanded from... -/usr/share/aclocal/glib-gettext.m4:415: AM_GLIB_GNU_GETTEXT is expanded from... -configure.ac:95: the top level]) -m4trace:configure.ac:95: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2687: AC_TRY_LINK is expanded from... -../../lib/m4sugar/m4sh.m4:639: AS_IF is expanded from... -../../lib/autoconf/general.m4:2031: AC_CACHE_VAL is expanded from... -../../lib/autoconf/general.m4:2052: AC_CACHE_CHECK is expanded from... -../../lib/m4sugar/m4sh.m4:639: AS_IF is expanded from... -../../lib/autoconf/headers.m4:129: _AC_CHECK_HEADER_MONGREL is expanded from... -../../lib/autoconf/headers.m4:67: AC_CHECK_HEADER is expanded from... -/usr/share/aclocal/glib-gettext.m4:102: GLIB_WITH_NLS is expanded from... -/usr/share/aclocal/glib-gettext.m4:316: GLIB_GNU_GETTEXT is expanded from... -/usr/share/aclocal/glib-gettext.m4:415: AM_GLIB_GNU_GETTEXT is expanded from... -configure.ac:95: the top level]) -m4trace:configure.ac:95: -1- m4_pattern_allow([^HAVE_BIND_TEXTDOMAIN_CODESET$]) -m4trace:configure.ac:95: -1- m4_pattern_allow([^HAVE_BIND_TEXTDOMAIN_CODESET$]) -m4trace:configure.ac:95: -1- m4_pattern_allow([^HAVE_GETTEXT$]) -m4trace:configure.ac:95: -1- m4_pattern_allow([^MSGFMT$]) -m4trace:configure.ac:95: -1- m4_pattern_allow([^HAVE_DCGETTEXT$]) -m4trace:configure.ac:95: -1- GLIB_RUN_PROG([$MSGFMT -c -o /dev/null], [ -msgid "" -msgstr "" -"Content-Type: text/plain; charset=UTF-8\n" -"Project-Id-Version: test 1.0\n" -"PO-Revision-Date: 2007-02-15 12:01+0100\n" -"Last-Translator: test \n" -"Language-Team: C \n" -"MIME-Version: 1.0\n" -"Content-Transfer-Encoding: 8bit\n" -], [MSGFMT_OPTS=-c; AC_MSG_RESULT([yes])], [AC_MSG_RESULT([no])]) -m4trace:configure.ac:95: -1- m4_pattern_allow([^MSGFMT_OPTS$]) -m4trace:configure.ac:95: -1- m4_pattern_allow([^GMSGFMT$]) -m4trace:configure.ac:95: -1- m4_pattern_allow([^XGETTEXT$]) -m4trace:configure.ac:95: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2687: AC_TRY_LINK is expanded from... -../../lib/m4sugar/m4sh.m4:639: AS_IF is expanded from... -../../lib/autoconf/headers.m4:129: _AC_CHECK_HEADER_MONGREL is expanded from... -../../lib/autoconf/headers.m4:67: AC_CHECK_HEADER is expanded from... -/usr/share/aclocal/glib-gettext.m4:102: GLIB_WITH_NLS is expanded from... -/usr/share/aclocal/glib-gettext.m4:316: GLIB_GNU_GETTEXT is expanded from... -/usr/share/aclocal/glib-gettext.m4:415: AM_GLIB_GNU_GETTEXT is expanded from... -configure.ac:95: the top level]) -m4trace:configure.ac:95: -1- m4_pattern_allow([^ENABLE_NLS$]) -m4trace:configure.ac:95: -1- _m4_warn([obsolete], [The macro `AC_OUTPUT_COMMANDS' is obsolete. -You should run autoupdate.], [../../lib/autoconf/status.m4:1026: AC_OUTPUT_COMMANDS is expanded from... -/usr/share/aclocal/glib-gettext.m4:102: GLIB_WITH_NLS is expanded from... -/usr/share/aclocal/glib-gettext.m4:316: GLIB_GNU_GETTEXT is expanded from... -/usr/share/aclocal/glib-gettext.m4:415: AM_GLIB_GNU_GETTEXT is expanded from... -configure.ac:95: the top level]) -m4trace:configure.ac:95: -1- m4_pattern_allow([^CATALOGS$]) -m4trace:configure.ac:95: -1- m4_pattern_allow([^CATOBJEXT$]) -m4trace:configure.ac:95: -1- m4_pattern_allow([^DATADIRNAME$]) -m4trace:configure.ac:95: -1- m4_pattern_allow([^GMOFILES$]) -m4trace:configure.ac:95: -1- m4_pattern_allow([^INSTOBJEXT$]) -m4trace:configure.ac:95: -1- m4_pattern_allow([^INTLLIBS$]) -m4trace:configure.ac:95: -1- m4_pattern_allow([^PO_IN_DATADIR_TRUE$]) -m4trace:configure.ac:95: -1- m4_pattern_allow([^PO_IN_DATADIR_FALSE$]) -m4trace:configure.ac:95: -1- m4_pattern_allow([^POFILES$]) -m4trace:configure.ac:95: -1- m4_pattern_allow([^POSUB$]) -m4trace:configure.ac:95: -1- m4_pattern_allow([^MKINSTALLDIRS$]) -m4trace:configure.ac:100: -1- PKG_CHECK_MODULES([DEPS], [gtk+-3.0 >= 3.0.0 glib-2.0 >= 2.10.0 sdl >= 1.2.10 portaudio-2.0 libpng libavcodec libavutil libv4l2 libudev libusb-1.0]) -m4trace:configure.ac:100: -1- PKG_PROG_PKG_CONFIG -m4trace:configure.ac:100: -1- m4_pattern_forbid([^_?PKG_[A-Z_]+$]) -m4trace:configure.ac:100: -1- m4_pattern_allow([^PKG_CONFIG(_(PATH|LIBDIR|SYSROOT_DIR|ALLOW_SYSTEM_(CFLAGS|LIBS)))?$]) -m4trace:configure.ac:100: -1- m4_pattern_allow([^PKG_CONFIG_(DISABLE_UNINSTALLED|TOP_BUILD_DIR|DEBUG_SPEW)$]) -m4trace:configure.ac:100: -1- m4_pattern_allow([^PKG_CONFIG$]) -m4trace:configure.ac:100: -1- m4_pattern_allow([^PKG_CONFIG_PATH$]) -m4trace:configure.ac:100: -1- m4_pattern_allow([^PKG_CONFIG_LIBDIR$]) -m4trace:configure.ac:100: -1- m4_pattern_allow([^PKG_CONFIG$]) -m4trace:configure.ac:100: -1- m4_pattern_allow([^DEPS_CFLAGS$]) -m4trace:configure.ac:100: -1- m4_pattern_allow([^DEPS_LIBS$]) -m4trace:configure.ac:100: -1- PKG_CHECK_EXISTS([gtk+-3.0 >= 3.0.0 glib-2.0 >= 2.10.0 sdl >= 1.2.10 portaudio-2.0 libpng libavcodec libavutil libv4l2 libudev libusb-1.0], [pkg_cv_[]DEPS_CFLAGS=`$PKG_CONFIG --[]cflags "gtk+-3.0 >= 3.0.0 glib-2.0 >= 2.10.0 sdl >= 1.2.10 portaudio-2.0 libpng libavcodec libavutil libv4l2 libudev libusb-1.0" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes ], [pkg_failed=yes]) -m4trace:configure.ac:100: -1- PKG_CHECK_EXISTS([gtk+-3.0 >= 3.0.0 glib-2.0 >= 2.10.0 sdl >= 1.2.10 portaudio-2.0 libpng libavcodec libavutil libv4l2 libudev libusb-1.0], [pkg_cv_[]DEPS_LIBS=`$PKG_CONFIG --[]libs "gtk+-3.0 >= 3.0.0 glib-2.0 >= 2.10.0 sdl >= 1.2.10 portaudio-2.0 libpng libavcodec libavutil libv4l2 libudev libusb-1.0" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes ], [pkg_failed=yes]) -m4trace:configure.ac:100: -1- _PKG_SHORT_ERRORS_SUPPORTED -m4trace:configure.ac:101: -1- m4_pattern_allow([^DEPS_CFLAGS$]) -m4trace:configure.ac:102: -1- m4_pattern_allow([^DEPS_LIBS$]) -m4trace:configure.ac:115: -1- AM_CONDITIONAL([DEBIAN_MENU], [test "$enable_debian_menu" = yes]) -m4trace:configure.ac:115: -1- m4_pattern_allow([^DEBIAN_MENU_TRUE$]) -m4trace:configure.ac:115: -1- m4_pattern_allow([^DEBIAN_MENU_FALSE$]) -m4trace:configure.ac:115: -1- _AM_SUBST_NOTMAKE([DEBIAN_MENU_TRUE]) -m4trace:configure.ac:115: -1- _AM_SUBST_NOTMAKE([DEBIAN_MENU_FALSE]) -m4trace:configure.ac:128: -1- AM_CONDITIONAL([DESKTOP], [test "$enable_desktop" = yes]) -m4trace:configure.ac:128: -1- m4_pattern_allow([^DESKTOP_TRUE$]) -m4trace:configure.ac:128: -1- m4_pattern_allow([^DESKTOP_FALSE$]) -m4trace:configure.ac:128: -1- _AM_SUBST_NOTMAKE([DESKTOP_TRUE]) -m4trace:configure.ac:128: -1- _AM_SUBST_NOTMAKE([DESKTOP_FALSE]) -m4trace:configure.ac:142: -1- PKG_CHECK_MODULES([PULSE], [libpulse >= 0.9.15], [has_pulse=yes], [has_pulse=no]) -m4trace:configure.ac:142: -1- m4_pattern_allow([^PULSE_CFLAGS$]) -m4trace:configure.ac:142: -1- m4_pattern_allow([^PULSE_LIBS$]) -m4trace:configure.ac:142: -1- PKG_CHECK_EXISTS([libpulse >= 0.9.15], [pkg_cv_[]PULSE_CFLAGS=`$PKG_CONFIG --[]cflags "libpulse >= 0.9.15" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes ], [pkg_failed=yes]) -m4trace:configure.ac:142: -1- PKG_CHECK_EXISTS([libpulse >= 0.9.15], [pkg_cv_[]PULSE_LIBS=`$PKG_CONFIG --[]libs "libpulse >= 0.9.15" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes ], [pkg_failed=yes]) -m4trace:configure.ac:142: -1- _PKG_SHORT_ERRORS_SUPPORTED -m4trace:configure.ac:143: -1- m4_pattern_allow([^PULSE_CFLAGS$]) -m4trace:configure.ac:144: -1- m4_pattern_allow([^PULSE_LIBS$]) -m4trace:configure.ac:146: -1- m4_pattern_allow([^PULSEAUDIO$]) -m4trace:configure.ac:169: -1- m4_pattern_allow([^HAS_AVCODEC_H$]) -m4trace:configure.ac:172: -1- m4_pattern_allow([^HAS_FFMPEG_AVCODEC_H$]) -m4trace:configure.ac:175: -1- m4_pattern_allow([^HAS_LIBAVCODEC_AVCODEC_H$]) -m4trace:configure.ac:182: -1- m4_pattern_allow([^WORDS_BIGENDIAN$]) -m4trace:configure.ac:182: -1- m4_pattern_allow([^AC_APPLE_UNIVERSAL_BUILD$]) -m4trace:configure.ac:194: -1- m4_pattern_allow([^LIB@&t@OBJS$]) -m4trace:configure.ac:194: -1- m4_pattern_allow([^LTLIBOBJS$]) -m4trace:configure.ac:194: -1- AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"]) -m4trace:configure.ac:194: -1- m4_pattern_allow([^am__EXEEXT_TRUE$]) -m4trace:configure.ac:194: -1- m4_pattern_allow([^am__EXEEXT_FALSE$]) -m4trace:configure.ac:194: -1- _AM_SUBST_NOTMAKE([am__EXEEXT_TRUE]) -m4trace:configure.ac:194: -1- _AM_SUBST_NOTMAKE([am__EXEEXT_FALSE]) -m4trace:configure.ac:194: -1- _AC_AM_CONFIG_HEADER_HOOK(["$ac_file"]) -m4trace:configure.ac:194: -1- _AM_OUTPUT_DEPENDENCY_COMMANDS diff -Nru guvcview-1.7.3/ChangeLog guvcview-2.0.1+ubuntu1~ppa1/ChangeLog --- guvcview-1.7.3/ChangeLog 2014-03-24 22:56:28.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/ChangeLog 2014-10-05 10:41:44.000000000 +0000 @@ -1,3 +1,23 @@ +guvcview (2.0.1) + + * Fix audio clean bug (segfault when audio=none) + * Add --disable_libv4l2 option + * Add support for internal yu12 planar format + * Workaround uvcvideo bug (buf.bytesused=0 on kernels >=3.16) + + -- Paulo Assis Tue, 30 Sep 2014 18:05:00 +0100 + +guvcview (2.0.0) + + * new version 2.0.0 (code rewriten from scratch) + * move all core functions to 4 shared libs + * change options + * change config + * add sdl2 render + * use gsl for random number generation + + -- Paulo Assis Fri, 2 May 2014 9:54:00 +0100 + guvcview (1.7.3) * add silence frames to compensate audio drift (delay). diff -Nru guvcview-1.7.3/config.guess guvcview-2.0.1+ubuntu1~ppa1/config.guess --- guvcview-1.7.3/config.guess 2014-03-24 22:56:28.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/config.guess 2014-10-05 10:41:44.000000000 +0000 @@ -1,8 +1,8 @@ #! /bin/sh # Attempt to guess a canonical system name. -# Copyright 1992-2013 Free Software Foundation, Inc. +# Copyright 1992-2014 Free Software Foundation, Inc. -timestamp='2013-06-10' +timestamp='2014-03-23' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by @@ -50,7 +50,7 @@ GNU config.guess ($timestamp) Originally written by Per Bothner. -Copyright 1992-2013 Free Software Foundation, Inc. +Copyright 1992-2014 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." @@ -149,7 +149,7 @@ LIBC=gnu #endif EOF - eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'` + eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC' | sed 's, ,,g'` ;; esac @@ -826,7 +826,7 @@ *:MINGW*:*) echo ${UNAME_MACHINE}-pc-mingw32 exit ;; - i*:MSYS*:*) + *:MSYS*:*) echo ${UNAME_MACHINE}-pc-msys exit ;; i*:windows32*:*) @@ -969,10 +969,10 @@ eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'` test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; } ;; - or1k:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + openrisc*:Linux:*:*) + echo or1k-unknown-linux-${LIBC} exit ;; - or32:Linux:*:*) + or32:Linux:*:* | or1k*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; padre:Linux:*:*) @@ -1260,16 +1260,26 @@ if test "$UNAME_PROCESSOR" = unknown ; then UNAME_PROCESSOR=powerpc fi - if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then - if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ - (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ - grep IS_64BIT_ARCH >/dev/null - then - case $UNAME_PROCESSOR in - i386) UNAME_PROCESSOR=x86_64 ;; - powerpc) UNAME_PROCESSOR=powerpc64 ;; - esac + if test `echo "$UNAME_RELEASE" | sed -e 's/\..*//'` -le 10 ; then + if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then + if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ + (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_64BIT_ARCH >/dev/null + then + case $UNAME_PROCESSOR in + i386) UNAME_PROCESSOR=x86_64 ;; + powerpc) UNAME_PROCESSOR=powerpc64 ;; + esac + fi fi + elif test "$UNAME_PROCESSOR" = i386 ; then + # Avoid executing cc on OS X 10.9, as it ships with a stub + # that puts up a graphical alert prompting to install + # developer tools. Any system running Mac OS X 10.7 or + # later (Darwin 11 and later) is required to have a 64-bit + # processor. This is not true of the ARM version of Darwin + # that Apple uses in portable devices. + UNAME_PROCESSOR=x86_64 fi echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} exit ;; @@ -1361,154 +1371,6 @@ exit ;; esac -eval $set_cc_for_build -cat >$dummy.c < -# include -#endif -main () -{ -#if defined (sony) -#if defined (MIPSEB) - /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, - I don't know.... */ - printf ("mips-sony-bsd\n"); exit (0); -#else -#include - printf ("m68k-sony-newsos%s\n", -#ifdef NEWSOS4 - "4" -#else - "" -#endif - ); exit (0); -#endif -#endif - -#if defined (__arm) && defined (__acorn) && defined (__unix) - printf ("arm-acorn-riscix\n"); exit (0); -#endif - -#if defined (hp300) && !defined (hpux) - printf ("m68k-hp-bsd\n"); exit (0); -#endif - -#if defined (NeXT) -#if !defined (__ARCHITECTURE__) -#define __ARCHITECTURE__ "m68k" -#endif - int version; - version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; - if (version < 4) - printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); - else - printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); - exit (0); -#endif - -#if defined (MULTIMAX) || defined (n16) -#if defined (UMAXV) - printf ("ns32k-encore-sysv\n"); exit (0); -#else -#if defined (CMU) - printf ("ns32k-encore-mach\n"); exit (0); -#else - printf ("ns32k-encore-bsd\n"); exit (0); -#endif -#endif -#endif - -#if defined (__386BSD__) - printf ("i386-pc-bsd\n"); exit (0); -#endif - -#if defined (sequent) -#if defined (i386) - printf ("i386-sequent-dynix\n"); exit (0); -#endif -#if defined (ns32000) - printf ("ns32k-sequent-dynix\n"); exit (0); -#endif -#endif - -#if defined (_SEQUENT_) - struct utsname un; - - uname(&un); - - if (strncmp(un.version, "V2", 2) == 0) { - printf ("i386-sequent-ptx2\n"); exit (0); - } - if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ - printf ("i386-sequent-ptx1\n"); exit (0); - } - printf ("i386-sequent-ptx\n"); exit (0); - -#endif - -#if defined (vax) -# if !defined (ultrix) -# include -# if defined (BSD) -# if BSD == 43 - printf ("vax-dec-bsd4.3\n"); exit (0); -# else -# if BSD == 199006 - printf ("vax-dec-bsd4.3reno\n"); exit (0); -# else - printf ("vax-dec-bsd\n"); exit (0); -# endif -# endif -# else - printf ("vax-dec-bsd\n"); exit (0); -# endif -# else - printf ("vax-dec-ultrix\n"); exit (0); -# endif -#endif - -#if defined (alliant) && defined (i860) - printf ("i860-alliant-bsd\n"); exit (0); -#endif - - exit (1); -} -EOF - -$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` && - { echo "$SYSTEM_NAME"; exit; } - -# Apollos put the system type in the environment. - -test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; } - -# Convex versions that predate uname can use getsysinfo(1) - -if [ -x /usr/convex/getsysinfo ] -then - case `getsysinfo -f cpu_type` in - c1*) - echo c1-convex-bsd - exit ;; - c2*) - if getsysinfo -f scalar_acc - then echo c32-convex-bsd - else echo c2-convex-bsd - fi - exit ;; - c34*) - echo c34-convex-bsd - exit ;; - c38*) - echo c38-convex-bsd - exit ;; - c4*) - echo c4-convex-bsd - exit ;; - esac -fi - cat >&2 < header file. */ +#undef HAVE_AVCODEC_H /* Define to 1 if you have the `bind_textdomain_codeset' function. */ #undef HAVE_BIND_TEXTDOMAIN_CODESET @@ -24,6 +30,21 @@ /* Define to 1 if you have the `dcgettext' function. */ #undef HAVE_DCGETTEXT +/* Define to 1 if you have the `dirfd' function. */ +#undef HAVE_DIRFD + +/* Define to 1 if you have the header file. */ +#undef HAVE_DLFCN_H + +/* libm includes exp */ +#undef HAVE_EXP + +/* Define to 1 if you have the header file. */ +#undef HAVE_FFMPEG_AVCODEC_H + +/* Define to 1 if you have the `fpathconf' function. */ +#undef HAVE_FPATHCONF + /* Define if the GNU gettext() function is already present or preinstalled. */ #undef HAVE_GETTEXT @@ -33,15 +54,30 @@ /* Define if your file defines LC_MESSAGES. */ #undef HAVE_LC_MESSAGES +/* Define to 1 if you have the header file. */ +#undef HAVE_LIBAVCODEC_AVCODEC_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_LIBAVUTIL_VERSION_H + /* Define to 1 if you have the header file. */ #undef HAVE_LOCALE_H +/* Define to 1 if you have the header file. */ +#undef HAVE_MATH_H + /* Define to 1 if you have the header file. */ #undef HAVE_MEMORY_H +/* libm includes pow */ +#undef HAVE_POW + /* Define if you have POSIX threads libraries and header files. */ #undef HAVE_PTHREAD +/* libm includes roundf */ +#undef HAVE_ROUNDF + /* Define to 1 if you have the header file. */ #undef HAVE_STDINT_H @@ -63,8 +99,12 @@ /* Define to 1 if you have the header file. */ #undef HAVE_UNISTD_H -/* Define to 1 if your C compiler doesn't accept -c and -o together. */ -#undef NO_MINUS_C_MINUS_O +/* Define to the sub-directory in which libtool stores uninstalled libraries. + */ +#undef LT_OBJDIR + +/* set to 1 if builtin decoder is enabled */ +#undef MJPG_BUILTIN /* Name of package */ #undef PACKAGE @@ -75,6 +115,9 @@ /* Define to the full name of this package. */ #undef PACKAGE_NAME +/* 2 */ +#undef PACKAGE_RELEASE + /* Define to the full name and version of this package. */ #undef PACKAGE_STRING @@ -91,12 +134,12 @@ your system. */ #undef PTHREAD_CREATE_JOINABLE -/* set to 1 if pulseaudio installed */ -#undef PULSEAUDIO - /* Define to 1 if you have the ANSI C header files. */ #undef STDC_HEADERS +/* set to 1 if iyuv is enabled */ +#undef USE_PLANAR_YUV + /* Version number of package */ #undef VERSION diff -Nru guvcview-1.7.3/config.sub guvcview-2.0.1+ubuntu1~ppa1/config.sub --- guvcview-1.7.3/config.sub 2014-03-24 22:56:28.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/config.sub 2014-10-05 10:41:44.000000000 +0000 @@ -1,8 +1,8 @@ #! /bin/sh # Configuration validation subroutine script. -# Copyright 1992-2013 Free Software Foundation, Inc. +# Copyright 1992-2014 Free Software Foundation, Inc. -timestamp='2013-08-10' +timestamp='2014-09-11' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by @@ -68,7 +68,7 @@ version="\ GNU config.sub ($timestamp) -Copyright 1992-2013 Free Software Foundation, Inc. +Copyright 1992-2014 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." @@ -265,6 +265,7 @@ | hexagon \ | i370 | i860 | i960 | ia64 \ | ip2k | iq2000 \ + | k1om \ | le32 | le64 \ | lm32 \ | m32c | m32r | m32rle | m68000 | m68k | m88k \ @@ -282,8 +283,10 @@ | mips64vr5900 | mips64vr5900el \ | mipsisa32 | mipsisa32el \ | mipsisa32r2 | mipsisa32r2el \ + | mipsisa32r6 | mipsisa32r6el \ | mipsisa64 | mipsisa64el \ | mipsisa64r2 | mipsisa64r2el \ + | mipsisa64r6 | mipsisa64r6el \ | mipsisa64sb1 | mipsisa64sb1el \ | mipsisa64sr71k | mipsisa64sr71kel \ | mipsr5900 | mipsr5900el \ @@ -295,11 +298,11 @@ | nds32 | nds32le | nds32be \ | nios | nios2 | nios2eb | nios2el \ | ns16k | ns32k \ - | open8 \ - | or1k | or32 \ + | open8 | or1k | or1knd | or32 \ | pdp10 | pdp11 | pj | pjl \ | powerpc | powerpc64 | powerpc64le | powerpcle \ | pyramid \ + | riscv32 | riscv64 \ | rl78 | rx \ | score \ | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ @@ -324,7 +327,7 @@ c6x) basic_machine=tic6x-unknown ;; - m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | picochip) + m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip) basic_machine=$basic_machine-unknown os=-none ;; @@ -381,6 +384,7 @@ | hexagon-* \ | i*86-* | i860-* | i960-* | ia64-* \ | ip2k-* | iq2000-* \ + | k1om-* \ | le32-* | le64-* \ | lm32-* \ | m32c-* | m32r-* | m32rle-* \ @@ -400,8 +404,10 @@ | mips64vr5900-* | mips64vr5900el-* \ | mipsisa32-* | mipsisa32el-* \ | mipsisa32r2-* | mipsisa32r2el-* \ + | mipsisa32r6-* | mipsisa32r6el-* \ | mipsisa64-* | mipsisa64el-* \ | mipsisa64r2-* | mipsisa64r2el-* \ + | mipsisa64r6-* | mipsisa64r6el-* \ | mipsisa64sb1-* | mipsisa64sb1el-* \ | mipsisa64sr71k-* | mipsisa64sr71kel-* \ | mipsr5900-* | mipsr5900el-* \ @@ -413,6 +419,7 @@ | nios-* | nios2-* | nios2eb-* | nios2el-* \ | none-* | np1-* | ns16k-* | ns32k-* \ | open8-* \ + | or1k*-* \ | orion-* \ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \ @@ -822,6 +829,10 @@ basic_machine=powerpc-unknown os=-morphos ;; + moxiebox) + basic_machine=moxie-unknown + os=-moxiebox + ;; msdos) basic_machine=i386-pc os=-msdos @@ -1367,14 +1378,14 @@ | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \ | -linux-newlib* | -linux-musl* | -linux-uclibc* \ - | -uxpv* | -beos* | -mpeix* | -udk* \ + | -uxpv* | -beos* | -mpeix* | -udk* | -moxiebox* \ | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ - | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es*) + | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* | -tirtos*) # Remember, each alternative MUST END IN *, to match a version number. ;; -qnx*) @@ -1592,9 +1603,6 @@ mips*-*) os=-elf ;; - or1k-*) - os=-elf - ;; or32-*) os=-coff ;; diff -Nru guvcview-1.7.3/configure guvcview-2.0.1+ubuntu1~ppa1/configure --- guvcview-1.7.3/configure 2014-03-24 22:56:28.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/configure 2014-10-05 10:41:44.000000000 +0000 @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for guvcview 1.7.3. +# Generated by GNU Autoconf 2.69 for guvcview 2.0.1. # # Report bugs to . # @@ -198,7 +198,15 @@ as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1 -test \$(( 1 + 1 )) = 2 || exit 1" +test \$(( 1 + 1 )) = 2 || exit 1 + + test -n \"\${ZSH_VERSION+set}\${BASH_VERSION+set}\" || ( + ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO + ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO + PATH=/empty FPATH=/empty; export PATH FPATH + test \"X\`printf %s \$ECHO\`\" = \"X\$ECHO\" \\ + || test \"X\`print -r -- \$ECHO\`\" = \"X\$ECHO\" ) || exit 1" if (eval "$as_required") 2>/dev/null; then : as_have_required=yes else @@ -556,6 +564,8 @@ # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" +SHELL=${CONFIG_SHELL-/bin/sh} + test -n "$DJDIR" || exec 7<&0 &1 @@ -580,8 +590,8 @@ # Identity of this package. PACKAGE_NAME='guvcview' PACKAGE_TARNAME='guvcview' -PACKAGE_VERSION='1.7.3' -PACKAGE_STRING='guvcview 1.7.3' +PACKAGE_VERSION='2.0.1' +PACKAGE_STRING='guvcview 2.0.1' PACKAGE_BUGREPORT='http://guvcview.sourceforge.net/' PACKAGE_URL='' @@ -626,17 +636,47 @@ am__EXEEXT_TRUE LTLIBOBJS LIBOBJS -PULSE_LIBS -PULSE_CFLAGS DESKTOP_FALSE DESKTOP_TRUE DEBIAN_MENU_FALSE DEBIAN_MENU_TRUE -DEPS_LIBS -DEPS_CFLAGS +GUVCVIEW_LIBS +GUVCVIEW_CFLAGS +GVIEWENCODER_LIBS +GVIEWENCODER_CFLAGS +GVIEWENCODER_LIBRARY_VERSION +GVIEWENCODER_API_VERSION +GVIEWENCODER_LD_NAME +GVIEWENCODER_LIBRARY_NAME +HAVE_PULSEAUDIO_FALSE +HAVE_PULSEAUDIO_TRUE +PULSE_LIBS +PULSE_CFLAGS +GVIEWAUDIO_LIBS +GVIEWAUDIO_CFLAGS +GVIEWAUDIO_LIBRARY_VERSION +GVIEWAUDIO_API_VERSION +GVIEWAUDIO_LD_NAME +GVIEWAUDIO_LIBRARY_NAME +GSL_LIBS +GSL_CFLAGS +ENABLE_SDL2_FALSE +ENABLE_SDL2_TRUE +GVIEWRENDER_LIBS +GVIEWRENDER_CFLAGS +GVIEWRENDER_LIBRARY_VERSION +GVIEWRENDER_API_VERSION +GVIEWRENDER_LD_NAME +GVIEWRENDER_LIBRARY_NAME +GVIEWV4L2CORE_LIBS +GVIEWV4L2CORE_CFLAGS PKG_CONFIG_LIBDIR PKG_CONFIG_PATH PKG_CONFIG +GVIEWV4L2CORE_LIBRARY_VERSION +GVIEWV4L2CORE_API_VERSION +GVIEWV4L2CORE_LD_NAME +GVIEWV4L2CORE_LIBRARY_NAME MKINSTALLDIRS POSUB POFILES @@ -674,15 +714,40 @@ INTLTOOL_KEYS_RULE INTLTOOL_DIRECTORY_RULE INTLTOOL_DESKTOP_RULE +intltool__v_merge_options_0 +intltool__v_merge_options_ +INTLTOOL_V_MERGE_OPTIONS +INTLTOOL__v_MERGE_0 +INTLTOOL__v_MERGE_ +INTLTOOL_V_MERGE INTLTOOL_EXTRACT INTLTOOL_MERGE INTLTOOL_UPDATE USE_NLS GETTEXT_PACKAGE +GETTEXT_PACKAGE_V4L2CORE PTHREAD_CFLAGS PTHREAD_LIBS PTHREAD_CC acx_pthread_config +OTOOL64 +OTOOL +LIPO +NMEDIT +DSYMUTIL +MANIFEST_TOOL +RANLIB +ac_ct_AR +AR +DLLTOOL +OBJDUMP +LN_S +NM +ac_ct_DUMPBIN +DUMPBIN +LD +FGREP +SED host_os host_vendor host_cpu @@ -691,6 +756,7 @@ build_vendor build_cpu build +LIBTOOL EGREP GREP CPP @@ -741,6 +807,7 @@ AM_DEFAULT_VERBOSITY AM_DEFAULT_V AM_V +PACKAGE_RELEASE target_alias host_alias build_alias @@ -785,11 +852,21 @@ enable_silent_rules enable_maintainer_mode enable_dependency_tracking -enable_debug +enable_shared +enable_static +with_pic +enable_fast_install +with_gnu_ld +with_sysroot +enable_libtool_lock enable_nls +enable_iyuv +enable_builtin_mjpg +enable_sdl2 +enable_gsl +enable_pulse enable_debian_menu enable_desktop -enable_pulse ' ac_precious_vars='build_alias host_alias @@ -803,10 +880,20 @@ PKG_CONFIG PKG_CONFIG_PATH PKG_CONFIG_LIBDIR -DEPS_CFLAGS -DEPS_LIBS +GVIEWV4L2CORE_CFLAGS +GVIEWV4L2CORE_LIBS +GVIEWRENDER_CFLAGS +GVIEWRENDER_LIBS +GSL_CFLAGS +GSL_LIBS +GVIEWAUDIO_CFLAGS +GVIEWAUDIO_LIBS PULSE_CFLAGS -PULSE_LIBS' +PULSE_LIBS +GVIEWENCODER_CFLAGS +GVIEWENCODER_LIBS +GUVCVIEW_CFLAGS +GUVCVIEW_LIBS' # Initialize some variables set by options. @@ -1347,7 +1434,7 @@ # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures guvcview 1.7.3 to adapt to many kinds of systems. +\`configure' configures guvcview 2.0.1 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1417,7 +1504,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of guvcview 1.7.3:";; + short | recursive ) echo "Configuration of guvcview 2.0.1:";; esac cat <<\_ACEOF @@ -1434,12 +1521,30 @@ do not reject slow dependency extractors --disable-dependency-tracking speeds up one-time build - --enable-debug enable debug compile w/ debugging - if \$CFLAGS is - set, add -g there, too + --enable-shared[=PKGS] build shared libraries [default=yes] + --enable-static[=PKGS] build static libraries [default=yes] + --enable-fast-install[=PKGS] + optimize for fast installation [default=yes] + --disable-libtool-lock avoid locking (might break parallel builds) --disable-nls do not use Native Language Support + --enable-iyuv enable iyuv (planar 420) as internal format + (default: disabled) + --enable-builtin-mjpg enable builtin mjpg decoder support (default: + disable) + --disable-sdl2 disable sdl2 support (default: enabled) + --disable-gsl disable gsl support (default: enabled) + --disable-pulse disable pulseaudio support (default: enabled) --disable-debian-menu disable debian menu (default: enabled) --disable-desktop disable desktop file (default: enabled) - --disable-pulse disable pulseaudio support (default: enabled) + +Optional Packages: + --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] + --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) + --with-pic[=PKGS] try to use only PIC/non-PIC objects [default=use + both] + --with-gnu-ld assume the C compiler uses GNU ld [default=no] + --with-sysroot=DIR Search for dependent libraries within DIR + (or the compiler's sysroot if not specified). Some influential environment variables: CC C compiler command @@ -1455,11 +1560,31 @@ directories to add to pkg-config's search path PKG_CONFIG_LIBDIR path overriding pkg-config's built-in search path - DEPS_CFLAGS C compiler flags for DEPS, overriding pkg-config - DEPS_LIBS linker flags for DEPS, overriding pkg-config + GVIEWV4L2CORE_CFLAGS + C compiler flags for GVIEWV4L2CORE, overriding pkg-config + GVIEWV4L2CORE_LIBS + linker flags for GVIEWV4L2CORE, overriding pkg-config + GVIEWRENDER_CFLAGS + C compiler flags for GVIEWRENDER, overriding pkg-config + GVIEWRENDER_LIBS + linker flags for GVIEWRENDER, overriding pkg-config + GSL_CFLAGS C compiler flags for GSL, overriding pkg-config + GSL_LIBS linker flags for GSL, overriding pkg-config + GVIEWAUDIO_CFLAGS + C compiler flags for GVIEWAUDIO, overriding pkg-config + GVIEWAUDIO_LIBS + linker flags for GVIEWAUDIO, overriding pkg-config PULSE_CFLAGS C compiler flags for PULSE, overriding pkg-config PULSE_LIBS linker flags for PULSE, overriding pkg-config + GVIEWENCODER_CFLAGS + C compiler flags for GVIEWENCODER, overriding pkg-config + GVIEWENCODER_LIBS + linker flags for GVIEWENCODER, overriding pkg-config + GUVCVIEW_CFLAGS + C compiler flags for GUVCVIEW, overriding pkg-config + GUVCVIEW_LIBS + linker flags for GUVCVIEW, overriding pkg-config Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. @@ -1527,7 +1652,7 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -guvcview configure 1.7.3 +guvcview configure 2.0.1 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -1704,6 +1829,37 @@ } # ac_fn_c_try_link +# ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES +# ------------------------------------------------------- +# Tests whether HEADER exists and can be compiled using the include files in +# INCLUDES, setting the cache variable VAR accordingly. +ac_fn_c_check_header_compile () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +$as_echo_n "checking for $2... " >&6; } +if eval \${$3+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +#include <$2> +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + eval "$3=yes" +else + eval "$3=no" +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + +} # ac_fn_c_check_header_compile + # ac_fn_c_check_func LINENO FUNC VAR # ---------------------------------- # Tests whether FUNC exists, setting the cache variable VAR accordingly @@ -1861,42 +2017,11 @@ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_header_mongrel - -# ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES -# ------------------------------------------------------- -# Tests whether HEADER exists and can be compiled using the include files in -# INCLUDES, setting the cache variable VAR accordingly. -ac_fn_c_check_header_compile () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 -$as_echo_n "checking for $2... " >&6; } -if eval \${$3+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -#include <$2> -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - eval "$3=yes" -else - eval "$3=no" -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -eval ac_res=\$$3 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - -} # ac_fn_c_check_header_compile cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by guvcview $as_me 1.7.3, which was +It was created by guvcview $as_me 2.0.1, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -2244,6 +2369,15 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu + +PACKAGE_RELEASE=2 + + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_RELEASE "$PACKAGE_RELEASE" +_ACEOF + + # Check whether --enable-silent-rules was given. if test "${enable_silent_rules+set}" = set; then : enableval=$enable_silent_rules; @@ -2284,7 +2418,7 @@ AM_BACKSLASH='\' -am__api_version='1.13' +am__api_version='1.14' ac_aux_dir= for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do @@ -2760,7 +2894,7 @@ # Define the identity of the package. PACKAGE='guvcview' - VERSION='1.7.3' + VERSION='2.0.1' cat >>confdefs.h <<_ACEOF @@ -2811,6 +2945,48 @@ +# POSIX will say in a future version that running "rm -f" with no argument +# is OK; and we want to be able to make that assumption in our Makefile +# recipes. So use an aggressive probe to check that the usage we want is +# actually supported "in the wild" to an acceptable degree. +# See automake bug#10828. +# To make any issue more visible, cause the running configure to be aborted +# by default if the 'rm' program in use doesn't match our expectations; the +# user can still override this though. +if rm -f && rm -fr && rm -rf; then : OK; else + cat >&2 <<'END' +Oops! + +Your 'rm' program seems unable to run without file operands specified +on the command line, even when the '-f' option is present. This is contrary +to the behaviour of most rm programs out there, and not conforming with +the upcoming POSIX standard: + +Please tell bug-automake@gnu.org about your system, including the value +of your $PATH and any error possibly output before this message. This +can help us improve future automake versions. + +END + if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then + echo 'Configuration will proceed anyway, since you have set the' >&2 + echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2 + echo >&2 + else + cat >&2 <<'END' +Aborting the configuration process, to ensure you take notice of the issue. + +You can download and install GNU coreutils to get an 'rm' implementation +that behaves properly: . + +If you want to complete the configuration process using your problematic +'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM +to "yes", and re-run configure. + +END + as_fn_error $? "Your 'rm' program is bad, sorry." "$LINENO" 5 + fi +fi + ac_config_headers="$ac_config_headers config.h" @@ -2838,6 +3014,7 @@ + # autoconf 2.5x defaults to no cache file; we need the cache file's information # for building the config page. But start with it empty to avoid confusion by # people who don't do a "make distclean" after applying patches. @@ -3634,6 +3811,65 @@ ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC understands -c and -o together" >&5 +$as_echo_n "checking whether $CC understands -c and -o together... " >&6; } +if ${am_cv_prog_cc_c_o+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF + # Make sure it works both with $CC and with simple cc. + # Following AC_PROG_CC_C_O, we do the test twice because some + # compilers refuse to overwrite an existing .o file with -o, + # though they will create one. + am_cv_prog_cc_c_o=yes + for am_i in 1 2; do + if { echo "$as_me:$LINENO: $CC -c conftest.$ac_ext -o conftest2.$ac_objext" >&5 + ($CC -c conftest.$ac_ext -o conftest2.$ac_objext) >&5 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } \ + && test -f conftest2.$ac_objext; then + : OK + else + am_cv_prog_cc_c_o=no + break + fi + done + rm -f core conftest* + unset am_i +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5 +$as_echo "$am_cv_prog_cc_c_o" >&6; } +if test "$am_cv_prog_cc_c_o" != yes; then + # Losing compiler, so override with the script. + # FIXME: It is wrong to rewrite CC. + # But if we don't then we get into trouble of one sort or another. + # A longer-term fix would be to have automake use am__CC in this case, + # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" + CC="$am_aux_dir/compile $CC" +fi +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + DEPDIR="${am__leading_dot}deps" ac_config_commands="$ac_config_commands depfiles" @@ -3826,131 +4062,6 @@ fi -if test "x$CC" != xcc; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC and cc understand -c and -o together" >&5 -$as_echo_n "checking whether $CC and cc understand -c and -o together... " >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether cc understands -c and -o together" >&5 -$as_echo_n "checking whether cc understands -c and -o together... " >&6; } -fi -set dummy $CC; ac_cc=`$as_echo "$2" | - sed 's/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/'` -if eval \${ac_cv_prog_cc_${ac_cc}_c_o+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -# Make sure it works both with $CC and with simple cc. -# We do the test twice because some compilers refuse to overwrite an -# existing .o file with -o, though they will create one. -ac_try='$CC -c conftest.$ac_ext -o conftest2.$ac_objext >&5' -rm -f conftest2.* -if { { case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && - test -f conftest2.$ac_objext && { { case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; -then - eval ac_cv_prog_cc_${ac_cc}_c_o=yes - if test "x$CC" != xcc; then - # Test first that cc exists at all. - if { ac_try='cc -c conftest.$ac_ext >&5' - { { case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; }; then - ac_try='cc -c conftest.$ac_ext -o conftest2.$ac_objext >&5' - rm -f conftest2.* - if { { case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && - test -f conftest2.$ac_objext && { { case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; - then - # cc works too. - : - else - # cc exists but doesn't like -o. - eval ac_cv_prog_cc_${ac_cc}_c_o=no - fi - fi - fi -else - eval ac_cv_prog_cc_${ac_cc}_c_o=no -fi -rm -f core conftest* - -fi -if eval test \$ac_cv_prog_cc_${ac_cc}_c_o = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - -$as_echo "#define NO_MINUS_C_MINUS_O 1" >>confdefs.h - -fi - -# FIXME: we rely on the cache variable name because -# there is no other way. -set dummy $CC -am_cc=`echo $2 | sed 's/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/'` -eval am_t=\$ac_cv_prog_cc_${am_cc}_c_o -if test "$am_t" != yes; then - # Losing compiler, so override with the script. - # FIXME: It is wrong to rewrite CC. - # But if we don't then we get into trouble of one sort or another. - # A longer-term fix would be to have automake use am__CC in this case, - # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" - CC="$am_aux_dir/compile $CC" -fi - ac_ext=c @@ -4333,6 +4444,30 @@ fi +case `pwd` in + *\ * | *\ *) + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5 +$as_echo "$as_me: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&2;} ;; +esac + + + +macro_version='2.4.2' +macro_revision='1.3337' + + + + + + + + + + + + + +ltmain="$ac_aux_dir/ltmain.sh" # Make sure we can run config.sub. $SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || @@ -4405,136 +4540,425 @@ case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac +# Backslashify metacharacters that are still active within +# double-quoted strings. +sed_quote_subst='s/\(["`$\\]\)/\\\1/g' + +# Same as above, but do not quote variable references. +double_quote_subst='s/\(["`\\]\)/\\\1/g' + +# Sed substitution to delay expansion of an escaped shell variable in a +# double_quote_subst'ed string. +delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' + +# Sed substitution to delay expansion of an escaped single quote. +delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' + +# Sed substitution to avoid accidental globbing in evaled expressions +no_glob_subst='s/\*/\\\*/g' + +ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' +ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO +ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5 +$as_echo_n "checking how to print strings... " >&6; } +# Test print first, because it will be a builtin if present. +if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ + test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then + ECHO='print -r --' +elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then + ECHO='printf %s\n' +else + # Use this function as a fallback that always works. + func_fallback_echo () + { + eval 'cat <<_LTECHO_EOF +$1 +_LTECHO_EOF' + } + ECHO='func_fallback_echo' +fi +# func_echo_all arg... +# Invoke $ECHO with all args, space-separated. +func_echo_all () +{ + $ECHO "" +} +case "$ECHO" in + printf*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: printf" >&5 +$as_echo "printf" >&6; } ;; + print*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: print -r" >&5 +$as_echo "print -r" >&6; } ;; + *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: cat" >&5 +$as_echo "cat" >&6; } ;; +esac -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu -acx_pthread_ok=no -# We used to check for pthread.h first, but this fails if pthread.h -# requires special compiler flags (e.g. on True64 or Sequent). -# It gets checked for in the link test anyway. -# First of all, check if the user has set any of the PTHREAD_LIBS, -# etcetera environment variables, and if threads linking works using -# them: -if test x"$PTHREAD_LIBS$PTHREAD_CFLAGS" != x; then - save_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS $PTHREAD_CFLAGS" - save_LIBS="$LIBS" - LIBS="$PTHREAD_LIBS $LIBS" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread_join in LIBS=$PTHREAD_LIBS with CFLAGS=$PTHREAD_CFLAGS" >&5 -$as_echo_n "checking for pthread_join in LIBS=$PTHREAD_LIBS with CFLAGS=$PTHREAD_CFLAGS... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char pthread_join (); -int -main () -{ -return pthread_join (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - acx_pthread_ok=yes + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5 +$as_echo_n "checking for a sed that does not truncate output... " >&6; } +if ${ac_cv_path_SED+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ + for ac_i in 1 2 3 4 5 6 7; do + ac_script="$ac_script$as_nl$ac_script" + done + echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed + { ac_script=; unset ac_script;} + if test -z "$SED"; then + ac_path_SED_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in sed gsed; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_SED="$as_dir/$ac_prog$ac_exec_ext" + as_fn_executable_p "$ac_path_SED" || continue +# Check for GNU ac_path_SED and select it if it is found. + # Check for GNU $ac_path_SED +case `"$ac_path_SED" --version 2>&1` in +*GNU*) + ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;; +*) + ac_count=0 + $as_echo_n 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + $as_echo '' >> "conftest.nl" + "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_SED_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_SED="$ac_path_SED" + ac_path_SED_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_SED_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_SED"; then + as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5 + fi +else + ac_cv_path_SED=$SED fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $acx_pthread_ok" >&5 -$as_echo "$acx_pthread_ok" >&6; } - if test x"$acx_pthread_ok" = xno; then - PTHREAD_LIBS="" - PTHREAD_CFLAGS="" - fi - LIBS="$save_LIBS" - CFLAGS="$save_CFLAGS" + fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5 +$as_echo "$ac_cv_path_SED" >&6; } + SED="$ac_cv_path_SED" + rm -f conftest.sed -# We must check for the threads library under a number of different -# names; the ordering is very important because some systems -# (e.g. DEC) have both -lpthread and -lpthreads, where one of the -# libraries is broken (non-POSIX). +test -z "$SED" && SED=sed +Xsed="$SED -e 1s/^X//" -# Create a list of thread flags to try. Items starting with a "-" are -# C compiler flags, and other items are library names, except for "none" -# which indicates that we try without any flags at all, and "pthread-config" -# which is a program returning the flags for the Pth emulation library. -acx_pthread_flags="pthreads none -Kthread -kthread lthread -pthread -pthreads -mthreads pthread --thread-safe -mt pthread-config" -# The ordering *is* (sometimes) important. Some notes on the -# individual items follow: -# pthreads: AIX (must check this before -lpthread) -# none: in case threads are in libc; should be tried before -Kthread and -# other compiler flags to prevent continual compiler warnings -# -Kthread: Sequent (threads in libc, but -Kthread needed for pthread.h) -# -kthread: FreeBSD kernel threads (preferred to -pthread since SMP-able) -# lthread: LinuxThreads port on FreeBSD (also preferred to -pthread) -# -pthread: Linux/gcc (kernel threads), BSD/gcc (userland threads) -# -pthreads: Solaris/gcc -# -mthreads: Mingw32/gcc, Lynx/gcc -# -mt: Sun Workshop C (may only link SunOS threads [-lthread], but it -# doesn't hurt to check since this sometimes defines pthreads too; -# also defines -D_REENTRANT) -# ... -mt is also the pthreads flag for HP/aCC -# pthread: Linux, etcetera -# --thread-safe: KAI C++ -# pthread-config: use pthread-config program (for GNU Pth library) -case "${host_cpu}-${host_os}" in - *solaris*) - # On Solaris (at least, for some versions), libc contains stubbed - # (non-functional) versions of the pthreads routines, so link-based - # tests will erroneously succeed. (We need to link with -pthreads/-mt/ - # -lpthread.) (The stubs are missing pthread_cleanup_push, or rather - # a function called by this macro, so we could check for that, but - # who knows whether they'll stub that too in a future libc.) So, - # we'll just look for -pthreads and -lpthread first: - acx_pthread_flags="-pthreads pthread -mt -pthread $acx_pthread_flags" - ;; + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5 +$as_echo_n "checking for fgrep... " >&6; } +if ${ac_cv_path_FGREP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1 + then ac_cv_path_FGREP="$GREP -F" + else + if test -z "$FGREP"; then + ac_path_FGREP_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in fgrep; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_FGREP="$as_dir/$ac_prog$ac_exec_ext" + as_fn_executable_p "$ac_path_FGREP" || continue +# Check for GNU ac_path_FGREP and select it if it is found. + # Check for GNU $ac_path_FGREP +case `"$ac_path_FGREP" --version 2>&1` in +*GNU*) + ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_found=:;; +*) + ac_count=0 + $as_echo_n 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + $as_echo 'FGREP' >> "conftest.nl" + "$ac_path_FGREP" FGREP < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_FGREP_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_FGREP="$ac_path_FGREP" + ac_path_FGREP_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac -if test x"$acx_pthread_ok" = xno; then -for flag in $acx_pthread_flags; do + $ac_path_FGREP_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_FGREP"; then + as_fn_error $? "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 + fi +else + ac_cv_path_FGREP=$FGREP +fi - case $flag in - none) - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether pthreads work without any flags" >&5 -$as_echo_n "checking whether pthreads work without any flags... " >&6; } - ;; + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_FGREP" >&5 +$as_echo "$ac_cv_path_FGREP" >&6; } + FGREP="$ac_cv_path_FGREP" - -*) - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether pthreads work with $flag" >&5 -$as_echo_n "checking whether pthreads work with $flag... " >&6; } - PTHREAD_CFLAGS="$flag" - ;; - pthread-config) - # Extract the first word of "pthread-config", so it can be a program name with args. -set dummy pthread-config; ac_word=$2 +test -z "$GREP" && GREP=grep + + + + + + + + + + + + + + + + + + + +# Check whether --with-gnu-ld was given. +if test "${with_gnu_ld+set}" = set; then : + withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes +else + with_gnu_ld=no +fi + +ac_prog=ld +if test "$GCC" = yes; then + # Check if gcc -print-prog-name=ld gives a path. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5 +$as_echo_n "checking for ld used by $CC... " >&6; } + case $host in + *-*-mingw*) + # gcc leaves a trailing carriage return which upsets mingw + ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; + *) + ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; + esac + case $ac_prog in + # Accept absolute paths. + [\\/]* | ?:[\\/]*) + re_direlt='/[^/][^/]*/\.\./' + # Canonicalize the pathname of ld + ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` + while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do + ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` + done + test -z "$LD" && LD="$ac_prog" + ;; + "") + # If it fails, then pretend we aren't using GCC. + ac_prog=ld + ;; + *) + # If it is relative, then search for the first ld in PATH. + with_gnu_ld=unknown + ;; + esac +elif test "$with_gnu_ld" = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5 +$as_echo_n "checking for GNU ld... " >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5 +$as_echo_n "checking for non-GNU ld... " >&6; } +fi +if ${lt_cv_path_LD+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -z "$LD"; then + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then + lt_cv_path_LD="$ac_dir/$ac_prog" + # Check to see if the program is GNU ld. I'd rather use --version, + # but apparently some variants of GNU ld only accept -v. + # Break only if it was the GNU/non-GNU ld that we prefer. + case `"$lt_cv_path_LD" -v 2>&1 &5 +$as_echo "$LD" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi +test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 +$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } +if ${lt_cv_prog_gnu_ld+:} false; then : + $as_echo_n "(cached) " >&6 +else + # I'd rather use --version here, but apparently some GNU lds only accept -v. +case `$LD -v 2>&1 &5 +$as_echo "$lt_cv_prog_gnu_ld" >&6; } +with_gnu_ld=$lt_cv_prog_gnu_ld + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for BSD- or MS-compatible name lister (nm)" >&5 +$as_echo_n "checking for BSD- or MS-compatible name lister (nm)... " >&6; } +if ${lt_cv_path_NM+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$NM"; then + # Let the user override the test. + lt_cv_path_NM="$NM" +else + lt_nm_to_check="${ac_tool_prefix}nm" + if test -n "$ac_tool_prefix" && test "$build" = "$host"; then + lt_nm_to_check="$lt_nm_to_check nm" + fi + for lt_tmp_nm in $lt_nm_to_check; do + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + tmp_nm="$ac_dir/$lt_tmp_nm" + if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then + # Check to see if the nm accepts a BSD-compat flag. + # Adding the `sed 1q' prevents false positives on HP-UX, which says: + # nm: unknown option "B" ignored + # Tru64's nm complains that /dev/null is an invalid object file + case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in + */dev/null* | *'Invalid file or object type'*) + lt_cv_path_NM="$tmp_nm -B" + break + ;; + *) + case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in + */dev/null*) + lt_cv_path_NM="$tmp_nm -p" + break + ;; + *) + lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but + continue # so that we can try to find one that supports BSD flags + ;; + esac + ;; + esac + fi + done + IFS="$lt_save_ifs" + done + : ${lt_cv_path_NM=no} +fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_NM" >&5 +$as_echo "$lt_cv_path_NM" >&6; } +if test "$lt_cv_path_NM" != "no"; then + NM="$lt_cv_path_NM" +else + # Didn't find any BSD compatible name lister, look for dumpbin. + if test -n "$DUMPBIN"; then : + # Let the user override the test. + else + if test -n "$ac_tool_prefix"; then + for ac_prog in dumpbin "link -dump" + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_acx_pthread_config+:} false; then : +if ${ac_cv_prog_DUMPBIN+:} false; then : $as_echo_n "(cached) " >&6 else - if test -n "$acx_pthread_config"; then - ac_cv_prog_acx_pthread_config="$acx_pthread_config" # Let the user override the test. + if test -n "$DUMPBIN"; then + ac_cv_prog_DUMPBIN="$DUMPBIN" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH @@ -4543,7 +4967,7 @@ test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_acx_pthread_config="yes" + ac_cv_prog_DUMPBIN="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi @@ -4551,146 +4975,34 @@ done IFS=$as_save_IFS - test -z "$ac_cv_prog_acx_pthread_config" && ac_cv_prog_acx_pthread_config="no" fi fi -acx_pthread_config=$ac_cv_prog_acx_pthread_config -if test -n "$acx_pthread_config"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $acx_pthread_config" >&5 -$as_echo "$acx_pthread_config" >&6; } +DUMPBIN=$ac_cv_prog_DUMPBIN +if test -n "$DUMPBIN"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DUMPBIN" >&5 +$as_echo "$DUMPBIN" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi - if test x"$acx_pthread_config" = xno; then continue; fi - PTHREAD_CFLAGS="`pthread-config --cflags`" - PTHREAD_LIBS="`pthread-config --ldflags` `pthread-config --libs`" - ;; - - *) - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for the pthreads library -l$flag" >&5 -$as_echo_n "checking for the pthreads library -l$flag... " >&6; } - PTHREAD_LIBS="-l$flag" - ;; - esac - - save_LIBS="$LIBS" - save_CFLAGS="$CFLAGS" - LIBS="$PTHREAD_LIBS $LIBS" - CFLAGS="$CFLAGS $PTHREAD_CFLAGS" - - # Check for various functions. We must include pthread.h, - # since some functions may be macros. (On the Sequent, we - # need a special flag -Kthread to make this header compile.) - # We check for pthread_join because it is in -lpthread on IRIX - # while pthread_create is in libc. We check for pthread_attr_init - # due to DEC craziness with -lpthreads. We check for - # pthread_cleanup_push because it is one of the few pthread - # functions on Solaris that doesn't have a non-functional libc stub. - # We try pthread_create on general principles. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main () -{ -pthread_t th; pthread_join(th, 0); - pthread_attr_init(0); pthread_cleanup_push(0, 0); - pthread_create(0,0,0,0); pthread_cleanup_pop(0); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - acx_pthread_ok=yes -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - - LIBS="$save_LIBS" - CFLAGS="$save_CFLAGS" - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $acx_pthread_ok" >&5 -$as_echo "$acx_pthread_ok" >&6; } - if test "x$acx_pthread_ok" = xyes; then - break; - fi - - PTHREAD_LIBS="" - PTHREAD_CFLAGS="" -done -fi - -# Various other checks: -if test "x$acx_pthread_ok" = xyes; then - save_LIBS="$LIBS" - LIBS="$PTHREAD_LIBS $LIBS" - save_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS $PTHREAD_CFLAGS" - - # Detect AIX lossage: JOINABLE attribute is called UNDETACHED. - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for joinable pthread attribute" >&5 -$as_echo_n "checking for joinable pthread attribute... " >&6; } - attr_name=unknown - for attr in PTHREAD_CREATE_JOINABLE PTHREAD_CREATE_UNDETACHED; do - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main () -{ -int attr=$attr; return attr; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - attr_name=$attr; break + test -n "$DUMPBIN" && break + done fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - done - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $attr_name" >&5 -$as_echo "$attr_name" >&6; } - if test "$attr_name" != PTHREAD_CREATE_JOINABLE; then - -cat >>confdefs.h <<_ACEOF -#define PTHREAD_CREATE_JOINABLE $attr_name -_ACEOF - - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if more special flags are required for pthreads" >&5 -$as_echo_n "checking if more special flags are required for pthreads... " >&6; } - flag=no - case "${host_cpu}-${host_os}" in - *-aix* | *-freebsd* | *-darwin*) flag="-D_THREAD_SAFE";; - *solaris* | *-osf* | *-hpux*) flag="-D_REENTRANT";; - esac - { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${flag}" >&5 -$as_echo "${flag}" >&6; } - if test "x$flag" != xno; then - PTHREAD_CFLAGS="$flag $PTHREAD_CFLAGS" - fi - - LIBS="$save_LIBS" - CFLAGS="$save_CFLAGS" - - # More AIX lossage: must compile with xlc_r or cc_r - if test x"$GCC" != xyes; then - for ac_prog in xlc_r cc_r +if test -z "$DUMPBIN"; then + ac_ct_DUMPBIN=$DUMPBIN + for ac_prog in dumpbin "link -dump" do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_PTHREAD_CC+:} false; then : +if ${ac_cv_prog_ac_ct_DUMPBIN+:} false; then : $as_echo_n "(cached) " >&6 else - if test -n "$PTHREAD_CC"; then - ac_cv_prog_PTHREAD_CC="$PTHREAD_CC" # Let the user override the test. + if test -n "$ac_ct_DUMPBIN"; then + ac_cv_prog_ac_ct_DUMPBIN="$ac_ct_DUMPBIN" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH @@ -4699,7 +5011,7 @@ test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_PTHREAD_CC="$ac_prog" + ac_cv_prog_ac_ct_DUMPBIN="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi @@ -4709,187 +5021,422 @@ fi fi -PTHREAD_CC=$ac_cv_prog_PTHREAD_CC -if test -n "$PTHREAD_CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PTHREAD_CC" >&5 -$as_echo "$PTHREAD_CC" >&6; } +ac_ct_DUMPBIN=$ac_cv_prog_ac_ct_DUMPBIN +if test -n "$ac_ct_DUMPBIN"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DUMPBIN" >&5 +$as_echo "$ac_ct_DUMPBIN" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi - test -n "$PTHREAD_CC" && break + test -n "$ac_ct_DUMPBIN" && break done -test -n "$PTHREAD_CC" || PTHREAD_CC="${CC}" - else - PTHREAD_CC=$CC - fi -else - PTHREAD_CC="$CC" + if test "x$ac_ct_DUMPBIN" = x; then + DUMPBIN=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + DUMPBIN=$ac_ct_DUMPBIN + fi fi + case `$DUMPBIN -symbols /dev/null 2>&1 | sed '1q'` in + *COFF*) + DUMPBIN="$DUMPBIN -symbols" + ;; + *) + DUMPBIN=: + ;; + esac + fi + + if test "$DUMPBIN" != ":"; then + NM="$DUMPBIN" + fi +fi +test -z "$NM" && NM=nm -# Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND: -if test x"$acx_pthread_ok" = xyes; then -$as_echo "#define HAVE_PTHREAD 1" >>confdefs.h - : +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the name lister ($NM) interface" >&5 +$as_echo_n "checking the name lister ($NM) interface... " >&6; } +if ${lt_cv_nm_interface+:} false; then : + $as_echo_n "(cached) " >&6 else - acx_pthread_ok=no + lt_cv_nm_interface="BSD nm" + echo "int some_variable = 0;" > conftest.$ac_ext + (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&5) + (eval "$ac_compile" 2>conftest.err) + cat conftest.err >&5 + (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&5) + (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) + cat conftest.err >&5 + (eval echo "\"\$as_me:$LINENO: output\"" >&5) + cat conftest.out >&5 + if $GREP 'External.*some_variable' conftest.out > /dev/null; then + lt_cv_nm_interface="MS dumpbin" + fi + rm -f conftest* +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_nm_interface" >&5 +$as_echo "$lt_cv_nm_interface" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5 +$as_echo_n "checking whether ln -s works... " >&6; } +LN_S=$as_ln_s +if test "$LN_S" = "ln -s"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5 +$as_echo "no, using $LN_S" >&6; } fi -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu +# find the maximum length of command line arguments +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the maximum length of command line arguments" >&5 +$as_echo_n "checking the maximum length of command line arguments... " >&6; } +if ${lt_cv_sys_max_cmd_len+:} false; then : + $as_echo_n "(cached) " >&6 +else + i=0 + teststring="ABCD" + case $build_os in + msdosdjgpp*) + # On DJGPP, this test can blow up pretty badly due to problems in libc + # (any single argument exceeding 2000 bytes causes a buffer overrun + # during glob expansion). Even if it were fixed, the result of this + # check would be larger than it should be. + lt_cv_sys_max_cmd_len=12288; # 12K is about right + ;; + gnu*) + # Under GNU Hurd, this test is not required because there is + # no limit to the length of command line arguments. + # Libtool will interpret -1 as no limit whatsoever + lt_cv_sys_max_cmd_len=-1; + ;; + cygwin* | mingw* | cegcc*) + # On Win9x/ME, this test blows up -- it succeeds, but takes + # about 5 minutes as the teststring grows exponentially. + # Worse, since 9x/ME are not pre-emptively multitasking, + # you end up with a "frozen" computer, even though with patience + # the test eventually succeeds (with a max line length of 256k). + # Instead, let's just punt: use the minimum linelength reported by + # all of the supported platforms: 8192 (on NT/2K/XP). + lt_cv_sys_max_cmd_len=8192; + ;; + mint*) + # On MiNT this can take a long time and run out of memory. + lt_cv_sys_max_cmd_len=8192; + ;; + amigaos*) + # On AmigaOS with pdksh, this test takes hours, literally. + # So we just punt and use a minimum line length of 8192. + lt_cv_sys_max_cmd_len=8192; + ;; + netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) + # This has been around since 386BSD, at least. Likely further. + if test -x /sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` + elif test -x /usr/sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` + else + lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs + fi + # And add a safety zone + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` + ;; -# The comment about adding -g to $CFLAGS is unclear. Autoconf tries to add -# a -g flag; we remove it if the user's $CFLAGS was not set and debugging is -# disabled. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if you specifically want to enable debug-code -g" >&5 -$as_echo_n "checking if you specifically want to enable debug-code -g... " >&6; } -# Check whether --enable-debug was given. -if test "${enable_debug+set}" = set; then : - enableval=$enable_debug; enable_debug=yes -else - enable_debug=no -fi + interix*) + # We know the value 262144 and hardcode it with a safety zone (like BSD) + lt_cv_sys_max_cmd_len=196608 + ;; + os2*) + # The test takes a long time on OS/2. + lt_cv_sys_max_cmd_len=8192 + ;; + + osf*) + # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure + # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not + # nice to cause kernel panics so lets avoid the loop below. + # First set a reasonable default. + lt_cv_sys_max_cmd_len=16384 + # + if test -x /sbin/sysconfig; then + case `/sbin/sysconfig -q proc exec_disable_arg_limit` in + *1*) lt_cv_sys_max_cmd_len=-1 ;; + esac + fi + ;; + sco3.2v5*) + lt_cv_sys_max_cmd_len=102400 + ;; + sysv5* | sco5v6* | sysv4.2uw2*) + kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` + if test -n "$kargmax"; then + lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[ ]//'` + else + lt_cv_sys_max_cmd_len=32768 + fi + ;; + *) + lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` + if test -n "$lt_cv_sys_max_cmd_len" && \ + test undefined != "$lt_cv_sys_max_cmd_len"; then + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` + else + # Make teststring a little bigger before we do anything with it. + # a 1K string should be a reasonable start. + for i in 1 2 3 4 5 6 7 8 ; do + teststring=$teststring$teststring + done + SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} + # If test is not a shell built-in, we'll probably end up computing a + # maximum length that is only half of the actual maximum length, but + # we can't tell. + while { test "X"`env echo "$teststring$teststring" 2>/dev/null` \ + = "X$teststring$teststring"; } >/dev/null 2>&1 && + test $i != 17 # 1/2 MB should be enough + do + i=`expr $i + 1` + teststring=$teststring$teststring + done + # Only check the string length outside the loop. + lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` + teststring= + # Add a significant safety factor because C++ compilers can tack on + # massive amounts of additional arguments before passing them to the + # linker. It appears as though 1/2 is a usable value. + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` + fi + ;; + esac -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_debug" >&5 -$as_echo "$enable_debug" >&6; } - -if test "x$enable_debug" = "xyes" ; then - test -z "$ORIGINAL_CFLAGS" && CFLAGS=`echo ${CFLAGS} | sed -e 's/-O[1-9]\? //' -e 's/-O[1-9]\?$//'` - if test "$CC" = gcc; then - CFLAGS="$CFLAGS -g" - fi -#else -# CF_STRIP_G_OPT(CFLAGS) fi +if test -n $lt_cv_sys_max_cmd_len ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_max_cmd_len" >&5 +$as_echo "$lt_cv_sys_max_cmd_len" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5 +$as_echo "none" >&6; } +fi +max_cmd_len=$lt_cv_sys_max_cmd_len -GETTEXT_PACKAGE=guvcview -cat >>confdefs.h <<_ACEOF -#define GETTEXT_PACKAGE "$GETTEXT_PACKAGE" -_ACEOF +: ${CP="cp -f"} +: ${MV="mv -f"} +: ${RM="rm -f"} - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether NLS is requested" >&5 -$as_echo_n "checking whether NLS is requested... " >&6; } - # Check whether --enable-nls was given. -if test "${enable_nls+set}" = set; then : - enableval=$enable_nls; USE_NLS=$enableval +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands some XSI constructs" >&5 +$as_echo_n "checking whether the shell understands some XSI constructs... " >&6; } +# Try some XSI features +xsi_shell=no +( _lt_dummy="a/b/c" + test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \ + = c,a/b,b/c, \ + && eval 'test $(( 1 + 1 )) -eq 2 \ + && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ + && xsi_shell=yes +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xsi_shell" >&5 +$as_echo "$xsi_shell" >&6; } + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands \"+=\"" >&5 +$as_echo_n "checking whether the shell understands \"+=\"... " >&6; } +lt_shell_append=no +( foo=bar; set foo baz; eval "$1+=\$2" && test "$foo" = barbaz ) \ + >/dev/null 2>&1 \ + && lt_shell_append=yes +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_shell_append" >&5 +$as_echo "$lt_shell_append" >&6; } + + +if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then + lt_unset=unset else - USE_NLS=yes + lt_unset=false fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_NLS" >&5 -$as_echo "$USE_NLS" >&6; } -case "$am__api_version" in - 1.01234) - as_fn_error $? "Automake 1.5 or newer is required to use intltool" "$LINENO" 5 - ;; - *) - ;; +# test EBCDIC or ASCII +case `echo X|tr X '\101'` in + A) # ASCII based system + # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr + lt_SP2NL='tr \040 \012' + lt_NL2SP='tr \015\012 \040\040' + ;; + *) # EBCDIC based system + lt_SP2NL='tr \100 \n' + lt_NL2SP='tr \r\n \100\100' + ;; esac -if test -n "0.40"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for intltool >= 0.40" >&5 -$as_echo_n "checking for intltool >= 0.40... " >&6; } - INTLTOOL_REQUIRED_VERSION_AS_INT=`echo 0.40 | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'` - INTLTOOL_APPLIED_VERSION=`intltool-update --version | head -1 | cut -d" " -f3` - INTLTOOL_APPLIED_VERSION_AS_INT=`echo $INTLTOOL_APPLIED_VERSION | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'` - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_APPLIED_VERSION found" >&5 -$as_echo "$INTLTOOL_APPLIED_VERSION found" >&6; } - test "$INTLTOOL_APPLIED_VERSION_AS_INT" -ge "$INTLTOOL_REQUIRED_VERSION_AS_INT" || - as_fn_error $? "Your intltool is too old. You need intltool 0.40 or later." "$LINENO" 5 -fi -# Extract the first word of "intltool-update", so it can be a program name with args. -set dummy intltool-update; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_INTLTOOL_UPDATE+:} false; then : + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to $host format" >&5 +$as_echo_n "checking how to convert $build file names to $host format... " >&6; } +if ${lt_cv_to_host_file_cmd+:} false; then : $as_echo_n "(cached) " >&6 else - case $INTLTOOL_UPDATE in - [\\/]* | ?:[\\/]*) - ac_cv_path_INTLTOOL_UPDATE="$INTLTOOL_UPDATE" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_INTLTOOL_UPDATE="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS + case $host in + *-*-mingw* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 + ;; + *-*-cygwin* ) + lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 + ;; + * ) # otherwise, assume *nix + lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 + ;; + esac + ;; + *-*-cygwin* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin + ;; + *-*-cygwin* ) + lt_cv_to_host_file_cmd=func_convert_file_noop + ;; + * ) # otherwise, assume *nix + lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin + ;; + esac + ;; + * ) # unhandled hosts (and "normal" native builds) + lt_cv_to_host_file_cmd=func_convert_file_noop + ;; +esac - ;; +fi + +to_host_file_cmd=$lt_cv_to_host_file_cmd +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5 +$as_echo "$lt_cv_to_host_file_cmd" >&6; } + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5 +$as_echo_n "checking how to convert $build file names to toolchain format... " >&6; } +if ${lt_cv_to_tool_file_cmd+:} false; then : + $as_echo_n "(cached) " >&6 +else + #assume ordinary cross tools, or native build. +lt_cv_to_tool_file_cmd=func_convert_file_noop +case $host in + *-*-mingw* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 + ;; + esac + ;; esac + fi -INTLTOOL_UPDATE=$ac_cv_path_INTLTOOL_UPDATE -if test -n "$INTLTOOL_UPDATE"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_UPDATE" >&5 -$as_echo "$INTLTOOL_UPDATE" >&6; } + +to_tool_file_cmd=$lt_cv_to_tool_file_cmd +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5 +$as_echo "$lt_cv_to_tool_file_cmd" >&6; } + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5 +$as_echo_n "checking for $LD option to reload object files... " >&6; } +if ${lt_cv_ld_reload_flag+:} false; then : + $as_echo_n "(cached) " >&6 else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + lt_cv_ld_reload_flag='-r' fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_reload_flag" >&5 +$as_echo "$lt_cv_ld_reload_flag" >&6; } +reload_flag=$lt_cv_ld_reload_flag +case $reload_flag in +"" | " "*) ;; +*) reload_flag=" $reload_flag" ;; +esac +reload_cmds='$LD$reload_flag -o $output$reload_objs' +case $host_os in + cygwin* | mingw* | pw32* | cegcc*) + if test "$GCC" != yes; then + reload_cmds=false + fi + ;; + darwin*) + if test "$GCC" = yes; then + reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs' + else + reload_cmds='$LD$reload_flag -o $output$reload_objs' + fi + ;; +esac -# Extract the first word of "intltool-merge", so it can be a program name with args. -set dummy intltool-merge; ac_word=$2 + + + + + + + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args. +set dummy ${ac_tool_prefix}objdump; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_INTLTOOL_MERGE+:} false; then : +if ${ac_cv_prog_OBJDUMP+:} false; then : $as_echo_n "(cached) " >&6 else - case $INTLTOOL_MERGE in - [\\/]* | ?:[\\/]*) - ac_cv_path_INTLTOOL_MERGE="$INTLTOOL_MERGE" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR + if test -n "$OBJDUMP"; then + ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_INTLTOOL_MERGE="$as_dir/$ac_word$ac_exec_ext" + ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi @@ -4897,39 +5444,39 @@ done IFS=$as_save_IFS - ;; -esac fi -INTLTOOL_MERGE=$ac_cv_path_INTLTOOL_MERGE -if test -n "$INTLTOOL_MERGE"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_MERGE" >&5 -$as_echo "$INTLTOOL_MERGE" >&6; } +fi +OBJDUMP=$ac_cv_prog_OBJDUMP +if test -n "$OBJDUMP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5 +$as_echo "$OBJDUMP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi -# Extract the first word of "intltool-extract", so it can be a program name with args. -set dummy intltool-extract; ac_word=$2 +fi +if test -z "$ac_cv_prog_OBJDUMP"; then + ac_ct_OBJDUMP=$OBJDUMP + # Extract the first word of "objdump", so it can be a program name with args. +set dummy objdump; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_INTLTOOL_EXTRACT+:} false; then : +if ${ac_cv_prog_ac_ct_OBJDUMP+:} false; then : $as_echo_n "(cached) " >&6 else - case $INTLTOOL_EXTRACT in - [\\/]* | ?:[\\/]*) - ac_cv_path_INTLTOOL_EXTRACT="$INTLTOOL_EXTRACT" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR + if test -n "$ac_ct_OBJDUMP"; then + ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_INTLTOOL_EXTRACT="$as_dir/$ac_word$ac_exec_ext" + ac_cv_prog_ac_ct_OBJDUMP="objdump" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi @@ -4937,83 +5484,33 @@ done IFS=$as_save_IFS - ;; -esac fi -INTLTOOL_EXTRACT=$ac_cv_path_INTLTOOL_EXTRACT -if test -n "$INTLTOOL_EXTRACT"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_EXTRACT" >&5 -$as_echo "$INTLTOOL_EXTRACT" >&6; } +fi +ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP +if test -n "$ac_ct_OBJDUMP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5 +$as_echo "$ac_ct_OBJDUMP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi - -if test -z "$INTLTOOL_UPDATE" -o -z "$INTLTOOL_MERGE" -o -z "$INTLTOOL_EXTRACT"; then - as_fn_error $? "The intltool scripts were not found. Please install intltool." "$LINENO" 5 + if test "x$ac_ct_OBJDUMP" = x; then + OBJDUMP="false" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + OBJDUMP=$ac_ct_OBJDUMP + fi +else + OBJDUMP="$ac_cv_prog_OBJDUMP" fi - INTLTOOL_DESKTOP_RULE='%.desktop: %.desktop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' -INTLTOOL_DIRECTORY_RULE='%.directory: %.directory.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' - INTLTOOL_KEYS_RULE='%.keys: %.keys.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -k -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' - INTLTOOL_PROP_RULE='%.prop: %.prop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' - INTLTOOL_OAF_RULE='%.oaf: %.oaf.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -o -p $(top_srcdir)/po $< $@' - INTLTOOL_PONG_RULE='%.pong: %.pong.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' - INTLTOOL_SERVER_RULE='%.server: %.server.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -o -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' - INTLTOOL_SHEET_RULE='%.sheet: %.sheet.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' -INTLTOOL_SOUNDLIST_RULE='%.soundlist: %.soundlist.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' - INTLTOOL_UI_RULE='%.ui: %.ui.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' - INTLTOOL_XML_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' - INTLTOOL_XML_NOMERGE_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u /tmp $< $@' - INTLTOOL_XAM_RULE='%.xam: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' - INTLTOOL_KBD_RULE='%.kbd: %.kbd.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -m -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' - INTLTOOL_CAVES_RULE='%.caves: %.caves.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' - INTLTOOL_SCHEMAS_RULE='%.schemas: %.schemas.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -s -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' - INTLTOOL_THEME_RULE='%.theme: %.theme.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' - INTLTOOL_SERVICE_RULE='%.service: %.service.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' - INTLTOOL_POLICY_RULE='%.policy: %.policy.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +test -z "$OBJDUMP" && OBJDUMP=objdump @@ -5023,31 +5520,224 @@ +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5 +$as_echo_n "checking how to recognize dependent libraries... " >&6; } +if ${lt_cv_deplibs_check_method+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_file_magic_cmd='$MAGIC_CMD' +lt_cv_file_magic_test_file= +lt_cv_deplibs_check_method='unknown' +# Need to set the preceding variable on all platforms that support +# interlibrary dependencies. +# 'none' -- dependencies not supported. +# `unknown' -- same as none, but documents that we really don't know. +# 'pass_all' -- all dependencies passed with no checks. +# 'test_compile' -- check by making test program. +# 'file_magic [[regex]]' -- check by looking for files in library path +# which responds to the $file_magic_cmd with a given extended regex. +# If you have `file' or equivalent on your system and you're not sure +# whether `pass_all' will *always* work, you probably want this one. + +case $host_os in +aix[4-9]*) + lt_cv_deplibs_check_method=pass_all + ;; +beos*) + lt_cv_deplibs_check_method=pass_all + ;; +bsdi[45]*) + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)' + lt_cv_file_magic_cmd='/usr/bin/file -L' + lt_cv_file_magic_test_file=/shlib/libc.so + ;; +cygwin*) + # func_win32_libid is a shell function defined in ltmain.sh + lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' + lt_cv_file_magic_cmd='func_win32_libid' + ;; +mingw* | pw32*) + # Base MSYS/MinGW do not provide the 'file' command needed by + # func_win32_libid shell function, so use a weaker test based on 'objdump', + # unless we find 'file', for example because we are cross-compiling. + # func_win32_libid assumes BSD nm, so disallow it if using MS dumpbin. + if ( test "$lt_cv_nm_interface" = "BSD nm" && file / ) >/dev/null 2>&1; then + lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' + lt_cv_file_magic_cmd='func_win32_libid' + else + # Keep this pattern in sync with the one in func_win32_libid. + lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' + lt_cv_file_magic_cmd='$OBJDUMP -f' + fi + ;; +cegcc*) + # use the weaker test based on 'objdump'. See mingw*. + lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' + lt_cv_file_magic_cmd='$OBJDUMP -f' + ;; +darwin* | rhapsody*) + lt_cv_deplibs_check_method=pass_all + ;; +freebsd* | dragonfly*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then + case $host_cpu in + i*86 ) + # Not sure whether the presence of OpenBSD here was a mistake. + # Let's accept both of them until this is cleared up. + lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library' + lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` + ;; + esac + else + lt_cv_deplibs_check_method=pass_all + fi + ;; +haiku*) + lt_cv_deplibs_check_method=pass_all + ;; +hpux10.20* | hpux11*) + lt_cv_file_magic_cmd=/usr/bin/file + case $host_cpu in + ia64*) + lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64' + lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so + ;; + hppa*64*) + lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]' + lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl + ;; + *) + lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9]\.[0-9]) shared library' + lt_cv_file_magic_test_file=/usr/lib/libc.sl + ;; + esac + ;; +interix[3-9]*) + # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|\.a)$' + ;; +irix5* | irix6* | nonstopux*) + case $LD in + *-32|*"-32 ") libmagic=32-bit;; + *-n32|*"-n32 ") libmagic=N32;; + *-64|*"-64 ") libmagic=64-bit;; + *) libmagic=never-match;; + esac + lt_cv_deplibs_check_method=pass_all + ;; +# This must be glibc/ELF. +linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) + lt_cv_deplibs_check_method=pass_all + ;; +netbsd* | netbsdelf*-gnu) + if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' + else + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$' + fi + ;; +newos6*) + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)' + lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_test_file=/usr/lib/libnls.so + ;; +*nto* | *qnx*) + lt_cv_deplibs_check_method=pass_all + ;; +openbsd*) + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$' + else + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' + fi + ;; +osf3* | osf4* | osf5*) + lt_cv_deplibs_check_method=pass_all + ;; +rdos*) + lt_cv_deplibs_check_method=pass_all + ;; +solaris*) + lt_cv_deplibs_check_method=pass_all + ;; +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + lt_cv_deplibs_check_method=pass_all + ;; +sysv4 | sysv4.3*) + case $host_vendor in + motorola) + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]' + lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` + ;; + ncr) + lt_cv_deplibs_check_method=pass_all + ;; + sequent) + lt_cv_file_magic_cmd='/bin/file' + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' + ;; + sni) + lt_cv_file_magic_cmd='/bin/file' + lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib" + lt_cv_file_magic_test_file=/lib/libc.so + ;; + siemens) + lt_cv_deplibs_check_method=pass_all + ;; + pc) + lt_cv_deplibs_check_method=pass_all + ;; + esac + ;; +tpf*) + lt_cv_deplibs_check_method=pass_all + ;; +esac +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5 +$as_echo "$lt_cv_deplibs_check_method" >&6; } +file_magic_glob= +want_nocaseglob=no +if test "$build" = "$host"; then + case $host_os in + mingw* | pw32*) + if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then + want_nocaseglob=yes + else + file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[\1]\/[\1]\/g;/g"` + fi + ;; + esac +fi +file_magic_cmd=$lt_cv_file_magic_cmd +deplibs_check_method=$lt_cv_deplibs_check_method +test -z "$deplibs_check_method" && deplibs_check_method=unknown @@ -5070,27 +5760,25 @@ -# Check the gettext tools to make sure they are GNU -# Extract the first word of "xgettext", so it can be a program name with args. -set dummy xgettext; ac_word=$2 +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args. +set dummy ${ac_tool_prefix}dlltool; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_XGETTEXT+:} false; then : +if ${ac_cv_prog_DLLTOOL+:} false; then : $as_echo_n "(cached) " >&6 else - case $XGETTEXT in - [\\/]* | ?:[\\/]*) - ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR + if test -n "$DLLTOOL"; then + ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_XGETTEXT="$as_dir/$ac_word$ac_exec_ext" + ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi @@ -5098,39 +5786,39 @@ done IFS=$as_save_IFS - ;; -esac fi -XGETTEXT=$ac_cv_path_XGETTEXT -if test -n "$XGETTEXT"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XGETTEXT" >&5 -$as_echo "$XGETTEXT" >&6; } +fi +DLLTOOL=$ac_cv_prog_DLLTOOL +if test -n "$DLLTOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5 +$as_echo "$DLLTOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi -# Extract the first word of "msgmerge", so it can be a program name with args. -set dummy msgmerge; ac_word=$2 +fi +if test -z "$ac_cv_prog_DLLTOOL"; then + ac_ct_DLLTOOL=$DLLTOOL + # Extract the first word of "dlltool", so it can be a program name with args. +set dummy dlltool; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_MSGMERGE+:} false; then : +if ${ac_cv_prog_ac_ct_DLLTOOL+:} false; then : $as_echo_n "(cached) " >&6 else - case $MSGMERGE in - [\\/]* | ?:[\\/]*) - ac_cv_path_MSGMERGE="$MSGMERGE" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR + if test -n "$ac_ct_DLLTOOL"; then + ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_MSGMERGE="$as_dir/$ac_word$ac_exec_ext" + ac_cv_prog_ac_ct_DLLTOOL="dlltool" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi @@ -5138,39 +5826,102 @@ done IFS=$as_save_IFS - ;; -esac fi -MSGMERGE=$ac_cv_path_MSGMERGE -if test -n "$MSGMERGE"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGMERGE" >&5 -$as_echo "$MSGMERGE" >&6; } +fi +ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL +if test -n "$ac_ct_DLLTOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5 +$as_echo "$ac_ct_DLLTOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi - -# Extract the first word of "msgfmt", so it can be a program name with args. -set dummy msgfmt; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_MSGFMT+:} false; then : - $as_echo_n "(cached) " >&6 -else - case $MSGFMT in - [\\/]* | ?:[\\/]*) - ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path. - ;; + if test "x$ac_ct_DLLTOOL" = x; then + DLLTOOL="false" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + DLLTOOL=$ac_ct_DLLTOOL + fi +else + DLLTOOL="$ac_cv_prog_DLLTOOL" +fi + +test -z "$DLLTOOL" && DLLTOOL=dlltool + + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5 +$as_echo_n "checking how to associate runtime and link libraries... " >&6; } +if ${lt_cv_sharedlib_from_linklib_cmd+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_sharedlib_from_linklib_cmd='unknown' + +case $host_os in +cygwin* | mingw* | pw32* | cegcc*) + # two different shell functions defined in ltmain.sh + # decide which to use based on capabilities of $DLLTOOL + case `$DLLTOOL --help 2>&1` in + *--identify-strict*) + lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib + ;; *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR + lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback + ;; + esac + ;; +*) + # fallback: assume linklib IS sharedlib + lt_cv_sharedlib_from_linklib_cmd="$ECHO" + ;; +esac + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5 +$as_echo "$lt_cv_sharedlib_from_linklib_cmd" >&6; } +sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd +test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO + + + + + + + +if test -n "$ac_tool_prefix"; then + for ac_prog in ar + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_AR+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_MSGFMT="$as_dir/$ac_word$ac_exec_ext" + ac_cv_prog_AR="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi @@ -5178,20 +5929,7236 @@ done IFS=$as_save_IFS - ;; +fi +fi +AR=$ac_cv_prog_AR +if test -n "$AR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 +$as_echo "$AR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$AR" && break + done +fi +if test -z "$AR"; then + ac_ct_AR=$AR + for ac_prog in ar +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_AR+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_AR"; then + ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_AR="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_AR=$ac_cv_prog_ac_ct_AR +if test -n "$ac_ct_AR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 +$as_echo "$ac_ct_AR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$ac_ct_AR" && break +done + + if test "x$ac_ct_AR" = x; then + AR="false" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; esac + AR=$ac_ct_AR + fi fi -MSGFMT=$ac_cv_path_MSGFMT -if test -n "$MSGFMT"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGFMT" >&5 -$as_echo "$MSGFMT" >&6; } + +: ${AR=ar} +: ${AR_FLAGS=cru} + + + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5 +$as_echo_n "checking for archiver @FILE support... " >&6; } +if ${lt_cv_ar_at_file+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_ar_at_file=no + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + echo conftest.$ac_objext > conftest.lst + lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&5' + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 + (eval $lt_ar_try) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + if test "$ac_status" -eq 0; then + # Ensure the archiver fails upon bogus file names. + rm -f conftest.$ac_objext libconftest.a + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 + (eval $lt_ar_try) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + if test "$ac_status" -ne 0; then + lt_cv_ar_at_file=@ + fi + fi + rm -f conftest.* libconftest.a + +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5 +$as_echo "$lt_cv_ar_at_file" >&6; } + +if test "x$lt_cv_ar_at_file" = xno; then + archiver_list_spec= +else + archiver_list_spec=$lt_cv_ar_at_file +fi + + + + + + + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. +set dummy ${ac_tool_prefix}strip; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_STRIP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$STRIP"; then + ac_cv_prog_STRIP="$STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_STRIP="${ac_tool_prefix}strip" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +STRIP=$ac_cv_prog_STRIP +if test -n "$STRIP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 +$as_echo "$STRIP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_STRIP"; then + ac_ct_STRIP=$STRIP + # Extract the first word of "strip", so it can be a program name with args. +set dummy strip; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_STRIP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_STRIP"; then + ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_STRIP="strip" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP +if test -n "$ac_ct_STRIP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 +$as_echo "$ac_ct_STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi - -# Extract the first word of "gmsgfmt", so it can be a program name with args. + if test "x$ac_ct_STRIP" = x; then + STRIP=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + STRIP=$ac_ct_STRIP + fi +else + STRIP="$ac_cv_prog_STRIP" +fi + +test -z "$STRIP" && STRIP=: + + + + + + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. +set dummy ${ac_tool_prefix}ranlib; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_RANLIB+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +RANLIB=$ac_cv_prog_RANLIB +if test -n "$RANLIB"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5 +$as_echo "$RANLIB" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_RANLIB"; then + ac_ct_RANLIB=$RANLIB + # Extract the first word of "ranlib", so it can be a program name with args. +set dummy ranlib; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_RANLIB+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_RANLIB"; then + ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_RANLIB="ranlib" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB +if test -n "$ac_ct_RANLIB"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5 +$as_echo "$ac_ct_RANLIB" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_RANLIB" = x; then + RANLIB=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + RANLIB=$ac_ct_RANLIB + fi +else + RANLIB="$ac_cv_prog_RANLIB" +fi + +test -z "$RANLIB" && RANLIB=: + + + + + + +# Determine commands to create old-style static archives. +old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' +old_postinstall_cmds='chmod 644 $oldlib' +old_postuninstall_cmds= + +if test -n "$RANLIB"; then + case $host_os in + openbsd*) + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib" + ;; + *) + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib" + ;; + esac + old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib" +fi + +case $host_os in + darwin*) + lock_old_archive_extraction=yes ;; + *) + lock_old_archive_extraction=no ;; +esac + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +# If no C compiler was specified, use CC. +LTCC=${LTCC-"$CC"} + +# If no C compiler flags were specified, use CFLAGS. +LTCFLAGS=${LTCFLAGS-"$CFLAGS"} + +# Allow CC to be a program name with arguments. +compiler=$CC + + +# Check for command to grab the raw symbol name followed by C symbol from nm. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking command to parse $NM output from $compiler object" >&5 +$as_echo_n "checking command to parse $NM output from $compiler object... " >&6; } +if ${lt_cv_sys_global_symbol_pipe+:} false; then : + $as_echo_n "(cached) " >&6 +else + +# These are sane defaults that work on at least a few old systems. +# [They come from Ultrix. What could be older than Ultrix?!! ;)] + +# Character class describing NM global symbol codes. +symcode='[BCDEGRST]' + +# Regexp to match symbols that can be accessed directly from C. +sympat='\([_A-Za-z][_A-Za-z0-9]*\)' + +# Define system-specific variables. +case $host_os in +aix*) + symcode='[BCDT]' + ;; +cygwin* | mingw* | pw32* | cegcc*) + symcode='[ABCDGISTW]' + ;; +hpux*) + if test "$host_cpu" = ia64; then + symcode='[ABCDEGRST]' + fi + ;; +irix* | nonstopux*) + symcode='[BCDEGRST]' + ;; +osf*) + symcode='[BCDEGQRST]' + ;; +solaris*) + symcode='[BDRT]' + ;; +sco3.2v5*) + symcode='[DT]' + ;; +sysv4.2uw2*) + symcode='[DT]' + ;; +sysv5* | sco5v6* | unixware* | OpenUNIX*) + symcode='[ABDT]' + ;; +sysv4) + symcode='[DFNSTU]' + ;; +esac + +# If we're using GNU nm, then use its standard symbol codes. +case `$NM -V 2>&1` in +*GNU* | *'with BFD'*) + symcode='[ABCDGIRSTW]' ;; +esac + +# Transform an extracted symbol line into a proper C declaration. +# Some systems (esp. on ia64) link data and code symbols differently, +# so use this general approach. +lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" + +# Transform an extracted symbol line into symbol name and symbol address +lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'" +lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'" + +# Handle CRLF in mingw tool chain +opt_cr= +case $build_os in +mingw*) + opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp + ;; +esac + +# Try without a prefix underscore, then with it. +for ac_symprfx in "" "_"; do + + # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. + symxfrm="\\1 $ac_symprfx\\2 \\2" + + # Write the raw and C identifiers. + if test "$lt_cv_nm_interface" = "MS dumpbin"; then + # Fake it for dumpbin and say T for any non-static function + # and D for any global variable. + # Also find C++ and __fastcall symbols from MSVC++, + # which start with @ or ?. + lt_cv_sys_global_symbol_pipe="$AWK '"\ +" {last_section=section; section=\$ 3};"\ +" /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\ +" /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ +" \$ 0!~/External *\|/{next};"\ +" / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ +" {if(hide[section]) next};"\ +" {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\ +" {split(\$ 0, a, /\||\r/); split(a[2], s)};"\ +" s[1]~/^[@?]/{print s[1], s[1]; next};"\ +" s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\ +" ' prfx=^$ac_symprfx" + else + lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" + fi + lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" + + # Check to see that the pipe works correctly. + pipe_works=no + + rm -f conftest* + cat > conftest.$ac_ext <<_LT_EOF +#ifdef __cplusplus +extern "C" { +#endif +char nm_test_var; +void nm_test_func(void); +void nm_test_func(void){} +#ifdef __cplusplus +} +#endif +int main(){nm_test_var='a';nm_test_func();return(0);} +_LT_EOF + + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + # Now try to grab the symbols. + nlist=conftest.nm + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist\""; } >&5 + (eval $NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && test -s "$nlist"; then + # Try sorting and uniquifying the output. + if sort "$nlist" | uniq > "$nlist"T; then + mv -f "$nlist"T "$nlist" + else + rm -f "$nlist"T + fi + + # Make sure that we snagged all the symbols we need. + if $GREP ' nm_test_var$' "$nlist" >/dev/null; then + if $GREP ' nm_test_func$' "$nlist" >/dev/null; then + cat <<_LT_EOF > conftest.$ac_ext +/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ +#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) +/* DATA imports from DLLs on WIN32 con't be const, because runtime + relocations are performed -- see ld's documentation on pseudo-relocs. */ +# define LT_DLSYM_CONST +#elif defined(__osf__) +/* This system does not cope well with relocations in const data. */ +# define LT_DLSYM_CONST +#else +# define LT_DLSYM_CONST const +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +_LT_EOF + # Now generate the symbol file. + eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' + + cat <<_LT_EOF >> conftest.$ac_ext + +/* The mapping between symbol names and symbols. */ +LT_DLSYM_CONST struct { + const char *name; + void *address; +} +lt__PROGRAM__LTX_preloaded_symbols[] = +{ + { "@PROGRAM@", (void *) 0 }, +_LT_EOF + $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext + cat <<\_LT_EOF >> conftest.$ac_ext + {0, (void *) 0} +}; + +/* This works around a problem in FreeBSD linker */ +#ifdef FREEBSD_WORKAROUND +static const void *lt_preloaded_setup() { + return lt__PROGRAM__LTX_preloaded_symbols; +} +#endif + +#ifdef __cplusplus +} +#endif +_LT_EOF + # Now try linking the two files. + mv conftest.$ac_objext conftstm.$ac_objext + lt_globsym_save_LIBS=$LIBS + lt_globsym_save_CFLAGS=$CFLAGS + LIBS="conftstm.$ac_objext" + CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag" + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 + (eval $ac_link) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && test -s conftest${ac_exeext}; then + pipe_works=yes + fi + LIBS=$lt_globsym_save_LIBS + CFLAGS=$lt_globsym_save_CFLAGS + else + echo "cannot find nm_test_func in $nlist" >&5 + fi + else + echo "cannot find nm_test_var in $nlist" >&5 + fi + else + echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5 + fi + else + echo "$progname: failed program was:" >&5 + cat conftest.$ac_ext >&5 + fi + rm -rf conftest* conftst* + + # Do not use the global_symbol_pipe unless it works. + if test "$pipe_works" = yes; then + break + else + lt_cv_sys_global_symbol_pipe= + fi +done + +fi + +if test -z "$lt_cv_sys_global_symbol_pipe"; then + lt_cv_sys_global_symbol_to_cdecl= +fi +if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: failed" >&5 +$as_echo "failed" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5 +$as_echo "ok" >&6; } +fi + +# Response file support. +if test "$lt_cv_nm_interface" = "MS dumpbin"; then + nm_file_list_spec='@' +elif $NM --help 2>/dev/null | grep '[@]FILE' >/dev/null; then + nm_file_list_spec='@' +fi + + + + + + + + + + + + + + + + + + + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5 +$as_echo_n "checking for sysroot... " >&6; } + +# Check whether --with-sysroot was given. +if test "${with_sysroot+set}" = set; then : + withval=$with_sysroot; +else + with_sysroot=no +fi + + +lt_sysroot= +case ${with_sysroot} in #( + yes) + if test "$GCC" = yes; then + lt_sysroot=`$CC --print-sysroot 2>/dev/null` + fi + ;; #( + /*) + lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"` + ;; #( + no|'') + ;; #( + *) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${with_sysroot}" >&5 +$as_echo "${with_sysroot}" >&6; } + as_fn_error $? "The sysroot must be an absolute path." "$LINENO" 5 + ;; +esac + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5 +$as_echo "${lt_sysroot:-no}" >&6; } + + + + + +# Check whether --enable-libtool-lock was given. +if test "${enable_libtool_lock+set}" = set; then : + enableval=$enable_libtool_lock; +fi + +test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes + +# Some flags need to be propagated to the compiler or linker for good +# libtool support. +case $host in +ia64-*-hpux*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + case `/usr/bin/file conftest.$ac_objext` in + *ELF-32*) + HPUX_IA64_MODE="32" + ;; + *ELF-64*) + HPUX_IA64_MODE="64" + ;; + esac + fi + rm -rf conftest* + ;; +*-*-irix6*) + # Find out which ABI we are using. + echo '#line '$LINENO' "configure"' > conftest.$ac_ext + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + if test "$lt_cv_prog_gnu_ld" = yes; then + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + LD="${LD-ld} -melf32bsmip" + ;; + *N32*) + LD="${LD-ld} -melf32bmipn32" + ;; + *64-bit*) + LD="${LD-ld} -melf64bmip" + ;; + esac + else + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + LD="${LD-ld} -32" + ;; + *N32*) + LD="${LD-ld} -n32" + ;; + *64-bit*) + LD="${LD-ld} -64" + ;; + esac + fi + fi + rm -rf conftest* + ;; + +x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \ +s390*-*linux*|s390*-*tpf*|sparc*-*linux*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + case `/usr/bin/file conftest.o` in + *32-bit*) + case $host in + x86_64-*kfreebsd*-gnu) + LD="${LD-ld} -m elf_i386_fbsd" + ;; + x86_64-*linux*) + case `/usr/bin/file conftest.o` in + *x86-64*) + LD="${LD-ld} -m elf32_x86_64" + ;; + *) + LD="${LD-ld} -m elf_i386" + ;; + esac + ;; + powerpc64le-*) + LD="${LD-ld} -m elf32lppclinux" + ;; + powerpc64-*) + LD="${LD-ld} -m elf32ppclinux" + ;; + s390x-*linux*) + LD="${LD-ld} -m elf_s390" + ;; + sparc64-*linux*) + LD="${LD-ld} -m elf32_sparc" + ;; + esac + ;; + *64-bit*) + case $host in + x86_64-*kfreebsd*-gnu) + LD="${LD-ld} -m elf_x86_64_fbsd" + ;; + x86_64-*linux*) + LD="${LD-ld} -m elf_x86_64" + ;; + powerpcle-*) + LD="${LD-ld} -m elf64lppc" + ;; + powerpc-*) + LD="${LD-ld} -m elf64ppc" + ;; + s390*-*linux*|s390*-*tpf*) + LD="${LD-ld} -m elf64_s390" + ;; + sparc*-*linux*) + LD="${LD-ld} -m elf64_sparc" + ;; + esac + ;; + esac + fi + rm -rf conftest* + ;; + +*-*-sco3.2v5*) + # On SCO OpenServer 5, we need -belf to get full-featured binaries. + SAVE_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -belf" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler needs -belf" >&5 +$as_echo_n "checking whether the C compiler needs -belf... " >&6; } +if ${lt_cv_cc_needs_belf+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + lt_cv_cc_needs_belf=yes +else + lt_cv_cc_needs_belf=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cc_needs_belf" >&5 +$as_echo "$lt_cv_cc_needs_belf" >&6; } + if test x"$lt_cv_cc_needs_belf" != x"yes"; then + # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf + CFLAGS="$SAVE_CFLAGS" + fi + ;; +*-*solaris*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + case `/usr/bin/file conftest.o` in + *64-bit*) + case $lt_cv_prog_gnu_ld in + yes*) + case $host in + i?86-*-solaris*) + LD="${LD-ld} -m elf_x86_64" + ;; + sparc*-*-solaris*) + LD="${LD-ld} -m elf64_sparc" + ;; + esac + # GNU ld 2.21 introduced _sol2 emulations. Use them if available. + if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then + LD="${LD-ld}_sol2" + fi + ;; + *) + if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then + LD="${LD-ld} -64" + fi + ;; + esac + ;; + esac + fi + rm -rf conftest* + ;; +esac + +need_locks="$enable_libtool_lock" + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}mt", so it can be a program name with args. +set dummy ${ac_tool_prefix}mt; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_MANIFEST_TOOL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$MANIFEST_TOOL"; then + ac_cv_prog_MANIFEST_TOOL="$MANIFEST_TOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_MANIFEST_TOOL="${ac_tool_prefix}mt" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +MANIFEST_TOOL=$ac_cv_prog_MANIFEST_TOOL +if test -n "$MANIFEST_TOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MANIFEST_TOOL" >&5 +$as_echo "$MANIFEST_TOOL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_MANIFEST_TOOL"; then + ac_ct_MANIFEST_TOOL=$MANIFEST_TOOL + # Extract the first word of "mt", so it can be a program name with args. +set dummy mt; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_MANIFEST_TOOL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_MANIFEST_TOOL"; then + ac_cv_prog_ac_ct_MANIFEST_TOOL="$ac_ct_MANIFEST_TOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_MANIFEST_TOOL="mt" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_MANIFEST_TOOL=$ac_cv_prog_ac_ct_MANIFEST_TOOL +if test -n "$ac_ct_MANIFEST_TOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MANIFEST_TOOL" >&5 +$as_echo "$ac_ct_MANIFEST_TOOL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_MANIFEST_TOOL" = x; then + MANIFEST_TOOL=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + MANIFEST_TOOL=$ac_ct_MANIFEST_TOOL + fi +else + MANIFEST_TOOL="$ac_cv_prog_MANIFEST_TOOL" +fi + +test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $MANIFEST_TOOL is a manifest tool" >&5 +$as_echo_n "checking if $MANIFEST_TOOL is a manifest tool... " >&6; } +if ${lt_cv_path_mainfest_tool+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_path_mainfest_tool=no + echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&5 + $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out + cat conftest.err >&5 + if $GREP 'Manifest Tool' conftest.out > /dev/null; then + lt_cv_path_mainfest_tool=yes + fi + rm -f conftest* +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5 +$as_echo "$lt_cv_path_mainfest_tool" >&6; } +if test "x$lt_cv_path_mainfest_tool" != xyes; then + MANIFEST_TOOL=: +fi + + + + + + + case $host_os in + rhapsody* | darwin*) + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}dsymutil", so it can be a program name with args. +set dummy ${ac_tool_prefix}dsymutil; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_DSYMUTIL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$DSYMUTIL"; then + ac_cv_prog_DSYMUTIL="$DSYMUTIL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +DSYMUTIL=$ac_cv_prog_DSYMUTIL +if test -n "$DSYMUTIL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL" >&5 +$as_echo "$DSYMUTIL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_DSYMUTIL"; then + ac_ct_DSYMUTIL=$DSYMUTIL + # Extract the first word of "dsymutil", so it can be a program name with args. +set dummy dsymutil; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_DSYMUTIL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_DSYMUTIL"; then + ac_cv_prog_ac_ct_DSYMUTIL="$ac_ct_DSYMUTIL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_DSYMUTIL="dsymutil" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL +if test -n "$ac_ct_DSYMUTIL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DSYMUTIL" >&5 +$as_echo "$ac_ct_DSYMUTIL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_DSYMUTIL" = x; then + DSYMUTIL=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + DSYMUTIL=$ac_ct_DSYMUTIL + fi +else + DSYMUTIL="$ac_cv_prog_DSYMUTIL" +fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}nmedit", so it can be a program name with args. +set dummy ${ac_tool_prefix}nmedit; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_NMEDIT+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$NMEDIT"; then + ac_cv_prog_NMEDIT="$NMEDIT" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +NMEDIT=$ac_cv_prog_NMEDIT +if test -n "$NMEDIT"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NMEDIT" >&5 +$as_echo "$NMEDIT" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_NMEDIT"; then + ac_ct_NMEDIT=$NMEDIT + # Extract the first word of "nmedit", so it can be a program name with args. +set dummy nmedit; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_NMEDIT+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_NMEDIT"; then + ac_cv_prog_ac_ct_NMEDIT="$ac_ct_NMEDIT" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_NMEDIT="nmedit" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_NMEDIT=$ac_cv_prog_ac_ct_NMEDIT +if test -n "$ac_ct_NMEDIT"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_NMEDIT" >&5 +$as_echo "$ac_ct_NMEDIT" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_NMEDIT" = x; then + NMEDIT=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + NMEDIT=$ac_ct_NMEDIT + fi +else + NMEDIT="$ac_cv_prog_NMEDIT" +fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}lipo", so it can be a program name with args. +set dummy ${ac_tool_prefix}lipo; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_LIPO+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$LIPO"; then + ac_cv_prog_LIPO="$LIPO" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_LIPO="${ac_tool_prefix}lipo" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +LIPO=$ac_cv_prog_LIPO +if test -n "$LIPO"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIPO" >&5 +$as_echo "$LIPO" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_LIPO"; then + ac_ct_LIPO=$LIPO + # Extract the first word of "lipo", so it can be a program name with args. +set dummy lipo; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_LIPO+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_LIPO"; then + ac_cv_prog_ac_ct_LIPO="$ac_ct_LIPO" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_LIPO="lipo" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_LIPO=$ac_cv_prog_ac_ct_LIPO +if test -n "$ac_ct_LIPO"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LIPO" >&5 +$as_echo "$ac_ct_LIPO" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_LIPO" = x; then + LIPO=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + LIPO=$ac_ct_LIPO + fi +else + LIPO="$ac_cv_prog_LIPO" +fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}otool", so it can be a program name with args. +set dummy ${ac_tool_prefix}otool; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_OTOOL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$OTOOL"; then + ac_cv_prog_OTOOL="$OTOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_OTOOL="${ac_tool_prefix}otool" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +OTOOL=$ac_cv_prog_OTOOL +if test -n "$OTOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL" >&5 +$as_echo "$OTOOL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_OTOOL"; then + ac_ct_OTOOL=$OTOOL + # Extract the first word of "otool", so it can be a program name with args. +set dummy otool; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_OTOOL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_OTOOL"; then + ac_cv_prog_ac_ct_OTOOL="$ac_ct_OTOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_OTOOL="otool" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_OTOOL=$ac_cv_prog_ac_ct_OTOOL +if test -n "$ac_ct_OTOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL" >&5 +$as_echo "$ac_ct_OTOOL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_OTOOL" = x; then + OTOOL=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + OTOOL=$ac_ct_OTOOL + fi +else + OTOOL="$ac_cv_prog_OTOOL" +fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}otool64", so it can be a program name with args. +set dummy ${ac_tool_prefix}otool64; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_OTOOL64+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$OTOOL64"; then + ac_cv_prog_OTOOL64="$OTOOL64" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_OTOOL64="${ac_tool_prefix}otool64" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +OTOOL64=$ac_cv_prog_OTOOL64 +if test -n "$OTOOL64"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL64" >&5 +$as_echo "$OTOOL64" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_OTOOL64"; then + ac_ct_OTOOL64=$OTOOL64 + # Extract the first word of "otool64", so it can be a program name with args. +set dummy otool64; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_OTOOL64+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_OTOOL64"; then + ac_cv_prog_ac_ct_OTOOL64="$ac_ct_OTOOL64" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_OTOOL64="otool64" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_OTOOL64=$ac_cv_prog_ac_ct_OTOOL64 +if test -n "$ac_ct_OTOOL64"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL64" >&5 +$as_echo "$ac_ct_OTOOL64" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_OTOOL64" = x; then + OTOOL64=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + OTOOL64=$ac_ct_OTOOL64 + fi +else + OTOOL64="$ac_cv_prog_OTOOL64" +fi + + + + + + + + + + + + + + + + + + + + + + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -single_module linker flag" >&5 +$as_echo_n "checking for -single_module linker flag... " >&6; } +if ${lt_cv_apple_cc_single_mod+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_apple_cc_single_mod=no + if test -z "${LT_MULTI_MODULE}"; then + # By default we will add the -single_module flag. You can override + # by either setting the environment variable LT_MULTI_MODULE + # non-empty at configure time, or by adding -multi_module to the + # link flags. + rm -rf libconftest.dylib* + echo "int foo(void){return 1;}" > conftest.c + echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ +-dynamiclib -Wl,-single_module conftest.c" >&5 + $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ + -dynamiclib -Wl,-single_module conftest.c 2>conftest.err + _lt_result=$? + # If there is a non-empty error log, and "single_module" + # appears in it, assume the flag caused a linker warning + if test -s conftest.err && $GREP single_module conftest.err; then + cat conftest.err >&5 + # Otherwise, if the output was created with a 0 exit code from + # the compiler, it worked. + elif test -f libconftest.dylib && test $_lt_result -eq 0; then + lt_cv_apple_cc_single_mod=yes + else + cat conftest.err >&5 + fi + rm -rf libconftest.dylib* + rm -f conftest.* + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5 +$as_echo "$lt_cv_apple_cc_single_mod" >&6; } + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5 +$as_echo_n "checking for -exported_symbols_list linker flag... " >&6; } +if ${lt_cv_ld_exported_symbols_list+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_ld_exported_symbols_list=no + save_LDFLAGS=$LDFLAGS + echo "_main" > conftest.sym + LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + lt_cv_ld_exported_symbols_list=yes +else + lt_cv_ld_exported_symbols_list=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS="$save_LDFLAGS" + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5 +$as_echo "$lt_cv_ld_exported_symbols_list" >&6; } + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -force_load linker flag" >&5 +$as_echo_n "checking for -force_load linker flag... " >&6; } +if ${lt_cv_ld_force_load+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_ld_force_load=no + cat > conftest.c << _LT_EOF +int forced_loaded() { return 2;} +_LT_EOF + echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&5 + $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5 + echo "$AR cru libconftest.a conftest.o" >&5 + $AR cru libconftest.a conftest.o 2>&5 + echo "$RANLIB libconftest.a" >&5 + $RANLIB libconftest.a 2>&5 + cat > conftest.c << _LT_EOF +int main() { return 0;} +_LT_EOF + echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&5 + $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err + _lt_result=$? + if test -s conftest.err && $GREP force_load conftest.err; then + cat conftest.err >&5 + elif test -f conftest && test $_lt_result -eq 0 && $GREP forced_load conftest >/dev/null 2>&1 ; then + lt_cv_ld_force_load=yes + else + cat conftest.err >&5 + fi + rm -f conftest.err libconftest.a conftest conftest.c + rm -rf conftest.dSYM + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_force_load" >&5 +$as_echo "$lt_cv_ld_force_load" >&6; } + case $host_os in + rhapsody* | darwin1.[012]) + _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;; + darwin1.*) + _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; + darwin*) # darwin 5.x on + # if running on 10.5 or later, the deployment target defaults + # to the OS version, if on x86, and 10.4, the deployment + # target defaults to 10.4. Don't you love it? + case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in + 10.0,*86*-darwin8*|10.0,*-darwin[91]*) + _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; + 10.[012]*) + _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; + 10.*) + _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; + esac + ;; + esac + if test "$lt_cv_apple_cc_single_mod" = "yes"; then + _lt_dar_single_mod='$single_module' + fi + if test "$lt_cv_ld_exported_symbols_list" = "yes"; then + _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym' + else + _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}' + fi + if test "$DSYMUTIL" != ":" && test "$lt_cv_ld_force_load" = "no"; then + _lt_dsymutil='~$DSYMUTIL $lib || :' + else + _lt_dsymutil= + fi + ;; + esac + +# On IRIX 5.3, sys/types and inttypes.h are conflicting. +for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ + inttypes.h stdint.h unistd.h +do : + as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default +" +if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + + +for ac_header in dlfcn.h +do : + ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default +" +if test "x$ac_cv_header_dlfcn_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_DLFCN_H 1 +_ACEOF + +fi + +done + + + + + +# Set options + + + + enable_dlopen=no + + + enable_win32_dll=no + + + # Check whether --enable-shared was given. +if test "${enable_shared+set}" = set; then : + enableval=$enable_shared; p=${PACKAGE-default} + case $enableval in + yes) enable_shared=yes ;; + no) enable_shared=no ;; + *) + enable_shared=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for pkg in $enableval; do + IFS="$lt_save_ifs" + if test "X$pkg" = "X$p"; then + enable_shared=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac +else + enable_shared=yes +fi + + + + + + + + + + # Check whether --enable-static was given. +if test "${enable_static+set}" = set; then : + enableval=$enable_static; p=${PACKAGE-default} + case $enableval in + yes) enable_static=yes ;; + no) enable_static=no ;; + *) + enable_static=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for pkg in $enableval; do + IFS="$lt_save_ifs" + if test "X$pkg" = "X$p"; then + enable_static=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac +else + enable_static=yes +fi + + + + + + + + + + +# Check whether --with-pic was given. +if test "${with_pic+set}" = set; then : + withval=$with_pic; lt_p=${PACKAGE-default} + case $withval in + yes|no) pic_mode=$withval ;; + *) + pic_mode=default + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for lt_pkg in $withval; do + IFS="$lt_save_ifs" + if test "X$lt_pkg" = "X$lt_p"; then + pic_mode=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac +else + pic_mode=default +fi + + +test -z "$pic_mode" && pic_mode=default + + + + + + + + # Check whether --enable-fast-install was given. +if test "${enable_fast_install+set}" = set; then : + enableval=$enable_fast_install; p=${PACKAGE-default} + case $enableval in + yes) enable_fast_install=yes ;; + no) enable_fast_install=no ;; + *) + enable_fast_install=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for pkg in $enableval; do + IFS="$lt_save_ifs" + if test "X$pkg" = "X$p"; then + enable_fast_install=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac +else + enable_fast_install=yes +fi + + + + + + + + + + + +# This can be used to rebuild libtool when needed +LIBTOOL_DEPS="$ltmain" + +# Always use our own libtool. +LIBTOOL='$(SHELL) $(top_builddir)/libtool' + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +test -z "$LN_S" && LN_S="ln -s" + + + + + + + + + + + + + + +if test -n "${ZSH_VERSION+set}" ; then + setopt NO_GLOB_SUBST +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for objdir" >&5 +$as_echo_n "checking for objdir... " >&6; } +if ${lt_cv_objdir+:} false; then : + $as_echo_n "(cached) " >&6 +else + rm -f .libs 2>/dev/null +mkdir .libs 2>/dev/null +if test -d .libs; then + lt_cv_objdir=.libs +else + # MS-DOS does not allow filenames that begin with a dot. + lt_cv_objdir=_libs +fi +rmdir .libs 2>/dev/null +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_objdir" >&5 +$as_echo "$lt_cv_objdir" >&6; } +objdir=$lt_cv_objdir + + + + + +cat >>confdefs.h <<_ACEOF +#define LT_OBJDIR "$lt_cv_objdir/" +_ACEOF + + + + +case $host_os in +aix3*) + # AIX sometimes has problems with the GCC collect2 program. For some + # reason, if we set the COLLECT_NAMES environment variable, the problems + # vanish in a puff of smoke. + if test "X${COLLECT_NAMES+set}" != Xset; then + COLLECT_NAMES= + export COLLECT_NAMES + fi + ;; +esac + +# Global variables: +ofile=libtool +can_build_shared=yes + +# All known linkers require a `.a' archive for static linking (except MSVC, +# which needs '.lib'). +libext=a + +with_gnu_ld="$lt_cv_prog_gnu_ld" + +old_CC="$CC" +old_CFLAGS="$CFLAGS" + +# Set sane defaults for various variables +test -z "$CC" && CC=cc +test -z "$LTCC" && LTCC=$CC +test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS +test -z "$LD" && LD=ld +test -z "$ac_objext" && ac_objext=o + +for cc_temp in $compiler""; do + case $cc_temp in + compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; + distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; + \-*) ;; + *) break;; + esac +done +cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` + + +# Only perform the check for file, if the check method requires it +test -z "$MAGIC_CMD" && MAGIC_CMD=file +case $deplibs_check_method in +file_magic*) + if test "$file_magic_cmd" = '$MAGIC_CMD'; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${ac_tool_prefix}file" >&5 +$as_echo_n "checking for ${ac_tool_prefix}file... " >&6; } +if ${lt_cv_path_MAGIC_CMD+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $MAGIC_CMD in +[\\/*] | ?:[\\/]*) + lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. + ;; +*) + lt_save_MAGIC_CMD="$MAGIC_CMD" + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" + for ac_dir in $ac_dummy; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/${ac_tool_prefix}file; then + lt_cv_path_MAGIC_CMD="$ac_dir/${ac_tool_prefix}file" + if test -n "$file_magic_test_file"; then + case $deplibs_check_method in + "file_magic "*) + file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` + MAGIC_CMD="$lt_cv_path_MAGIC_CMD" + if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | + $EGREP "$file_magic_regex" > /dev/null; then + : + else + cat <<_LT_EOF 1>&2 + +*** Warning: the command libtool uses to detect shared libraries, +*** $file_magic_cmd, produces output that libtool cannot recognize. +*** The result is that libtool may fail to recognize shared libraries +*** as such. This will affect the creation of libtool libraries that +*** depend on shared libraries, but programs linked with such libtool +*** libraries will work regardless of this problem. Nevertheless, you +*** may want to report the problem to your system manager and/or to +*** bug-libtool@gnu.org + +_LT_EOF + fi ;; + esac + fi + break + fi + done + IFS="$lt_save_ifs" + MAGIC_CMD="$lt_save_MAGIC_CMD" + ;; +esac +fi + +MAGIC_CMD="$lt_cv_path_MAGIC_CMD" +if test -n "$MAGIC_CMD"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 +$as_echo "$MAGIC_CMD" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + + + +if test -z "$lt_cv_path_MAGIC_CMD"; then + if test -n "$ac_tool_prefix"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for file" >&5 +$as_echo_n "checking for file... " >&6; } +if ${lt_cv_path_MAGIC_CMD+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $MAGIC_CMD in +[\\/*] | ?:[\\/]*) + lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. + ;; +*) + lt_save_MAGIC_CMD="$MAGIC_CMD" + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" + for ac_dir in $ac_dummy; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/file; then + lt_cv_path_MAGIC_CMD="$ac_dir/file" + if test -n "$file_magic_test_file"; then + case $deplibs_check_method in + "file_magic "*) + file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` + MAGIC_CMD="$lt_cv_path_MAGIC_CMD" + if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | + $EGREP "$file_magic_regex" > /dev/null; then + : + else + cat <<_LT_EOF 1>&2 + +*** Warning: the command libtool uses to detect shared libraries, +*** $file_magic_cmd, produces output that libtool cannot recognize. +*** The result is that libtool may fail to recognize shared libraries +*** as such. This will affect the creation of libtool libraries that +*** depend on shared libraries, but programs linked with such libtool +*** libraries will work regardless of this problem. Nevertheless, you +*** may want to report the problem to your system manager and/or to +*** bug-libtool@gnu.org + +_LT_EOF + fi ;; + esac + fi + break + fi + done + IFS="$lt_save_ifs" + MAGIC_CMD="$lt_save_MAGIC_CMD" + ;; +esac +fi + +MAGIC_CMD="$lt_cv_path_MAGIC_CMD" +if test -n "$MAGIC_CMD"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 +$as_echo "$MAGIC_CMD" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + else + MAGIC_CMD=: + fi +fi + + fi + ;; +esac + +# Use C for the default configuration in the libtool script + +lt_save_CC="$CC" +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +# Source file extension for C test sources. +ac_ext=c + +# Object file extension for compiled C test sources. +objext=o +objext=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code="int some_variable = 0;" + +# Code to be used in simple link tests +lt_simple_link_test_code='int main(){return(0);}' + + + + + + + +# If no C compiler was specified, use CC. +LTCC=${LTCC-"$CC"} + +# If no C compiler flags were specified, use CFLAGS. +LTCFLAGS=${LTCFLAGS-"$CFLAGS"} + +# Allow CC to be a program name with arguments. +compiler=$CC + +# Save the default compiler, since it gets overwritten when the other +# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. +compiler_DEFAULT=$CC + +# save warnings/boilerplate of simple test code +ac_outfile=conftest.$ac_objext +echo "$lt_simple_compile_test_code" >conftest.$ac_ext +eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_compiler_boilerplate=`cat conftest.err` +$RM conftest* + +ac_outfile=conftest.$ac_objext +echo "$lt_simple_link_test_code" >conftest.$ac_ext +eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_linker_boilerplate=`cat conftest.err` +$RM -r conftest* + + +## CAVEAT EMPTOR: +## There is no encapsulation within the following macros, do not change +## the running order or otherwise move them around unless you know exactly +## what you are doing... +if test -n "$compiler"; then + +lt_prog_compiler_no_builtin_flag= + +if test "$GCC" = yes; then + case $cc_basename in + nvcc*) + lt_prog_compiler_no_builtin_flag=' -Xcompiler -fno-builtin' ;; + *) + lt_prog_compiler_no_builtin_flag=' -fno-builtin' ;; + esac + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 +$as_echo_n "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; } +if ${lt_cv_prog_compiler_rtti_exceptions+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_rtti_exceptions=no + ac_outfile=conftest.$ac_objext + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + lt_compiler_flag="-fno-rtti -fno-exceptions" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + # The option is referenced via a variable to avoid confusing sed. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings other than the usual output. + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then + lt_cv_prog_compiler_rtti_exceptions=yes + fi + fi + $RM conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 +$as_echo "$lt_cv_prog_compiler_rtti_exceptions" >&6; } + +if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then + lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions" +else + : +fi + +fi + + + + + + + lt_prog_compiler_wl= +lt_prog_compiler_pic= +lt_prog_compiler_static= + + + if test "$GCC" = yes; then + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_static='-static' + + case $host_os in + aix*) + # All AIX code is PIC. + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + lt_prog_compiler_static='-Bstatic' + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + lt_prog_compiler_pic='-fPIC' + ;; + m68k) + # FIXME: we need at least 68020 code to build shared libraries, but + # adding the `-m68020' flag to GCC prevents building anything better, + # like `-m68040'. + lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4' + ;; + esac + ;; + + beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) + # PIC is the default for these OSes. + ;; + + mingw* | cygwin* | pw32* | os2* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + # Although the cygwin gcc ignores -fPIC, still need this for old-style + # (--disable-auto-import) libraries + lt_prog_compiler_pic='-DDLL_EXPORT' + ;; + + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + lt_prog_compiler_pic='-fno-common' + ;; + + haiku*) + # PIC is the default for Haiku. + # The "-static" flag exists, but is broken. + lt_prog_compiler_static= + ;; + + hpux*) + # PIC is the default for 64-bit PA HP-UX, but not for 32-bit + # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag + # sets the default TLS model and affects inlining. + case $host_cpu in + hppa*64*) + # +Z the default + ;; + *) + lt_prog_compiler_pic='-fPIC' + ;; + esac + ;; + + interix[3-9]*) + # Interix 3.x gcc -fpic/-fPIC options generate broken code. + # Instead, we relocate shared libraries at runtime. + ;; + + msdosdjgpp*) + # Just because we use GCC doesn't mean we suddenly get shared libraries + # on systems that don't support them. + lt_prog_compiler_can_build_shared=no + enable_shared=no + ;; + + *nto* | *qnx*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + lt_prog_compiler_pic='-fPIC -shared' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + lt_prog_compiler_pic=-Kconform_pic + fi + ;; + + *) + lt_prog_compiler_pic='-fPIC' + ;; + esac + + case $cc_basename in + nvcc*) # Cuda Compiler Driver 2.2 + lt_prog_compiler_wl='-Xlinker ' + if test -n "$lt_prog_compiler_pic"; then + lt_prog_compiler_pic="-Xcompiler $lt_prog_compiler_pic" + fi + ;; + esac + else + # PORTME Check for flag to pass linker flags through the system compiler. + case $host_os in + aix*) + lt_prog_compiler_wl='-Wl,' + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + lt_prog_compiler_static='-Bstatic' + else + lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp' + fi + ;; + + mingw* | cygwin* | pw32* | os2* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + lt_prog_compiler_pic='-DDLL_EXPORT' + ;; + + hpux9* | hpux10* | hpux11*) + lt_prog_compiler_wl='-Wl,' + # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but + # not for PA HP-UX. + case $host_cpu in + hppa*64*|ia64*) + # +Z the default + ;; + *) + lt_prog_compiler_pic='+Z' + ;; + esac + # Is there a better lt_prog_compiler_static that works with the bundled CC? + lt_prog_compiler_static='${wl}-a ${wl}archive' + ;; + + irix5* | irix6* | nonstopux*) + lt_prog_compiler_wl='-Wl,' + # PIC (with -KPIC) is the default. + lt_prog_compiler_static='-non_shared' + ;; + + linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) + case $cc_basename in + # old Intel for x86_64 which still supported -KPIC. + ecc*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-static' + ;; + # icc used to be incompatible with GCC. + # ICC 10 doesn't accept -KPIC any more. + icc* | ifort*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fPIC' + lt_prog_compiler_static='-static' + ;; + # Lahey Fortran 8.1. + lf95*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='--shared' + lt_prog_compiler_static='--static' + ;; + nagfor*) + # NAG Fortran compiler + lt_prog_compiler_wl='-Wl,-Wl,,' + lt_prog_compiler_pic='-PIC' + lt_prog_compiler_static='-Bstatic' + ;; + pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) + # Portland Group compilers (*not* the Pentium gcc compiler, + # which looks to be a dead project) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fpic' + lt_prog_compiler_static='-Bstatic' + ;; + ccc*) + lt_prog_compiler_wl='-Wl,' + # All Alpha code is PIC. + lt_prog_compiler_static='-non_shared' + ;; + xl* | bgxl* | bgf* | mpixl*) + # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-qpic' + lt_prog_compiler_static='-qstaticlink' + ;; + *) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [1-7].* | *Sun*Fortran*\ 8.[0-3]*) + # Sun Fortran 8.3 passes all unrecognized flags to the linker + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + lt_prog_compiler_wl='' + ;; + *Sun\ F* | *Sun*Fortran*) + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + lt_prog_compiler_wl='-Qoption ld ' + ;; + *Sun\ C*) + # Sun C 5.9 + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + lt_prog_compiler_wl='-Wl,' + ;; + *Intel*\ [CF]*Compiler*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fPIC' + lt_prog_compiler_static='-static' + ;; + *Portland\ Group*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fpic' + lt_prog_compiler_static='-Bstatic' + ;; + esac + ;; + esac + ;; + + newsos6) + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + ;; + + *nto* | *qnx*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + lt_prog_compiler_pic='-fPIC -shared' + ;; + + osf3* | osf4* | osf5*) + lt_prog_compiler_wl='-Wl,' + # All OSF/1 code is PIC. + lt_prog_compiler_static='-non_shared' + ;; + + rdos*) + lt_prog_compiler_static='-non_shared' + ;; + + solaris*) + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + case $cc_basename in + f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) + lt_prog_compiler_wl='-Qoption ld ';; + *) + lt_prog_compiler_wl='-Wl,';; + esac + ;; + + sunos4*) + lt_prog_compiler_wl='-Qoption ld ' + lt_prog_compiler_pic='-PIC' + lt_prog_compiler_static='-Bstatic' + ;; + + sysv4 | sysv4.2uw2* | sysv4.3*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + ;; + + sysv4*MP*) + if test -d /usr/nec ;then + lt_prog_compiler_pic='-Kconform_pic' + lt_prog_compiler_static='-Bstatic' + fi + ;; + + sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + ;; + + unicos*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_can_build_shared=no + ;; + + uts4*) + lt_prog_compiler_pic='-pic' + lt_prog_compiler_static='-Bstatic' + ;; + + *) + lt_prog_compiler_can_build_shared=no + ;; + esac + fi + +case $host_os in + # For platforms which do not support PIC, -DPIC is meaningless: + *djgpp*) + lt_prog_compiler_pic= + ;; + *) + lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC" + ;; +esac + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 +$as_echo_n "checking for $compiler option to produce PIC... " >&6; } +if ${lt_cv_prog_compiler_pic+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_pic=$lt_prog_compiler_pic +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5 +$as_echo "$lt_cv_prog_compiler_pic" >&6; } +lt_prog_compiler_pic=$lt_cv_prog_compiler_pic + +# +# Check to make sure the PIC flag actually works. +# +if test -n "$lt_prog_compiler_pic"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5 +$as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; } +if ${lt_cv_prog_compiler_pic_works+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_pic_works=no + ac_outfile=conftest.$ac_objext + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + lt_compiler_flag="$lt_prog_compiler_pic -DPIC" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + # The option is referenced via a variable to avoid confusing sed. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings other than the usual output. + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then + lt_cv_prog_compiler_pic_works=yes + fi + fi + $RM conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works" >&5 +$as_echo "$lt_cv_prog_compiler_pic_works" >&6; } + +if test x"$lt_cv_prog_compiler_pic_works" = xyes; then + case $lt_prog_compiler_pic in + "" | " "*) ;; + *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;; + esac +else + lt_prog_compiler_pic= + lt_prog_compiler_can_build_shared=no +fi + +fi + + + + + + + + + + + +# +# Check to make sure the static flag actually works. +# +wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\" +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5 +$as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; } +if ${lt_cv_prog_compiler_static_works+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_static_works=no + save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS $lt_tmp_static_flag" + echo "$lt_simple_link_test_code" > conftest.$ac_ext + if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then + # The linker can only warn and ignore the option if not recognized + # So say no if there are warnings + if test -s conftest.err; then + # Append any errors to the config.log. + cat conftest.err 1>&5 + $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if diff conftest.exp conftest.er2 >/dev/null; then + lt_cv_prog_compiler_static_works=yes + fi + else + lt_cv_prog_compiler_static_works=yes + fi + fi + $RM -r conftest* + LDFLAGS="$save_LDFLAGS" + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works" >&5 +$as_echo "$lt_cv_prog_compiler_static_works" >&6; } + +if test x"$lt_cv_prog_compiler_static_works" = xyes; then + : +else + lt_prog_compiler_static= +fi + + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 +$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } +if ${lt_cv_prog_compiler_c_o+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_c_o=no + $RM -r conftest 2>/dev/null + mkdir conftest + cd conftest + mkdir out + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + lt_compiler_flag="-o out/conftest2.$ac_objext" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) + (eval "$lt_compile" 2>out/conftest.err) + ac_status=$? + cat out/conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s out/conftest2.$ac_objext + then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp + $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 + if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then + lt_cv_prog_compiler_c_o=yes + fi + fi + chmod u+w . 2>&5 + $RM conftest* + # SGI C++ compiler will create directory out/ii_files/ for + # template instantiation + test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files + $RM out/* && rmdir out + cd .. + $RM -r conftest + $RM conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 +$as_echo "$lt_cv_prog_compiler_c_o" >&6; } + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 +$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } +if ${lt_cv_prog_compiler_c_o+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_c_o=no + $RM -r conftest 2>/dev/null + mkdir conftest + cd conftest + mkdir out + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + lt_compiler_flag="-o out/conftest2.$ac_objext" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) + (eval "$lt_compile" 2>out/conftest.err) + ac_status=$? + cat out/conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s out/conftest2.$ac_objext + then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp + $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 + if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then + lt_cv_prog_compiler_c_o=yes + fi + fi + chmod u+w . 2>&5 + $RM conftest* + # SGI C++ compiler will create directory out/ii_files/ for + # template instantiation + test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files + $RM out/* && rmdir out + cd .. + $RM -r conftest + $RM conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 +$as_echo "$lt_cv_prog_compiler_c_o" >&6; } + + + + +hard_links="nottested" +if test "$lt_cv_prog_compiler_c_o" = no && test "$need_locks" != no; then + # do not overwrite the value of need_locks provided by the user + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5 +$as_echo_n "checking if we can lock with hard links... " >&6; } + hard_links=yes + $RM conftest* + ln conftest.a conftest.b 2>/dev/null && hard_links=no + touch conftest.a + ln conftest.a conftest.b 2>&5 || hard_links=no + ln conftest.a conftest.b 2>/dev/null && hard_links=no + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5 +$as_echo "$hard_links" >&6; } + if test "$hard_links" = no; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 +$as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} + need_locks=warn + fi +else + need_locks=no +fi + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5 +$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } + + runpath_var= + allow_undefined_flag= + always_export_symbols=no + archive_cmds= + archive_expsym_cmds= + compiler_needs_object=no + enable_shared_with_static_runtimes=no + export_dynamic_flag_spec= + export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + hardcode_automatic=no + hardcode_direct=no + hardcode_direct_absolute=no + hardcode_libdir_flag_spec= + hardcode_libdir_separator= + hardcode_minus_L=no + hardcode_shlibpath_var=unsupported + inherit_rpath=no + link_all_deplibs=unknown + module_cmds= + module_expsym_cmds= + old_archive_from_new_cmds= + old_archive_from_expsyms_cmds= + thread_safe_flag_spec= + whole_archive_flag_spec= + # include_expsyms should be a list of space-separated symbols to be *always* + # included in the symbol list + include_expsyms= + # exclude_expsyms can be an extended regexp of symbols to exclude + # it will be wrapped by ` (' and `)$', so one must not match beginning or + # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', + # as well as any symbol that contains `d'. + exclude_expsyms='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*' + # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out + # platforms (ab)use it in PIC code, but their linkers get confused if + # the symbol is explicitly referenced. Since portable code cannot + # rely on this symbol name, it's probably fine to never include it in + # preloaded symbol tables. + # Exclude shared library initialization/finalization symbols. + extract_expsyms_cmds= + + case $host_os in + cygwin* | mingw* | pw32* | cegcc*) + # FIXME: the MSVC++ port hasn't been tested in a loooong time + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + if test "$GCC" != yes; then + with_gnu_ld=no + fi + ;; + interix*) + # we just hope/assume this is gcc and not c89 (= MSVC++) + with_gnu_ld=yes + ;; + openbsd*) + with_gnu_ld=no + ;; + linux* | k*bsd*-gnu | gnu*) + link_all_deplibs=no + ;; + esac + + ld_shlibs=yes + + # On some targets, GNU ld is compatible enough with the native linker + # that we're better off using the native interface for both. + lt_use_gnu_ld_interface=no + if test "$with_gnu_ld" = yes; then + case $host_os in + aix*) + # The AIX port of GNU ld has always aspired to compatibility + # with the native linker. However, as the warning in the GNU ld + # block says, versions before 2.19.5* couldn't really create working + # shared libraries, regardless of the interface used. + case `$LD -v 2>&1` in + *\ \(GNU\ Binutils\)\ 2.19.5*) ;; + *\ \(GNU\ Binutils\)\ 2.[2-9]*) ;; + *\ \(GNU\ Binutils\)\ [3-9]*) ;; + *) + lt_use_gnu_ld_interface=yes + ;; + esac + ;; + *) + lt_use_gnu_ld_interface=yes + ;; + esac + fi + + if test "$lt_use_gnu_ld_interface" = yes; then + # If archive_cmds runs LD, not CC, wlarc should be empty + wlarc='${wl}' + + # Set some defaults for GNU ld with shared library support. These + # are reset later if shared libraries are not supported. Putting them + # here allows them to be overridden if necessary. + runpath_var=LD_RUN_PATH + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + export_dynamic_flag_spec='${wl}--export-dynamic' + # ancient GNU ld didn't support --whole-archive et. al. + if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then + whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' + else + whole_archive_flag_spec= + fi + supports_anon_versioning=no + case `$LD -v 2>&1` in + *GNU\ gold*) supports_anon_versioning=yes ;; + *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 + *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... + *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... + *\ 2.11.*) ;; # other 2.11 versions + *) supports_anon_versioning=yes ;; + esac + + # See if GNU ld supports shared libraries. + case $host_os in + aix[3-9]*) + # On AIX/PPC, the GNU linker is very broken + if test "$host_cpu" != ia64; then + ld_shlibs=no + cat <<_LT_EOF 1>&2 + +*** Warning: the GNU linker, at least up to release 2.19, is reported +*** to be unable to reliably create shared libraries on AIX. +*** Therefore, libtool is disabling shared libraries support. If you +*** really care for shared libraries, you may want to install binutils +*** 2.20 or above, or modify your PATH so that a non-GNU linker is found. +*** You will then need to restart the configuration process. + +_LT_EOF + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='' + ;; + m68k) + archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + ;; + esac + ;; + + beos*) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + allow_undefined_flag=unsupported + # Joseph Beckenbach says some releases of gcc + # support --undefined. This deserves some investigation. FIXME + archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + else + ld_shlibs=no + fi + ;; + + cygwin* | mingw* | pw32* | cegcc*) + # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless, + # as there is no search path for DLLs. + hardcode_libdir_flag_spec='-L$libdir' + export_dynamic_flag_spec='${wl}--export-all-symbols' + allow_undefined_flag=unsupported + always_export_symbols=no + enable_shared_with_static_runtimes=yes + export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols' + exclude_expsyms='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname' + + if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + # If the export-symbols file already is a .def file (1st line + # is EXPORTS), use it as is; otherwise, prepend... + archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then + cp $export_symbols $output_objdir/$soname.def; + else + echo EXPORTS > $output_objdir/$soname.def; + cat $export_symbols >> $output_objdir/$soname.def; + fi~ + $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + else + ld_shlibs=no + fi + ;; + + haiku*) + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + link_all_deplibs=yes + ;; + + interix[3-9]*) + hardcode_direct=no + hardcode_shlibpath_var=no + hardcode_libdir_flag_spec='${wl}-rpath,$libdir' + export_dynamic_flag_spec='${wl}-E' + # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. + # Instead, shared libraries are loaded at an image base (0x10000000 by + # default) and relocated if they conflict, which is a slow very memory + # consuming and fragmenting process. To avoid this, we pick a random, + # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link + # time. Moving up from 0x10000000 also allows more sbrk(2) space. + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + archive_expsym_cmds='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + ;; + + gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) + tmp_diet=no + if test "$host_os" = linux-dietlibc; then + case $cc_basename in + diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) + esac + fi + if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ + && test "$tmp_diet" = no + then + tmp_addflag=' $pic_flag' + tmp_sharedflag='-shared' + case $cc_basename,$host_cpu in + pgcc*) # Portland Group C compiler + whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' + tmp_addflag=' $pic_flag' + ;; + pgf77* | pgf90* | pgf95* | pgfortran*) + # Portland Group f77 and f90 compilers + whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' + tmp_addflag=' $pic_flag -Mnomain' ;; + ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 + tmp_addflag=' -i_dynamic' ;; + efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 + tmp_addflag=' -i_dynamic -nofor_main' ;; + ifc* | ifort*) # Intel Fortran compiler + tmp_addflag=' -nofor_main' ;; + lf95*) # Lahey Fortran 8.1 + whole_archive_flag_spec= + tmp_sharedflag='--shared' ;; + xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below) + tmp_sharedflag='-qmkshrobj' + tmp_addflag= ;; + nvcc*) # Cuda Compiler Driver 2.2 + whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' + compiler_needs_object=yes + ;; + esac + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) # Sun C 5.9 + whole_archive_flag_spec='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' + compiler_needs_object=yes + tmp_sharedflag='-G' ;; + *Sun\ F*) # Sun Fortran 8.3 + tmp_sharedflag='-G' ;; + esac + archive_cmds='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + + if test "x$supports_anon_versioning" = xyes; then + archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' + fi + + case $cc_basename in + xlf* | bgf* | bgxlf* | mpixlf*) + # IBM XL Fortran 10.1 on PPC cannot create shared libs itself + whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive' + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' + if test "x$supports_anon_versioning" = xyes; then + archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' + fi + ;; + esac + else + ld_shlibs=no + fi + ;; + + netbsd* | netbsdelf*-gnu) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' + wlarc= + else + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + fi + ;; + + solaris*) + if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then + ld_shlibs=no + cat <<_LT_EOF 1>&2 + +*** Warning: The releases 2.8.* of the GNU linker cannot reliably +*** create shared libraries on Solaris systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.9.1 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +_LT_EOF + elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + ld_shlibs=no + fi + ;; + + sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) + case `$LD -v 2>&1` in + *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) + ld_shlibs=no + cat <<_LT_EOF 1>&2 + +*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not +*** reliably create shared libraries on SCO systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.16.91.0.3 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +_LT_EOF + ;; + *) + # For security reasons, it is highly recommended that you always + # use absolute paths for naming shared libraries, and exclude the + # DT_RUNPATH tag from executables and libraries. But doing so + # requires that you compile everything twice, which is a pain. + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + ld_shlibs=no + fi + ;; + esac + ;; + + sunos4*) + archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' + wlarc= + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + *) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + ld_shlibs=no + fi + ;; + esac + + if test "$ld_shlibs" = no; then + runpath_var= + hardcode_libdir_flag_spec= + export_dynamic_flag_spec= + whole_archive_flag_spec= + fi + else + # PORTME fill in a description of your system's linker (not GNU ld) + case $host_os in + aix3*) + allow_undefined_flag=unsupported + always_export_symbols=yes + archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' + # Note: this linker hardcodes the directories in LIBPATH if there + # are no directories specified by -L. + hardcode_minus_L=yes + if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then + # Neither direct hardcoding nor static linking is supported with a + # broken collect2. + hardcode_direct=unsupported + fi + ;; + + aix[4-9]*) + if test "$host_cpu" = ia64; then + # On IA64, the linker does run time linking by default, so we don't + # have to do anything special. + aix_use_runtimelinking=no + exp_sym_flag='-Bexport' + no_entry_flag="" + else + # If we're using GNU nm, then we don't want the "-C" option. + # -C means demangle to AIX nm, but means don't demangle with GNU nm + # Also, AIX nm treats weak defined symbols like other global + # defined symbols, whereas GNU nm marks them as "W". + if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then + export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' + else + export_symbols_cmds='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' + fi + aix_use_runtimelinking=no + + # Test if we are trying to use run time linking or normal + # AIX style linking. If -brtl is somewhere in LDFLAGS, we + # need to do runtime linking. + case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*) + for ld_flag in $LDFLAGS; do + if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then + aix_use_runtimelinking=yes + break + fi + done + ;; + esac + + exp_sym_flag='-bexport' + no_entry_flag='-bnoentry' + fi + + # When large executables or shared objects are built, AIX ld can + # have problems creating the table of contents. If linking a library + # or program results in "error TOC overflow" add -mminimal-toc to + # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not + # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. + + archive_cmds='' + hardcode_direct=yes + hardcode_direct_absolute=yes + hardcode_libdir_separator=':' + link_all_deplibs=yes + file_list_spec='${wl}-f,' + + if test "$GCC" = yes; then + case $host_os in aix4.[012]|aix4.[012].*) + # We only want to do this on AIX 4.2 and lower, the check + # below for broken collect2 doesn't work under 4.3+ + collect2name=`${CC} -print-prog-name=collect2` + if test -f "$collect2name" && + strings "$collect2name" | $GREP resolve_lib_name >/dev/null + then + # We have reworked collect2 + : + else + # We have old collect2 + hardcode_direct=unsupported + # It fails to find uninstalled libraries when the uninstalled + # path is not listed in the libpath. Setting hardcode_minus_L + # to unsupported forces relinking + hardcode_minus_L=yes + hardcode_libdir_flag_spec='-L$libdir' + hardcode_libdir_separator= + fi + ;; + esac + shared_flag='-shared' + if test "$aix_use_runtimelinking" = yes; then + shared_flag="$shared_flag "'${wl}-G' + fi + link_all_deplibs=no + else + # not using gcc + if test "$host_cpu" = ia64; then + # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release + # chokes on -Wl,-G. The following line is correct: + shared_flag='-G' + else + if test "$aix_use_runtimelinking" = yes; then + shared_flag='${wl}-G' + else + shared_flag='${wl}-bM:SRE' + fi + fi + fi + + export_dynamic_flag_spec='${wl}-bexpall' + # It seems that -bexpall does not export symbols beginning with + # underscore (_), so it is better to generate a list of symbols to export. + always_export_symbols=yes + if test "$aix_use_runtimelinking" = yes; then + # Warning - without using the other runtime loading flags (-brtl), + # -berok will link without error, but may produce a broken library. + allow_undefined_flag='-berok' + # Determine the default libpath from the value encoded in an + # empty executable. + if test "${lt_cv_aix_libpath+set}" = set; then + aix_libpath=$lt_cv_aix_libpath +else + if ${lt_cv_aix_libpath_+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + + lt_aix_libpath_sed=' + /Import File Strings/,/^$/ { + /^0/ { + s/^0 *\([^ ]*\) *$/\1/ + p + } + }' + lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + # Check for a 64-bit object if we didn't find anything. + if test -z "$lt_cv_aix_libpath_"; then + lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + fi +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + if test -z "$lt_cv_aix_libpath_"; then + lt_cv_aix_libpath_="/usr/lib:/lib" + fi + +fi + + aix_libpath=$lt_cv_aix_libpath_ +fi + + hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" + archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" + else + if test "$host_cpu" = ia64; then + hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib' + allow_undefined_flag="-z nodefs" + archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" + else + # Determine the default libpath from the value encoded in an + # empty executable. + if test "${lt_cv_aix_libpath+set}" = set; then + aix_libpath=$lt_cv_aix_libpath +else + if ${lt_cv_aix_libpath_+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + + lt_aix_libpath_sed=' + /Import File Strings/,/^$/ { + /^0/ { + s/^0 *\([^ ]*\) *$/\1/ + p + } + }' + lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + # Check for a 64-bit object if we didn't find anything. + if test -z "$lt_cv_aix_libpath_"; then + lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + fi +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + if test -z "$lt_cv_aix_libpath_"; then + lt_cv_aix_libpath_="/usr/lib:/lib" + fi + +fi + + aix_libpath=$lt_cv_aix_libpath_ +fi + + hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" + # Warning - without using the other run time loading flags, + # -berok will link without error, but may produce a broken library. + no_undefined_flag=' ${wl}-bernotok' + allow_undefined_flag=' ${wl}-berok' + if test "$with_gnu_ld" = yes; then + # We only use this code for GNU lds that support --whole-archive. + whole_archive_flag_spec='${wl}--whole-archive$convenience ${wl}--no-whole-archive' + else + # Exported symbols can be pulled into shared objects from archives + whole_archive_flag_spec='$convenience' + fi + archive_cmds_need_lc=yes + # This is similar to how AIX traditionally builds its shared libraries. + archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' + fi + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='' + ;; + m68k) + archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + ;; + esac + ;; + + bsdi[45]*) + export_dynamic_flag_spec=-rdynamic + ;; + + cygwin* | mingw* | pw32* | cegcc*) + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + # hardcode_libdir_flag_spec is actually meaningless, as there is + # no search path for DLLs. + case $cc_basename in + cl*) + # Native MSVC + hardcode_libdir_flag_spec=' ' + allow_undefined_flag=unsupported + always_export_symbols=yes + file_list_spec='@' + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=".dll" + # FIXME: Setting linknames here is a bad hack. + archive_cmds='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' + archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then + sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; + else + sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; + fi~ + $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ + linknames=' + # The linker will not automatically build a static lib if we build a DLL. + # _LT_TAGVAR(old_archive_from_new_cmds, )='true' + enable_shared_with_static_runtimes=yes + exclude_expsyms='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' + export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1,DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' + # Don't use ranlib + old_postinstall_cmds='chmod 644 $oldlib' + postlink_cmds='lt_outputfile="@OUTPUT@"~ + lt_tool_outputfile="@TOOL_OUTPUT@"~ + case $lt_outputfile in + *.exe|*.EXE) ;; + *) + lt_outputfile="$lt_outputfile.exe" + lt_tool_outputfile="$lt_tool_outputfile.exe" + ;; + esac~ + if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then + $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; + $RM "$lt_outputfile.manifest"; + fi' + ;; + *) + # Assume MSVC wrapper + hardcode_libdir_flag_spec=' ' + allow_undefined_flag=unsupported + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=".dll" + # FIXME: Setting linknames here is a bad hack. + archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' + # The linker will automatically build a .lib file if we build a DLL. + old_archive_from_new_cmds='true' + # FIXME: Should let the user specify the lib program. + old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs' + enable_shared_with_static_runtimes=yes + ;; + esac + ;; + + darwin* | rhapsody*) + + + archive_cmds_need_lc=no + hardcode_direct=no + hardcode_automatic=yes + hardcode_shlibpath_var=unsupported + if test "$lt_cv_ld_force_load" = "yes"; then + whole_archive_flag_spec='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' + + else + whole_archive_flag_spec='' + fi + link_all_deplibs=yes + allow_undefined_flag="$_lt_dar_allow_undefined" + case $cc_basename in + ifort*) _lt_dar_can_shared=yes ;; + *) _lt_dar_can_shared=$GCC ;; + esac + if test "$_lt_dar_can_shared" = "yes"; then + output_verbose_link_cmd=func_echo_all + archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" + module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" + archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" + module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" + + else + ld_shlibs=no + fi + + ;; + + dgux*) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_shlibpath_var=no + ;; + + # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor + # support. Future versions do this automatically, but an explicit c++rt0.o + # does not break anything, and helps significantly (at the cost of a little + # extra space). + freebsd2.2*) + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + # Unfortunately, older versions of FreeBSD 2 do not have this feature. + freebsd2.*) + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=yes + hardcode_minus_L=yes + hardcode_shlibpath_var=no + ;; + + # FreeBSD 3 and greater uses gcc -shared to do shared libraries. + freebsd* | dragonfly*) + archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + hpux9*) + if test "$GCC" = yes; then + archive_cmds='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + else + archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + fi + hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' + hardcode_libdir_separator=: + hardcode_direct=yes + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L=yes + export_dynamic_flag_spec='${wl}-E' + ;; + + hpux10*) + if test "$GCC" = yes && test "$with_gnu_ld" = no; then + archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' + fi + if test "$with_gnu_ld" = no; then + hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' + hardcode_libdir_separator=: + hardcode_direct=yes + hardcode_direct_absolute=yes + export_dynamic_flag_spec='${wl}-E' + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L=yes + fi + ;; + + hpux11*) + if test "$GCC" = yes && test "$with_gnu_ld" = no; then + case $host_cpu in + hppa*64*) + archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + else + case $host_cpu in + hppa*64*) + archive_cmds='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + + # Older versions of the 11.00 compiler do not understand -b yet + # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does) + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC understands -b" >&5 +$as_echo_n "checking if $CC understands -b... " >&6; } +if ${lt_cv_prog_compiler__b+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler__b=no + save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS -b" + echo "$lt_simple_link_test_code" > conftest.$ac_ext + if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then + # The linker can only warn and ignore the option if not recognized + # So say no if there are warnings + if test -s conftest.err; then + # Append any errors to the config.log. + cat conftest.err 1>&5 + $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if diff conftest.exp conftest.er2 >/dev/null; then + lt_cv_prog_compiler__b=yes + fi + else + lt_cv_prog_compiler__b=yes + fi + fi + $RM -r conftest* + LDFLAGS="$save_LDFLAGS" + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler__b" >&5 +$as_echo "$lt_cv_prog_compiler__b" >&6; } + +if test x"$lt_cv_prog_compiler__b" = xyes; then + archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' +else + archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' +fi + + ;; + esac + fi + if test "$with_gnu_ld" = no; then + hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' + hardcode_libdir_separator=: + + case $host_cpu in + hppa*64*|ia64*) + hardcode_direct=no + hardcode_shlibpath_var=no + ;; + *) + hardcode_direct=yes + hardcode_direct_absolute=yes + export_dynamic_flag_spec='${wl}-E' + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L=yes + ;; + esac + fi + ;; + + irix5* | irix6* | nonstopux*) + if test "$GCC" = yes; then + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + # Try to use the -exported_symbol ld option, if it does not + # work, assume that -exports_file does not work either and + # implicitly export all symbols. + # This should be the same for all languages, so no per-tag cache variable. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5 +$as_echo_n "checking whether the $host_os linker accepts -exported_symbol... " >&6; } +if ${lt_cv_irix_exported_symbol+:} false; then : + $as_echo_n "(cached) " >&6 +else + save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int foo (void) { return 0; } +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + lt_cv_irix_exported_symbol=yes +else + lt_cv_irix_exported_symbol=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS="$save_LDFLAGS" +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5 +$as_echo "$lt_cv_irix_exported_symbol" >&6; } + if test "$lt_cv_irix_exported_symbol" = yes; then + archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' + fi + else + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' + archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' + fi + archive_cmds_need_lc='no' + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator=: + inherit_rpath=yes + link_all_deplibs=yes + ;; + + netbsd* | netbsdelf*-gnu) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out + else + archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF + fi + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + newsos6) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=yes + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator=: + hardcode_shlibpath_var=no + ;; + + *nto* | *qnx*) + ;; + + openbsd*) + if test -f /usr/libexec/ld.so; then + hardcode_direct=yes + hardcode_shlibpath_var=no + hardcode_direct_absolute=yes + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' + hardcode_libdir_flag_spec='${wl}-rpath,$libdir' + export_dynamic_flag_spec='${wl}-E' + else + case $host_os in + openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' + hardcode_libdir_flag_spec='-R$libdir' + ;; + *) + archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + hardcode_libdir_flag_spec='${wl}-rpath,$libdir' + ;; + esac + fi + else + ld_shlibs=no + fi + ;; + + os2*) + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + allow_undefined_flag=unsupported + archive_cmds='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~echo DATA >> $output_objdir/$libname.def~echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' + old_archive_from_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' + ;; + + osf3*) + if test "$GCC" = yes; then + allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' + archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + else + allow_undefined_flag=' -expect_unresolved \*' + archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' + fi + archive_cmds_need_lc='no' + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator=: + ;; + + osf4* | osf5*) # as osf3* with the addition of -msym flag + if test "$GCC" = yes; then + allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' + archive_cmds='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + else + allow_undefined_flag=' -expect_unresolved \*' + archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' + archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ + $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp' + + # Both c and cxx compiler support -rpath directly + hardcode_libdir_flag_spec='-rpath $libdir' + fi + archive_cmds_need_lc='no' + hardcode_libdir_separator=: + ;; + + solaris*) + no_undefined_flag=' -z defs' + if test "$GCC" = yes; then + wlarc='${wl}' + archive_cmds='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' + else + case `$CC -V 2>&1` in + *"Compilers 5.0"*) + wlarc='' + archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' + archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp' + ;; + *) + wlarc='${wl}' + archive_cmds='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' + ;; + esac + fi + hardcode_libdir_flag_spec='-R$libdir' + hardcode_shlibpath_var=no + case $host_os in + solaris2.[0-5] | solaris2.[0-5].*) ;; + *) + # The compiler driver will combine and reorder linker options, + # but understands `-z linker_flag'. GCC discards it without `$wl', + # but is careful enough not to reorder. + # Supported since Solaris 2.6 (maybe 2.5.1?) + if test "$GCC" = yes; then + whole_archive_flag_spec='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' + else + whole_archive_flag_spec='-z allextract$convenience -z defaultextract' + fi + ;; + esac + link_all_deplibs=yes + ;; + + sunos4*) + if test "x$host_vendor" = xsequent; then + # Use $CC to link under sequent, because it throws in some extra .o + # files that make .init and .fini sections work. + archive_cmds='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' + fi + hardcode_libdir_flag_spec='-L$libdir' + hardcode_direct=yes + hardcode_minus_L=yes + hardcode_shlibpath_var=no + ;; + + sysv4) + case $host_vendor in + sni) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=yes # is this really true??? + ;; + siemens) + ## LD is ld it makes a PLAMLIB + ## CC just makes a GrossModule. + archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags' + reload_cmds='$CC -r -o $output$reload_objs' + hardcode_direct=no + ;; + motorola) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=no #Motorola manual says yes, but my tests say they lie + ;; + esac + runpath_var='LD_RUN_PATH' + hardcode_shlibpath_var=no + ;; + + sysv4.3*) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_shlibpath_var=no + export_dynamic_flag_spec='-Bexport' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_shlibpath_var=no + runpath_var=LD_RUN_PATH + hardcode_runpath_var=yes + ld_shlibs=yes + fi + ;; + + sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) + no_undefined_flag='${wl}-z,text' + archive_cmds_need_lc=no + hardcode_shlibpath_var=no + runpath_var='LD_RUN_PATH' + + if test "$GCC" = yes; then + archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + ;; + + sysv5* | sco3.2v5* | sco5v6*) + # Note: We can NOT use -z defs as we might desire, because we do not + # link with -lc, and that would cause any symbols used from libc to + # always be unresolved, which means just about no library would + # ever link correctly. If we're not using GNU ld we use -z text + # though, which does catch some bad symbols but isn't as heavy-handed + # as -z defs. + no_undefined_flag='${wl}-z,text' + allow_undefined_flag='${wl}-z,nodefs' + archive_cmds_need_lc=no + hardcode_shlibpath_var=no + hardcode_libdir_flag_spec='${wl}-R,$libdir' + hardcode_libdir_separator=':' + link_all_deplibs=yes + export_dynamic_flag_spec='${wl}-Bexport' + runpath_var='LD_RUN_PATH' + + if test "$GCC" = yes; then + archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + ;; + + uts4*) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_shlibpath_var=no + ;; + + *) + ld_shlibs=no + ;; + esac + + if test x$host_vendor = xsni; then + case $host in + sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) + export_dynamic_flag_spec='${wl}-Blargedynsym' + ;; + esac + fi + fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs" >&5 +$as_echo "$ld_shlibs" >&6; } +test "$ld_shlibs" = no && can_build_shared=no + +with_gnu_ld=$with_gnu_ld + + + + + + + + + + + + + + + +# +# Do we need to explicitly link libc? +# +case "x$archive_cmds_need_lc" in +x|xyes) + # Assume -lc should be added + archive_cmds_need_lc=yes + + if test "$enable_shared" = yes && test "$GCC" = yes; then + case $archive_cmds in + *'~'*) + # FIXME: we may have to deal with multi-command sequences. + ;; + '$CC '*) + # Test whether the compiler implicitly links with -lc since on some + # systems, -lgcc has to come before -lc. If gcc already passes -lc + # to ld, don't add -lc before -lgcc. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5 +$as_echo_n "checking whether -lc should be explicitly linked in... " >&6; } +if ${lt_cv_archive_cmds_need_lc+:} false; then : + $as_echo_n "(cached) " >&6 +else + $RM conftest* + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } 2>conftest.err; then + soname=conftest + lib=conftest + libobjs=conftest.$ac_objext + deplibs= + wl=$lt_prog_compiler_wl + pic_flag=$lt_prog_compiler_pic + compiler_flags=-v + linker_flags=-v + verstring= + output_objdir=. + libname=conftest + lt_save_allow_undefined_flag=$allow_undefined_flag + allow_undefined_flag= + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5 + (eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + then + lt_cv_archive_cmds_need_lc=no + else + lt_cv_archive_cmds_need_lc=yes + fi + allow_undefined_flag=$lt_save_allow_undefined_flag + else + cat conftest.err 1>&5 + fi + $RM conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc" >&5 +$as_echo "$lt_cv_archive_cmds_need_lc" >&6; } + archive_cmds_need_lc=$lt_cv_archive_cmds_need_lc + ;; + esac + fi + ;; +esac + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5 +$as_echo_n "checking dynamic linker characteristics... " >&6; } + +if test "$GCC" = yes; then + case $host_os in + darwin*) lt_awk_arg="/^libraries:/,/LR/" ;; + *) lt_awk_arg="/^libraries:/" ;; + esac + case $host_os in + mingw* | cegcc*) lt_sed_strip_eq="s,=\([A-Za-z]:\),\1,g" ;; + *) lt_sed_strip_eq="s,=/,/,g" ;; + esac + lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq` + case $lt_search_path_spec in + *\;*) + # if the path contains ";" then we assume it to be the separator + # otherwise default to the standard path separator (i.e. ":") - it is + # assumed that no part of a normal pathname contains ";" but that should + # okay in the real world where ";" in dirpaths is itself problematic. + lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'` + ;; + *) + lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"` + ;; + esac + # Ok, now we have the path, separated by spaces, we can step through it + # and add multilib dir if necessary. + lt_tmp_lt_search_path_spec= + lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` + for lt_sys_path in $lt_search_path_spec; do + if test -d "$lt_sys_path/$lt_multi_os_dir"; then + lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir" + else + test -d "$lt_sys_path" && \ + lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" + fi + done + lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk ' +BEGIN {RS=" "; FS="/|\n";} { + lt_foo=""; + lt_count=0; + for (lt_i = NF; lt_i > 0; lt_i--) { + if ($lt_i != "" && $lt_i != ".") { + if ($lt_i == "..") { + lt_count++; + } else { + if (lt_count == 0) { + lt_foo="/" $lt_i lt_foo; + } else { + lt_count--; + } + } + } + } + if (lt_foo != "") { lt_freq[lt_foo]++; } + if (lt_freq[lt_foo] == 1) { print lt_foo; } +}'` + # AWK program above erroneously prepends '/' to C:/dos/paths + # for these hosts. + case $host_os in + mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\ + $SED 's,/\([A-Za-z]:\),\1,g'` ;; + esac + sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP` +else + sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" +fi +library_names_spec= +libname_spec='lib$name' +soname_spec= +shrext_cmds=".so" +postinstall_cmds= +postuninstall_cmds= +finish_cmds= +finish_eval= +shlibpath_var= +shlibpath_overrides_runpath=unknown +version_type=none +dynamic_linker="$host_os ld.so" +sys_lib_dlsearch_path_spec="/lib /usr/lib" +need_lib_prefix=unknown +hardcode_into_libs=no + +# when you set need_version to no, make sure it does not cause -set_version +# flags to be left without arguments +need_version=unknown + +case $host_os in +aix3*) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' + shlibpath_var=LIBPATH + + # AIX 3 has no versioning support, so we append a major version to the name. + soname_spec='${libname}${release}${shared_ext}$major' + ;; + +aix[4-9]*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + hardcode_into_libs=yes + if test "$host_cpu" = ia64; then + # AIX 5 supports IA64 + library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + else + # With GCC up to 2.95.x, collect2 would create an import file + # for dependence libraries. The import file would start with + # the line `#! .'. This would cause the generated library to + # depend on `.', always an invalid library. This was fixed in + # development snapshots of GCC prior to 3.0. + case $host_os in + aix4 | aix4.[01] | aix4.[01].*) + if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' + echo ' yes ' + echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then + : + else + can_build_shared=no + fi + ;; + esac + # AIX (on Power*) has no versioning support, so currently we can not hardcode correct + # soname into executable. Probably we can add versioning support to + # collect2, so additional links can be useful in future. + if test "$aix_use_runtimelinking" = yes; then + # If using run time linking (on AIX 4.2 or later) use lib.so + # instead of lib.a to let people know that these are not + # typical AIX shared libraries. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + else + # We preserve .a as extension for shared libraries through AIX4.2 + # and later when we are not doing run time linking. + library_names_spec='${libname}${release}.a $libname.a' + soname_spec='${libname}${release}${shared_ext}$major' + fi + shlibpath_var=LIBPATH + fi + ;; + +amigaos*) + case $host_cpu in + powerpc) + # Since July 2007 AmigaOS4 officially supports .so libraries. + # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + ;; + m68k) + library_names_spec='$libname.ixlibrary $libname.a' + # Create ${libname}_ixlibrary.a entries in /sys/libs. + finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' + ;; + esac + ;; + +beos*) + library_names_spec='${libname}${shared_ext}' + dynamic_linker="$host_os ld.so" + shlibpath_var=LIBRARY_PATH + ;; + +bsdi[45]*) + version_type=linux # correct to gnu/linux during the next big refactor + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" + sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" + # the default ld.so.conf also contains /usr/contrib/lib and + # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow + # libtool to hard-code these into programs + ;; + +cygwin* | mingw* | pw32* | cegcc*) + version_type=windows + shrext_cmds=".dll" + need_version=no + need_lib_prefix=no + + case $GCC,$cc_basename in + yes,*) + # gcc + library_names_spec='$libname.dll.a' + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \${file}`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname~ + chmod a+x \$dldir/$dlname~ + if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then + eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; + fi' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + shlibpath_overrides_runpath=yes + + case $host_os in + cygwin*) + # Cygwin DLLs use 'cyg' prefix rather than 'lib' + soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + + sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api" + ;; + mingw* | cegcc*) + # MinGW DLLs use traditional 'lib' prefix + soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + ;; + pw32*) + # pw32 DLLs use 'pw' prefix rather than 'lib' + library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + ;; + esac + dynamic_linker='Win32 ld.exe' + ;; + + *,cl*) + # Native MSVC + libname_spec='$name' + soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + library_names_spec='${libname}.dll.lib' + + case $build_os in + mingw*) + sys_lib_search_path_spec= + lt_save_ifs=$IFS + IFS=';' + for lt_path in $LIB + do + IFS=$lt_save_ifs + # Let DOS variable expansion print the short 8.3 style file name. + lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` + sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" + done + IFS=$lt_save_ifs + # Convert to MSYS style. + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'` + ;; + cygwin*) + # Convert to unix form, then to dos form, then back to unix form + # but this time dos style (no spaces!) so that the unix form looks + # like /cygdrive/c/PROGRA~1:/cygdr... + sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` + sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` + sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + ;; + *) + sys_lib_search_path_spec="$LIB" + if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then + # It is most probably a Windows format PATH. + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` + else + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + fi + # FIXME: find the short name or the path components, as spaces are + # common. (e.g. "Program Files" -> "PROGRA~1") + ;; + esac + + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \${file}`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + shlibpath_overrides_runpath=yes + dynamic_linker='Win32 link.exe' + ;; + + *) + # Assume MSVC wrapper + library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' + dynamic_linker='Win32 ld.exe' + ;; + esac + # FIXME: first we should search . and the directory the executable is in + shlibpath_var=PATH + ;; + +darwin* | rhapsody*) + dynamic_linker="$host_os dyld" + version_type=darwin + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext' + soname_spec='${libname}${release}${major}$shared_ext' + shlibpath_overrides_runpath=yes + shlibpath_var=DYLD_LIBRARY_PATH + shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' + + sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib" + sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' + ;; + +dgux*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +freebsd* | dragonfly*) + # DragonFly does not have aout. When/if they implement a new + # versioning mechanism, adjust this. + if test -x /usr/bin/objformat; then + objformat=`/usr/bin/objformat` + else + case $host_os in + freebsd[23].*) objformat=aout ;; + *) objformat=elf ;; + esac + fi + version_type=freebsd-$objformat + case $version_type in + freebsd-elf*) + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' + need_version=no + need_lib_prefix=no + ;; + freebsd-*) + library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' + need_version=yes + ;; + esac + shlibpath_var=LD_LIBRARY_PATH + case $host_os in + freebsd2.*) + shlibpath_overrides_runpath=yes + ;; + freebsd3.[01]* | freebsdelf3.[01]*) + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ + freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + *) # from 4.6 on, and DragonFly + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + esac + ;; + +haiku*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + dynamic_linker="$host_os runtime_loader" + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LIBRARY_PATH + shlibpath_overrides_runpath=yes + sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' + hardcode_into_libs=yes + ;; + +hpux9* | hpux10* | hpux11*) + # Give a soname corresponding to the major version so that dld.sl refuses to + # link against other versions. + version_type=sunos + need_lib_prefix=no + need_version=no + case $host_cpu in + ia64*) + shrext_cmds='.so' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.so" + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + if test "X$HPUX_IA64_MODE" = X32; then + sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" + else + sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" + fi + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + hppa*64*) + shrext_cmds='.sl' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.sl" + shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + *) + shrext_cmds='.sl' + dynamic_linker="$host_os dld.sl" + shlibpath_var=SHLIB_PATH + shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + ;; + esac + # HP-UX runs *really* slowly unless shared libraries are mode 555, ... + postinstall_cmds='chmod 555 $lib' + # or fails outright, so override atomically: + install_override_mode=555 + ;; + +interix[3-9]*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +irix5* | irix6* | nonstopux*) + case $host_os in + nonstopux*) version_type=nonstopux ;; + *) + if test "$lt_cv_prog_gnu_ld" = yes; then + version_type=linux # correct to gnu/linux during the next big refactor + else + version_type=irix + fi ;; + esac + need_lib_prefix=no + need_version=no + soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' + case $host_os in + irix5* | nonstopux*) + libsuff= shlibsuff= + ;; + *) + case $LD in # libtool.m4 will add one of these switches to LD + *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") + libsuff= shlibsuff= libmagic=32-bit;; + *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") + libsuff=32 shlibsuff=N32 libmagic=N32;; + *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") + libsuff=64 shlibsuff=64 libmagic=64-bit;; + *) libsuff= shlibsuff= libmagic=never-match;; + esac + ;; + esac + shlibpath_var=LD_LIBRARY${shlibsuff}_PATH + shlibpath_overrides_runpath=no + sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" + sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" + hardcode_into_libs=yes + ;; + +# No shared lib support for Linux oldld, aout, or coff. +linux*oldld* | linux*aout* | linux*coff*) + dynamic_linker=no + ;; + +# This must be glibc/ELF. +linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + + # Some binutils ld are patched to set DT_RUNPATH + if ${lt_cv_shlibpath_overrides_runpath+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_shlibpath_overrides_runpath=no + save_LDFLAGS=$LDFLAGS + save_libdir=$libdir + eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \ + LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\"" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then : + lt_cv_shlibpath_overrides_runpath=yes +fi +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS=$save_LDFLAGS + libdir=$save_libdir + +fi + + shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath + + # This implies no fast_install, which is unacceptable. + # Some rework will be needed to allow for fast_install + # before this can be enabled. + hardcode_into_libs=yes + + # Append ld.so.conf contents to the search path + if test -f /etc/ld.so.conf; then + lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` + sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" + fi + + # We used to test for /lib/ld.so.1 and disable shared libraries on + # powerpc, because MkLinux only supported shared libraries with the + # GNU dynamic linker. Since this was broken with cross compilers, + # most powerpc-linux boxes support dynamic linking these days and + # people can always --disable-shared, the test was removed, and we + # assume the GNU/Linux dynamic linker is in use. + dynamic_linker='GNU/Linux ld.so' + ;; + +netbsdelf*-gnu) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='NetBSD ld.elf_so' + ;; + +netbsd*) + version_type=sunos + need_lib_prefix=no + need_version=no + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + dynamic_linker='NetBSD (a.out) ld.so' + else + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + dynamic_linker='NetBSD ld.elf_so' + fi + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + +newsos6) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; + +*nto* | *qnx*) + version_type=qnx + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='ldqnx.so' + ;; + +openbsd*) + version_type=sunos + sys_lib_dlsearch_path_spec="/usr/lib" + need_lib_prefix=no + # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. + case $host_os in + openbsd3.3 | openbsd3.3.*) need_version=yes ;; + *) need_version=no ;; + esac + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + shlibpath_var=LD_LIBRARY_PATH + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + case $host_os in + openbsd2.[89] | openbsd2.[89].*) + shlibpath_overrides_runpath=no + ;; + *) + shlibpath_overrides_runpath=yes + ;; + esac + else + shlibpath_overrides_runpath=yes + fi + ;; + +os2*) + libname_spec='$name' + shrext_cmds=".dll" + need_lib_prefix=no + library_names_spec='$libname${shared_ext} $libname.a' + dynamic_linker='OS/2 ld.exe' + shlibpath_var=LIBPATH + ;; + +osf3* | osf4* | osf5*) + version_type=osf + need_lib_prefix=no + need_version=no + soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" + sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" + ;; + +rdos*) + dynamic_linker=no + ;; + +solaris*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + # ldd complains unless libraries are executable + postinstall_cmds='chmod +x $lib' + ;; + +sunos4*) + version_type=sunos + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + if test "$with_gnu_ld" = yes; then + need_lib_prefix=no + fi + need_version=yes + ;; + +sysv4 | sysv4.3*) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + case $host_vendor in + sni) + shlibpath_overrides_runpath=no + need_lib_prefix=no + runpath_var=LD_RUN_PATH + ;; + siemens) + need_lib_prefix=no + ;; + motorola) + need_lib_prefix=no + need_version=no + shlibpath_overrides_runpath=no + sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' + ;; + esac + ;; + +sysv4*MP*) + if test -d /usr/nec ;then + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' + soname_spec='$libname${shared_ext}.$major' + shlibpath_var=LD_LIBRARY_PATH + fi + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + version_type=freebsd-elf + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + if test "$with_gnu_ld" = yes; then + sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' + else + sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' + case $host_os in + sco3.2v5*) + sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" + ;; + esac + fi + sys_lib_dlsearch_path_spec='/usr/lib' + ;; + +tpf*) + # TPF is a cross-target only. Preferred cross-host = GNU/Linux. + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +uts4*) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +*) + dynamic_linker=no + ;; +esac +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5 +$as_echo "$dynamic_linker" >&6; } +test "$dynamic_linker" = no && can_build_shared=no + +variables_saved_for_relink="PATH $shlibpath_var $runpath_var" +if test "$GCC" = yes; then + variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" +fi + +if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then + sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" +fi +if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then + sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" +fi + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5 +$as_echo_n "checking how to hardcode library paths into programs... " >&6; } +hardcode_action= +if test -n "$hardcode_libdir_flag_spec" || + test -n "$runpath_var" || + test "X$hardcode_automatic" = "Xyes" ; then + + # We can hardcode non-existent directories. + if test "$hardcode_direct" != no && + # If the only mechanism to avoid hardcoding is shlibpath_var, we + # have to relink, otherwise we might link with an installed library + # when we should be linking with a yet-to-be-installed one + ## test "$_LT_TAGVAR(hardcode_shlibpath_var, )" != no && + test "$hardcode_minus_L" != no; then + # Linking always hardcodes the temporary library directory. + hardcode_action=relink + else + # We can link without hardcoding, and we can hardcode nonexisting dirs. + hardcode_action=immediate + fi +else + # We cannot hardcode anything, or else we can only hardcode existing + # directories. + hardcode_action=unsupported +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action" >&5 +$as_echo "$hardcode_action" >&6; } + +if test "$hardcode_action" = relink || + test "$inherit_rpath" = yes; then + # Fast installation is not supported + enable_fast_install=no +elif test "$shlibpath_overrides_runpath" = yes || + test "$enable_shared" = no; then + # Fast installation is not necessary + enable_fast_install=needless +fi + + + + + + + if test "x$enable_dlopen" != xyes; then + enable_dlopen=unknown + enable_dlopen_self=unknown + enable_dlopen_self_static=unknown +else + lt_cv_dlopen=no + lt_cv_dlopen_libs= + + case $host_os in + beos*) + lt_cv_dlopen="load_add_on" + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + ;; + + mingw* | pw32* | cegcc*) + lt_cv_dlopen="LoadLibrary" + lt_cv_dlopen_libs= + ;; + + cygwin*) + lt_cv_dlopen="dlopen" + lt_cv_dlopen_libs= + ;; + + darwin*) + # if libdl is installed we need to link against it + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 +$as_echo_n "checking for dlopen in -ldl... " >&6; } +if ${ac_cv_lib_dl_dlopen+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldl $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (); +int +main () +{ +return dlopen (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_dl_dlopen=yes +else + ac_cv_lib_dl_dlopen=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 +$as_echo "$ac_cv_lib_dl_dlopen" >&6; } +if test "x$ac_cv_lib_dl_dlopen" = xyes; then : + lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" +else + + lt_cv_dlopen="dyld" + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + +fi + + ;; + + *) + ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load" +if test "x$ac_cv_func_shl_load" = xyes; then : + lt_cv_dlopen="shl_load" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5 +$as_echo_n "checking for shl_load in -ldld... " >&6; } +if ${ac_cv_lib_dld_shl_load+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldld $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char shl_load (); +int +main () +{ +return shl_load (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_dld_shl_load=yes +else + ac_cv_lib_dld_shl_load=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5 +$as_echo "$ac_cv_lib_dld_shl_load" >&6; } +if test "x$ac_cv_lib_dld_shl_load" = xyes; then : + lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld" +else + ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen" +if test "x$ac_cv_func_dlopen" = xyes; then : + lt_cv_dlopen="dlopen" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 +$as_echo_n "checking for dlopen in -ldl... " >&6; } +if ${ac_cv_lib_dl_dlopen+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldl $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (); +int +main () +{ +return dlopen (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_dl_dlopen=yes +else + ac_cv_lib_dl_dlopen=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 +$as_echo "$ac_cv_lib_dl_dlopen" >&6; } +if test "x$ac_cv_lib_dl_dlopen" = xyes; then : + lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5 +$as_echo_n "checking for dlopen in -lsvld... " >&6; } +if ${ac_cv_lib_svld_dlopen+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lsvld $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (); +int +main () +{ +return dlopen (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_svld_dlopen=yes +else + ac_cv_lib_svld_dlopen=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5 +$as_echo "$ac_cv_lib_svld_dlopen" >&6; } +if test "x$ac_cv_lib_svld_dlopen" = xyes; then : + lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5 +$as_echo_n "checking for dld_link in -ldld... " >&6; } +if ${ac_cv_lib_dld_dld_link+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldld $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dld_link (); +int +main () +{ +return dld_link (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_dld_dld_link=yes +else + ac_cv_lib_dld_dld_link=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5 +$as_echo "$ac_cv_lib_dld_dld_link" >&6; } +if test "x$ac_cv_lib_dld_dld_link" = xyes; then : + lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld" +fi + + +fi + + +fi + + +fi + + +fi + + +fi + + ;; + esac + + if test "x$lt_cv_dlopen" != xno; then + enable_dlopen=yes + else + enable_dlopen=no + fi + + case $lt_cv_dlopen in + dlopen) + save_CPPFLAGS="$CPPFLAGS" + test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" + + save_LDFLAGS="$LDFLAGS" + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" + + save_LIBS="$LIBS" + LIBS="$lt_cv_dlopen_libs $LIBS" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5 +$as_echo_n "checking whether a program can dlopen itself... " >&6; } +if ${lt_cv_dlopen_self+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test "$cross_compiling" = yes; then : + lt_cv_dlopen_self=cross +else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext <<_LT_EOF +#line $LINENO "configure" +#include "confdefs.h" + +#if HAVE_DLFCN_H +#include +#endif + +#include + +#ifdef RTLD_GLOBAL +# define LT_DLGLOBAL RTLD_GLOBAL +#else +# ifdef DL_GLOBAL +# define LT_DLGLOBAL DL_GLOBAL +# else +# define LT_DLGLOBAL 0 +# endif +#endif + +/* We may have to define LT_DLLAZY_OR_NOW in the command line if we + find out it does not work in some platform. */ +#ifndef LT_DLLAZY_OR_NOW +# ifdef RTLD_LAZY +# define LT_DLLAZY_OR_NOW RTLD_LAZY +# else +# ifdef DL_LAZY +# define LT_DLLAZY_OR_NOW DL_LAZY +# else +# ifdef RTLD_NOW +# define LT_DLLAZY_OR_NOW RTLD_NOW +# else +# ifdef DL_NOW +# define LT_DLLAZY_OR_NOW DL_NOW +# else +# define LT_DLLAZY_OR_NOW 0 +# endif +# endif +# endif +# endif +#endif + +/* When -fvisbility=hidden is used, assume the code has been annotated + correspondingly for the symbols needed. */ +#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) +int fnord () __attribute__((visibility("default"))); +#endif + +int fnord () { return 42; } +int main () +{ + void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); + int status = $lt_dlunknown; + + if (self) + { + if (dlsym (self,"fnord")) status = $lt_dlno_uscore; + else + { + if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; + else puts (dlerror ()); + } + /* dlclose (self); */ + } + else + puts (dlerror ()); + + return status; +} +_LT_EOF + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 + (eval $ac_link) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then + (./conftest; exit; ) >&5 2>/dev/null + lt_status=$? + case x$lt_status in + x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;; + x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;; + x$lt_dlunknown|x*) lt_cv_dlopen_self=no ;; + esac + else : + # compilation failed + lt_cv_dlopen_self=no + fi +fi +rm -fr conftest* + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self" >&5 +$as_echo "$lt_cv_dlopen_self" >&6; } + + if test "x$lt_cv_dlopen_self" = xyes; then + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5 +$as_echo_n "checking whether a statically linked program can dlopen itself... " >&6; } +if ${lt_cv_dlopen_self_static+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test "$cross_compiling" = yes; then : + lt_cv_dlopen_self_static=cross +else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext <<_LT_EOF +#line $LINENO "configure" +#include "confdefs.h" + +#if HAVE_DLFCN_H +#include +#endif + +#include + +#ifdef RTLD_GLOBAL +# define LT_DLGLOBAL RTLD_GLOBAL +#else +# ifdef DL_GLOBAL +# define LT_DLGLOBAL DL_GLOBAL +# else +# define LT_DLGLOBAL 0 +# endif +#endif + +/* We may have to define LT_DLLAZY_OR_NOW in the command line if we + find out it does not work in some platform. */ +#ifndef LT_DLLAZY_OR_NOW +# ifdef RTLD_LAZY +# define LT_DLLAZY_OR_NOW RTLD_LAZY +# else +# ifdef DL_LAZY +# define LT_DLLAZY_OR_NOW DL_LAZY +# else +# ifdef RTLD_NOW +# define LT_DLLAZY_OR_NOW RTLD_NOW +# else +# ifdef DL_NOW +# define LT_DLLAZY_OR_NOW DL_NOW +# else +# define LT_DLLAZY_OR_NOW 0 +# endif +# endif +# endif +# endif +#endif + +/* When -fvisbility=hidden is used, assume the code has been annotated + correspondingly for the symbols needed. */ +#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) +int fnord () __attribute__((visibility("default"))); +#endif + +int fnord () { return 42; } +int main () +{ + void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); + int status = $lt_dlunknown; + + if (self) + { + if (dlsym (self,"fnord")) status = $lt_dlno_uscore; + else + { + if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; + else puts (dlerror ()); + } + /* dlclose (self); */ + } + else + puts (dlerror ()); + + return status; +} +_LT_EOF + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 + (eval $ac_link) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then + (./conftest; exit; ) >&5 2>/dev/null + lt_status=$? + case x$lt_status in + x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;; + x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;; + x$lt_dlunknown|x*) lt_cv_dlopen_self_static=no ;; + esac + else : + # compilation failed + lt_cv_dlopen_self_static=no + fi +fi +rm -fr conftest* + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self_static" >&5 +$as_echo "$lt_cv_dlopen_self_static" >&6; } + fi + + CPPFLAGS="$save_CPPFLAGS" + LDFLAGS="$save_LDFLAGS" + LIBS="$save_LIBS" + ;; + esac + + case $lt_cv_dlopen_self in + yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; + *) enable_dlopen_self=unknown ;; + esac + + case $lt_cv_dlopen_self_static in + yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; + *) enable_dlopen_self_static=unknown ;; + esac +fi + + + + + + + + + + + + + + + + + +striplib= +old_striplib= +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5 +$as_echo_n "checking whether stripping libraries is possible... " >&6; } +if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then + test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" + test -z "$striplib" && striplib="$STRIP --strip-unneeded" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +else +# FIXME - insert some real tests, host_os isn't really good enough + case $host_os in + darwin*) + if test -n "$STRIP" ; then + striplib="$STRIP -x" + old_striplib="$STRIP -S" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + fi + ;; + *) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + ;; + esac +fi + + + + + + + + + + + + + # Report which library types will actually be built + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libtool supports shared libraries" >&5 +$as_echo_n "checking if libtool supports shared libraries... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $can_build_shared" >&5 +$as_echo "$can_build_shared" >&6; } + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries" >&5 +$as_echo_n "checking whether to build shared libraries... " >&6; } + test "$can_build_shared" = "no" && enable_shared=no + + # On AIX, shared libraries and static libraries use the same namespace, and + # are all built from PIC. + case $host_os in + aix3*) + test "$enable_shared" = yes && enable_static=no + if test -n "$RANLIB"; then + archive_cmds="$archive_cmds~\$RANLIB \$lib" + postinstall_cmds='$RANLIB $lib' + fi + ;; + + aix[4-9]*) + if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then + test "$enable_shared" = yes && enable_static=no + fi + ;; + esac + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_shared" >&5 +$as_echo "$enable_shared" >&6; } + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries" >&5 +$as_echo_n "checking whether to build static libraries... " >&6; } + # Make sure either enable_shared or enable_static is yes. + test "$enable_shared" = yes || enable_static=yes + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_static" >&5 +$as_echo "$enable_static" >&6; } + + + + +fi +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +CC="$lt_save_CC" + + + + + + + + + + + + + + + + ac_config_commands="$ac_config_commands libtool" + + + + +# Only expand once: + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5 +$as_echo_n "checking whether build environment is sane... " >&6; } +# Reject unsafe characters in $srcdir or the absolute working directory +# name. Accept space and tab only in the latter. +am_lf=' +' +case `pwd` in + *[\\\"\#\$\&\'\`$am_lf]*) + as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5;; +esac +case $srcdir in + *[\\\"\#\$\&\'\`$am_lf\ \ ]*) + as_fn_error $? "unsafe srcdir value: '$srcdir'" "$LINENO" 5;; +esac + +# Do 'set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + am_has_slept=no + for am_try in 1 2; do + echo "timestamp, slept: $am_has_slept" > conftest.file + set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` + if test "$*" = "X"; then + # -L didn't work. + set X `ls -t "$srcdir/configure" conftest.file` + fi + if test "$*" != "X $srcdir/configure conftest.file" \ + && test "$*" != "X conftest.file $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + as_fn_error $? "ls -t appears to fail. Make sure there is not a broken + alias in your environment" "$LINENO" 5 + fi + if test "$2" = conftest.file || test $am_try -eq 2; then + break + fi + # Just in case. + sleep 1 + am_has_slept=yes + done + test "$2" = conftest.file + ) +then + # Ok. + : +else + as_fn_error $? "newly created file is older than distributed files! +Check your system clock" "$LINENO" 5 +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +# If we didn't sleep, we still need to ensure time stamps of config.status and +# generated files are strictly newer. +am_sleep_pid= +if grep 'slept: no' conftest.file >/dev/null 2>&1; then + ( sleep 1 ) & + am_sleep_pid=$! +fi + +rm -f conftest.file + + + + + + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +acx_pthread_ok=no + +# We used to check for pthread.h first, but this fails if pthread.h +# requires special compiler flags (e.g. on True64 or Sequent). +# It gets checked for in the link test anyway. + +# First of all, check if the user has set any of the PTHREAD_LIBS, +# etcetera environment variables, and if threads linking works using +# them: +if test x"$PTHREAD_LIBS$PTHREAD_CFLAGS" != x; then + save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS $PTHREAD_CFLAGS" + save_LIBS="$LIBS" + LIBS="$PTHREAD_LIBS $LIBS" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread_join in LIBS=$PTHREAD_LIBS with CFLAGS=$PTHREAD_CFLAGS" >&5 +$as_echo_n "checking for pthread_join in LIBS=$PTHREAD_LIBS with CFLAGS=$PTHREAD_CFLAGS... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char pthread_join (); +int +main () +{ +return pthread_join (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + acx_pthread_ok=yes +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $acx_pthread_ok" >&5 +$as_echo "$acx_pthread_ok" >&6; } + if test x"$acx_pthread_ok" = xno; then + PTHREAD_LIBS="" + PTHREAD_CFLAGS="" + fi + LIBS="$save_LIBS" + CFLAGS="$save_CFLAGS" +fi + +# We must check for the threads library under a number of different +# names; the ordering is very important because some systems +# (e.g. DEC) have both -lpthread and -lpthreads, where one of the +# libraries is broken (non-POSIX). + +# Create a list of thread flags to try. Items starting with a "-" are +# C compiler flags, and other items are library names, except for "none" +# which indicates that we try without any flags at all, and "pthread-config" +# which is a program returning the flags for the Pth emulation library. + +acx_pthread_flags="pthreads none -Kthread -kthread lthread -pthread -pthreads -mthreads pthread --thread-safe -mt pthread-config" + +# The ordering *is* (sometimes) important. Some notes on the +# individual items follow: + +# pthreads: AIX (must check this before -lpthread) +# none: in case threads are in libc; should be tried before -Kthread and +# other compiler flags to prevent continual compiler warnings +# -Kthread: Sequent (threads in libc, but -Kthread needed for pthread.h) +# -kthread: FreeBSD kernel threads (preferred to -pthread since SMP-able) +# lthread: LinuxThreads port on FreeBSD (also preferred to -pthread) +# -pthread: Linux/gcc (kernel threads), BSD/gcc (userland threads) +# -pthreads: Solaris/gcc +# -mthreads: Mingw32/gcc, Lynx/gcc +# -mt: Sun Workshop C (may only link SunOS threads [-lthread], but it +# doesn't hurt to check since this sometimes defines pthreads too; +# also defines -D_REENTRANT) +# ... -mt is also the pthreads flag for HP/aCC +# pthread: Linux, etcetera +# --thread-safe: KAI C++ +# pthread-config: use pthread-config program (for GNU Pth library) + +case "${host_cpu}-${host_os}" in + *solaris*) + + # On Solaris (at least, for some versions), libc contains stubbed + # (non-functional) versions of the pthreads routines, so link-based + # tests will erroneously succeed. (We need to link with -pthreads/-mt/ + # -lpthread.) (The stubs are missing pthread_cleanup_push, or rather + # a function called by this macro, so we could check for that, but + # who knows whether they'll stub that too in a future libc.) So, + # we'll just look for -pthreads and -lpthread first: + + acx_pthread_flags="-pthreads pthread -mt -pthread $acx_pthread_flags" + ;; +esac + +if test x"$acx_pthread_ok" = xno; then +for flag in $acx_pthread_flags; do + + case $flag in + none) + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether pthreads work without any flags" >&5 +$as_echo_n "checking whether pthreads work without any flags... " >&6; } + ;; + + -*) + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether pthreads work with $flag" >&5 +$as_echo_n "checking whether pthreads work with $flag... " >&6; } + PTHREAD_CFLAGS="$flag" + ;; + + pthread-config) + # Extract the first word of "pthread-config", so it can be a program name with args. +set dummy pthread-config; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_acx_pthread_config+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$acx_pthread_config"; then + ac_cv_prog_acx_pthread_config="$acx_pthread_config" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_acx_pthread_config="yes" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + test -z "$ac_cv_prog_acx_pthread_config" && ac_cv_prog_acx_pthread_config="no" +fi +fi +acx_pthread_config=$ac_cv_prog_acx_pthread_config +if test -n "$acx_pthread_config"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $acx_pthread_config" >&5 +$as_echo "$acx_pthread_config" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + if test x"$acx_pthread_config" = xno; then continue; fi + PTHREAD_CFLAGS="`pthread-config --cflags`" + PTHREAD_LIBS="`pthread-config --ldflags` `pthread-config --libs`" + ;; + + *) + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for the pthreads library -l$flag" >&5 +$as_echo_n "checking for the pthreads library -l$flag... " >&6; } + PTHREAD_LIBS="-l$flag" + ;; + esac + + save_LIBS="$LIBS" + save_CFLAGS="$CFLAGS" + LIBS="$PTHREAD_LIBS $LIBS" + CFLAGS="$CFLAGS $PTHREAD_CFLAGS" + + # Check for various functions. We must include pthread.h, + # since some functions may be macros. (On the Sequent, we + # need a special flag -Kthread to make this header compile.) + # We check for pthread_join because it is in -lpthread on IRIX + # while pthread_create is in libc. We check for pthread_attr_init + # due to DEC craziness with -lpthreads. We check for + # pthread_cleanup_push because it is one of the few pthread + # functions on Solaris that doesn't have a non-functional libc stub. + # We try pthread_create on general principles. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main () +{ +pthread_t th; pthread_join(th, 0); + pthread_attr_init(0); pthread_cleanup_push(0, 0); + pthread_create(0,0,0,0); pthread_cleanup_pop(0); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + acx_pthread_ok=yes +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + + LIBS="$save_LIBS" + CFLAGS="$save_CFLAGS" + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $acx_pthread_ok" >&5 +$as_echo "$acx_pthread_ok" >&6; } + if test "x$acx_pthread_ok" = xyes; then + break; + fi + + PTHREAD_LIBS="" + PTHREAD_CFLAGS="" +done +fi + +# Various other checks: +if test "x$acx_pthread_ok" = xyes; then + save_LIBS="$LIBS" + LIBS="$PTHREAD_LIBS $LIBS" + save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS $PTHREAD_CFLAGS" + + # Detect AIX lossage: JOINABLE attribute is called UNDETACHED. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for joinable pthread attribute" >&5 +$as_echo_n "checking for joinable pthread attribute... " >&6; } + attr_name=unknown + for attr in PTHREAD_CREATE_JOINABLE PTHREAD_CREATE_UNDETACHED; do + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main () +{ +int attr=$attr; return attr; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + attr_name=$attr; break +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + done + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $attr_name" >&5 +$as_echo "$attr_name" >&6; } + if test "$attr_name" != PTHREAD_CREATE_JOINABLE; then + +cat >>confdefs.h <<_ACEOF +#define PTHREAD_CREATE_JOINABLE $attr_name +_ACEOF + + fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if more special flags are required for pthreads" >&5 +$as_echo_n "checking if more special flags are required for pthreads... " >&6; } + flag=no + case "${host_cpu}-${host_os}" in + *-aix* | *-freebsd* | *-darwin*) flag="-D_THREAD_SAFE";; + *solaris* | *-osf* | *-hpux*) flag="-D_REENTRANT";; + esac + { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${flag}" >&5 +$as_echo "${flag}" >&6; } + if test "x$flag" != xno; then + PTHREAD_CFLAGS="$flag $PTHREAD_CFLAGS" + fi + + LIBS="$save_LIBS" + CFLAGS="$save_CFLAGS" + + # More AIX lossage: must compile with xlc_r or cc_r + if test x"$GCC" != xyes; then + for ac_prog in xlc_r cc_r +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_PTHREAD_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$PTHREAD_CC"; then + ac_cv_prog_PTHREAD_CC="$PTHREAD_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_PTHREAD_CC="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +PTHREAD_CC=$ac_cv_prog_PTHREAD_CC +if test -n "$PTHREAD_CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PTHREAD_CC" >&5 +$as_echo "$PTHREAD_CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$PTHREAD_CC" && break +done +test -n "$PTHREAD_CC" || PTHREAD_CC="${CC}" + + else + PTHREAD_CC=$CC + fi +else + PTHREAD_CC="$CC" +fi + + + + + +# Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND: +if test x"$acx_pthread_ok" = xyes; then + +$as_echo "#define HAVE_PTHREAD 1" >>confdefs.h + + : +else + acx_pthread_ok=no + +fi +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + + + + + +GETTEXT_PACKAGE_V4L2CORE=gview_v4l2core + + +cat >>confdefs.h <<_ACEOF +#define GETTEXT_PACKAGE_V4L2CORE "$GETTEXT_PACKAGE_V4L2CORE" +_ACEOF + + +GETTEXT_PACKAGE=guvcview + + +cat >>confdefs.h <<_ACEOF +#define GETTEXT_PACKAGE "$GETTEXT_PACKAGE" +_ACEOF + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether NLS is requested" >&5 +$as_echo_n "checking whether NLS is requested... " >&6; } + # Check whether --enable-nls was given. +if test "${enable_nls+set}" = set; then : + enableval=$enable_nls; USE_NLS=$enableval +else + USE_NLS=yes +fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_NLS" >&5 +$as_echo "$USE_NLS" >&6; } + + + + +case "$am__api_version" in + 1.01234) + as_fn_error $? "Automake 1.5 or newer is required to use intltool" "$LINENO" 5 + ;; + *) + ;; +esac + +INTLTOOL_REQUIRED_VERSION_AS_INT=`echo 0.40 | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'` +INTLTOOL_APPLIED_VERSION=`intltool-update --version | head -1 | cut -d" " -f3` +INTLTOOL_APPLIED_VERSION_AS_INT=`echo $INTLTOOL_APPLIED_VERSION | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'` +if test -n "0.40"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for intltool >= 0.40" >&5 +$as_echo_n "checking for intltool >= 0.40... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_APPLIED_VERSION found" >&5 +$as_echo "$INTLTOOL_APPLIED_VERSION found" >&6; } + test "$INTLTOOL_APPLIED_VERSION_AS_INT" -ge "$INTLTOOL_REQUIRED_VERSION_AS_INT" || + as_fn_error $? "Your intltool is too old. You need intltool 0.40 or later." "$LINENO" 5 +fi + +# Extract the first word of "intltool-update", so it can be a program name with args. +set dummy intltool-update; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_INTLTOOL_UPDATE+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $INTLTOOL_UPDATE in + [\\/]* | ?:[\\/]*) + ac_cv_path_INTLTOOL_UPDATE="$INTLTOOL_UPDATE" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_INTLTOOL_UPDATE="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +INTLTOOL_UPDATE=$ac_cv_path_INTLTOOL_UPDATE +if test -n "$INTLTOOL_UPDATE"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_UPDATE" >&5 +$as_echo "$INTLTOOL_UPDATE" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +# Extract the first word of "intltool-merge", so it can be a program name with args. +set dummy intltool-merge; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_INTLTOOL_MERGE+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $INTLTOOL_MERGE in + [\\/]* | ?:[\\/]*) + ac_cv_path_INTLTOOL_MERGE="$INTLTOOL_MERGE" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_INTLTOOL_MERGE="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +INTLTOOL_MERGE=$ac_cv_path_INTLTOOL_MERGE +if test -n "$INTLTOOL_MERGE"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_MERGE" >&5 +$as_echo "$INTLTOOL_MERGE" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +# Extract the first word of "intltool-extract", so it can be a program name with args. +set dummy intltool-extract; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_INTLTOOL_EXTRACT+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $INTLTOOL_EXTRACT in + [\\/]* | ?:[\\/]*) + ac_cv_path_INTLTOOL_EXTRACT="$INTLTOOL_EXTRACT" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_INTLTOOL_EXTRACT="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +INTLTOOL_EXTRACT=$ac_cv_path_INTLTOOL_EXTRACT +if test -n "$INTLTOOL_EXTRACT"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_EXTRACT" >&5 +$as_echo "$INTLTOOL_EXTRACT" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +if test -z "$INTLTOOL_UPDATE" -o -z "$INTLTOOL_MERGE" -o -z "$INTLTOOL_EXTRACT"; then + as_fn_error $? "The intltool scripts were not found. Please install intltool." "$LINENO" 5 +fi + +if test -z "$AM_DEFAULT_VERBOSITY"; then + AM_DEFAULT_VERBOSITY=1 +fi + + +INTLTOOL_V_MERGE='$(INTLTOOL__v_MERGE_$(V))' +INTLTOOL__v_MERGE_='$(INTLTOOL__v_MERGE_$(AM_DEFAULT_VERBOSITY))' +INTLTOOL__v_MERGE_0='@echo " ITMRG " $@;' + + + + +INTLTOOL_V_MERGE_OPTIONS='$(intltool__v_merge_options_$(V))' +intltool__v_merge_options_='$(intltool__v_merge_options_$(AM_DEFAULT_VERBOSITY))' +intltool__v_merge_options_0='-q' + + + + + INTLTOOL_DESKTOP_RULE='%.desktop: %.desktop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' +INTLTOOL_DIRECTORY_RULE='%.directory: %.directory.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' + INTLTOOL_KEYS_RULE='%.keys: %.keys.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -k -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' + INTLTOOL_PROP_RULE='%.prop: %.prop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' + INTLTOOL_OAF_RULE='%.oaf: %.oaf.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -o -p $(top_srcdir)/po $< $@' + INTLTOOL_PONG_RULE='%.pong: %.pong.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' + INTLTOOL_SERVER_RULE='%.server: %.server.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -o -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' + INTLTOOL_SHEET_RULE='%.sheet: %.sheet.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' +INTLTOOL_SOUNDLIST_RULE='%.soundlist: %.soundlist.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' + INTLTOOL_UI_RULE='%.ui: %.ui.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' + INTLTOOL_XML_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' +if test "$INTLTOOL_APPLIED_VERSION_AS_INT" -ge 5000; then + INTLTOOL_XML_NOMERGE_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u --no-translations $< $@' +else + INTLTOOL_XML_NOMERGE_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) ; $(INTLTOOL_V_MERGE)_it_tmp_dir=tmp.intltool.$$RANDOM && mkdir $$_it_tmp_dir && LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u $$_it_tmp_dir $< $@ && rmdir $$_it_tmp_dir' +fi + INTLTOOL_XAM_RULE='%.xam: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' + INTLTOOL_KBD_RULE='%.kbd: %.kbd.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -m -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' + INTLTOOL_CAVES_RULE='%.caves: %.caves.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' + INTLTOOL_SCHEMAS_RULE='%.schemas: %.schemas.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -s -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' + INTLTOOL_THEME_RULE='%.theme: %.theme.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' + INTLTOOL_SERVICE_RULE='%.service: %.service.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' + INTLTOOL_POLICY_RULE='%.policy: %.policy.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +# Check the gettext tools to make sure they are GNU +# Extract the first word of "xgettext", so it can be a program name with args. +set dummy xgettext; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_XGETTEXT+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $XGETTEXT in + [\\/]* | ?:[\\/]*) + ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_XGETTEXT="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +XGETTEXT=$ac_cv_path_XGETTEXT +if test -n "$XGETTEXT"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XGETTEXT" >&5 +$as_echo "$XGETTEXT" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +# Extract the first word of "msgmerge", so it can be a program name with args. +set dummy msgmerge; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_MSGMERGE+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $MSGMERGE in + [\\/]* | ?:[\\/]*) + ac_cv_path_MSGMERGE="$MSGMERGE" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_MSGMERGE="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +MSGMERGE=$ac_cv_path_MSGMERGE +if test -n "$MSGMERGE"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGMERGE" >&5 +$as_echo "$MSGMERGE" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +# Extract the first word of "msgfmt", so it can be a program name with args. +set dummy msgfmt; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_MSGFMT+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $MSGFMT in + [\\/]* | ?:[\\/]*) + ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_MSGFMT="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +MSGFMT=$ac_cv_path_MSGFMT +if test -n "$MSGFMT"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGFMT" >&5 +$as_echo "$MSGFMT" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +# Extract the first word of "gmsgfmt", so it can be a program name with args. +set dummy gmsgfmt; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_GMSGFMT+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $GMSGFMT in + [\\/]* | ?:[\\/]*) + ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_GMSGFMT="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT" + ;; +esac +fi +GMSGFMT=$ac_cv_path_GMSGFMT +if test -n "$GMSGFMT"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GMSGFMT" >&5 +$as_echo "$GMSGFMT" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +if test -z "$XGETTEXT" -o -z "$MSGMERGE" -o -z "$MSGFMT"; then + as_fn_error $? "GNU gettext tools not found; required for intltool" "$LINENO" 5 +fi +xgversion="`$XGETTEXT --version|grep '(GNU ' 2> /dev/null`" +mmversion="`$MSGMERGE --version|grep '(GNU ' 2> /dev/null`" +mfversion="`$MSGFMT --version|grep '(GNU ' 2> /dev/null`" +if test -z "$xgversion" -o -z "$mmversion" -o -z "$mfversion"; then + as_fn_error $? "GNU gettext tools not found; required for intltool" "$LINENO" 5 +fi + +# Extract the first word of "perl", so it can be a program name with args. +set dummy perl; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_INTLTOOL_PERL+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $INTLTOOL_PERL in + [\\/]* | ?:[\\/]*) + ac_cv_path_INTLTOOL_PERL="$INTLTOOL_PERL" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_INTLTOOL_PERL="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +INTLTOOL_PERL=$ac_cv_path_INTLTOOL_PERL +if test -n "$INTLTOOL_PERL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_PERL" >&5 +$as_echo "$INTLTOOL_PERL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +if test -z "$INTLTOOL_PERL"; then + as_fn_error $? "perl not found" "$LINENO" 5 +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for perl >= 5.8.1" >&5 +$as_echo_n "checking for perl >= 5.8.1... " >&6; } +$INTLTOOL_PERL -e "use 5.8.1;" > /dev/null 2>&1 +if test $? -ne 0; then + as_fn_error $? "perl 5.8.1 is required for intltool" "$LINENO" 5 +else + IT_PERL_VERSION=`$INTLTOOL_PERL -e "printf '%vd', $^V"` + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $IT_PERL_VERSION" >&5 +$as_echo "$IT_PERL_VERSION" >&6; } +fi +if test "x" != "xno-xml"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XML::Parser" >&5 +$as_echo_n "checking for XML::Parser... " >&6; } + if `$INTLTOOL_PERL -e "require XML::Parser" 2>/dev/null`; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5 +$as_echo "ok" >&6; } + else + as_fn_error $? "XML::Parser perl module is required for intltool" "$LINENO" 5 + fi +fi + +# Substitute ALL_LINGUAS so we can use it in po/Makefile + + +# Set DATADIRNAME correctly if it is not set yet +# (copied from glib-gettext.m4) +if test -z "$DATADIRNAME"; then + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ +extern int _nl_msg_cat_cntr; + return _nl_msg_cat_cntr + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + DATADIRNAME=share +else + case $host in + *-*-solaris*) + ac_fn_c_check_func "$LINENO" "bind_textdomain_codeset" "ac_cv_func_bind_textdomain_codeset" +if test "x$ac_cv_func_bind_textdomain_codeset" = xyes; then : + DATADIRNAME=share +else + DATADIRNAME=lib +fi + + ;; + *) + DATADIRNAME=lib + ;; + esac +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + + + + + + +ALL_LINGUAS="bg bs cs da de en_AU es eu fo fr gl he hr it ja lv nl pl pt pt_BR ru si sr tr uk zh_TW" + + for ac_header in locale.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "locale.h" "ac_cv_header_locale_h" "$ac_includes_default" +if test "x$ac_cv_header_locale_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_LOCALE_H 1 +_ACEOF + +fi + +done + + if test $ac_cv_header_locale_h = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for LC_MESSAGES" >&5 +$as_echo_n "checking for LC_MESSAGES... " >&6; } +if ${am_cv_val_LC_MESSAGES+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main () +{ +return LC_MESSAGES + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + am_cv_val_LC_MESSAGES=yes +else + am_cv_val_LC_MESSAGES=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_val_LC_MESSAGES" >&5 +$as_echo "$am_cv_val_LC_MESSAGES" >&6; } + if test $am_cv_val_LC_MESSAGES = yes; then + +$as_echo "#define HAVE_LC_MESSAGES 1" >>confdefs.h + + fi + fi + USE_NLS=yes + + + gt_cv_have_gettext=no + + CATOBJEXT=NONE + XGETTEXT=: + INTLLIBS= + + ac_fn_c_check_header_mongrel "$LINENO" "libintl.h" "ac_cv_header_libintl_h" "$ac_includes_default" +if test "x$ac_cv_header_libintl_h" = xyes; then : + gt_cv_func_dgettext_libintl="no" + libintl_extra_libs="" + + # + # First check in libc + # + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ngettext in libc" >&5 +$as_echo_n "checking for ngettext in libc... " >&6; } +if ${gt_cv_func_ngettext_libc+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include + +int +main () +{ +return !ngettext ("","", 1) + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + gt_cv_func_ngettext_libc=yes +else + gt_cv_func_ngettext_libc=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_ngettext_libc" >&5 +$as_echo "$gt_cv_func_ngettext_libc" >&6; } + + if test "$gt_cv_func_ngettext_libc" = "yes" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dgettext in libc" >&5 +$as_echo_n "checking for dgettext in libc... " >&6; } +if ${gt_cv_func_dgettext_libc+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include + +int +main () +{ +return !dgettext ("","") + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + gt_cv_func_dgettext_libc=yes +else + gt_cv_func_dgettext_libc=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_dgettext_libc" >&5 +$as_echo "$gt_cv_func_dgettext_libc" >&6; } + fi + + if test "$gt_cv_func_ngettext_libc" = "yes" ; then + for ac_func in bind_textdomain_codeset +do : + ac_fn_c_check_func "$LINENO" "bind_textdomain_codeset" "ac_cv_func_bind_textdomain_codeset" +if test "x$ac_cv_func_bind_textdomain_codeset" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_BIND_TEXTDOMAIN_CODESET 1 +_ACEOF + +fi +done + + fi + + # + # If we don't have everything we want, check in libintl + # + if test "$gt_cv_func_dgettext_libc" != "yes" \ + || test "$gt_cv_func_ngettext_libc" != "yes" \ + || test "$ac_cv_func_bind_textdomain_codeset" != "yes" ; then + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for bindtextdomain in -lintl" >&5 +$as_echo_n "checking for bindtextdomain in -lintl... " >&6; } +if ${ac_cv_lib_intl_bindtextdomain+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lintl $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char bindtextdomain (); +int +main () +{ +return bindtextdomain (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_intl_bindtextdomain=yes +else + ac_cv_lib_intl_bindtextdomain=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_bindtextdomain" >&5 +$as_echo "$ac_cv_lib_intl_bindtextdomain" >&6; } +if test "x$ac_cv_lib_intl_bindtextdomain" = xyes; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ngettext in -lintl" >&5 +$as_echo_n "checking for ngettext in -lintl... " >&6; } +if ${ac_cv_lib_intl_ngettext+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lintl $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char ngettext (); +int +main () +{ +return ngettext (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_intl_ngettext=yes +else + ac_cv_lib_intl_ngettext=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_ngettext" >&5 +$as_echo "$ac_cv_lib_intl_ngettext" >&6; } +if test "x$ac_cv_lib_intl_ngettext" = xyes; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dgettext in -lintl" >&5 +$as_echo_n "checking for dgettext in -lintl... " >&6; } +if ${ac_cv_lib_intl_dgettext+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lintl $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dgettext (); +int +main () +{ +return dgettext (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_intl_dgettext=yes +else + ac_cv_lib_intl_dgettext=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_dgettext" >&5 +$as_echo "$ac_cv_lib_intl_dgettext" >&6; } +if test "x$ac_cv_lib_intl_dgettext" = xyes; then : + gt_cv_func_dgettext_libintl=yes +fi + +fi + +fi + + + if test "$gt_cv_func_dgettext_libintl" != "yes" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if -liconv is needed to use gettext" >&5 +$as_echo_n "checking if -liconv is needed to use gettext... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 +$as_echo "" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ngettext in -lintl" >&5 +$as_echo_n "checking for ngettext in -lintl... " >&6; } +if ${ac_cv_lib_intl_ngettext+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lintl -liconv $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char ngettext (); +int +main () +{ +return ngettext (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_intl_ngettext=yes +else + ac_cv_lib_intl_ngettext=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_ngettext" >&5 +$as_echo "$ac_cv_lib_intl_ngettext" >&6; } +if test "x$ac_cv_lib_intl_ngettext" = xyes; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dcgettext in -lintl" >&5 +$as_echo_n "checking for dcgettext in -lintl... " >&6; } +if ${ac_cv_lib_intl_dcgettext+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lintl -liconv $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dcgettext (); +int +main () +{ +return dcgettext (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_intl_dcgettext=yes +else + ac_cv_lib_intl_dcgettext=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_dcgettext" >&5 +$as_echo "$ac_cv_lib_intl_dcgettext" >&6; } +if test "x$ac_cv_lib_intl_dcgettext" = xyes; then : + gt_cv_func_dgettext_libintl=yes + libintl_extra_libs=-liconv +else + : +fi + +else + : +fi + + fi + + # + # If we found libintl, then check in it for bind_textdomain_codeset(); + # we'll prefer libc if neither have bind_textdomain_codeset(), + # and both have dgettext and ngettext + # + if test "$gt_cv_func_dgettext_libintl" = "yes" ; then + glib_save_LIBS="$LIBS" + LIBS="$LIBS -lintl $libintl_extra_libs" + unset ac_cv_func_bind_textdomain_codeset + for ac_func in bind_textdomain_codeset +do : + ac_fn_c_check_func "$LINENO" "bind_textdomain_codeset" "ac_cv_func_bind_textdomain_codeset" +if test "x$ac_cv_func_bind_textdomain_codeset" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_BIND_TEXTDOMAIN_CODESET 1 +_ACEOF + +fi +done + + LIBS="$glib_save_LIBS" + + if test "$ac_cv_func_bind_textdomain_codeset" = "yes" ; then + gt_cv_func_dgettext_libc=no + else + if test "$gt_cv_func_dgettext_libc" = "yes" \ + && test "$gt_cv_func_ngettext_libc" = "yes"; then + gt_cv_func_dgettext_libintl=no + fi + fi + fi + fi + + if test "$gt_cv_func_dgettext_libc" = "yes" \ + || test "$gt_cv_func_dgettext_libintl" = "yes"; then + gt_cv_have_gettext=yes + fi + + if test "$gt_cv_func_dgettext_libintl" = "yes"; then + INTLLIBS="-lintl $libintl_extra_libs" + fi + + if test "$gt_cv_have_gettext" = "yes"; then + +$as_echo "#define HAVE_GETTEXT 1" >>confdefs.h + + # Extract the first word of "msgfmt", so it can be a program name with args. +set dummy msgfmt; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_MSGFMT+:} false; then : + $as_echo_n "(cached) " >&6 +else + case "$MSGFMT" in + /*) + ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path. + ;; + *) + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" + for ac_dir in $PATH; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + if test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"; then + ac_cv_path_MSGFMT="$ac_dir/$ac_word" + break + fi + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_path_MSGFMT" && ac_cv_path_MSGFMT="no" + ;; +esac +fi +MSGFMT="$ac_cv_path_MSGFMT" +if test "$MSGFMT" != "no"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGFMT" >&5 +$as_echo "$MSGFMT" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + if test "$MSGFMT" != "no"; then + glib_save_LIBS="$LIBS" + LIBS="$LIBS $INTLLIBS" + for ac_func in dcgettext +do : + ac_fn_c_check_func "$LINENO" "dcgettext" "ac_cv_func_dcgettext" +if test "x$ac_cv_func_dcgettext" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_DCGETTEXT 1 +_ACEOF + +fi +done + + MSGFMT_OPTS= + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if msgfmt accepts -c" >&5 +$as_echo_n "checking if msgfmt accepts -c... " >&6; } + cat >conftest.foo <<_ACEOF + +msgid "" +msgstr "" +"Content-Type: text/plain; charset=UTF-8\n" +"Project-Id-Version: test 1.0\n" +"PO-Revision-Date: 2007-02-15 12:01+0100\n" +"Last-Translator: test \n" +"Language-Team: C \n" +"MIME-Version: 1.0\n" +"Content-Transfer-Encoding: 8bit\n" + +_ACEOF +if { { $as_echo "$as_me:${as_lineno-$LINENO}: \$MSGFMT -c -o /dev/null conftest.foo"; } >&5 + ($MSGFMT -c -o /dev/null conftest.foo) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + MSGFMT_OPTS=-c; { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +echo "$as_me: failed input was:" >&5 +sed 's/^/| /' conftest.foo >&5 +fi + + # Extract the first word of "gmsgfmt", so it can be a program name with args. set dummy gmsgfmt; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } @@ -5232,370 +13199,325 @@ fi -if test -z "$XGETTEXT" -o -z "$MSGMERGE" -o -z "$MSGFMT"; then - as_fn_error $? "GNU gettext tools not found; required for intltool" "$LINENO" 5 -fi -xgversion="`$XGETTEXT --version|grep '(GNU ' 2> /dev/null`" -mmversion="`$MSGMERGE --version|grep '(GNU ' 2> /dev/null`" -mfversion="`$MSGFMT --version|grep '(GNU ' 2> /dev/null`" -if test -z "$xgversion" -o -z "$mmversion" -o -z "$mfversion"; then - as_fn_error $? "GNU gettext tools not found; required for intltool" "$LINENO" 5 -fi - -# Extract the first word of "perl", so it can be a program name with args. -set dummy perl; ac_word=$2 + # Extract the first word of "xgettext", so it can be a program name with args. +set dummy xgettext; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_INTLTOOL_PERL+:} false; then : +if ${ac_cv_path_XGETTEXT+:} false; then : $as_echo_n "(cached) " >&6 else - case $INTLTOOL_PERL in - [\\/]* | ?:[\\/]*) - ac_cv_path_INTLTOOL_PERL="$INTLTOOL_PERL" # Let the user override the test with a path. + case "$XGETTEXT" in + /*) + ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path. ;; *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_INTLTOOL_PERL="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" + for ac_dir in $PATH; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + if test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"; then + ac_cv_path_XGETTEXT="$ac_dir/$ac_word" + break + fi + fi done -IFS=$as_save_IFS - + IFS="$ac_save_ifs" + test -z "$ac_cv_path_XGETTEXT" && ac_cv_path_XGETTEXT=":" ;; esac fi -INTLTOOL_PERL=$ac_cv_path_INTLTOOL_PERL -if test -n "$INTLTOOL_PERL"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_PERL" >&5 -$as_echo "$INTLTOOL_PERL" >&6; } +XGETTEXT="$ac_cv_path_XGETTEXT" +if test "$XGETTEXT" != ":"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XGETTEXT" >&5 +$as_echo "$XGETTEXT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi - -if test -z "$INTLTOOL_PERL"; then - as_fn_error $? "perl not found" "$LINENO" 5 -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for perl >= 5.8.1" >&5 -$as_echo_n "checking for perl >= 5.8.1... " >&6; } -$INTLTOOL_PERL -e "use 5.8.1;" > /dev/null 2>&1 -if test $? -ne 0; then - as_fn_error $? "perl 5.8.1 is required for intltool" "$LINENO" 5 -else - IT_PERL_VERSION="`$INTLTOOL_PERL -e \"printf '%vd', $^V\"`" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $IT_PERL_VERSION" >&5 -$as_echo "$IT_PERL_VERSION" >&6; } -fi -if test "x" != "xno-xml"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XML::Parser" >&5 -$as_echo_n "checking for XML::Parser... " >&6; } - if `$INTLTOOL_PERL -e "require XML::Parser" 2>/dev/null`; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5 -$as_echo "ok" >&6; } - else - as_fn_error $? "XML::Parser perl module is required for intltool" "$LINENO" 5 - fi -fi - -# Substitute ALL_LINGUAS so we can use it in po/Makefile - - -# Set DATADIRNAME correctly if it is not set yet -# (copied from glib-gettext.m4) -if test -z "$DATADIRNAME"; then - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { extern int _nl_msg_cat_cntr; - return _nl_msg_cat_cntr + return _nl_msg_cat_cntr ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : - DATADIRNAME=share + CATOBJEXT=.gmo + DATADIRNAME=share else case $host in - *-*-solaris*) - ac_fn_c_check_func "$LINENO" "bind_textdomain_codeset" "ac_cv_func_bind_textdomain_codeset" + *-*-solaris*) + ac_fn_c_check_func "$LINENO" "bind_textdomain_codeset" "ac_cv_func_bind_textdomain_codeset" if test "x$ac_cv_func_bind_textdomain_codeset" = xyes; then : - DATADIRNAME=share + CATOBJEXT=.gmo + DATADIRNAME=share else - DATADIRNAME=lib + CATOBJEXT=.mo + DATADIRNAME=lib fi - ;; - *) - DATADIRNAME=lib - ;; - esac + ;; + *-*-openbsd*) + CATOBJEXT=.mo + DATADIRNAME=share + ;; + *) + CATOBJEXT=.mo + DATADIRNAME=lib + ;; + esac fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext + LIBS="$glib_save_LIBS" + INSTOBJEXT=.mo + else + gt_cv_have_gettext=no + fi + fi + fi + if test "$gt_cv_have_gettext" = "yes" ; then +$as_echo "#define ENABLE_NLS 1" >>confdefs.h + fi -ALL_LINGUAS="bg bs cs da de en_AU es eu fo fr gl he hr it ja lv nl pl pt pt_BR ru si sr tr uk zh_TW" -# On IRIX 5.3, sys/types and inttypes.h are conflicting. -for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ - inttypes.h stdint.h unistd.h -do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default -" -if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF + if test "$XGETTEXT" != ":"; then + if $XGETTEXT --omit-header /dev/null 2> /dev/null; then + : ; + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: found xgettext program is not GNU xgettext; ignore it" >&5 +$as_echo "found xgettext program is not GNU xgettext; ignore it" >&6; } + XGETTEXT=":" + fi + fi -fi + # We need to process the po/ directory. + POSUB=po -done + ac_config_commands="$ac_config_commands default-1" + for lang in $ALL_LINGUAS; do + GMOFILES="$GMOFILES $lang.gmo" + POFILES="$POFILES $lang.po" + done - for ac_header in locale.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "locale.h" "ac_cv_header_locale_h" "$ac_includes_default" -if test "x$ac_cv_header_locale_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_LOCALE_H 1 -_ACEOF -fi -done - if test $ac_cv_header_locale_h = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for LC_MESSAGES" >&5 -$as_echo_n "checking for LC_MESSAGES... " >&6; } -if ${am_cv_val_LC_MESSAGES+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main () -{ -return LC_MESSAGES - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - am_cv_val_LC_MESSAGES=yes -else - am_cv_val_LC_MESSAGES=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_val_LC_MESSAGES" >&5 -$as_echo "$am_cv_val_LC_MESSAGES" >&6; } - if test $am_cv_val_LC_MESSAGES = yes; then -$as_echo "#define HAVE_LC_MESSAGES 1" >>confdefs.h - fi - fi - USE_NLS=yes - gt_cv_have_gettext=no - CATOBJEXT=NONE - XGETTEXT=: - INTLLIBS= - ac_fn_c_check_header_mongrel "$LINENO" "libintl.h" "ac_cv_header_libintl_h" "$ac_includes_default" -if test "x$ac_cv_header_libintl_h" = xyes; then : - gt_cv_func_dgettext_libintl="no" - libintl_extra_libs="" - # - # First check in libc - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ngettext in libc" >&5 -$as_echo_n "checking for ngettext in libc... " >&6; } -if ${gt_cv_func_ngettext_libc+:} false; then : + + + if test "$gt_cv_have_gettext" = "yes"; then + if test "x$ALL_LINGUAS" = "x"; then + LINGUAS= + else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for catalogs to be installed" >&5 +$as_echo_n "checking for catalogs to be installed... " >&6; } + NEW_LINGUAS= + for presentlang in $ALL_LINGUAS; do + useit=no + if test "%UNSET%" != "${LINGUAS-%UNSET%}"; then + desiredlanguages="$LINGUAS" + else + desiredlanguages="$ALL_LINGUAS" + fi + for desiredlang in $desiredlanguages; do + # Use the presentlang catalog if desiredlang is + # a. equal to presentlang, or + # b. a variant of presentlang (because in this case, + # presentlang can be used as a fallback for messages + # which are not translated in the desiredlang catalog). + case "$desiredlang" in + "$presentlang"*) useit=yes;; + esac + done + if test $useit = yes; then + NEW_LINGUAS="$NEW_LINGUAS $presentlang" + fi + done + LINGUAS=$NEW_LINGUAS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LINGUAS" >&5 +$as_echo "$LINGUAS" >&6; } + fi + + if test -n "$LINGUAS"; then + for lang in $LINGUAS; do CATALOGS="$CATALOGS $lang$CATOBJEXT"; done + fi + fi + + MKINSTALLDIRS= + if test -n "$ac_aux_dir"; then + MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs" + fi + if test -z "$MKINSTALLDIRS"; then + MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs" + fi + + + test -d po || mkdir po + if test "x$srcdir" != "x."; then + if test "x`echo $srcdir | sed 's@/.*@@'`" = "x"; then + posrcprefix="$srcdir/" + else + posrcprefix="../$srcdir/" + fi + else + posrcprefix="../" + fi + rm -f po/POTFILES + sed -e "/^#/d" -e "/^\$/d" -e "s,.*, $posrcprefix& \\\\," -e "\$s/\(.*\) \\\\/\1/" \ + < $srcdir/po/POTFILES.in > po/POTFILES + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 +$as_echo_n "checking for ANSI C header files... " >&6; } +if ${ac_cv_header_stdc+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ - -#include +#include +#include +#include +#include int main () { -return !ngettext ("","", 1) + ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : - gt_cv_func_ngettext_libc=yes +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_header_stdc=yes else - gt_cv_func_ngettext_libc=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - + ac_cv_header_stdc=no fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_ngettext_libc" >&5 -$as_echo "$gt_cv_func_ngettext_libc" >&6; } +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - if test "$gt_cv_func_ngettext_libc" = "yes" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dgettext in libc" >&5 -$as_echo_n "checking for dgettext in libc... " >&6; } -if ${gt_cv_func_dgettext_libc+:} false; then : - $as_echo_n "(cached) " >&6 -else +if test $ac_cv_header_stdc = yes; then + # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ +#include -#include - -int -main () -{ -return !dgettext ("","") - ; - return 0; -} _ACEOF -if ac_fn_c_try_link "$LINENO"; then : - gt_cv_func_dgettext_libc=yes +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "memchr" >/dev/null 2>&1; then : + else - gt_cv_func_dgettext_libc=no + ac_cv_header_stdc=no fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext +rm -f conftest* fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_dgettext_libc" >&5 -$as_echo "$gt_cv_func_dgettext_libc" >&6; } - fi - if test "$gt_cv_func_ngettext_libc" = "yes" ; then - for ac_func in bind_textdomain_codeset -do : - ac_fn_c_check_func "$LINENO" "bind_textdomain_codeset" "ac_cv_func_bind_textdomain_codeset" -if test "x$ac_cv_func_bind_textdomain_codeset" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_BIND_TEXTDOMAIN_CODESET 1 +if test $ac_cv_header_stdc = yes; then + # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + _ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "free" >/dev/null 2>&1; then : +else + ac_cv_header_stdc=no fi -done - - fi +rm -f conftest* - # - # If we don't have everything we want, check in libintl - # - if test "$gt_cv_func_dgettext_libc" != "yes" \ - || test "$gt_cv_func_ngettext_libc" != "yes" \ - || test "$ac_cv_func_bind_textdomain_codeset" != "yes" ; then +fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for bindtextdomain in -lintl" >&5 -$as_echo_n "checking for bindtextdomain in -lintl... " >&6; } -if ${ac_cv_lib_intl_bindtextdomain+:} false; then : - $as_echo_n "(cached) " >&6 +if test $ac_cv_header_stdc = yes; then + # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. + if test "$cross_compiling" = yes; then : + : else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lintl $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" +#include +#include +#if ((' ' & 0x0FF) == 0x020) +# define ISLOWER(c) ('a' <= (c) && (c) <= 'z') +# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) +#else +# define ISLOWER(c) \ + (('a' <= (c) && (c) <= 'i') \ + || ('j' <= (c) && (c) <= 'r') \ + || ('s' <= (c) && (c) <= 'z')) +# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) #endif -char bindtextdomain (); + +#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) int main () { -return bindtextdomain (); - ; + int i; + for (i = 0; i < 256; i++) + if (XOR (islower (i), ISLOWER (i)) + || toupper (i) != TOUPPER (i)) + return 2; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_intl_bindtextdomain=yes +if ac_fn_c_try_run "$LINENO"; then : + else - ac_cv_lib_intl_bindtextdomain=no + ac_cv_header_stdc=no fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_bindtextdomain" >&5 -$as_echo "$ac_cv_lib_intl_bindtextdomain" >&6; } -if test "x$ac_cv_lib_intl_bindtextdomain" = xyes; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ngettext in -lintl" >&5 -$as_echo_n "checking for ngettext in -lintl... " >&6; } -if ${ac_cv_lib_intl_ngettext+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lintl $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char ngettext (); -int -main () -{ -return ngettext (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_intl_ngettext=yes -else - ac_cv_lib_intl_ngettext=no fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_ngettext" >&5 -$as_echo "$ac_cv_lib_intl_ngettext" >&6; } -if test "x$ac_cv_lib_intl_ngettext" = xyes; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dgettext in -lintl" >&5 -$as_echo_n "checking for dgettext in -lintl... " >&6; } -if ${ac_cv_lib_intl_dgettext+:} false; then : +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 +$as_echo "$ac_cv_header_stdc" >&6; } +if test $ac_cv_header_stdc = yes; then + +$as_echo "#define STDC_HEADERS 1" >>confdefs.h + +fi + +for ac_header in math.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "math.h" "ac_cv_header_math_h" "$ac_includes_default" +if test "x$ac_cv_header_math_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_MATH_H 1 +_ACEOF + +fi + +done + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for exp in -lm" >&5 +$as_echo_n "checking for exp in -lm... " >&6; } +if ${ac_cv_lib_m_exp+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS -LIBS="-lintl $LIBS" +LIBS="-lm $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -5605,47 +13527,39 @@ #ifdef __cplusplus extern "C" #endif -char dgettext (); +char exp (); int main () { -return dgettext (); +return exp (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_intl_dgettext=yes + ac_cv_lib_m_exp=yes else - ac_cv_lib_intl_dgettext=no + ac_cv_lib_m_exp=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_dgettext" >&5 -$as_echo "$ac_cv_lib_intl_dgettext" >&6; } -if test "x$ac_cv_lib_intl_dgettext" = xyes; then : - gt_cv_func_dgettext_libintl=yes -fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_m_exp" >&5 +$as_echo "$ac_cv_lib_m_exp" >&6; } +if test "x$ac_cv_lib_m_exp" = xyes; then : -fi +$as_echo "#define HAVE_EXP 1" >>confdefs.h fi - - if test "$gt_cv_func_dgettext_libintl" != "yes" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if -liconv is needed to use gettext" >&5 -$as_echo_n "checking if -liconv is needed to use gettext... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 -$as_echo "" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ngettext in -lintl" >&5 -$as_echo_n "checking for ngettext in -lintl... " >&6; } -if ${ac_cv_lib_intl_ngettext+:} false; then : +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for roundf in -lm" >&5 +$as_echo_n "checking for roundf in -lm... " >&6; } +if ${ac_cv_lib_m_roundf+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS -LIBS="-lintl -liconv $LIBS" +LIBS="-lm $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -5655,34 +13569,39 @@ #ifdef __cplusplus extern "C" #endif -char ngettext (); +char roundf (); int main () { -return ngettext (); +return roundf (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_intl_ngettext=yes + ac_cv_lib_m_roundf=yes else - ac_cv_lib_intl_ngettext=no + ac_cv_lib_m_roundf=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_ngettext" >&5 -$as_echo "$ac_cv_lib_intl_ngettext" >&6; } -if test "x$ac_cv_lib_intl_ngettext" = xyes; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dcgettext in -lintl" >&5 -$as_echo_n "checking for dcgettext in -lintl... " >&6; } -if ${ac_cv_lib_intl_dcgettext+:} false; then : +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_m_roundf" >&5 +$as_echo "$ac_cv_lib_m_roundf" >&6; } +if test "x$ac_cv_lib_m_roundf" = xyes; then : + +$as_echo "#define HAVE_ROUNDF 1" >>confdefs.h + +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for pow in -lm" >&5 +$as_echo_n "checking for pow in -lm... " >&6; } +if ${ac_cv_lib_m_pow+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS -LIBS="-lintl -liconv $LIBS" +LIBS="-lm $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -5692,527 +13611,746 @@ #ifdef __cplusplus extern "C" #endif -char dcgettext (); +char pow (); int main () { -return dcgettext (); +return pow (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_intl_dcgettext=yes + ac_cv_lib_m_pow=yes else - ac_cv_lib_intl_dcgettext=no + ac_cv_lib_m_pow=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_dcgettext" >&5 -$as_echo "$ac_cv_lib_intl_dcgettext" >&6; } -if test "x$ac_cv_lib_intl_dcgettext" = xyes; then : - gt_cv_func_dgettext_libintl=yes - libintl_extra_libs=-liconv -else - : -fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_m_pow" >&5 +$as_echo "$ac_cv_lib_m_pow" >&6; } +if test "x$ac_cv_lib_m_pow" = xyes; then : + +$as_echo "#define HAVE_POW 1" >>confdefs.h -else - : fi - fi - # - # If we found libintl, then check in it for bind_textdomain_codeset(); - # we'll prefer libc if neither have bind_textdomain_codeset(), - # and both have dgettext and ngettext - # - if test "$gt_cv_func_dgettext_libintl" = "yes" ; then - glib_save_LIBS="$LIBS" - LIBS="$LIBS -lintl $libintl_extra_libs" - unset ac_cv_func_bind_textdomain_codeset - for ac_func in bind_textdomain_codeset -do : - ac_fn_c_check_func "$LINENO" "bind_textdomain_codeset" "ac_cv_func_bind_textdomain_codeset" -if test "x$ac_cv_func_bind_textdomain_codeset" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_BIND_TEXTDOMAIN_CODESET 1 -_ACEOF -fi -done +GVIEWV4L2CORE_LIBRARY_NAME=libgviewv4l2core - LIBS="$glib_save_LIBS" +GVIEWV4L2CORE_LD_NAME=gviewv4l2core - if test "$ac_cv_func_bind_textdomain_codeset" = "yes" ; then - gt_cv_func_dgettext_libc=no - else - if test "$gt_cv_func_dgettext_libc" = "yes" \ - && test "$gt_cv_func_ngettext_libc" = "yes"; then - gt_cv_func_dgettext_libintl=no - fi - fi - fi - fi - if test "$gt_cv_func_dgettext_libc" = "yes" \ - || test "$gt_cv_func_dgettext_libintl" = "yes"; then - gt_cv_have_gettext=yes - fi +#release versioning +GVIEWV4L2CORE_MAJOR_VERSION=1 +GVIEWV4L2CORE_MINOR_VERSION=0 +GVIEWV4L2CORE_MICRO_VERSION=1 - if test "$gt_cv_func_dgettext_libintl" = "yes"; then - INTLLIBS="-lintl $libintl_extra_libs" - fi +#API version (SONAME) +GVIEWV4L2CORE_API_VERSION=$GVIEWV4L2CORE_MAJOR_VERSION.$GVIEWV4L2CORE_MINOR_VERSION - if test "$gt_cv_have_gettext" = "yes"; then -$as_echo "#define HAVE_GETTEXT 1" >>confdefs.h +#shared library versioning +GVIEWV4L2CORE_LIBRARY_VERSION=$GVIEWV4L2CORE_MAJOR_VERSION:$GVIEWV4L2CORE_MINOR_VERSION:$GVIEWV4L2CORE_MICRO_VERSION +# +# current:revision:age +# | | | +# | | +- increment if interfaces have been added +# | | set to zero if interfaces have been removed +# or changed +# | +- increment if source code has changed +# | set to zero if current is incremented +# +- increment if interfaces have been added, removed or changed - # Extract the first word of "msgfmt", so it can be a program name with args. -set dummy msgfmt; ac_word=$2 + + + + + + + + + + +if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. +set dummy ${ac_tool_prefix}pkg-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_MSGFMT+:} false; then : +if ${ac_cv_path_PKG_CONFIG+:} false; then : $as_echo_n "(cached) " >&6 else - case "$MSGFMT" in - /*) - ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path. + case $PKG_CONFIG in + [\\/]* | ?:[\\/]*) + ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. ;; *) - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" - for ac_dir in $PATH; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - if test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"; then - ac_cv_path_MSGFMT="$ac_dir/$ac_word" - break - fi - fi + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done done - IFS="$ac_save_ifs" - test -z "$ac_cv_path_MSGFMT" && ac_cv_path_MSGFMT="no" +IFS=$as_save_IFS + + ;; +esac +fi +PKG_CONFIG=$ac_cv_path_PKG_CONFIG +if test -n "$PKG_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5 +$as_echo "$PKG_CONFIG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_path_PKG_CONFIG"; then + ac_pt_PKG_CONFIG=$PKG_CONFIG + # Extract the first word of "pkg-config", so it can be a program name with args. +set dummy pkg-config; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_ac_pt_PKG_CONFIG+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $ac_pt_PKG_CONFIG in + [\\/]* | ?:[\\/]*) + ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + ;; esac fi -MSGFMT="$ac_cv_path_MSGFMT" -if test "$MSGFMT" != "no"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGFMT" >&5 -$as_echo "$MSGFMT" >&6; } +ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG +if test -n "$ac_pt_PKG_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5 +$as_echo "$ac_pt_PKG_CONFIG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_pt_PKG_CONFIG" = x; then + PKG_CONFIG="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + PKG_CONFIG=$ac_pt_PKG_CONFIG + fi +else + PKG_CONFIG="$ac_cv_path_PKG_CONFIG" +fi + +fi +if test -n "$PKG_CONFIG"; then + _pkg_min_version=0.9.0 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5 +$as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; } + if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + PKG_CONFIG="" + fi +fi + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GVIEWV4L2CORE" >&5 +$as_echo_n "checking for GVIEWV4L2CORE... " >&6; } + +if test -n "$GVIEWV4L2CORE_CFLAGS"; then + pkg_cv_GVIEWV4L2CORE_CFLAGS="$GVIEWV4L2CORE_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libv4l2 libudev libusb-1.0 libavcodec libpng\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libv4l2 libudev libusb-1.0 libavcodec libpng") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_GVIEWV4L2CORE_CFLAGS=`$PKG_CONFIG --cflags "libv4l2 libudev libusb-1.0 libavcodec libpng" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$GVIEWV4L2CORE_LIBS"; then + pkg_cv_GVIEWV4L2CORE_LIBS="$GVIEWV4L2CORE_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libv4l2 libudev libusb-1.0 libavcodec libpng\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libv4l2 libudev libusb-1.0 libavcodec libpng") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_GVIEWV4L2CORE_LIBS=`$PKG_CONFIG --libs "libv4l2 libudev libusb-1.0 libavcodec libpng" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + GVIEWV4L2CORE_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libv4l2 libudev libusb-1.0 libavcodec libpng" 2>&1` + else + GVIEWV4L2CORE_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libv4l2 libudev libusb-1.0 libavcodec libpng" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$GVIEWV4L2CORE_PKG_ERRORS" >&5 + + as_fn_error $? "Package requirements (libv4l2 libudev libusb-1.0 libavcodec libpng) were not met: + +$GVIEWV4L2CORE_PKG_ERRORS + +Consider adjusting the PKG_CONFIG_PATH environment variable if you +installed software in a non-standard prefix. + +Alternatively, you may set the environment variables GVIEWV4L2CORE_CFLAGS +and GVIEWV4L2CORE_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details." "$LINENO" 5 +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it +is in your PATH or set the PKG_CONFIG environment variable to the full +path to pkg-config. + +Alternatively, you may set the environment variables GVIEWV4L2CORE_CFLAGS +and GVIEWV4L2CORE_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details. + +To get pkg-config, see . +See \`config.log' for more details" "$LINENO" 5; } +else + GVIEWV4L2CORE_CFLAGS=$pkg_cv_GVIEWV4L2CORE_CFLAGS + GVIEWV4L2CORE_LIBS=$pkg_cv_GVIEWV4L2CORE_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + +fi + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if you want to enable iyuv (planar 420) as internal format" >&5 +$as_echo_n "checking if you want to enable iyuv (planar 420) as internal format... " >&6; } +# Check whether --enable-iyuv was given. +if test "${enable_iyuv+set}" = set; then : + enableval=$enable_iyuv; enable_iyuv=yes yuv_format="iyuv (alpha)" else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + enable_iyuv=no yuv_format=yuyv fi - if test "$MSGFMT" != "no"; then - glib_save_LIBS="$LIBS" - LIBS="$LIBS $INTLLIBS" - for ac_func in dcgettext + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_iyuv" >&5 +$as_echo "$enable_iyuv" >&6; } + +if test $enable_iyuv = yes; then + +$as_echo "#define USE_PLANAR_YUV 1" >>confdefs.h + +fi + + +CPPFLAGS+="${GVIEWV4L2CORE_CFLAGS}" +for ac_header in avcodec.h libavcodec/avcodec.h ffmpeg/avcodec.h do : - ac_fn_c_check_func "$LINENO" "dcgettext" "ac_cv_func_dcgettext" -if test "x$ac_cv_func_dcgettext" = xyes; then : + as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" +if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF -#define HAVE_DCGETTEXT 1 +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi -done - MSGFMT_OPTS= - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if msgfmt accepts -c" >&5 -$as_echo_n "checking if msgfmt accepts -c... " >&6; } - cat >conftest.foo <<_ACEOF +done -msgid "" -msgstr "" -"Content-Type: text/plain; charset=UTF-8\n" -"Project-Id-Version: test 1.0\n" -"PO-Revision-Date: 2007-02-15 12:01+0100\n" -"Last-Translator: test \n" -"Language-Team: C \n" -"MIME-Version: 1.0\n" -"Content-Transfer-Encoding: 8bit\n" -_ACEOF -if { { $as_echo "$as_me:${as_lineno-$LINENO}: \$MSGFMT -c -o /dev/null conftest.foo"; } >&5 - ($MSGFMT -c -o /dev/null conftest.foo) 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - MSGFMT_OPTS=-c; { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -echo "$as_me: failed input was:" >&5 -sed 's/^/| /' conftest.foo >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if you want to use the internal mjpeg decoder over libavcodec " >&5 +$as_echo_n "checking if you want to use the internal mjpeg decoder over libavcodec ... " >&6; } +# Check whether --enable-builtin-mjpg was given. +if test "${enable_builtin_mjpg+set}" = set; then : + enableval=$enable_builtin_mjpg; enable_builtin_mjpg=yes mjpg_decoder=builtin +else + enable_builtin_mjpg=no mjpg_decoder=libavcodec fi - # Extract the first word of "gmsgfmt", so it can be a program name with args. -set dummy gmsgfmt; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_GMSGFMT+:} false; then : - $as_echo_n "(cached) " >&6 -else - case $GMSGFMT in - [\\/]* | ?:[\\/]*) - ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_GMSGFMT="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT" - ;; -esac +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_builtin_mjpg" >&5 +$as_echo "$enable_builtin_mjpg" >&6; } + + +if test $enable_builtin_mjpg = yes; then + +$as_echo "#define MJPG_BUILTIN 1" >>confdefs.h + + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libavcodec mjpg decoder disabled... the builtin decoder will be used instead." >&5 +$as_echo "$as_me: WARNING: libavcodec mjpg decoder disabled... the builtin decoder will be used instead." >&2;} fi -GMSGFMT=$ac_cv_path_GMSGFMT -if test -n "$GMSGFMT"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GMSGFMT" >&5 -$as_echo "$GMSGFMT" >&6; } + + +GVIEWRENDER_LIBRARY_NAME=libgviewrender + +GVIEWRENDER_LD_NAME=gviewrender + + +#release versioning +GVIEWRENDER_MAJOR_VERSION=1 +GVIEWRENDER_MINOR_VERSION=0 +GVIEWRENDER_MICRO_VERSION=1 + +#API version (SONAME) +GVIEWRENDER_API_VERSION=$GVIEWRENDER_MAJOR_VERSION.$GVIEWRENDER_MINOR_VERSION + + +#shared library versioning +GVIEWRENDER_LIBRARY_VERSION=$GVIEWRENDER_MAJOR_VERSION:$GVIEWRENDER_MINOR_VERSION:$GVIEWRENDER_MICRO_VERSION +# +# current:revision:age +# | | | +# | | +- increment if interfaces have been added +# | | set to zero if interfaces have been removed +# or changed +# | +- increment if source code has changed +# | set to zero if current is incremented +# +- increment if interfaces have been added, removed or changed + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if you want to enable sdl2 support" >&5 +$as_echo_n "checking if you want to enable sdl2 support... " >&6; } +# Check whether --enable-sdl2 was given. +if test "${enable_sdl2+set}" = set; then : + enableval=$enable_sdl2; enable_sdl2=no else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + enable_sdl2=yes fi - # Extract the first word of "xgettext", so it can be a program name with args. -set dummy xgettext; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_XGETTEXT+:} false; then : - $as_echo_n "(cached) " >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_sdl2" >&5 +$as_echo "$enable_sdl2" >&6; } + +if test $enable_sdl2 = yes; then + + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GVIEWRENDER" >&5 +$as_echo_n "checking for GVIEWRENDER... " >&6; } + +if test -n "$GVIEWRENDER_CFLAGS"; then + pkg_cv_GVIEWRENDER_CFLAGS="$GVIEWRENDER_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"sdl2 >= 2.0\""; } >&5 + ($PKG_CONFIG --exists --print-errors "sdl2 >= 2.0") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_GVIEWRENDER_CFLAGS=`$PKG_CONFIG --cflags "sdl2 >= 2.0" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes else - case "$XGETTEXT" in - /*) - ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path. - ;; - *) - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" - for ac_dir in $PATH; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - if test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"; then - ac_cv_path_XGETTEXT="$ac_dir/$ac_word" - break - fi - fi - done - IFS="$ac_save_ifs" - test -z "$ac_cv_path_XGETTEXT" && ac_cv_path_XGETTEXT=":" - ;; -esac + pkg_failed=yes fi -XGETTEXT="$ac_cv_path_XGETTEXT" -if test "$XGETTEXT" != ":"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XGETTEXT" >&5 -$as_echo "$XGETTEXT" >&6; } + else + pkg_failed=untried +fi +if test -n "$GVIEWRENDER_LIBS"; then + pkg_cv_GVIEWRENDER_LIBS="$GVIEWRENDER_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"sdl2 >= 2.0\""; } >&5 + ($PKG_CONFIG --exists --print-errors "sdl2 >= 2.0") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_GVIEWRENDER_LIBS=`$PKG_CONFIG --libs "sdl2 >= 2.0" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + pkg_failed=yes +fi + else + pkg_failed=untried fi - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -int -main () -{ -extern int _nl_msg_cat_cntr; - return _nl_msg_cat_cntr - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - CATOBJEXT=.gmo - DATADIRNAME=share -else - case $host in - *-*-solaris*) - ac_fn_c_check_func "$LINENO" "bind_textdomain_codeset" "ac_cv_func_bind_textdomain_codeset" -if test "x$ac_cv_func_bind_textdomain_codeset" = xyes; then : - CATOBJEXT=.gmo - DATADIRNAME=share -else - CATOBJEXT=.mo - DATADIRNAME=lib -fi - ;; - *-*-openbsd*) - CATOBJEXT=.mo - DATADIRNAME=share - ;; - *) - CATOBJEXT=.mo - DATADIRNAME=lib - ;; - esac -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - LIBS="$glib_save_LIBS" - INSTOBJEXT=.mo - else - gt_cv_have_gettext=no - fi - fi +if test $pkg_failed = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no fi + if test $_pkg_short_errors_supported = yes; then + GVIEWRENDER_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "sdl2 >= 2.0" 2>&1` + else + GVIEWRENDER_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "sdl2 >= 2.0" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$GVIEWRENDER_PKG_ERRORS" >&5 + as_fn_error $? "Package requirements (sdl2 >= 2.0) were not met: +$GVIEWRENDER_PKG_ERRORS - if test "$gt_cv_have_gettext" = "yes" ; then +Consider adjusting the PKG_CONFIG_PATH environment variable if you +installed software in a non-standard prefix. -$as_echo "#define ENABLE_NLS 1" >>confdefs.h +Alternatively, you may set the environment variables GVIEWRENDER_CFLAGS +and GVIEWRENDER_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details." "$LINENO" 5 +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it +is in your PATH or set the PKG_CONFIG environment variable to the full +path to pkg-config. - fi +Alternatively, you may set the environment variables GVIEWRENDER_CFLAGS +and GVIEWRENDER_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details. - if test "$XGETTEXT" != ":"; then - if $XGETTEXT --omit-header /dev/null 2> /dev/null; then - : ; - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: found xgettext program is not GNU xgettext; ignore it" >&5 -$as_echo "found xgettext program is not GNU xgettext; ignore it" >&6; } - XGETTEXT=":" - fi - fi +To get pkg-config, see . +See \`config.log' for more details" "$LINENO" 5; } +else + GVIEWRENDER_CFLAGS=$pkg_cv_GVIEWRENDER_CFLAGS + GVIEWRENDER_LIBS=$pkg_cv_GVIEWRENDER_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } - # We need to process the po/ directory. - POSUB=po +fi - ac_config_commands="$ac_config_commands default-1" - for lang in $ALL_LINGUAS; do - GMOFILES="$GMOFILES $lang.gmo" - POFILES="$POFILES $lang.po" - done +$as_echo "#define ENABLE_SDL2 1" >>confdefs.h + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: sdl2 disabled... sdl1.2 will be used instead." >&5 +$as_echo "$as_me: WARNING: sdl2 disabled... sdl1.2 will be used instead." >&2;} +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GVIEWRENDER" >&5 +$as_echo_n "checking for GVIEWRENDER... " >&6; } +if test -n "$GVIEWRENDER_CFLAGS"; then + pkg_cv_GVIEWRENDER_CFLAGS="$GVIEWRENDER_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"sdl >= 1.2.10\""; } >&5 + ($PKG_CONFIG --exists --print-errors "sdl >= 1.2.10") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_GVIEWRENDER_CFLAGS=`$PKG_CONFIG --cflags "sdl >= 1.2.10" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$GVIEWRENDER_LIBS"; then + pkg_cv_GVIEWRENDER_LIBS="$GVIEWRENDER_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"sdl >= 1.2.10\""; } >&5 + ($PKG_CONFIG --exists --print-errors "sdl >= 1.2.10") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_GVIEWRENDER_LIBS=`$PKG_CONFIG --libs "sdl >= 1.2.10" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test $pkg_failed = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + GVIEWRENDER_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "sdl >= 1.2.10" 2>&1` + else + GVIEWRENDER_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "sdl >= 1.2.10" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$GVIEWRENDER_PKG_ERRORS" >&5 + as_fn_error $? "Package requirements (sdl >= 1.2.10) were not met: +$GVIEWRENDER_PKG_ERRORS +Consider adjusting the PKG_CONFIG_PATH environment variable if you +installed software in a non-standard prefix. +Alternatively, you may set the environment variables GVIEWRENDER_CFLAGS +and GVIEWRENDER_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details." "$LINENO" 5 +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it +is in your PATH or set the PKG_CONFIG environment variable to the full +path to pkg-config. +Alternatively, you may set the environment variables GVIEWRENDER_CFLAGS +and GVIEWRENDER_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details. - if test "$gt_cv_have_gettext" = "yes"; then - if test "x$ALL_LINGUAS" = "x"; then - LINGUAS= - else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for catalogs to be installed" >&5 -$as_echo_n "checking for catalogs to be installed... " >&6; } - NEW_LINGUAS= - for presentlang in $ALL_LINGUAS; do - useit=no - if test "%UNSET%" != "${LINGUAS-%UNSET%}"; then - desiredlanguages="$LINGUAS" - else - desiredlanguages="$ALL_LINGUAS" - fi - for desiredlang in $desiredlanguages; do - # Use the presentlang catalog if desiredlang is - # a. equal to presentlang, or - # b. a variant of presentlang (because in this case, - # presentlang can be used as a fallback for messages - # which are not translated in the desiredlang catalog). - case "$desiredlang" in - "$presentlang"*) useit=yes;; - esac - done - if test $useit = yes; then - NEW_LINGUAS="$NEW_LINGUAS $presentlang" - fi - done - LINGUAS=$NEW_LINGUAS - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LINGUAS" >&5 -$as_echo "$LINGUAS" >&6; } - fi +To get pkg-config, see . +See \`config.log' for more details" "$LINENO" 5; } +else + GVIEWRENDER_CFLAGS=$pkg_cv_GVIEWRENDER_CFLAGS + GVIEWRENDER_LIBS=$pkg_cv_GVIEWRENDER_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } - if test -n "$LINGUAS"; then - for lang in $LINGUAS; do CATALOGS="$CATALOGS $lang$CATOBJEXT"; done - fi - fi +fi - MKINSTALLDIRS= - if test -n "$ac_aux_dir"; then - MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs" - fi - if test -z "$MKINSTALLDIRS"; then - MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs" - fi +fi - test -d po || mkdir po - if test "x$srcdir" != "x."; then - if test "x`echo $srcdir | sed 's@/.*@@'`" = "x"; then - posrcprefix="$srcdir/" - else - posrcprefix="../$srcdir/" - fi - else - posrcprefix="../" - fi - rm -f po/POTFILES - sed -e "/^#/d" -e "/^\$/d" -e "s,.*, $posrcprefix& \\\\," -e "\$s/\(.*\) \\\\/\1/" \ - < $srcdir/po/POTFILES.in > po/POTFILES + if test $enable_sdl2 = yes; then + ENABLE_SDL2_TRUE= + ENABLE_SDL2_FALSE='#' +else + ENABLE_SDL2_TRUE='#' + ENABLE_SDL2_FALSE= +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if you want to enable gsl support" >&5 +$as_echo_n "checking if you want to enable gsl support... " >&6; } +# Check whether --enable-gsl was given. +if test "${enable_gsl+set}" = set; then : + enableval=$enable_gsl; enable_gsl=no +else + enable_gsl=yes +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_gsl" >&5 +$as_echo "$enable_gsl" >&6; } +if test $enable_gsl = yes; then +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GSL" >&5 +$as_echo_n "checking for GSL... " >&6; } -if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. -set dummy ${ac_tool_prefix}pkg-config; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_PKG_CONFIG+:} false; then : - $as_echo_n "(cached) " >&6 +if test -n "$GSL_CFLAGS"; then + pkg_cv_GSL_CFLAGS="$GSL_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gsl >= 1.15\""; } >&5 + ($PKG_CONFIG --exists --print-errors "gsl >= 1.15") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_GSL_CFLAGS=`$PKG_CONFIG --cflags "gsl >= 1.15" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes else - case $PKG_CONFIG in - [\\/]* | ?:[\\/]*) - ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - ;; -esac + pkg_failed=yes fi -PKG_CONFIG=$ac_cv_path_PKG_CONFIG -if test -n "$PKG_CONFIG"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5 -$as_echo "$PKG_CONFIG" >&6; } + else + pkg_failed=untried +fi +if test -n "$GSL_LIBS"; then + pkg_cv_GSL_LIBS="$GSL_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gsl >= 1.15\""; } >&5 + ($PKG_CONFIG --exists --print-errors "gsl >= 1.15") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_GSL_LIBS=`$PKG_CONFIG --libs "gsl >= 1.15" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + pkg_failed=yes +fi + else + pkg_failed=untried fi -fi -if test -z "$ac_cv_path_PKG_CONFIG"; then - ac_pt_PKG_CONFIG=$PKG_CONFIG - # Extract the first word of "pkg-config", so it can be a program name with args. -set dummy pkg-config; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_ac_pt_PKG_CONFIG+:} false; then : - $as_echo_n "(cached) " >&6 -else - case $ac_pt_PKG_CONFIG in - [\\/]* | ?:[\\/]*) - ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - ;; -esac -fi -ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG -if test -n "$ac_pt_PKG_CONFIG"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5 -$as_echo "$ac_pt_PKG_CONFIG" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +if test $pkg_failed = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } -fi - if test "x$ac_pt_PKG_CONFIG" = x; then - PKG_CONFIG="" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - PKG_CONFIG=$ac_pt_PKG_CONFIG - fi +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes else - PKG_CONFIG="$ac_cv_path_PKG_CONFIG" + _pkg_short_errors_supported=no fi + if test $_pkg_short_errors_supported = yes; then + GSL_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "gsl >= 1.15" 2>&1` + else + GSL_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "gsl >= 1.15" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$GSL_PKG_ERRORS" >&5 + + as_fn_error $? "Package requirements (gsl >= 1.15) were not met: + +$GSL_PKG_ERRORS + +Consider adjusting the PKG_CONFIG_PATH environment variable if you +installed software in a non-standard prefix. + +Alternatively, you may set the environment variables GSL_CFLAGS +and GSL_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details." "$LINENO" 5 +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it +is in your PATH or set the PKG_CONFIG environment variable to the full +path to pkg-config. + +Alternatively, you may set the environment variables GSL_CFLAGS +and GSL_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details. + +To get pkg-config, see . +See \`config.log' for more details" "$LINENO" 5; } +else + GSL_CFLAGS=$pkg_cv_GSL_CFLAGS + GSL_LIBS=$pkg_cv_GSL_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } fi -if test -n "$PKG_CONFIG"; then - _pkg_min_version=0.9.0 - { $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5 -$as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; } - if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - PKG_CONFIG="" - fi + + + + +$as_echo "#define HAS_GSL 1" >>confdefs.h + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libgsl disabled... some render fx filters will be disabled." >&5 +$as_echo "$as_me: WARNING: libgsl disabled... some render fx filters will be disabled." >&2;} fi + +GVIEWAUDIO_LIBRARY_NAME=libgviewaudio + +GVIEWAUDIO_LD_NAME=gviewaudio + + +#release versioning +GVIEWAUDIO_MAJOR_VERSION=1 +GVIEWAUDIO_MINOR_VERSION=0 +GVIEWAUDIO_MICRO_VERSION=1 + +#API version (SONAME) +GVIEWAUDIO_API_VERSION=$GVIEWAUDIO_MAJOR_VERSION.$GVIEWAUDIO_MINOR_VERSION + + +#shared library versioning +GVIEWAUDIO_LIBRARY_VERSION=$GVIEWAUDIO_MAJOR_VERSION:$GVIEWAUDIO_MINOR_VERSION:$GVIEWAUDIO_MICRO_VERSION +# +# current:revision:age +# | | | +# | | +- increment if interfaces have been added +# | | set to zero if interfaces have been removed +# or changed +# | +- increment if source code has changed +# | set to zero if current is incremented +# +- increment if interfaces have been added, removed or changed + + + + + pkg_failed=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for DEPS" >&5 -$as_echo_n "checking for DEPS... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GVIEWAUDIO" >&5 +$as_echo_n "checking for GVIEWAUDIO... " >&6; } -if test -n "$DEPS_CFLAGS"; then - pkg_cv_DEPS_CFLAGS="$DEPS_CFLAGS" +if test -n "$GVIEWAUDIO_CFLAGS"; then + pkg_cv_GVIEWAUDIO_CFLAGS="$GVIEWAUDIO_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk+-3.0 >= 3.0.0 glib-2.0 >= 2.10.0 sdl >= 1.2.10 portaudio-2.0 libpng libavcodec libavutil libv4l2 libudev libusb-1.0\""; } >&5 - ($PKG_CONFIG --exists --print-errors "gtk+-3.0 >= 3.0.0 glib-2.0 >= 2.10.0 sdl >= 1.2.10 portaudio-2.0 libpng libavcodec libavutil libv4l2 libudev libusb-1.0") 2>&5 + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"portaudio-2.0\""; } >&5 + ($PKG_CONFIG --exists --print-errors "portaudio-2.0") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then - pkg_cv_DEPS_CFLAGS=`$PKG_CONFIG --cflags "gtk+-3.0 >= 3.0.0 glib-2.0 >= 2.10.0 sdl >= 1.2.10 portaudio-2.0 libpng libavcodec libavutil libv4l2 libudev libusb-1.0" 2>/dev/null` + pkg_cv_GVIEWAUDIO_CFLAGS=`$PKG_CONFIG --cflags "portaudio-2.0" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes @@ -6220,16 +14358,16 @@ else pkg_failed=untried fi -if test -n "$DEPS_LIBS"; then - pkg_cv_DEPS_LIBS="$DEPS_LIBS" +if test -n "$GVIEWAUDIO_LIBS"; then + pkg_cv_GVIEWAUDIO_LIBS="$GVIEWAUDIO_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk+-3.0 >= 3.0.0 glib-2.0 >= 2.10.0 sdl >= 1.2.10 portaudio-2.0 libpng libavcodec libavutil libv4l2 libudev libusb-1.0\""; } >&5 - ($PKG_CONFIG --exists --print-errors "gtk+-3.0 >= 3.0.0 glib-2.0 >= 2.10.0 sdl >= 1.2.10 portaudio-2.0 libpng libavcodec libavutil libv4l2 libudev libusb-1.0") 2>&5 + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"portaudio-2.0\""; } >&5 + ($PKG_CONFIG --exists --print-errors "portaudio-2.0") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then - pkg_cv_DEPS_LIBS=`$PKG_CONFIG --libs "gtk+-3.0 >= 3.0.0 glib-2.0 >= 2.10.0 sdl >= 1.2.10 portaudio-2.0 libpng libavcodec libavutil libv4l2 libudev libusb-1.0" 2>/dev/null` + pkg_cv_GVIEWAUDIO_LIBS=`$PKG_CONFIG --libs "portaudio-2.0" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes @@ -6250,22 +14388,22 @@ _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then - DEPS_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "gtk+-3.0 >= 3.0.0 glib-2.0 >= 2.10.0 sdl >= 1.2.10 portaudio-2.0 libpng libavcodec libavutil libv4l2 libudev libusb-1.0" 2>&1` + GVIEWAUDIO_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "portaudio-2.0" 2>&1` else - DEPS_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "gtk+-3.0 >= 3.0.0 glib-2.0 >= 2.10.0 sdl >= 1.2.10 portaudio-2.0 libpng libavcodec libavutil libv4l2 libudev libusb-1.0" 2>&1` + GVIEWAUDIO_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "portaudio-2.0" 2>&1` fi # Put the nasty error message in config.log where it belongs - echo "$DEPS_PKG_ERRORS" >&5 + echo "$GVIEWAUDIO_PKG_ERRORS" >&5 - as_fn_error $? "Package requirements (gtk+-3.0 >= 3.0.0 glib-2.0 >= 2.10.0 sdl >= 1.2.10 portaudio-2.0 libpng libavcodec libavutil libv4l2 libudev libusb-1.0) were not met: + as_fn_error $? "Package requirements (portaudio-2.0) were not met: -$DEPS_PKG_ERRORS +$GVIEWAUDIO_PKG_ERRORS Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix. -Alternatively, you may set the environment variables DEPS_CFLAGS -and DEPS_LIBS to avoid the need to call pkg-config. +Alternatively, you may set the environment variables GVIEWAUDIO_CFLAGS +and GVIEWAUDIO_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details." "$LINENO" 5 elif test $pkg_failed = untried; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 @@ -6276,15 +14414,15 @@ is in your PATH or set the PKG_CONFIG environment variable to the full path to pkg-config. -Alternatively, you may set the environment variables DEPS_CFLAGS -and DEPS_LIBS to avoid the need to call pkg-config. +Alternatively, you may set the environment variables GVIEWAUDIO_CFLAGS +and GVIEWAUDIO_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details. To get pkg-config, see . See \`config.log' for more details" "$LINENO" 5; } else - DEPS_CFLAGS=$pkg_cv_DEPS_CFLAGS - DEPS_LIBS=$pkg_cv_DEPS_LIBS + GVIEWAUDIO_CFLAGS=$pkg_cv_GVIEWAUDIO_CFLAGS + GVIEWAUDIO_LIBS=$pkg_cv_GVIEWAUDIO_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } @@ -6292,50 +14430,6 @@ -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if you want to enable debian menu" >&5 -$as_echo_n "checking if you want to enable debian menu... " >&6; } -# Check whether --enable-debian-menu was given. -if test "${enable_debian_menu+set}" = set; then : - enableval=$enable_debian_menu; enable_debian_menu=no -else - enable_debian_menu=yes -fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_debian_menu" >&5 -$as_echo "$enable_debian_menu" >&6; } - - if test "$enable_debian_menu" = yes; then - DEBIAN_MENU_TRUE= - DEBIAN_MENU_FALSE='#' -else - DEBIAN_MENU_TRUE='#' - DEBIAN_MENU_FALSE= -fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if you want to enable desktop file" >&5 -$as_echo_n "checking if you want to enable desktop file... " >&6; } -# Check whether --enable-desktop was given. -if test "${enable_desktop+set}" = set; then : - enableval=$enable_desktop; enable_desktop=no -else - enable_desktop=yes -fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_desktop" >&5 -$as_echo "$enable_desktop" >&6; } - - if test "$enable_desktop" = yes; then - DESKTOP_TRUE= - DESKTOP_FALSE='#' -else - DESKTOP_TRUE='#' - DESKTOP_FALSE= -fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if you want to enable pulse support" >&5 $as_echo_n "checking if you want to enable pulse support... " >&6; } # Check whether --enable-pulse was given. @@ -6415,62 +14509,324 @@ $as_echo "no" >&6; } has_pulse=no else - PULSE_CFLAGS=$pkg_cv_PULSE_CFLAGS - PULSE_LIBS=$pkg_cv_PULSE_LIBS + PULSE_CFLAGS=$pkg_cv_PULSE_CFLAGS + PULSE_LIBS=$pkg_cv_PULSE_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + has_pulse=yes +fi + + + if test "$has_pulse" = yes; then + +$as_echo "#define HAS_PULSEAUDIO 1" >>confdefs.h + + else + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libpulse missing... pulse support will be disabled." >&5 +$as_echo "$as_me: WARNING: libpulse missing... pulse support will be disabled." >&2;}; + enable_pulse=no + fi +fi + + if test $enable_pulse = yes; then + HAVE_PULSEAUDIO_TRUE= + HAVE_PULSEAUDIO_FALSE='#' +else + HAVE_PULSEAUDIO_TRUE='#' + HAVE_PULSEAUDIO_FALSE= +fi + + + +GVIEWENCODER_LIBRARY_NAME=libgviewencoder + +GVIEWENCODER_LD_NAME=gviewencoder + + +#release versioning +GVIEWENCODER_MAJOR_VERSION=1 +GVIEWENCODER_MINOR_VERSION=0 +GVIEWENCODER_MICRO_VERSION=1 + +#API version (SONAME) +GVIEWENCODER_API_VERSION=$GVIEWENCODER_MAJOR_VERSION.$GVIEWENCODER_MINOR_VERSION + + +#shared library versioning +GVIEWENCODER_LIBRARY_VERSION=$GVIEWENCODER_MAJOR_VERSION:$GVIEWENCODER_MINOR_VERSION:$GVIEWENCODER_MICRO_VERSION +# +# current:revision:age +# | | | +# | | +- increment if interfaces have been added +# | | set to zero if interfaces have been removed +# or changed +# | +- increment if source code has changed +# | set to zero if current is incremented +# +- increment if interfaces have been added, removed or changed + + + + + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GVIEWENCODER" >&5 +$as_echo_n "checking for GVIEWENCODER... " >&6; } + +if test -n "$GVIEWENCODER_CFLAGS"; then + pkg_cv_GVIEWENCODER_CFLAGS="$GVIEWENCODER_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libavcodec, libavutil\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libavcodec, libavutil") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_GVIEWENCODER_CFLAGS=`$PKG_CONFIG --cflags "libavcodec, libavutil" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$GVIEWENCODER_LIBS"; then + pkg_cv_GVIEWENCODER_LIBS="$GVIEWENCODER_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libavcodec, libavutil\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libavcodec, libavutil") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_GVIEWENCODER_LIBS=`$PKG_CONFIG --libs "libavcodec, libavutil" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + GVIEWENCODER_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libavcodec, libavutil" 2>&1` + else + GVIEWENCODER_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libavcodec, libavutil" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$GVIEWENCODER_PKG_ERRORS" >&5 + + as_fn_error $? "Package requirements (libavcodec, libavutil) were not met: + +$GVIEWENCODER_PKG_ERRORS + +Consider adjusting the PKG_CONFIG_PATH environment variable if you +installed software in a non-standard prefix. + +Alternatively, you may set the environment variables GVIEWENCODER_CFLAGS +and GVIEWENCODER_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details." "$LINENO" 5 +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it +is in your PATH or set the PKG_CONFIG environment variable to the full +path to pkg-config. + +Alternatively, you may set the environment variables GVIEWENCODER_CFLAGS +and GVIEWENCODER_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details. + +To get pkg-config, see . +See \`config.log' for more details" "$LINENO" 5; } +else + GVIEWENCODER_CFLAGS=$pkg_cv_GVIEWENCODER_CFLAGS + GVIEWENCODER_LIBS=$pkg_cv_GVIEWENCODER_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + +fi + + + + +for ac_header in libavutil/version.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "libavutil/version.h" "ac_cv_header_libavutil_version_h" "$ac_includes_default" +if test "x$ac_cv_header_libavutil_version_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_LIBAVUTIL_VERSION_H 1 +_ACEOF + +fi + +done + + + + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GUVCVIEW" >&5 +$as_echo_n "checking for GUVCVIEW... " >&6; } + +if test -n "$GUVCVIEW_CFLAGS"; then + pkg_cv_GUVCVIEW_CFLAGS="$GUVCVIEW_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk+-3.0 >= 3.0.0 glib-2.0 >= 2.10.0\""; } >&5 + ($PKG_CONFIG --exists --print-errors "gtk+-3.0 >= 3.0.0 glib-2.0 >= 2.10.0") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_GUVCVIEW_CFLAGS=`$PKG_CONFIG --cflags "gtk+-3.0 >= 3.0.0 glib-2.0 >= 2.10.0" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$GUVCVIEW_LIBS"; then + pkg_cv_GUVCVIEW_LIBS="$GUVCVIEW_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk+-3.0 >= 3.0.0 glib-2.0 >= 2.10.0\""; } >&5 + ($PKG_CONFIG --exists --print-errors "gtk+-3.0 >= 3.0.0 glib-2.0 >= 2.10.0") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_GUVCVIEW_LIBS=`$PKG_CONFIG --libs "gtk+-3.0 >= 3.0.0 glib-2.0 >= 2.10.0" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + GUVCVIEW_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "gtk+-3.0 >= 3.0.0 glib-2.0 >= 2.10.0" 2>&1` + else + GUVCVIEW_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "gtk+-3.0 >= 3.0.0 glib-2.0 >= 2.10.0" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$GUVCVIEW_PKG_ERRORS" >&5 + + as_fn_error $? "Package requirements (gtk+-3.0 >= 3.0.0 glib-2.0 >= 2.10.0) were not met: + +$GUVCVIEW_PKG_ERRORS + +Consider adjusting the PKG_CONFIG_PATH environment variable if you +installed software in a non-standard prefix. + +Alternatively, you may set the environment variables GUVCVIEW_CFLAGS +and GUVCVIEW_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details." "$LINENO" 5 +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it +is in your PATH or set the PKG_CONFIG environment variable to the full +path to pkg-config. + +Alternatively, you may set the environment variables GUVCVIEW_CFLAGS +and GUVCVIEW_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details. + +To get pkg-config, see . +See \`config.log' for more details" "$LINENO" 5; } +else + GUVCVIEW_CFLAGS=$pkg_cv_GUVCVIEW_CFLAGS + GUVCVIEW_LIBS=$pkg_cv_GUVCVIEW_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } - has_pulse=yes + fi - if test "$has_pulse" = yes; then -$as_echo "#define PULSEAUDIO 1" >>confdefs.h +for ac_func in fpathconf dirfd +do : + as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" +if eval test \"x\$"$as_ac_var"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF - else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libpulse missing... pulse support will be disabled." >&5 -$as_echo "$as_me: WARNING: libpulse missing... pulse support will be disabled." >&2;}; - enable_pulse=no - fi fi +done -ac_fn_c_check_header_mongrel "$LINENO" "avcodec.h" "ac_cv_header_avcodec_h" "$ac_includes_default" -if test "x$ac_cv_header_avcodec_h" = xyes; then : - has_avcodec_h="yes" +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if you want to enable debian menu" >&5 +$as_echo_n "checking if you want to enable debian menu... " >&6; } +# Check whether --enable-debian-menu was given. +if test "${enable_debian_menu+set}" = set; then : + enableval=$enable_debian_menu; enable_debian_menu=no +else + enable_debian_menu=yes fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_debian_menu" >&5 +$as_echo "$enable_debian_menu" >&6; } -ac_fn_c_check_header_mongrel "$LINENO" "ffmpeg/avcodec.h" "ac_cv_header_ffmpeg_avcodec_h" "$ac_includes_default" -if test "x$ac_cv_header_ffmpeg_avcodec_h" = xyes; then : - has_ffmpeg_dir="yes" + if test "$enable_debian_menu" = yes; then + DEBIAN_MENU_TRUE= + DEBIAN_MENU_FALSE='#' +else + DEBIAN_MENU_TRUE='#' + DEBIAN_MENU_FALSE= fi - -ac_fn_c_check_header_mongrel "$LINENO" "libavcodec/avcodec.h" "ac_cv_header_libavcodec_avcodec_h" "$ac_includes_default" -if test "x$ac_cv_header_libavcodec_avcodec_h" = xyes; then : - has_libavcodec_dir="yes" +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if you want to enable desktop file" >&5 +$as_echo_n "checking if you want to enable desktop file... " >&6; } +# Check whether --enable-desktop was given. +if test "${enable_desktop+set}" = set; then : + enableval=$enable_desktop; enable_desktop=no +else + enable_desktop=yes fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_desktop" >&5 +$as_echo "$enable_desktop" >&6; } -if test "$has_avcodec_h" = yes; then - -$as_echo "#define HAS_AVCODEC_H 1" >>confdefs.h - -fi -if test "$has_ffmpeg_dir" = yes; then - -$as_echo "#define HAS_FFMPEG_AVCODEC_H 1" >>confdefs.h - + if test "$enable_desktop" = yes; then + DESKTOP_TRUE= + DESKTOP_FALSE='#' +else + DESKTOP_TRUE='#' + DESKTOP_FALSE= fi -if test "$has_libavcodec_dir" = yes; then -$as_echo "#define HAS_LIBAVCODEC_AVCODEC_H 1" >>confdefs.h -fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether byte ordering is bigendian" >&5 $as_echo_n "checking whether byte ordering is bigendian... " >&6; } @@ -6697,7 +15053,8 @@ esac -ac_config_files="$ac_config_files Makefile data/Makefile data/icons/Makefile data/guvcview.desktop.in data/guvcview.in po/Makefile.in src/Makefile" + +ac_config_files="$ac_config_files Makefile pkgconfig/libgviewv4l2core.pc pkgconfig/libgviewaudio.pc pkgconfig/libgviewrender.pc pkgconfig/libgviewencoder.pc gview_v4l2core/Makefile gview_audio/Makefile gview_render/Makefile gview_encoder/Makefile guvcview/Makefile data/Makefile data/icons/Makefile data/guvcview.desktop.in data/guvcview.appdata.xml.in data/guvcview.in po/Makefile.in po/gview_v4l2core/Makefile.in" cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure @@ -6836,10 +15193,30 @@ as_fn_error $? "conditional \"am__fastdepCC\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking that generated files are newer than configure" >&5 +$as_echo_n "checking that generated files are newer than configure... " >&6; } + if test -n "$am_sleep_pid"; then + # Hide warnings about reused PIDs. + wait $am_sleep_pid 2>/dev/null + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: done" >&5 +$as_echo "done" >&6; } ac_config_commands="$ac_config_commands po/stamp-it" + + ac_config_commands="$ac_config_commands po/gview_v4l2core/stamp-it" + + +if test -z "${ENABLE_SDL2_TRUE}" && test -z "${ENABLE_SDL2_FALSE}"; then + as_fn_error $? "conditional \"ENABLE_SDL2\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${HAVE_PULSEAUDIO_TRUE}" && test -z "${HAVE_PULSEAUDIO_FALSE}"; then + as_fn_error $? "conditional \"HAVE_PULSEAUDIO\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi if test -z "${DEBIAN_MENU_TRUE}" && test -z "${DEBIAN_MENU_FALSE}"; then as_fn_error $? "conditional \"DEBIAN_MENU\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 @@ -7246,7 +15623,7 @@ # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by guvcview $as_me 1.7.3, which was +This file was extended by guvcview $as_me 2.0.1, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -7312,7 +15689,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -guvcview config.status 1.7.3 +guvcview config.status 2.0.1 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" @@ -7434,6 +15811,283 @@ AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" +# The HP-UX ksh and POSIX shell print the target directory to stdout +# if CDPATH is set. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +sed_quote_subst='$sed_quote_subst' +double_quote_subst='$double_quote_subst' +delay_variable_subst='$delay_variable_subst' +macro_version='`$ECHO "$macro_version" | $SED "$delay_single_quote_subst"`' +macro_revision='`$ECHO "$macro_revision" | $SED "$delay_single_quote_subst"`' +enable_shared='`$ECHO "$enable_shared" | $SED "$delay_single_quote_subst"`' +enable_static='`$ECHO "$enable_static" | $SED "$delay_single_quote_subst"`' +pic_mode='`$ECHO "$pic_mode" | $SED "$delay_single_quote_subst"`' +enable_fast_install='`$ECHO "$enable_fast_install" | $SED "$delay_single_quote_subst"`' +SHELL='`$ECHO "$SHELL" | $SED "$delay_single_quote_subst"`' +ECHO='`$ECHO "$ECHO" | $SED "$delay_single_quote_subst"`' +PATH_SEPARATOR='`$ECHO "$PATH_SEPARATOR" | $SED "$delay_single_quote_subst"`' +host_alias='`$ECHO "$host_alias" | $SED "$delay_single_quote_subst"`' +host='`$ECHO "$host" | $SED "$delay_single_quote_subst"`' +host_os='`$ECHO "$host_os" | $SED "$delay_single_quote_subst"`' +build_alias='`$ECHO "$build_alias" | $SED "$delay_single_quote_subst"`' +build='`$ECHO "$build" | $SED "$delay_single_quote_subst"`' +build_os='`$ECHO "$build_os" | $SED "$delay_single_quote_subst"`' +SED='`$ECHO "$SED" | $SED "$delay_single_quote_subst"`' +Xsed='`$ECHO "$Xsed" | $SED "$delay_single_quote_subst"`' +GREP='`$ECHO "$GREP" | $SED "$delay_single_quote_subst"`' +EGREP='`$ECHO "$EGREP" | $SED "$delay_single_quote_subst"`' +FGREP='`$ECHO "$FGREP" | $SED "$delay_single_quote_subst"`' +LD='`$ECHO "$LD" | $SED "$delay_single_quote_subst"`' +NM='`$ECHO "$NM" | $SED "$delay_single_quote_subst"`' +LN_S='`$ECHO "$LN_S" | $SED "$delay_single_quote_subst"`' +max_cmd_len='`$ECHO "$max_cmd_len" | $SED "$delay_single_quote_subst"`' +ac_objext='`$ECHO "$ac_objext" | $SED "$delay_single_quote_subst"`' +exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`' +lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`' +lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`' +lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`' +lt_cv_to_host_file_cmd='`$ECHO "$lt_cv_to_host_file_cmd" | $SED "$delay_single_quote_subst"`' +lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`' +reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`' +reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`' +OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`' +deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`' +file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`' +file_magic_glob='`$ECHO "$file_magic_glob" | $SED "$delay_single_quote_subst"`' +want_nocaseglob='`$ECHO "$want_nocaseglob" | $SED "$delay_single_quote_subst"`' +DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`' +sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`' +AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`' +AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`' +archiver_list_spec='`$ECHO "$archiver_list_spec" | $SED "$delay_single_quote_subst"`' +STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`' +RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`' +old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`' +old_postuninstall_cmds='`$ECHO "$old_postuninstall_cmds" | $SED "$delay_single_quote_subst"`' +old_archive_cmds='`$ECHO "$old_archive_cmds" | $SED "$delay_single_quote_subst"`' +lock_old_archive_extraction='`$ECHO "$lock_old_archive_extraction" | $SED "$delay_single_quote_subst"`' +CC='`$ECHO "$CC" | $SED "$delay_single_quote_subst"`' +CFLAGS='`$ECHO "$CFLAGS" | $SED "$delay_single_quote_subst"`' +compiler='`$ECHO "$compiler" | $SED "$delay_single_quote_subst"`' +GCC='`$ECHO "$GCC" | $SED "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`' +nm_file_list_spec='`$ECHO "$nm_file_list_spec" | $SED "$delay_single_quote_subst"`' +lt_sysroot='`$ECHO "$lt_sysroot" | $SED "$delay_single_quote_subst"`' +objdir='`$ECHO "$objdir" | $SED "$delay_single_quote_subst"`' +MAGIC_CMD='`$ECHO "$MAGIC_CMD" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_no_builtin_flag='`$ECHO "$lt_prog_compiler_no_builtin_flag" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_pic='`$ECHO "$lt_prog_compiler_pic" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_static='`$ECHO "$lt_prog_compiler_static" | $SED "$delay_single_quote_subst"`' +lt_cv_prog_compiler_c_o='`$ECHO "$lt_cv_prog_compiler_c_o" | $SED "$delay_single_quote_subst"`' +need_locks='`$ECHO "$need_locks" | $SED "$delay_single_quote_subst"`' +MANIFEST_TOOL='`$ECHO "$MANIFEST_TOOL" | $SED "$delay_single_quote_subst"`' +DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`' +NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`' +LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`' +OTOOL='`$ECHO "$OTOOL" | $SED "$delay_single_quote_subst"`' +OTOOL64='`$ECHO "$OTOOL64" | $SED "$delay_single_quote_subst"`' +libext='`$ECHO "$libext" | $SED "$delay_single_quote_subst"`' +shrext_cmds='`$ECHO "$shrext_cmds" | $SED "$delay_single_quote_subst"`' +extract_expsyms_cmds='`$ECHO "$extract_expsyms_cmds" | $SED "$delay_single_quote_subst"`' +archive_cmds_need_lc='`$ECHO "$archive_cmds_need_lc" | $SED "$delay_single_quote_subst"`' +enable_shared_with_static_runtimes='`$ECHO "$enable_shared_with_static_runtimes" | $SED "$delay_single_quote_subst"`' +export_dynamic_flag_spec='`$ECHO "$export_dynamic_flag_spec" | $SED "$delay_single_quote_subst"`' +whole_archive_flag_spec='`$ECHO "$whole_archive_flag_spec" | $SED "$delay_single_quote_subst"`' +compiler_needs_object='`$ECHO "$compiler_needs_object" | $SED "$delay_single_quote_subst"`' +old_archive_from_new_cmds='`$ECHO "$old_archive_from_new_cmds" | $SED "$delay_single_quote_subst"`' +old_archive_from_expsyms_cmds='`$ECHO "$old_archive_from_expsyms_cmds" | $SED "$delay_single_quote_subst"`' +archive_cmds='`$ECHO "$archive_cmds" | $SED "$delay_single_quote_subst"`' +archive_expsym_cmds='`$ECHO "$archive_expsym_cmds" | $SED "$delay_single_quote_subst"`' +module_cmds='`$ECHO "$module_cmds" | $SED "$delay_single_quote_subst"`' +module_expsym_cmds='`$ECHO "$module_expsym_cmds" | $SED "$delay_single_quote_subst"`' +with_gnu_ld='`$ECHO "$with_gnu_ld" | $SED "$delay_single_quote_subst"`' +allow_undefined_flag='`$ECHO "$allow_undefined_flag" | $SED "$delay_single_quote_subst"`' +no_undefined_flag='`$ECHO "$no_undefined_flag" | $SED "$delay_single_quote_subst"`' +hardcode_libdir_flag_spec='`$ECHO "$hardcode_libdir_flag_spec" | $SED "$delay_single_quote_subst"`' +hardcode_libdir_separator='`$ECHO "$hardcode_libdir_separator" | $SED "$delay_single_quote_subst"`' +hardcode_direct='`$ECHO "$hardcode_direct" | $SED "$delay_single_quote_subst"`' +hardcode_direct_absolute='`$ECHO "$hardcode_direct_absolute" | $SED "$delay_single_quote_subst"`' +hardcode_minus_L='`$ECHO "$hardcode_minus_L" | $SED "$delay_single_quote_subst"`' +hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_quote_subst"`' +hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`' +inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`' +link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`' +always_export_symbols='`$ECHO "$always_export_symbols" | $SED "$delay_single_quote_subst"`' +export_symbols_cmds='`$ECHO "$export_symbols_cmds" | $SED "$delay_single_quote_subst"`' +exclude_expsyms='`$ECHO "$exclude_expsyms" | $SED "$delay_single_quote_subst"`' +include_expsyms='`$ECHO "$include_expsyms" | $SED "$delay_single_quote_subst"`' +prelink_cmds='`$ECHO "$prelink_cmds" | $SED "$delay_single_quote_subst"`' +postlink_cmds='`$ECHO "$postlink_cmds" | $SED "$delay_single_quote_subst"`' +file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`' +variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`' +need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`' +need_version='`$ECHO "$need_version" | $SED "$delay_single_quote_subst"`' +version_type='`$ECHO "$version_type" | $SED "$delay_single_quote_subst"`' +runpath_var='`$ECHO "$runpath_var" | $SED "$delay_single_quote_subst"`' +shlibpath_var='`$ECHO "$shlibpath_var" | $SED "$delay_single_quote_subst"`' +shlibpath_overrides_runpath='`$ECHO "$shlibpath_overrides_runpath" | $SED "$delay_single_quote_subst"`' +libname_spec='`$ECHO "$libname_spec" | $SED "$delay_single_quote_subst"`' +library_names_spec='`$ECHO "$library_names_spec" | $SED "$delay_single_quote_subst"`' +soname_spec='`$ECHO "$soname_spec" | $SED "$delay_single_quote_subst"`' +install_override_mode='`$ECHO "$install_override_mode" | $SED "$delay_single_quote_subst"`' +postinstall_cmds='`$ECHO "$postinstall_cmds" | $SED "$delay_single_quote_subst"`' +postuninstall_cmds='`$ECHO "$postuninstall_cmds" | $SED "$delay_single_quote_subst"`' +finish_cmds='`$ECHO "$finish_cmds" | $SED "$delay_single_quote_subst"`' +finish_eval='`$ECHO "$finish_eval" | $SED "$delay_single_quote_subst"`' +hardcode_into_libs='`$ECHO "$hardcode_into_libs" | $SED "$delay_single_quote_subst"`' +sys_lib_search_path_spec='`$ECHO "$sys_lib_search_path_spec" | $SED "$delay_single_quote_subst"`' +sys_lib_dlsearch_path_spec='`$ECHO "$sys_lib_dlsearch_path_spec" | $SED "$delay_single_quote_subst"`' +hardcode_action='`$ECHO "$hardcode_action" | $SED "$delay_single_quote_subst"`' +enable_dlopen='`$ECHO "$enable_dlopen" | $SED "$delay_single_quote_subst"`' +enable_dlopen_self='`$ECHO "$enable_dlopen_self" | $SED "$delay_single_quote_subst"`' +enable_dlopen_self_static='`$ECHO "$enable_dlopen_self_static" | $SED "$delay_single_quote_subst"`' +old_striplib='`$ECHO "$old_striplib" | $SED "$delay_single_quote_subst"`' +striplib='`$ECHO "$striplib" | $SED "$delay_single_quote_subst"`' + +LTCC='$LTCC' +LTCFLAGS='$LTCFLAGS' +compiler='$compiler_DEFAULT' + +# A function that is used when there is no print builtin or printf. +func_fallback_echo () +{ + eval 'cat <<_LTECHO_EOF +\$1 +_LTECHO_EOF' +} + +# Quote evaled strings. +for var in SHELL \ +ECHO \ +PATH_SEPARATOR \ +SED \ +GREP \ +EGREP \ +FGREP \ +LD \ +NM \ +LN_S \ +lt_SP2NL \ +lt_NL2SP \ +reload_flag \ +OBJDUMP \ +deplibs_check_method \ +file_magic_cmd \ +file_magic_glob \ +want_nocaseglob \ +DLLTOOL \ +sharedlib_from_linklib_cmd \ +AR \ +AR_FLAGS \ +archiver_list_spec \ +STRIP \ +RANLIB \ +CC \ +CFLAGS \ +compiler \ +lt_cv_sys_global_symbol_pipe \ +lt_cv_sys_global_symbol_to_cdecl \ +lt_cv_sys_global_symbol_to_c_name_address \ +lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \ +nm_file_list_spec \ +lt_prog_compiler_no_builtin_flag \ +lt_prog_compiler_pic \ +lt_prog_compiler_wl \ +lt_prog_compiler_static \ +lt_cv_prog_compiler_c_o \ +need_locks \ +MANIFEST_TOOL \ +DSYMUTIL \ +NMEDIT \ +LIPO \ +OTOOL \ +OTOOL64 \ +shrext_cmds \ +export_dynamic_flag_spec \ +whole_archive_flag_spec \ +compiler_needs_object \ +with_gnu_ld \ +allow_undefined_flag \ +no_undefined_flag \ +hardcode_libdir_flag_spec \ +hardcode_libdir_separator \ +exclude_expsyms \ +include_expsyms \ +file_list_spec \ +variables_saved_for_relink \ +libname_spec \ +library_names_spec \ +soname_spec \ +install_override_mode \ +finish_eval \ +old_striplib \ +striplib; do + case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in + *[\\\\\\\`\\"\\\$]*) + eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" + ;; + *) + eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" + ;; + esac +done + +# Double-quote double-evaled strings. +for var in reload_cmds \ +old_postinstall_cmds \ +old_postuninstall_cmds \ +old_archive_cmds \ +extract_expsyms_cmds \ +old_archive_from_new_cmds \ +old_archive_from_expsyms_cmds \ +archive_cmds \ +archive_expsym_cmds \ +module_cmds \ +module_expsym_cmds \ +export_symbols_cmds \ +prelink_cmds \ +postlink_cmds \ +postinstall_cmds \ +postuninstall_cmds \ +finish_cmds \ +sys_lib_search_path_spec \ +sys_lib_dlsearch_path_spec; do + case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in + *[\\\\\\\`\\"\\\$]*) + eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" + ;; + *) + eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" + ;; + esac +done + +ac_aux_dir='$ac_aux_dir' +xsi_shell='$xsi_shell' +lt_shell_append='$lt_shell_append' + +# See if we are running on zsh, and set the options which allow our +# commands through without removal of \ escapes INIT. +if test -n "\${ZSH_VERSION+set}" ; then + setopt NO_GLOB_SUBST +fi + + + PACKAGE='$PACKAGE' + VERSION='$VERSION' + TIMESTAMP='$TIMESTAMP' + RM='$RM' + ofile='$ofile' + + + + + _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 @@ -7444,15 +16098,27 @@ case $ac_config_target in "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; + "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;; "default-1") CONFIG_COMMANDS="$CONFIG_COMMANDS default-1" ;; "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; + "pkgconfig/libgviewv4l2core.pc") CONFIG_FILES="$CONFIG_FILES pkgconfig/libgviewv4l2core.pc" ;; + "pkgconfig/libgviewaudio.pc") CONFIG_FILES="$CONFIG_FILES pkgconfig/libgviewaudio.pc" ;; + "pkgconfig/libgviewrender.pc") CONFIG_FILES="$CONFIG_FILES pkgconfig/libgviewrender.pc" ;; + "pkgconfig/libgviewencoder.pc") CONFIG_FILES="$CONFIG_FILES pkgconfig/libgviewencoder.pc" ;; + "gview_v4l2core/Makefile") CONFIG_FILES="$CONFIG_FILES gview_v4l2core/Makefile" ;; + "gview_audio/Makefile") CONFIG_FILES="$CONFIG_FILES gview_audio/Makefile" ;; + "gview_render/Makefile") CONFIG_FILES="$CONFIG_FILES gview_render/Makefile" ;; + "gview_encoder/Makefile") CONFIG_FILES="$CONFIG_FILES gview_encoder/Makefile" ;; + "guvcview/Makefile") CONFIG_FILES="$CONFIG_FILES guvcview/Makefile" ;; "data/Makefile") CONFIG_FILES="$CONFIG_FILES data/Makefile" ;; "data/icons/Makefile") CONFIG_FILES="$CONFIG_FILES data/icons/Makefile" ;; "data/guvcview.desktop.in") CONFIG_FILES="$CONFIG_FILES data/guvcview.desktop.in" ;; + "data/guvcview.appdata.xml.in") CONFIG_FILES="$CONFIG_FILES data/guvcview.appdata.xml.in" ;; "data/guvcview.in") CONFIG_FILES="$CONFIG_FILES data/guvcview.in" ;; "po/Makefile.in") CONFIG_FILES="$CONFIG_FILES po/Makefile.in" ;; - "src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;; + "po/gview_v4l2core/Makefile.in") CONFIG_FILES="$CONFIG_FILES po/gview_v4l2core/Makefile.in" ;; "po/stamp-it") CONFIG_COMMANDS="$CONFIG_COMMANDS po/stamp-it" ;; + "po/gview_v4l2core/stamp-it") CONFIG_COMMANDS="$CONFIG_COMMANDS po/gview_v4l2core/stamp-it" ;; *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; esac @@ -8141,6 +16807,636 @@ done } ;; + "libtool":C) + + # See if we are running on zsh, and set the options which allow our + # commands through without removal of \ escapes. + if test -n "${ZSH_VERSION+set}" ; then + setopt NO_GLOB_SUBST + fi + + cfgfile="${ofile}T" + trap "$RM \"$cfgfile\"; exit 1" 1 2 15 + $RM "$cfgfile" + + cat <<_LT_EOF >> "$cfgfile" +#! $SHELL + +# `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services. +# Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION +# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: +# NOTE: Changes made to this file will be lost: look at ltmain.sh. +# +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, +# 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. +# Written by Gordon Matzigkeit, 1996 +# +# This file is part of GNU Libtool. +# +# GNU Libtool is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation; either version 2 of +# the License, or (at your option) any later version. +# +# As a special exception to the GNU General Public License, +# if you distribute this file as part of a program or library that +# is built using GNU Libtool, you may include this file under the +# same distribution terms that you use for the rest of that program. +# +# GNU Libtool is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with GNU Libtool; see the file COPYING. If not, a copy +# can be downloaded from http://www.gnu.org/licenses/gpl.html, or +# obtained by writing to the Free Software Foundation, Inc., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + + +# The names of the tagged configurations supported by this script. +available_tags="" + +# ### BEGIN LIBTOOL CONFIG + +# Which release of libtool.m4 was used? +macro_version=$macro_version +macro_revision=$macro_revision + +# Whether or not to build shared libraries. +build_libtool_libs=$enable_shared + +# Whether or not to build static libraries. +build_old_libs=$enable_static + +# What type of objects to build. +pic_mode=$pic_mode + +# Whether or not to optimize for fast installation. +fast_install=$enable_fast_install + +# Shell to use when invoking shell scripts. +SHELL=$lt_SHELL + +# An echo program that protects backslashes. +ECHO=$lt_ECHO + +# The PATH separator for the build system. +PATH_SEPARATOR=$lt_PATH_SEPARATOR + +# The host system. +host_alias=$host_alias +host=$host +host_os=$host_os + +# The build system. +build_alias=$build_alias +build=$build +build_os=$build_os + +# A sed program that does not truncate output. +SED=$lt_SED + +# Sed that helps us avoid accidentally triggering echo(1) options like -n. +Xsed="\$SED -e 1s/^X//" + +# A grep program that handles long lines. +GREP=$lt_GREP + +# An ERE matcher. +EGREP=$lt_EGREP + +# A literal string matcher. +FGREP=$lt_FGREP + +# A BSD- or MS-compatible name lister. +NM=$lt_NM + +# Whether we need soft or hard links. +LN_S=$lt_LN_S + +# What is the maximum length of a command? +max_cmd_len=$max_cmd_len + +# Object file suffix (normally "o"). +objext=$ac_objext + +# Executable file suffix (normally ""). +exeext=$exeext + +# whether the shell understands "unset". +lt_unset=$lt_unset + +# turn spaces into newlines. +SP2NL=$lt_lt_SP2NL + +# turn newlines into spaces. +NL2SP=$lt_lt_NL2SP + +# convert \$build file names to \$host format. +to_host_file_cmd=$lt_cv_to_host_file_cmd + +# convert \$build files to toolchain format. +to_tool_file_cmd=$lt_cv_to_tool_file_cmd + +# An object symbol dumper. +OBJDUMP=$lt_OBJDUMP + +# Method to check whether dependent libraries are shared objects. +deplibs_check_method=$lt_deplibs_check_method + +# Command to use when deplibs_check_method = "file_magic". +file_magic_cmd=$lt_file_magic_cmd + +# How to find potential files when deplibs_check_method = "file_magic". +file_magic_glob=$lt_file_magic_glob + +# Find potential files using nocaseglob when deplibs_check_method = "file_magic". +want_nocaseglob=$lt_want_nocaseglob + +# DLL creation program. +DLLTOOL=$lt_DLLTOOL + +# Command to associate shared and link libraries. +sharedlib_from_linklib_cmd=$lt_sharedlib_from_linklib_cmd + +# The archiver. +AR=$lt_AR + +# Flags to create an archive. +AR_FLAGS=$lt_AR_FLAGS + +# How to feed a file listing to the archiver. +archiver_list_spec=$lt_archiver_list_spec + +# A symbol stripping program. +STRIP=$lt_STRIP + +# Commands used to install an old-style archive. +RANLIB=$lt_RANLIB +old_postinstall_cmds=$lt_old_postinstall_cmds +old_postuninstall_cmds=$lt_old_postuninstall_cmds + +# Whether to use a lock for old archive extraction. +lock_old_archive_extraction=$lock_old_archive_extraction + +# A C compiler. +LTCC=$lt_CC + +# LTCC compiler flags. +LTCFLAGS=$lt_CFLAGS + +# Take the output of nm and produce a listing of raw symbols and C names. +global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe + +# Transform the output of nm in a proper C declaration. +global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl + +# Transform the output of nm in a C name address pair. +global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address + +# Transform the output of nm in a C name address pair when lib prefix is needed. +global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix + +# Specify filename containing input files for \$NM. +nm_file_list_spec=$lt_nm_file_list_spec + +# The root where to search for dependent libraries,and in which our libraries should be installed. +lt_sysroot=$lt_sysroot + +# The name of the directory that contains temporary libtool files. +objdir=$objdir + +# Used to examine libraries when file_magic_cmd begins with "file". +MAGIC_CMD=$MAGIC_CMD + +# Must we lock files when doing compilation? +need_locks=$lt_need_locks + +# Manifest tool. +MANIFEST_TOOL=$lt_MANIFEST_TOOL + +# Tool to manipulate archived DWARF debug symbol files on Mac OS X. +DSYMUTIL=$lt_DSYMUTIL + +# Tool to change global to local symbols on Mac OS X. +NMEDIT=$lt_NMEDIT + +# Tool to manipulate fat objects and archives on Mac OS X. +LIPO=$lt_LIPO + +# ldd/readelf like tool for Mach-O binaries on Mac OS X. +OTOOL=$lt_OTOOL + +# ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4. +OTOOL64=$lt_OTOOL64 + +# Old archive suffix (normally "a"). +libext=$libext + +# Shared library suffix (normally ".so"). +shrext_cmds=$lt_shrext_cmds + +# The commands to extract the exported symbol list from a shared archive. +extract_expsyms_cmds=$lt_extract_expsyms_cmds + +# Variables whose values should be saved in libtool wrapper scripts and +# restored at link time. +variables_saved_for_relink=$lt_variables_saved_for_relink + +# Do we need the "lib" prefix for modules? +need_lib_prefix=$need_lib_prefix + +# Do we need a version for libraries? +need_version=$need_version + +# Library versioning type. +version_type=$version_type + +# Shared library runtime path variable. +runpath_var=$runpath_var + +# Shared library path variable. +shlibpath_var=$shlibpath_var + +# Is shlibpath searched before the hard-coded library search path? +shlibpath_overrides_runpath=$shlibpath_overrides_runpath + +# Format of library name prefix. +libname_spec=$lt_libname_spec + +# List of archive names. First name is the real one, the rest are links. +# The last name is the one that the linker finds with -lNAME +library_names_spec=$lt_library_names_spec + +# The coded name of the library, if different from the real name. +soname_spec=$lt_soname_spec + +# Permission mode override for installation of shared libraries. +install_override_mode=$lt_install_override_mode + +# Command to use after installation of a shared archive. +postinstall_cmds=$lt_postinstall_cmds + +# Command to use after uninstallation of a shared archive. +postuninstall_cmds=$lt_postuninstall_cmds + +# Commands used to finish a libtool library installation in a directory. +finish_cmds=$lt_finish_cmds + +# As "finish_cmds", except a single script fragment to be evaled but +# not shown. +finish_eval=$lt_finish_eval + +# Whether we should hardcode library paths into libraries. +hardcode_into_libs=$hardcode_into_libs + +# Compile-time system search path for libraries. +sys_lib_search_path_spec=$lt_sys_lib_search_path_spec + +# Run-time system search path for libraries. +sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec + +# Whether dlopen is supported. +dlopen_support=$enable_dlopen + +# Whether dlopen of programs is supported. +dlopen_self=$enable_dlopen_self + +# Whether dlopen of statically linked programs is supported. +dlopen_self_static=$enable_dlopen_self_static + +# Commands to strip libraries. +old_striplib=$lt_old_striplib +striplib=$lt_striplib + + +# The linker used to build libraries. +LD=$lt_LD + +# How to create reloadable object files. +reload_flag=$lt_reload_flag +reload_cmds=$lt_reload_cmds + +# Commands used to build an old-style archive. +old_archive_cmds=$lt_old_archive_cmds + +# A language specific compiler. +CC=$lt_compiler + +# Is the compiler the GNU compiler? +with_gcc=$GCC + +# Compiler flag to turn off builtin functions. +no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag + +# Additional compiler flags for building library objects. +pic_flag=$lt_lt_prog_compiler_pic + +# How to pass a linker flag through the compiler. +wl=$lt_lt_prog_compiler_wl + +# Compiler flag to prevent dynamic linking. +link_static_flag=$lt_lt_prog_compiler_static + +# Does compiler simultaneously support -c and -o options? +compiler_c_o=$lt_lt_cv_prog_compiler_c_o + +# Whether or not to add -lc for building shared libraries. +build_libtool_need_lc=$archive_cmds_need_lc + +# Whether or not to disallow shared libs when runtime libs are static. +allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes + +# Compiler flag to allow reflexive dlopens. +export_dynamic_flag_spec=$lt_export_dynamic_flag_spec + +# Compiler flag to generate shared objects directly from archives. +whole_archive_flag_spec=$lt_whole_archive_flag_spec + +# Whether the compiler copes with passing no objects directly. +compiler_needs_object=$lt_compiler_needs_object + +# Create an old-style archive from a shared archive. +old_archive_from_new_cmds=$lt_old_archive_from_new_cmds + +# Create a temporary old-style archive to link instead of a shared archive. +old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds + +# Commands used to build a shared archive. +archive_cmds=$lt_archive_cmds +archive_expsym_cmds=$lt_archive_expsym_cmds + +# Commands used to build a loadable module if different from building +# a shared archive. +module_cmds=$lt_module_cmds +module_expsym_cmds=$lt_module_expsym_cmds + +# Whether we are building with GNU ld or not. +with_gnu_ld=$lt_with_gnu_ld + +# Flag that allows shared libraries with undefined symbols to be built. +allow_undefined_flag=$lt_allow_undefined_flag + +# Flag that enforces no undefined symbols. +no_undefined_flag=$lt_no_undefined_flag + +# Flag to hardcode \$libdir into a binary during linking. +# This must work even if \$libdir does not exist +hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec + +# Whether we need a single "-rpath" flag with a separated argument. +hardcode_libdir_separator=$lt_hardcode_libdir_separator + +# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes +# DIR into the resulting binary. +hardcode_direct=$hardcode_direct + +# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes +# DIR into the resulting binary and the resulting library dependency is +# "absolute",i.e impossible to change by setting \${shlibpath_var} if the +# library is relocated. +hardcode_direct_absolute=$hardcode_direct_absolute + +# Set to "yes" if using the -LDIR flag during linking hardcodes DIR +# into the resulting binary. +hardcode_minus_L=$hardcode_minus_L + +# Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR +# into the resulting binary. +hardcode_shlibpath_var=$hardcode_shlibpath_var + +# Set to "yes" if building a shared library automatically hardcodes DIR +# into the library and all subsequent libraries and executables linked +# against it. +hardcode_automatic=$hardcode_automatic + +# Set to yes if linker adds runtime paths of dependent libraries +# to runtime path list. +inherit_rpath=$inherit_rpath + +# Whether libtool must link a program against all its dependency libraries. +link_all_deplibs=$link_all_deplibs + +# Set to "yes" if exported symbols are required. +always_export_symbols=$always_export_symbols + +# The commands to list exported symbols. +export_symbols_cmds=$lt_export_symbols_cmds + +# Symbols that should not be listed in the preloaded symbols. +exclude_expsyms=$lt_exclude_expsyms + +# Symbols that must always be exported. +include_expsyms=$lt_include_expsyms + +# Commands necessary for linking programs (against libraries) with templates. +prelink_cmds=$lt_prelink_cmds + +# Commands necessary for finishing linking programs. +postlink_cmds=$lt_postlink_cmds + +# Specify filename containing input files. +file_list_spec=$lt_file_list_spec + +# How to hardcode a shared library path into an executable. +hardcode_action=$hardcode_action + +# ### END LIBTOOL CONFIG + +_LT_EOF + + case $host_os in + aix3*) + cat <<\_LT_EOF >> "$cfgfile" +# AIX sometimes has problems with the GCC collect2 program. For some +# reason, if we set the COLLECT_NAMES environment variable, the problems +# vanish in a puff of smoke. +if test "X${COLLECT_NAMES+set}" != Xset; then + COLLECT_NAMES= + export COLLECT_NAMES +fi +_LT_EOF + ;; + esac + + +ltmain="$ac_aux_dir/ltmain.sh" + + + # We use sed instead of cat because bash on DJGPP gets confused if + # if finds mixed CR/LF and LF-only lines. Since sed operates in + # text mode, it properly converts lines to CR/LF. This bash problem + # is reportedly fixed, but why not run on old versions too? + sed '$q' "$ltmain" >> "$cfgfile" \ + || (rm -f "$cfgfile"; exit 1) + + if test x"$xsi_shell" = xyes; then + sed -e '/^func_dirname ()$/,/^} # func_dirname /c\ +func_dirname ()\ +{\ +\ case ${1} in\ +\ */*) func_dirname_result="${1%/*}${2}" ;;\ +\ * ) func_dirname_result="${3}" ;;\ +\ esac\ +} # Extended-shell func_dirname implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_basename ()$/,/^} # func_basename /c\ +func_basename ()\ +{\ +\ func_basename_result="${1##*/}"\ +} # Extended-shell func_basename implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_dirname_and_basename ()$/,/^} # func_dirname_and_basename /c\ +func_dirname_and_basename ()\ +{\ +\ case ${1} in\ +\ */*) func_dirname_result="${1%/*}${2}" ;;\ +\ * ) func_dirname_result="${3}" ;;\ +\ esac\ +\ func_basename_result="${1##*/}"\ +} # Extended-shell func_dirname_and_basename implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_stripname ()$/,/^} # func_stripname /c\ +func_stripname ()\ +{\ +\ # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are\ +\ # positional parameters, so assign one to ordinary parameter first.\ +\ func_stripname_result=${3}\ +\ func_stripname_result=${func_stripname_result#"${1}"}\ +\ func_stripname_result=${func_stripname_result%"${2}"}\ +} # Extended-shell func_stripname implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_split_long_opt ()$/,/^} # func_split_long_opt /c\ +func_split_long_opt ()\ +{\ +\ func_split_long_opt_name=${1%%=*}\ +\ func_split_long_opt_arg=${1#*=}\ +} # Extended-shell func_split_long_opt implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_split_short_opt ()$/,/^} # func_split_short_opt /c\ +func_split_short_opt ()\ +{\ +\ func_split_short_opt_arg=${1#??}\ +\ func_split_short_opt_name=${1%"$func_split_short_opt_arg"}\ +} # Extended-shell func_split_short_opt implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_lo2o ()$/,/^} # func_lo2o /c\ +func_lo2o ()\ +{\ +\ case ${1} in\ +\ *.lo) func_lo2o_result=${1%.lo}.${objext} ;;\ +\ *) func_lo2o_result=${1} ;;\ +\ esac\ +} # Extended-shell func_lo2o implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_xform ()$/,/^} # func_xform /c\ +func_xform ()\ +{\ + func_xform_result=${1%.*}.lo\ +} # Extended-shell func_xform implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_arith ()$/,/^} # func_arith /c\ +func_arith ()\ +{\ + func_arith_result=$(( $* ))\ +} # Extended-shell func_arith implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_len ()$/,/^} # func_len /c\ +func_len ()\ +{\ + func_len_result=${#1}\ +} # Extended-shell func_len implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + +fi + +if test x"$lt_shell_append" = xyes; then + sed -e '/^func_append ()$/,/^} # func_append /c\ +func_append ()\ +{\ + eval "${1}+=\\${2}"\ +} # Extended-shell func_append implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_append_quoted ()$/,/^} # func_append_quoted /c\ +func_append_quoted ()\ +{\ +\ func_quote_for_eval "${2}"\ +\ eval "${1}+=\\\\ \\$func_quote_for_eval_result"\ +} # Extended-shell func_append_quoted implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + # Save a `func_append' function call where possible by direct use of '+=' + sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") + test 0 -eq $? || _lt_function_replace_fail=: +else + # Save a `func_append' function call even when '+=' is not available + sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") + test 0 -eq $? || _lt_function_replace_fail=: +fi + +if test x"$_lt_function_replace_fail" = x":"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unable to substitute extended shell functions in $ofile" >&5 +$as_echo "$as_me: WARNING: Unable to substitute extended shell functions in $ofile" >&2;} +fi + + + mv -f "$cfgfile" "$ofile" || + (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") + chmod +x "$ofile" + + ;; "default-1":C) case "$CONFIG_FILES" in *po/Makefile.in*) sed -e "/POTFILES =/r po/POTFILES" po/Makefile.in > po/Makefile esac ;; @@ -8164,6 +17460,26 @@ rm -f "po/Makefile.tmp" mv "po/stamp-it.tmp" "po/stamp-it" ;; + "po/gview_v4l2core/stamp-it":C) + if ! grep "^# INTLTOOL_MAKEFILE$" "po/gview_v4l2core/Makefile.in" > /dev/null ; then + as_fn_error $? "po/gview_v4l2core/Makefile.in.in was not created by intltoolize." "$LINENO" 5 + fi + rm -f "po/gview_v4l2core/stamp-it" "po/gview_v4l2core/stamp-it.tmp" "po/gview_v4l2core/POTFILES" "po/gview_v4l2core/Makefile.tmp" + >"po/gview_v4l2core/stamp-it.tmp" + sed '/^#/d + s/^[[].*] *// + /^[ ]*$/d + '"s|^| $ac_top_srcdir/|" \ + "$srcdir/po/gview_v4l2core/POTFILES.in" | sed '$!s/$/ \\/' >"po/gview_v4l2core/POTFILES" + + sed '/^POTFILES =/,/[^\\]$/ { + /^POTFILES =/!d + r po/gview_v4l2core/POTFILES + } + ' "po/gview_v4l2core/Makefile.in" >"po/gview_v4l2core/Makefile" + rm -f "po/gview_v4l2core/Makefile.tmp" + mv "po/gview_v4l2core/stamp-it.tmp" "po/gview_v4l2core/stamp-it" + ;; esac done # for ac_tag @@ -8208,14 +17524,14 @@ guvcview $VERSION ---------------------- - Prefix : ${prefix} - - Pulse API : ${enable_pulse} - - Desktop File : ${enable_desktop} - Debian Menu : ${enable_debian_menu} - - Debug Symbols : ${enable_debug} + Prefix : ${prefix} + Pulseaudio : ${enable_pulse} + internal format : ${yuv_format} + gsl : ${enable_gsl} + sdl2 : ${enable_sdl2} + mjpg decoder : ${mjpg_decoder} + desktop file : ${enable_desktop} + debian menu : ${enable_debian_menu} " >&5 $as_echo "$as_me: @@ -8223,14 +17539,16 @@ guvcview $VERSION ---------------------- - Prefix : ${prefix} - - Pulse API : ${enable_pulse} + Prefix : ${prefix} + Pulseaudio : ${enable_pulse} + internal format : ${yuv_format} + gsl : ${enable_gsl} + sdl2 : ${enable_sdl2} + mjpg decoder : ${mjpg_decoder} + desktop file : ${enable_desktop} + debian menu : ${enable_debian_menu} - Desktop File : ${enable_desktop} - Debian Menu : ${enable_debian_menu} +" >&6;} - Debug Symbols : ${enable_debug} -" >&6;} diff -Nru guvcview-1.7.3/configure.ac guvcview-2.0.1+ubuntu1~ppa1/configure.ac --- guvcview-1.7.3/configure.ac 2014-03-24 22:56:28.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/configure.ac 2014-10-05 10:41:44.000000000 +0000 @@ -4,23 +4,36 @@ # in the environment, or whether autoconf added -O and -g options: ORIGINAL_CFLAGS="$CFLAGS" -dnl -------------------------------------------------------------------------- -dnl Package definitions and initialization -dnl -------------------------------------------------------------------------- -m4_define([guvcview_major], [1]) -m4_define([guvcview_minor], [7]) -m4_define([guvcview_micro], [3]) +dnl -------------------------------- +dnl Initialization macros (sets PACKAGE and VERSION) +dnl -------------------------------- +m4_define([guvcview_major], [2]) +m4_define([guvcview_minor], [0]) +m4_define([guvcview_micro], [1]) + m4_define([guvcview_version], [guvcview_major.guvcview_minor.guvcview_micro]) -AC_INIT([guvcview],[guvcview_version],[http://guvcview.sourceforge.net/]) +AC_INIT([guvcview], [guvcview_version], [http://guvcview.sourceforge.net/]) + +PACKAGE_RELEASE=2 +AC_SUBST(PACKAGE_RELEASE) +AC_DEFINE_UNQUOTED(PACKAGE_RELEASE,"$PACKAGE_RELEASE", 2) + +dnl ------------------------------------------------ +dnl Pretty output +dnl ------------------------------------------------ m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])]) -AM_INIT_AUTOMAKE([gnu]) +AM_INIT_AUTOMAKE([foreign]) AC_CONFIG_MACRO_DIR([m4]) AC_CONFIG_HEADERS(config.h) AM_MAINTAINER_MODE(disable) +dnl ----------------------------------------------- +dnl Package release +dnl ----------------------------------------------- + # autoconf 2.5x defaults to no cache file; we need the cache file's information # for building the config page. But start with it empty to avoid confusion by # people who don't do a "make distclean" after applying patches. @@ -32,100 +45,259 @@ AC_PROG_CC AM_PROG_CC_C_O AC_HEADER_STDC +AC_PROG_LIBTOOL +AM_SANITY_CHECK dnl -------------------------------------------------------------------------- dnl set pthread_libs and pthread_cflags dnl -------------------------------------------------------------------------- dnl ACX_PTHREAD([ACTION-IF-FOUND[, ACTION-IF-NOT-FOUND]]) -ACX_PTHREAD() -dnl -------------------------------------------------------------------------- -dnl Debug/development/test -dnl -------------------------------------------------------------------------- - -dnl --------------------------------------------------------------------------- -dnl CF_STRIP_G_OPT version: 3 updated: 2002/12/21 19:25:52 -dnl -------------- -dnl Remove "-g" option from the compiler options -AC_DEFUN([CF_STRIP_G_OPT], -[$1=`echo ${$1} | sed -e 's%-g %%' -e 's%-g$%%'`]) - -dnl --------------------------------------------------------------------------- -dnl CF_STRIP_O_OPT version: 3 updated: 2001/02/02 19:06:08 -dnl -------------- -dnl Remove "-O" option from the compiler options -AC_DEFUN([CF_STRIP_O_OPT], -[$1=`echo ${$1} | sed -e 's/-O[[1-9]]\? //' -e 's/-O[[1-9]]\?$//'`]) - -# The comment about adding -g to $CFLAGS is unclear. Autoconf tries to add -# a -g flag; we remove it if the user's $CFLAGS was not set and debugging is -# disabled. -AC_MSG_CHECKING(if you specifically want to enable debug-code [-g]) -AC_ARG_ENABLE(debug, AS_HELP_STRING([--enable-debug], - [enable debug compile w/ debugging - if \$CFLAGS is set, add -g there, too]), - [enable_debug=yes], - [enable_debug=no]) - -AC_MSG_RESULT($enable_debug) - -if test "x$enable_debug" = "xyes" ; then - test -z "$ORIGINAL_CFLAGS" && CF_STRIP_O_OPT(CFLAGS) - if test "$CC" = gcc; then - CFLAGS="$CFLAGS -g" - fi -#else -# CF_STRIP_G_OPT(CFLAGS) -fi +ACX_PTHREAD() AC_SUBST(CFLAGS) dnl -------------------------------------------------------------------------- dnl Set gettext package name dnl -------------------------------------------------------------------------- + +GETTEXT_PACKAGE_V4L2CORE=gview_v4l2core +AC_SUBST(GETTEXT_PACKAGE_V4L2CORE) +AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE_V4L2CORE,"$GETTEXT_PACKAGE_V4L2CORE", [gview_v4l2core]) + GETTEXT_PACKAGE=guvcview AC_SUBST(GETTEXT_PACKAGE) AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE,"$GETTEXT_PACKAGE", [guvcview]) IT_PROG_INTLTOOL([0.40]) +IT_PO_SUBDIR(po/gview_v4l2core) dnl -------------------------------------------------------------------------- dnl Languages supported by guvcview. dnl -------------------------------------------------------------------------- + ALL_LINGUAS="bg bs cs da de en_AU es eu fo fr gl he hr it ja lv nl pl pt pt_BR ru si sr tr uk zh_TW" AM_GLIB_GNU_GETTEXT([external]) +dnl ----------------------------------------------- +dnl check for some required headers +dnl ----------------------------------------------- +AC_STDC_HEADERS +AC_HAVE_HEADERS(math.h) +AC_CHECK_LIB([m],[exp],[AC_DEFINE([HAVE_EXP],[1],[libm includes exp])]) +AC_CHECK_LIB([m],[roundf],[AC_DEFINE([HAVE_ROUNDF],[1],[libm includes roundf])]) +AC_CHECK_LIB([m],[pow],[AC_DEFINE([HAVE_POW],[1],[libm includes pow])]) + +dnl ----------------------------------------------- +dnl libgviewv4l2core name and version number +dnl ----------------------------------------------- + +GVIEWV4L2CORE_LIBRARY_NAME=libgviewv4l2core +AC_SUBST(GVIEWV4L2CORE_LIBRARY_NAME) +GVIEWV4L2CORE_LD_NAME=gviewv4l2core +AC_SUBST(GVIEWV4L2CORE_LD_NAME) + +#release versioning +GVIEWV4L2CORE_MAJOR_VERSION=1 +GVIEWV4L2CORE_MINOR_VERSION=0 +GVIEWV4L2CORE_MICRO_VERSION=1 + +#API version (SONAME) +GVIEWV4L2CORE_API_VERSION=$GVIEWV4L2CORE_MAJOR_VERSION.$GVIEWV4L2CORE_MINOR_VERSION +AC_SUBST(GVIEWV4L2CORE_API_VERSION) + +#shared library versioning +GVIEWV4L2CORE_LIBRARY_VERSION=$GVIEWV4L2CORE_MAJOR_VERSION:$GVIEWV4L2CORE_MINOR_VERSION:$GVIEWV4L2CORE_MICRO_VERSION +# +# current:revision:age +# | | | +# | | +- increment if interfaces have been added +# | | set to zero if interfaces have been removed +# or changed +# | +- increment if source code has changed +# | set to zero if current is incremented +# +- increment if interfaces have been added, removed or changed + +AC_SUBST(GVIEWV4L2CORE_LIBRARY_VERSION) + +dnl -------------------------------------------------------------------------- +dnl check for libgviewv4l2core dependencies +dnl -------------------------------------------------------------------------- + +PKG_CHECK_MODULES(GVIEWV4L2CORE, [libv4l2 libudev libusb-1.0 libavcodec libpng]) +AC_SUBST(GVIEWV4L2CORE_CFLAGS) +AC_SUBST(GVIEWV4L2CORE_LIBS) + +dnl -------------------------------------------------------------------------- +dnl check internal yuv format (packed yuyv - default) or planar (iyuv) +dnl -------------------------------------------------------------------------- +AC_MSG_CHECKING(if you want to enable iyuv (planar 420) as internal format) +AC_ARG_ENABLE(iyuv, AS_HELP_STRING([--enable-iyuv], + [enable iyuv (planar 420) as internal format (default: disabled)]), + [enable_iyuv=yes yuv_format="iyuv (alpha)"], + [enable_iyuv=no yuv_format=yuyv]) + +AC_MSG_RESULT($enable_iyuv) + +if test $enable_iyuv = yes; then + AC_DEFINE(USE_PLANAR_YUV, 1, [set to 1 if iyuv is enabled]) +fi + dnl -------------------------------------------------------------------------- -dnl check for dependencies +dnl Check for avcodec.h installation path dnl -------------------------------------------------------------------------- -PKG_CHECK_MODULES(DEPS, [gtk+-3.0 >= 3.0.0 glib-2.0 >= 2.10.0 sdl >= 1.2.10 portaudio-2.0 libpng libavcodec libavutil libv4l2 libudev libusb-1.0]) -AC_SUBST(DEPS_CFLAGS) -AC_SUBST(DEPS_LIBS) + +dnl Check for avcodec.h directly +dnl if all tests fail must add avcodec.h path to C_INCLUDE_PATH before running configure +CPPFLAGS+="${GVIEWV4L2CORE_CFLAGS}" +AC_CHECK_HEADERS([avcodec.h libavcodec/avcodec.h ffmpeg/avcodec.h]) dnl -------------------------------------------------------------------------- -dnl set/unset debian menu +dnl Check if we will use libavcodec or the internal decoder for mjpeg decoding dnl -------------------------------------------------------------------------- -AC_MSG_CHECKING(if you want to enable debian menu) -AC_ARG_ENABLE(debian-menu, AS_HELP_STRING([--disable-debian-menu], - [disable debian menu (default: enabled)]), - [enable_debian_menu=no], - [enable_debian_menu=yes]) +AC_MSG_CHECKING(if you want to use the internal mjpeg decoder over libavcodec ) +AC_ARG_ENABLE(builtin-mjpg, AS_HELP_STRING([--enable-builtin-mjpg], + [enable builtin mjpg decoder support (default: disable)]), + [enable_builtin_mjpg=yes mjpg_decoder=builtin], + [enable_builtin_mjpg=no mjpg_decoder=libavcodec]) -AC_MSG_RESULT($enable_debian_menu) +AC_MSG_RESULT($enable_builtin_mjpg) -AM_CONDITIONAL(DEBIAN_MENU, test "$enable_debian_menu" = yes) + +if test $enable_builtin_mjpg = yes; then + AC_DEFINE(MJPG_BUILTIN, 1, [set to 1 if builtin decoder is enabled]) + AC_MSG_WARN(libavcodec mjpg decoder disabled... the builtin decoder will be used instead.) +fi + +dnl ----------------------------------------------- +dnl libgviewrender name and version number +dnl ----------------------------------------------- + +GVIEWRENDER_LIBRARY_NAME=libgviewrender +AC_SUBST(GVIEWRENDER_LIBRARY_NAME) +GVIEWRENDER_LD_NAME=gviewrender +AC_SUBST(GVIEWRENDER_LD_NAME) + +#release versioning +GVIEWRENDER_MAJOR_VERSION=1 +GVIEWRENDER_MINOR_VERSION=0 +GVIEWRENDER_MICRO_VERSION=1 + +#API version (SONAME) +GVIEWRENDER_API_VERSION=$GVIEWRENDER_MAJOR_VERSION.$GVIEWRENDER_MINOR_VERSION +AC_SUBST(GVIEWRENDER_API_VERSION) + +#shared library versioning +GVIEWRENDER_LIBRARY_VERSION=$GVIEWRENDER_MAJOR_VERSION:$GVIEWRENDER_MINOR_VERSION:$GVIEWRENDER_MICRO_VERSION +# +# current:revision:age +# | | | +# | | +- increment if interfaces have been added +# | | set to zero if interfaces have been removed +# or changed +# | +- increment if source code has changed +# | set to zero if current is incremented +# +- increment if interfaces have been added, removed or changed + +AC_SUBST(GVIEWRENDER_LIBRARY_VERSION) dnl -------------------------------------------------------------------------- -dnl set/unset desktop file +dnl check for libgviewrender dependencies dnl -------------------------------------------------------------------------- -AC_MSG_CHECKING(if you want to enable desktop file) -AC_ARG_ENABLE(desktop, AS_HELP_STRING([--disable-desktop], - [disable desktop file (default: enabled)]), - [enable_desktop=no], - [enable_desktop=yes]) -AC_MSG_RESULT($enable_desktop) +dnl -------------------------------------------------------------------------- +dnl Check for prefered sdl version (1 or 2) +dnl -------------------------------------------------------------------------- +AC_MSG_CHECKING(if you want to enable sdl2 support) +AC_ARG_ENABLE(sdl2, AS_HELP_STRING([--disable-sdl2], + [disable sdl2 support (default: enabled)]), + [enable_sdl2=no], + [enable_sdl2=yes]) -AM_CONDITIONAL(DESKTOP, test "$enable_desktop" = yes) +AC_MSG_RESULT($enable_sdl2) + +if test $enable_sdl2 = yes; then + + PKG_CHECK_MODULES(GVIEWRENDER, [sdl2 >= 2.0]) + AC_SUBST(GVIEWRENDER_CFLAGS) + AC_SUBST(GVIEWRENDER_LIBS) + + AC_DEFINE(ENABLE_SDL2, 1, [set to 1 if sdl2 is enabled]) +else + AC_MSG_WARN(sdl2 disabled... sdl1.2 will be used instead.) + PKG_CHECK_MODULES(GVIEWRENDER, [sdl >= 1.2.10]) + AC_SUBST(GVIEWRENDER_CFLAGS) + AC_SUBST(GVIEWRENDER_LIBS) +fi + +AM_CONDITIONAL(ENABLE_SDL2, test $enable_sdl2 = yes) + +dnl -------------------------------------------------------------------------- +dnl Check for gsl (gnu random generator) used by render fx +dnl -------------------------------------------------------------------------- +AC_MSG_CHECKING(if you want to enable gsl support) +AC_ARG_ENABLE(gsl, AS_HELP_STRING([--disable-gsl], + [disable gsl support (default: enabled)]), + [enable_gsl=no], + [enable_gsl=yes]) + +AC_MSG_RESULT($enable_gsl) + +if test $enable_gsl = yes; then + + dnl AX_PATH_GSL( + dnl 1.15, + dnl AC_DEFINE(HAS_GSL, 1, [set to 1 if gsl is enabled]), + dnl AC_MSG_WARN(libgsl not found... some render fx filters will be disabled.)) + + PKG_CHECK_MODULES(GSL, [gsl >= 1.15]) + AC_SUBST(GSL_CFLAGS) + AC_SUBST(GSL_LIBS) + + AC_DEFINE(HAS_GSL, 1, [set to 1 if gsl is enabled]) +else + AC_MSG_WARN(libgsl disabled... some render fx filters will be disabled.) +fi + +dnl ----------------------------------------------- +dnl libgviewaudio name and version number +dnl ----------------------------------------------- + +GVIEWAUDIO_LIBRARY_NAME=libgviewaudio +AC_SUBST(GVIEWAUDIO_LIBRARY_NAME) +GVIEWAUDIO_LD_NAME=gviewaudio +AC_SUBST(GVIEWAUDIO_LD_NAME) + +#release versioning +GVIEWAUDIO_MAJOR_VERSION=1 +GVIEWAUDIO_MINOR_VERSION=0 +GVIEWAUDIO_MICRO_VERSION=1 + +#API version (SONAME) +GVIEWAUDIO_API_VERSION=$GVIEWAUDIO_MAJOR_VERSION.$GVIEWAUDIO_MINOR_VERSION +AC_SUBST(GVIEWAUDIO_API_VERSION) + +#shared library versioning +GVIEWAUDIO_LIBRARY_VERSION=$GVIEWAUDIO_MAJOR_VERSION:$GVIEWAUDIO_MINOR_VERSION:$GVIEWAUDIO_MICRO_VERSION +# +# current:revision:age +# | | | +# | | +- increment if interfaces have been added +# | | set to zero if interfaces have been removed +# or changed +# | +- increment if source code has changed +# | set to zero if current is incremented +# +- increment if interfaces have been added, removed or changed + +AC_SUBST(GVIEWAUDIO_LIBRARY_VERSION) + +dnl -------------------------------------------------------------------------- +dnl check for libgviewaudio dependencies +dnl -------------------------------------------------------------------------- + +PKG_CHECK_MODULES(GVIEWAUDIO, [portaudio-2.0]) +AC_SUBST(GVIEWAUDIO_CFLAGS) +AC_SUBST(GVIEWAUDIO_LIBS) dnl -------------------------------------------------------------------------- dnl Check for pulseaudio @@ -143,53 +315,126 @@ AC_SUBST(PULSE_CFLAGS) AC_SUBST(PULSE_LIBS) if test "$has_pulse" = yes; then - AC_DEFINE(PULSEAUDIO,1,[set to 1 if pulseaudio installed]) + AC_DEFINE(HAS_PULSEAUDIO, 1, [set to 1 if pulseaudio installed]) else AC_MSG_WARN(libpulse missing... pulse support will be disabled.); enable_pulse=no fi fi +AM_CONDITIONAL(HAVE_PULSEAUDIO, test $enable_pulse = yes) + +dnl ----------------------------------------------- +dnl libgviewencoder name and version number +dnl ----------------------------------------------- + +GVIEWENCODER_LIBRARY_NAME=libgviewencoder +AC_SUBST(GVIEWENCODER_LIBRARY_NAME) +GVIEWENCODER_LD_NAME=gviewencoder +AC_SUBST(GVIEWENCODER_LD_NAME) + +#release versioning +GVIEWENCODER_MAJOR_VERSION=1 +GVIEWENCODER_MINOR_VERSION=0 +GVIEWENCODER_MICRO_VERSION=1 + +#API version (SONAME) +GVIEWENCODER_API_VERSION=$GVIEWENCODER_MAJOR_VERSION.$GVIEWENCODER_MINOR_VERSION +AC_SUBST(GVIEWENCODER_API_VERSION) + +#shared library versioning +GVIEWENCODER_LIBRARY_VERSION=$GVIEWENCODER_MAJOR_VERSION:$GVIEWENCODER_MINOR_VERSION:$GVIEWENCODER_MICRO_VERSION +# +# current:revision:age +# | | | +# | | +- increment if interfaces have been added +# | | set to zero if interfaces have been removed +# or changed +# | +- increment if source code has changed +# | set to zero if current is incremented +# +- increment if interfaces have been added, removed or changed + +AC_SUBST(GVIEWENCODER_LIBRARY_VERSION) + dnl -------------------------------------------------------------------------- -dnl Check for avcodec.h installation path +dnl check for libgviewencoder dependencies dnl -------------------------------------------------------------------------- -dnl Check for avcodec.h directly -dnl if all tests fail must add avcodec.h path to C_INCLUDE_PATH before running configure -AC_CHECK_HEADER([avcodec.h], [has_avcodec_h="yes"]) +PKG_CHECK_MODULES(GVIEWENCODER, [libavcodec, libavutil]) +AC_SUBST(GVIEWENCODER_CFLAGS) +AC_SUBST(GVIEWENCODER_LIBS) -dnl Check old install path for avcodec.h (ffmpeg/avcodec.h) -AC_CHECK_HEADER([ffmpeg/avcodec.h], [has_ffmpeg_dir="yes"]) +dnl -------------------------------------------------------------------------- +dnl Check for libavutil/version.h +dnl -------------------------------------------------------------------------- -dnl Check new install path for avcodec.h (libavcodec/avcodec.h) -dnl if all the checks fail we include "libavcodec/avcodec.h" -AC_CHECK_HEADER([libavcodec/avcodec.h], [has_libavcodec_dir="yes"]) +AC_CHECK_HEADERS([libavutil/version.h]) -if test "$has_avcodec_h" = yes; then - AC_DEFINE(HAS_AVCODEC_H,1,[Define if avcodec.h can be acessed directly]) -fi -if test "$has_ffmpeg_dir" = yes; then - AC_DEFINE(HAS_FFMPEG_AVCODEC_H,1,[Define if avcodec.h installed to ffmpeg dir]) -fi -if test "$has_libavcodec_dir" = yes; then - AC_DEFINE(HAS_LIBAVCODEC_AVCODEC_H,1,[Define if avcodec.h installed to libavcodec dir]) -fi +dnl -------------------------------------------------------------------------- +dnl check for guvcview dependencies +dnl -------------------------------------------------------------------------- + +PKG_CHECK_MODULES(GUVCVIEW, [gtk+-3.0 >= 3.0.0 glib-2.0 >= 2.10.0]) +AC_SUBST(GUVCVIEW_CFLAGS) +AC_SUBST(GUVCVIEW_LIBS) + +AC_CHECK_FUNCS([fpathconf dirfd]) + +dnl -------------------------------------------------------------------------- +dnl set/unset debian menu +dnl -------------------------------------------------------------------------- +AC_MSG_CHECKING(if you want to enable debian menu) +AC_ARG_ENABLE(debian-menu, AS_HELP_STRING([--disable-debian-menu], + [disable debian menu (default: enabled)]), + [enable_debian_menu=no], + [enable_debian_menu=yes]) + +AC_MSG_RESULT($enable_debian_menu) + +AM_CONDITIONAL(DEBIAN_MENU, test "$enable_debian_menu" = yes) + +dnl -------------------------------------------------------------------------- +dnl set/unset desktop file +dnl -------------------------------------------------------------------------- +AC_MSG_CHECKING(if you want to enable desktop file) +AC_ARG_ENABLE(desktop, AS_HELP_STRING([--disable-desktop], + [disable desktop file (default: enabled)]), + [enable_desktop=no], + [enable_desktop=yes]) + +AC_MSG_RESULT($enable_desktop) + +AM_CONDITIONAL(DESKTOP, test "$enable_desktop" = yes) dnl -------------------------------------------------------------------------- dnl Check if the processor stores words with the most significant byte first dnl (like Motorola and SPARC, unlike Intel and VAX). dnl -------------------------------------------------------------------------- + AC_C_BIGENDIAN -dnl Create the Makefiles +dnl ----------------------------------------------- +dnl Generates Makefiles, configuration files and scripts +dnl ----------------------------------------------- + AC_CONFIG_FILES([ - Makefile - data/Makefile - data/icons/Makefile - data/guvcview.desktop.in - data/guvcview.in - po/Makefile.in - src/Makefile + Makefile + pkgconfig/libgviewv4l2core.pc + pkgconfig/libgviewaudio.pc + pkgconfig/libgviewrender.pc + pkgconfig/libgviewencoder.pc + gview_v4l2core/Makefile + gview_audio/Makefile + gview_render/Makefile + gview_encoder/Makefile + guvcview/Makefile + data/Makefile + data/icons/Makefile + data/guvcview.desktop.in + data/guvcview.appdata.xml.in + data/guvcview.in + po/Makefile.in + po/gview_v4l2core/Makefile.in ]) AC_OUTPUT @@ -199,14 +444,16 @@ guvcview $VERSION ---------------------- - Prefix : ${prefix} + Prefix : ${prefix} + Pulseaudio : ${enable_pulse} + internal format : ${yuv_format} + gsl : ${enable_gsl} + sdl2 : ${enable_sdl2} + mjpg decoder : ${mjpg_decoder} + desktop file : ${enable_desktop} + debian menu : ${enable_debian_menu} - Pulse API : ${enable_pulse} - - Desktop File : ${enable_desktop} - Debian Menu : ${enable_debian_menu} +]) - Debug Symbols : ${enable_debug} -]) diff -Nru guvcview-1.7.3/data/guvcview.appdata.xml.in.in guvcview-2.0.1+ubuntu1~ppa1/data/guvcview.appdata.xml.in.in --- guvcview-1.7.3/data/guvcview.appdata.xml.in.in 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/data/guvcview.appdata.xml.in.in 2014-10-05 10:41:44.000000000 +0000 @@ -0,0 +1,29 @@ + + + + guvcview.desktop + CC0-1.0 + GPL-2.0+ + Gtk+ UVC Viewer + <_summary>capture video from v4l2 devices + + <_p> + Video capture tool for video4linux2 compliant cameras, + with special emphasis on the linux uvc driver. + It provides Image (jpg, png, bmp) and Video + (mjpeg, flv1, wmv1, mpg2, mpg4,...) capture with sound + in several formats( currently: avi and matroska). + I also supports a control panel option (--control_only) + that is compatible with any other v4l2 app. + + + + https://sourceforge.net/p/guvcview/screenshot/guvcview_image_tab.png + https://sourceforge.net/p/guvcview/screenshot/guvcview_h264_tab.png + https://sourceforge.net/p/guvcview/screenshot/guvcview_video_tab.png + https://sourceforge.net/p/guvcview/screenshot/guvcview_audio_tab.png + https://a.fsdn.com/con/app/proj/guvcview/screenshots/guvcview_video_preview.png + + http://guvcview.sourceforge.net/ + assisp@gmail.com + diff -Nru guvcview-1.7.3/data/icons/Makefile.in guvcview-2.0.1+ubuntu1~ppa1/data/icons/Makefile.in --- guvcview-1.7.3/data/icons/Makefile.in 2014-03-24 22:56:28.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/data/icons/Makefile.in 2014-10-05 10:41:44.000000000 +0000 @@ -1,4 +1,4 @@ -# Makefile.in generated by automake 1.13.3 from Makefile.am. +# Makefile.in generated by automake 1.14.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. @@ -82,8 +82,10 @@ DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/acx_pthread.m4 \ - $(top_srcdir)/m4/intltool.m4 $(top_srcdir)/m4/nls.m4 \ - $(top_srcdir)/configure.ac + $(top_srcdir)/m4/intltool.m4 $(top_srcdir)/m4/libtool.m4 \ + $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ + $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ + $(top_srcdir)/m4/nls.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d @@ -144,6 +146,7 @@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ @@ -159,17 +162,48 @@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ -DEPS_CFLAGS = @DEPS_CFLAGS@ -DEPS_LIBS = @DEPS_LIBS@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ +FGREP = @FGREP@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GETTEXT_PACKAGE_V4L2CORE = @GETTEXT_PACKAGE_V4L2CORE@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ +GSL_CFLAGS = @GSL_CFLAGS@ +GSL_LIBS = @GSL_LIBS@ +GUVCVIEW_CFLAGS = @GUVCVIEW_CFLAGS@ +GUVCVIEW_LIBS = @GUVCVIEW_LIBS@ +GVIEWAUDIO_API_VERSION = @GVIEWAUDIO_API_VERSION@ +GVIEWAUDIO_CFLAGS = @GVIEWAUDIO_CFLAGS@ +GVIEWAUDIO_LD_NAME = @GVIEWAUDIO_LD_NAME@ +GVIEWAUDIO_LIBRARY_NAME = @GVIEWAUDIO_LIBRARY_NAME@ +GVIEWAUDIO_LIBRARY_VERSION = @GVIEWAUDIO_LIBRARY_VERSION@ +GVIEWAUDIO_LIBS = @GVIEWAUDIO_LIBS@ +GVIEWENCODER_API_VERSION = @GVIEWENCODER_API_VERSION@ +GVIEWENCODER_CFLAGS = @GVIEWENCODER_CFLAGS@ +GVIEWENCODER_LD_NAME = @GVIEWENCODER_LD_NAME@ +GVIEWENCODER_LIBRARY_NAME = @GVIEWENCODER_LIBRARY_NAME@ +GVIEWENCODER_LIBRARY_VERSION = @GVIEWENCODER_LIBRARY_VERSION@ +GVIEWENCODER_LIBS = @GVIEWENCODER_LIBS@ +GVIEWRENDER_API_VERSION = @GVIEWRENDER_API_VERSION@ +GVIEWRENDER_CFLAGS = @GVIEWRENDER_CFLAGS@ +GVIEWRENDER_LD_NAME = @GVIEWRENDER_LD_NAME@ +GVIEWRENDER_LIBRARY_NAME = @GVIEWRENDER_LIBRARY_NAME@ +GVIEWRENDER_LIBRARY_VERSION = @GVIEWRENDER_LIBRARY_VERSION@ +GVIEWRENDER_LIBS = @GVIEWRENDER_LIBS@ +GVIEWV4L2CORE_API_VERSION = @GVIEWV4L2CORE_API_VERSION@ +GVIEWV4L2CORE_CFLAGS = @GVIEWV4L2CORE_CFLAGS@ +GVIEWV4L2CORE_LD_NAME = @GVIEWV4L2CORE_LD_NAME@ +GVIEWV4L2CORE_LIBRARY_NAME = @GVIEWV4L2CORE_LIBRARY_NAME@ +GVIEWV4L2CORE_LIBRARY_VERSION = @GVIEWV4L2CORE_LIBRARY_VERSION@ +GVIEWV4L2CORE_LIBS = @GVIEWV4L2CORE_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -181,21 +215,36 @@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ +INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ +INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ +INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ +INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ +LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_RELEASE = @PACKAGE_RELEASE@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ @@ -213,6 +262,8 @@ PTHREAD_LIBS = @PTHREAD_LIBS@ PULSE_CFLAGS = @PULSE_CFLAGS@ PULSE_LIBS = @PULSE_LIBS@ +RANLIB = @RANLIB@ +SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ @@ -223,7 +274,9 @@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ acx_pthread_config = @acx_pthread_config@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ @@ -251,6 +304,8 @@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ +intltool__v_merge_options_ = @intltool__v_merge_options_@ +intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ @@ -294,9 +349,9 @@ exit 1;; \ esac; \ done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu data/icons/Makefile'; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign data/icons/Makefile'; \ $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnu data/icons/Makefile + $(AUTOMAKE) --foreign data/icons/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ @@ -315,6 +370,12 @@ $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs install-iconsDATA: $(icons_DATA) @$(NORMAL_INSTALL) @list='$(icons_DATA)'; test -n "$(iconsdir)" || list=; \ @@ -412,7 +473,7 @@ @echo "it deletes files that may require special tools to rebuild." clean: clean-am -clean-am: clean-generic mostlyclean-am +clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile @@ -465,7 +526,7 @@ mostlyclean: mostlyclean-am -mostlyclean-am: mostlyclean-generic +mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am @@ -480,16 +541,17 @@ $(MAKE) $(AM_MAKEFLAGS) uninstall-hook .MAKE: install-am install-data-am install-strip uninstall-am -.PHONY: all all-am check check-am clean clean-generic cscopelist-am \ - ctags-am distclean distclean-generic distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-data-hook install-dvi install-dvi-am \ - install-exec install-exec-am install-html install-html-am \ - install-iconsDATA install-info install-info-am install-man \ - install-pdf install-pdf-am install-ps install-ps-am \ - install-strip installcheck installcheck-am installdirs \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-generic pdf pdf-am ps ps-am tags-am uninstall \ +.PHONY: all all-am check check-am clean clean-generic clean-libtool \ + cscopelist-am ctags-am distclean distclean-generic \ + distclean-libtool distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am \ + install-data-hook install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-iconsDATA \ + install-info install-info-am install-man install-pdf \ + install-pdf-am install-ps install-ps-am install-strip \ + installcheck installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-generic \ + mostlyclean-libtool pdf pdf-am ps ps-am tags-am uninstall \ uninstall-am uninstall-hook uninstall-iconsDATA diff -Nru guvcview-1.7.3/data/Makefile.am guvcview-2.0.1+ubuntu1~ppa1/data/Makefile.am --- guvcview-1.7.3/data/Makefile.am 2014-03-24 22:56:28.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/data/Makefile.am 2014-10-05 10:41:44.000000000 +0000 @@ -1,5 +1,6 @@ SUBDIRS = icons @INTLTOOL_DESKTOP_RULE@ +@INTLTOOL_XML_RULE@ dist_man_MANS = guvcview.1 @@ -24,16 +25,24 @@ desktopdir = $(datadir)/applications desktop_DATA = $(DESKTOP_FILES) +APPDATA_IN_FILES= guvcview.appdata.xml.in +APPDATA_FILES= $(APPDATA_IN_FILES:.xml.in=.xml) + +appdatadir = $(datadir)/appdata +appdata_DATA = $(APPDATA_FILES) + endif CLEANFILES = \ $(menu_DATA)\ - $(desktop_DATA) + $(desktop_DATA) \ + $(appdata_DATA) EXTRA_DIST = \ + $(APPDATA_IN_FILES) \ $(DESKTOP_IN_FILES)\ $(MENU_IN_FILES) clean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES); \ - -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES); \ + test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) diff -Nru guvcview-1.7.3/data/Makefile.in guvcview-2.0.1+ubuntu1~ppa1/data/Makefile.in --- guvcview-1.7.3/data/Makefile.in 2014-03-24 22:56:28.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/data/Makefile.in 2014-10-05 10:41:44.000000000 +0000 @@ -1,4 +1,4 @@ -# Makefile.in generated by automake 1.13.3 from Makefile.am. +# Makefile.in generated by automake 1.14.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. @@ -80,17 +80,21 @@ host_triplet = @host@ subdir = data DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ - $(srcdir)/guvcview.desktop.in.in $(srcdir)/guvcview.in.in \ + $(srcdir)/guvcview.desktop.in.in \ + $(srcdir)/guvcview.appdata.xml.in.in $(srcdir)/guvcview.in.in \ $(dist_man_MANS) ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/acx_pthread.m4 \ - $(top_srcdir)/m4/intltool.m4 $(top_srcdir)/m4/nls.m4 \ - $(top_srcdir)/configure.ac + $(top_srcdir)/m4/intltool.m4 $(top_srcdir)/m4/libtool.m4 \ + $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ + $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ + $(top_srcdir)/m4/nls.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = guvcview.desktop.in guvcview.in +CONFIG_CLEAN_FILES = guvcview.desktop.in guvcview.appdata.xml.in \ + guvcview.in CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) @@ -147,11 +151,11 @@ $(am__cd) "$$dir" && rm -f $$files; }; \ } man1dir = $(mandir)/man1 -am__installdirs = "$(DESTDIR)$(man1dir)" "$(DESTDIR)$(desktopdir)" \ - "$(DESTDIR)$(menudir)" +am__installdirs = "$(DESTDIR)$(man1dir)" "$(DESTDIR)$(appdatadir)" \ + "$(DESTDIR)$(desktopdir)" "$(DESTDIR)$(menudir)" NROFF = nroff MANS = $(dist_man_MANS) -DATA = $(desktop_DATA) $(menu_DATA) +DATA = $(appdata_DATA) $(desktop_DATA) $(menu_DATA) RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive am__recursive_targets = \ @@ -210,6 +214,7 @@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ @@ -225,17 +230,48 @@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ -DEPS_CFLAGS = @DEPS_CFLAGS@ -DEPS_LIBS = @DEPS_LIBS@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ +FGREP = @FGREP@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GETTEXT_PACKAGE_V4L2CORE = @GETTEXT_PACKAGE_V4L2CORE@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ +GSL_CFLAGS = @GSL_CFLAGS@ +GSL_LIBS = @GSL_LIBS@ +GUVCVIEW_CFLAGS = @GUVCVIEW_CFLAGS@ +GUVCVIEW_LIBS = @GUVCVIEW_LIBS@ +GVIEWAUDIO_API_VERSION = @GVIEWAUDIO_API_VERSION@ +GVIEWAUDIO_CFLAGS = @GVIEWAUDIO_CFLAGS@ +GVIEWAUDIO_LD_NAME = @GVIEWAUDIO_LD_NAME@ +GVIEWAUDIO_LIBRARY_NAME = @GVIEWAUDIO_LIBRARY_NAME@ +GVIEWAUDIO_LIBRARY_VERSION = @GVIEWAUDIO_LIBRARY_VERSION@ +GVIEWAUDIO_LIBS = @GVIEWAUDIO_LIBS@ +GVIEWENCODER_API_VERSION = @GVIEWENCODER_API_VERSION@ +GVIEWENCODER_CFLAGS = @GVIEWENCODER_CFLAGS@ +GVIEWENCODER_LD_NAME = @GVIEWENCODER_LD_NAME@ +GVIEWENCODER_LIBRARY_NAME = @GVIEWENCODER_LIBRARY_NAME@ +GVIEWENCODER_LIBRARY_VERSION = @GVIEWENCODER_LIBRARY_VERSION@ +GVIEWENCODER_LIBS = @GVIEWENCODER_LIBS@ +GVIEWRENDER_API_VERSION = @GVIEWRENDER_API_VERSION@ +GVIEWRENDER_CFLAGS = @GVIEWRENDER_CFLAGS@ +GVIEWRENDER_LD_NAME = @GVIEWRENDER_LD_NAME@ +GVIEWRENDER_LIBRARY_NAME = @GVIEWRENDER_LIBRARY_NAME@ +GVIEWRENDER_LIBRARY_VERSION = @GVIEWRENDER_LIBRARY_VERSION@ +GVIEWRENDER_LIBS = @GVIEWRENDER_LIBS@ +GVIEWV4L2CORE_API_VERSION = @GVIEWV4L2CORE_API_VERSION@ +GVIEWV4L2CORE_CFLAGS = @GVIEWV4L2CORE_CFLAGS@ +GVIEWV4L2CORE_LD_NAME = @GVIEWV4L2CORE_LD_NAME@ +GVIEWV4L2CORE_LIBRARY_NAME = @GVIEWV4L2CORE_LIBRARY_NAME@ +GVIEWV4L2CORE_LIBRARY_VERSION = @GVIEWV4L2CORE_LIBRARY_VERSION@ +GVIEWV4L2CORE_LIBS = @GVIEWV4L2CORE_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -247,21 +283,36 @@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ +INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ +INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ +INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ +INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ +LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_RELEASE = @PACKAGE_RELEASE@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ @@ -279,6 +330,8 @@ PTHREAD_LIBS = @PTHREAD_LIBS@ PULSE_CFLAGS = @PULSE_CFLAGS@ PULSE_LIBS = @PULSE_LIBS@ +RANLIB = @RANLIB@ +SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ @@ -289,7 +342,9 @@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ acx_pthread_config = @acx_pthread_config@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ @@ -317,6 +372,8 @@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ +intltool__v_merge_options_ = @intltool__v_merge_options_@ +intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ @@ -346,11 +403,17 @@ @DESKTOP_TRUE@DESKTOP_FILES = $(DESKTOP_IN_FILES:.desktop.in=.desktop) @DESKTOP_TRUE@desktopdir = $(datadir)/applications @DESKTOP_TRUE@desktop_DATA = $(DESKTOP_FILES) +@DESKTOP_TRUE@APPDATA_IN_FILES = guvcview.appdata.xml.in +@DESKTOP_TRUE@APPDATA_FILES = $(APPDATA_IN_FILES:.xml.in=.xml) +@DESKTOP_TRUE@appdatadir = $(datadir)/appdata +@DESKTOP_TRUE@appdata_DATA = $(APPDATA_FILES) CLEANFILES = \ $(menu_DATA)\ - $(desktop_DATA) + $(desktop_DATA) \ + $(appdata_DATA) EXTRA_DIST = \ + $(APPDATA_IN_FILES) \ $(DESKTOP_IN_FILES)\ $(MENU_IN_FILES) @@ -366,9 +429,9 @@ exit 1;; \ esac; \ done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu data/Makefile'; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign data/Makefile'; \ $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnu data/Makefile + $(AUTOMAKE) --foreign data/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ @@ -389,8 +452,16 @@ $(am__aclocal_m4_deps): guvcview.desktop.in: $(top_builddir)/config.status $(srcdir)/guvcview.desktop.in.in cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +guvcview.appdata.xml.in: $(top_builddir)/config.status $(srcdir)/guvcview.appdata.xml.in.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ guvcview.in: $(top_builddir)/config.status $(srcdir)/guvcview.in.in cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs install-man1: $(dist_man_MANS) @$(NORMAL_INSTALL) @list1=''; \ @@ -434,6 +505,27 @@ } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \ dir='$(DESTDIR)$(man1dir)'; $(am__uninstall_files_from_dir) +install-appdataDATA: $(appdata_DATA) + @$(NORMAL_INSTALL) + @list='$(appdata_DATA)'; test -n "$(appdatadir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(appdatadir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(appdatadir)" || exit 1; \ + fi; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(appdatadir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(appdatadir)" || exit $$?; \ + done + +uninstall-appdataDATA: + @$(NORMAL_UNINSTALL) + @list='$(appdata_DATA)'; test -n "$(appdatadir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(appdatadir)'; $(am__uninstall_files_from_dir) install-desktopDATA: $(desktop_DATA) @$(NORMAL_INSTALL) @list='$(desktop_DATA)'; test -n "$(desktopdir)" || list=; \ @@ -636,7 +728,7 @@ all-am: Makefile $(MANS) $(DATA) installdirs: installdirs-recursive installdirs-am: - for dir in "$(DESTDIR)$(man1dir)" "$(DESTDIR)$(desktopdir)" "$(DESTDIR)$(menudir)"; do \ + for dir in "$(DESTDIR)$(man1dir)" "$(DESTDIR)$(appdatadir)" "$(DESTDIR)$(desktopdir)" "$(DESTDIR)$(menudir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-recursive @@ -669,7 +761,7 @@ @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive -clean-am: clean-generic mostlyclean-am +clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f Makefile @@ -687,7 +779,8 @@ info-am: -install-data-am: install-desktopDATA install-man install-menuDATA +install-data-am: install-appdataDATA install-desktopDATA install-man \ + install-menuDATA install-dvi: install-dvi-recursive @@ -721,7 +814,7 @@ mostlyclean: mostlyclean-recursive -mostlyclean-am: mostlyclean-generic +mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive @@ -731,35 +824,38 @@ ps-am: -uninstall-am: uninstall-desktopDATA uninstall-man uninstall-menuDATA +uninstall-am: uninstall-appdataDATA uninstall-desktopDATA \ + uninstall-man uninstall-menuDATA uninstall-man: uninstall-man1 .MAKE: $(am__recursive_targets) install-am install-strip .PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ - check-am clean clean-generic cscopelist-am ctags ctags-am \ - distclean distclean-generic distclean-tags distdir dvi dvi-am \ - html html-am info info-am install install-am install-data \ + check-am clean clean-generic clean-libtool cscopelist-am ctags \ + ctags-am distclean distclean-generic distclean-libtool \ + distclean-tags distdir dvi dvi-am html html-am info info-am \ + install install-am install-appdataDATA install-data \ install-data-am install-desktopDATA install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-man install-man1 \ install-menuDATA install-pdf install-pdf-am install-ps \ install-ps-am install-strip installcheck installcheck-am \ installdirs installdirs-am maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ - pdf-am ps ps-am tags tags-am uninstall uninstall-am \ - uninstall-desktopDATA uninstall-man uninstall-man1 \ - uninstall-menuDATA + maintainer-clean-generic mostlyclean mostlyclean-generic \ + mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \ + uninstall-am uninstall-appdataDATA uninstall-desktopDATA \ + uninstall-man uninstall-man1 uninstall-menuDATA @INTLTOOL_DESKTOP_RULE@ +@INTLTOOL_XML_RULE@ @DEBIAN_MENU_TRUE@$(MENU_FILES): $(MENU_IN_FILES) @DEBIAN_MENU_TRUE@ cp $? $@ clean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES); \ - -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES); \ + test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. diff -Nru guvcview-1.7.3/debian/changelog guvcview-2.0.1+ubuntu1~ppa1/debian/changelog --- guvcview-1.7.3/debian/changelog 2014-09-04 20:07:38.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/debian/changelog 2014-10-05 10:53:41.000000000 +0000 @@ -1,177 +1,520 @@ -guvcview (1.7.3-1.1build2) utopic; urgency=medium +guvcview (2.0.1+ubuntu1~ppa1) utopic; urgency=low - * Rebuild against libav11. + * bum to new version - -- Colin Watson Thu, 04 Sep 2014 21:07:38 +0100 + -- Paulo Assis Tue, 30 Sep 2014 18:05:00 +0100 + +guvcview (2.0.0+ubuntu2~trusty~ppa1) trusty; urgency=low -guvcview (1.7.3-1.1build1) utopic; urgency=medium + * add appdata file - * No-change rebuild against libav10. + -- Paulo Assis Fri, 27 Jun 2014 10:45:00 +0100 - -- Logan Rosen Sat, 31 May 2014 22:12:13 -0400 +guvcview (2.0.0+ubuntu1~trusty~ppa1) trusty; urgency=low -guvcview (1.7.3-1.1) unstable; urgency=medium + * initial debian package for version 2.0 - * Non-maintainer upload. - * debian/patches/0001-fix-build-with-libav10.patch: Update patch to build - against libav 10. Thanks to Moritz Muehlenhoff. (Closes: #739323) + -- Paulo Assis Wed, 30 Apr 2014 12:01:00 +0100 - -- Sebastian Ramacher Fri, 16 May 2014 00:09:00 +0200 +guvcview (1.7.3+ubuntu1~saucy~ppa1) saucy; urgency=low -guvcview (1.7.3-1) unstable; urgency=low + * bump version + * update standards to 3.9.4 - * New upstream release. (Closes: #739049) - * Update debian/control. - - Update Standards-Version to 3.9.5. - - Add libusb-1.0-0-dev to Build-Depends. - * Fix build with libav10. (Closes: #739323) - Add patches/0001-fix-build-with-libav10.patch. - Thanks to Moritz Muehlenhoff and anton@khirnov.net. + -- Paulo Assis Sun, 16 Feb 2014 10:45:00 +0000 - -- Nobuhiro Iwamatsu Tue, 25 Mar 2014 07:56:34 +0900 +guvcview (1.7.2-ubuntu1~saucy~ppa1) saucy; urgency=low -guvcview (1.7.1-1) unstable; urgency=low + * bump version - * New upstream release. (Closes: #712397) - * Update debian/control. - - Update Vcs-Git and Vcs-Browser field - * Remove patches/fix_typo. This was applied to upstream. + -- Paulo Assis Sun, 8 Dec 2013 10:50:00 +0000 - -- Nobuhiro Iwamatsu Wed, 18 Sep 2013 12:59:47 +0900 +guvcview (1.7.1-ubuntu1~raring~ppa1) raring; urgency=low -guvcview (1.7.0-1) unstable; urgency=low + * bump version - * New upstream release. (Closes: #677123, #686649, #687440, #704295) - * Update debian/control. - - Bumped standards-version to 3.9.4. - * Change source format to 3.0 (quilt). - * Fix typo in manpage. - Add debian/patches/fix_typo. + -- Paulo Assis Tue, 16 Jul 2013 13:53:00 +0000 - -- Nobuhiro Iwamatsu Mon, 27 May 2013 14:32:02 +0900 +guvcview (1.7.0-ubuntu1~quantal~ppa1) quantal; urgency=low -guvcview (1.6.0-1~exp1) experimental; urgency=low + * bump standards version to 3.9.3 + * update rules to reflect remove of configure script from git repo + * upgrade to new version (1.7.0): + - refactor avi muxer (base it on libav muxer with opendml support) + - refactor mkv muxer (base it on libav muxer with webm support) + - Add VP8, Theora and Vorbis codecs + - Add Webm support + - Add Top Menu + - Move all file operations to Top Menu + * debian/changelog - * New upstream release. - * Update debian/control. - - Update to debhelper 9. - - Bumped standards-version to 3.9.3. - - Add Vcs-Git field and Vcs-Browser field. - - Add intltool to Build-Depends. - * Update debian/compat. - Bumped to 9. - * Update debian/copyight. - Update to copyright-format 1.0. + -- Paulo Assis Sun, 03 Mar 2013 11:39:42 +0000 - -- Nobuhiro Iwamatsu Sat, 04 Aug 2012 06:25:47 +0900 +guvcview (1.6.1-ubuntu1~precise~ppa1) precise; urgency=low -guvcview (1.5.3-1) unstable; urgency=low + * Fix build with latest libavcodec + * Fix audio codecs listing + * Fix audio codecs (AC3 and AAC) input format for latest libavcodec API (float) + * Add support for delayed frames in video encoding - * New upstream release (Closes: #644733). - * Update debian/control. - - Update Build-depends from libpng12-dev to libpng-dev only. - (Closes: #662368) - - Update Homepage field. (Closes: #662297) + -- Paulo Assis Sun, 22 Jul 2012 14:35:00 +0000 - -- Nobuhiro Iwamatsu Mon, 05 Mar 2012 12:05:09 +0900 +guvcview (1.6.0-ubuntu1~precise~ppa1) precise; urgency=low -guvcview (1.5.0-1) unstable; urgency=low + * run audio in separate thread + * update audio buffer + * move pulse audio interface from simple to async API + * add pulse device list + * enable build of pulse API by default - * New upstream release. (Closes: #638323) - * Update debian/control. - - Update Architecture from any to linux-any. - - Add libpng-dev to Build-Depends. This needs to libpng transition. + -- Paulo Assis Thu, 19 Apr 2012 23:18:00 +0000 - -- Nobuhiro Iwamatsu Mon, 22 Aug 2011 12:28:10 +0900 +guvcview (1.5.3-ubuntu1~oneiric~ppa1) oneiric; urgency=low -guvcview (1.4.5-1) unstable; urgency=low + * update libavcodec API + * add libavutil dependency - * New upstream release. - * Update debian/control. - - Bumped standards-version to 3.9.2. - No changes needed. - - Add libudev-dev to Build-Depends. + -- Paulo Assis Mon, 27 Feb 2012 14:27:00 +0000 - -- Nobuhiro Iwamatsu Thu, 14 Jul 2011 13:34:16 +0900 +guvcview (1.5.2-ubuntu1~oneiric~ppa1) oneiric; urgency=low -guvcview (1.4.1-1) unstable; urgency=low + * move to pthreads (fix gthread API 2 issues) + * add italian translation + * fix several libavcodec issues + * fix some gtk3 widgets + * update standards version to 3.9.2 - * New upstream release. - * Update debian/control. - - Bumped standards-version to 3.9.0. - No changes needed. - - Remove quilt from Build-depends. - - Add uvcdynctrl to Recommends. - * Remove debian/patches. + -- Paulo Assis Wed, 1 Feb 2012 12:12:00 +0000 - -- Nobuhiro Iwamatsu Thu, 08 Jul 2010 09:43:27 +0900 +guvcview (1.5.1-ubuntu3~oneiric~ppa1) oneiric; urgency=low -guvcview (1.3.1-1) unstable; urgency=low + * move to gtk3 + * make control window size dependent on screen resolution + * Threaded coding patch George Sedov + * fix h264 codec properties - * New upstream release - * Update debian/control. - - Add quilt (>= 0.46-7~). - * Add debian/source/format. - Set source format to "1.0". + -- Paulo Assis Wed, 12 Oct 2011 12:12:00 +0000 - -- Nobuhiro Iwamatsu Tue, 20 Apr 2010 05:52:30 +0900 +guvcview (1.5.0-ubuntu1~natty~ppa1) natty; urgency=low -guvcview (1.3.0-1) unstable; urgency=low + * update standards version to 3.9.1 + * add a no display mode (--no_display) + * fix build issues with newer versions (>=0.7.x) of ffmpeg libavcodec + * add support for unix signals + * add VU meter OSD + * fix menu controls (linux 3.0) - * New upstream release. - * Update debian/control. - - Bumped standards-version to 3.8.4. No changes needed. - - Add libv4l-dev to Build-Depends. + -- Paulo Assis Tue, 9 Apr 2011 22:16:00 +0000 - -- Nobuhiro Iwamatsu Mon, 08 Mar 2010 00:41:09 +0900 +guvcview (1.4.5-ubuntu1~maverick~ppa1) maverick; urgency=low -guvcview (1.2.1-1) unstable; urgency=low + * store current codec properties in configuration file + * fix audio codec properties button + * modify some logitech extra controls (integer to menu) - * New upstream release (Closes: #564301). - * Change from cdbs to debhelper. - * Change patch control tool from dpatch to quilt. + -- Paulo Assis Tue, 1 Mar 2011 23:09:00 +0000 - -- Nobuhiro Iwamatsu Sun, 10 Jan 2010 08:50:22 +0900 +guvcview (1.4.4-ubuntu1~maverick~ppa1) maverick; urgency=low -guvcview (1.1.3-1) unstable; urgency=low + * add av_sync patch by Richard Fuchs : + Fixes sync issues between audio and video + (most noticeable in avi container due to lack of timestamps) + * Apply matroska-largefiles patch by Richard Fuchs : + Fix large files indexing in 32 bit systems + * fix logitech disable video processing mode - * New upstream release. - * Change e-mail address. - * Remove DM-Upload-Allowed field. - * Update Standards-Version. - * Add README.source file. - * Update 01_update_man.dpatch + -- Paulo Assis Mon, 10 Jan 2011 15:05:00 +0000 - -- Nobuhiro Iwamatsu Wed, 09 Sep 2009 19:43:43 +0900 +guvcview (1.4.3-ubuntu1~maverick~ppa1) maverick; urgency=low -guvcview (1.1.1-1) unstable; urgency=low + * Fix control enumeration for buggy cameras (endless loop on failed control query) + * Add udev events support (new dependy libudev) + * Add exit on close to image capture + * Fix image capture autonaming when set from command line - * New upstream release. - * Update Standards-Version. (Closes: #535303) - * Add "DM-Upload-Allowed: yes" to debian/control. - * Add 01_update_man.dpatch - * Remove some patch, because applied in upstream. - 01_null_check_and_file_clean.dpatch - 02_uyvy_draw_size.dpatch + -- Paulo Assis Sun, 06 Nov 2010 11:00:00 +0000 - -- Nobuhiro Iwamatsu Fri, 24 Jul 2009 19:18:02 +0900 +guvcview (1.4.2-ubuntu1~lucid~ppa1) lucid; urgency=low -guvcview (1.1.0-1) unstable; urgency=low + * Add support for Y16 pixel format (Greyscale) + * Fix dynamic control support under kernels > 2.6.35 + * Check if resolution is supported by SDL_Surface + * Check for null overlays + * Use a sanner video ring buffer size (dependent on fps) + * Add gdk-pixbuf-2.0 to pkg-config dependencies - fix build error on Maverick - * New upstream release. (Closes: #518061) - * Add libtwolame-dev to Build-Depends. - * Remove UYVY dpatch. - * Add new patch of NULL check. - 01_null_check_and_file_clean.dpatch - * Add new patch of fix draw size. - 02_uyvy_draw_size.dpatch + -- Paulo Assis Sat, 25 Sept 2010 14:45:00 +0000 - -- Nobuhiro Iwamatsu Tue, 31 Mar 2009 23:18:15 +0900 +guvcview (1.4.1-ubuntu1~lucid~ppa1) lucid; urgency=low -guvcview (0.9.3-1) unstable; urgency=low + * Fix h264 defaults + * Fix dynamic control mappings (uncache dynamic ctrls in uvc driver) + * check for valid ranges on integer controls + * Add uvcdynctrl to Recommends - * Initial release (Closes: #493533) - * Add support UYVY color + -- Paulo Assis Mon, 14 Jun 2010 23:24:00 +0000 - -- Nobuhiro Iwamatsu Sun, 14 Sep 2008 01:09:51 +0900 +guvcview (1.4.0-ubuntu1~lucid~ppa1) lucid; urgency=low + * completly refactor v4l control interface + * change to control profile file format - rfc 0.0.2 + * change icon set, use Paul Davey icons: + http://mattahan.deviantart.com/ + + -- Paulo Assis Tue, 8 Jun 2010 10:18:00 +0000 + +guvcview (1.3.1-ubuntu2~karmic~ppa1) karmic; urgency=low + * Add support for GDK events + * Add support for Webcam photo button + * Add raw image format to command line picture timed capture + + -- Paulo Assis Sat, 10 Apr 2010 22:23:00 +0000 + +guvcview (1.3.0-ubuntu1~karmic~ppa1) karmic; urgency=low + + * Use libv4l2 for device access + * Fix several builtin software autofocus issues + + -- Paulo Assis Sat, 6 Mar 2010 19:58:00 +0000 + +guvcview (1.2.2-ubuntu1~karmic~ppa1) karmic; urgency=low + + * Drop Twolame dependency + * Audio enconding through libavcodec + * Add MP3, AC3 and AAC(needs ffmpeg extra from medibuntu repo) support + + -- Paulo Assis Sat, 30 Jan 2010 13:08:00 +0000 + +guvcview (1.2.1-ubuntu1~karmic~ppa1) karmic; urgency=low + + * Performance boost: + - Use ring buffers for video and audio processing. + - Moved video and audio processing (including file IO) to separate thread. + * Add particles video effect. + * Fixed bug caused by empty device list. + * Add MPG4-AVC (H264) codec support. + * Package renamed to avoid future conflict with universe repo. + + -- Paulo Assis Mon, 16 Nov 2009 10:25:00 +0000 + +guvcview (1.2.0-ubuntu1) karmic; urgency=low + + * Resolution and input format change no longer need a restart + * Add "add_ctrls" option - exits after adding extension controls + * Add disk check during capture (checks free space every 10sec) + * Stop capture if low on free disk space + * Add xioctl funtion - failed ioctl will be retried 4 times in case of I/O error + * Fixed invalid gtk-button-images property warning + + -- Paulo Assis Wed, 13 Oct 2009 11:30:00 +0000 + +guvcview (1.1.4-ubuntu1) karmic; urgency=low + + * Set pixel format BA81 to correct fourcc + * Definitve fix button images display under karmic + * Add pix formats: nv12, nv21, nv16, nv61, y41p, grey, s501, s505, s508 + * Improve yu12 and yv12 format conversion. + * Changed package dependencies to new ffmpeg naming (use ffmpeg-extra) + * Add skip initial frames option + * Fix man pages + * Add hebrew language support + + -- Paulo Assis Wed, 19 Sep 2009 21:59:00 +0000 + +guvcview (1.1.3-ubuntu1) jaunty; urgency=low + + * Add rgb24 and bgr24 color formats + * Set pulse support disabled by default in configure + * Add extra messages to configure + * Fix button images display under gtk 2.17 + + -- Paulo Assis Thu, 20 Aug 2009 13:50:00 +0000 + +guvcview (1.1.2-ubuntu1) jaunty; urgency=low + + * Fixed YUYV Matroska codec segfault + * Added enable-debug option to configure (debug symbols (-g) is now disable by default) + * Added Dutch translation + + -- Paulo Assis Wed, 13 Aug 2009 12:59:00 +0000 + +guvcview (1.1.1-ubuntu1) jaunty; urgency=low + + * Fixed Ubuntu 9.10 exit segfault + * Added disable-pulse option to configure + * Added russian translation by Roustam Ghizdatov + * Added patches 2763, 2764 and 2765 by iwamatsu + * Fixed some video format conversions + * Fixed memory allocations when in control_only mode + + -- Paulo Assis Sun, 31 May 2009 10:16:00 +0000 + +guvcview (1.1.0-ubuntu1) jaunty; urgency=low + + * Added Matroska file format support (mkv) + * Fixed Ubuntu 9.10 audio capture + * Added initial pulseaudio support (testing only - needs pulse-devel for enabling) + * Added libavcodec-unstripped to recommend (enables mpeg2 and mpeg4 video codecs) + + -- Paulo Assis Sun, 10 May 2009 14:26:00 +0000 + +guvcview (1.0.5-ubuntu1) intrepid; urgency=low + + * Added libavcodec properties button + * Improved default options for libavcodec + * Improved support for libavcodec + + -- Paulo Assis Sat, 4 Apr 2009 14:00:00 +0000 + +guvcview (1.0.4-ubuntu1) intrepid; urgency=low + + * Added WMV1 encoding to avi capture + * fixed libavcodec configuration + * changed support for uyvy (now we convert it to yuyv and use only one render format) + * changed raw bayer conversion funtions + * added full bayer support ( all bayer pixel formats) + + -- Paulo Assis Sun, 29 Mar 2009 22:32:00 +0000 + +guvcview (1.0.2-ubuntu1) intrepid; urgency=low + + * Fixed segfault on gspca devices + + -- Paulo Assis Sun, 8 Mar 2009 09:58:00 +0000 + +guvcview (1.0.1-ubuntu3) intrepid; urgency=low + + * Fixed giant bug that prevented format detection + + -- Paulo Assis Mon, 4 Mar 2009 23:57:00 +0000 + +guvcview (1.0.0-ubuntu2) intrepid; urgency=low + + * Fixed vid:pid for UVC driver dynamic controls + * Fixed yu12 conversion bug (needs testing) + * added yv12 frame format (needs testing) + * added yvyu frame format (needs testing) + * Fixed null devices list bug (segfault) + * Added version option to console args (--version) + + -- Paulo Assis Mon, 2 Mar 2009 14:43:00 +0000 + +guvcview (0.9.9) intrepid; urgency=low + + * Fixed Format detection bug + * Added control only functionality (--control_only), allows image control in different apps (e.g ekiga, mplayer) + * Splitted V4l2 interface in smaller files + + -- Paulo Assis Thu, 19 Feb 2009 18:03:00 +0000 + +guvcview (0.9.8) intrepid; urgency=low + + * Added audio tab + * Added new icon theme + * Added audio effects + * Added Turkish, Danish and Czech catalogs + * Fixed Debian/armel corruption bug.(fix by Rask Ingemann Lambertsen) + * Fixed gdk display bug after avi capture auto split (when max length reached), make gdk thread safe. + * fixed empty device list segfault bug + + -- Paulo Assis Sat, 28 Jan 2009 09:43:00 +0000 + +guvcview (0.9.7) unstable; urgency=low + + * Added JPEG pixel format support. + * Added YYUV pixel format support. + * Change configuration parsing method, using GScanner (glib). + * Change console options parsing method, using GOption (glib). + * Change string handling, using glib functions. + * Change memory managment, using glib functions. + * Change from pthreads to gthreads (glib). + * Added multiple device support. + + -- Paulo Assis Tue, 31 Dec 2008 12:16:00 +0000 + +guvcview (0.9.6) stable; urgency=low + + * Fixed Get Focus value for logitech motor focus cameras. + * Added select with timeout so guvcview won't stall at VIDIOC_DQBUFF. + * Added support for GBRG pix format. + * Added initial support for drivers that don't enumerate frame sizes (gspca). + * Change console options parsing method, we now use getopt. + * Improved v4l2 error handling by providing more usefull error messages. + + -- Paulo Assis Sat, 6 Dec 2008 18:44:00 +0000 + +guvcview (0.9.5) stable; urgency=low + + * Fixed several warnings in valgrind. + * Fixed a couple of memory leaks. + * Fixed a device open/close bug after first format init failure, causing + second init with a valid format to fail. + + -- Paulo Assis Fri, 7 Nov 2008 23:19:00 +0000 + +guvcview (0.9.4) stable; urgency=low + + * Added support for isight camera - UYVY (Nobuhiro Iwamatsu). + * Added support for YU12 ( YUV 4:2:0 planar) pixel format. + * Changed audio capture from blocking API to callback API (should improve audio performance.) + * Improved software autofocus (Dr. Alexander K. Seewald) + * Added MP2 audio compression (twolame) + * Added AVI auto file naming + * Added AVI multi file captures (captures bigger than max file size) + + -- Paulo Assis Mon, 13 Oct 2008 18:48:00 +0000 + +guvcview (0.9.3) stable; urgency=low + + * Fixed buffer overflow in filename extension for autocapture. + * Fixed Doc installation path + * Added software autofocus control for quickcam cameras (beta) + * Changed avi audio method (audio chunks are now written directly to avi file) + * Added avi max file size limit to config file + * Close avi safely and stop capture when max file size reached + * Fixed compilationwith 2.6.26 kernels + + -- Paulo Assis Mon, 18 Aug 2008 23:25:00 +0000 + +guvcview (0.9.2) stable; urgency=low + + * Fixed German Translation by Andreas Volz . + * Fixed Jpg Save error on Cameras with incomplete JFIF headers + + -- Paulo Assis Mon, 21 Jul 2008 23:30:00 +0000 + +guvcview (0.9.1) stable; urgency=low + + * Added error message dialogs. + * Changed cleanup. + * Added translations for error messages. + * Fixed Pan/Tilt for Sphere/Orbit (should now work with latest libwebcam) + * Changed icon set + * Added guvcview icon to control window + * Improved Raw support (needs patch for uvc driver, http://forums.quickcamteam.net/showthread.php?tid=323) + + -- Paulo Assis Wed, 11 Jul 2008 12:04:00 +0000 + +guvcview (0.9.0) stable; urgency=low + + * GUI change: Add Tab Container. + * Add spin button to integer controls (allows fine tunning). + * Add gettext support (i18n). + * Add laguage catalogs (pt pt_PT pt_BR fr de). + * Add button icons. + * Changed build scripts, make will now build guvcview.desktop and make install will install all data files. + + -- Paulo Assis Mon, 18 May 2008 10:20:00 +0000 + +guvcview (0.8.2) stable; urgency=low + + * Fixed SegFault after soundthread exit in 64 bit systems (bug: #013688) + * Moved all SDL related stuff to video thread + * Add support for long name command line args + + -- Paulo Assis Fri, 02 May 2008 19:18:00 +0000 + +guvcview (0.8.1) stable; urgency=low + + * Fixed Debian Testing (lenny) image file name icrement bug. + + -- Paulo Assis Wed, 19 Apr 2008 22:25:18 +0000 + +guvcview (0.8.0) stable; urgency=low + + * Fixed Pan/Tilt and Focus Control + * Added Scrolled Pans to GUI + * Added image autonaming and auto capture. + + -- Paulo Assis Wed, 09 Jan 2008 19:07:18 +0000 + +guvcview (0.7.4) stable; urgency=low + + * Added File Auto name checkbox + * Added File increment label + + -- Paulo Assis Wed, 09 Jan 2008 19:07:18 +0000 + +guvcview (0.7.3) stable; urgency=low + + * Added file name increment for multiple captures + * Added timed capture mode + * Fixed Pan/Tilt controls + + -- Paulo Assis Wed, 09 Jan 2008 19:07:18 +0000 + +guvcview (0.7.1) stable; urgency=low + + * Fixed Backlight Compensation + * Added Dynamic Controls + * Added video loop sleep time to rc file + + -- Paulo Assis Wed, 09 Jan 2008 19:07:18 +0000 + +guvcview (0.7.0) stable; urgency=low + + * Fixed Cell padding (auto resize widgets) + * Fixed Mono filter + * Added quit button + * Added sound capture parameters to rc file + * Added device string to rc file + + -- Paulo Assis Wed, 09 Jan 2008 19:07:18 +0000 + +guvcview (0.6.2) stable; urgency=low + + * Replace '~' by home dir in Path entry + * added fps counter command line option '-p' + * added input mode combo box (jpg - yuv) + + -- Paulo Assis Wed, 09 Jan 2008 19:07:18 +0000 + +guvcview (0.6.1) stable; urgency=low + + * fixed memory allocation bug for jpeg encoder buffer + * added video filters to rc file + + -- Paulo Assis Wed, 09 Jan 2008 19:07:18 +0000 + +guvcview (0.6.0) unstable; urgency=low + + * Added image filters + * Added built-in jpeg encoder (allows jpeg and MJPG compression with + filters and in yuv mode) + * Changed Exposure settings to comboBox (compatibility with V4L2) + + -- Paulo Assis Wed, 09 Jan 2008 19:07:18 +0000 + +guvcview (0.5.4) unstable; urgency=low + + * Adds [-t seconds] and [-n filename.avi] command line options - timer used + with -n will capture filename.avi for specified number of seconds + * Stores avi and sound options to rc file. The options will be remembered in + the next session. + * Moved global variables to global structure. Allows bether cleanup. + * Increased audio input buffer - will avoid droping frames in the begining + of capture in slower machines. + * Improved sync system for video-audio. + * Cleanup of some non-used variables. + + -- Paulo Assis Wed, 09 Jan 2008 19:07:18 +0000 + +guvcview (0.5.2-1) unstable; urgency=low + + * fixes a restart bug when guvcview is started from system path + + -- Paulo Assis Wed, 09 Jan 2008 19:07:18 +0000 + +guvcview (0.5.1-0) unstable; urgency=low + + * disables sound and avi compression controls when in avi capture + * some bug fixing for sound capture. + + -- Paulo Assis Wed, 09 Jan 2008 19:07:18 +0000 + +guvcview (0.5.0-beta) unstable; urgency=low + + * Adds basic sound support to AVI capture + * AVI video set by default to MJPG + + -- Paulo Assis Wed, 09 Jan 2008 19:07:18 +0000 diff -Nru guvcview-1.7.3/debian/compat guvcview-2.0.1+ubuntu1~ppa1/debian/compat --- guvcview-1.7.3/debian/compat 2014-03-24 22:56:24.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/debian/compat 2014-10-05 10:53:41.000000000 +0000 @@ -1 +1 @@ -9 +7 diff -Nru guvcview-1.7.3/debian/control guvcview-2.0.1+ubuntu1~ppa1/debian/control --- guvcview-1.7.3/debian/control 2014-03-24 23:20:29.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/debian/control 2014-10-05 10:53:41.000000000 +0000 @@ -1,19 +1,144 @@ Source: guvcview Section: graphics Priority: extra -Maintainer: Nobuhiro Iwamatsu -Build-Depends: debhelper (>= 9), intltool, autotools-dev, libsdl1.2-dev, - libgtk-3-dev, portaudio19-dev, libpng-dev, libtwolame-dev, - libavcodec-dev, libv4l-dev, libudev-dev, libusb-1.0-0-dev -Standards-Version: 3.9.5 +Maintainer: Paulo Assis +Build-Depends: debhelper (>= 9), + dh-autoreconf, + dpkg-dev (>= 1.16.0), + pkg-config, + quilt, + intltool, + autotools-dev, + libsdl2-dev, + libgtk-3-dev, + portaudio19-dev, + libpng12-dev, + libavcodec-dev, + libavutil-dev, + libv4l-dev, + libudev-dev, + libusb-1.0-0-dev, + libpulse-dev, + libgsl0-dev +Standards-Version: 3.9.4 Homepage: http://guvcview.sourceforge.net/ -Vcs-Git: git://anonscm.debian.org/collab-maint/guvcview.git -Vcs-Browser: http://anonscm.debian.org/gitweb/?p=collab-maint/guvcview.git;a=summary -Package: guvcview -Architecture: linux-any +Package: libgviewv4l2core-1.0-1 +Architecture: any +Depends: ${shlibs:Depends}, ${misc:Depends} +Recommends: guvcview-i18n +Description: guvcview v4l2 core Library + This package provides the core v4l2 functionality for guvcview + . + Video capture tool for video4linux2 compliant cameras, with special emphasis on the linux uvc driver. + It provides Image (jpg, png, bmp) and Video (mjpeg, flv1, wmv1, mpg2, mpg4,...) capture with sound + in several formats( currently: avi and matroska). + I also supports a control only option (--control_only) that is compatible with any other v4l2 app. + +Package: libgviewv4l2core-dev +Section: libdevel +Architecture: any +Depends: ${misc:Depends}, libgviewv4l2core-1.0-1 (= ${binary:Version}) +Description: guvcview v4l2 core Library - Development files + This package provides the core v4l2 functionality for guvcview (development files) + . + Video capture tool for video4linux2 compliant cameras, with special emphasis on the linux uvc driver. + It provides Image (jpg, png, bmp) and Video (mjpeg, flv1, wmv1, mpg2, mpg4,...) capture with sound + in several formats( currently: avi and matroska). + I also supports a control only option (--control_only) that is compatible with any other v4l2 app. + +Package: libgviewrender-1.0-1 +Architecture: any +Depends: ${shlibs:Depends}, ${misc:Depends} +Recommends: guvcview-i18n +Description: guvcview render Library + This package provides the render functionality for guvcview + . + Video capture tool for video4linux2 compliant cameras, with special emphasis on the linux uvc driver. + It provides Image (jpg, png, bmp) and Video (mjpeg, flv1, wmv1, mpg2, mpg4,...) capture with sound + in several formats( currently: avi and matroska). + I also supports a control only option (--control_only) that is compatible with any other v4l2 app. + +Package: libgviewrender-dev +Section: libdevel +Architecture: any +Depends: ${misc:Depends}, libgviewrender-1.0-1 (= ${binary:Version}) +Description: guvcview render Library - Development files + This package provides the render functionality for guvcview (development files) + . + Video capture tool for video4linux2 compliant cameras, with special emphasis on the linux uvc driver. + It provides Image (jpg, png, bmp) and Video (mjpeg, flv1, wmv1, mpg2, mpg4,...) capture with sound + in several formats( currently: avi and matroska). + I also supports a control only option (--control_only) that is compatible with any other v4l2 app. + +Package: libgviewencoder-1.0-1 +Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends} -Recommends: uvcdynctrl -Description: GTK+ base UVC Viewer - guvcview is a simple GTK+ interface for capturing and viewing video from - devices supported by the Linux UVC driver. +Recommends: guvcview-i18n, libavcodec-extra-54, libavutil-extra-52 +Description: guvcview encoder Library + This package provides the encoder functionality for guvcview + . + Video capture tool for video4linux2 compliant cameras, with special emphasis on the linux uvc driver. + It provides Image (jpg, png, bmp) and Video (mjpeg, flv1, wmv1, mpg2, mpg4,...) capture with sound + in several formats( currently: avi and matroska). + I also supports a control only option (--control_only) that is compatible with any other v4l2 app. + +Package: libgviewencoder-dev +Section: libdevel +Architecture: any +Depends: ${misc:Depends}, libgviewencoder-1.0-1 (= ${binary:Version}) +Description: guvcview encoder Library - Development files + This package provides the encoder functionality for guvcview (development files) + . + Video capture tool for video4linux2 compliant cameras, with special emphasis on the linux uvc driver. + It provides Image (jpg, png, bmp) and Video (mjpeg, flv1, wmv1, mpg2, mpg4,...) capture with sound + in several formats( currently: avi and matroska). + I also supports a control only option (--control_only) that is compatible with any other v4l2 app. + +Package: libgviewaudio-1.0-1 +Architecture: any +Depends: ${shlibs:Depends}, ${misc:Depends} +Recommends: guvcview-i18n +Description: guvcview audio Library + This package provides the audio functionality for guvcview + . + Video capture tool for video4linux2 compliant cameras, with special emphasis on the linux uvc driver. + It provides Image (jpg, png, bmp) and Video (mjpeg, flv1, wmv1, mpg2, mpg4,...) capture with sound + in several formats( currently: avi and matroska). + I also supports a control only option (--control_only) that is compatible with any other v4l2 app. + +Package: libgviewaudio-dev +Section: libdevel +Architecture: any +Depends: ${misc:Depends}, libgviewaudio-1.0-1 (= ${binary:Version}) +Description: guvcview audio Library - Development files + This package provides the audio functionality for guvcview (development files) + . + Video capture tool for video4linux2 compliant cameras, with special emphasis on the linux uvc driver. + It provides Image (jpg, png, bmp) and Video (mjpeg, flv1, wmv1, mpg2, mpg4,...) capture with sound + in several formats( currently: avi and matroska). + I also supports a control only option (--control_only) that is compatible with any other v4l2 app. + +Package: guvcview +Architecture: any +Depends: ${shlibs:Depends}, ${misc:Depends}, + libgviewv4l2core-1.0-1 (= ${binary:Version}), + libgviewrender-1.0-1 (= ${binary:Version}), + libgviewencoder-1.0-1 (= ${binary:Version}), + libgviewaudio-1.0-1 (= ${binary:Version}) +Recommends: guvcview-i18n, libavcodec-extra-53, uvcdynctrl +Description: GTK UVC Viewer + Video capture tool for video4linux2 compliant cameras, with special emphasis on the linux uvc driver. + It provides Image (jpg, png, bmp) and Video (mjpeg, flv1, wmv1, mpg2, mpg4,...) capture with sound + in several formats( currently: avi and matroska). + I also supports a control only option (--control_only) that is compatible with any other v4l2 app. + +Package: guvcview-i18n +Architecture: all +Description: GTK UVC Viewer translations + This package provides the translation catalogs for guvcview and related libraries + . + Video capture tool for video4linux2 compliant cameras, with special emphasis on the linux uvc driver. + It provides Image (jpg, png, bmp) and Video (mjpeg, flv1, wmv1, mpg2, mpg4,...) capture with sound + in several formats( currently: avi and matroska). + I also supports a control only option (--control_only) that is compatible with any other v4l2 app. diff -Nru guvcview-1.7.3/debian/copyright guvcview-2.0.1+ubuntu1~ppa1/debian/copyright --- guvcview-1.7.3/debian/copyright 2014-03-24 22:56:24.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/debian/copyright 2014-10-05 10:53:41.000000000 +0000 @@ -1,69 +1,19 @@ -Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ -Upstream-Name: guvcview -Source: http://guvcview.sourceforge.net/ - -Files: src/matroska.c src/matroska.h -Copyright: Copyright (C) 2005 Mike Matsnev - Copyright (C) Paulo Assis -License: GPL-2+ - -Files: src/avilib.c src/avilib.h -Copyright: Copyright (C) 1999 Rainer Johanni - Copyright (C) Paulo Assis -License: GPL-2+ - -Files: src/video_filters.c src/video_filters.h -Copyright: Copyright (C) 2001-2006 FUKUCHI Kentaro - Copyright (C) Paulo Assis -License: GPL-2+ - -Files: * -Copyright: Copyright (C) Paulo Assis -License: GPL-3 - -Files: debian/* -Copyright: Copyright (C) 2008-2012 Nobuhiro Iwamatsu -License: GPL-2+ - -License: GPL-2+ - This program is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later - version. - . - This program is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied - warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR - PURPOSE. See the GNU General Public License for more - details. - . - You should have received a copy of the GNU General Public - License along with this package; if not, write to the Free - Software Foundation, Inc., 51 Franklin St, Fifth Floor, - Boston, MA 02110-1301 USA - . - On Debian systems, the full text of the GNU General Public - License version 2 can be found in the file - `/usr/share/common-licenses/GPL-2'. - -License: GPL-3 - This program is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public - License as published by the Free Software Foundation; either - version 3 of the License. - . - This program is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied - warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR - PURPOSE. See the GNU General Public License for more - details. - . - You should have received a copy of the GNU General Public - License along with this package; if not, write to the Free - Software Foundation, Inc., 51 Franklin St, Fifth Floor, - Boston, MA 02110-1301 USA - . - On Debian systems, the full text of the GNU General Public - License version 3 can be found in the file - `/usr/share/common-licenses/GPL-3'. +This package was debianized by Paulo Assis on +Wed, 30 Apr 2014 11:58:00 +0100. + +It was downloaded from http://guvcview.sourceforge.net/ + +Upstream Author: + + Paulo Assis + +Copyright: + + Copyright (C) 2008 Paulo Assis + +License: + + GPLv3 + +The Debian packaging is Copyright (C) 2014, Paulo Assis and +is licensed under the GPL, see `/usr/share/common-licenses/GPL'. diff -Nru guvcview-1.7.3/debian/docs guvcview-2.0.1+ubuntu1~ppa1/debian/docs --- guvcview-1.7.3/debian/docs 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/debian/docs 2014-10-05 10:53:41.000000000 +0000 @@ -0,0 +1 @@ +README.md diff -Nru guvcview-1.7.3/debian/guvcview.dirs guvcview-2.0.1+ubuntu1~ppa1/debian/guvcview.dirs --- guvcview-1.7.3/debian/guvcview.dirs 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/debian/guvcview.dirs 2014-10-05 10:53:41.000000000 +0000 @@ -0,0 +1,7 @@ +usr/bin +usr/share/applications +usr/share/appdata +usr/share/menu +usr/share/doc/guvcview +usr/share/man/man1 +usr/share/pixmaps/guvcview diff -Nru guvcview-1.7.3/debian/guvcview-i18n.dirs guvcview-2.0.1+ubuntu1~ppa1/debian/guvcview-i18n.dirs --- guvcview-1.7.3/debian/guvcview-i18n.dirs 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/debian/guvcview-i18n.dirs 2014-10-05 10:53:41.000000000 +0000 @@ -0,0 +1 @@ +usr/share/locale \ No newline at end of file diff -Nru guvcview-1.7.3/debian/guvcview-i18n.install guvcview-2.0.1+ubuntu1~ppa1/debian/guvcview-i18n.install --- guvcview-1.7.3/debian/guvcview-i18n.install 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/debian/guvcview-i18n.install 2014-10-05 10:53:41.000000000 +0000 @@ -0,0 +1 @@ +usr/share/locale \ No newline at end of file diff -Nru guvcview-1.7.3/debian/guvcview.install guvcview-2.0.1+ubuntu1~ppa1/debian/guvcview.install --- guvcview-1.7.3/debian/guvcview.install 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/debian/guvcview.install 2014-10-05 10:53:41.000000000 +0000 @@ -0,0 +1,9 @@ +usr/bin +usr/share/applications +usr/share/appdata +usr/share/menu +usr/share/doc/guvcview +usr/share/man/man1 +usr/share/pixmaps/guvcview + + diff -Nru guvcview-1.7.3/debian/guvcview.postinst guvcview-2.0.1+ubuntu1~ppa1/debian/guvcview.postinst --- guvcview-1.7.3/debian/guvcview.postinst 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/debian/guvcview.postinst 2014-10-05 10:53:41.000000000 +0000 @@ -0,0 +1,43 @@ +#!/bin/sh +# postinst script for guvcview +# +# see: dh_installdeb(1) + +set -e + +# summary of how this script can be called: +# * `configure' +# * `abort-upgrade' +# * `abort-remove' `in-favour' +# +# * `abort-remove' +# * `abort-deconfigure' `in-favour' +# `removing' +# +# for details, see http://www.debian.org/doc/debian-policy/ or +# the debian-policy package + + +case "$1" in + configure) + if test -x /usr/bin/update-menus; then update-menus; fi + if test -x /usr/bin/update-desktop-database; then update-desktop-database -q; fi + ;; + + abort-upgrade|abort-remove|abort-deconfigure) + ;; + + *) + echo "postinst called with unknown argument \`$1'" >&2 + exit 1 + ;; +esac + +# dh_installdeb will replace this with shell code automatically +# generated by other debhelper scripts. + +#DEBHELPER# + +exit 0 + + diff -Nru guvcview-1.7.3/debian/guvcview.postrm guvcview-2.0.1+ubuntu1~ppa1/debian/guvcview.postrm --- guvcview-1.7.3/debian/guvcview.postrm 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/debian/guvcview.postrm 2014-10-05 10:53:41.000000000 +0000 @@ -0,0 +1,41 @@ +#!/bin/sh +# postrm script for guvcview +# +# see: dh_installdeb(1) + +set -e + +# summary of how this script can be called: +# * `remove' +# * `purge' +# * `upgrade' +# * `failed-upgrade' +# * `abort-install' +# * `abort-install' +# * `abort-upgrade' +# * `disappear' +# +# for details, see http://www.debian.org/doc/debian-policy/ or +# the debian-policy package + + +case "$1" in + purge|remove|upgrade|failed-upgrade|abort-install|abort-upgrade|disappear) + if test -x /usr/bin/update-menus; then update-menus; fi + if test -x /usr/bin/update-desktop-database; then update-desktop-database -q; fi + ;; + + *) + echo "postrm called with unknown argument \`$1'" >&2 + exit 1 + ;; +esac + +# dh_installdeb will replace this with shell code automatically +# generated by other debhelper scripts. + +#DEBHELPER# + +exit 0 + + diff -Nru guvcview-1.7.3/debian/libgviewaudio-1.0-1.dirs guvcview-2.0.1+ubuntu1~ppa1/debian/libgviewaudio-1.0-1.dirs --- guvcview-1.7.3/debian/libgviewaudio-1.0-1.dirs 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/debian/libgviewaudio-1.0-1.dirs 2014-10-05 10:53:41.000000000 +0000 @@ -0,0 +1 @@ +usr/lib \ No newline at end of file diff -Nru guvcview-1.7.3/debian/libgviewaudio-1.0-1.install guvcview-2.0.1+ubuntu1~ppa1/debian/libgviewaudio-1.0-1.install --- guvcview-1.7.3/debian/libgviewaudio-1.0-1.install 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/debian/libgviewaudio-1.0-1.install 2014-10-05 10:53:41.000000000 +0000 @@ -0,0 +1 @@ +usr/lib/libgviewaudio-*.so.* \ No newline at end of file diff -Nru guvcview-1.7.3/debian/libgviewaudio-dev.dirs guvcview-2.0.1+ubuntu1~ppa1/debian/libgviewaudio-dev.dirs --- guvcview-1.7.3/debian/libgviewaudio-dev.dirs 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/debian/libgviewaudio-dev.dirs 2014-10-05 10:53:41.000000000 +0000 @@ -0,0 +1,3 @@ +usr/lib +usr/lib/pkgconfig +usr/include/guvcview-2/libgviewaudio \ No newline at end of file diff -Nru guvcview-1.7.3/debian/libgviewaudio-dev.install guvcview-2.0.1+ubuntu1~ppa1/debian/libgviewaudio-dev.install --- guvcview-1.7.3/debian/libgviewaudio-dev.install 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/debian/libgviewaudio-dev.install 2014-10-05 10:53:41.000000000 +0000 @@ -0,0 +1,4 @@ +usr/include/guvcview-2/libgviewaudio/*.h +usr/lib/libgviewaudio.a +usr/lib/libgviewaudio.so +usr/lib/pkgconfig/libgviewaudio.pc \ No newline at end of file diff -Nru guvcview-1.7.3/debian/libgviewencoder-1.0-1.dirs guvcview-2.0.1+ubuntu1~ppa1/debian/libgviewencoder-1.0-1.dirs --- guvcview-1.7.3/debian/libgviewencoder-1.0-1.dirs 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/debian/libgviewencoder-1.0-1.dirs 2014-10-05 10:53:41.000000000 +0000 @@ -0,0 +1 @@ +usr/lib \ No newline at end of file diff -Nru guvcview-1.7.3/debian/libgviewencoder-1.0-1.install guvcview-2.0.1+ubuntu1~ppa1/debian/libgviewencoder-1.0-1.install --- guvcview-1.7.3/debian/libgviewencoder-1.0-1.install 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/debian/libgviewencoder-1.0-1.install 2014-10-05 10:53:41.000000000 +0000 @@ -0,0 +1 @@ +usr/lib/libgviewencoder-*.so.* \ No newline at end of file diff -Nru guvcview-1.7.3/debian/libgviewencoder-dev.dirs guvcview-2.0.1+ubuntu1~ppa1/debian/libgviewencoder-dev.dirs --- guvcview-1.7.3/debian/libgviewencoder-dev.dirs 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/debian/libgviewencoder-dev.dirs 2014-10-05 10:53:41.000000000 +0000 @@ -0,0 +1,3 @@ +usr/lib +usr/lib/pkgconfig +usr/include/guvcview-2/libgviewencoder \ No newline at end of file diff -Nru guvcview-1.7.3/debian/libgviewencoder-dev.install guvcview-2.0.1+ubuntu1~ppa1/debian/libgviewencoder-dev.install --- guvcview-1.7.3/debian/libgviewencoder-dev.install 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/debian/libgviewencoder-dev.install 2014-10-05 10:53:41.000000000 +0000 @@ -0,0 +1,4 @@ +usr/include/guvcview-2/libgviewencoder/*.h +usr/lib/libgviewencoder.a +usr/lib/libgviewencoder.so +usr/lib/pkgconfig/libgviewencoder.pc \ No newline at end of file diff -Nru guvcview-1.7.3/debian/libgviewrender-1.0-1.dirs guvcview-2.0.1+ubuntu1~ppa1/debian/libgviewrender-1.0-1.dirs --- guvcview-1.7.3/debian/libgviewrender-1.0-1.dirs 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/debian/libgviewrender-1.0-1.dirs 2014-10-05 10:53:41.000000000 +0000 @@ -0,0 +1 @@ +usr/lib \ No newline at end of file diff -Nru guvcview-1.7.3/debian/libgviewrender-1.0-1.install guvcview-2.0.1+ubuntu1~ppa1/debian/libgviewrender-1.0-1.install --- guvcview-1.7.3/debian/libgviewrender-1.0-1.install 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/debian/libgviewrender-1.0-1.install 2014-10-05 10:53:41.000000000 +0000 @@ -0,0 +1 @@ +usr/lib/libgviewrender-*.so.* \ No newline at end of file diff -Nru guvcview-1.7.3/debian/libgviewrender-dev.dirs guvcview-2.0.1+ubuntu1~ppa1/debian/libgviewrender-dev.dirs --- guvcview-1.7.3/debian/libgviewrender-dev.dirs 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/debian/libgviewrender-dev.dirs 2014-10-05 10:53:41.000000000 +0000 @@ -0,0 +1,3 @@ +usr/lib +usr/lib/pkgconfig +usr/include/guvcview-2/libgviewrender \ No newline at end of file diff -Nru guvcview-1.7.3/debian/libgviewrender-dev.install guvcview-2.0.1+ubuntu1~ppa1/debian/libgviewrender-dev.install --- guvcview-1.7.3/debian/libgviewrender-dev.install 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/debian/libgviewrender-dev.install 2014-10-05 10:53:41.000000000 +0000 @@ -0,0 +1,4 @@ +usr/include/guvcview-2/libgviewrender/*.h +usr/lib/libgviewrender.a +usr/lib/libgviewrender.so +usr/lib/pkgconfig/libgviewrender.pc \ No newline at end of file diff -Nru guvcview-1.7.3/debian/libgviewv4l2core-1.0-1.dirs guvcview-2.0.1+ubuntu1~ppa1/debian/libgviewv4l2core-1.0-1.dirs --- guvcview-1.7.3/debian/libgviewv4l2core-1.0-1.dirs 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/debian/libgviewv4l2core-1.0-1.dirs 2014-10-05 10:53:41.000000000 +0000 @@ -0,0 +1 @@ +usr/lib \ No newline at end of file diff -Nru guvcview-1.7.3/debian/libgviewv4l2core-1.0-1.install guvcview-2.0.1+ubuntu1~ppa1/debian/libgviewv4l2core-1.0-1.install --- guvcview-1.7.3/debian/libgviewv4l2core-1.0-1.install 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/debian/libgviewv4l2core-1.0-1.install 2014-10-05 10:53:41.000000000 +0000 @@ -0,0 +1 @@ +usr/lib/libgviewv4l2core-*.so.* \ No newline at end of file diff -Nru guvcview-1.7.3/debian/libgviewv4l2core-dev.dirs guvcview-2.0.1+ubuntu1~ppa1/debian/libgviewv4l2core-dev.dirs --- guvcview-1.7.3/debian/libgviewv4l2core-dev.dirs 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/debian/libgviewv4l2core-dev.dirs 2014-10-05 10:53:41.000000000 +0000 @@ -0,0 +1,3 @@ +usr/lib +usr/lib/pkgconfig +usr/include/guvcview-2/libgviewv4l2core \ No newline at end of file diff -Nru guvcview-1.7.3/debian/libgviewv4l2core-dev.install guvcview-2.0.1+ubuntu1~ppa1/debian/libgviewv4l2core-dev.install --- guvcview-1.7.3/debian/libgviewv4l2core-dev.install 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/debian/libgviewv4l2core-dev.install 2014-10-05 10:53:41.000000000 +0000 @@ -0,0 +1,4 @@ +usr/include/guvcview-2/libgviewv4l2core/*.h +usr/lib/libgviewv4l2core.a +usr/lib/libgviewv4l2core.so +usr/lib/pkgconfig/libgviewv4l2core.pc \ No newline at end of file diff -Nru guvcview-1.7.3/debian/menu guvcview-2.0.1+ubuntu1~ppa1/debian/menu --- guvcview-1.7.3/debian/menu 2014-03-24 22:56:24.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/debian/menu 1970-01-01 00:00:00.000000000 +0000 @@ -1,6 +0,0 @@ -?package(guvcview):\ - needs="X11"\ - section="Applications/Video"\ - title="guvcview"\ - longtitle="GTK UVC Viewer - uvc video viewer and capturer"\ - command="/usr/bin/guvcview" diff -Nru guvcview-1.7.3/debian/patches/0001-fix-build-with-libav10.patch guvcview-2.0.1+ubuntu1~ppa1/debian/patches/0001-fix-build-with-libav10.patch --- guvcview-1.7.3/debian/patches/0001-fix-build-with-libav10.patch 2014-05-15 22:33:39.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/debian/patches/0001-fix-build-with-libav10.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,97 +0,0 @@ -From 9876b907fc4bab927ac2a4ddc87885d1ae74b5af Mon Sep 17 00:00:00 2001 -From: Nobuhiro Iwamatsu -Date: Tue, 25 Mar 2014 08:07:28 +0900 -Subject: [PATCH] fix build with libav10 - - Bug report: https://bugs.debian.org/739323 - -Signed-off-by: Nobuhiro Iwamatsu ---- - src/avilib.c | 2 +- - src/callbacks.c | 10 +++++----- - src/sound.c | 2 +- - 3 files changed, 7 insertions(+), 7 deletions(-) - -diff --git a/src/avilib.c b/src/avilib.c -index dd4f41e..304ad73 100755 ---- a/src/avilib.c -+++ b/src/avilib.c -@@ -962,7 +962,7 @@ int avi_close(avi_Context* AVI) - } - else - { -- if (stream->codec_id == CODEC_ID_MP2 || stream->codec_id == CODEC_ID_MP3) -+ if (stream->codec_id == AV_CODEC_ID_MP2 || stream->codec_id == AV_CODEC_ID_MP3) - nb_frames += stream->packet_count; - } - } -diff --git a/src/callbacks.c b/src/callbacks.c -index 44673e1..5fb0247 100755 ---- a/src/callbacks.c -+++ b/src/callbacks.c -@@ -331,8 +331,8 @@ file_chooser (GtkWidget * FileButt, struct ALL_DATA *all_data) - /** check for webm and change codecs acordingly */ - if(global->VidFormat == WEBM_FORMAT) - { -- int vcodec_ind = get_list_vcodec_index(CODEC_ID_VP8); -- int acodec_ind = get_list_acodec_index(CODEC_ID_VORBIS); -+ int vcodec_ind = get_list_vcodec_index(AV_CODEC_ID_VP8); -+ int acodec_ind = get_list_acodec_index(AV_CODEC_ID_VORBIS); - if(vcodec_ind >= 0 && acodec_ind >= 0) - { - if(global->AudCodec != acodec_ind) -@@ -1580,7 +1580,7 @@ AudCodec_menu_changed (GtkRadioMenuItem *acodec_item, struct ALL_DATA *all_data) - } - - if( global->VidFormat == WEBM_FORMAT && -- get_acodec_id(global->AudCodec) != CODEC_ID_VORBIS) -+ get_acodec_id(global->AudCodec) != AV_CODEC_ID_VORBIS) - { - //change VidFormat to Matroska - fprintf(stderr, "WARN: webm can only use VORBIS audio codec \n"); -@@ -1618,10 +1618,10 @@ VidCodec_menu_changed (GtkRadioMenuItem *vcodec_item, struct ALL_DATA *all_data) - } - - if( global->VidFormat == WEBM_FORMAT && -- global->VidCodec_ID != CODEC_ID_VP8) -+ global->VidCodec_ID != AV_CODEC_ID_VP8) - { - //change VidFormat to Matroska -- fprintf(stderr, "WARN: webm can only use VP8 video codec (0x%x != 0x%x)\n", global->VidCodec, CODEC_ID_VP8); -+ fprintf(stderr, "WARN: webm can only use VP8 video codec (0x%x != 0x%x)\n", global->VidCodec, AV_CODEC_ID_VP8); - fprintf(stderr, " using matroska muxer instead\n"); - global->VidFormat = MKV_FORMAT; - //FIXME: change file extension if needed -diff --git a/src/sound.c b/src/sound.c -index 8e3bd80..c983488 100755 ---- a/src/sound.c -+++ b/src/sound.c -@@ -364,7 +364,7 @@ set_sound (struct GLOBAL *global, struct paRecordData* pdata) - fps_num = global->fps_num; - fps_den = global->fps; - } -- if((get_vcodec_id(global->VidCodec) == CODEC_ID_H264) && (fps_den >= 5)) -+ if((get_vcodec_id(global->VidCodec) == AV_CODEC_ID_H264) && (fps_den >= 5)) - pdata->delay = (UINT64) 2*(fps_num * G_NSEC_PER_SEC / fps_den); /*2 frame delay in nanosec*/ - pdata->delay += global->Sound_delay; /*add predefined delay - def = 0*/ - ---- a/src/lavc_common.c -+++ b/src/lavc_common.c -@@ -667,7 +667,7 @@ - // H264 decoder - gboolean has_h264_decoder() - { -- if(avcodec_find_decoder(CODEC_ID_H264)) -+ if(avcodec_find_decoder(AV_CODEC_ID_H264)) - return TRUE; - else - return FALSE; -@@ -678,7 +678,7 @@ - { - struct h264_decoder_context* h264_ctx = g_new0(struct h264_decoder_context, 1); - -- h264_ctx->codec = avcodec_find_decoder(CODEC_ID_H264); -+ h264_ctx->codec = avcodec_find_decoder(AV_CODEC_ID_H264); - if(!h264_ctx->codec) - { - fprintf(stderr, "H264 decoder: codec not found (please install libavcodec-extra for H264 support)\n"); diff -Nru guvcview-1.7.3/debian/patches/series guvcview-2.0.1+ubuntu1~ppa1/debian/patches/series --- guvcview-1.7.3/debian/patches/series 2014-03-24 23:09:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/debian/patches/series 2014-10-05 10:53:41.000000000 +0000 @@ -1 +0,0 @@ -0001-fix-build-with-libav10.patch diff -Nru guvcview-1.7.3/debian/README.source guvcview-2.0.1+ubuntu1~ppa1/debian/README.source --- guvcview-1.7.3/debian/README.source 2014-03-24 22:56:24.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/debian/README.source 1970-01-01 00:00:00.000000000 +0000 @@ -1,10 +0,0 @@ -README.source - -The source package uses quilt to manage all modifications to the upstream -source. Changes are stored in the source package as diffs in debian/patches -and applied during the build. - -See /usr/share/doc/quilt/README.source for a detailed explanation. - - -- Nobuhiro Iwamatsu Fri, 25 Dec 2009 15:58:12 +0900 - diff -Nru guvcview-1.7.3/debian/rules guvcview-2.0.1+ubuntu1~ppa1/debian/rules --- guvcview-1.7.3/debian/rules 2014-03-24 22:56:24.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/debian/rules 2014-10-05 10:53:41.000000000 +0000 @@ -1,15 +1,9 @@ #!/usr/bin/make -f %: - dh $@ + dh --with quilt --with autoreconf $@ -override_dh_auto_configure: - dh_auto_configure -- \ - --disable-silent-rules \ - --prefix=/usr \ - --libdir=\$${prefix}/lib/$(DEB_HOST_MULTIARCH) +override_dh_autoreconf: + dh_autoreconf ./bootstrap.sh override_dh_install: - rm -rf debian/guvcview/usr/share/doc/guvcview/NEWS \ - debian/guvcview/usr/share/doc/guvcview/COPYING \ - debian/guvcview/usr/share/doc/guvcview/INSTALL \ - debian/guvcview/usr/share/doc/guvcview/ChangeLog + dh_install -X.la --fail-missing --sourcedir=debian/tmp diff -Nru guvcview-1.7.3/debian/source/format guvcview-2.0.1+ubuntu1~ppa1/debian/source/format --- guvcview-1.7.3/debian/source/format 2014-03-24 22:56:24.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/debian/source/format 2014-10-05 10:53:41.000000000 +0000 @@ -1 +1 @@ -3.0 (quilt) +3.0 (native) diff -Nru guvcview-1.7.3/guvcview/config.c guvcview-2.0.1+ubuntu1~ppa1/guvcview/config.c --- guvcview-1.7.3/guvcview/config.c 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/guvcview/config.c 2014-10-05 10:41:44.000000000 +0000 @@ -0,0 +1,463 @@ +/*******************************************************************************# +# guvcview http://guvcview.sourceforge.net # +# # +# Paulo Assis # +# # +# This program is free software; you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation; either version 2 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program; if not, write to the Free Software # +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # +# # +********************************************************************************/ + +#include +#include +#include +#include +#include +#include + +#include "gviewv4l2core.h" +#include "gview.h" +#include "core_io.h" +#include "gui.h" +#include "config.h" +#include "../config.h" + +#define MAXLINE 100 /*100 char lines max*/ + +extern int debug_level; + +static config_t my_config = +{ + .width = 640, + .height = 480, + .format = "MJPG", + .render = "sdl", + .gui = "gtk3", + .audio = "port", + .capture = "mmap", + .video_codec = "dx50", + .audio_codec = "mp2", + .profile_name = NULL, + .profile_path = NULL, + .video_name = NULL, + .video_path = NULL, + .photo_name = NULL, + .photo_path = NULL, + .video_sufix = 1, + .photo_sufix = 1, + .fps_num = 1, + .fps_denom = 25, + .audio_device = -1,/*guvcview will use API default in this case*/ + .video_fx = 0, /*no video fx*/ + .audio_fx = 0, /*no audio fx*/ +}; + +/* + * get the internal config data + * args: + * none + * + * asserts: + * none + * + * returns: pointer to internal config_t struct + */ +config_t *config_get() +{ + return &my_config; +} + +/* + * save options to config file + * args: + * filename - config file + * + * asserts: + * none + * + * returns: error code + */ +int config_save(const char *filename) +{ + FILE *fp; + + /*open file for write*/ + if((fp = fopen(filename,"w")) == NULL) + { + fprintf(stderr, "GUVCVIEW: couldn't open %s for write: %s\n", filename, strerror(errno)); + return -1; + } + + /* use c locale - make sure floats are writen with a "." and not a "," */ + setlocale(LC_NUMERIC, "C"); + + /*write config data*/ + fprintf(fp, "#Guvcview %s config file\n", VERSION); + fprintf(fp, "\n"); + fprintf(fp, "#video input width\n"); + fprintf(fp, "width=%i\n", my_config.width); + fprintf(fp, "#video input height\n"); + fprintf(fp, "height=%i\n", my_config.height); + fprintf(fp, "#video input format\n"); + fprintf(fp, "format=%s\n", my_config.format); + fprintf(fp, "#video input capture method\n"); + fprintf(fp, "capture=%s\n", my_config.capture); + fprintf(fp, "#audio api\n"); + fprintf(fp, "audio=%s\n", my_config.audio); + fprintf(fp, "#gui api\n"); + fprintf(fp, "gui=%s\n", my_config.gui); + fprintf(fp, "#render api\n"); + fprintf(fp, "render=%s\n", my_config.render); + fprintf(fp, "#video codec [raw mjpg mpeg flv1 wmv1 mpg2 mp43 dx50 h264 vp80 theo]\n"); + fprintf(fp, "video_codec=%s\n", my_config.video_codec); + fprintf(fp, "#audio codec [pcm mp2 mp3 aac ac3 vorb]\n"); + fprintf(fp, "audio_codec=%s\n", my_config.audio_codec); + fprintf(fp, "#profile name\n"); + fprintf(fp, "profile_name=%s\n", my_config.profile_name); + fprintf(fp, "#profile path\n"); + fprintf(fp, "profile_path=%s\n", my_config.profile_path); + fprintf(fp, "#video name\n"); + fprintf(fp, "video_name=%s\n", my_config.video_name); + fprintf(fp, "#video path\n"); + fprintf(fp, "video_path=%s\n", my_config.video_path); + fprintf(fp, "#video sufix flag\n"); + fprintf(fp, "video_sufix=%i\n", my_config.video_sufix); + fprintf(fp, "#photo name\n"); + fprintf(fp, "photo_name=%s\n", my_config.photo_name); + fprintf(fp, "#photo path\n"); + fprintf(fp, "photo_path=%s\n", my_config.photo_path); + fprintf(fp, "#photo sufix flag\n"); + fprintf(fp, "photo_sufix=%i\n", my_config.photo_sufix); + fprintf(fp, "#fps numerator (def. 1)\n"); + fprintf(fp, "fps_num=%i\n", my_config.fps_num); + fprintf(fp, "#fps denominator (def. 25)\n"); + fprintf(fp, "fps_denom=%i\n", my_config.fps_denom); + fprintf(fp, "#audio device index (-1 - api default)\n"); + fprintf(fp, "audio_device=%i\n", my_config.audio_device); + fprintf(fp, "#video fx mask \n"); + fprintf(fp, "video_fx=0x%x\n", my_config.video_fx); + fprintf(fp, "#audio fx mask \n"); + fprintf(fp, "audio_fx=0x%x\n", my_config.audio_fx); + + /* return to system locale */ + setlocale(LC_NUMERIC, ""); + + /* flush stream buffers to filesystem */ + fflush(fp); + + /* close file after fsync (sync file data to disk) */ + if (fsync(fileno(fp)) || fclose(fp)) + { + fprintf(stderr, "GUVCVIEW: error writing configuration data to file: %s\n", strerror(errno)); + return -1; + } + + if(debug_level > 1) + printf("GUVCVIEW: saving config to %s\n", filename); + + return 0; +} + +/* + * load options from config file + * args: + * filename - config file + * + * asserts: + * none + * + * returns: error code + */ +int config_load(const char *filename) +{ + FILE *fp; + char bufr[MAXLINE]; + int line = 0; + + /*open file for read*/ + if((fp = fopen(filename,"r")) == NULL) + { + fprintf(stderr, "GUVCVIEW: couldn't open %s for read: %s\n", filename, strerror(errno)); + return -1; + } + + while(fgets(bufr, MAXLINE, fp) != NULL) + { + line++; + char *bufp = bufr; + /*parse config line*/ + + /*trim leading and trailing spaces and newline*/ + trim_leading_wspaces(bufp); + trim_trailing_wspaces(bufp); + + /*skip empty or commented lines */ + int size = strlen(bufp); + if(size < 1 || *bufp == '#') + { + if(debug_level > 1) + printf("GUVCVIEW: (config) empty or commented line (%i)\n", line); + continue; + } + + char *token = NULL; + char *value = NULL; + + char *sp = strrchr(bufp, '='); + + if(sp) + { + int size = sp - bufp; + token = strndup(bufp, size); + trim_leading_wspaces(token); + trim_trailing_wspaces(token); + + value = strdup(sp + 1); + trim_leading_wspaces(value); + trim_trailing_wspaces(value); + } + + /*skip invalid lines */ + if(!token || !value || strlen(token) < 1 || strlen(value) < 1) + { + fprintf(stderr, "GUVCVIEW: (config) skiping invalid config entry at line %i\n", line); + if(token) + free(token); + if(value) + free(value); + continue; + } + + /*check tokens*/ + if(strcmp(token, "width") == 0) + my_config.width = (int) strtoul(value, NULL, 10); + else if(strcmp(token, "height") == 0) + my_config.height = (int) strtoul(value, NULL, 10); + else if(strcmp(token, "format") == 0) + strncpy(my_config.format, value, 4); + else if(strcmp(token, "capture") == 0) + strncpy(my_config.capture, value, 4); + else if(strcmp(token, "audio") == 0) + strncpy(my_config.audio, value, 5); + else if(strcmp(token, "gui") == 0) + strncpy(my_config.gui, value, 4); + else if(strcmp(token, "render") == 0) + strncpy(my_config.render, value, 4); + else if(strcmp(token, "video_codec") == 0) + strncpy(my_config.video_codec, value, 4); + else if(strcmp(token, "audio_codec") == 0) + strncpy(my_config.audio_codec, value, 4); + else if(strcmp(token, "profile_name") == 0 && strlen(value) > 2) + { + if(my_config.profile_name) + free(my_config.profile_name); + my_config.profile_name = strdup(value); + set_profile_name(value); + } + else if(strcmp(token, "profile_path") == 0) + { + if(my_config.profile_path) + free(my_config.profile_path); + my_config.profile_path = strdup(value); + set_profile_path(value); + } + else if(strcmp(token, "video_name") == 0 && strlen(value) > 2) + { + if(my_config.video_name) + free(my_config.video_name); + my_config.video_name = strdup(value); + } + else if(strcmp(token, "video_path") == 0) + { + if(my_config.video_path) + free(my_config.video_path); + my_config.video_path = strdup(value); + } + else if(strcmp(token, "photo_name") == 0 && strlen(value) > 2) + { + if(my_config.photo_name) + free(my_config.photo_name); + my_config.photo_name = strdup(value); + } + else if(strcmp(token, "photo_path") == 0) + { + if(my_config.photo_path) + free(my_config.photo_path); + my_config.photo_path = strdup(value); + } + else if(strcmp(token, "video_sufix") == 0) + { + my_config.video_sufix = (int) strtoul(value, NULL, 10); + set_video_sufix_flag(my_config.video_sufix); + } + else if(strcmp(token, "photo_sufix") == 0) + { + my_config.photo_sufix = (int) strtoul(value, NULL, 10); + set_photo_sufix_flag(my_config.photo_sufix); + } + else if(strcmp(token, "fps_num") == 0) + my_config.fps_num = (int) strtoul(value, NULL, 10); + else if(strcmp(token, "fps_denom") == 0) + my_config.fps_denom = (int) strtoul(value, NULL, 10); + else if(strcmp(token, "audio_device") == 0) + my_config.audio_device = (int) strtoul(value, NULL, 10); + else if(strcmp(token, "video_fx") == 0) + my_config.video_fx = (uint32_t) strtoul(value, NULL, 16); + else if(strcmp(token, "audio_fx") == 0) + my_config.audio_fx = (uint32_t) strtoul(value, NULL, 16); + else + fprintf(stderr, "GUVCVIEW: (config) skiping invalid entry at line %i ('%s', '%s')\n", line, token, value); + + + if(token) + free(token); + if(value) + free(value); + } + + //if(errno) + //{ + // fprintf(stderr, "GUVCVIEW: couldn't read line %i of config file: %s\n", line, strerror(errno)); + // fclose(fp); + // return -1; + //} + + fclose(fp); + return 0; +} + +/* + * update config data with options data + * args: + * my_options - pointer to options data + * + * asserts: + * none + * + * returns: none + */ +void config_update(options_t *my_options) +{ + /*check for resolution options*/ + if(my_options->width > 0) + my_config.width = my_options->width; + if(my_options->height > 0) + my_config.height = my_options->height; + + /*capture method*/ + if(strlen(my_options->capture) > 3) + strncpy(my_config.capture, my_options->capture, 4); + + /*render API*/ + if(strlen(my_options->render) > 2) + strncpy(my_config.render, my_options->render, 4); + + /*gui API*/ + if(strlen(my_options->gui) > 3) + strncpy(my_config.gui, my_options->gui, 4); + + /*audio API*/ + if(strlen(my_options->audio) > 3) + strncpy(my_config.audio, my_options->audio, 5); + + /*audio device*/ + if(my_options->audio_device >= 0) + my_config.audio_device = my_options->audio_device; + + /*input format*/ + if(strlen(my_options->format) > 2) + strncpy(my_config.format, my_options->format, 5); + + /*video codec*/ + if(strlen(my_options->video_codec) > 2) + strncpy(my_config.video_codec, my_options->video_codec, 4); + + /*audio codec*/ + if(strlen(my_options->audio_codec) > 2) + strncpy(my_config.audio_codec, my_options->audio_codec, 4); + + /*profile*/ + if(my_options->profile_name) + { + if(my_config.profile_name) + free(my_config.profile_name); + my_config.profile_name = strdup(my_options->profile_name); + } + if(my_options->profile_path) + { + if(my_config.profile_path) + free(my_config.profile_path); + my_config.profile_path = strdup(my_options->profile_path); + } + + /*video file*/ + if(my_options->video_name) + { + if(my_config.video_name) + free(my_config.video_name); + my_config.video_name = strdup(my_options->video_name); + } + if(my_options->video_path) + { + if(my_config.video_path) + free(my_config.video_path); + my_config.video_path = strdup(my_options->video_path); + } + + /*photo*/ + if(my_options->photo_name) + { + if(my_config.photo_name) + free(my_config.photo_name); + my_config.photo_name = strdup(my_options->photo_name); + } + if(my_options->photo_path) + { + if(my_config.photo_path) + free(my_config.photo_path); + my_config.photo_path = strdup(my_options->photo_path); + } + +} + +/* + * cleans internal config allocations + * args: + * none + * + * asserts: + * none + * + * returns: none + */ +void config_clean() +{ + if(my_config.profile_name != NULL) + free(my_config.profile_name); + + if(my_config.profile_path != NULL) + free(my_config.profile_path); + + if(my_config.video_name != NULL) + free(my_config.video_name); + + if(my_config.video_path != NULL) + free(my_config.video_path); + + if(my_config.photo_name != NULL) + free(my_config.photo_name); + + if(my_config.photo_path != NULL) + free(my_config.photo_path); +} diff -Nru guvcview-1.7.3/guvcview/config.h guvcview-2.0.1+ubuntu1~ppa1/guvcview/config.h --- guvcview-1.7.3/guvcview/config.h 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/guvcview/config.h 2014-10-05 10:41:44.000000000 +0000 @@ -0,0 +1,113 @@ +/*******************************************************************************# +# guvcview http://guvcview.sourceforge.net # +# # +# Paulo Assis # +# # +# This program is free software; you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation; either version 2 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program; if not, write to the Free Software # +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # +# # +********************************************************************************/ + +#ifndef CONFIG_H +#define CONFIG_H + +#include "options.h" + +typedef struct _config_t +{ + int width; /*width*/ + int height; /*height*/ + char format[5]; /*pixelformat fourcc*/ + char render[5]; /*render api*/ + char gui[5]; /*gui api*/ + char audio[6]; /*audio api - none; port; pulse*/ + char capture[5]; /*capture method: read or mmap*/ + char video_codec[5]; /*video codec*/ + char audio_codec[5]; /*video codec*/ + char *profile_path; + char *profile_name; + char *video_path; + char *video_name; + char *photo_path; + char *photo_name; + int video_sufix; /*flag if video file has auto suffix enable*/ + int photo_sufix; /*flag if photo file has auto suffix enable*/ + int fps_num; + int fps_denom; + int audio_device;/*audio device index*/ + uint32_t video_fx; + uint32_t audio_fx; +} config_t; + +/* + * get the internal config data + * args: + * none + * + * asserts: + * none + * + * returns: pointer to internal config_t struct + */ +config_t *config_get(); + +/* + * save options to config file + * args: + * filename - config file + * + * asserts: + * none + * + * returns: error code + */ +int config_save(const char *filename); + +/* + * load options from config file + * args: + * filename - config file + * + * asserts: + * none + * + * returns: error code + */ +int config_load(const char *filename); + +/* + * update config data with options data + * args: + * my_options - pointer to options data + * + * asserts: + * none + * + * returns: none + */ +void config_update(options_t *my_options); + +/* + * cleans internal config allocations + * args: + * none + * + * asserts: + * none + * + * returns: none + */ +void config_clean(); + +#endif diff -Nru guvcview-1.7.3/guvcview/core_io.c guvcview-2.0.1+ubuntu1~ppa1/guvcview/core_io.c --- guvcview-1.7.3/guvcview/core_io.c 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/guvcview/core_io.c 2014-10-05 10:41:44.000000000 +0000 @@ -0,0 +1,494 @@ +/*******************************************************************************# +# guvcview http://guvcview.sourceforge.net # +# # +# Paulo Assis # +# # +# This program is free software; you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation; either version 2 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program; if not, write to the Free Software # +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # +# # +********************************************************************************/ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "gviewv4l2core.h" +#include "../config.h" + +extern int debug_level; + +/* + * converts string to lowercase + * args: + * str - string pointer + * + * asserts: + * none + * + * returns: pointer to converted string + */ +char *lowercase(char *str) +{ + char *p = str; + for ( ; *p; ++p) *p = tolower(*p); + + return str; +} + +/* + * trim leading white spaces from source string + * args: + * src - source string + * + * asserts: + * none + * + * returns: error code + */ +int trim_leading_wspaces(char *src) +{ + if(src == NULL || strlen(src) < 1) + return -1; + + char *srcp = src; + + while(isspace(*srcp)) + srcp++; + + /*move string chars*/ + if(srcp != src) + { + char *tmp = strdup(srcp); + strcpy(src, tmp); + free(tmp); + } + + return 0; +} + +/* + * trim trailing white spaces and control chars (\n) from source string + * args: + * src - source string + * + * asserts: + * none + * + * returns: error code + */ +int trim_trailing_wspaces(char *src) +{ + if(src == NULL || strlen(src) < 1) + return -1; + + /*move to end of string*/ + char *srcp = src + strlen(src); + + while((isspace(*(srcp-1)) || iscntrl(*(srcp-1))) && (srcp - 1) > src) + srcp--; + + /*end string*/ + *srcp = '\0'; + + return 0; +} + +/* + * gets the number of chars to represent n + * args: + * n - uint64_t number to represent + * + * asserts: + * none + * + * returns: number of chars needed to represent n + */ +int get_uint64_num_chars (uint64_t n) +{ + int i = 0; + + while (n != 0) + { + n /= 10; + i++; + } + return i; +} + +/* + * smart concatenation + * args: + * dest - destination string + * c - connector char + * str1 - string to concat + * + * asserts: + * none + * + * returns: concatenated string (must free) + */ +char *smart_cat(const char *dest, const char c, const char *str1) +{ + int size_c = 0; + if(c != 0) + size_c = 1; + int size_dest = strlen(dest); + int size_str1 = strlen(str1); + + int size = size_dest + size_c + size_str1 + 1; /*add ending null char*/ + char *my_cat = calloc(size, sizeof(char)); + if(my_cat == NULL) + { + fprintf(stderr,"GUVCVIEW: FATAL memory allocation failure (smart_cat): %s\n", strerror(errno)); + exit(-1); + } + char *my_p = my_cat; + + if(size_dest) + memcpy(my_cat, dest, size_dest); + + if(size_c) + my_cat[size_dest] = c; + + if(size_str1) + { + my_p += size_dest + size_c; + memcpy(my_p, str1, size_str1); + } + /*add ending null char*/ + my_cat[size_dest + size_c + size_str1] = '\0'; + + if(debug_level > 1) + printf("GUVCVIEW: (smart_cat) dest=%s(%i) len_c=%c(%i) len_str1=%s(%i) => %s\n", + dest, size_dest, c, size_c, str1, size_str1, my_cat); + return my_cat; +} + +/* + * get the filename basename + * args: + * filename - string with filename (full path) + * + * asserts: + * none + * + * returns: new string with basename (must free it) + */ +char *get_file_basename(const char *filename) +{ + char *name = strrchr(filename, '/'); + + char *basename = NULL; + + if(name != NULL) + basename = strdup(name + 1); /*skip '/'*/ + else + basename = strdup(filename); + + if(debug_level > 1) + printf("GUVCVIEW: basename for %s is %s\n", filename, basename); + + return basename; +} + +/* + * get the filename path + * args: + * filename - string with filename (full path) + * + * asserts: + * none + * + * returns: new string with path (must free it) + * or NULL if no path found + */ +char *get_file_pathname(const char *filename) +{ + char *name = strrchr(filename, '/'); + + char *pathname = NULL; + + if(name) + { + int strsize = name - filename; + pathname = strndup(filename, strsize); + } + + if(debug_level > 1) + printf("GUVCVIEW: path for %s is %s\n", filename, pathname); + + return pathname; +} + +/* + * get the filename extension + * args: + * filename - string with filename (full path) + * + * asserts: + * none + * + * returns: new string with extension (must free it) + * or NULL if no extension found + */ +char *get_file_extension(const char *filename) +{ + char *basename = get_file_basename(filename); + + char *name = strrchr(basename, '.'); + + char *extname = NULL; + + if(name) + extname = strdup(name + 1); + + if(debug_level > 1) + printf("GUVCVIEW: extension for %s is %s\n", filename, extname); + + free(basename); + + return extname; +} + +/* + * change the filename extension + * args: + * filename - string with filename + * ext - string with new extension + * + * asserts: + * none + * + * returns: string with new extension (must free it) + */ +char *set_file_extension(const char *filename, const char *ext) +{ + char *name = strrchr(filename, '.'); + + char *noext_filename = NULL; + + int strsize = strlen(filename); + if(name) + strsize = name - filename; + + noext_filename = strndup(filename, strsize); + char *new_filename = smart_cat(noext_filename, '.', ext); + + free(noext_filename); + + if(debug_level > 1) + printf("GUVCVIEW: changed file extension to %s\n", new_filename); + return new_filename; +} + +/* + * Calculate the required buffer size (in bytes) for directory + * entries read from the given directory handle. Return -1 if this + * this cannot be done. + * + * This code does not trust values of NAME_MAX that are less than + * 255, since some systems (including at least HP-UX) incorrectly + * define it to be a smaller value. + * + * If you use autoconf, include fpathconf and dirfd in your + * AC_CHECK_FUNCS list. Otherwise use some other method to detect + * and use them where available. + * + * args: + * dirp - pointer to DIR struct + * + * asserts: + * none + * + * returns: buffer size for directory entries + */ + +size_t dirent_buf_size(DIR * dirp) +{ + long name_max; + size_t name_end; +# if defined(HAVE_FPATHCONF) && defined(HAVE_DIRFD) \ + && defined(_PC_NAME_MAX) + name_max = fpathconf(dirfd(dirp), _PC_NAME_MAX); + if (name_max == -1) +# if defined(NAME_MAX) + name_max = (NAME_MAX > 255) ? NAME_MAX : 255; +# else + return (size_t)(-1); +# endif +# else +# if defined(NAME_MAX) + name_max = (NAME_MAX > 255) ? NAME_MAX : 255; +# else +# error "buffer size for readdir_r cannot be determined" +# endif +# endif + name_end = (size_t)offsetof(struct dirent, d_name) + name_max + 1; + return (name_end > sizeof(struct dirent) + ? name_end : sizeof(struct dirent)); +} + +/* + * get the sufix for filename in path (e.g. for file-3.png sufix is 3) + * args: + * path - string with file path + * filename - string with file basename + * + * asserts: + * none + * + * returns: none + */ +unsigned long long get_file_suffix(const char *path, const char* filename) +{ + unsigned long long suffix = 0; + + DIR *dirp = opendir(path); + size_t size; + struct dirent *buf, *ent; + int error; + + if(dirp == NULL) + { + fprintf(stderr, "GUVCVIEW: Error Couldn't open %s directory\n", path); + return suffix; + } + size = dirent_buf_size(dirp); + if(size < 0) + { + perror("GUVCVIEW: dirent_buf_size"); + closedir(dirp); + return suffix; + } + buf = (struct dirent *)malloc(size); + if (buf == NULL) + { + fprintf(stderr,"GUVCVIEW: FATAL memory allocation failure (get_file_suffix): %s\n", strerror(errno)); + exit(-1); + } + + int noextsize = strlen(filename); + + char *name = strrchr(filename, '.'); + + if(name) + noextsize = name - filename; + + char *noextname = strndup(filename, noextsize); + char *extension = strdup(name + 1); + + + int fsize = strlen(filename) + 7; + char format_str[fsize]; + snprintf(format_str, fsize-1, "%s-%%20s.%s", noextname, extension); + + while ((error = readdir_r(dirp, buf, &ent)) == 0 && ent != NULL) + { + if(debug_level > 3) + printf("GUVCVIEW: (get_file_suffix) checking %s\n", ent->d_name); + if (strncmp(ent->d_name, noextname, noextsize) == 0) + { + if(debug_level > 3) + printf("GUVCVIEW: (get_file_suffix) prefix matched (%s)\n", noextname); + char *ext = strrchr(ent->d_name, '.'); + if(strcmp(ext + 1, extension) == 0) + { + char sfixstr[21]; + unsigned long long sfix = 0; + sscanf(ent->d_name, format_str, sfixstr); + + if(debug_level > 3) + printf("GUVCVIEW: (get_file_suffix) matched with suffix %s\n", sfixstr); + + sfix = strtoull(sfixstr, (char **)NULL, 10); + + if(sfix > suffix) + suffix = sfix; + } + } + } + if(error) + { + errno = error; + fprintf(stderr,"GUVCVIEW: error while reading dir: %s\n", strerror(errno)); + } + + closedir(dirp); + + free(noextname); + free(extension); + free(buf); + + if(debug_level > 1) + printf("GUVCVIEW: (get_file_suffix) %s has sufix %llu\n", filename, suffix); + return suffix; +} + +/* + * add a number suffix to filename (e.g. name.ext => name-suffix.ext) + * the suffix depends on the existing values in the path dir + * args: + * path - string with file path (to dir) + * filename - string with file basename (name.ext) + * suffix - suffix number + * + * asserts: + * none + * + * returns: newly allocated string with suffixed file name (must free) + */ +char *add_file_suffix(const char *path, const char *filename) +{ + unsigned long long suffix = get_file_suffix(path, filename); + /*increment existing suffix*/ + suffix++; + int size_suffix = get_uint64_num_chars(suffix); + int size_name = strlen(filename); + + int noextsize = strlen(filename); + + char *pname = strrchr(filename, '.'); + + if(pname) + noextsize = pname - filename; + + char *noextname = strndup(filename, noextsize); + char *extension = strdup(pname + 1); + + /*add '-' suffix and '\0' and an extra char just for safety*/ + char *new_name = calloc(size_name + size_suffix + 3, sizeof(char)); + if(new_name == NULL) + { + fprintf(stderr,"GUVCVIEW: FATAL memory allocation failure (add_file_suffix): %s\n", strerror(errno)); + exit(-1); + } + if(noextname && extension) + { + sprintf(new_name, "%s-%llu.%s", noextname, suffix, extension); + free(noextname); + free(extension); + } + else + sprintf(new_name, "%s-%llu", filename, suffix); + + return new_name; +} diff -Nru guvcview-1.7.3/guvcview/core_io.h guvcview-2.0.1+ubuntu1~ppa1/guvcview/core_io.h --- guvcview-1.7.3/guvcview/core_io.h 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/guvcview/core_io.h 2014-10-05 10:41:44.000000000 +0000 @@ -0,0 +1,167 @@ +/*******************************************************************************# +# guvcview http://guvcview.sourceforge.net # +# # +# Paulo Assis # +# # +# This program is free software; you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation; either version 2 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program; if not, write to the Free Software # +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # +# # +********************************************************************************/ + +#ifndef CORE_IO_H +#define CORE_IO_H + +#include +/* + * converts string to lowercase + * args: + * str - string pointer + * + * asserts: + * none + * + * returns: pointer to converted string + */ +char *lowercase(char *str); + +/* + * trim leading white spaces from source string + * args: + * src - source string + * + * asserts: + * none + * + * returns: error code + */ +int trim_leading_wspaces(char *src); + +/* + * trim trailing white spaces and control chars (\n) from source string + * args: + * src - source string + * + * asserts: + * none + * + * returns: error code + */ +int trim_trailing_wspaces(char *src); + +/* + * gets the number of chars to represent n + * args: + * n - uint64_t number to represent + * + * asserts: + * none + * + * returns: number of chars needed to represent n + */ +int get_uint64_num_chars (uint64_t n); + +/* + * smart concatenation + * args: + * dest - destination string + * c - connector char + * str1 - string to concat + * + * asserts: + * none + * + * returns: concatenated string (must free) + */ +char *smart_cat(const char *dest, char c, const char *str1); + +/* + * get the filename basename + * args: + * filename - string with filename (full path) + * + * asserts: + * none + * + * returns: new string with basename (must free it) + */ +char *get_file_basename(const char *filename); + +/* + * get the filename path + * args: + * filename - string with filename (full path) + * + * asserts: + * none + * + * returns: new string with path (must free it) + * or NULL if no path found + */ +char *get_file_pathname(const char *filename); + +/* + * get the filename extension + * args: + * filename - string with filename (full path) + * + * asserts: + * none + * + * returns: new string with extension (must free it) + * or NULL if no extension found + */ +char *get_file_extension(const char *filename); + +/* + * change the filename extension + * args: + * filename - string with filename + * ext - string with new extension + * + * asserts: + * none + * + * returns: string with new extension (must free it) + */ +char *set_file_extension(const char *filename, const char *ext); + +/* + * get the sufix for filename in path (e.g. for file-3.png sufix is 3) + * args: + * path - string with file path + * filename - string with file basename + * + * asserts: + * none + * + * returns: none + */ +unsigned long long get_file_suffix(const char *path, const char* filename); + +/* + * add a number suffix to filename (e.g. name.ext => name-suffix.ext) + * the suffix depends on the existing values in the path dir + * args: + * path - string with file path (to dir) + * filename - string with file basename (name.ext) + * suffix - suffix number + * + * asserts: + * none + * + * returns: newly allocated string with suffixed file name (must free) + */ +char *add_file_suffix(const char *path, const char *filename); + +#endif \ No newline at end of file diff -Nru guvcview-1.7.3/guvcview/gui.c guvcview-2.0.1+ubuntu1~ppa1/guvcview/gui.c --- guvcview-1.7.3/guvcview/gui.c 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/guvcview/gui.c 2014-10-05 10:41:44.000000000 +0000 @@ -0,0 +1,992 @@ +/*******************************************************************************# +# guvcview http://guvcview.sourceforge.net # +# # +# Paulo Assis # +# Nobuhiro Iwamatsu # +# Add UYVY color support(Macbook iSight) # +# Flemming Frandsen # +# Add VU meter OSD # +# # +# This program is free software; you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation; either version 2 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program; if not, write to the Free Software # +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # +# # +********************************************************************************/ + +#include +#include +#include +#include +#include +#include +#include +#include +/* support for internationalization - i18n */ +#include +#include + +#include "core_io.h" +#include "gui.h" +#include "gui_gtk3.h" +#include "config.h" +#include "video_capture.h" +#include "gviewencoder.h" + + +extern int debug_level; + +int is_control_panel = 0; + +static int gui_api = GUI_GTK3; + +/*default camera button action: DEF_ACTION_IMAGE - save image; DEF_ACTION_VIDEO - save video*/ +static int default_camera_button_action = 0; + +/*control profile file name*/ +static char *profile_name = NULL; + +/*control profile path to dir*/ +static char *profile_path = NULL; + +/*photo basename*/ +static char *photo_name = NULL; +/*photo path*/ +static char *photo_path = NULL; +/*photo sufix flag*/ +static int photo_sufix_flag = 1; +/*photo format*/ +static int photo_format = IMG_FMT_JPG; + +/*video basename*/ +static char *video_name = NULL; +/*video path*/ +static char *video_path = NULL; +/*video sufix flag*/ +static int video_sufix_flag = 1; +/*photo format*/ +static int video_muxer = ENCODER_MUX_MKV; + +static int my_video_codec_ind = 0; +static int my_audio_codec_ind = 0; + +/*index: 0 numerator; 1 denominator*/ +static int my_fps[2] = {0, 0}; + + +/* + * gets the current video codec index + * args: + * none + * + * asserts: + * none + * + * returns: current codec index + */ +int get_video_codec_ind() +{ + return my_video_codec_ind; +} + +/* + * sets the current video codec index + * args: + * index - codec index + * + * asserts: + * none + * + * returns: none + */ +void set_video_codec_ind(int index) +{ + my_video_codec_ind = index; + + /*update config*/ + config_t *my_config = config_get(); + if(index == 0) + strncpy(my_config->video_codec, "raw", 4); + else + { + const char *codec_4cc = encoder_get_video_codec_4cc(index); + if(codec_4cc) + { + strncpy(my_config->video_codec, codec_4cc, 4); + lowercase(my_config->video_codec); + } + } +} + +/* + * gets the current audio codec index + * args: + * none + * + * asserts: + * none + * + * returns: current codec index + */ +int get_audio_codec_ind() +{ + return my_audio_codec_ind; +} + +/* + * sets the current audio codec index + * args: + * index - codec index + * + * asserts: + * none + * + * returns: none + */ +void set_audio_codec_ind(int index) +{ + my_audio_codec_ind = index; + + /*update config*/ + config_t *my_config = config_get(); + + const char *codec_name = encoder_get_audio_codec_name(index); + if(codec_name) + { + strncpy(my_config->audio_codec, codec_name, 4); + lowercase(my_config->video_codec); + } +} + +/* + * gets the current fps numerator + * args: + * none + * + * asserts: + * none + * + * returns: current fps numerator + */ +//int gui_get_fps_num() +//{ +// return my_fps[0]; +//} + +/* + * gets the current fps denominator + * args: + * none + * + * asserts: + * none + * + * returns: current fps denominator + */ +//int gui_get_fps_denom() +//{ +// return my_fps[1]; +//} + +/* + * stores the fps + * args: + * fps - array with fps numerator and denominator + * + * asserts: + * none + * + * returns: none + */ +void gui_set_fps(int fps[2]) +{ + my_fps[0] = fps[0]; + my_fps[1] = fps[1]; + + /*update config*/ + config_t *my_config = config_get(); + + my_config->fps_num = my_fps[0]; + my_config->fps_denom = my_fps[1]; +} + +/* + * gets the default camera button action + * args: + * none + * + * asserts: + * none + * + * returns: default camera button action + */ +int get_default_camera_button_action() +{ + return default_camera_button_action; +} + +/* + * sets the default camera button action + * args: + * action: camera button default action + * + * asserts: + * none + * + * returns: none + */ +void set_default_camera_button_action(int action) +{ + default_camera_button_action = action; +} + +/* + * click image capture button + * args: + * none + * + * asserts: + * none + * + * returns: none + */ +void gui_click_image_capture_button() +{ + switch(gui_api) + { + case GUI_NONE: + video_capture_save_image(); + break; + + case GUI_GTK3: + default: + gui_click_image_capture_button_gtk3(); + break; + } +} + +/* + * click video capture button + * args: + * data - pointer to user data + * + * asserts: + * none + * + * returns: none + */ +void gui_click_video_capture_button(void *data) +{ + v4l2_dev_t *device = (v4l2_dev_t *) data; + + switch(gui_api) + { + case GUI_NONE: + if(!get_encoder_status()) + start_encoder_thread(device); + else + { + if(check_video_timer()) + reset_video_timer(); + stop_encoder_thread(); + } + break; + + case GUI_GTK3: + default: + gui_click_video_capture_button_gtk3(); + break; + } +} +/* + * sets the Image capture button label + * args: + * label: Image capture button label + * + * asserts: + * none + * + * returns: none + */ +void gui_set_image_capture_button_label(const char *label) +{ + switch(gui_api) + { + case GUI_NONE: + break; + + case GUI_GTK3: + default: + gui_set_image_capture_button_label_gtk3(label); + break; + } +} + +/* + * sets the Video capture button status (on|off) + * args: + * flag: video capture button status + * + * asserts: + * none + * + * returns: none + */ +void gui_set_video_capture_button_status(int flag) +{ + switch(gui_api) + { + case GUI_NONE: + break; + + case GUI_GTK3: + default: + gui_set_video_capture_button_status_gtk3(flag); + break; + } +} + +/* + * gets the control profile file name + * args: + * none + * + * asserts: + * none + * + * returns: control profile file name + */ +char *get_profile_name() +{ + if(!profile_name) + profile_name = strdup("default.gpfl"); + + return profile_name; +} + +/* + * sets the control profile file name + * args: + * name: control profile file name + * + * asserts: + * none + * + * returns: none + */ +void set_profile_name(const char *name) +{ + if(profile_name != NULL) + free(profile_name); + + profile_name = strdup(name); + + /* update the config */ + config_t *my_config = config_get(); + + /*this can be the function arg 'name'*/ + if(my_config->profile_name) + free(my_config->profile_name); + + /*so here we use the dup string*/ + my_config->profile_name = strdup(profile_name); +} + +/* + * gets the control profile path (to dir) + * args: + * none + * + * asserts: + * none + * + * returns: control profile file path + */ +char *get_profile_path() +{ + if(!profile_path) + profile_path = strdup(getenv("HOME")); + + return profile_path; +} + +/* + * sets the control profile path (to dir) + * args: + * path: control profile path + * + * asserts: + * none + * + * returns: none + */ +void set_profile_path(const char *path) +{ + if(profile_path != NULL) + free(profile_path); + + profile_path = strdup(path); + + /* update the config */ + config_t *my_config = config_get(); + + /*this can be the function arg 'path'*/ + if(my_config->profile_path) + free(my_config->profile_path); + + /*so here we use the dup string*/ + my_config->profile_path = strdup(profile_path); +} + +/* + * gets video sufix flag + * args: + * none + * + * asserts: + * none + * + * returns: video sufix flag + */ +int get_video_sufix_flag() +{ + return video_sufix_flag; +} + +/* + * sets the video sufix flag + * args: + * flag: video sufix flag + * + * asserts: + * none + * + * returns: none + */ +void set_video_sufix_flag(int flag) +{ + video_sufix_flag = flag; +} + +/* + * gets video muxer + * args: + * none + * + * asserts: + * none + * + * returns: video muxer + */ +int get_video_muxer() +{ + return video_muxer; +} + +/* + * sets video muxer + * args: + * muxer - video muxer (ENCODER_MUX_[MKV|WEBM|AVI]) + * + * asserts: + * none + * + * returns: none + */ +void set_video_muxer(int muxer) +{ + video_muxer = muxer; +} + +/* + * gets the video file basename + * args: + * none + * + * asserts: + * none + * + * returns: video file basename + */ +char *get_video_name() +{ + if(!video_name) + video_name = strdup("my_video.mkv"); + + return video_name; +} + +/* + * sets the video file basename + * args: + * name: video file basename + * + * asserts: + * none + * + * returns: none + */ +void set_video_name(const char *name) +{ + if(video_name != NULL) + free(video_name); + + video_name = strdup(name); + + /* update the config */ + config_t *my_config = config_get(); + + /*this can be the function arg 'name'*/ + if(my_config->video_name) + free(my_config->video_name); + + /*so here we use the dup string*/ + my_config->video_name = strdup(video_name); + + /*get image format*/ + char *ext = get_file_extension(name); + if(ext == NULL) + fprintf(stderr, "GUVCVIEW: no valid file extension for video file %s\n", + name); + else if( strcasecmp(ext, "mkv") == 0) + set_video_muxer(ENCODER_MUX_MKV); + else if ( strcasecmp(ext, "webm") == 0 ) + { + set_video_muxer(ENCODER_MUX_WEBM); + /*force webm codecs*/ + set_webm_codecs(); + } + else if ( strcasecmp(ext, "avi") == 0 ) + set_video_muxer(ENCODER_MUX_AVI); + + if(ext) + free(ext); +} + +/* + * gets the video file path (to dir) + * args: + * none + * + * asserts: + * none + * + * returns: video file path + */ +char *get_video_path() +{ + if(!video_path) + video_path = strdup(getenv("HOME")); + + return video_path; +} + +/* + * sets video path (to dir) + * args: + * path: video file path + * + * asserts: + * none + * + * returns: none + */ +void set_video_path(const char *path) +{ + if(video_path != NULL) + free(video_path); + + video_path = strdup(path); + + /* update the config */ + config_t *my_config = config_get(); + + /*this can be the function arg 'path'*/ + if(my_config->video_path) + free(my_config->video_path); + + /*so here we use the dup string*/ + my_config->video_path = strdup(video_path); +} + +/* + * gets photo sufix flag + * args: + * none + * + * asserts: + * none + * + * returns: photo sufix flag + */ +int get_photo_sufix_flag() +{ + return photo_sufix_flag; +} + +/* + * sets the photo sufix flag + * args: + * flag: photo sufix flag + * + * asserts: + * none + * + * returns: none + */ +void set_photo_sufix_flag(int flag) +{ + photo_sufix_flag = flag; +} + +/* + * gets photo format + * args: + * none + * + * asserts: + * none + * + * returns: photo format + */ +int get_photo_format() +{ + return photo_format; +} + +/* + * sets photo format + * args: + * format - photo format (IMG_FMT_[JPG|BMP|PNG|RAW]) + * + * asserts: + * none + * + * returns: none + */ +void set_photo_format(int format) +{ + photo_format = format; +} + +/* + * gets the photo file basename + * args: + * none + * + * asserts: + * none + * + * returns: photo file basename + */ +char *get_photo_name() +{ + if(!photo_name) + photo_name = strdup("my_photo.jpg"); + + return photo_name; +} + +/* + * sets the photo file basename and image format + * args: + * name: photo file basename + * + * asserts: + * none + * + * returns: none + */ +void set_photo_name(const char *name) +{ + if(photo_name != NULL) + free(photo_name); + + photo_name = strdup(name); + + /*update the config*/ + config_t *my_config = config_get(); + + /*this can be the function arg 'name'*/ + if(my_config->photo_name) + free(my_config->photo_name); + + /*so here we use the dup string*/ + my_config->photo_name = strdup(photo_name); + + /*get image format*/ + char *ext = get_file_extension(name); + if(ext == NULL) + fprintf(stderr, "GUVCVIEW: no valid file extension for image file %s\n", + name); + else if( strcasecmp(ext, "jpg") == 0 || + strcasecmp(ext, "jpeg") == 0 ) + set_photo_format(IMG_FMT_JPG); + else if ( strcasecmp(ext, "png") == 0 ) + set_photo_format(IMG_FMT_PNG); + else if ( strcasecmp(ext, "bmp") == 0 ) + set_photo_format(IMG_FMT_BMP); + else if ( strcasecmp(ext, "raw") == 0 ) + set_photo_format(IMG_FMT_RAW); + + if(ext) + free(ext); +} + +/* + * gets the photo file path (to dir) + * args: + * none + * + * asserts: + * none + * + * returns: photo file path + */ +char *get_photo_path() +{ + if(!photo_path) + photo_path = strdup(getenv("HOME")); + + return photo_path; +} + +/* + * sets photo path (to dir) + * args: + * path: photo file path + * + * asserts: + * none + * + * returns: none + */ +void set_photo_path(const char *path) +{ + if(photo_path != NULL) + free(photo_path); + + photo_path = strdup(path); + + /*update the config*/ + config_t *my_config = config_get(); + + /*this can be the function arg 'path'*/ + if(my_config->photo_path) + free(my_config->photo_path); + + /*so here we use the dup string*/ + my_config->photo_path = strdup(photo_path); +} + +/* + * set webm codecs in codecs list + * args: + * none + * + * asserts: + * none + * + * returns: none + */ +void set_webm_codecs() +{ + switch(gui_api) + { + case GUI_NONE: + break; + + case GUI_GTK3: + default: + set_webm_codecs_gtk3(); + break; + } +} + +/* + * GUI warning/error dialog + * args: + * device - pointer to device data + * title - dialog title string + * message - error message string + * fatal - flag a fatal error (display device list combo box) + * + * asserts: + * none + * + * returns: none + */ +void gui_error(v4l2_dev_t *device, + const char *title, + const char *message, + int fatal) +{ + switch(gui_api) + { + case GUI_NONE: + break; + + case GUI_GTK3: + default: + gui_error_gtk3(device, title, message, fatal); + break; + } +} + +/* + * adds a message to the status bar + * args: + * message - message string + * + * asserts: + * none + * + * returns: none + */ +void gui_status_message(const char *message) +{ + switch(gui_api) + { + case GUI_NONE: + break; + + case GUI_GTK3: + default: + gui_status_message_gtk3(message); + break; + } + + printf("GUVCVIEW: (status) %s\n", message); +} + +/* + * GUI initialization + * args: + * device - pointer to device data we want to attach the gui for + * gui - gui API to use (GUI_NONE, GUI_GTK3, ...) + * width - window width + * height - window height + * control_panel - flag control panel mode (1 -set; 0 -no) + * + * asserts: + * none + * + * returns: error code + */ +int gui_attach(v4l2_dev_t *device, int gui, int width, int height, int control_panel) +{ + int ret = 0; + + is_control_panel = control_panel; + gui_api = gui; + + switch(gui_api) + { + case GUI_NONE: + break; + + case GUI_GTK3: + default: + ret = gui_attach_gtk3(device, width, height); + if(ret) + gui_api = GUI_NONE; + break; + } + + return ret; +} + +/* + * run the GUI loop + * args: + * none + * + * asserts: + * none + * + * returns: error code + */ +int gui_run() +{ + + int ret = 0; + + switch(gui_api) + { + case GUI_NONE: + break; + + case GUI_GTK3: + default: + ret = gui_run_gtk3(); + break; + } + + return ret; +} + +/* + * closes and cleans the GUI + * args: + * none + * + * asserts: + * none + * + * returns: none + */ +void gui_close() +{ + if(debug_level > 1) + printf("GUVCVIEW: free profile name\n"); + if(profile_name != NULL) + free(profile_name); + profile_name = NULL; + if(debug_level > 1) + printf("GUVCVIEW: free profile path\n"); + if(profile_path != NULL) + free(profile_path); + profile_path = NULL; + if(debug_level > 1) + printf("GUVCVIEW: free video name\n"); + if(video_name != NULL) + free(video_name); + video_name = NULL; + if(debug_level > 1) + printf("GUVCVIEW: free video path\n"); + if(video_path != NULL) + free(video_path); + video_path = NULL; + if(debug_level > 1) + printf("GUVCVIEW: free photo name\n"); + if(photo_name != NULL) + free(photo_name); + photo_name = NULL; + if(debug_level > 1) + printf("GUVCVIEW: free photo path\n"); + if(photo_path != NULL) + free(photo_path); + photo_path = NULL; + + if(debug_level > 1) + printf("GUVCVIEW: close GUI API\n"); + switch(gui_api) + { + case GUI_NONE: + break; + + case GUI_GTK3: + default: + gui_close_gtk3(); + break; + } +} diff -Nru guvcview-1.7.3/guvcview/gui_gtk3_audioctrls.c guvcview-2.0.1+ubuntu1~ppa1/guvcview/gui_gtk3_audioctrls.c --- guvcview-1.7.3/guvcview/gui_gtk3_audioctrls.c 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/guvcview/gui_gtk3_audioctrls.c 2014-10-05 10:41:44.000000000 +0000 @@ -0,0 +1,324 @@ +/*******************************************************************************# +# guvcview http://guvcview.sourceforge.net # +# # +# Paulo Assis # +# Nobuhiro Iwamatsu # +# Add UYVY color support(Macbook iSight) # +# Flemming Frandsen # +# Add VU meter OSD # +# # +# This program is free software; you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation; either version 2 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program; if not, write to the Free Software # +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # +# # +********************************************************************************/ + +#include +#include +#include +#include +#include +#include +#include +#include +/* support for internationalization - i18n */ +#include +#include + +#include "../config.h" +#include "gui_gtk3.h" +#include "gui_gtk3_callbacks.h" +#include "gui.h" +#include "gviewaudio.h" +#include "video_capture.h" +/*add this last to avoid redefining _() and N_()*/ +#include "gview.h" + +extern int debug_level; + +static audio_widgets_t my_audio_widgets = +{ + .api = NULL, + .device = NULL, + .channels = NULL, + .samprate = NULL, +}; + + +/* + * attach audio controls tab widget + * args: + * parent - tab parent widget + * + * asserts: + * parent is not null + * + * returns: error code (0 -OK) + */ +int gui_attach_gtk3_audioctrls(GtkWidget *parent) +{ + /*assertions*/ + assert(parent != NULL); + + if(debug_level > 1) + printf("GUVCVIEW: attaching audio controls\n"); + + int line = 0; + + /*get the current audio context*/ + audio_context_t *audio_ctx = get_audio_context(); + + GtkWidget *audio_controls_grid = gtk_grid_new(); + gtk_widget_show (audio_controls_grid); + + gtk_grid_set_column_homogeneous (GTK_GRID(audio_controls_grid), FALSE); + gtk_widget_set_hexpand (audio_controls_grid, TRUE); + gtk_widget_set_halign (audio_controls_grid, GTK_ALIGN_FILL); + + gtk_grid_set_row_spacing (GTK_GRID(audio_controls_grid), 4); + gtk_grid_set_column_spacing (GTK_GRID (audio_controls_grid), 4); + gtk_container_set_border_width (GTK_CONTAINER (audio_controls_grid), 2); + + /*API*/ + line++; + + GtkWidget *label_SndAPI = gtk_label_new(_("Audio API:")); + gtk_misc_set_alignment (GTK_MISC (label_SndAPI), 1, 0.5); + + gtk_grid_attach (GTK_GRID(audio_controls_grid), label_SndAPI, 0, line, 1, 1); + gtk_widget_show (label_SndAPI); + + my_audio_widgets.api = gtk_combo_box_text_new (); + gtk_widget_set_halign (my_audio_widgets.api, GTK_ALIGN_FILL); + gtk_widget_set_hexpand (my_audio_widgets.api, TRUE); + gtk_grid_attach(GTK_GRID(audio_controls_grid), my_audio_widgets.api, 1, line, 1, 1); + + gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(my_audio_widgets.api),_("NO SOUND")); + gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(my_audio_widgets.api),_("PORTAUDIO")); + +#if HAS_PULSEAUDIO + gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(my_audio_widgets.api),_("PULSEAUDIO")); +#endif + gtk_widget_show (my_audio_widgets.api); + + int api = AUDIO_NONE; + if(audio_ctx != NULL) + api = audio_ctx->api; + + gtk_combo_box_set_active(GTK_COMBO_BOX(my_audio_widgets.api), api); + + gtk_widget_set_sensitive (my_audio_widgets.api, TRUE); + g_signal_connect (GTK_COMBO_BOX_TEXT(my_audio_widgets.api), "changed", + G_CALLBACK (audio_api_changed), &my_audio_widgets); + + /*devices*/ + line++; + + GtkWidget *label_SndDevice = gtk_label_new(_("Input Device:")); + gtk_misc_set_alignment (GTK_MISC (label_SndDevice), 1, 0.5); + + gtk_grid_attach (GTK_GRID(audio_controls_grid), label_SndDevice, 0, line, 1, 1); + gtk_widget_show (label_SndDevice); + + my_audio_widgets.device = gtk_combo_box_text_new (); + gtk_widget_set_halign (my_audio_widgets.device, GTK_ALIGN_FILL); + gtk_widget_set_hexpand (my_audio_widgets.device, TRUE); + gtk_grid_attach(GTK_GRID(audio_controls_grid), my_audio_widgets.device, 1, line, 1, 1); + gtk_widget_show (my_audio_widgets.device); + + if(audio_ctx != NULL) + { + int i = 0; + for(i = 0; i < audio_ctx->num_input_dev; ++i) + { + gtk_combo_box_text_append_text( + GTK_COMBO_BOX_TEXT(my_audio_widgets.device), + audio_ctx->list_devices[i].description); + } + + gtk_widget_set_sensitive (my_audio_widgets.device, TRUE); + gtk_combo_box_set_active(GTK_COMBO_BOX(my_audio_widgets.device), audio_ctx->device); + } + else + gtk_widget_set_sensitive (my_audio_widgets.device, FALSE); + + g_signal_connect (GTK_COMBO_BOX_TEXT(my_audio_widgets.device), "changed", + G_CALLBACK (audio_device_changed), &my_audio_widgets); + + + /*sample rate*/ + line++; + + GtkWidget *label_SndSampRate = gtk_label_new(_("Sample Rate:")); + gtk_misc_set_alignment (GTK_MISC (label_SndSampRate), 1, 0.5); + + gtk_grid_attach (GTK_GRID(audio_controls_grid), label_SndSampRate, 0, line, 1, 1); + gtk_widget_show (label_SndSampRate); + + my_audio_widgets.samprate = gtk_combo_box_text_new (); + gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(my_audio_widgets.samprate),_("Dev. Default")); + + /* add some standard sample rates: + * 96000, 88200, 64000, 48000, 44100, + * 32000, 24000, 22050, 16000, 12000, + * 11025, 8000, 7350 + */ + gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(my_audio_widgets.samprate), "7350"); + gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(my_audio_widgets.samprate), "8000"); + gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(my_audio_widgets.samprate), "11025"); + gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(my_audio_widgets.samprate), "12000"); + gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(my_audio_widgets.samprate), "16000"); + gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(my_audio_widgets.samprate), "22050"); + gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(my_audio_widgets.samprate), "24000"); + gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(my_audio_widgets.samprate), "32000"); + gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(my_audio_widgets.samprate), "44100"); + gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(my_audio_widgets.samprate), "48000"); + gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(my_audio_widgets.samprate), "64000"); + gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(my_audio_widgets.samprate), "88200"); + gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(my_audio_widgets.samprate), "96000"); + + gtk_widget_set_halign (my_audio_widgets.samprate, GTK_ALIGN_FILL); + gtk_widget_set_hexpand (my_audio_widgets.samprate, TRUE); + gtk_grid_attach(GTK_GRID(audio_controls_grid), my_audio_widgets.samprate, 1, line, 1, 1); + gtk_widget_show (my_audio_widgets.samprate); + + gtk_combo_box_set_active(GTK_COMBO_BOX(my_audio_widgets.samprate), 0); /*device default*/ + + if(audio_ctx != NULL) + gtk_widget_set_sensitive (my_audio_widgets.samprate, TRUE); + else + gtk_widget_set_sensitive (my_audio_widgets.samprate, FALSE); + + g_signal_connect (GTK_COMBO_BOX_TEXT(my_audio_widgets.samprate), "changed", + G_CALLBACK (audio_samplerate_changed), &my_audio_widgets); + + /*channels*/ + line++; + + GtkWidget *label_SndNumChan = gtk_label_new(_("Channels:")); + gtk_misc_set_alignment (GTK_MISC (label_SndNumChan), 1, 0.5); + + gtk_grid_attach (GTK_GRID(audio_controls_grid), label_SndNumChan, 0, line, 1, 1); + gtk_widget_show (label_SndNumChan); + + my_audio_widgets.channels = gtk_combo_box_text_new (); + gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(my_audio_widgets.channels),_("Dev. Default")); + gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(my_audio_widgets.channels),_("1 - mono")); + gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(my_audio_widgets.channels),_("2 - stereo")); + + gtk_widget_set_halign (my_audio_widgets.channels, GTK_ALIGN_FILL); + gtk_widget_set_hexpand (my_audio_widgets.channels, TRUE); + gtk_grid_attach(GTK_GRID(audio_controls_grid), my_audio_widgets.channels, 1, line, 1, 1); + gtk_widget_show (my_audio_widgets.channels); + + gtk_combo_box_set_active(GTK_COMBO_BOX(my_audio_widgets.channels), 0); /*device default*/ + + if(audio_ctx != NULL) + gtk_widget_set_sensitive (my_audio_widgets.channels, TRUE); + else + gtk_widget_set_sensitive (my_audio_widgets.channels, FALSE); + + g_signal_connect (GTK_COMBO_BOX_TEXT(my_audio_widgets.channels), "changed", + G_CALLBACK (audio_channels_changed), &my_audio_widgets); + + /* ----- Filter controls -----*/ + line++; + GtkWidget *label_audioFilters = gtk_label_new(_("---- Audio Filters ----")); + gtk_misc_set_alignment (GTK_MISC (label_audioFilters), 0.5, 0.5); + + gtk_grid_attach (GTK_GRID(audio_controls_grid), label_audioFilters, 0, line, 3, 1); + gtk_widget_show (label_audioFilters); + + /*filters grid*/ + line++; + GtkWidget *table_filt = gtk_grid_new(); + gtk_grid_set_row_spacing (GTK_GRID (table_filt), 4); + gtk_grid_set_column_spacing (GTK_GRID (table_filt), 4); + gtk_container_set_border_width (GTK_CONTAINER (table_filt), 4); + gtk_widget_set_size_request (table_filt, -1, -1); + + gtk_widget_set_halign (table_filt, GTK_ALIGN_FILL); + gtk_widget_set_hexpand (table_filt, TRUE); + gtk_grid_attach (GTK_GRID(audio_controls_grid), table_filt, 0, line, 3, 1); + gtk_widget_show (table_filt); + + /* Echo FX */ + GtkWidget *FiltEchoEnable = gtk_check_button_new_with_label (_(" Echo")); + g_object_set_data (G_OBJECT (FiltEchoEnable), "filt_info", GINT_TO_POINTER(AUDIO_FX_ECHO)); + gtk_widget_set_halign (FiltEchoEnable, GTK_ALIGN_FILL); + gtk_widget_set_hexpand (FiltEchoEnable, TRUE); + gtk_grid_attach(GTK_GRID(table_filt), FiltEchoEnable, 0, 0, 1, 1); + + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(FiltEchoEnable), + (get_audio_fx_mask() & AUDIO_FX_ECHO) > 0); + gtk_widget_show (FiltEchoEnable); + g_signal_connect (GTK_CHECK_BUTTON(FiltEchoEnable), "toggled", + G_CALLBACK (audio_fx_filter_changed), NULL); + + /* Reverb FX */ + GtkWidget *FiltReverbEnable = gtk_check_button_new_with_label (_(" Reverb")); + g_object_set_data (G_OBJECT (FiltReverbEnable), "filt_info", GINT_TO_POINTER(AUDIO_FX_REVERB)); + gtk_widget_set_halign (FiltReverbEnable, GTK_ALIGN_FILL); + gtk_widget_set_hexpand (FiltReverbEnable, TRUE); + gtk_grid_attach(GTK_GRID(table_filt), FiltReverbEnable, 1, 0, 1, 1); + + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(FiltReverbEnable), + (get_audio_fx_mask() & AUDIO_FX_REVERB) > 0); + gtk_widget_show (FiltReverbEnable); + g_signal_connect (GTK_CHECK_BUTTON(FiltReverbEnable), "toggled", + G_CALLBACK (audio_fx_filter_changed), NULL); + + /* Fuzz FX */ + GtkWidget *FiltFuzzEnable = gtk_check_button_new_with_label (_(" Fuzz")); + g_object_set_data (G_OBJECT (FiltFuzzEnable), "filt_info", GINT_TO_POINTER(AUDIO_FX_FUZZ)); + gtk_widget_set_halign (FiltFuzzEnable, GTK_ALIGN_FILL); + gtk_widget_set_hexpand (FiltFuzzEnable, TRUE); + gtk_grid_attach(GTK_GRID(table_filt), FiltFuzzEnable, 2, 0, 1, 1); + + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(FiltFuzzEnable), + (get_audio_fx_mask() & AUDIO_FX_FUZZ) > 0); + gtk_widget_show (FiltFuzzEnable); + g_signal_connect (GTK_CHECK_BUTTON(FiltFuzzEnable), "toggled", + G_CALLBACK (audio_fx_filter_changed), NULL); + + /* WahWah FX */ + GtkWidget *FiltWahEnable = gtk_check_button_new_with_label (_(" WahWah")); + g_object_set_data (G_OBJECT (FiltWahEnable), "filt_info", GINT_TO_POINTER(AUDIO_FX_WAHWAH)); + gtk_widget_set_halign (FiltWahEnable, GTK_ALIGN_FILL); + gtk_widget_set_hexpand (FiltWahEnable, TRUE); + gtk_grid_attach(GTK_GRID(table_filt), FiltWahEnable, 3, 0, 1, 1); + + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(FiltWahEnable), + (get_audio_fx_mask() & AUDIO_FX_WAHWAH) > 0); + gtk_widget_show (FiltWahEnable); + g_signal_connect (GTK_CHECK_BUTTON(FiltWahEnable), "toggled", + G_CALLBACK (audio_fx_filter_changed), NULL); + + /* Ducky FX */ + GtkWidget *FiltDuckyEnable = gtk_check_button_new_with_label (_(" Ducky")); + g_object_set_data (G_OBJECT (FiltDuckyEnable), "filt_info", GINT_TO_POINTER(AUDIO_FX_DUCKY)); + gtk_widget_set_halign (FiltDuckyEnable, GTK_ALIGN_FILL); + gtk_widget_set_hexpand (FiltDuckyEnable, TRUE); + gtk_grid_attach(GTK_GRID(table_filt), FiltDuckyEnable, 4, 0, 1, 1); + + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(FiltDuckyEnable), + (get_audio_fx_mask() & AUDIO_FX_DUCKY) > 0); + gtk_widget_show (FiltDuckyEnable); + g_signal_connect (GTK_CHECK_BUTTON(FiltDuckyEnable), "toggled", + G_CALLBACK (audio_fx_filter_changed), NULL); + + /*add control grid to parent container*/ + gtk_container_add(GTK_CONTAINER(parent), audio_controls_grid); + + return 0; +} diff -Nru guvcview-1.7.3/guvcview/gui_gtk3.c guvcview-2.0.1+ubuntu1~ppa1/guvcview/gui_gtk3.c --- guvcview-1.7.3/guvcview/gui_gtk3.c 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/guvcview/gui_gtk3.c 2014-10-05 10:41:44.000000000 +0000 @@ -0,0 +1,906 @@ +/*******************************************************************************# +# guvcview http://guvcview.sourceforge.net # +# # +# Paulo Assis # +# Nobuhiro Iwamatsu # +# Add UYVY color support(Macbook iSight) # +# Flemming Frandsen # +# Add VU meter OSD # +# # +# This program is free software; you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation; either version 2 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program; if not, write to the Free Software # +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # +# # +********************************************************************************/ + +#include +#include +#include +#include +#include +#include +#include +#include +/* support for internationalization - i18n */ +#include +#include + +#include "gui_gtk3.h" +#include "gui_gtk3_callbacks.h" +#include "gui.h" +/*add this last to avoid redefining _() and N_()*/ +#include "gview.h" +#include "video_capture.h" + +extern int debug_level; +extern int is_control_panel; + +/* The main window*/ +static GtkWidget *main_window = NULL; +/* The status bar*/ +static GtkWidget *status_bar = NULL; +static int status_warning_id = 0; +/*The photo capture button*/ +static GtkWidget *CapImageButt = NULL; +/*The video capture button*/ +static GtkWidget *CapVideoButt = NULL; +/*group list for menu video codecs*/ +GSList *video_codec_group = NULL; +/*group list for menu audio codecs*/ +GSList *audio_codec_group = NULL; +/*flag gtk3_main call*/ +static int gtk_main_called = 0; +/*flag gtk3_init called*/ +static int gtk_init_called = 0; +/*device list widget*/ +static GtkWidget *wgtDevices = NULL; +/*timer id for devce list events check*/ +static int gtk_devices_timer_id = 0; + + +/* + * sets the status message + * args: + * message - message string + * + * returns: FALSE + */ +static gboolean set_status_message(const char *message) +{ + if(status_bar) + { + gtk_statusbar_pop (GTK_STATUSBAR(status_bar), status_warning_id); + gtk_statusbar_push (GTK_STATUSBAR(status_bar), status_warning_id, message); + } + + /*execute only once*/ + return FALSE; +} + +/* + * adds a message to the status bar + * args: + * message - message string + * + * asserts: + * none + * + * returns: none + */ +void gui_status_message_gtk3(const char *message) +{ + /*this maybe called from a different thread, so protect it*/ + gdk_threads_add_idle ((GSourceFunc)set_status_message, (gpointer) message); +} + +/* + * get the main window widget + * args: + * none + * + * asserts: + * none + * + * returns: pointer to main window (GtkWidget) + */ +GtkWidget *get_main_window_gtk3() +{ + return main_window; +} + +/* + * get the device list widget + * args: + * none + * + * asserts: + * none + * + * returns: pointer to the device list widget (GtkWidget) + */ +GtkWidget *get_wgtDevices_gtk3() +{ + return wgtDevices; +} + +/* + * set the device list widget + * args: + * widget - pointer to the device list widget + * + * asserts: + * none + * + * returns: void + */ +void set_wgtDevices_gtk3(GtkWidget *widget) +{ + wgtDevices = widget; +} + +/* + * get the video codec group list + * args: + * none + * + * asserts: + * none + * + * returns: pointer to GSList of video codecs + */ +GSList *get_video_codec_group_list_gtk3() +{ + return video_codec_group; +} + +/* + * set the video codec group list + * args: + * list - pointer to GSList + * + * asserts: + * none + * + * returns: none + */ +void set_video_codec_group_list_gtk3(GSList *list) +{ + video_codec_group = list; +} + +/* + * set webm codecs in codecs list + * args: + * none + * + * asserts: + * none + * + * returns: none + */ +void set_webm_codecs_gtk3() +{ + /*force webm codecs*/ + int video_codec_ind = encoder_get_webm_video_codec_index(); + set_video_codec_ind(video_codec_ind); + int audio_codec_ind = encoder_get_webm_audio_codec_index(); + set_audio_codec_ind(audio_codec_ind); + + /*widgets*/ + GSList *vgroup = get_video_codec_group_list_gtk3(); + int index = g_slist_length (vgroup) - (get_video_codec_ind() + 1); + GtkWidget* video_codec_item = g_slist_nth_data (vgroup, index); + gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(video_codec_item), TRUE); + + GSList *agroup = get_audio_codec_group_list_gtk3(); + index = g_slist_length (agroup) - (get_audio_codec_ind() + 1); + GtkWidget* audio_codec_item = g_slist_nth_data (agroup, index); + gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(audio_codec_item), TRUE); +} + +/* + * get the audio codec group list + * args: + * none + * + * asserts: + * none + * + * returns: pointer to GSList of audio codecs + */ +GSList *get_audio_codec_group_list_gtk3() +{ + return audio_codec_group; +} + +/* + * set the audio codec group list + * args: + * list - pointer to GSList + * + * asserts: + * none + * + * returns: none + */ +void set_audio_codec_group_list_gtk3(GSList *list) +{ + audio_codec_group = list; +} + +/* + * sends a click event for image capture button + * args: + * pointer to function data + * + * asserts: + * none + * + * returns: FALSE + */ +static gboolean image_capture_toggle_button(gpointer *data) +{ + if(!CapImageButt) + return FALSE; + + gtk_button_clicked(GTK_BUTTON(CapImageButt)); + + return FALSE; +} + +/* + * click image capture button + * args: + * none + * + * asserts: + * none + * + * returns: none + */ +void gui_click_image_capture_button_gtk3() +{ + /*protect the call since it may come from a different thread*/ + gdk_threads_add_idle ((GSourceFunc) image_capture_toggle_button, NULL); +} + +/* + * sets the Image capture button label + * args: + * label: Image capture button label + * + * asserts: + * none + * + * returns: none + */ +void gui_set_image_capture_button_label_gtk3(const char *label) +{ + if(!CapImageButt) + return; + + gtk_button_set_label(GTK_BUTTON(CapImageButt), label); +} + +/* + * toggles video capture button status + * args: + * pointer to function data + * + * asserts: + * none + * + * returns: FALSE + */ +static gboolean video_capture_toggle_button(gpointer *data) +{ + if(!CapVideoButt) + return FALSE; + + int active = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(CapVideoButt)); + /*invert status*/ + if(active > 0) + active = -1; + else + active = 1; + + gui_set_video_capture_button_status_gtk3(active); + + return FALSE; +} + +/* + * click video capture button + * args: + * none + * + * asserts: + * none + * + * returns: none + */ +void gui_click_video_capture_button_gtk3() +{ + /*protect the call since it may come from a different thread*/ + gdk_threads_add_idle ((GSourceFunc) video_capture_toggle_button, NULL); +} + +/* + * sets the Video capture button status (on|off) + * args: + * flag: video capture button status + * + * asserts: + * none + * + * returns: none + */ +void gui_set_video_capture_button_status_gtk3(int flag) +{ + if(!CapVideoButt) + return; + + if(flag > 0) + { + gtk_button_set_label(GTK_BUTTON(CapVideoButt), _("Stop Video (V)")); + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(CapVideoButt), TRUE); + } + else + { + gtk_button_set_label(GTK_BUTTON(CapVideoButt), _("Cap. Video (V)")); + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(CapVideoButt), FALSE); + } +} + +/* + * GUI warning/error dialog + * args: + * device - pointer to device data + * title - dialog title string + * message - error message string + * fatal - flag a fatal error (display device list combo box) + * + * asserts: + * none + * + * returns: none + */ +void gui_error_gtk3(v4l2_dev_t *device, + const char *title, + const char *message, + int fatal) +{ + if(!gtk_init_called) + { + if(!gtk_init_check(NULL, NULL)) + { + fprintf(stderr, "GUVCVIEW: (GUI) Gtk3 can't open display\n"); + fprintf(stderr, "%s: %s \n", title, message); + return; + } + + gtk_init_called = 1; + } + /*simple warning message - not fatal and no device selection*/ + if(!fatal) + { + GtkWidget *warndialog; + warndialog = gtk_message_dialog_new (GTK_WINDOW(main_window), + GTK_DIALOG_DESTROY_WITH_PARENT, + GTK_MESSAGE_WARNING, + GTK_BUTTONS_CLOSE, + "%s",gettext(title)); + + gtk_message_dialog_format_secondary_text(GTK_MESSAGE_DIALOG(warndialog), + "%s",gettext(message)); + + gtk_widget_show(warndialog); + gtk_dialog_run (GTK_DIALOG (warndialog)); + gtk_widget_destroy (warndialog); + return; + } + + /*fatal error message*/ + + v4l2_device_list *device_list = v4l2core_get_device_list(); + /*add device list (more than one device)*/ + int show_dev_list = (device_list->num_devices > 1) ? 1: 0; + + GtkWidget *errdialog = NULL; + if(show_dev_list) + errdialog = gtk_dialog_new_with_buttons (_("Error"), + GTK_WINDOW(main_window), + GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT, + _("_Ok"), GTK_RESPONSE_ACCEPT, + _("_Cancel"), GTK_RESPONSE_REJECT, + NULL); + else + errdialog = gtk_dialog_new_with_buttons (_("Error"), + GTK_WINDOW(main_window), + GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT, + _("_Ok"), GTK_RESPONSE_ACCEPT, + NULL); + + GtkWidget *table = gtk_grid_new(); + + GtkWidget *title_lbl = gtk_label_new (gettext(title)); + gtk_widget_override_font(title_lbl, pango_font_description_from_string ("Sans bold 10")); + gtk_misc_set_alignment (GTK_MISC (title_lbl), 0, 0); + gtk_grid_attach (GTK_GRID (table), title_lbl, 0, 0, 2, 1); + gtk_widget_show (title_lbl); + + GtkWidget *text = gtk_label_new (gettext(message)); + gtk_widget_override_font(text, pango_font_description_from_string ("Sans italic 8")); + gtk_misc_set_alignment (GTK_MISC (text), 0, 0); + gtk_grid_attach (GTK_GRID (table), text, 0, 1, 2, 1); + gtk_widget_show (text); + + GtkWidget *wgtDevices = NULL; + + if(show_dev_list) + { + GtkWidget *text2 = gtk_label_new (_("\nYou have more than one video device installed.\n" + "Do you want to try another one ?\n")); + gtk_widget_override_font(text2, pango_font_description_from_string ("Sans 10")); + gtk_misc_set_alignment (GTK_MISC (text2), 0, 0); + gtk_grid_attach (GTK_GRID (table), text2, 0, 2, 2, 1); + gtk_widget_show (text2); + + GtkWidget *dev_lbl = gtk_label_new(_("Device:")); + gtk_misc_set_alignment (GTK_MISC (dev_lbl), 0.5, 0.5); + gtk_grid_attach (GTK_GRID(table), dev_lbl, 0, 3, 1, 1); + gtk_widget_show (dev_lbl); + + wgtDevices = gtk_combo_box_text_new (); + gtk_widget_set_halign (wgtDevices, GTK_ALIGN_FILL); + gtk_widget_set_hexpand (wgtDevices, TRUE); + + int i = 0; + for(i = 0; i < (device_list->num_devices); i++) + { + gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(wgtDevices), + device_list->list_devices[i].name); + } + /*select the last listed device by default*/ + gtk_combo_box_set_active(GTK_COMBO_BOX(wgtDevices), device_list->num_devices - 1); + + gtk_grid_attach(GTK_GRID(table), wgtDevices, 1, 3, 1, 1); + gtk_widget_show (wgtDevices); + } + + GtkWidget *content_area = gtk_dialog_get_content_area (GTK_DIALOG (errdialog)); + gtk_container_add (GTK_CONTAINER (content_area), table); + gtk_widget_show (table); + + int result = gtk_dialog_run (GTK_DIALOG (errdialog)); + + if(show_dev_list) + { + switch (result) + { + case GTK_RESPONSE_ACCEPT: + { + /*launch another guvcview instance for the selected device*/ + int index = gtk_combo_box_get_active(GTK_COMBO_BOX(wgtDevices)); + + char videodevice[30]; + strncpy(videodevice, device_list->list_devices[index].device, 29); + + gchar *command = g_strjoin("", + g_get_prgname(), + " --device=", + videodevice, + NULL); + + /*spawn new process*/ + GError *error = NULL; + if(!(g_spawn_command_line_async(command, &error))) + { + fprintf(stderr, "GUVCVIEW: spawn failed: %s\n", error->message); + g_error_free( error ); + } + g_free(command); + } + break; + + default: + /* do nothing since dialog was cancelled or closed */ + break; + + } + } + + gtk_widget_destroy (errdialog); + + quit_callback(NULL); /*terminate the program*/ +} + +/* + * GUI initialization + * args: + * device - pointer to device data we want to attach the gui for + * width - window width + * height - window height + * + * asserts: + * none + * + * returns: error code (0 -OK) + */ +int gui_attach_gtk3(v4l2_dev_t *device, int width, int height) +{ + if(!gtk_init_called) + { + if(!gtk_init_check(NULL, NULL)) + { + fprintf(stderr, "GUVCVIEW: (GUI) Gtk3 can't open display\n"); + return -1; + } + + gtk_init_called = 1; + } + + + /*check for device errors*/ + if(!device) + { + gui_error(device, "Guvcview error", "no video device found", 1); + return -1; + } + + g_set_application_name(_("Guvcview Video Capture")); + + /* make sure the type is realized so that we can change the properties*/ + //g_type_class_unref (g_type_class_ref (GTK_TYPE_BUTTON)); + /* make sure gtk-button-images property is set to true (defaults to false in karmic)*/ + //g_object_set (gtk_settings_get_default (), "gtk-button-images", TRUE, NULL); + + /* Create a main window */ + main_window = gtk_window_new(GTK_WINDOW_TOPLEVEL); + gtk_window_set_title (GTK_WINDOW (main_window), _("Guvcview")); + gtk_widget_show (main_window); + + /* get screen resolution */ + GdkScreen* screen = NULL; + screen = gtk_window_get_screen(GTK_WINDOW(main_window)); + int desktop_width = gdk_screen_get_width(screen); + int desktop_height = gdk_screen_get_height(screen); + + if(debug_level > 0) + printf("GUVCVIEW: (GUI) Screen resolution is (%d x %d)\n", desktop_width, desktop_height); + + if((width > desktop_width) && (desktop_width > 0)) + width = desktop_width; + if((height > desktop_height) && (desktop_height > 0)) + height = desktop_height; + + gtk_window_resize(GTK_WINDOW(main_window), width, height); + + /* Add delete event handler */ + g_signal_connect(GTK_WINDOW(main_window), "delete_event", G_CALLBACK(delete_event), NULL); + + /*window icon*/ + char* icon1path = g_strconcat (PACKAGE_DATA_DIR, "/pixmaps/guvcview/guvcview.png", NULL); + if (g_file_test(icon1path, G_FILE_TEST_EXISTS)) + gtk_window_set_icon_from_file(GTK_WINDOW (main_window), icon1path, NULL); + g_free(icon1path); + + /*---------------------------- Main table ---------------------------------*/ + GtkWidget *maintable = gtk_box_new(GTK_ORIENTATION_VERTICAL, 2); + gtk_widget_show (maintable); + + /*----------------------------- Top Menu ----------------------------------*/ + gui_attach_gtk3_menu(device, maintable); + + /*----------------------------- Buttons -----------------------------------*/ + GtkWidget *HButtonBox = gtk_button_box_new(GTK_ORIENTATION_HORIZONTAL); + gtk_widget_set_halign (HButtonBox, GTK_ALIGN_FILL); + gtk_widget_set_hexpand (HButtonBox, TRUE); + gtk_button_box_set_layout(GTK_BUTTON_BOX(HButtonBox),GTK_BUTTONBOX_SPREAD); + gtk_box_set_homogeneous(GTK_BOX(HButtonBox),TRUE); + gtk_widget_show(HButtonBox); + + /*photo button*/ + if(check_photo_timer()) + { + CapImageButt = gtk_button_new_with_mnemonic (_("Stop Cap. (I)")); + g_object_set_data (G_OBJECT (CapImageButt), "control_info", + GINT_TO_POINTER(1)); + } + else + { + CapImageButt = gtk_button_new_with_mnemonic (_("Cap. Image (I)")); + g_object_set_data (G_OBJECT (CapImageButt), "control_info", + GINT_TO_POINTER(0)); + } + + char *pix2path = g_strconcat (PACKAGE_DATA_DIR, "/pixmaps/guvcview/camera.png",NULL); + if (g_file_test(pix2path, G_FILE_TEST_EXISTS)) + { + GtkWidget *ImgButton_Img = gtk_image_new_from_file (pix2path); + + gtk_button_set_always_show_image(GTK_BUTTON(CapImageButt), TRUE); + gtk_button_set_image(GTK_BUTTON(CapImageButt), ImgButton_Img); + gtk_button_set_image_position(GTK_BUTTON(CapImageButt), GTK_POS_TOP); + } + g_free(pix2path); + + gtk_box_pack_start(GTK_BOX(HButtonBox), CapImageButt, TRUE, TRUE, 2); + gtk_widget_show (CapImageButt); + + g_signal_connect (GTK_BUTTON(CapImageButt), "clicked", + G_CALLBACK (capture_image_clicked), device); + + /*video button*/ + CapVideoButt = gtk_toggle_button_new_with_mnemonic (_("Cap. Video (V)")); + gui_set_video_capture_button_status_gtk3(get_encoder_status()); + + char *pix3path = g_strconcat (PACKAGE_DATA_DIR, "/pixmaps/guvcview/movie.png",NULL); + if (g_file_test(pix3path, G_FILE_TEST_EXISTS)) + { + GtkWidget *VideoButton_Img = gtk_image_new_from_file (pix3path); + + gtk_button_set_always_show_image(GTK_BUTTON(CapVideoButt), TRUE); + gtk_button_set_image(GTK_BUTTON(CapVideoButt), VideoButton_Img); + gtk_button_set_image_position(GTK_BUTTON(CapVideoButt), GTK_POS_TOP); + } + g_free(pix3path); + + gtk_box_pack_start(GTK_BOX(HButtonBox), CapVideoButt, TRUE, TRUE, 2); + gtk_widget_show (CapVideoButt); + + g_signal_connect (GTK_BUTTON(CapVideoButt), "clicked", + G_CALLBACK (capture_video_clicked), device); + + /*quit button*/ + //GtkWidget *quitButton = gtk_button_new_from_stock(GTK_STOCK_QUIT); + GtkWidget *quitButton = gtk_button_new_with_mnemonic (_("_Quit")); + + char* pix4path = g_strconcat (PACKAGE_DATA_DIR, "/pixmaps/guvcview/close.png", NULL); + if (g_file_test(pix4path,G_FILE_TEST_EXISTS)) + { + GtkWidget *QButton_Img = gtk_image_new_from_file (pix4path); + + gtk_button_set_always_show_image(GTK_BUTTON(quitButton), TRUE); + gtk_button_set_image(GTK_BUTTON(quitButton), QButton_Img); + gtk_button_set_image_position(GTK_BUTTON(quitButton), GTK_POS_TOP); + + } + /*must free path strings*/ + g_free(pix4path); + gtk_box_pack_start(GTK_BOX(HButtonBox), quitButton, TRUE, TRUE, 2); + gtk_widget_show_all (quitButton); + + g_signal_connect (GTK_BUTTON(quitButton), "clicked", + G_CALLBACK (quit_button_clicked), device); + + gtk_box_pack_start(GTK_BOX(maintable), HButtonBox, FALSE, TRUE, 2); + + /*--------------------------- Tab container -------------------------------*/ + GtkWidget *tab_box = gtk_notebook_new(); + gtk_widget_show (tab_box); + + /*------------------------ Image controls Tab -----------------------------*/ + + GtkWidget *scroll_1 = gtk_scrolled_window_new(NULL,NULL); + gtk_scrolled_window_set_placement(GTK_SCROLLED_WINDOW(scroll_1), GTK_CORNER_TOP_LEFT); + gtk_widget_show(scroll_1); + + /* + * viewport is only needed for gtk < 3.8 + * for 3.8 and above controls tab can be directly added to scroll1 + */ + GtkWidget* viewport = gtk_viewport_new(NULL,NULL); + gtk_widget_show(viewport); + + gtk_container_add(GTK_CONTAINER(scroll_1), viewport); + + gui_attach_gtk3_v4l2ctrls(device, viewport); + + GtkWidget *tab_1 = gtk_grid_new(); + gtk_widget_show (tab_1); + + GtkWidget *tab_1_label = gtk_label_new(_("Image Controls")); + gtk_widget_show (tab_1_label); + /** check for files */ + gchar *tab_1_icon_path = g_strconcat (PACKAGE_DATA_DIR,"/pixmaps/guvcview/image_controls.png",NULL); + /** don't test for file - use default empty image if load fails */ + /** get icon image*/ + GtkWidget *tab_1_icon = gtk_image_new_from_file(tab_1_icon_path); + gtk_widget_show (tab_1_icon); + + g_free(tab_1_icon_path); + gtk_grid_attach (GTK_GRID(tab_1), tab_1_icon, 0, 0, 1, 1); + gtk_grid_attach (GTK_GRID(tab_1), tab_1_label, 1, 0, 1, 1); + + gtk_notebook_append_page(GTK_NOTEBOOK(tab_box), scroll_1, tab_1); + + /*----------------------------H264 Controls Tab --------------------------*/ + if(device->h264_unit_id > 0) + { + GtkWidget *scroll_2 = gtk_scrolled_window_new(NULL,NULL); + gtk_scrolled_window_set_placement(GTK_SCROLLED_WINDOW(scroll_2), GTK_CORNER_TOP_LEFT); + gtk_widget_show(scroll_2); + + /* + * viewport is only needed for gtk < 3.8 + * for 3.8 and above controls tab can be directly added to scroll1 + */ + GtkWidget* viewport2 = gtk_viewport_new(NULL,NULL); + gtk_widget_show(viewport2); + + gtk_container_add(GTK_CONTAINER(scroll_2), viewport2); + + gui_attach_gtk3_h264ctrls(device, viewport2); + + GtkWidget *tab_2 = gtk_grid_new(); + gtk_widget_show (tab_2); + + GtkWidget *tab_2_label = gtk_label_new(_("H264 Controls")); + gtk_widget_show (tab_2_label); + /** check for files */ + gchar *tab_2_icon_path = g_strconcat (PACKAGE_DATA_DIR,"/pixmaps/guvcview/image_controls.png",NULL); + /** don't test for file - use default empty image if load fails */ + /** get icon image*/ + GtkWidget *tab_2_icon = gtk_image_new_from_file(tab_2_icon_path); + gtk_widget_show (tab_2_icon); + + g_free(tab_2_icon_path); + gtk_grid_attach (GTK_GRID(tab_2), tab_2_icon, 0, 0, 1, 1); + gtk_grid_attach (GTK_GRID(tab_2), tab_2_label, 1, 0, 1, 1); + + gtk_notebook_append_page(GTK_NOTEBOOK(tab_box), scroll_2, tab_2); + } + + /*exclude video and audio tabs if we are in control panel mode*/ + if(!is_control_panel) + { + /*----------------------- Video controls Tab ------------------------------*/ + + GtkWidget *scroll_3 = gtk_scrolled_window_new(NULL,NULL); + gtk_scrolled_window_set_placement(GTK_SCROLLED_WINDOW(scroll_3), GTK_CORNER_TOP_LEFT); + gtk_widget_show(scroll_3); + + /* + * viewport is only needed for gtk < 3.8 + * for 3.8 and above controls tab can be directly added to scroll1 + */ + GtkWidget* viewport3 = gtk_viewport_new(NULL,NULL); + gtk_widget_show(viewport3); + + gtk_container_add(GTK_CONTAINER(scroll_3), viewport3); + + gui_attach_gtk3_videoctrls(device, viewport3); + + GtkWidget *tab_3 = gtk_grid_new(); + gtk_widget_show (tab_3); + + GtkWidget *tab_3_label = gtk_label_new(_("Video Controls")); + gtk_widget_show (tab_3_label); + /** check for files */ + gchar *tab_3_icon_path = g_strconcat (PACKAGE_DATA_DIR,"/pixmaps/guvcview/video_controls.png",NULL); + /** don't test for file - use default empty image if load fails */ + /** get icon image*/ + GtkWidget *tab_3_icon = gtk_image_new_from_file(tab_3_icon_path); + gtk_widget_show (tab_3_icon); + + g_free(tab_3_icon_path); + gtk_grid_attach (GTK_GRID(tab_3), tab_3_icon, 0, 0, 1, 1); + gtk_grid_attach (GTK_GRID(tab_3), tab_3_label, 1, 0, 1, 1); + + gtk_notebook_append_page(GTK_NOTEBOOK(tab_box), scroll_3, tab_3); + + /*----------------------- Audio controls Tab ------------------------------*/ + + GtkWidget *scroll_4 = gtk_scrolled_window_new(NULL,NULL); + gtk_scrolled_window_set_placement(GTK_SCROLLED_WINDOW(scroll_4), GTK_CORNER_TOP_LEFT); + gtk_widget_show(scroll_4); + + /* + * viewport is only needed for gtk < 3.8 + * for 3.8 and above controls tab can be directly added to scroll1 + */ + GtkWidget* viewport4 = gtk_viewport_new(NULL,NULL); + gtk_widget_show(viewport4); + + gtk_container_add(GTK_CONTAINER(scroll_4), viewport4); + + gui_attach_gtk3_audioctrls(viewport4); + + GtkWidget *tab_4 = gtk_grid_new(); + gtk_widget_show (tab_4); + + GtkWidget *tab_4_label = gtk_label_new(_("Audio Controls")); + gtk_widget_show (tab_4_label); + /** check for files */ + gchar *tab_4_icon_path = g_strconcat (PACKAGE_DATA_DIR,"/pixmaps/guvcview/audio_controls.png",NULL); + /** don't test for file - use default empty image if load fails */ + /** get icon image*/ + GtkWidget *tab_4_icon = gtk_image_new_from_file(tab_4_icon_path); + gtk_widget_show (tab_4_icon); + + g_free(tab_4_icon_path); + gtk_grid_attach (GTK_GRID(tab_4), tab_4_icon, 0, 0, 1, 1); + gtk_grid_attach (GTK_GRID(tab_4), tab_4_label, 1, 0, 1, 1); + + gtk_notebook_append_page(GTK_NOTEBOOK(tab_box), scroll_4, tab_4); + } + + /* Attach the notebook (tabs) */ + gtk_box_pack_start(GTK_BOX(maintable), tab_box, TRUE, TRUE, 2); + + /*-------------------------- Status bar ------------------------------------*/ + status_bar = gtk_statusbar_new(); + status_warning_id = gtk_statusbar_get_context_id (GTK_STATUSBAR(status_bar), "warning"); + + gtk_widget_show(status_bar); + /** add the status bar*/ + gtk_box_pack_start(GTK_BOX(maintable), status_bar, FALSE, FALSE, 2); + + + /* attach to main window container */ + gtk_container_add (GTK_CONTAINER (main_window), maintable); + + /* add key events*/ + gtk_widget_add_events (GTK_WIDGET (main_window), GDK_KEY_PRESS_MASK | GDK_KEY_RELEASE_MASK); + g_signal_connect (GTK_WINDOW(main_window), "key_press_event", G_CALLBACK(window_key_pressed), device); + + /* add update timers: + * devices + */ + gtk_devices_timer_id = g_timeout_add( 500, check_device_events, device); + + return 0; +} + +/* + * run the GUI loop + * args: + * none + * + * asserts: + * none + * + * returns: error code + */ +int gui_run_gtk3() +{ + + int ret = 0; + + gtk_main_called = 1; + + gtk_main(); + + return ret; +} + +/* + * closes and cleans the GTK3 GUI + * args: + * none + * + * asserts: + * none + * + * returns: none + */ +void gui_close_gtk3() +{ + if(gtk_main_called) + gtk_main_quit(); + + gui_clean_gtk3_control_widgets_list(); + + gtk_main_called = 0; +} diff -Nru guvcview-1.7.3/guvcview/gui_gtk3_callbacks.c guvcview-2.0.1+ubuntu1~ppa1/guvcview/gui_gtk3_callbacks.c --- guvcview-1.7.3/guvcview/gui_gtk3_callbacks.c 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/guvcview/gui_gtk3_callbacks.c 2014-10-05 10:41:44.000000000 +0000 @@ -0,0 +1,2303 @@ +/*******************************************************************************# +# guvcview http://guvcview.sourceforge.net # +# # +# Paulo Assis # +# Nobuhiro Iwamatsu # +# Add UYVY color support(Macbook iSight) # +# Flemming Frandsen # +# Add VU meter OSD # +# # +# This program is free software; you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation; either version 2 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program; if not, write to the Free Software # +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # +# # +********************************************************************************/ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +/* support for internationalization - i18n */ +#include + +#include "gviewv4l2core.h" +#include "video_capture.h" +#include "gviewencoder.h" +#include "gui.h" +#include "gui_gtk3.h" +#include "core_io.h" +#include "config.h" + +extern int debug_level; + +/* + * delete event (close window) + * args: + * widget - pointer to event widget + * event - pointer to event data + * data - pointer to user data + * + * asserts: + * none + * + * returns: error code + */ +int delete_event (GtkWidget *widget, GdkEventConfigure *event, void *data) +{ + /* Terminate program */ + quit_callback(NULL); + return 0; +} + +/* + * quit button clicked event + * args: + * widget - pointer to widget that caused the event + * data - pointer to user data + * + * asserts: + * none + * + * returns: none + */ +void quit_button_clicked(GtkWidget *widget, void *data) +{ + /* Terminate program */ + quit_callback(NULL); +} + +/* + * camera_button_menu toggled event + * args: + * widget - pointer to event widget + * data - pointer to user data + * + * asserts: + * none + * + * returns: none + */ +void camera_button_menu_changed (GtkWidget *item, void *data) +{ + int flag = GPOINTER_TO_INT(g_object_get_data (G_OBJECT (item), "camera_default")); + + if (gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(item))) + set_default_camera_button_action(flag); +} + +/* + * control default clicked event + * args: + * widget - pointer to event widget + * data - pointer to user data + * + * asserts: + * none + * + * returns: none + */ +void control_defaults_clicked (GtkWidget *item, void *data) +{ + v4l2_dev_t *device = (v4l2_dev_t *) data; + + v4l2core_set_control_defaults(device); + + gui_gtk3_update_controls_state(device); +} + +/* + * called from profile format combo in file dialog + * args: + * chooser - format combo that caused the event + * file_dialog - chooser parent + * + * asserts: + * none + * + * returns: none + */ +static void profile_update_extension (GtkComboBox *chooser, GtkWidget *file_dialog) +{ + int format = gtk_combo_box_get_active (chooser); + + GtkFileFilter *filter = gtk_file_filter_new(); + + switch(format) + { + case 1: + gtk_file_filter_add_pattern(filter, "*.*"); + break; + + default: + case 0: + gtk_file_filter_add_pattern(filter, "*.gpfl"); + break; + } + + gtk_file_chooser_set_filter(GTK_FILE_CHOOSER (file_dialog), filter); +} + +/* + * control profile (load/save) clicked event + * args: + * widget - pointer to event widget + * data - pointer to user data + * + * asserts: + * none + * + * returns: none + */ +void controls_profile_clicked (GtkWidget *item, void *data) +{ + v4l2_dev_t *device = (v4l2_dev_t *) data; + + GtkWidget *FileDialog; + + int save_or_load = GPOINTER_TO_INT(g_object_get_data (G_OBJECT (item), "profile_dialog")); + + if(debug_level > 0) + printf("GUVCVIEW: Profile dialog (%d)\n", save_or_load); + + GtkWidget *main_window = get_main_window_gtk3(); + + if (save_or_load > 0) /*save*/ + { + FileDialog = gtk_file_chooser_dialog_new (_("Save Profile"), + GTK_WINDOW(main_window), + GTK_FILE_CHOOSER_ACTION_SAVE, + _("_Cancel"), GTK_RESPONSE_CANCEL, + _("_Save"), GTK_RESPONSE_ACCEPT, + NULL); + + gtk_file_chooser_set_do_overwrite_confirmation (GTK_FILE_CHOOSER (FileDialog), TRUE); + + gtk_file_chooser_set_current_name (GTK_FILE_CHOOSER (FileDialog), + get_profile_name()); + } + else /*load*/ + { + FileDialog = gtk_file_chooser_dialog_new (_("Load Profile"), + GTK_WINDOW(main_window), + GTK_FILE_CHOOSER_ACTION_OPEN, + _("_Cancel"), GTK_RESPONSE_CANCEL, + _("_Open"), GTK_RESPONSE_ACCEPT, + NULL); + } + + /** create a file filter */ + GtkFileFilter *filter = gtk_file_filter_new(); + + GtkWidget *FBox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 2); + GtkWidget *format_label = gtk_label_new(_("File Format:")); + gtk_widget_set_halign (FBox, GTK_ALIGN_FILL); + gtk_widget_set_hexpand (FBox, TRUE); + gtk_widget_set_hexpand (format_label, FALSE); + gtk_widget_show(FBox); + gtk_widget_show(format_label); + gtk_box_pack_start(GTK_BOX(FBox), format_label, FALSE, FALSE, 2); + + GtkWidget *FileFormat = gtk_combo_box_text_new (); + gtk_widget_set_halign (FileFormat, GTK_ALIGN_FILL); + gtk_widget_set_hexpand (FileFormat, TRUE); + + gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(FileFormat),_("gpfl (*.gpfl)")); + gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(FileFormat),_("any (*.*)")); + + gtk_combo_box_set_active(GTK_COMBO_BOX(FileFormat), 0); + gtk_box_pack_start(GTK_BOX(FBox), FileFormat, FALSE, FALSE, 2); + gtk_widget_show(FileFormat); + + gtk_file_filter_add_pattern(filter, "*.gpfl"); + + gtk_file_chooser_set_filter(GTK_FILE_CHOOSER (FileDialog), filter); + gtk_file_chooser_set_extra_widget(GTK_FILE_CHOOSER (FileDialog), FBox); + + g_signal_connect (GTK_COMBO_BOX(FileFormat), "changed", + G_CALLBACK (profile_update_extension), FileDialog); + + + gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER (FileDialog), + get_profile_path()); + + if (gtk_dialog_run (GTK_DIALOG (FileDialog)) == GTK_RESPONSE_ACCEPT) + { + /*Save Controls Data*/ + const char *filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (FileDialog)); + + if(save_or_load > 0) + { + v4l2core_save_control_profile(device, filename); + } + else + { + v4l2core_load_control_profile(device, filename); + gui_gtk3_update_controls_state(device); + } + + char *basename = get_file_basename(filename); + if(basename) + { + set_profile_name(basename); + free(basename); + } + char *pathname = get_file_pathname(filename); + if(pathname) + { + set_profile_path(pathname); + free(pathname); + } + } + gtk_widget_destroy (FileDialog); +} + +/* + * photo suffix toggled event + * args: + * item - widget that generated the event + * data - pointer to user data + * + * asserts: + * none + * + * returns: none + */ +void photo_sufix_toggled (GtkWidget *item, void *data) +{ + int flag = gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(item)) ? 1 : 0; + set_photo_sufix_flag(flag); + + /*update config*/ + config_t *my_config = config_get(); + my_config->photo_sufix = flag; +} + +/* + * video suffix toggled event + * args: + * item - widget that generated the event + * data - pointer to user data + * + * asserts: + * none + * + * returns: none + */ +void video_sufix_toggled (GtkWidget *item, void *data) +{ + int flag = gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(item)) ? 1 : 0; + set_video_sufix_flag(flag); + + /*update config*/ + config_t *my_config = config_get(); + my_config->video_sufix = flag; +} + +/* + * video codec changed event + * args: + * item - widget that generated the event + * data - pointer to user data + * + * asserts: + * none + * + * returns: none + */ +void video_codec_changed (GtkRadioMenuItem *item, void *data) +{ + GSList *vgroup = (GSList *) data; + + if (gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(item))) + { + /* + * GSList indexes (g_slist_index) are in reverse order: + * last inserted has index 0 + * so count backwards + */ + int num_codecs = g_slist_length(vgroup); + int index = g_slist_index (vgroup, item); + index = num_codecs - (index + 1); //reverse order and 0 indexed + fprintf(stderr,"GUVCVIEW: video codec changed to %i\n", index); + + set_video_codec_ind(index); + + if( get_video_muxer() == ENCODER_MUX_WEBM && + !encoder_check_webm_video_codec(index)) + { + /*change from webm to matroska*/ + set_video_muxer(ENCODER_MUX_MKV); + char *newname = set_file_extension(get_video_name(), "mkv"); + set_video_name(newname); + + free(newname); + } + } +} + +/* + * audio codec changed event + * args: + * item - widget that generated the event + * data - pointer to user data + * + * asserts: + * none + * + * returns: none + */ +void audio_codec_changed (GtkRadioMenuItem *item, void *data) +{ + GSList *agroup = (GSList *) data; + + if (gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(item))) + { + /* + * GSList indexes (g_slist_index) are in reverse order: + * last inserted has index 0 + * so count backwards + */ + int num_codecs = g_slist_length(agroup); + int index = g_slist_index (agroup, item); + index = num_codecs - (index + 1); //reverse order and 0 indexed + fprintf(stderr,"GUVCVIEW: audio codec changed to %i\n", index); + + set_audio_codec_ind(index); + + if( get_video_muxer() == ENCODER_MUX_WEBM && + !encoder_check_webm_audio_codec(index)) + { + /*change from webm to matroska*/ + set_video_muxer(ENCODER_MUX_MKV); + char *newname = set_file_extension(get_video_name(), "mkv"); + set_video_name(newname); + free(newname); + } + } +} + +/* + * called from photo format combo in file dialog + * args: + * chooser - format combo that caused the event + * file_dialog - chooser parent + * + * asserts: + * none + * + * returns: none + */ +static void photo_update_extension (GtkComboBox *chooser, GtkWidget *file_dialog) +{ + int format = gtk_combo_box_get_active (chooser); + + set_photo_format(format); + + char *filename = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER (file_dialog)); + char *basename = get_file_basename(filename); + + GtkFileFilter *filter = gtk_file_filter_new(); + + switch(format) + { + case IMG_FMT_RAW: + gtk_file_chooser_set_current_name (GTK_FILE_CHOOSER (file_dialog), + set_file_extension(basename, "raw")); + gtk_file_filter_add_pattern(filter, "*.raw"); + break; + case IMG_FMT_PNG: + gtk_file_chooser_set_current_name (GTK_FILE_CHOOSER (file_dialog), + set_file_extension(basename, "png")); + gtk_file_filter_add_pattern(filter, "*.png"); + break; + case IMG_FMT_BMP: + gtk_file_chooser_set_current_name (GTK_FILE_CHOOSER (file_dialog), + set_file_extension(basename, "bmp")); + gtk_file_filter_add_pattern(filter, "*.bmp"); + break; + default: + case IMG_FMT_JPG: + gtk_file_chooser_set_current_name (GTK_FILE_CHOOSER (file_dialog), + set_file_extension(basename, "jpg")); + gtk_file_filter_add_pattern(filter, "*.jpg"); + break; + } + + gtk_file_chooser_set_filter(GTK_FILE_CHOOSER (file_dialog), filter); + + if(filename) + free(filename); + if(basename) + free(basename); +} + +/* + * called from video muxer format combo in file dialog + * args: + * chooser - format combo that caused the event + * file_dialog - chooser parent + * + * asserts: + * none + * + * returns: none + */ +static void video_update_extension (GtkComboBox *chooser, GtkWidget *file_dialog) +{ + int format = gtk_combo_box_get_active (chooser); + + set_video_muxer(format); + + char *filename = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER (file_dialog)); + char *basename = get_file_basename(filename); + + GtkFileFilter *filter = gtk_file_filter_new(); + + switch(format) + { + case ENCODER_MUX_WEBM: + gtk_file_chooser_set_current_name (GTK_FILE_CHOOSER (file_dialog), + set_file_extension(basename, "webm")); + gtk_file_filter_add_pattern(filter, "*.webm"); + break; + case ENCODER_MUX_AVI: + gtk_file_chooser_set_current_name (GTK_FILE_CHOOSER (file_dialog), + set_file_extension(basename, "avi")); + gtk_file_filter_add_pattern(filter, "*.avi"); + break; + default: + case ENCODER_MUX_MKV: + gtk_file_chooser_set_current_name (GTK_FILE_CHOOSER (file_dialog), + set_file_extension(basename, "mkv")); + gtk_file_filter_add_pattern(filter, "*.mkv"); + break; + } + + gtk_file_chooser_set_filter(GTK_FILE_CHOOSER (file_dialog), filter); + + if(filename) + free(filename); + if(basename) + free(basename); +} + +/* + * photo file clicked event + * args: + * item - pointer to widget that generated the event + * data - pointer to user data + * + * asserts: + * none + * + * returns: none + */ +void photo_file_clicked (GtkWidget *item, void *data) +{ + //v4l2_dev_t *device = (v4l2_dev_t *) data; + + GtkWidget *FileDialog; + + GtkWidget *main_window = get_main_window_gtk3(); + + FileDialog = gtk_file_chooser_dialog_new (_("Photo file name"), + GTK_WINDOW(main_window), + GTK_FILE_CHOOSER_ACTION_SAVE, + _("_Cancel"), GTK_RESPONSE_CANCEL, + _("_Save"), GTK_RESPONSE_ACCEPT, + NULL); + gtk_file_chooser_set_do_overwrite_confirmation (GTK_FILE_CHOOSER (FileDialog), TRUE); + + /** create a file filter */ + GtkFileFilter *filter = gtk_file_filter_new(); + + GtkWidget *FBox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 2); + GtkWidget *format_label = gtk_label_new(_("File Format:")); + gtk_widget_set_halign (FBox, GTK_ALIGN_FILL); + gtk_widget_set_hexpand (FBox, TRUE); + gtk_widget_set_hexpand (format_label, FALSE); + gtk_widget_show(FBox); + gtk_widget_show(format_label); + gtk_box_pack_start(GTK_BOX(FBox), format_label, FALSE, FALSE, 2); + + GtkWidget *ImgFormat = gtk_combo_box_text_new (); + gtk_widget_set_halign (ImgFormat, GTK_ALIGN_FILL); + gtk_widget_set_hexpand (ImgFormat, TRUE); + + gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(ImgFormat),_("Raw (*.raw)")); + gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(ImgFormat),_("Jpeg (*.jpg)")); + gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(ImgFormat),_("Png (*.png)")); + gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(ImgFormat),_("Bmp (*.bmp)")); + + gtk_combo_box_set_active(GTK_COMBO_BOX(ImgFormat), get_photo_format()); + gtk_box_pack_start(GTK_BOX(FBox), ImgFormat, FALSE, FALSE, 2); + gtk_widget_show(ImgFormat); + + /**add a pattern to the filter*/ + switch(get_photo_format()) + { + case IMG_FMT_RAW: + gtk_file_filter_add_pattern(filter, "*.raw"); + break; + case IMG_FMT_PNG: + gtk_file_filter_add_pattern(filter, "*.png"); + break; + case IMG_FMT_BMP: + gtk_file_filter_add_pattern(filter, "*.bmp"); + break; + default: + case IMG_FMT_JPG: + gtk_file_filter_add_pattern(filter, "*.jpg"); + break; + } + + gtk_file_chooser_set_filter(GTK_FILE_CHOOSER (FileDialog), filter); + gtk_file_chooser_set_extra_widget(GTK_FILE_CHOOSER (FileDialog), FBox); + + g_signal_connect (GTK_COMBO_BOX(ImgFormat), "changed", + G_CALLBACK (photo_update_extension), FileDialog); + + gtk_file_chooser_set_current_name (GTK_FILE_CHOOSER (FileDialog), + get_photo_name()); + + gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER (FileDialog), + get_photo_path()); + + if (gtk_dialog_run (GTK_DIALOG (FileDialog)) == GTK_RESPONSE_ACCEPT) + { + const char *filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (FileDialog)); + + char *basename = get_file_basename(filename); + if(basename) + { + set_photo_name(basename); + free(basename); + } + char *pathname = get_file_pathname(filename); + if(pathname) + { + set_photo_path(pathname); + free(pathname); + } + } + gtk_widget_destroy (FileDialog); +} + +/* + * video file clicked event + * args: + * item - pointer to widget that generated the event + * data - pointer to user data + * + * asserts: + * none + * + * returns: none + */ +void video_file_clicked (GtkWidget *item, void *data) +{ + //v4l2_dev_t *device = (v4l2_dev_t *) data; + + GtkWidget *FileDialog; + + GtkWidget *main_window = get_main_window_gtk3(); + + FileDialog = gtk_file_chooser_dialog_new (_("Video file name"), + GTK_WINDOW(main_window), + GTK_FILE_CHOOSER_ACTION_SAVE, + _("_Cancel"), GTK_RESPONSE_CANCEL, + _("_Save"), GTK_RESPONSE_ACCEPT, + NULL); + + gtk_file_chooser_set_do_overwrite_confirmation (GTK_FILE_CHOOSER (FileDialog), TRUE); + + /** create a file filter */ + GtkFileFilter *filter = gtk_file_filter_new(); + + GtkWidget *FBox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 2); + GtkWidget *format_label = gtk_label_new(_("File Format:")); + gtk_widget_set_halign (FBox, GTK_ALIGN_FILL); + gtk_widget_set_hexpand (FBox, TRUE); + gtk_widget_set_hexpand (format_label, FALSE); + gtk_widget_show(FBox); + gtk_widget_show(format_label); + gtk_box_pack_start(GTK_BOX(FBox), format_label, FALSE, FALSE, 2); + + GtkWidget *VideoFormat = gtk_combo_box_text_new (); + gtk_widget_set_halign (VideoFormat, GTK_ALIGN_FILL); + gtk_widget_set_hexpand (VideoFormat, TRUE); + + gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(VideoFormat),_("Matroska (*.mkv)")); + gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(VideoFormat),_("WebM (*.webm)")); + gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(VideoFormat),_("Avi (*.avi)")); + + gtk_combo_box_set_active(GTK_COMBO_BOX(VideoFormat), get_video_muxer()); + gtk_box_pack_start(GTK_BOX(FBox), VideoFormat, FALSE, FALSE, 2); + gtk_widget_show(VideoFormat); + + /**add a pattern to the filter*/ + switch(get_video_muxer()) + { + case ENCODER_MUX_WEBM: + gtk_file_filter_add_pattern(filter, "*.webm"); + break; + case ENCODER_MUX_AVI: + gtk_file_filter_add_pattern(filter, "*.avi"); + break; + default: + case ENCODER_MUX_MKV: + gtk_file_filter_add_pattern(filter, "*.mkv"); + break; + + } + + gtk_file_chooser_set_filter(GTK_FILE_CHOOSER (FileDialog), filter); + gtk_file_chooser_set_extra_widget(GTK_FILE_CHOOSER (FileDialog), FBox); + + g_signal_connect (GTK_COMBO_BOX(VideoFormat), "changed", + G_CALLBACK (video_update_extension), FileDialog); + + gtk_file_chooser_set_current_name (GTK_FILE_CHOOSER (FileDialog), + get_video_name()); + + gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER (FileDialog), + get_video_path()); + + if (gtk_dialog_run (GTK_DIALOG (FileDialog)) == GTK_RESPONSE_ACCEPT) + { + const char *filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (FileDialog)); + + char *basename = get_file_basename(filename); + if(basename) + { + set_video_name(basename); + free(basename); + } + char *pathname = get_file_pathname(filename); + if(pathname) + { + set_video_path(pathname); + free(pathname); + } + } + gtk_widget_destroy (FileDialog); +} + +/* + * capture image button clicked event + * args: + * button - widget that generated the event + * data - pointer to user data + * + * asserts: + * none + * + * returns: none + */ +void capture_image_clicked (GtkButton *button, void *data) +{ + int is_photo_timer = GPOINTER_TO_INT(g_object_get_data (G_OBJECT (button), "control_info")); + + if(is_photo_timer) + { + stop_photo_timer(); + gtk_button_set_label(button, _("Cap. Image (I)")); + } + else + video_capture_save_image(); +} + +/* + * capture video button clicked event + * args: + * button - widget that generated the event + * data - pointer to user data + * + * asserts: + * none + * + * returns: none + */ +void capture_video_clicked(GtkToggleButton *button, void *data) +{ + v4l2_dev_t *device = (v4l2_dev_t *) data; + + int active = gtk_toggle_button_get_active (button); + + if(debug_level > 0) + printf("GUVCVIEW: video capture toggled(%i)\n", active); + + if(active) + { + start_encoder_thread(device); + gtk_button_set_label(GTK_BUTTON(button), _("Stop Video (V)")); + + } + else + { + stop_encoder_thread(); + gtk_button_set_label(GTK_BUTTON(button), _("Cap. Video (V)")); + /*make sure video timer is reset*/ + reset_video_timer(); + } +} + +/* + * pan/tilt step changed + * args: + * spin - spinbutton that generated the event + * data - pointer to user data + * + * asserts: + * none + * + * returns: + * none + */ +void pan_tilt_step_changed (GtkSpinButton *spin, void *data) +{ + v4l2_dev_t *device = (v4l2_dev_t *) data; + + int id = GPOINTER_TO_INT(g_object_get_data (G_OBJECT (spin), "control_info")); + + int val = gtk_spin_button_get_value_as_int (spin); + + if(id == V4L2_CID_PAN_RELATIVE) + device->pan_step = val; + if(id == V4L2_CID_TILT_RELATIVE) + device->tilt_step = val; +} + +/* + * Pan Tilt button 1 clicked + * args: + * button - button that generated the event + * data - pointer to user data + * + * asserts: + * none + * + * returns: none + */ +void button_PanTilt1_clicked (GtkButton * Button, void *data) +{ + v4l2_dev_t *device = (v4l2_dev_t *) data; + + int id = GPOINTER_TO_INT(g_object_get_data (G_OBJECT (Button), "control_info")); + + v4l2_ctrl_t *control = v4l2core_get_control_by_id(device, id); + + if(id == V4L2_CID_PAN_RELATIVE) + control->value = device->pan_step; + else + control->value = device->tilt_step; + + if(v4l2core_set_control_value_by_id(device, id)) + fprintf(stderr, "GUVCVIEW: error setting pan/tilt\n"); +} + +/* + * Pan Tilt button 2 clicked + * args: + * button - button that generated the event + * data - pointer to user data + * + * asserts: + * none + * + * returns: none + */ +void button_PanTilt2_clicked (GtkButton * Button, void *data) +{ + v4l2_dev_t *device = (v4l2_dev_t *) data; + + int id = GPOINTER_TO_INT(g_object_get_data (G_OBJECT (Button), "control_info")); + + v4l2_ctrl_t *control = v4l2core_get_control_by_id(device, id); + + if(id == V4L2_CID_PAN_RELATIVE) + control->value = - device->pan_step; + else + control->value = - device->tilt_step; + + if(v4l2core_set_control_value_by_id(device, id)) + fprintf(stderr, "GUVCVIEW: error setting pan/tilt\n"); +} + +/* + * generic button clicked + * args: + * button - button that generated the event + * data - pointer to user data + * + * asserts: + * none + * + * returns: none + */ +void button_clicked (GtkButton * Button, void *data) +{ + v4l2_dev_t *device = (v4l2_dev_t *) data; + + int id = GPOINTER_TO_INT(g_object_get_data (G_OBJECT (Button), "control_info")); + + v4l2_ctrl_t *control = v4l2core_get_control_by_id(device, id); + + control->value = 1; + + if(v4l2core_set_control_value_by_id(device, id)) + fprintf(stderr, "GUVCVIEW: error setting button value\n"); + + gui_gtk3_update_controls_state(device); +} + +#ifdef V4L2_CTRL_TYPE_STRING +/* + * a string control apply button clicked + * args: + * button - button that generated the event + * data - pointer to user data + * + * asserts: + * control->string not null + * + * returns: none + */ +void string_button_clicked(GtkButton * Button, void *data) +{ + v4l2_dev_t *device = (v4l2_dev_t *) data; + + int id = GPOINTER_TO_INT(g_object_get_data (G_OBJECT (Button), "control_info")); + GtkWidget *entry = (GtkWidget *) g_object_get_data (G_OBJECT (Button), "control_entry"); + + v4l2_ctrl_t *control = v4l2core_get_control_by_id(device, id); + + assert(control->string != NULL); + + strncpy(control->string, gtk_entry_get_text(GTK_ENTRY(entry)), control->control.maximum); + + if(v4l2core_set_control_value_by_id(device, id)) + fprintf(stderr, "GUVCVIEW: error setting string value\n"); +} +#endif + +#ifdef V4L2_CTRL_TYPE_INTEGER64 +/* + * a int64 control apply button clicked + * args: + * button - button that generated the event + * data - pointer to user data + * + * asserts: + * none + * + * returns: none + */ +void int64_button_clicked(GtkButton * Button, void *data) +{ + v4l2_dev_t *device = (v4l2_dev_t *) data; + + int id = GPOINTER_TO_INT(g_object_get_data (G_OBJECT (Button), "control_info")); + GtkWidget *entry = (GtkWidget *) g_object_get_data (G_OBJECT (Button), "control_entry"); + + v4l2_ctrl_t *control = v4l2core_get_control_by_id(device, id); + + char* text_input = g_strdup(gtk_entry_get_text(GTK_ENTRY(entry))); + text_input = g_strstrip(text_input); + if( g_str_has_prefix(text_input, "0x")) //hex format + { + text_input = g_strcanon(text_input, "0123456789ABCDEFabcdef", '\0'); + control->value64 = g_ascii_strtoll(text_input, NULL, 16); + } + else //decimal or hex ? + { + text_input = g_strcanon(text_input, "0123456789ABCDEFabcdef", '\0'); + control->value64 = g_ascii_strtoll(text_input, NULL, 0); + } + g_free(text_input); + + if(v4l2core_set_control_value_by_id(device, id)) + fprintf(stderr, "GUVCVIEW: error setting string value\n"); + +} +#endif + +#ifdef V4L2_CTRL_TYPE_BITMASK +/* + * a bitmask control apply button clicked + * args: + * button - button that generated the event + * data - pointer to user data + * + * asserts: + * none + * + * returns: none + */ +void bitmask_button_clicked(GtkButton * Button, void *data) +{ + v4l2_dev_t *device = (v4l2_dev_t *) data; + + int id = GPOINTER_TO_INT(g_object_get_data (G_OBJECT (Button), "control_info")); + GtkWidget *entry = (GtkWidget *) g_object_get_data (G_OBJECT (Button), "control_entry"); + + v4l2_ctrl_t *control = v4l2core_get_control_by_id(device, id); + + char* text_input = g_strdup(gtk_entry_get_text(GTK_ENTRY(entry))); + text_input = g_strcanon(text_input,"0123456789ABCDEFabcdef", '\0'); + control->value = (int32_t) g_ascii_strtoll(text_input, NULL, 16); + g_free(text_input); + + if(v4l2core_set_control_value_by_id(device, id)) + fprintf(stderr, "GUVCVIEW: error setting string value\n"); +} +#endif + +/* + * slider changed event + * args: + * range - widget that generated the event + * data - pointer to user data + * + * asserts: + * none + * + * returns: none + */ +void slider_changed (GtkRange * range, void *data) +{ + v4l2_dev_t *device = (v4l2_dev_t *) data; + + int id = GPOINTER_TO_INT(g_object_get_data (G_OBJECT (range), "control_info")); + v4l2_ctrl_t *control = v4l2core_get_control_by_id(device, id); + + int val = (int) gtk_range_get_value (range); + + control->value = val; + + if(v4l2core_set_control_value_by_id(device, id)) + fprintf(stderr, "GUVCVIEW: error setting slider value\n"); + + /* + if(widget2) + { + //disable widget signals + g_signal_handlers_block_by_func(GTK_SPIN_BUTTON(widget2), + G_CALLBACK (spin_changed), data); + gtk_spin_button_set_value (GTK_SPIN_BUTTON(widget2), control->value); + //enable widget signals + g_signal_handlers_unblock_by_func(GTK_SPIN_BUTTON(widget2), + G_CALLBACK (spin_changed), data); + } + */ +} + +/* + * spin changed event + * args: + * spin - widget that generated the event + * data - pointer to user data + * + * asserts: + * none + * + * returns: none + */ +void spin_changed (GtkSpinButton * spin, void *data) +{ + v4l2_dev_t *device = (v4l2_dev_t *) data; + + int id = GPOINTER_TO_INT(g_object_get_data (G_OBJECT (spin), "control_info")); + v4l2_ctrl_t *control = v4l2core_get_control_by_id(device, id); + + int val = gtk_spin_button_get_value_as_int (spin); + control->value = val; + + if(v4l2core_set_control_value_by_id(device, id)) + fprintf(stderr, "GUVCVIEW: error setting spin value\n"); + + /* + if(widget) + { + //disable widget signals + g_signal_handlers_block_by_func(GTK_SCALE (widget), + G_CALLBACK (slider_changed), data); + gtk_range_set_value (GTK_RANGE (widget), control->value); + //enable widget signals + g_signal_handlers_unblock_by_func(GTK_SCALE (widget), + G_CALLBACK (slider_changed), data); + } + */ + +} + +/* + * combo box changed event + * args: + * combo - widget that generated the event + * data - pointer to user data + * + * asserts: + * none + * + * returns: none + */ +void combo_changed (GtkComboBox * combo, void *data) +{ + v4l2_dev_t *device = (v4l2_dev_t *) data; + + int id = GPOINTER_TO_INT(g_object_get_data (G_OBJECT (combo), "control_info")); + v4l2_ctrl_t *control = v4l2core_get_control_by_id(device, id); + + int index = gtk_combo_box_get_active (combo); + control->value = control->menu[index].index; + + if(v4l2core_set_control_value_by_id(device, id)) + fprintf(stderr, "GUVCVIEW: error setting menu value\n"); + + gui_gtk3_update_controls_state(device); +} + +/* + * bayer pixel order combo box changed event + * args: + * combo - widget that generated the event + * data - pointer to user data + * + * asserts: + * none + * + * returns: none + */ +void bayer_pix_ord_changed (GtkComboBox * combo, void *data) +{ + v4l2_dev_t *device = (v4l2_dev_t *) data; + + //int id = GPOINTER_TO_INT(g_object_get_data (G_OBJECT (combo), "control_info")); + + int index = gtk_combo_box_get_active (combo); + device->bayer_pix_order = index; +} + +/* + * check box changed event + * args: + * toggle - widget that generated the event + * data - pointer to user data + * + * asserts: + * none + * + * returns: none + */ +void check_changed (GtkToggleButton *toggle, void *data) +{ + v4l2_dev_t *device = (v4l2_dev_t *) data; + + int id = GPOINTER_TO_INT(g_object_get_data (G_OBJECT (toggle), "control_info")); + v4l2_ctrl_t *control = v4l2core_get_control_by_id(device, id); + + int val = gtk_toggle_button_get_active (toggle) ? 1 : 0; + + control->value = val; + + if(v4l2core_set_control_value_by_id(device, id)) + fprintf(stderr, "GUVCVIEW: error setting menu value\n"); + + if(id == V4L2_CID_DISABLE_PROCESSING_LOGITECH) + { + if (control->value > 0) + device->isbayer = 1; + else + device->isbayer = 0; + + /* + * must restart stream and requeue + * the buffers for changes to take effect + * (updating fps provides all that is needed) + */ + v4l2core_request_framerate_update (device); + } + + gui_gtk3_update_controls_state(device); +} + +/* + * device list box changed event + * args: + * wgtDevices - widget that generated the event + * data - pointer to user data + * + * asserts: + * none + * + * returns: none + */ +void devices_changed (GtkComboBox *wgtDevices, void *data) +{ + v4l2_dev_t *device = (v4l2_dev_t *) data; + + GError *error = NULL; + + int index = gtk_combo_box_get_active(wgtDevices); + if(index == device->this_device) + return; + + v4l2_device_list *device_list = v4l2core_get_device_list(); + + GtkWidget *restartdialog = gtk_dialog_new_with_buttons (_("start new"), + GTK_WINDOW(get_main_window_gtk3()), + GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT, + _("restart"), + GTK_RESPONSE_ACCEPT, + _("new"), + GTK_RESPONSE_REJECT, + _("cancel"), + GTK_RESPONSE_CANCEL, + NULL); + + GtkWidget *content_area = gtk_dialog_get_content_area (GTK_DIALOG (restartdialog)); + GtkWidget *message = gtk_label_new (_("launch new process or restart?.\n\n")); + gtk_container_add (GTK_CONTAINER (content_area), message); + gtk_widget_show_all(restartdialog); + + gint result = gtk_dialog_run (GTK_DIALOG (restartdialog)); + + /*check device index only after dialog response*/ + char videodevice[30]; + strncpy(videodevice, device_list->list_devices[index].device, 29); + gchar *command = g_strjoin("", + g_get_prgname(), + " --device=", + videodevice, + NULL); + + switch (result) + { + case GTK_RESPONSE_ACCEPT: /*FIXME: restart or reset device without closing the app*/ + if(debug_level > 1) + printf("GUVCVIEW: spawning new process: '%s'\n", command); + /*spawn new process*/ + if(!(g_spawn_command_line_async(command, &error))) + { + fprintf(stderr, "GUVCVIEW: spawn failed: %s\n", error->message); + g_error_free( error ); + } + else + quit_callback(NULL); + break; + case GTK_RESPONSE_REJECT: + if(debug_level > 1) + printf("GUVCVIEW: spawning new process: '%s'\n", command); + /*spawn new process*/ + if(!(g_spawn_command_line_async(command, &error))) + { + fprintf(stderr, "GUVCVIEW: spawn failed: %s\n", error->message); + g_error_free( error ); + } + break; + default: + /* do nothing since dialog was canceled*/ + break; + } + /*reset to current device*/ + gtk_combo_box_set_active(GTK_COMBO_BOX(wgtDevices), device->this_device); + + gtk_widget_destroy (restartdialog); + g_free(command); +} + +/* + * frame rate list box changed event + * args: + * wgtFrameRate - widget that generated the event + * data - pointer to user data + * + * asserts: + * none + * + * returns: none + */ +void frame_rate_changed (GtkComboBox *wgtFrameRate, void *data) +{ + v4l2_dev_t *device = (v4l2_dev_t *) data; + + int format_index = v4l2core_get_frame_format_index(device, device->requested_fmt); + + int resolu_index = v4l2core_get_format_resolution_index( + device, + format_index, + device->format.fmt.pix.width, + device->format.fmt.pix.height); + + int index = gtk_combo_box_get_active (wgtFrameRate); + + device->fps_denom = device->list_stream_formats[format_index].list_stream_cap[resolu_index].framerate_denom[index]; + device->fps_num = device->list_stream_formats[format_index].list_stream_cap[resolu_index].framerate_num[index]; + + int fps[2] = {device->fps_num, device->fps_denom}; + gui_set_fps(fps); + + v4l2core_request_framerate_update (device); +} + +/* + * resolution list box changed event + * args: + * wgtResolution - widget that generated the event + * data - pointer to user data + * + * asserts: + * none + * + * returns: none + */ +void resolution_changed (GtkComboBox *wgtResolution, void *data) +{ + v4l2_dev_t *device = (v4l2_dev_t *) data; + + int format_index = v4l2core_get_frame_format_index(device, device->requested_fmt); + + int cmb_index = gtk_combo_box_get_active(wgtResolution); + + GtkWidget *wgtFrameRate = (GtkWidget *) g_object_get_data (G_OBJECT (wgtResolution), "control_fps"); + + char temp_str[20]; + + /*disable fps combobox signals*/ + g_signal_handlers_block_by_func(GTK_COMBO_BOX_TEXT(wgtFrameRate), G_CALLBACK (frame_rate_changed), device); + /* clear out the old fps list... */ + GtkListStore *store = GTK_LIST_STORE(gtk_combo_box_get_model (GTK_COMBO_BOX(wgtFrameRate))); + gtk_list_store_clear(store); + + int width = device->list_stream_formats[format_index].list_stream_cap[cmb_index].width; + int height = device->list_stream_formats[format_index].list_stream_cap[cmb_index].height; + + /*check if frame rate is available at the new resolution*/ + int i=0; + int deffps=0; + + for ( i = 0 ; i < device->list_stream_formats[format_index].list_stream_cap[cmb_index].numb_frates ; i++) + { + g_snprintf( + temp_str, + 18, + "%i/%i fps", + device->list_stream_formats[format_index].list_stream_cap[cmb_index].framerate_denom[i], + device->list_stream_formats[format_index].list_stream_cap[cmb_index].framerate_num[i]); + + gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(wgtFrameRate), temp_str); + + if (( device->fps_num == device->list_stream_formats[format_index].list_stream_cap[cmb_index].framerate_num[i]) && + ( device->fps_denom == device->list_stream_formats[format_index].list_stream_cap[cmb_index].framerate_denom[i])) + deffps=i; + } + + /*set default fps in combo*/ + gtk_combo_box_set_active(GTK_COMBO_BOX(wgtFrameRate), deffps); + + /*enable fps combobox signals*/ + g_signal_handlers_unblock_by_func(GTK_COMBO_BOX_TEXT(wgtFrameRate), G_CALLBACK (frame_rate_changed), device); + + if (device->list_stream_formats[format_index].list_stream_cap[cmb_index].framerate_num) + device->fps_num = device->list_stream_formats[format_index].list_stream_cap[cmb_index].framerate_num[deffps]; + + if (device->list_stream_formats[format_index].list_stream_cap[cmb_index].framerate_denom) + device->fps_denom = device->list_stream_formats[format_index].list_stream_cap[cmb_index].framerate_denom[deffps]; + + /*change resolution (try new format and reset render)*/ + v4l2core_prepare_new_resolution(device, width, height); + + request_format_update(); + + /*update the config data*/ + config_t *my_config = config_get(); + + my_config->width = width; + my_config->height= height; +} + +/* + * device pixel format list box changed event + * args: + * wgtInpType - widget that generated the event + * data - pointer to user data + * + * asserts: + * none + * + * returns: none + */ +void format_changed(GtkComboBox *wgtInpType, void *data) +{ + v4l2_dev_t *device = (v4l2_dev_t *) data; + + char temp_str[20]; + int index = gtk_combo_box_get_active(wgtInpType); + + //GtkWidget *wgtFrameRate = (GtkWidget *) g_object_get_data (G_OBJECT (wgtInpType), "control_fps"); + GtkWidget *wgtResolution = (GtkWidget *) g_object_get_data (G_OBJECT (wgtInpType), "control_resolution"); + + int i=0; + int defres = 0; + + /*disable resolution combobox signals*/ + g_signal_handlers_block_by_func(GTK_COMBO_BOX_TEXT(wgtResolution), G_CALLBACK (resolution_changed), device); + + /* clear out the old resolution list... */ + GtkListStore *store = GTK_LIST_STORE(gtk_combo_box_get_model (GTK_COMBO_BOX(wgtResolution))); + gtk_list_store_clear(store); + + int format = device->list_stream_formats[index].format; + + /*update config*/ + config_t *my_config = config_get(); + strncpy(my_config->format, device->list_stream_formats[index].fourcc, 4); + + /*redraw resolution combo for new format*/ + for(i = 0 ; i < device->list_stream_formats[index].numb_res ; i++) + { + if (device->list_stream_formats[index].list_stream_cap[i].width > 0) + { + g_snprintf( + temp_str, + 18, + "%ix%i", + device->list_stream_formats[index].list_stream_cap[i].width, + device->list_stream_formats[index].list_stream_cap[i].height); + + gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(wgtResolution), temp_str); + + if ((device->format.fmt.pix.width == device->list_stream_formats[index].list_stream_cap[i].width) && + (device->format.fmt.pix.height == device->list_stream_formats[index].list_stream_cap[i].height)) + defres=i;//set selected resolution index + } + } + + /*enable resolution combobox signals*/ + g_signal_handlers_unblock_by_func(GTK_COMBO_BOX_TEXT(wgtResolution), G_CALLBACK (resolution_changed), device); + + /*prepare new format*/ + v4l2core_prepare_new_format(device, format); + /*change resolution*/ + gtk_combo_box_set_active(GTK_COMBO_BOX(wgtResolution), defres); +} + +/* + * render fx filter changed event + * args: + * toggle - widget that generated the event + * data - pointer to user data + * + * asserts: + * none + * + * returns: none + */ +void render_fx_filter_changed(GtkToggleButton *toggle, void *data) +{ + int filter = GPOINTER_TO_INT(g_object_get_data (G_OBJECT (toggle), "filt_info")); + + uint32_t mask = gtk_toggle_button_get_active (toggle) ? + get_render_fx_mask() | filter : + get_render_fx_mask() & ~filter; + + set_render_fx_mask(mask); +} + +/* + * audio fx filter changed event + * args: + * toggle - widget that generated the event + * data - pointer to user data + * + * asserts: + * none + * + * returns: none + */ +void audio_fx_filter_changed(GtkToggleButton *toggle, void *data) +{ + int filter = GPOINTER_TO_INT(g_object_get_data (G_OBJECT (toggle), "filt_info")); + + uint32_t mask = gtk_toggle_button_get_active (toggle) ? + get_audio_fx_mask() | filter : + get_audio_fx_mask() & ~filter; + + set_audio_fx_mask(mask); +} + +/* + * software autofocus checkbox changed event + * args: + * toggle - widget that generated the event + * data - pointer to user data + * + * asserts: + * none + * + * returns: none + */ +void autofocus_changed (GtkToggleButton * toggle, void *data) +{ + //v4l2_dev_t *device = (v4l2_dev_t *) data; + + int val = gtk_toggle_button_get_active (toggle) ? 1 : 0; + + GtkWidget *wgtFocus_slider = (GtkWidget *) g_object_get_data (G_OBJECT (toggle), "control_entry"); + GtkWidget *wgtFocus_spin = (GtkWidget *) g_object_get_data (G_OBJECT (toggle), "control2_entry"); + /*if autofocus disable manual focus control*/ + gtk_widget_set_sensitive (wgtFocus_slider, !val); + gtk_widget_set_sensitive (wgtFocus_spin, !val); + + set_soft_autofocus(val); + +} + +/* + * software autofocus button clicked event + * args: + * button - widget that generated the event + * data - pointer to user data + * + * asserts: + * none + * + * returns: none + */ +void setfocus_clicked (GtkButton * button, void *data) +{ + set_soft_focus(1); +} + +/******************* AUDIO CALLBACKS *************************/ + +/* + * audio device list box changed event + * args: + * combo - widget that generated the event + * data - pointer to user data + * + * asserts: + * none + * + * returns: none + */ +void audio_device_changed(GtkComboBox *combo, void *data) +{ + audio_widgets_t *my_audio_widgets = (audio_widgets_t *) data; + + int index = gtk_combo_box_get_active(combo); + + /*update the audio context for the new api*/ + audio_context_t *audio_ctx = get_audio_context(); + + if(index < 0) + audio_ctx->device = 0; + else if (index >= audio_ctx->num_input_dev) + audio_ctx->device = audio_ctx->num_input_dev - 1; + else + audio_ctx->device = index; + + /*update config*/ + config_t *my_config = config_get(); + my_config->audio_device = index; + + if(debug_level > 0) + printf("GUVCVIEW: audio device changed to %i\n", audio_ctx->device); + + index = gtk_combo_box_get_active(GTK_COMBO_BOX(my_audio_widgets->channels)); + + if(index == 0) + { + audio_ctx->channels = audio_ctx->list_devices[audio_ctx->device].channels; + if(audio_ctx->channels > 2) + audio_ctx->channels = 2;/*limit it to stereo input*/ + } + + index = gtk_combo_box_get_active(GTK_COMBO_BOX(my_audio_widgets->samprate)); + + if(index == 0) + audio_ctx->samprate = audio_ctx->list_devices[audio_ctx->device].samprate; +} + +/* + * audio samplerate list box changed event + * args: + * combo - widget that generated the event + * data - pointer to user data + * + * asserts: + * none + * + * returns: none + */ +void audio_samplerate_changed(GtkComboBox *combo, void *data) +{ + int index = gtk_combo_box_get_active(combo); + + /*update the audio context for the new api*/ + audio_context_t *audio_ctx = get_audio_context(); + + switch(index) + { + case 0: + audio_ctx->samprate = audio_ctx->list_devices[audio_ctx->device].samprate; + break; + case 1: + audio_ctx->samprate = 7350; + break; + case 2: + audio_ctx->samprate = 8000; + break; + case 3: + audio_ctx->samprate = 11025; + break; + case 4: + audio_ctx->samprate = 12000; + break; + case 5: + audio_ctx->samprate = 16000; + break; + case 6: + audio_ctx->samprate = 22050; + break; + case 7: + audio_ctx->samprate = 24000; + break; + case 8: + audio_ctx->samprate = 32000; + break; + case 9: + audio_ctx->samprate = 44100; + break; + case 10: + audio_ctx->samprate = 48000; + break; + case 11: + audio_ctx->samprate = 64000; + break; + case 12: + audio_ctx->samprate = 88200; + break; + case 13: + audio_ctx->samprate = 96000; + break; + default: + audio_ctx->samprate = 44100; + break; + } +} + +/* + * audio channels list box changed event + * args: + * combo - widget that generated the event + * data - pointer to user data + * + * asserts: + * none + * + * returns: none + */ +void audio_channels_changed(GtkComboBox *combo, void *data) +{ + int index = gtk_combo_box_get_active(combo); + + /*update the audio context for the new api*/ + audio_context_t *audio_ctx = get_audio_context(); + + int channels = 0; + + switch(index) + { + case 0: + channels = audio_ctx->list_devices[audio_ctx->device].channels; + break; + case 1: + channels = 1; + break; + default: + case 2: + channels = 2; + break; + } + + if(channels > audio_ctx->list_devices[audio_ctx->device].channels) + audio_ctx->channels = audio_ctx->list_devices[audio_ctx->device].channels; + + if(audio_ctx->channels > 2) + audio_ctx->channels = 2; /*limit to stereo*/ +} + +/* + * audio api list box changed event + * args: + * combo - widget that generated the event + * data - pointer to user data + * + * asserts: + * none + * + * returns: none + */ +void audio_api_changed(GtkComboBox *combo, void *data) +{ + audio_widgets_t *my_audio_widgets = (audio_widgets_t *) data; + + int api = gtk_combo_box_get_active(combo); + + /*update the audio context for the new api*/ + audio_context_t *audio_ctx = create_audio_context(api); + if(!audio_ctx) + api = AUDIO_NONE; + + /*update the config audio entry*/ + config_t *my_config = config_get(); + switch(api) + { + case AUDIO_NONE: + strncpy(my_config->audio, "none", 5); + break; + case AUDIO_PULSE: + strncpy(my_config->audio, "pulse", 5); + break; + default: + strncpy(my_config->audio, "port", 5); + break; + } + + + if(api == AUDIO_NONE || audio_ctx == NULL) + { + gtk_combo_box_set_active(combo, api); + gtk_widget_set_sensitive(my_audio_widgets->device, FALSE); + gtk_widget_set_sensitive(my_audio_widgets->channels, FALSE); + gtk_widget_set_sensitive(my_audio_widgets->samprate, FALSE); + } + else + { + g_signal_handlers_block_by_func( + GTK_COMBO_BOX_TEXT(my_audio_widgets->device), + G_CALLBACK (audio_device_changed), + my_audio_widgets); + + /* clear out the old device list... */ + GtkListStore *store = GTK_LIST_STORE(gtk_combo_box_get_model (GTK_COMBO_BOX(my_audio_widgets->device))); + gtk_list_store_clear(store); + + int i = 0; + for(i = 0; i < audio_ctx->num_input_dev; ++i) + { + gtk_combo_box_text_append_text( + GTK_COMBO_BOX_TEXT(my_audio_widgets->device), + audio_ctx->list_devices[i].description); + } + + gtk_combo_box_set_active(GTK_COMBO_BOX(my_audio_widgets->device), audio_ctx->device); + + g_signal_handlers_unblock_by_func( + GTK_COMBO_BOX_TEXT(my_audio_widgets->device), + G_CALLBACK (audio_device_changed), + my_audio_widgets); + + gtk_widget_set_sensitive (my_audio_widgets->device, TRUE); + gtk_widget_set_sensitive(my_audio_widgets->channels, TRUE); + gtk_widget_set_sensitive(my_audio_widgets->samprate, TRUE); + + /*update channels*/ + int index = gtk_combo_box_get_active(GTK_COMBO_BOX(my_audio_widgets->channels)); + + if(index == 0) + audio_ctx->channels = audio_ctx->list_devices[audio_ctx->device].channels; + + /*update samprate*/ + index = gtk_combo_box_get_active(GTK_COMBO_BOX(my_audio_widgets->samprate)); + + if(index == 0) + audio_ctx->samprate = audio_ctx->list_devices[audio_ctx->device].samprate; + + } + +} + +/* + * video encoder properties clicked event + * args: + * item - widget that generated the event + * data - pointer to user data + * + * asserts: + * none + * + * returns: none + */ +void encoder_video_properties(GtkMenuItem *item, void *data) +{ + int line = 0; + video_codec_t *defaults = encoder_get_video_codec_defaults(get_video_codec_ind()); + + GtkWidget *codec_dialog = gtk_dialog_new_with_buttons (_("video codec values"), + GTK_WINDOW(get_main_window_gtk3()), + GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT, + _("_OK"), GTK_RESPONSE_ACCEPT, + _("_Cancel"), GTK_RESPONSE_REJECT, + NULL); + + GtkWidget *table = gtk_grid_new(); + + GtkWidget *lbl_fps = gtk_label_new(_(" encoder fps: \n (0 - use fps combobox value)")); + gtk_misc_set_alignment (GTK_MISC (lbl_fps), 1, 0.5); + gtk_grid_attach (GTK_GRID(table), lbl_fps, 0, line, 1, 1); + gtk_widget_show (lbl_fps); + + GtkWidget *enc_fps = gtk_spin_button_new_with_range(0,30,5); + gtk_editable_set_editable(GTK_EDITABLE(enc_fps),TRUE); + gtk_spin_button_set_value (GTK_SPIN_BUTTON(enc_fps), defaults->fps); + + gtk_grid_attach (GTK_GRID(table), enc_fps, 1, line, 1, 1); + gtk_widget_show (enc_fps); + line++; + + GtkWidget *monotonic_pts = gtk_check_button_new_with_label (_(" monotonic pts")); + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(monotonic_pts),(defaults->monotonic_pts != 0)); + + gtk_grid_attach (GTK_GRID(table), monotonic_pts, 1, line, 1, 1); + gtk_widget_show (monotonic_pts); + line++; + + GtkWidget *lbl_bit_rate = gtk_label_new(_("bit rate: ")); + gtk_misc_set_alignment (GTK_MISC (lbl_bit_rate), 1, 0.5); + gtk_grid_attach (GTK_GRID(table), lbl_bit_rate, 0, line, 1, 1); + gtk_widget_show (lbl_bit_rate); + + GtkWidget *bit_rate = gtk_spin_button_new_with_range(160000,4000000,10000); + gtk_editable_set_editable(GTK_EDITABLE(bit_rate),TRUE); + gtk_spin_button_set_value (GTK_SPIN_BUTTON(bit_rate), defaults->bit_rate); + + gtk_grid_attach (GTK_GRID(table), bit_rate, 1, line, 1, 1); + gtk_widget_show (bit_rate); + line++; + + GtkWidget *lbl_qmax = gtk_label_new(_("qmax: ")); + gtk_misc_set_alignment (GTK_MISC (lbl_qmax), 1, 0.5); + gtk_grid_attach (GTK_GRID(table), lbl_qmax, 0, line, 1 ,1); + gtk_widget_show (lbl_qmax); + + GtkWidget *qmax = gtk_spin_button_new_with_range(1,60,1); + gtk_editable_set_editable(GTK_EDITABLE(qmax),TRUE); + gtk_spin_button_set_value (GTK_SPIN_BUTTON(qmax), defaults->qmax); + + gtk_grid_attach (GTK_GRID(table), qmax, 1, line, 1, 1); + gtk_widget_show (qmax); + line++; + + GtkWidget *lbl_qmin = gtk_label_new(_("qmin: ")); + gtk_misc_set_alignment (GTK_MISC (lbl_qmin), 1, 0.5); + gtk_grid_attach (GTK_GRID(table), lbl_qmin, 0, line, 1, 1); + gtk_widget_show (lbl_qmin); + + GtkWidget *qmin = gtk_spin_button_new_with_range(1,31,1); + gtk_editable_set_editable(GTK_EDITABLE(qmin),TRUE); + gtk_spin_button_set_value (GTK_SPIN_BUTTON(qmin), defaults->qmin); + + gtk_grid_attach (GTK_GRID(table), qmin, 1, line, 1, 1); + gtk_widget_show (qmin); + line++; + + GtkWidget *lbl_max_qdiff = gtk_label_new(_("max. qdiff: ")); + gtk_misc_set_alignment (GTK_MISC (lbl_max_qdiff), 1, 0.5); + gtk_grid_attach (GTK_GRID(table), lbl_max_qdiff, 0, line, 1, 1); + gtk_widget_show (lbl_max_qdiff); + + GtkWidget *max_qdiff = gtk_spin_button_new_with_range(1,4,1); + gtk_editable_set_editable(GTK_EDITABLE(max_qdiff),TRUE); + gtk_spin_button_set_value (GTK_SPIN_BUTTON(max_qdiff), defaults->max_qdiff); + + gtk_grid_attach (GTK_GRID(table), max_qdiff, 1, line, 1, 1); + gtk_widget_show (max_qdiff); + line++; + + GtkWidget *lbl_dia = gtk_label_new(_("dia size: ")); + gtk_misc_set_alignment (GTK_MISC (lbl_dia), 1, 0.5); + gtk_grid_attach (GTK_GRID(table), lbl_dia, 0, line, 1, 1); + gtk_widget_show (lbl_dia); + + GtkWidget *dia = gtk_spin_button_new_with_range(-1,4,1); + gtk_editable_set_editable(GTK_EDITABLE(dia),TRUE); + gtk_spin_button_set_value (GTK_SPIN_BUTTON(dia), defaults->dia); + + gtk_grid_attach (GTK_GRID(table), dia, 1, line, 1, 1); + gtk_widget_show (dia); + line++; + + GtkWidget *lbl_pre_dia = gtk_label_new(_("pre dia size: ")); + gtk_misc_set_alignment (GTK_MISC (lbl_pre_dia), 1, 0.5); + gtk_grid_attach (GTK_GRID(table), lbl_pre_dia, 0, line, 1, 1); + gtk_widget_show (lbl_pre_dia); + + GtkWidget *pre_dia = gtk_spin_button_new_with_range(1,4,1); + gtk_editable_set_editable(GTK_EDITABLE(pre_dia),TRUE); + gtk_spin_button_set_value (GTK_SPIN_BUTTON(pre_dia), defaults->pre_dia); + + gtk_grid_attach (GTK_GRID(table), pre_dia, 1, line, 1, 1); + gtk_widget_show (pre_dia); + line++; + + GtkWidget *lbl_pre_me = gtk_label_new(_("pre me: ")); + gtk_misc_set_alignment (GTK_MISC (lbl_pre_me), 1, 0.5); + gtk_grid_attach (GTK_GRID(table), lbl_pre_me, 0, line, 1, 1); + gtk_widget_show (lbl_pre_me); + + GtkWidget *pre_me = gtk_spin_button_new_with_range(0,2,1); + gtk_editable_set_editable(GTK_EDITABLE(pre_me),TRUE); + gtk_spin_button_set_value (GTK_SPIN_BUTTON(pre_me), defaults->pre_me); + + gtk_grid_attach (GTK_GRID(table), pre_me, 1, line, 1, 1); + gtk_widget_show (pre_me); + line++; + + GtkWidget *lbl_me_pre_cmp = gtk_label_new(_("pre cmp: ")); + gtk_misc_set_alignment (GTK_MISC (lbl_me_pre_cmp), 1, 0.5); + gtk_grid_attach (GTK_GRID(table), lbl_me_pre_cmp, 0, line, 1, 1); + gtk_widget_show (lbl_me_pre_cmp); + + GtkWidget *me_pre_cmp = gtk_spin_button_new_with_range(0,6,1); + gtk_editable_set_editable(GTK_EDITABLE(me_pre_cmp),TRUE); + gtk_spin_button_set_value (GTK_SPIN_BUTTON(me_pre_cmp), defaults->me_pre_cmp); + + gtk_grid_attach (GTK_GRID(table), me_pre_cmp, 1, line, 1, 1); + gtk_widget_show (me_pre_cmp); + line++; + + GtkWidget *lbl_me_cmp = gtk_label_new(_("cmp: ")); + gtk_misc_set_alignment (GTK_MISC (lbl_me_cmp), 1, 0.5); + gtk_grid_attach (GTK_GRID(table), lbl_me_cmp, 0, line, 1, 1); + gtk_widget_show (lbl_me_cmp); + + GtkWidget *me_cmp = gtk_spin_button_new_with_range(0,6,1); + gtk_editable_set_editable(GTK_EDITABLE(me_cmp),TRUE); + gtk_spin_button_set_value (GTK_SPIN_BUTTON(me_cmp), defaults->me_cmp); + + gtk_grid_attach (GTK_GRID(table), me_cmp, 1, line, 1, 1); + gtk_widget_show (me_cmp); + line++; + + GtkWidget *lbl_me_sub_cmp = gtk_label_new(_("sub cmp: ")); + gtk_misc_set_alignment (GTK_MISC (lbl_me_sub_cmp), 1, 0.5); + gtk_grid_attach (GTK_GRID(table), lbl_me_sub_cmp, 0, line, 1, 1); + gtk_widget_show (lbl_me_sub_cmp); + + GtkWidget *me_sub_cmp = gtk_spin_button_new_with_range(0,6,1); + gtk_editable_set_editable(GTK_EDITABLE(me_sub_cmp),TRUE); + gtk_spin_button_set_value (GTK_SPIN_BUTTON(me_sub_cmp), defaults->me_sub_cmp); + + gtk_grid_attach (GTK_GRID(table), me_sub_cmp, 1, line, 1, 1); + gtk_widget_show (me_sub_cmp); + line++; + + GtkWidget *lbl_last_pred = gtk_label_new(_("last predictor count: ")); + gtk_misc_set_alignment (GTK_MISC (lbl_last_pred), 1, 0.5); + gtk_grid_attach (GTK_GRID(table), lbl_last_pred, 0, line, 1, 1); + gtk_widget_show (lbl_last_pred); + + GtkWidget *last_pred = gtk_spin_button_new_with_range(1,3,1); + gtk_editable_set_editable(GTK_EDITABLE(last_pred),TRUE); + gtk_spin_button_set_value (GTK_SPIN_BUTTON(last_pred), defaults->last_pred); + + gtk_grid_attach (GTK_GRID(table), last_pred, 1, line, 1, 1); + gtk_widget_show (last_pred); + line++; + + GtkWidget *lbl_gop_size = gtk_label_new(_("gop size: ")); + gtk_misc_set_alignment (GTK_MISC (lbl_gop_size), 1, 0.5); + gtk_grid_attach (GTK_GRID(table), lbl_gop_size, 0, line, 1, 1); + gtk_widget_show (lbl_gop_size); + + GtkWidget *gop_size = gtk_spin_button_new_with_range(1,250,1); + gtk_editable_set_editable(GTK_EDITABLE(gop_size),TRUE); + gtk_spin_button_set_value (GTK_SPIN_BUTTON(gop_size), defaults->gop_size); + + gtk_grid_attach (GTK_GRID(table), gop_size, 1, line, 1, 1); + gtk_widget_show (gop_size); + line++; + + GtkWidget *lbl_qcompress = gtk_label_new(_("qcompress: ")); + gtk_misc_set_alignment (GTK_MISC (lbl_qcompress), 1, 0.5); + gtk_grid_attach (GTK_GRID(table), lbl_qcompress, 0, line, 1, 1); + gtk_widget_show (lbl_qcompress); + + GtkWidget *qcompress = gtk_spin_button_new_with_range(0,1,0.1); + gtk_editable_set_editable(GTK_EDITABLE(qcompress),TRUE); + gtk_spin_button_set_value (GTK_SPIN_BUTTON(qcompress), defaults->qcompress); + + gtk_grid_attach (GTK_GRID(table), qcompress, 1, line, 1 ,1); + gtk_widget_show (qcompress); + line++; + + GtkWidget *lbl_qblur = gtk_label_new(_("qblur: ")); + gtk_misc_set_alignment (GTK_MISC (lbl_qblur), 1, 0.5); + gtk_grid_attach (GTK_GRID(table), lbl_qblur, 0, line, 1 ,1); + gtk_widget_show (lbl_qblur); + + GtkWidget *qblur = gtk_spin_button_new_with_range(0,1,0.1); + gtk_editable_set_editable(GTK_EDITABLE(qblur),TRUE); + gtk_spin_button_set_value (GTK_SPIN_BUTTON(qblur), defaults->qblur); + + gtk_grid_attach (GTK_GRID(table), qblur, 1, line, 1 ,1); + gtk_widget_show (qblur); + line++; + + GtkWidget *lbl_subq = gtk_label_new(_("subq: ")); + gtk_misc_set_alignment (GTK_MISC (lbl_subq), 1, 0.5); + gtk_grid_attach (GTK_GRID(table), lbl_subq, 0, line, 1 ,1); + gtk_widget_show (lbl_subq); + + GtkWidget *subq = gtk_spin_button_new_with_range(0,8,1); + gtk_editable_set_editable(GTK_EDITABLE(subq),TRUE); + gtk_spin_button_set_value (GTK_SPIN_BUTTON(subq), defaults->subq); + + gtk_grid_attach (GTK_GRID(table), subq, 1, line, 1 ,1); + gtk_widget_show (subq); + line++; + + GtkWidget *lbl_framerefs = gtk_label_new(_("framerefs: ")); + gtk_misc_set_alignment (GTK_MISC (lbl_framerefs), 1, 0.5); + gtk_grid_attach (GTK_GRID(table), lbl_framerefs, 0, line, 1 ,1); + gtk_widget_show (lbl_framerefs); + + GtkWidget *framerefs = gtk_spin_button_new_with_range(0,12,1); + gtk_editable_set_editable(GTK_EDITABLE(framerefs),TRUE); + gtk_spin_button_set_value (GTK_SPIN_BUTTON(framerefs), defaults->framerefs); + + gtk_grid_attach (GTK_GRID(table), framerefs, 1, line, 1 ,1); + gtk_widget_show (framerefs); + line++; + + GtkWidget *lbl_me_method = gtk_label_new(_("me method: ")); + gtk_misc_set_alignment (GTK_MISC (lbl_me_method), 1, 0.5); + gtk_grid_attach (GTK_GRID(table), lbl_me_method, 0, line, 1 ,1); + gtk_widget_show (lbl_me_method); + + GtkWidget *me_method = gtk_spin_button_new_with_range(1,10,1); + gtk_editable_set_editable(GTK_EDITABLE(me_method),TRUE); + gtk_spin_button_set_value (GTK_SPIN_BUTTON(me_method), defaults->me_method); + + gtk_grid_attach (GTK_GRID(table), me_method, 1, line, 1 ,1); + gtk_widget_show (me_method); + line++; + + GtkWidget *lbl_mb_decision = gtk_label_new(_("mb decision: ")); + gtk_misc_set_alignment (GTK_MISC (lbl_mb_decision), 1, 0.5); + gtk_grid_attach (GTK_GRID(table), lbl_mb_decision, 0, line, 1 ,1); + gtk_widget_show (lbl_mb_decision); + + GtkWidget *mb_decision = gtk_spin_button_new_with_range(0,2,1); + gtk_editable_set_editable(GTK_EDITABLE(mb_decision),TRUE); + gtk_spin_button_set_value (GTK_SPIN_BUTTON(mb_decision), defaults->mb_decision); + + gtk_grid_attach (GTK_GRID(table), mb_decision, 1, line, 1 ,1); + gtk_widget_show (mb_decision); + line++; + + GtkWidget *lbl_max_b_frames = gtk_label_new(_("max B frames: ")); + gtk_misc_set_alignment (GTK_MISC (lbl_max_b_frames), 1, 0.5); + gtk_grid_attach (GTK_GRID(table), lbl_max_b_frames, 0, line, 1 ,1); + gtk_widget_show (lbl_max_b_frames); + + GtkWidget *max_b_frames = gtk_spin_button_new_with_range(0,4,1); + gtk_editable_set_editable(GTK_EDITABLE(max_b_frames),TRUE); + gtk_spin_button_set_value (GTK_SPIN_BUTTON(max_b_frames), defaults->max_b_frames); + + gtk_grid_attach (GTK_GRID(table), max_b_frames, 1, line, 1 ,1); + gtk_widget_show (max_b_frames); + line++; + + GtkWidget *lbl_num_threads = gtk_label_new(_("num threads: ")); + gtk_misc_set_alignment (GTK_MISC (lbl_num_threads), 1, 0.5); + gtk_grid_attach (GTK_GRID(table), lbl_num_threads, 0, line, 1 ,1); + gtk_widget_show (lbl_num_threads); + + GtkWidget *num_threads = gtk_spin_button_new_with_range(0,8,1); + gtk_editable_set_editable(GTK_EDITABLE(num_threads),TRUE); + gtk_spin_button_set_value (GTK_SPIN_BUTTON(num_threads), defaults->num_threads); + + gtk_grid_attach (GTK_GRID(table), num_threads, 1, line, 1 ,1); + gtk_widget_show (num_threads); + line++; + + GtkWidget *content_area = gtk_dialog_get_content_area (GTK_DIALOG (codec_dialog)); + gtk_container_add (GTK_CONTAINER (content_area), table); + gtk_widget_show (table); + + gint result = gtk_dialog_run (GTK_DIALOG (codec_dialog)); + switch (result) + { + case GTK_RESPONSE_ACCEPT: + defaults->fps = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON(enc_fps)); + defaults->monotonic_pts = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(monotonic_pts)); + defaults->bit_rate = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON(bit_rate)); + defaults->qmax = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON(qmax)); + defaults->qmin = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON(qmin)); + defaults->max_qdiff = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON(max_qdiff)); + defaults->dia = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON(dia)); + defaults->pre_dia = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON(pre_dia)); + defaults->pre_me = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON(pre_me)); + defaults->me_pre_cmp = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON(me_pre_cmp)); + defaults->me_cmp = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON(me_cmp)); + defaults->me_sub_cmp = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON(me_sub_cmp)); + defaults->last_pred = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON(last_pred)); + defaults->gop_size = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON(gop_size)); + defaults->qcompress = (float) gtk_spin_button_get_value (GTK_SPIN_BUTTON(qcompress)); + defaults->qblur = (float) gtk_spin_button_get_value (GTK_SPIN_BUTTON(qblur)); + defaults->subq = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON(subq)); + defaults->framerefs = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON(framerefs)); + defaults->me_method = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON(me_method)); + defaults->mb_decision = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON(mb_decision)); + defaults->max_b_frames = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON(max_b_frames)); + defaults->num_threads = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON(num_threads)); + break; + default: + // do nothing since dialog was cancelled + break; + } + gtk_widget_destroy (codec_dialog); +} + +/* + * audio encoder properties clicked event + * args: + * item - widget that generated the event + * data - pointer to user data + * + * asserts: + * none + * + * returns: none + */ +void encoder_audio_properties(GtkMenuItem *item, void *data) +{ + int line = 0; + audio_codec_t *defaults = encoder_get_audio_codec_defaults(get_audio_codec_ind()); + + GtkWidget *codec_dialog = gtk_dialog_new_with_buttons (_("audio codec values"), + GTK_WINDOW(get_main_window_gtk3()), + GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT, + _("_Ok"), GTK_RESPONSE_ACCEPT, + _("_Cancel"), GTK_RESPONSE_REJECT, + NULL); + + GtkWidget *table = gtk_grid_new(); + gtk_grid_set_column_homogeneous (GTK_GRID(table), TRUE); + + /*bit rate*/ + GtkWidget *lbl_bit_rate = gtk_label_new(_("bit rate: ")); + gtk_misc_set_alignment (GTK_MISC (lbl_bit_rate), 1, 0.5); + gtk_grid_attach (GTK_GRID(table), lbl_bit_rate, 0, line, 1, 1); + gtk_widget_show (lbl_bit_rate); + + GtkWidget *bit_rate = gtk_spin_button_new_with_range(48000,384000,8000); + gtk_editable_set_editable(GTK_EDITABLE(bit_rate),TRUE); + gtk_spin_button_set_value (GTK_SPIN_BUTTON(bit_rate), defaults->bit_rate); + + gtk_grid_attach (GTK_GRID(table), bit_rate, 1, line, 1, 1); + gtk_widget_show (bit_rate); + line++; + + /*sample format*/ + GtkWidget *lbl_sample_fmt = gtk_label_new(_("sample format: ")); + gtk_misc_set_alignment (GTK_MISC (lbl_sample_fmt), 1, 0.5); + gtk_grid_attach (GTK_GRID(table), lbl_sample_fmt, 0, line, 1, 1); + gtk_widget_show (lbl_sample_fmt); + + GtkWidget *sample_fmt = gtk_spin_button_new_with_range(0, encoder_get_max_audio_sample_fmt(), 1); + gtk_editable_set_editable(GTK_EDITABLE(sample_fmt),TRUE); + gtk_spin_button_set_value (GTK_SPIN_BUTTON(sample_fmt), defaults->sample_format); + + gtk_grid_attach (GTK_GRID(table), sample_fmt, 1, line, 1, 1); + gtk_widget_show (sample_fmt); + line++; + + GtkWidget *content_area = gtk_dialog_get_content_area (GTK_DIALOG (codec_dialog)); + gtk_container_add (GTK_CONTAINER (content_area), table); + gtk_widget_show (table); + + gint result = gtk_dialog_run (GTK_DIALOG (codec_dialog)); + switch (result) + { + case GTK_RESPONSE_ACCEPT: + defaults->bit_rate = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON(bit_rate)); + defaults->sample_format = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON(sample_fmt)); + break; + default: + // do nothing since dialog was cancelled + break; + } + gtk_widget_destroy (codec_dialog); +} + +/* + * gtk3 window key pressed event + * args: + * win - pointer to widget (main window) where event ocurred + * event - pointer to GDK key event structure + * data - pointer to user data + * + * asserts: + * data (device) is not NULL + * + * returns: true if we handled the event or false otherwise + */ +gboolean window_key_pressed (GtkWidget *win, GdkEventKey *event, void *data) +{ + v4l2_dev_t *device = (v4l2_dev_t *) data; + + /*assertions*/ + assert(device != NULL); + + /* If we have modifiers, and either Ctrl, Mod1 (Alt), or any + * of Mod3 to Mod5 (Mod2 is num-lock...) are pressed, we + * let Gtk+ handle the key */ + //printf("GUVCVIEW: key pressed (key:%i)\n", event->keyval); + if (event->state != 0 + && ((event->state & GDK_CONTROL_MASK) + || (event->state & GDK_MOD1_MASK) + || (event->state & GDK_MOD3_MASK) + || (event->state & GDK_MOD4_MASK) + || (event->state & GDK_MOD5_MASK))) + return FALSE; + + if(device->has_pantilt_control_id) + { + int id = 0; + int value = 0; + + switch (event->keyval) + { + case GDK_KEY_Down: + case GDK_KEY_KP_Down: + id = V4L2_CID_TILT_RELATIVE; + value = device->tilt_step; + break; + + case GDK_KEY_Up: + case GDK_KEY_KP_Up: + id = V4L2_CID_TILT_RELATIVE; + value = - device->tilt_step; + break; + + case GDK_KEY_Left: + case GDK_KEY_KP_Left: + id = V4L2_CID_PAN_RELATIVE; + value = device->pan_step; + break; + + case GDK_KEY_Right: + case GDK_KEY_KP_Right: + id = V4L2_CID_PAN_RELATIVE; + value = - device->pan_step; + break; + + default: + break; + } + + if(id != 0 && value != 0) + { + v4l2_ctrl_t *control = v4l2core_get_control_by_id(device, id); + + if(control) + { + control->value = value; + + if(v4l2core_set_control_value_by_id(device, id)) + fprintf(stderr, "GUVCVIEW: error setting pan/tilt value\n"); + + return TRUE; + } + } + } + + switch (event->keyval) + { + case GDK_KEY_WebCam: + /* camera button pressed */ + if (get_default_camera_button_action() == DEF_ACTION_IMAGE) + gui_click_image_capture_button_gtk3(); + else + gui_click_video_capture_button_gtk3(); + return TRUE; + + case GDK_KEY_V: + case GDK_KEY_v: + gui_click_video_capture_button_gtk3(); + return TRUE; + + case GDK_KEY_I: + case GDK_KEY_i: + gui_click_image_capture_button_gtk3(); + return TRUE; + + } + + return FALSE; +} + +/* + * device list events timer callback + * args: + * data - pointer to user data + * + * asserts: + * data (device) is not NULL + * + * returns: true if timer is to be reset or false otherwise + */ +gboolean check_device_events(gpointer data) +{ + v4l2_dev_t *device = (v4l2_dev_t *) data; + + /*assertions*/ + assert(device != NULL); + + if(v4l2core_check_device_list_events(device)) + { + /*update device list*/ + g_signal_handlers_block_by_func(GTK_COMBO_BOX_TEXT(get_wgtDevices_gtk3()), + G_CALLBACK (devices_changed), device); + + GtkListStore *store = GTK_LIST_STORE(gtk_combo_box_get_model (GTK_COMBO_BOX(get_wgtDevices_gtk3()))); + gtk_list_store_clear(store); + + v4l2_device_list *device_list = v4l2core_get_device_list(); + int i = 0; + for(i = 0; i < (device_list->num_devices); i++) + { + gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(get_wgtDevices_gtk3()), + device_list->list_devices[i].name); + if(device_list->list_devices[i].current) + gtk_combo_box_set_active(GTK_COMBO_BOX(get_wgtDevices_gtk3()),i); + } + + g_signal_handlers_unblock_by_func(GTK_COMBO_BOX_TEXT(get_wgtDevices_gtk3()), + G_CALLBACK (devices_changed), device); + } + + return (TRUE); +} diff -Nru guvcview-1.7.3/guvcview/gui_gtk3_callbacks.h guvcview-2.0.1+ubuntu1~ppa1/guvcview/gui_gtk3_callbacks.h --- guvcview-1.7.3/guvcview/gui_gtk3_callbacks.h 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/guvcview/gui_gtk3_callbacks.h 2014-10-05 10:41:44.000000000 +0000 @@ -0,0 +1,579 @@ +/*******************************************************************************# +# guvcview http://guvcview.sourceforge.net # +# # +# Paulo Assis # +# Nobuhiro Iwamatsu # +# Add UYVY color support(Macbook iSight) # +# Flemming Frandsen # +# Add VU meter OSD # +# # +# This program is free software; you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation; either version 2 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program; if not, write to the Free Software # +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # +# # +********************************************************************************/ + +#ifndef GUI_GTK3_CALLBACKS_H +#define GUI_GTK3_CALLBACKS_H + +#include +#include +/* support for internationalization - i18n */ +#include + +#include "gviewv4l2core.h" +#include "gviewencoder.h" + +/* + * delete event (close window) + * args: + * widget - pointer to event widget + * event - pointe to event data + * data - pointer to user data + * + * asserts: + * none + * + * returns: error code + */ +int delete_event (GtkWidget *widget, GdkEventConfigure *event, void *data); + +/* + * quit button clicked event + * args: + * widget - pointer to widget that caused the event + * data - pointer to user data + * + * asserts: + * none + * + * returns: none + */ +void quit_button_clicked(GtkWidget *widget, void *data); + +/* + * camera_button_menu toggled event + * args: + * widget - pointer to event widget + * data - pointer to user data + * + * asserts: + * none + * + * returns: none + */ +void camera_button_menu_changed (GtkWidget *item, void *data); + +/* + * control default clicked event + * args: + * widget - pointer to event widget + * data - pointer to user data + * + * asserts: + * none + * + * returns: none + */ +void control_defaults_clicked (GtkWidget *item, void *data); + +/* + * control profile (load/save) clicked event + * args: + * widget - pointer to event widget + * data - pointer to user data + * + * asserts: + * none + * + * returns: none + */ +void controls_profile_clicked (GtkWidget *item, void *data); + +/* + * photo suffix toggled event + * args: + * item - widget that generated the event + * data - pointer to user data + * + * asserts: + * none + * + * returns: none + */ +void photo_sufix_toggled (GtkWidget *item, void *data); + +/* + * video suffix toggled event + * args: + * item - widget that generated the event + * data - pointer to user data + * + * asserts: + * none + * + * returns: none + */ +void video_sufix_toggled (GtkWidget *item, void *data); + +/* + * video codec changed event + * args: + * item - widget that generated the event + * data - pointer to user data + * + * asserts: + * none + * + * returns: none + */ +void video_codec_changed (GtkRadioMenuItem *item, void *data); + +/* + * audio codec changed event + * args: + * item - widget that generated the event + * data - pointer to user data + * + * asserts: + * none + * + * returns: none + */ +void audio_codec_changed (GtkRadioMenuItem *item, void *data); +/* + * photo file clicked event + * args: + * item - pointer to widget that generated the event + * data - pointer to user data + * + * asserts: + * none + * + * returns: none + */ +void photo_file_clicked (GtkWidget *item, void *data); + +/* + * video file clicked event + * args: + * item - pointer to widget that generated the event + * data - pointer to user data + * + * asserts: + * none + * + * returns: none + */ +void video_file_clicked (GtkWidget *item, void *data); + +/* + * capture image button clicked event + * args: + * button - widget that generated the event + * data - pointer to user data + * + * asserts: + * none + * + * returns: none + */ +void capture_image_clicked (GtkButton *button, void *data); + +/* + * capture video button clicked event + * args: + * button - widget that generated the event + * data - pointer to user data + * + * asserts: + * none + * + * returns: none + */ +void capture_video_clicked(GtkToggleButton *button, void *data); + +/* + * pan/tilt step changed + * args: + * spin - spinbutton that generated the event + * data - pointer to user data + * + * asserts: + * none + * + * returns: + * none + */ +void pan_tilt_step_changed (GtkSpinButton *spin, void *data); + +/* + * Pan Tilt button 1 clicked + * args: + * button - button that generated the event + * data - pointer to user data + * + * asserts: + * none + * + * returns: none + */ +void button_PanTilt1_clicked (GtkButton * Button, void *data); + +/* + * Pan Tilt button 2 clicked + * args: + * button - button that generated the event + * data - pointer to user data + * + * asserts: + * none + * + * returns: none + */ +void button_PanTilt2_clicked (GtkButton * Button, void *data); + +/* + * generic button clicked + * args: + * button - button that generated the event + * data - pointer to user data + * + * asserts: + * none + * + * returns: none + */ +void button_clicked (GtkButton * Button, void *data); + +#ifdef V4L2_CTRL_TYPE_STRING +/* + * a string control apply button clicked + * args: + * button - button that generated the event + * data - pointer to user data + * + * asserts: + * control->string is not null + * + * returns: none + */ +void string_button_clicked(GtkButton * Button, void *data); +#endif + +#ifdef V4L2_CTRL_TYPE_INTEGER64 +/* + * a int64 control apply button clicked + * args: + * button - button that generated the event + * data - pointer to user data + * + * asserts: + * none + * + * returns: none + */ +void int64_button_clicked(GtkButton * Button, void *data); +#endif + +#ifdef V4L2_CTRL_TYPE_BITMASK +/* + * a bitmask control apply button clicked + * args: + * button - button that generated the event + * data - pointer to user data + * + * asserts: + * none + * + * returns: none + */ +void bitmask_button_clicked(GtkButton * Button, void *data); +#endif + +/* + * slider changed event + * args: + * range - widget that generated the event + * data - pointer to user data + * + * asserts: + * none + * + * returns: none + */ +void slider_changed (GtkRange * range, void *data); + +/* + * spin changed event + * args: + * spin - widget that generated the event + * data - pointer to user data + * + * asserts: + * none + * + * returns: none + */ +void spin_changed (GtkSpinButton * spin, void *data); + +/* + * combo box chaged event + * args: + * combo - widget that generated the event + * data - pointer to user data + * + * asserts: + * none + * + * returns: none + */ +void combo_changed (GtkComboBox * combo, void *data); + +/* + * bayer pixel order combo box changed event + * args: + * combo - widget that generated the event + * data - pointer to user data + * + * asserts: + * none + * + * returns: none + */ +void bayer_pix_ord_changed (GtkComboBox * combo, void *data); + +/* + * check box changed event + * args: + * toggle - widget that generated the event + * data - pointer to user data + * + * asserts: + * none + * + * returns: none + */ +void check_changed (GtkToggleButton *toggle, void *data); + +/* + * device list box changed event + * args: + * wgtDevices - widget that generated the event + * data - pointer to user data + * + * asserts: + * none + * + * returns: none + */ +void devices_changed (GtkComboBox *wgtDevices, void *data); + +/* + * frame rate list box changed event + * args: + * wgtFrameRate - widget that generated the event + * data - pointer to user data + * + * asserts: + * none + * + * returns: none + */ +void frame_rate_changed (GtkComboBox *wgtFrameRate, void *data); + +/* + * resolution list box changed event + * args: + * wgtResolution - widget that generated the event + * data - pointer to user data + * + * asserts: + * none + * + * returns: none + */ +void resolution_changed (GtkComboBox *wgtResolution, void *data); + +/* + * device pixel format list box changed event + * args: + * wgtInpType - widget that generated the event + * data - pointer to user data + * + * asserts: + * none + * + * returns: none + */ +void format_changed(GtkComboBox *wgtInpType, void *data); + +/* + * render fx filter changed event + * args: + * toggle - widget that generated the event + * data - pointer to user data + * + * asserts: + * none + * + * returns: none + */ +void render_fx_filter_changed(GtkToggleButton *toggle, void *data); + +/* + * audio fx filter changed event + * args: + * toggle - widget that generated the event + * data - pointer to user data + * + * asserts: + * none + * + * returns: none + */ +void audio_fx_filter_changed(GtkToggleButton *toggle, void *data); + +/* + * software autofocus checkbox changed event + * args: + * toggle - widget that generated the event + * data - pointer to user data + * + * asserts: + * none + * + * returns: none + */ +void autofocus_changed (GtkToggleButton * toggle, void *data); + +/* + * software autofocus button clicked event + * args: + * button - widget that generated the event + * data - pointer to user data + * + * asserts: + * none + * + * returns: none + */ +void setfocus_clicked (GtkButton * button, void *data); + +/* + * audio api list box changed event + * args: + * combo - widget that generated the event + * data - pointer to user data + * + * asserts: + * none + * + * returns: none + */ +void audio_api_changed(GtkComboBox *combo, void *data); + +/* + * audio device list box changed event + * args: + * combo - widget that generated the event + * data - pointer to user data + * + * asserts: + * none + * + * returns: none + */ +void audio_device_changed(GtkComboBox *combo, void *data); + +/* + * audio samplerate list box changed event + * args: + * combo - widget that generated the event + * data - pointer to user data + * + * asserts: + * none + * + * returns: none + */ +void audio_samplerate_changed(GtkComboBox *combo, void *data); + +/* + * audio channels list box changed event + * args: + * combo - widget that generated the event + * data - pointer to user data + * + * asserts: + * none + * + * returns: none + */ +void audio_channels_changed(GtkComboBox *combo, void *data); + +/* + * video encoder properties clicked event + * args: + * item - widget that generated the event + * data - pointer to user data + * + * asserts: + * none + * + * returns: none + */ +void encoder_video_properties(GtkMenuItem *item, void *data); + +/* + * audio encoder properties clicked event + * args: + * item - widget that generated the event + * data - pointer to user data + * + * asserts: + * none + * + * returns: none + */ +void encoder_audio_properties(GtkMenuItem *item, void *data); + +/* + * gtk3 window key pressed event + * args: + * win - pointer to widget (main window) where event ocurred + * event - pointer to GDK key event structure + * data - pointer to user data + * + * asserts: + * none + * + * returns: true if we handled the event or false otherwise + */ +gboolean window_key_pressed (GtkWidget *win, GdkEventKey *event, void *data); + + +/***** TIMERS *******/ +/* + * device list events timer callback + * args: + * data - pointer to user data + * + * asserts: + * none + * + * returns: true if timer is to be reset or false otherwise + */ +gboolean check_device_events(gpointer data); + +#endif diff -Nru guvcview-1.7.3/guvcview/gui_gtk3.h guvcview-2.0.1+ubuntu1~ppa1/guvcview/gui_gtk3.h --- guvcview-1.7.3/guvcview/gui_gtk3.h 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/guvcview/gui_gtk3.h 2014-10-05 10:41:44.000000000 +0000 @@ -0,0 +1,369 @@ +/*******************************************************************************# +# guvcview http://guvcview.sourceforge.net # +# # +# Paulo Assis # +# Nobuhiro Iwamatsu # +# Add UYVY color support(Macbook iSight) # +# Flemming Frandsen # +# Add VU meter OSD # +# # +# This program is free software; you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation; either version 2 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program; if not, write to the Free Software # +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # +# # +********************************************************************************/ + +#ifndef GUI_GTK3_H +#define GUI_GTK3_H + +#include +#include +/* support for internationalization - i18n */ +//#include + +#include "gviewv4l2core.h" + +typedef struct _control_widgets_t +{ + int id; /*control id*/ + GtkWidget *label; /*control label widget*/ + GtkWidget *widget; /*control widget 1*/ + GtkWidget *widget2; /*control widget 2*/ +} control_widgets_t; + +typedef struct _audio_widgets_t +{ + GtkWidget *api; /* api control */ + GtkWidget *device; /* device control */ + GtkWidget *channels; /* channels control */ + GtkWidget *samprate; /* samprate control */ +} audio_widgets_t; + +/* + * get the video codec group list + * args: + * none + * + * asserts: + * none + * + * returns: pointer to GSList of video codecs + */ +GSList *get_video_codec_group_list_gtk3(); + +/* + * set the video codec group list + * args: + * list - pointer to GSList + * + * asserts: + * none + * + * returns: none + */ +void set_video_codec_group_list_gtk3(GSList *list); + +/* + * get the audio codec group list + * args: + * none + * + * asserts: + * none + * + * returns: pointer to GSList of audio codecs + */ +GSList *get_audio_codec_group_list_gtk3(); + +/* + * set the audio codec group list + * args: + * list - pointer to GSList + * + * asserts: + * none + * + * returns: none + */ +void set_audio_codec_group_list_gtk3(GSList *list); + +/* + * set webm codecs in codecs list + * args: + * none + * + * asserts: + * none + * + * returns: none + */ +void set_webm_codecs_gtk3(); + +/* + * GUI warning/error dialog + * args: + * device - pointer to device data + * title - dialog title string + * message - error message string + * fatal - flag a fatal error (display device list combo box) + * + * asserts: + * device is not null + * + * returns: none + */ +void gui_error_gtk3(v4l2_dev_t *device, + const char *title, + const char *message, + int fatal); + +/* + * GUI initialization + * args: + * device - pointer to device data we want to attach the gui for + * width - window width + * height - window height + * + * asserts: + * none + * + * returns: error code + */ +int gui_attach_gtk3(v4l2_dev_t *device, int width, int height); + +/* + * run the GUI loop + * args: + * none + * + * asserts: + * none + * + * returns: error code + */ +int gui_run_gtk3(); + +/* + * closes and cleans the GTK3 GUI + * args: + * none + * + * asserts: + * none + * + * returns: none + */ +void gui_close_gtk3(); + +/* + * attach top menu widget + * args: + * device - pointer to device data we want to attach the gui for + * parent - menu parent widget + * + * asserts: + * device is not null + * parent is not null + * + * returns: error code (0 -OK) + */ +int gui_attach_gtk3_menu(v4l2_dev_t *device, GtkWidget *parent); + +/* + * attach v4l2 controls tab widget + * args: + * device - pointer to device data we want to attach the gui for + * parent - tab parent widget + * + * asserts: + * device is not null + * parent is not null + * + * returns: error code (0 -OK) + */ +int gui_attach_gtk3_v4l2ctrls(v4l2_dev_t *device, GtkWidget *parent); + +/* + * attach h264 controls tab widget + * args: + * device - pointer to device data we want to attach the gui for + * parent - tab parent widget + * + * asserts: + * device is not null + * parent is not null + * + * returns: error code (0 -OK) + */ +int gui_attach_gtk3_h264ctrls (v4l2_dev_t *device, GtkWidget *parent); + +/* + * attach v4l2 video controls tab widget + * args: + * device - pointer to device data we want to attach the gui for + * parent - tab parent widget + * + * asserts: + * device is not null + * parent is not null + * + * returns: error code (0 -OK) + */ +int gui_attach_gtk3_videoctrls(v4l2_dev_t *device, GtkWidget *parent); + +/* + * attach audio controls tab widget + * args: + * parent - tab parent widget + * + * asserts: + * parent is not null + * + * returns: error code (0 -OK) + */ +int gui_attach_gtk3_audioctrls(GtkWidget *parent); + +/* + * get gtk control widgets for v4l2 control id + * args: + * id - v4l2 control id + * + * asserts: + * none + * + * returns: pointer to control_widgets_t or null + */ +control_widgets_t *gui_gtk3_get_widgets_by_id(int id); + +/* + * update the controls widgets state + * args: + * device - pointer to device data + * + * asserts: + * device is not null + * + * returns: none + */ +void gui_gtk3_update_controls_state(v4l2_dev_t *device); + +/* + * clean gtk3 control widgets list + * args: + * none + * + * asserts: + * none + * + * returns: none + */ +void gui_clean_gtk3_control_widgets_list(); + +/* + * adds a message to the status bar + * args: + * message - message string + * + * asserts: + * none + * + * returns: none + */ +void gui_status_message_gtk3(const char *message); + +/* + * click image capture button + * args: + * none + * + * asserts: + * none + * + * returns: none + */ +void gui_click_image_capture_button_gtk3(); + +/* + * sets the Image capture button label + * args: + * label: Image capture button label + * + * asserts: + * none + * + * returns: none + */ +void gui_set_image_capture_button_label_gtk3(const char *label); + +/* + * click video capture button + * args: + * none + * + * asserts: + * none + * + * returns: none + */ +void gui_click_video_capture_button_gtk3(); + +/* + * sets the Video capture button status (on|off) + * args: + * flag: video capture button status + * + * asserts: + * none + * + * returns: none + */ +void gui_set_video_capture_button_status_gtk3(int flag); + +/* + * get the main window widget + * args: + * none + * + * asserts: + * none + * + * returns: pointer to main window (GtkWidget) + */ +GtkWidget *get_main_window_gtk3(); + +/* + * get the device list widget + * args: + * none + * + * asserts: + * none + * + * returns: pointer to the device list widget (GtkWidget) + */ +GtkWidget *get_wgtDevices_gtk3(); + +/* + * set the device list widget + * args: + * widget - pointer to the device list widget + * + * asserts: + * none + * + * returns: void + */ +void set_wgtDevices_gtk3(GtkWidget *widget); + + +#endif diff -Nru guvcview-1.7.3/guvcview/gui_gtk3_h264ctrls.c guvcview-2.0.1+ubuntu1~ppa1/guvcview/gui_gtk3_h264ctrls.c --- guvcview-1.7.3/guvcview/gui_gtk3_h264ctrls.c 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/guvcview/gui_gtk3_h264ctrls.c 2014-10-05 10:41:44.000000000 +0000 @@ -0,0 +1,1404 @@ +/*******************************************************************************# +# guvcview http://guvcview.sourceforge.net # +# # +# Paulo Assis # +# Nobuhiro Iwamatsu # +# Add UYVY color support(Macbook iSight) # +# Flemming Frandsen # +# Add VU meter OSD # +# # +# This program is free software; you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation; either version 2 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program; if not, write to the Free Software # +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # +# # +********************************************************************************/ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +/* support for internationalization - i18n */ +#include +#include + +#include "gui_gtk3.h" +#include "gui_gtk3_callbacks.h" +#include "gui.h" +/*add this last to avoid redefining _() and N_()*/ +#include "gview.h" +#include "gviewrender.h" +#include "video_capture.h" + + +extern int debug_level; +extern int is_control_panel; + +/* + * H264 control widgets + */ +GtkWidget *RateControlMode = NULL; +GtkWidget *RateControlMode_cbr_flag = NULL; +GtkWidget *TemporalScaleMode = NULL; +GtkWidget *SpatialScaleMode = NULL; +GtkWidget *FrameInterval = NULL; +GtkWidget *BitRate = NULL; +GtkWidget *Hints_res = NULL; +GtkWidget *Hints_prof = NULL; +GtkWidget *Hints_ratecontrol = NULL; +GtkWidget *Hints_usage = NULL; +GtkWidget *Hints_slicemode = NULL; +GtkWidget *Hints_sliceunit = NULL; +GtkWidget *Hints_view = NULL; +GtkWidget *Hints_temporal = NULL; +GtkWidget *Hints_snr = NULL; +GtkWidget *Hints_spatial = NULL; +GtkWidget *Hints_spatiallayer = NULL; +GtkWidget *Hints_frameinterval = NULL; +GtkWidget *Hints_leakybucket = NULL; +GtkWidget *Hints_bitrate = NULL; +GtkWidget *Hints_cabac = NULL; +GtkWidget *Hints_iframe = NULL; +GtkWidget *SliceMode = NULL; +GtkWidget *SliceUnits = NULL; +GtkWidget *Profile = NULL; +GtkWidget *Profile_flags = NULL; +GtkWidget *IFramePeriod = NULL; +GtkWidget *EstimatedVideoDelay = NULL; +GtkWidget *EstimatedMaxConfigDelay = NULL; +GtkWidget *UsageType = NULL; +GtkWidget *SNRScaleMode = NULL; +GtkWidget *StreamFormat = NULL; +GtkWidget *EntropyCABAC = NULL; +GtkWidget *Timestamp = NULL; +GtkWidget *NumOfReorderFrames = NULL; +GtkWidget *PreviewFlipped = NULL; +GtkWidget *View = NULL; +GtkWidget *StreamID = NULL; +GtkWidget *SpatialLayerRatio = NULL; +GtkWidget *LeakyBucketSize = NULL; + +/*disabled*/ +GtkWidget *StreamMuxOption = NULL; +GtkWidget *StreamMuxOption_aux = NULL; +GtkWidget *StreamMuxOption_mjpgcontainer = NULL; + +/* + * update controls from commit probe data + * args: + * device - pointer to device data + * + * asserts: + * none + * + * returns: none + */ +static void update_h264_controls(v4l2_dev_t *device) +{ + uvcx_video_config_probe_commit_t *config_probe_req = &(device->h264_config_probe_req); + //dwFrameInterval + //gtk_spin_button_set_value(GTK_SPIN_BUTTON(h264_controls->FrameInterval), config_probe_req->dwFrameInterval); + //dwBitRate + gtk_spin_button_set_value(GTK_SPIN_BUTTON(BitRate), config_probe_req->dwBitRate); + //bmHints + uint16_t hints = config_probe_req->bmHints; + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(Hints_res), ((hints & 0x0001) != 0)); + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(Hints_prof), ((hints & 0x0002) != 0)); + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(Hints_ratecontrol), ((hints & 0x0004) != 0)); + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(Hints_usage), ((hints & 0x0008) != 0)); + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(Hints_slicemode), ((hints & 0x0010) != 0)); + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(Hints_sliceunit), ((hints & 0x0020) != 0)); + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(Hints_view), ((hints & 0x0040) != 0)); + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(Hints_temporal), ((hints & 0x0080) != 0)); + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(Hints_snr), ((hints & 0x0100) != 0)); + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(Hints_spatial), ((hints & 0x0200) != 0)); + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(Hints_spatiallayer), ((hints & 0x0400) != 0)); + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(Hints_frameinterval), ((hints & 0x0800) != 0)); + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(Hints_leakybucket), ((hints & 0x1000) != 0)); + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(Hints_bitrate), ((hints & 0x2000) != 0)); + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(Hints_cabac), ((hints & 0x4000) != 0)); + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(Hints_iframe), ((hints & 0x8000) != 0)); + //wWidth x wHeight + + //wSliceMode + gtk_combo_box_set_active(GTK_COMBO_BOX(SliceMode), config_probe_req->wSliceMode); + //wSliceUnits + gtk_spin_button_set_value(GTK_SPIN_BUTTON(SliceUnits), config_probe_req->wSliceUnits); + //wProfile + uint16_t profile = config_probe_req->wProfile & 0xFF00; + int prof_index = 0; + switch(profile) + { + case 0x4200: + prof_index = 0; + break; + case 0x4D00: + prof_index = 1; + break; + case 0x6400: + prof_index = 2; + break; + case 0x5300: + prof_index = 3; + break; + case 0x5600: + prof_index = 4; + break; + case 0x7600: + prof_index = 5; + break; + case 0x8000: + prof_index = 6; + break; + default: + fprintf(stderr, "GUVCVIEW (H264 probe) unknown profile mode 0x%X\n", profile); + break; + + } + gtk_combo_box_set_active(GTK_COMBO_BOX(Profile), prof_index); + gtk_spin_button_set_value(GTK_SPIN_BUTTON(Profile_flags), config_probe_req->wProfile & 0x00FF); + //wIFramePeriod + gtk_spin_button_set_value(GTK_SPIN_BUTTON(IFramePeriod), config_probe_req->wIFramePeriod); + //wEstimatedVideoDelay + gtk_spin_button_set_value(GTK_SPIN_BUTTON(EstimatedVideoDelay), config_probe_req->wEstimatedVideoDelay); + //wEstimatedMaxConfigDelay + gtk_spin_button_set_value(GTK_SPIN_BUTTON(EstimatedMaxConfigDelay), config_probe_req->wEstimatedMaxConfigDelay); + //bUsageType + int usage_type_ind = (config_probe_req->bUsageType & 0x0F) - 1; + if(usage_type_ind < 0) + usage_type_ind = 0; + gtk_combo_box_set_active(GTK_COMBO_BOX(UsageType), usage_type_ind); + //bRateControlMode + gtk_combo_box_set_active(GTK_COMBO_BOX(RateControlMode), (config_probe_req->bRateControlMode & 0x03) - 1); + gtk_spin_button_set_value(GTK_SPIN_BUTTON(RateControlMode_cbr_flag), config_probe_req->bRateControlMode & 0x0000001C); + //bTemporalScaleMode + gtk_spin_button_set_value(GTK_SPIN_BUTTON(TemporalScaleMode), config_probe_req->bTemporalScaleMode); + //bSpatialScaleMode + gtk_spin_button_set_value(GTK_SPIN_BUTTON(SpatialScaleMode), config_probe_req->bSpatialScaleMode); + //bSNRScaleMode + uint8_t snrscalemode = config_probe_req->bSNRScaleMode & 0x0F; + int snrscalemode_index = 0; + switch(snrscalemode) + { + case 0: + snrscalemode_index = 0; + break; + case 2: + case 3: + case 4: + case 5: + case 6: + snrscalemode_index = snrscalemode - 1; + break; + } + gtk_combo_box_set_active(GTK_COMBO_BOX(SNRScaleMode), snrscalemode_index); + //bStreamMuxOption + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(StreamMuxOption),((config_probe_req->bStreamMuxOption & 0x01) != 0)); + uint8_t streammux = config_probe_req->bStreamMuxOption & 0x0E; + int streammux_index = 0; + switch(streammux) + { + case 2: + streammux_index = 0; + break; + case 4: + streammux_index = 1; + break; + case 8: + streammux_index = 2; + break; + } + gtk_combo_box_set_active (GTK_COMBO_BOX(StreamMuxOption_aux), streammux_index); + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(StreamMuxOption_mjpgcontainer),((config_probe_req->bStreamMuxOption & 0x40) != 0)); + //bStreamFormat + gtk_combo_box_set_active (GTK_COMBO_BOX(StreamFormat), config_probe_req->bStreamMuxOption & 0x01); + //bEntropyCABAC + gtk_combo_box_set_active (GTK_COMBO_BOX(EntropyCABAC), config_probe_req->bEntropyCABAC & 0x01); + //bTimestamp + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(Timestamp), (config_probe_req->bTimestamp & 0x01) != 0); + //bNumOfReorderFrames + gtk_spin_button_set_value (GTK_SPIN_BUTTON(NumOfReorderFrames), config_probe_req->bNumOfReorderFrames); + //bPreviewFlipped + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(PreviewFlipped), (config_probe_req->bPreviewFlipped & 0x01) != 0); + //bView + gtk_spin_button_set_value (GTK_SPIN_BUTTON(View), config_probe_req->bView); + //bStreamID + gtk_spin_button_set_value (GTK_SPIN_BUTTON(StreamID), config_probe_req->bStreamID); + //bSpatialLayerRatio + int SLRatio = config_probe_req->bSpatialLayerRatio & 0x000000FF; + gdouble val = (gdouble) ((SLRatio & 0x000000F0)>>4) + (gdouble)((SLRatio & 0x0000000F)/16); + gtk_spin_button_set_value (GTK_SPIN_BUTTON(SpatialLayerRatio), val); + //wLeakyBucketSize + gtk_spin_button_set_value (GTK_SPIN_BUTTON(LeakyBucketSize), config_probe_req->wLeakyBucketSize); +} + +/* + * fill commit probe data from control values + * args: + * device - pointer to device data + * + * asserts: + * none + * + * returns: none + */ +static void fill_video_config_probe (v4l2_dev_t *device) +{ + + uvcx_video_config_probe_commit_t *config_probe_req = &(device->h264_config_probe_req); + + //dwFrameInterval + uint32_t frame_interval = (device->fps_num * 1000000000LL / device->fps_denom)/100; + config_probe_req->dwFrameInterval = frame_interval;//(uint32_t) gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(h264_controls->FrameInterval)); + //dwBitRate + config_probe_req->dwBitRate = (uint32_t) gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(BitRate)); + //bmHints + uint16_t hints = 0x0000; + hints |= gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(Hints_res)) ? 0x0001 : 0; + hints |= gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(Hints_prof)) ? 0x0002 : 0; + hints |= gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(Hints_ratecontrol)) ? 0x0004: 0; + hints |= gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(Hints_usage)) ? 0x0008: 0; + hints |= gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(Hints_slicemode)) ? 0x0010: 0; + hints |= gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(Hints_sliceunit)) ? 0x0020: 0; + hints |= gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(Hints_view)) ? 0x0040: 0; + hints |= gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(Hints_temporal)) ? 0x0080: 0; + hints |= gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(Hints_snr)) ? 0x0100: 0; + hints |= gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(Hints_spatial)) ? 0x0200: 0; + hints |= gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(Hints_spatiallayer)) ? 0x0400: 0; + hints |= gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(Hints_frameinterval)) ? 0x0800: 0; + hints |= gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(Hints_leakybucket)) ? 0x1000: 0; + hints |= gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(Hints_bitrate)) ? 0x2000: 0; + hints |= gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(Hints_cabac)) ? 0x4000: 0; + hints |= gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(Hints_iframe)) ? 0x8000: 0; + config_probe_req->bmHints = hints; + //wWidth x wHeight + config_probe_req->wWidth = (uint16_t) device->format.fmt.pix.width; + config_probe_req->wHeight = (uint16_t) device->format.fmt.pix.height; + //wSliceMode + config_probe_req->wSliceMode = (uint16_t) gtk_combo_box_get_active(GTK_COMBO_BOX(SliceMode)); + //wSliceUnits + config_probe_req->wSliceUnits = (uint16_t) gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(SliceUnits)); + //wProfile + int profile_index = gtk_combo_box_get_active(GTK_COMBO_BOX(Profile)); + uint16_t profile = 0x4200; + switch(profile_index) + { + case 0: + profile = 0x4200; + break; + case 1: + profile = 0x4D00; + break; + case 2: + profile = 0x6400; + break; + case 3: + profile = 0x5300; + break; + case 4: + profile = 0x5600; + break; + case 5: + profile = 0x7600; + break; + case 6: + profile = 0x8000; + break; + default: + fprintf(stderr, "GUVCVIEW: (H264 probe) unknown profile\n"); + break; + } + + profile |= (uint16_t) (gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(Profile_flags)) & 0x000000FF); + config_probe_req->wProfile = profile; + //wIFramePeriod + config_probe_req->wIFramePeriod = (uint16_t) gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(IFramePeriod)); + //wEstimatedVideoDelay + config_probe_req->wEstimatedVideoDelay = (uint16_t) gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(EstimatedVideoDelay)); + //wEstimatedMaxConfigDelay + config_probe_req->wEstimatedMaxConfigDelay = (uint16_t) gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(EstimatedMaxConfigDelay)); + //bUsageType + config_probe_req->bUsageType = (uint8_t) (gtk_combo_box_get_active(GTK_COMBO_BOX(UsageType)) + 1); + //bRateControlMode + config_probe_req->bRateControlMode = (uint8_t) (gtk_combo_box_get_active(GTK_COMBO_BOX(RateControlMode)) + 1); + config_probe_req->bRateControlMode |= (uint8_t) (gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(RateControlMode_cbr_flag)) & 0x0000001C); + //bTemporalScaleMode + config_probe_req->bTemporalScaleMode = (uint8_t) gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(TemporalScaleMode)); + //bSpatialScaleMode + config_probe_req->bSpatialScaleMode = (uint8_t) gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(SpatialScaleMode)); + //bSNRScaleMode + int snrscalemode_index = gtk_combo_box_get_active(GTK_COMBO_BOX(SNRScaleMode)); + config_probe_req->bSNRScaleMode = 0; + switch(snrscalemode_index) + { + case 1: + case 2: + case 3: + case 4: + case 5: + config_probe_req->bSNRScaleMode = snrscalemode_index + 1; + break; + } + //bStreamMuxOption + /* + uint8_t streammux = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(StreamMuxOption)) ? 0x01: 0; + + int streammux_index = gtk_combo_box_get_active(GTK_COMBO_BOX(StreamMuxOption_aux)); + switch(streammux_index) + { + case 0: + streammux |= 0x02; + break; + case 1: + streammux |= 0x04; + break; + case 2: + streammux |= 0x08; + break; + } + streammux |= gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(StreamMuxOption_mjpgcontainer)) ? 0x40 : 0x00; + + config_probe_req->bStreamMuxOption = streammux; + //bStreamFormat + config_probe_req->bStreamMuxOption = (uint8_t) gtk_combo_box_get_active(GTK_COMBO_BOX(StreamFormat)) & 0x01; + */ + + //bEntropyCABAC + config_probe_req->bEntropyCABAC = (uint8_t) gtk_combo_box_get_active(GTK_COMBO_BOX(EntropyCABAC)) & 0x01; + //bTimestamp + config_probe_req->bTimestamp = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(Timestamp)) ? 0x01 : 0x00; + //bNumOfReorderFrames + config_probe_req->bNumOfReorderFrames = (uint8_t) gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(NumOfReorderFrames)); + //bPreviewFlipped + config_probe_req->bPreviewFlipped = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(PreviewFlipped)) ? 0x01 : 0x00; + //bView + config_probe_req->bView = (uint8_t) gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(View)); + //bStreamID + config_probe_req->bStreamID = (uint8_t) gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(StreamID)); + //bSpatialLayerRatio + gdouble spatialratio = gtk_spin_button_get_value(GTK_SPIN_BUTTON(SpatialLayerRatio)); + uint8_t high_nibble = floor(spatialratio); + uint8_t lower_nibble = floor((spatialratio - high_nibble) * 16); + config_probe_req->bSpatialLayerRatio = (high_nibble << 4) + lower_nibble; + //wLeakyBucketSize + config_probe_req->wLeakyBucketSize = (uint16_t) gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(LeakyBucketSize)); +} +/* + * h264 video rate control mode callback + * args: + * combo - widget that caused the event + * data - user data + * + * asserts: + * none + * + * returns: none + */ +void h264_rate_control_mode_changed(GtkComboBox *combo, void *data) +{ + v4l2_dev_t *device = (v4l2_dev_t *) data; + + uint8_t rate_mode = (uint8_t) (gtk_combo_box_get_active (combo) + 1); + + rate_mode |= (uint8_t) (gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(RateControlMode_cbr_flag)) & 0x0000001C); + + v4l2core_set_h264_video_rate_control_mode(device, rate_mode); + + rate_mode = v4l2core_get_h264_video_rate_control_mode(device, UVC_GET_CUR); + + int ratecontrolmode_index = rate_mode - 1; // from 0x01 to 0x03 + if(ratecontrolmode_index < 0) + ratecontrolmode_index = 0; + + g_signal_handlers_block_by_func(combo, G_CALLBACK (h264_rate_control_mode_changed), data); + gtk_combo_box_set_active(GTK_COMBO_BOX(RateControlMode), ratecontrolmode_index); + g_signal_handlers_unblock_by_func(combo, G_CALLBACK (h264_rate_control_mode_changed), data); +} + +/* + * h264 temporal scale mode callback + * args: + * spin - widget that caused the event + * data - user data + * + * asserts: + * none + * + * returns: none + */ +void h264_TemporalScaleMode_changed(GtkSpinButton *spin, void *data) +{ + v4l2_dev_t *device = (v4l2_dev_t *) data; + + uint8_t scale_mode = (uint8_t) gtk_spin_button_get_value_as_int(spin); + + v4l2core_set_h264_temporal_scale_mode(device, scale_mode); + + scale_mode = v4l2core_get_h264_temporal_scale_mode(device, UVC_GET_CUR) & 0x07; + + g_signal_handlers_block_by_func (spin, G_CALLBACK (h264_TemporalScaleMode_changed), data); + gtk_spin_button_set_value (spin, scale_mode); + g_signal_handlers_unblock_by_func (spin, G_CALLBACK (h264_TemporalScaleMode_changed), data); +} + +/* + * h264 spatial scale mode callback + * args: + * spin - widget that caused the event + * data - user data + * + * asserts: + * none + * + * returns: none + */ +void h264_SpatialScaleMode_changed(GtkSpinButton *spin, void *data) +{ + v4l2_dev_t *device = (v4l2_dev_t *) data; + + uint8_t scale_mode = (uint8_t) gtk_spin_button_get_value_as_int(spin); + + v4l2core_set_h264_spatial_scale_mode(device, scale_mode); + + scale_mode = v4l2core_get_h264_spatial_scale_mode(device, UVC_GET_CUR) & 0x07; + + g_signal_handlers_block_by_func (spin, G_CALLBACK (h264_SpatialScaleMode_changed), data); + gtk_spin_button_set_value (spin, scale_mode); + g_signal_handlers_unblock_by_func (spin, G_CALLBACK (h264_SpatialScaleMode_changed), data); +} + +/* + * h264 Frame Interval callback + * args: + * spin - widget that caused the event + * data - user data + * + * asserts: + * none + * + * returns: none + */ +void h264_FrameInterval_changed(GtkSpinButton *spin, void *data) +{ + v4l2_dev_t *device = (v4l2_dev_t *) data; + + uint32_t framerate = (uint32_t) gtk_spin_button_get_value_as_int(spin); + + v4l2core_set_h264_frame_rate_config(device, framerate); + + framerate = v4l2core_get_h264_frame_rate_config(device); + + g_signal_handlers_block_by_func (spin, G_CALLBACK (h264_FrameInterval_changed), data); + gtk_spin_button_set_value (spin, framerate); + g_signal_handlers_unblock_by_func (spin, G_CALLBACK (h264_FrameInterval_changed), data); +} + +/* + * h264 commit button callback + * args: + * button - widget that caused the event + * data - user data + * + * asserts: + * none + * + * returns: none + */ +void h264_commit_button_clicked(GtkButton *button, void *data) +{ + v4l2_dev_t *device = (v4l2_dev_t *) data; + + + fill_video_config_probe(device); + + device->h264_no_probe_default = 1; + + request_format_update(); + + int counter = 0; + + /*wait for device->h264_no_probe = 0*/ + struct timespec req = { + .tv_sec = 0, + .tv_nsec = 50000000};/*nanosec*/ + + while(device->h264_no_probe_default > 0 && counter < 10) + { + nanosleep(&req, NULL); + counter++; + } + + /*make sure we reset this flag, although the core probably handle it already*/ + device->h264_no_probe_default = 0; + + update_h264_controls(data); +} + +/* + * h264 reset button callback + * args: + * button - widget that caused the event + * data - user data + * + * asserts: + * none + * + * returns: none + */ +void h264_reset_button_clicked(GtkButton *button, void *data) +{ + v4l2_dev_t *device = (v4l2_dev_t *) data; + + v4l2core_reset_h264_encoder(device); +} + +/* + * attach h264 controls tab widget + * args: + * device - pointer to device data we want to attach the gui for + * parent - tab parent widget + * + * asserts: + * device is not null + * parent is not null + * + * returns: error code (0 -OK) + */ +int gui_attach_gtk3_h264ctrls (v4l2_dev_t *device, GtkWidget *parent) +{ + /*assertions*/ + assert(device != NULL); + assert(parent != NULL); + + if(debug_level > 1) + printf("GUVCVIEW: attaching video controls\n"); + + + //get current values + v4l2core_probe_h264_config_probe_req(device, UVC_GET_CUR, NULL); + //print_probe_commit_data(&device->h264_config_probe_req); + + //get Max values + uvcx_video_config_probe_commit_t config_probe_max; + v4l2core_probe_h264_config_probe_req(device, UVC_GET_MAX, &config_probe_max); + + //get Min values + uvcx_video_config_probe_commit_t config_probe_min; + v4l2core_probe_h264_config_probe_req(device, UVC_GET_MIN, &config_probe_min); + + + GtkWidget *h264_controls_grid = gtk_grid_new(); + gtk_widget_show (h264_controls_grid); + + gtk_grid_set_column_homogeneous (GTK_GRID(h264_controls_grid), FALSE); + gtk_widget_set_hexpand (h264_controls_grid, TRUE); + gtk_widget_set_halign (h264_controls_grid, GTK_ALIGN_FILL); + + gtk_grid_set_row_spacing (GTK_GRID(h264_controls_grid), 4); + gtk_grid_set_column_spacing (GTK_GRID (h264_controls_grid), 4); + gtk_container_set_border_width (GTK_CONTAINER (h264_controls_grid), 2); + + + int line = 0; + + //streaming controls + + //bRateControlMode + line++; + GtkWidget* label_RateControlMode = gtk_label_new(_("Rate Control Mode:")); + gtk_misc_set_alignment (GTK_MISC (label_RateControlMode), 1, 0.5); + gtk_grid_attach (GTK_GRID(h264_controls_grid), label_RateControlMode, 0, line, 1, 1); + gtk_widget_show (label_RateControlMode); + + uint8_t min_ratecontrolmode = v4l2core_get_h264_video_rate_control_mode(device, UVC_GET_MIN) & 0x03; + uint8_t max_ratecontrolmode = v4l2core_get_h264_video_rate_control_mode(device, UVC_GET_MAX) & 0x03; + + RateControlMode = gtk_combo_box_text_new(); + if(max_ratecontrolmode >= 1 && min_ratecontrolmode < 2) + gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT(RateControlMode), + _("CBR")); + if(max_ratecontrolmode >= 2 && min_ratecontrolmode < 3) + gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT(RateControlMode), + _("VBR")); + + if(max_ratecontrolmode >= 3 && min_ratecontrolmode < 4) + gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT(RateControlMode), + _("Constant QP")); + + uint8_t cur_ratecontrolmode = v4l2core_get_h264_video_rate_control_mode(device, UVC_GET_CUR) & 0x03; + int ratecontrolmode_index = cur_ratecontrolmode - 1; // from 0x01 to 0x03 + if(ratecontrolmode_index < 0) + ratecontrolmode_index = 0; + + gtk_combo_box_set_active(GTK_COMBO_BOX(RateControlMode), ratecontrolmode_index); + + //connect signal + g_signal_connect (GTK_COMBO_BOX_TEXT(RateControlMode), "changed", + G_CALLBACK (h264_rate_control_mode_changed), device); + + gtk_grid_attach (GTK_GRID(h264_controls_grid), RateControlMode, 1, line, 1 ,1); + gtk_widget_show (RateControlMode); + + //bRateControlMode flags (Bits 4-8) + line++; + GtkWidget* label_RateControlMode_cbr_flag = gtk_label_new(_("Rate Control Mode flags:")); + gtk_misc_set_alignment (GTK_MISC (label_RateControlMode_cbr_flag), 1, 0.5); + gtk_grid_attach (GTK_GRID(h264_controls_grid), label_RateControlMode_cbr_flag, 0, line, 1, 1); + gtk_widget_show (label_RateControlMode_cbr_flag); + + uint8_t cur_vrcflags = v4l2core_get_h264_video_rate_control_mode(device, UVC_GET_CUR) & 0x1C; + uint8_t max_vrcflags = v4l2core_get_h264_video_rate_control_mode(device, UVC_GET_MAX) & 0x1C; + uint8_t min_vrcflags = v4l2core_get_h264_video_rate_control_mode(device, UVC_GET_MIN) & 0x1C; + + GtkAdjustment *adjustment7 = gtk_adjustment_new ( + cur_vrcflags, + min_vrcflags, + max_vrcflags, + 1, + 10, + 0); + + RateControlMode_cbr_flag = gtk_spin_button_new(adjustment7, 1, 0); + gtk_editable_set_editable(GTK_EDITABLE(RateControlMode_cbr_flag), TRUE); + + gtk_grid_attach (GTK_GRID(h264_controls_grid), RateControlMode_cbr_flag, 1, line, 1 ,1); + gtk_widget_show (RateControlMode_cbr_flag); + + //bTemporalScaleMode + line++; + GtkWidget* label_TemporalScaleMode = gtk_label_new(_("Temporal Scale Mode:")); + gtk_misc_set_alignment (GTK_MISC (label_TemporalScaleMode), 1, 0.5); + gtk_grid_attach (GTK_GRID(h264_controls_grid), label_TemporalScaleMode, 0, line, 1, 1); + gtk_widget_show (label_TemporalScaleMode); + + uint8_t cur_tsmflags = device->h264_config_probe_req.bTemporalScaleMode & 0x07; + uint8_t max_tsmflags = config_probe_max.bTemporalScaleMode & 0x07; + uint8_t min_tsmflags = config_probe_min.bTemporalScaleMode & 0x07; + + GtkAdjustment *adjustment8 = gtk_adjustment_new ( + cur_tsmflags, + min_tsmflags, + max_tsmflags, + 1, + 10, + 0); + + TemporalScaleMode = gtk_spin_button_new(adjustment8, 1, 0); + gtk_editable_set_editable(GTK_EDITABLE(TemporalScaleMode), TRUE); + + g_signal_connect(GTK_SPIN_BUTTON(TemporalScaleMode),"value-changed", + G_CALLBACK (h264_TemporalScaleMode_changed), device); + + gtk_grid_attach (GTK_GRID(h264_controls_grid), TemporalScaleMode, 1, line, 1 ,1); + gtk_widget_show (TemporalScaleMode); + + //bSpatialScaleMode + line++; + GtkWidget* label_SpatialScaleMode = gtk_label_new(_("Spatial Scale Mode:")); + gtk_misc_set_alignment (GTK_MISC (label_SpatialScaleMode), 1, 0.5); + gtk_grid_attach (GTK_GRID(h264_controls_grid), label_SpatialScaleMode, 0, line, 1, 1); + gtk_widget_show (label_SpatialScaleMode); + + uint8_t cur_ssmflags = device->h264_config_probe_req.bSpatialScaleMode & 0x0F; + uint8_t max_ssmflags = config_probe_max.bSpatialScaleMode & 0x0F; + uint8_t min_ssmflags = config_probe_min.bSpatialScaleMode & 0x0F; + + GtkAdjustment *adjustment9 = gtk_adjustment_new ( + cur_ssmflags, + min_ssmflags, + max_ssmflags, + 1, + 10, + 0); + + SpatialScaleMode = gtk_spin_button_new(adjustment9, 1, 0); + gtk_editable_set_editable(GTK_EDITABLE(SpatialScaleMode), TRUE); + + g_signal_connect(GTK_SPIN_BUTTON(SpatialScaleMode),"value-changed", + G_CALLBACK (h264_SpatialScaleMode_changed), device); + + gtk_grid_attach (GTK_GRID(h264_controls_grid), SpatialScaleMode, 1, line, 1 ,1); + gtk_widget_show (SpatialScaleMode); + + //dwFrameInterval + if(is_control_panel) //if streaming use fps in video tab to set FrameInterval + { + line++; + GtkWidget* label_FrameInterval = gtk_label_new(_("Frame Interval (100ns units):")); + gtk_misc_set_alignment (GTK_MISC (label_FrameInterval), 1, 0.5); + gtk_grid_attach (GTK_GRID(h264_controls_grid), label_FrameInterval, 0, line, 1, 1); + gtk_widget_show (label_FrameInterval); + + //uint32_t cur_framerate = (global->fps_num * 1000000000LL / global->fps)/100; + uint32_t cur_framerate = v4l2core_get_h264_frame_rate_config(device); + uint32_t max_framerate = v4l2core_query_h264_frame_rate_config(device, UVC_GET_MAX); + uint32_t min_framerate = v4l2core_query_h264_frame_rate_config(device, UVC_GET_MIN); + + GtkAdjustment *adjustment0 = gtk_adjustment_new ( + cur_framerate, + min_framerate, + max_framerate, + 1, + 10, + 0); + + FrameInterval = gtk_spin_button_new(adjustment0, 1, 0); + gtk_editable_set_editable(GTK_EDITABLE(FrameInterval), TRUE); + + g_signal_connect(GTK_SPIN_BUTTON(FrameInterval),"value-changed", + G_CALLBACK (h264_FrameInterval_changed), device); + + gtk_grid_attach (GTK_GRID(h264_controls_grid), FrameInterval, 1, line, 1 ,1); + gtk_widget_show (FrameInterval); + } + + /* + * probe_commit specific controls + */ + + if(is_control_panel) + return 0; //don't create probe_commit specific controls if we are in control panel mode + + //dwBitRate + line++; + GtkWidget* label_BitRate = gtk_label_new(_("Bit Rate:")); + gtk_misc_set_alignment (GTK_MISC (label_BitRate), 1, 0.5); + gtk_grid_attach (GTK_GRID(h264_controls_grid), label_BitRate, 0, line, 1, 1); + gtk_widget_show (label_BitRate); + + GtkAdjustment *adjustment1 = gtk_adjustment_new ( + device->h264_config_probe_req.dwBitRate, + config_probe_min.dwBitRate, + config_probe_max.dwBitRate, + 1, + 10, + 0); + + BitRate = gtk_spin_button_new(adjustment1, 1, 0); + gtk_editable_set_editable(GTK_EDITABLE(BitRate), TRUE); + + gtk_grid_attach (GTK_GRID(h264_controls_grid), BitRate, 1, line, 1 ,1); + gtk_widget_show (BitRate); + + //bmHints + line++; + GtkWidget* hints_table = gtk_grid_new(); + + GtkWidget* label_Hints = gtk_label_new(_("Hints:")); + gtk_misc_set_alignment (GTK_MISC (label_Hints), 1, 0.5); + gtk_grid_attach (GTK_GRID(hints_table), label_Hints, 0, 1, 2, 1); + gtk_widget_show (label_Hints); + + Hints_res = gtk_check_button_new_with_label (_("Resolution")); + gtk_grid_attach (GTK_GRID(hints_table), Hints_res, 0, 2, 1, 1); + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(Hints_res),((device->h264_config_probe_req.bmHints & 0x0001) > 0)); + gtk_widget_show (Hints_res); + Hints_prof = gtk_check_button_new_with_label (_("Profile")); + gtk_grid_attach (GTK_GRID(hints_table), Hints_prof, 1, 2, 1, 1); + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(Hints_prof),((device->h264_config_probe_req.bmHints & 0x0002) > 0)); + gtk_widget_show (Hints_prof); + Hints_ratecontrol = gtk_check_button_new_with_label (_("Rate Control")); + gtk_grid_attach (GTK_GRID(hints_table), Hints_ratecontrol, 2, 2, 1, 1); + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(Hints_ratecontrol),((device->h264_config_probe_req.bmHints & 0x0004) > 0)); + gtk_widget_show (Hints_ratecontrol); + Hints_usage = gtk_check_button_new_with_label (_("Usage Type")); + gtk_grid_attach (GTK_GRID(hints_table), Hints_usage, 3, 2, 1, 1); + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(Hints_usage),((device->h264_config_probe_req.bmHints & 0x0008) > 0)); + gtk_widget_show (Hints_usage); + Hints_slicemode = gtk_check_button_new_with_label (_("Slice Mode")); + gtk_grid_attach (GTK_GRID(hints_table), Hints_slicemode, 0, 3, 1, 1); + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(Hints_slicemode),((device->h264_config_probe_req.bmHints & 0x0010) > 0)); + gtk_widget_show (Hints_slicemode); + Hints_sliceunit = gtk_check_button_new_with_label (_("Slice Unit")); + gtk_grid_attach (GTK_GRID(hints_table), Hints_sliceunit, 1, 3, 1, 1); + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(Hints_sliceunit),((device->h264_config_probe_req.bmHints & 0x0020) > 0)); + gtk_widget_show (Hints_sliceunit); + Hints_view = gtk_check_button_new_with_label (_("MVC View")); + gtk_grid_attach (GTK_GRID(hints_table), Hints_view, 2, 3, 1, 1); + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(Hints_view),((device->h264_config_probe_req.bmHints & 0x0040) > 0)); + gtk_widget_show (Hints_view); + Hints_temporal = gtk_check_button_new_with_label (_("Temporal Scale")); + gtk_grid_attach (GTK_GRID(hints_table), Hints_temporal, 3, 3, 1, 1); + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(Hints_temporal),((device->h264_config_probe_req.bmHints & 0x0080) > 0)); + gtk_widget_show (Hints_temporal); + Hints_snr = gtk_check_button_new_with_label (_("SNR Scale")); + gtk_grid_attach (GTK_GRID(hints_table), Hints_snr, 0, 4, 1, 1); + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(Hints_snr),((device->h264_config_probe_req.bmHints & 0x0100) > 0)); + gtk_widget_show (Hints_snr); + Hints_spatial = gtk_check_button_new_with_label (_("Spatial Scale")); + gtk_grid_attach (GTK_GRID(hints_table), Hints_spatial, 1, 4, 1, 1); + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(Hints_spatial),((device->h264_config_probe_req.bmHints & 0x0200) > 0)); + gtk_widget_show (Hints_spatial); + Hints_spatiallayer = gtk_check_button_new_with_label (_("Spatial Layer Ratio")); + gtk_grid_attach (GTK_GRID(hints_table), Hints_spatiallayer, 2, 4, 1, 1); + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(Hints_spatiallayer),((device->h264_config_probe_req.bmHints & 0x0400) > 0)); + gtk_widget_show (Hints_spatiallayer); + Hints_frameinterval = gtk_check_button_new_with_label (_("Frame Interval")); + gtk_grid_attach (GTK_GRID(hints_table), Hints_frameinterval, 3, 4, 1, 1); + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(Hints_frameinterval),((device->h264_config_probe_req.bmHints & 0x0800) > 0)); + gtk_widget_show (Hints_frameinterval); + Hints_leakybucket = gtk_check_button_new_with_label (_("Leaky Bucket Size")); + gtk_grid_attach (GTK_GRID(hints_table), Hints_leakybucket, 0, 5, 1, 1); + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(Hints_leakybucket),((device->h264_config_probe_req.bmHints & 0x1000) > 0)); + gtk_widget_show (Hints_leakybucket); + Hints_bitrate = gtk_check_button_new_with_label (_("Bit Rate")); + gtk_grid_attach (GTK_GRID(hints_table), Hints_bitrate, 1, 5, 1, 1); + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(Hints_bitrate),((device->h264_config_probe_req.bmHints & 0x2000) > 0)); + gtk_widget_show (Hints_bitrate); + Hints_cabac = gtk_check_button_new_with_label (_("CABAC")); + gtk_grid_attach (GTK_GRID(hints_table), Hints_cabac, 2, 5, 1, 1); + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(Hints_cabac),((device->h264_config_probe_req.bmHints & 0x4000) > 0)); + gtk_widget_show (Hints_cabac); + Hints_iframe = gtk_check_button_new_with_label (_("(I) Frame Period")); + gtk_grid_attach (GTK_GRID(hints_table), Hints_iframe, 3, 5, 1, 1); + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON( Hints_iframe),((device->h264_config_probe_req.bmHints & 0x8000) > 0)); + gtk_widget_show (Hints_iframe); + + gtk_grid_attach (GTK_GRID(h264_controls_grid), hints_table, 0, line, 2, 1); + gtk_widget_show(hints_table); + + //wWidth x wHeight - use global values + + //wSliceMode + line++; + GtkWidget* label_SliceMode = gtk_label_new(_("Slice Mode:")); + gtk_misc_set_alignment (GTK_MISC (label_SliceMode), 1, 0.5); + gtk_grid_attach (GTK_GRID(h264_controls_grid), label_SliceMode, 0, line, 1, 1); + gtk_widget_show (label_SliceMode); + + SliceMode = gtk_combo_box_text_new(); + gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT(SliceMode), + _("no multiple slices")); + gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT(SliceMode), + _("bits/slice")); + gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT(SliceMode), + _("Mbits/slice")); + gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT(SliceMode), + _("slices/frame")); + + gtk_combo_box_set_active(GTK_COMBO_BOX(SliceMode), device->h264_config_probe_req.wSliceMode); //0 indexed + + gtk_grid_attach (GTK_GRID(h264_controls_grid), SliceMode, 1, line, 1 ,1); + gtk_widget_show (SliceMode); + + //wSliceUnits + line++; + GtkWidget* label_SliceUnits = gtk_label_new(_("Slice Units:")); + gtk_misc_set_alignment (GTK_MISC (label_SliceUnits), 1, 0.5); + gtk_grid_attach (GTK_GRID(h264_controls_grid), label_SliceUnits, 0, line, 1, 1); + gtk_widget_show (label_SliceUnits); + + GtkAdjustment *adjustment2 = gtk_adjustment_new ( + device->h264_config_probe_req.wSliceUnits, + config_probe_min.wSliceUnits, + config_probe_max.wSliceUnits, + 1, + 10, + 0); + + SliceUnits = gtk_spin_button_new(adjustment2, 1, 0); + gtk_editable_set_editable(GTK_EDITABLE(SliceUnits), TRUE); + + gtk_grid_attach (GTK_GRID(h264_controls_grid), SliceUnits, 1, line, 1 ,1); + gtk_widget_show (SliceUnits); + + //wProfile + line++; + GtkWidget* label_Profile = gtk_label_new(_("Profile:")); + gtk_misc_set_alignment (GTK_MISC (label_Profile), 1, 0.5); + gtk_grid_attach (GTK_GRID(h264_controls_grid), label_Profile, 0, line, 1, 1); + gtk_widget_show (label_Profile); + + Profile = gtk_combo_box_text_new(); + gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT(Profile), + _("Baseline Profile")); + gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT(Profile), + _("Main Profile")); + gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT(Profile), + _("High Profile")); + gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT(Profile), + _("Scalable Baseline Profile")); + gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT(Profile), + _("Scalable High Profile")); + gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT(Profile), + _("Multiview High Profile")); + gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT(Profile), + _("Stereo High Profile")); + + uint16_t profile = device->h264_config_probe_req.wProfile & 0xFF00; + int prof_index = 0; + switch(profile) + { + case 0x4200: + prof_index = 0; + break; + case 0x4D00: + prof_index = 1; + break; + case 0x6400: + prof_index = 2; + break; + case 0x5300: + prof_index = 3; + break; + case 0x5600: + prof_index = 4; + break; + case 0x7600: + prof_index = 5; + break; + case 0x8000: + prof_index = 6; + break; + default: + fprintf(stderr, "GUVCVIEW: (H264 probe) unknown profile mode 0x%X\n", profile); + break; + + } + gtk_combo_box_set_active(GTK_COMBO_BOX(Profile), prof_index); + + gtk_grid_attach (GTK_GRID(h264_controls_grid), Profile, 1, line, 1 ,1); + gtk_widget_show (Profile); + + //wProfile (Bits 0-7) + line++; + GtkWidget* label_Profile_flags = gtk_label_new(_("Profile flags:")); + gtk_misc_set_alignment (GTK_MISC (label_Profile_flags), 1, 0.5); + gtk_grid_attach (GTK_GRID(h264_controls_grid), label_Profile_flags, 0, line, 1, 1); + gtk_widget_show (label_Profile_flags); + + int cur_flags = device->h264_config_probe_req.wProfile & 0x000000FF; + int max_flags = config_probe_max.wProfile & 0x000000FF; + int min_flags = config_probe_min.wProfile & 0x000000FF; + + GtkAdjustment *adjustment3 = gtk_adjustment_new ( + cur_flags, + min_flags, + max_flags, + 1, + 10, + 0); + + Profile_flags = gtk_spin_button_new(adjustment3, 1, 0); + gtk_editable_set_editable(GTK_EDITABLE(Profile_flags), TRUE); + + gtk_grid_attach (GTK_GRID(h264_controls_grid), Profile_flags, 1, line, 1 ,1); + gtk_widget_show (Profile_flags); + + //wIFramePeriod + line++; + GtkWidget* label_IFramePeriod = gtk_label_new(_("(I) Frame Period (ms):")); + gtk_misc_set_alignment (GTK_MISC (label_IFramePeriod), 1, 0.5); + gtk_grid_attach (GTK_GRID(h264_controls_grid), label_IFramePeriod, 0, line, 1, 1); + gtk_widget_show (label_IFramePeriod); + + GtkAdjustment *adjustment4 = gtk_adjustment_new ( + device->h264_config_probe_req.wIFramePeriod, + config_probe_min.wIFramePeriod, + config_probe_max.wIFramePeriod, + 1, + 10, + 0); + + IFramePeriod = gtk_spin_button_new(adjustment4, 1, 0); + gtk_editable_set_editable(GTK_EDITABLE(IFramePeriod), TRUE); + + gtk_grid_attach (GTK_GRID(h264_controls_grid), IFramePeriod, 1, line, 1 ,1); + gtk_widget_show (IFramePeriod); + + //wEstimatedVideoDelay + line++; + GtkWidget* label_EstimatedVideoDelay = gtk_label_new(_("Estimated Video Delay (ms):")); + gtk_misc_set_alignment (GTK_MISC (label_EstimatedVideoDelay), 1, 0.5); + gtk_grid_attach (GTK_GRID((h264_controls_grid)), label_EstimatedVideoDelay, 0, line, 1, 1); + gtk_widget_show (label_EstimatedVideoDelay); + + GtkAdjustment *adjustment5 = gtk_adjustment_new ( + device->h264_config_probe_req.wEstimatedVideoDelay, + config_probe_min.wEstimatedVideoDelay, + config_probe_max.wEstimatedVideoDelay, + 1, + 10, + 0); + + EstimatedVideoDelay = gtk_spin_button_new(adjustment5, 1, 0); + gtk_editable_set_editable(GTK_EDITABLE(EstimatedVideoDelay), TRUE); + + gtk_grid_attach (GTK_GRID((h264_controls_grid)), EstimatedVideoDelay, 1, line, 1 ,1); + gtk_widget_show (EstimatedVideoDelay); + + //wEstimatedMaxConfigDelay + line++; + GtkWidget* label_EstimatedMaxConfigDelay = gtk_label_new(_("Estimated Max Config Delay (ms):")); + gtk_misc_set_alignment (GTK_MISC (label_EstimatedMaxConfigDelay), 1, 0.5); + gtk_grid_attach (GTK_GRID(h264_controls_grid), label_EstimatedMaxConfigDelay, 0, line, 1, 1); + gtk_widget_show (label_EstimatedMaxConfigDelay); + + GtkAdjustment *adjustment6 = gtk_adjustment_new ( + device->h264_config_probe_req.wEstimatedMaxConfigDelay, + config_probe_min.wEstimatedMaxConfigDelay, + config_probe_max.wEstimatedMaxConfigDelay, + 1, + 10, + 0); + + EstimatedMaxConfigDelay = gtk_spin_button_new(adjustment6, 1, 0); + gtk_editable_set_editable(GTK_EDITABLE(EstimatedMaxConfigDelay), TRUE); + + gtk_grid_attach (GTK_GRID(h264_controls_grid), EstimatedMaxConfigDelay, 1, line, 1 ,1); + gtk_widget_show (EstimatedMaxConfigDelay); + + //bUsageType + line++; + GtkWidget* label_UsageType = gtk_label_new(_("Usage Type:")); + gtk_misc_set_alignment (GTK_MISC (label_UsageType), 1, 0.5); + gtk_grid_attach (GTK_GRID(h264_controls_grid), label_UsageType, 0, line, 1, 1); + gtk_widget_show (label_UsageType); + + UsageType = gtk_combo_box_text_new(); + gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT(UsageType), + _("Real-time")); + gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT(UsageType), + _("Broadcast")); + gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT(UsageType), + _("Storage")); + gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT(UsageType), + _("(0) Non-scalable single layer AVC")); + gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT(UsageType), + _("(1) SVC temporal scalability with hierarchical P")); + gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT(UsageType), + _("(2q) SVC temporal scalability + Quality/SNR scalability")); + gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT(UsageType), + _("(2s) SVC temporal scalability + spatial scalability")); + gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT(UsageType), + _("(3) Full SVC scalability")); + + uint8_t usage = device->h264_config_probe_req.bUsageType & 0x0F; + int usage_index = usage - 1; // from 0x01 to 0x0F + if(usage_index < 0) + usage_index = 0; + + gtk_combo_box_set_active(GTK_COMBO_BOX(UsageType), usage_index); + + gtk_grid_attach (GTK_GRID(h264_controls_grid), UsageType, 1, line, 1 ,1); + gtk_widget_show (UsageType); + + //bSNRScaleMode + line++; + GtkWidget* label_SNRScaleMode = gtk_label_new(_("SNR Control Mode:")); + gtk_misc_set_alignment (GTK_MISC (label_SNRScaleMode), 1, 0.5); + gtk_grid_attach (GTK_GRID(h264_controls_grid), label_SNRScaleMode, 0, line, 1, 1); + gtk_widget_show (label_SNRScaleMode); + + SNRScaleMode = gtk_combo_box_text_new(); + gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT(SNRScaleMode), + _("No SNR Enhancement Layer")); + gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT(SNRScaleMode), + _("CGS NonRewrite (2 Layer)")); + gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT(SNRScaleMode), + _("CGS NonRewrite (3 Layer)")); + gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT(SNRScaleMode), + _("CGS Rewrite (2 Layer)")); + gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT(SNRScaleMode), + _("CGS Rewrite (3 Layer)")); + gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT(SNRScaleMode), + _("MGS (2 Layer)")); + + uint8_t snrscalemode = device->h264_config_probe_req.bSNRScaleMode & 0x0F; + int snrscalemode_index = 0; + switch(snrscalemode) + { + case 0: + snrscalemode_index = 0; + break; + case 2: + case 3: + case 4: + case 5: + case 6: + snrscalemode_index = snrscalemode - 1; + break; + } + gtk_combo_box_set_active(GTK_COMBO_BOX(SNRScaleMode), snrscalemode_index); + + gtk_grid_attach (GTK_GRID(h264_controls_grid), SNRScaleMode, 1, line, 1 ,1); + gtk_widget_show (SNRScaleMode); + + //bStreamMuxOption (done directly in the core) + line++; + GtkWidget *StreamMuxOption_table = gtk_grid_new(); + StreamMuxOption = gtk_check_button_new_with_label (_("Stream Mux Enable")); + gtk_grid_attach (GTK_GRID(StreamMuxOption_table), StreamMuxOption, 0, 1, 1, 1); + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(StreamMuxOption),((device->h264_config_probe_req.bStreamMuxOption & 0x01) != 0)); + gtk_widget_show (StreamMuxOption); + + StreamMuxOption_aux = gtk_combo_box_text_new(); + gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT(StreamMuxOption_aux), + _("Embed H.264 aux stream")); + gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT(StreamMuxOption_aux), + _("Embed YUY2 aux stream")); + gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT(StreamMuxOption_aux), + _("Embed NV12 aux stream")); + + uint8_t streammux = device->h264_config_probe_req.bStreamMuxOption & 0x0E; + int streammux_index = 0; + switch(streammux) + { + case 2: + streammux_index = 0; + break; + case 4: + streammux_index = 1; + break; + case 8: + streammux_index = 2; + break; + } + gtk_combo_box_set_active(GTK_COMBO_BOX(StreamMuxOption_aux), streammux_index); + gtk_widget_show(StreamMuxOption_aux); + gtk_grid_attach (GTK_GRID(StreamMuxOption_table), StreamMuxOption_aux, 1, 1, 1, 1); + + StreamMuxOption_mjpgcontainer = gtk_check_button_new_with_label (_("MJPG payload container")); + gtk_grid_attach (GTK_GRID(StreamMuxOption_table), StreamMuxOption_mjpgcontainer, 2, 1, 1, 1); + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(StreamMuxOption_mjpgcontainer),((device->h264_config_probe_req.bStreamMuxOption & 0x40) != 0)); + gtk_widget_show (StreamMuxOption_mjpgcontainer); + + gtk_grid_attach (GTK_GRID((h264_controls_grid)), StreamMuxOption_table, 0, line, 2, 1); + gtk_widget_show(StreamMuxOption_table); + + gtk_widget_set_sensitive(StreamMuxOption, FALSE); //No support yet (set in the core) + gtk_widget_set_sensitive(StreamMuxOption_aux, FALSE); //No support yet (set in the core) + gtk_widget_set_sensitive(StreamMuxOption_mjpgcontainer, FALSE); //No support yet (set in the core) + + //bStreamFormat + line++; + GtkWidget* label_StreamFormat = gtk_label_new(_("Stream Format:")); + gtk_misc_set_alignment (GTK_MISC (label_StreamFormat), 1, 0.5); + gtk_grid_attach (GTK_GRID((h264_controls_grid)), label_StreamFormat, 0, line, 1, 1); + gtk_widget_show (label_StreamFormat); + + StreamFormat = gtk_combo_box_text_new(); + //TODO: check for min and max values + gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT(StreamFormat), + _("Byte stream format (H.264 Annex-B)")); + gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT(StreamFormat), + _("NAL stream format")); + + uint8_t streamformat = device->h264_config_probe_req.bStreamFormat & 0x01; + int streamformat_index = streamformat; + gtk_combo_box_set_active(GTK_COMBO_BOX(StreamFormat), streamformat_index); + + gtk_grid_attach (GTK_GRID(h264_controls_grid), StreamFormat, 1, line, 1 ,1); + gtk_widget_show (StreamFormat); + + //bEntropyCABAC + line++; + GtkWidget* label_EntropyCABAC = gtk_label_new(_("Entropy CABAC:")); + gtk_misc_set_alignment (GTK_MISC (label_EntropyCABAC), 1, 0.5); + gtk_grid_attach (GTK_GRID(h264_controls_grid), label_EntropyCABAC, 0, line, 1, 1); + gtk_widget_show (label_EntropyCABAC); + + EntropyCABAC = gtk_combo_box_text_new(); + //TODO: check for min and max values + gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT(EntropyCABAC), + _("CAVLC")); + gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT(EntropyCABAC), + _("CABAC")); + + uint8_t entropycabac = device->h264_config_probe_req.bEntropyCABAC & 0x01; + int entropycabac_index = entropycabac; + gtk_combo_box_set_active(GTK_COMBO_BOX(EntropyCABAC), entropycabac_index); + + gtk_grid_attach (GTK_GRID(h264_controls_grid), EntropyCABAC, 1, line, 1 ,1); + gtk_widget_show (EntropyCABAC); + + //bTimestamp + line++; + Timestamp = gtk_check_button_new_with_label (_("Picture timing SEI")); + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(Timestamp),((device->h264_config_probe_req.bTimestamp & 0x01) > 0)); + gtk_grid_attach (GTK_GRID(h264_controls_grid), Timestamp, 1, line, 1 ,1); + gtk_widget_show (Timestamp); + + //bNumOfReorderFrames + line++; + GtkWidget* label_NumOfReorderFrames = gtk_label_new(_("B Frames:")); + gtk_misc_set_alignment (GTK_MISC (label_NumOfReorderFrames), 1, 0.5); + gtk_grid_attach (GTK_GRID((h264_controls_grid)), label_NumOfReorderFrames, 0, line, 1, 1); + gtk_widget_show (label_NumOfReorderFrames); + + cur_flags = device->h264_config_probe_req.bNumOfReorderFrames & 0x000000FF; + max_flags = config_probe_max.bNumOfReorderFrames & 0x000000FF; + min_flags = config_probe_min.bNumOfReorderFrames & 0x000000FF; + + GtkAdjustment *adjustment10 = gtk_adjustment_new ( + cur_flags, + min_flags, + max_flags, + 1, + 10, + 0); + + NumOfReorderFrames = gtk_spin_button_new(adjustment10, 1, 0); + gtk_editable_set_editable(GTK_EDITABLE(NumOfReorderFrames), TRUE); + + gtk_grid_attach (GTK_GRID(h264_controls_grid), NumOfReorderFrames, 1, line, 1 ,1); + gtk_widget_show (NumOfReorderFrames); + + //bPreviewFlipped + line++; + PreviewFlipped = gtk_check_button_new_with_label (_("Preview Flipped")); + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(PreviewFlipped),((device->h264_config_probe_req.bPreviewFlipped & 0x01) > 0)); + gtk_grid_attach (GTK_GRID(h264_controls_grid), PreviewFlipped, 1, line, 1 ,1); + gtk_widget_show (PreviewFlipped); + + //bView + line++; + GtkWidget* label_View = gtk_label_new(_("Additional MVC Views:")); + gtk_misc_set_alignment (GTK_MISC (label_View), 1, 0.5); + gtk_grid_attach (GTK_GRID(h264_controls_grid), label_View, 0, line, 1, 1); + gtk_widget_show (label_View); + + cur_flags = device->h264_config_probe_req.bView & 0x000000FF; + max_flags = config_probe_max.bView & 0x000000FF; + min_flags = config_probe_min.bView & 0x000000FF; + + GtkAdjustment *adjustment11 = gtk_adjustment_new ( + cur_flags, + min_flags, + max_flags, + 1, + 10, + 0); + + View = gtk_spin_button_new(adjustment11, 1, 0); + gtk_editable_set_editable(GTK_EDITABLE(View), TRUE); + + gtk_grid_attach (GTK_GRID(h264_controls_grid), View, 1, line, 1 ,1); + gtk_widget_show (View); + + //bStreamID + line++; + GtkWidget* label_StreamID = gtk_label_new(_("Simulcast stream index:")); + gtk_misc_set_alignment (GTK_MISC (label_StreamID), 1, 0.5); + gtk_grid_attach (GTK_GRID(h264_controls_grid), label_StreamID, 0, line, 1, 1); + gtk_widget_show (label_StreamID); + + cur_flags = device->h264_config_probe_req.bStreamID & 0x000000FF; + max_flags = config_probe_max.bStreamID & 0x000000FF; + min_flags = config_probe_min.bStreamID & 0x000000FF; + + GtkAdjustment *adjustment12 = gtk_adjustment_new ( + cur_flags, + min_flags, + max_flags, + 1, + 10, + 0); + + StreamID = gtk_spin_button_new(adjustment12, 1, 0); + gtk_editable_set_editable(GTK_EDITABLE(StreamID), TRUE); + + gtk_grid_attach (GTK_GRID((h264_controls_grid)), StreamID, 1, line, 1 ,1); + gtk_widget_show (StreamID); + + //bSpatialLayerRatio + line++; + GtkWidget* label_SpatialLayerRatio = gtk_label_new(_("Spatial Layer Ratio:")); + gtk_misc_set_alignment (GTK_MISC (label_SpatialLayerRatio), 1, 0.5); + gtk_grid_attach (GTK_GRID(h264_controls_grid), label_SpatialLayerRatio, 0, line, 1, 1); + gtk_widget_show (label_SpatialLayerRatio); + + cur_flags = device->h264_config_probe_req.bSpatialLayerRatio & 0x000000FF; + max_flags = config_probe_max.bSpatialLayerRatio & 0x000000FF; + min_flags = config_probe_min.bSpatialLayerRatio & 0x000000FF; + + gdouble cur = (gdouble) ((cur_flags & 0x000000F0)>>4) + (gdouble)((cur_flags & 0x0000000F)/16); + gdouble min = (gdouble) ((min_flags & 0x000000F0)>>4) + (gdouble)((min_flags & 0x0000000F)/16); + gdouble max = (gdouble) ((max_flags & 0x000000F0)>>4) + (gdouble)((max_flags & 0x0000000F)/16); + + GtkAdjustment *adjustment13 = gtk_adjustment_new ( + cur, + min, + max, + 0.1, + 1, + 1); + + SpatialLayerRatio = gtk_spin_button_new(adjustment13, 1, 0); + gtk_editable_set_editable(GTK_EDITABLE(SpatialLayerRatio), TRUE); + + gtk_grid_attach (GTK_GRID(h264_controls_grid), SpatialLayerRatio, 1, line, 1 ,1); + gtk_widget_show (SpatialLayerRatio); + + //wLeakyBucketSize + line++; + GtkWidget* label_LeakyBucketSize = gtk_label_new(_("Leaky Bucket Size (ms):")); + gtk_misc_set_alignment (GTK_MISC (label_LeakyBucketSize), 1, 0.5); + gtk_grid_attach (GTK_GRID(h264_controls_grid), label_LeakyBucketSize, 0, line, 1, 1); + gtk_widget_show (label_LeakyBucketSize); + + cur_flags = device->h264_config_probe_req.wLeakyBucketSize; + max_flags = config_probe_max.wLeakyBucketSize; + min_flags = config_probe_min.wLeakyBucketSize; + + GtkAdjustment *adjustment14 = gtk_adjustment_new ( + cur_flags, + min_flags, + max_flags, + 1, + 10, + 0); + + LeakyBucketSize = gtk_spin_button_new(adjustment14, 1, 0); + gtk_editable_set_editable(GTK_EDITABLE(LeakyBucketSize), TRUE); + + gtk_grid_attach (GTK_GRID((h264_controls_grid)), LeakyBucketSize, 1, line, 1 ,1); + gtk_widget_show (LeakyBucketSize); + + //PROBE COMMIT buttons + line++; + + //encoder reset + GtkWidget *reset_button = gtk_button_new_with_label(_("Encoder Reset")); + g_signal_connect (GTK_BUTTON(reset_button), "clicked", + G_CALLBACK (h264_reset_button_clicked), device); + + gtk_grid_attach (GTK_GRID((h264_controls_grid)), reset_button, 0, line, 1 ,1); + gtk_widget_show(reset_button); + +/* + GtkWidget *probe_button = gtk_button_new_with_label(_("PROBE")); + g_signal_connect (GTK_BUTTON(probe_button), "clicked", + G_CALLBACK (h264_probe_button_clicked), all_data); + + gtk_grid_attach (GTK_GRID(h264_controls_grid), probe_button, 0, line, 1 ,1); + gtk_widget_show(probe_button); +*/ + GtkWidget *commit_button = gtk_button_new_with_label(_("COMMIT")); + g_signal_connect (GTK_BUTTON(commit_button), "clicked", + G_CALLBACK (h264_commit_button_clicked), device); + + gtk_grid_attach (GTK_GRID((h264_controls_grid)), commit_button, 1, line, 1 ,1); + gtk_widget_show(commit_button); + + gtk_widget_show(h264_controls_grid); + + /*add control grid to parent container*/ + gtk_container_add(GTK_CONTAINER(parent), h264_controls_grid); + + return 0; +} diff -Nru guvcview-1.7.3/guvcview/gui_gtk3_menu.c guvcview-2.0.1+ubuntu1~ppa1/guvcview/gui_gtk3_menu.c --- guvcview-1.7.3/guvcview/gui_gtk3_menu.c 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/guvcview/gui_gtk3_menu.c 2014-10-05 10:41:44.000000000 +0000 @@ -0,0 +1,260 @@ +/*******************************************************************************# +# guvcview http://guvcview.sourceforge.net # +# # +# Paulo Assis # +# Nobuhiro Iwamatsu # +# Add UYVY color support(Macbook iSight) # +# Flemming Frandsen # +# Add VU meter OSD # +# # +# This program is free software; you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation; either version 2 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program; if not, write to the Free Software # +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # +# # +********************************************************************************/ + +#include +#include +#include +#include +#include +#include +#include +#include +/* support for internationalization - i18n */ +#include +#include + +#include "gui_gtk3.h" +#include "gui_gtk3_callbacks.h" +#include "gui.h" +/*add this last to avoid redefining _() and N_()*/ +#include "gview.h" + + +extern int debug_level; +extern int is_control_panel; + +/* + * attach top menu widget + * args: + * device - pointer to device data we want to attach the gui for + * parent - menu parent widget + * + * asserts: + * device is not null + * parent is not null + * + * returns: error code (0 -OK) + */ +int gui_attach_gtk3_menu(v4l2_dev_t *device, GtkWidget *parent) +{ + /*assertions*/ + assert(device != NULL); + assert(parent != NULL); + + GtkWidget *menubar = gtk_menu_bar_new(); + gtk_menu_bar_set_pack_direction(GTK_MENU_BAR(menubar), GTK_PACK_DIRECTION_LTR); + + GtkWidget *controls_menu = gtk_menu_new(); + GtkWidget *controls_top = gtk_menu_item_new_with_label(_("Settings")); + GtkWidget *controls_load = gtk_menu_item_new_with_label(_("Load Profile")); + GtkWidget *controls_save = gtk_menu_item_new_with_label(_("Save Profile")); + GtkWidget *controls_default = gtk_menu_item_new_with_label(_("Hardware Defaults")); + + gtk_widget_show (controls_top); + gtk_widget_show (controls_load); + gtk_widget_show (controls_save); + gtk_widget_show (controls_default); + + GtkWidget *camera_button_menu = gtk_menu_new(); + GtkWidget *camera_button_top = gtk_menu_item_new_with_label(_("Camera Button")); + + gtk_menu_item_set_submenu(GTK_MENU_ITEM(camera_button_top), camera_button_menu); + + GSList *camera_button_group = NULL; + GtkWidget *def_image = gtk_radio_menu_item_new_with_label(camera_button_group, _("Capture Image")); + g_object_set_data (G_OBJECT (def_image), "camera_default", GINT_TO_POINTER(0)); + gtk_menu_shell_append(GTK_MENU_SHELL(camera_button_menu), def_image); + + camera_button_group = gtk_radio_menu_item_get_group (GTK_RADIO_MENU_ITEM (def_image)); + GtkWidget *def_video = gtk_radio_menu_item_new_with_label(camera_button_group, _("Capture Video")); + g_object_set_data (G_OBJECT (def_video), "camera_default", GINT_TO_POINTER(1)); + gtk_menu_shell_append(GTK_MENU_SHELL(camera_button_menu), def_video); + + gtk_widget_show (camera_button_top); + gtk_widget_show (camera_button_menu); + gtk_widget_show (def_image); + gtk_widget_show (def_video); + + /*default camera button action*/ + if (get_default_camera_button_action() == 0) + gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (def_image), TRUE); + else + gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (def_video), TRUE); + + g_signal_connect (GTK_RADIO_MENU_ITEM(def_image), "toggled", + G_CALLBACK (camera_button_menu_changed), NULL); + g_signal_connect (GTK_RADIO_MENU_ITEM(def_video), "toggled", + G_CALLBACK (camera_button_menu_changed), NULL); + + /* profile events*/ + g_object_set_data (G_OBJECT (controls_save), "profile_dialog", GINT_TO_POINTER(1)); + g_signal_connect (GTK_MENU_ITEM(controls_save), "activate", + G_CALLBACK (controls_profile_clicked), device); + g_object_set_data (G_OBJECT (controls_load), "profile_dialog", GINT_TO_POINTER(0)); + g_signal_connect (GTK_MENU_ITEM(controls_load), "activate", + G_CALLBACK (controls_profile_clicked), device); + g_signal_connect (GTK_MENU_ITEM(controls_default), "activate", + G_CALLBACK (control_defaults_clicked), device); + + gtk_menu_item_set_submenu(GTK_MENU_ITEM(controls_top), controls_menu); + gtk_menu_shell_append(GTK_MENU_SHELL(controls_menu), controls_load); + gtk_menu_shell_append(GTK_MENU_SHELL(controls_menu), controls_save); + gtk_menu_shell_append(GTK_MENU_SHELL(controls_menu), controls_default); + gtk_menu_shell_append(GTK_MENU_SHELL(controls_menu), camera_button_top); + gtk_menu_shell_append(GTK_MENU_SHELL(menubar), controls_top); + + /*control panel mode exclusions */ + if(!is_control_panel) + { + /*photo menu*/ + GtkWidget *photo_menu = gtk_menu_new(); + + GtkWidget *menu_photo_top = gtk_menu_item_new_with_label(_("Photo")); + GtkWidget *photo_file = gtk_menu_item_new_with_label(_("File")); + GtkWidget *photo_sufix = gtk_check_menu_item_new_with_label(_("Increment Filename")); + + gtk_widget_show (menu_photo_top); + gtk_widget_show (photo_file); + gtk_widget_show (photo_sufix); + + g_signal_connect (GTK_MENU_ITEM(photo_file), "activate", + G_CALLBACK (photo_file_clicked), device); + + /** add callback to Append sufix */ + gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (photo_sufix), (get_photo_sufix_flag() > 0)); + g_signal_connect (GTK_CHECK_MENU_ITEM(photo_sufix), "toggled", + G_CALLBACK (photo_sufix_toggled), device); + + gtk_menu_item_set_submenu(GTK_MENU_ITEM(menu_photo_top), photo_menu); + gtk_menu_shell_append(GTK_MENU_SHELL(photo_menu), photo_file); + gtk_menu_shell_append(GTK_MENU_SHELL(photo_menu), photo_sufix); + gtk_menu_shell_append(GTK_MENU_SHELL(menubar), menu_photo_top); + + /*video menu*/ + GtkWidget *video_menu = gtk_menu_new(); + + GtkWidget *menu_video_top = gtk_menu_item_new_with_label(_("Video")); + GtkWidget *video_file = gtk_menu_item_new_with_label(_("File")); + GtkWidget *video_sufix = gtk_check_menu_item_new_with_label(_("Increment Filename")); + + gtk_widget_show (menu_video_top); + gtk_widget_show (video_file); + gtk_widget_show (video_sufix); + + g_signal_connect (GTK_MENU_ITEM(video_file), "activate", + G_CALLBACK (video_file_clicked), device); + + /** add callback to Append sufix */ + gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (video_sufix), get_video_sufix_flag() > 0); + g_signal_connect (GTK_CHECK_MENU_ITEM(video_sufix), "toggled", + G_CALLBACK (video_sufix_toggled), device); + + GtkWidget *video_codec_menu = gtk_menu_new(); + GtkWidget *video_codec_top = gtk_menu_item_new_with_label(_("Video Codec")); + gtk_widget_show (video_codec_top); + gtk_menu_item_set_submenu(GTK_MENU_ITEM(video_codec_top), video_codec_menu); + /*Add codecs to submenu*/ + GSList *vgroup = NULL; + int num_vcodecs = encoder_get_valid_video_codecs(); + int vcodec_ind =0; + for (vcodec_ind =0; vcodec_ind < num_vcodecs; vcodec_ind++) + { + GtkWidget *item = gtk_radio_menu_item_new_with_label( + vgroup, + gettext(encoder_get_video_codec_description(vcodec_ind))); + if (vcodec_ind == get_video_codec_ind()) + { + gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (item), TRUE); + } + /*NOTE: GSList indexes (g_slist_index) are in reverse order: last inserted has index 0*/ + vgroup = gtk_radio_menu_item_get_group (GTK_RADIO_MENU_ITEM (item)); + + gtk_widget_show (item); + gtk_menu_shell_append(GTK_MENU_SHELL(video_codec_menu), item); + + g_signal_connect (GTK_RADIO_MENU_ITEM(item), "toggled", + G_CALLBACK (video_codec_changed), vgroup); + } + set_video_codec_group_list_gtk3(vgroup); + + GtkWidget *video_codec_prop = gtk_menu_item_new_with_label(_("Video Codec Properties")); + gtk_widget_show (video_codec_prop); + g_signal_connect (GTK_MENU_ITEM(video_codec_prop), "activate", + G_CALLBACK (encoder_video_properties), NULL); + + GtkWidget *audio_codec_menu = gtk_menu_new(); + GtkWidget *audio_codec_top = gtk_menu_item_new_with_label(_("Audio Codec")); + gtk_widget_show (audio_codec_top); + gtk_menu_item_set_submenu(GTK_MENU_ITEM(audio_codec_top), audio_codec_menu); + /*Add codecs to submenu*/ + GSList *agroup = NULL; + int num_acodecs = encoder_get_valid_audio_codecs(); + int acodec_ind = 0; + for (acodec_ind = 0; acodec_ind < num_acodecs; acodec_ind++) + { + GtkWidget *item = gtk_radio_menu_item_new_with_label( + agroup, + gettext(encoder_get_audio_codec_description(acodec_ind))); + if (acodec_ind == get_audio_codec_ind()) + { + gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (item), TRUE); + } + /*NOTE: GSList indexes (g_slist_index) are in reverse order: last inserted has index 0*/ + agroup = gtk_radio_menu_item_get_group (GTK_RADIO_MENU_ITEM (item)); + + gtk_widget_show (item); + gtk_menu_shell_append(GTK_MENU_SHELL(audio_codec_menu), item); + + g_signal_connect (GTK_RADIO_MENU_ITEM(item), "toggled", + G_CALLBACK (audio_codec_changed), agroup); + } + set_audio_codec_group_list_gtk3(agroup); + + GtkWidget *audio_codec_prop = gtk_menu_item_new_with_label(_("Audio Codec Properties")); + gtk_widget_show (audio_codec_prop); + g_signal_connect (GTK_MENU_ITEM(audio_codec_prop), "activate", + G_CALLBACK (encoder_audio_properties), NULL); + + gtk_menu_item_set_submenu(GTK_MENU_ITEM(video_codec_top), video_codec_menu); + gtk_menu_item_set_submenu(GTK_MENU_ITEM(audio_codec_top), audio_codec_menu); + gtk_menu_item_set_submenu(GTK_MENU_ITEM(menu_video_top), video_menu); + gtk_menu_shell_append(GTK_MENU_SHELL(video_menu), video_file); + gtk_menu_shell_append(GTK_MENU_SHELL(video_menu), video_sufix); + gtk_menu_shell_append(GTK_MENU_SHELL(video_menu), video_codec_top); + gtk_menu_shell_append(GTK_MENU_SHELL(video_menu), video_codec_prop); + gtk_menu_shell_append(GTK_MENU_SHELL(video_menu), audio_codec_top); + gtk_menu_shell_append(GTK_MENU_SHELL(video_menu), audio_codec_prop); + gtk_menu_shell_append(GTK_MENU_SHELL(menubar), menu_video_top); + } + + /*show the menu*/ + gtk_widget_show (menubar); + //gtk_container_set_resize_mode (GTK_CONTAINER(menubar), GTK_RESIZE_PARENT); + + /* Attach the menu to parent container*/ + gtk_box_pack_start(GTK_BOX(parent), menubar, FALSE, TRUE, 2); + + return 0; +} diff -Nru guvcview-1.7.3/guvcview/gui_gtk3_v4l2ctrls.c guvcview-2.0.1+ubuntu1~ppa1/guvcview/gui_gtk3_v4l2ctrls.c --- guvcview-1.7.3/guvcview/gui_gtk3_v4l2ctrls.c 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/guvcview/gui_gtk3_v4l2ctrls.c 2014-10-05 10:41:44.000000000 +0000 @@ -0,0 +1,771 @@ +/*******************************************************************************# +# guvcview http://guvcview.sourceforge.net # +# # +# Paulo Assis # +# Nobuhiro Iwamatsu # +# Add UYVY color support(Macbook iSight) # +# Flemming Frandsen # +# Add VU meter OSD # +# # +# This program is free software; you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation; either version 2 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program; if not, write to the Free Software # +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # +# # +********************************************************************************/ + +#include +#include +#include +#include +#include +#include +#include +#include +/* support for internationalization - i18n */ +#include +#include + +#include "gui_gtk3.h" +#include "gui_gtk3_callbacks.h" +#include "gui.h" +/*add this last to avoid redefining _() and N_()*/ +#include "gview.h" + + +extern int debug_level; +extern int is_control_panel; + +/* + * NULL terminated list won't work here + * since we use realloc memory location will change + */ +static control_widgets_t *control_widgets_list = NULL; /*control widgets list*/ +static int widget_list_size = 0; /*list size*/ + +/* + * clean gtk3 control widgets list + * args: + * none + * + * asserts: + * none + * + * returns: none + */ +void gui_clean_gtk3_control_widgets_list() +{ + if(control_widgets_list) + free(control_widgets_list); +} + +/* + * get gtk control widgets for control id + * args: + * id - v4l2 control id + * + * asserts: + * none + * + * returns: pointer to control_widgets_t or null + */ +control_widgets_t *gui_gtk3_get_widgets_by_id(int id) +{ + int i = 0; + for(i = 0; i < widget_list_size; ++i ) + { + if(control_widgets_list[i].id == id) + return &control_widgets_list[i]; + } + + return NULL; +} + +/* + * attach v4l2 controls tab widget + * args: + * device - pointer to device data we want to attach the gui for + * parent - tab parent widget + * + * asserts: + * device is not null + * parent is not null + * + * returns: error code (0 -OK) + */ +int gui_attach_gtk3_v4l2ctrls(v4l2_dev_t *device, GtkWidget *parent) +{ + /*assertions*/ + assert(device != NULL); + assert(parent != NULL); + + if(debug_level > 1) + printf("GUVCVIEW: attaching v4l2 controls\n"); + + GtkWidget *img_controls_grid = gtk_grid_new(); + gtk_widget_show (img_controls_grid); + + gtk_grid_set_column_homogeneous (GTK_GRID(img_controls_grid), FALSE); + gtk_widget_set_hexpand (img_controls_grid, TRUE); + gtk_widget_set_halign (img_controls_grid, GTK_ALIGN_FILL); + + gtk_grid_set_row_spacing (GTK_GRID(img_controls_grid), 4); + gtk_grid_set_column_spacing (GTK_GRID (img_controls_grid), 4); + gtk_container_set_border_width (GTK_CONTAINER (img_controls_grid), 2); + + int i = 0; + int n = 0; + v4l2_ctrl_t *current = device->list_device_controls; + + for(; current != NULL; current = current->next, ++n) + { + if(!is_control_panel && + (current->control.id == V4L2_CID_FOCUS_LOGITECH || + current->control.id == V4L2_CID_FOCUS_ABSOLUTE)) + { + ++n; /*add a virtual software autofocus control*/ + } + + widget_list_size = n + 1; + + control_widgets_list = realloc(control_widgets_list, sizeof(control_widgets_t) * widget_list_size); + if(control_widgets_list == NULL) + { + fprintf(stderr,"GUVCVIEW: FATAL memory allocation failure (gui_attach_gtk3_v4l2ctrls): %s\n", strerror(errno)); + exit(-1); + } + /*label*/ + char *tmp; + tmp = g_strdup_printf ("%s:", current->name); + control_widgets_list[widget_list_size - 1].label = gtk_label_new (tmp); + g_free(tmp); + gtk_widget_show (control_widgets_list[widget_list_size - 1].label); + gtk_misc_set_alignment (GTK_MISC (control_widgets_list[widget_list_size - 1].label), 1, 0.5); + + control_widgets_list[widget_list_size - 1].id = current->control.id; + control_widgets_list[widget_list_size - 1].widget = NULL; + control_widgets_list[widget_list_size - 1].widget2 = NULL; /*usually a spin button*/ + + switch (current->control.type) + { + case V4L2_CTRL_TYPE_INTEGER: + + switch (current->control.id) + { + //special cases + case V4L2_CID_PAN_RELATIVE: + case V4L2_CID_TILT_RELATIVE: + { + control_widgets_list[n].widget = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 1); + + GtkWidget *PanTilt1 = NULL; + GtkWidget *PanTilt2 = NULL; + if(current->control.id == V4L2_CID_PAN_RELATIVE) + { + PanTilt1 = gtk_button_new_with_label(_("Left")); + PanTilt2 = gtk_button_new_with_label(_("Right")); + } + else + { + PanTilt1 = gtk_button_new_with_label(_("Down")); + PanTilt2 = gtk_button_new_with_label(_("Up")); + } + + gtk_widget_show (PanTilt1); + gtk_widget_show (PanTilt2); + gtk_box_pack_start(GTK_BOX(control_widgets_list[n].widget),PanTilt1,TRUE,TRUE,2); + gtk_box_pack_start(GTK_BOX(control_widgets_list[n].widget),PanTilt2,TRUE,TRUE,2); + + g_object_set_data (G_OBJECT (PanTilt1), "control_info", + GINT_TO_POINTER(current->control.id)); + g_object_set_data (G_OBJECT (PanTilt2), "control_info", + GINT_TO_POINTER(current->control.id)); + + /*connect signals*/ + g_signal_connect (GTK_BUTTON(PanTilt1), "clicked", + G_CALLBACK (button_PanTilt1_clicked), device); + g_signal_connect (GTK_BUTTON(PanTilt2), "clicked", + G_CALLBACK (button_PanTilt2_clicked), device); + + gtk_widget_show (control_widgets_list[n].widget); + + control_widgets_list[n].widget2 = gtk_spin_button_new_with_range(-256, 256, 64); + + gtk_editable_set_editable(GTK_EDITABLE(control_widgets_list[n].widget2), TRUE); + + if(current->control.id == V4L2_CID_PAN_RELATIVE) + gtk_spin_button_set_value (GTK_SPIN_BUTTON(control_widgets_list[n].widget2), device->pan_step); + else + gtk_spin_button_set_value (GTK_SPIN_BUTTON(control_widgets_list[n].widget2), device->tilt_step); + + /*connect signal*/ + g_object_set_data (G_OBJECT (control_widgets_list[n].widget2), "control_info", + GINT_TO_POINTER(current->control.id)); + g_signal_connect(GTK_SPIN_BUTTON(control_widgets_list[n].widget2),"value-changed", + G_CALLBACK (pan_tilt_step_changed), device); + + gtk_widget_show (control_widgets_list[n].widget2); + + break; + } + + case V4L2_CID_PAN_RESET: + case V4L2_CID_TILT_RESET: + { + control_widgets_list[n].widget = gtk_button_new_with_label(" "); + gtk_widget_show (control_widgets_list[n].widget); + + g_object_set_data (G_OBJECT (control_widgets_list[n].widget), "control_info", + GINT_TO_POINTER(current->control.id)); + + /*connect signal*/ + g_signal_connect (GTK_BUTTON(control_widgets_list[n].widget), "clicked", + G_CALLBACK (button_clicked), device); + + break; + }; + + case V4L2_CID_LED1_MODE_LOGITECH: + { + char* LEDMenu[4] = {_("Off"),_("On"),_("Blinking"),_("Auto")}; + /*turn it into a menu control*/ + if(!current->menu) + current->menu = calloc(4+1, sizeof(struct v4l2_querymenu)); + else + current->menu = realloc(current->menu, (4+1) * sizeof(struct v4l2_querymenu)); + if(current->menu == NULL) + { + fprintf(stderr,"GUVCVIEW: FATAL memory allocation failure (gui_attach_gtk3_v4l2ctrls): %s\n", strerror(errno)); + exit(-1); + } + + current->menu[0].id = current->control.id; + current->menu[0].index = 0; + current->menu[0].name[0] = 'N'; /*just set something here*/ + current->menu[1].id = current->control.id; + current->menu[1].index = 1; + current->menu[1].name[0] = 'O'; + current->menu[2].id = current->control.id; + current->menu[2].index = 2; + current->menu[2].name[0] = 'B'; + current->menu[3].id = current->control.id; + current->menu[3].index = 3; + current->menu[3].name[0] = 'A'; + current->menu[4].id = current->control.id; + current->menu[4].index = current->control.maximum+1; + current->menu[4].name[0] = '\0'; + + int j = 0; + int def = 0; + + control_widgets_list[n].widget = gtk_combo_box_text_new (); + for (j = 0; current->menu[j].index <= current->control.maximum; j++) + { + gtk_combo_box_text_append_text ( + GTK_COMBO_BOX_TEXT (control_widgets_list[n].widget), + (char *) LEDMenu[j]); + if(current->value == current->menu[j].index) + def = j; + } + + gtk_combo_box_set_active (GTK_COMBO_BOX(control_widgets_list[n].widget), def); + gtk_widget_show (control_widgets_list[n].widget); + + g_object_set_data (G_OBJECT (control_widgets_list[n].widget), "control_info", + GINT_TO_POINTER(current->control.id)); + + /*connect signal*/ + g_signal_connect (GTK_COMBO_BOX_TEXT(control_widgets_list[n].widget), "changed", + G_CALLBACK (combo_changed), device); + + break; + } + + case V4L2_CID_RAW_BITS_PER_PIXEL_LOGITECH: + { + /*turn it into a menu control*/ + char* BITSMenu[2] = {_("8 bit"),_("12 bit")}; + /*turn it into a menu control*/ + if(!current->menu) + current->menu = calloc(2+1, sizeof(struct v4l2_querymenu)); + else + current->menu = realloc(current->menu, (2+1) * sizeof(struct v4l2_querymenu)); + if(current->menu == NULL) + { + fprintf(stderr,"GUVCVIEW: FATAL memory allocation failure (gui_attach_gtk3_v4l2ctrls): %s\n", strerror(errno)); + exit(-1); + } + current->menu[0].id = current->control.id; + current->menu[0].index = 0; + current->menu[0].name[0] = 'o'; /*just set something here*/ + current->menu[1].id = current->control.id; + current->menu[1].index = 1; + current->menu[1].name[0] = 'd'; + current->menu[2].id = current->control.id; + current->menu[2].index = 2; + current->menu[2].name[0] = '\0'; + + int j = 0; + int def = 0; + control_widgets_list[n].widget = gtk_combo_box_text_new (); + for (j = 0; current->menu[j].index <= current->control.maximum; j++) + { + //if (debug_level > 0) + // printf("GUVCVIEW: adding menu entry %d: %d, %s\n",j, current->menu[j].index, current->menu[j].name); + gtk_combo_box_text_append_text ( + GTK_COMBO_BOX_TEXT (control_widgets_list[n].widget), + (char *) BITSMenu[j]); + if(current->value == current->menu[j].index) + def = j; + } + + gtk_combo_box_set_active (GTK_COMBO_BOX(control_widgets_list[n].widget), def); + gtk_widget_show (control_widgets_list[n].widget); + + g_object_set_data (G_OBJECT (control_widgets_list[n].widget), "control_info", + GINT_TO_POINTER(current->control.id)); + /*connect signal*/ + g_signal_connect (GTK_COMBO_BOX_TEXT(control_widgets_list[n].widget), "changed", + G_CALLBACK (combo_changed), device); + break; + } + + case V4L2_CID_FOCUS_LOGITECH: + case V4L2_CID_FOCUS_ABSOLUTE: + + if(!is_control_panel) + { + /*add a virtual control for software autofocus*/ + control_widgets_list[n-1].widget = gtk_check_button_new_with_label (_("Auto Focus (continuous)")); + control_widgets_list[n-1].widget2 = gtk_button_new_with_label (_("set Focus")); + + gtk_widget_show (control_widgets_list[n-1].widget); + gtk_widget_show (control_widgets_list[n-1].widget2); + + + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (control_widgets_list[n-1].widget), FALSE); + //device->aux_flag2 ? TRUE: FALSE); + + g_signal_connect (G_OBJECT (control_widgets_list[n-1].widget), "toggled", + G_CALLBACK (autofocus_changed), device); + g_signal_connect (G_OBJECT (control_widgets_list[n-1].widget2), "clicked", + G_CALLBACK (setfocus_clicked), device); + + gtk_grid_attach(GTK_GRID(img_controls_grid), control_widgets_list[n-1].widget, 1, i, 1 , 1); + gtk_widget_set_halign (control_widgets_list[n-1].widget, GTK_ALIGN_FILL); + gtk_widget_set_hexpand (control_widgets_list[n-1].widget, TRUE); + gtk_grid_attach(GTK_GRID(img_controls_grid), control_widgets_list[n-1].widget2, 2, i, 1 , 1); + + i++; + } + + default: /*standard case - hscale + spin*/ + { + /* check for valid range */ + if((current->control.maximum > current->control.minimum) && (current->control.step != 0)) + { + GtkAdjustment *adjustment = gtk_adjustment_new ( + current->value, + current->control.minimum, + current->control.maximum, + current->control.step, + current->control.step*10, + 0); + + control_widgets_list[n].widget = gtk_scale_new (GTK_ORIENTATION_HORIZONTAL, adjustment); + + gtk_scale_set_draw_value (GTK_SCALE (control_widgets_list[n].widget), FALSE); + gtk_range_set_round_digits(GTK_RANGE (control_widgets_list[n].widget), 0); + + gtk_widget_show (control_widgets_list[n].widget); + + control_widgets_list[n].widget2= gtk_spin_button_new(adjustment, current->control.step, 0); + + gtk_editable_set_editable(GTK_EDITABLE(control_widgets_list[n].widget2),TRUE); + + gtk_widget_show (control_widgets_list[n].widget2); + + g_object_set_data (G_OBJECT (control_widgets_list[n].widget), "control_info", + GINT_TO_POINTER(current->control.id)); + g_object_set_data (G_OBJECT (control_widgets_list[n].widget2), "control_info", + GINT_TO_POINTER(current->control.id)); + + if(!is_control_panel && + (current->control.id == V4L2_CID_FOCUS_LOGITECH || + current->control.id == V4L2_CID_FOCUS_ABSOLUTE)) + { + g_object_set_data (G_OBJECT (control_widgets_list[n-1].widget), "control_entry", + control_widgets_list[n].widget); + g_object_set_data (G_OBJECT (control_widgets_list[n-1].widget), "control2_entry", + control_widgets_list[n].widget2); + } + + /*connect signals*/ + g_signal_connect (GTK_SCALE(control_widgets_list[n].widget), "value-changed", + G_CALLBACK (slider_changed), device); + g_signal_connect(GTK_SPIN_BUTTON(control_widgets_list[n].widget2),"value-changed", + G_CALLBACK (spin_changed), device); + } + else + fprintf(stderr, "GUVCVIEW: (Invalid range) [MAX <= MIN] for control id: 0x%08x \n", current->control.id); + + break; + } + } + break; + +#ifdef V4L2_CTRL_TYPE_INTEGER64 + case V4L2_CTRL_TYPE_INTEGER64: + + widget = gtk_entry_new(); + gtk_entry_set_max_length(control_widgets_list[n].widget, current->control.maximum); + + //control_widgets_list[n].widget2 = gtk_button_new_from_stock(GTK_STOCK_APPLY); + control_widgets_list[n].widget2 = gtk_button_new_with_mnemonic (_("_Apply")); + + gtk_widget_show (control_widgets_list[n].widget); + gtk_widget_show (control_widgets_list[n].widget2); + + g_object_set_data (G_OBJECT (control_widgets_list[n].widget2), "control_info", + GINT_TO_POINTER(current->control.id)); + g_object_set_data (G_OBJECT (control_widgets_list[n].widget2), "control_entry", + widget); + + /*connect signal*/ + g_signal_connect (GTK_BUTTON(control_widgets_list[n].widget2), "clicked", + G_CALLBACK (int64_button_clicked), device); + + break; +#endif +#ifdef V4L2_CTRL_TYPE_STRING + case V4L2_CTRL_TYPE_STRING: + + control_widgets_list[n].widget = gtk_entry_new(); + gtk_entry_set_max_length(control_widgets_list[n].widget, current->control.maximum); + + //control_widgets_list[n].widget2= gtk_button_new_from_stock(GTK_STOCK_APPLY); + control_widgets_list[n].widget2 = gtk_button_new_with_mnemonic (_("_Apply")); + + gtk_widget_show (control_widgets_list[n].widget); + gtk_widget_show (control_widgets_list[n].widget2); + + g_object_set_data (G_OBJECT (control_widgets_list[n].widget2), "control_info", + GINT_TO_POINTER(current->control.id)); + g_object_set_data (G_OBJECT (control_widgets_list[n].widget2), "control_entry", + widget); + + /*connect signal*/ + g_signal_connect (GTK_BUTTON(control_widgets_list[n].widget2), "clicked", + G_CALLBACK (string_button_clicked), device); + + break; +#endif +#ifdef V4L2_CTRL_TYPE_BITMASK + case V4L2_CTRL_TYPE_BITMASK: + + control_widgets_list[n].widget = gtk_entry_new(); + + //control_widgets_list[n].widget2 = gtk_button_new_from_stock(GTK_STOCK_APPLY); + control_widgets_list[n].widget2 = gtk_button_new_with_mnemonic (_("_Apply")); + + gtk_widget_show (control_widgets_list[n].widget); + gtk_widget_show (control_widgets_list[n].widget2); + + g_object_set_data (G_OBJECT (control_widgets_list[n].widget2), "control_info", + GINT_TO_POINTER(current->control.id)); + g_object_set_data (G_OBJECT (control_widgets_list[n].widget2), "control_entry", + widget); + + g_signal_connect (GTK_BUTTON(control_widgets_list[n].widget2), "clicked", + G_CALLBACK (bitmask_button_clicked), device); + + break; +#endif +#ifdef V4L2_CTRL_TYPE_INTEGER_MENU + case V4L2_CTRL_TYPE_INTEGER_MENU: +#endif + case V4L2_CTRL_TYPE_MENU: + + if(current->menu) + { + int j = 0; + int def = 0; + control_widgets_list[n].widget = gtk_combo_box_text_new (); + + for (j = 0; current->menu[j].index <= current->control.maximum; j++) + { + if(current->control.type == V4L2_CTRL_TYPE_MENU) + { + gtk_combo_box_text_append_text ( + GTK_COMBO_BOX_TEXT (control_widgets_list[n].widget), + (char *) current->menu_entry[j]); + } +#ifdef V4L2_CTRL_TYPE_INTEGER_MENU + else + { + char buffer[30]="0"; + snprintf(buffer, "%" PRIu64 "", 29, current->menu[j].value); + gtk_combo_box_text_append_text ( + GTK_COMBO_BOX_TEXT (control_widgets_list[n].widget), buffer); + } +#endif + if(current->value == current->menu[j].index) + def = j; + } + + gtk_combo_box_set_active (GTK_COMBO_BOX(control_widgets_list[n].widget), def); + gtk_widget_show (control_widgets_list[n].widget); + + g_object_set_data (G_OBJECT (control_widgets_list[n].widget), "control_info", + GINT_TO_POINTER(current->control.id)); + + /*connect signal*/ + g_signal_connect (GTK_COMBO_BOX_TEXT(control_widgets_list[n].widget), "changed", + G_CALLBACK (combo_changed), device); + } + break; + + case V4L2_CTRL_TYPE_BUTTON: + + control_widgets_list[n].widget = gtk_button_new_with_label(" "); + gtk_widget_show (control_widgets_list[n].widget); + + g_object_set_data (G_OBJECT (control_widgets_list[n].widget), "control_info", + GINT_TO_POINTER(current->control.id)); + + g_signal_connect (GTK_BUTTON(control_widgets_list[n].widget), "clicked", + G_CALLBACK (button_clicked), device); + break; + + case V4L2_CTRL_TYPE_BOOLEAN: + + if(current->control.id ==V4L2_CID_DISABLE_PROCESSING_LOGITECH) + { + control_widgets_list[n].widget2 = gtk_combo_box_text_new (); + + gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(control_widgets_list[n].widget2), + "GBGB... | RGRG..."); + gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(control_widgets_list[n].widget2), + "GRGR... | BGBG..."); + gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(control_widgets_list[n].widget2), + "BGBG... | GRGR..."); + gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(control_widgets_list[n].widget2), + "RGRG... | GBGB..."); + + device->bayer_pix_order = 0; + gtk_combo_box_set_active(GTK_COMBO_BOX(control_widgets_list[n].widget2), device->bayer_pix_order); + + gtk_widget_show (control_widgets_list[n].widget2); + + /*connect signal*/ + g_signal_connect (GTK_COMBO_BOX_TEXT (control_widgets_list[n].widget2), "changed", + G_CALLBACK (bayer_pix_ord_changed), device); + + device->isbayer = (current->value ? TRUE : FALSE); + } + + control_widgets_list[n].widget = gtk_check_button_new(); + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (control_widgets_list[n].widget), + current->value ? TRUE : FALSE); + gtk_widget_show (control_widgets_list[n].widget); + + g_object_set_data (G_OBJECT (control_widgets_list[n].widget), "control_info", + GINT_TO_POINTER(current->control.id)); + + /*connect signal*/ + g_signal_connect (GTK_TOGGLE_BUTTON(control_widgets_list[n].widget), "toggled", + G_CALLBACK (check_changed), device); + + break; + + default: + printf("control[%d]:(unknown - 0x%x) 0x%x '%s'\n",i ,current->control.type, + current->control.id, current->control.name); + break; + } + + /*attach widgets to grid*/ + gtk_grid_attach(GTK_GRID(img_controls_grid), control_widgets_list[n].label, 0, i, 1 , 1); + + if(control_widgets_list[n].widget) + { + gtk_grid_attach(GTK_GRID(img_controls_grid), control_widgets_list[n].widget, 1, i, 1 , 1); + gtk_widget_set_halign (control_widgets_list[n].widget, GTK_ALIGN_FILL); + gtk_widget_set_hexpand (control_widgets_list[n].widget, TRUE); + } + + if(control_widgets_list[n].widget2) + { + gtk_grid_attach(GTK_GRID(img_controls_grid), control_widgets_list[n].widget2, 2, i, 1 , 1); + } + + i++; + } + + /*add control grid to parent container*/ + gtk_container_add(GTK_CONTAINER(parent), img_controls_grid); + + gui_gtk3_update_controls_state(device); + + return 0; +} + +/* + * update the controls widgets state + * args: + * device - pointer to device data + * + * asserts: + * device is not null + * + * returns: none + */ +void gui_gtk3_update_controls_state(v4l2_dev_t *device) +{ + /*asserts*/ + assert(device != NULL); + + v4l2_ctrl_t *current = device->list_device_controls; + + for(; current != NULL; current = current->next) + { + control_widgets_t *cur_widget = gui_gtk3_get_widgets_by_id(current->control.id); + + if(!cur_widget) + { + fprintf(stderr, "GUVCVIEW: (update widget state): control %x doesn't have a widget set\n", current->control.id); + continue; + } + + /*update controls values*/ + switch(current->control.type) + { +#ifdef V4L2_CTRL_TYPE_STRING + case V4L2_CTRL_TYPE_STRING: + { + char *text_input = g_strescape(current->string, ""); + gtk_entry_set_text (GTK_ENTRY(cur_widget->widget), text_input); + g_free(text_input); + break; + } +#endif + case V4L2_CTRL_TYPE_BOOLEAN: + /*disable widget signals*/ + g_signal_handlers_block_by_func(GTK_TOGGLE_BUTTON(cur_widget->widget), + G_CALLBACK (check_changed), device); + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (cur_widget->widget), + current->value ? TRUE : FALSE); + /*enable widget signals*/ + g_signal_handlers_unblock_by_func(GTK_TOGGLE_BUTTON(cur_widget->widget), + G_CALLBACK (check_changed), device); + break; + +#ifdef V4L2_CTRL_TYPE_BITMASK + case V4L2_CTRL_TYPE_BITMASK: + { + char *text_input = g_strdup_printf("0x%x", current->value); + gtk_entry_set_text (GTK_ENTRY(cur_widget->widget), text_input); + g_free(text_input); + break; + } +#endif + +#ifdef V4L2_CTRL_TYPE_INTEGER64 + case V4L2_CTRL_TYPE_INTEGER64: + { + char *text_input = g_strdup_printf("0x%" PRIx64 "", c->value64); + gtk_entry_set_text (GTK_ENTRY(cur_widget->widget), text_input); + g_free(text_input); + break; + } +#endif + + case V4L2_CTRL_TYPE_INTEGER: + if( current->control.id != V4L2_CID_PAN_RELATIVE && + current->control.id != V4L2_CID_TILT_RELATIVE && + current->control.id != V4L2_CID_PAN_RESET && + current->control.id != V4L2_CID_TILT_RESET && + current->control.id != V4L2_CID_LED1_MODE_LOGITECH && + current->control.id != V4L2_CID_RAW_BITS_PER_PIXEL_LOGITECH ) + { + /*disable widget signals*/ + g_signal_handlers_block_by_func(GTK_SCALE (cur_widget->widget), + G_CALLBACK (slider_changed), device); + gtk_range_set_value (GTK_RANGE (cur_widget->widget), current->value); + /*enable widget signals*/ + g_signal_handlers_unblock_by_func(GTK_SCALE (cur_widget->widget), + G_CALLBACK (slider_changed), device); + + if(cur_widget->widget2) + { + /*disable widget signals*/ + g_signal_handlers_block_by_func(GTK_SPIN_BUTTON(cur_widget->widget2), + G_CALLBACK (spin_changed), device); + gtk_spin_button_set_value (GTK_SPIN_BUTTON(cur_widget->widget2), current->value); + /*enable widget signals*/ + g_signal_handlers_unblock_by_func(GTK_SPIN_BUTTON(cur_widget->widget2), + G_CALLBACK (spin_changed), device); + } + } + break; + +#ifdef V4L2_CTRL_TYPE_INTEGER_MENU + case V4L2_CTRL_TYPE_INTEGER_MENU: +#endif + case V4L2_CTRL_TYPE_MENU: + { + /*disable widget signals*/ + g_signal_handlers_block_by_func(GTK_COMBO_BOX_TEXT(cur_widget->widget), + G_CALLBACK (combo_changed), device); + /*get new index*/ + int j = 0; + int def = 0; + for (j = 0; current->menu[j].index <= current->control.maximum; j++) + { + if(current->value == current->menu[j].index) + def = j; + } + + gtk_combo_box_set_active(GTK_COMBO_BOX(cur_widget->widget), def); + /*enable widget signals*/ + g_signal_handlers_unblock_by_func(GTK_COMBO_BOX_TEXT(cur_widget->widget), + G_CALLBACK (combo_changed), device); + break; + } + + default: + break; + + } + + /*update flags (enable disable)*/ + if((current->control.flags & V4L2_CTRL_FLAG_GRABBED) || + (current->control.flags & V4L2_CTRL_FLAG_DISABLED)) + { + if(cur_widget->label) + gtk_widget_set_sensitive (cur_widget->label, FALSE); + if(cur_widget->widget) + gtk_widget_set_sensitive (cur_widget->widget, FALSE); + if(cur_widget->widget2) + gtk_widget_set_sensitive (cur_widget->widget2, FALSE); + } + else + { + if(cur_widget->label) + gtk_widget_set_sensitive (cur_widget->label, TRUE); + if(cur_widget->widget) + gtk_widget_set_sensitive (cur_widget->widget, TRUE); + if(cur_widget->widget2) + gtk_widget_set_sensitive (cur_widget->widget2, TRUE); + } + } +} diff -Nru guvcview-1.7.3/guvcview/gui_gtk3_videoctrls.c guvcview-2.0.1+ubuntu1~ppa1/guvcview/gui_gtk3_videoctrls.c --- guvcview-1.7.3/guvcview/gui_gtk3_videoctrls.c 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/guvcview/gui_gtk3_videoctrls.c 2014-10-05 10:41:44.000000000 +0000 @@ -0,0 +1,386 @@ +/*******************************************************************************# +# guvcview http://guvcview.sourceforge.net # +# # +# Paulo Assis # +# Nobuhiro Iwamatsu # +# Add UYVY color support(Macbook iSight) # +# Flemming Frandsen # +# Add VU meter OSD # +# # +# This program is free software; you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation; either version 2 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program; if not, write to the Free Software # +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # +# # +********************************************************************************/ + +#include +#include +#include +#include +#include +#include +#include +#include +/* support for internationalization - i18n */ +#include +#include + +#include "gui_gtk3.h" +#include "gui_gtk3_callbacks.h" +#include "gui.h" +/*add this last to avoid redefining _() and N_()*/ +#include "gview.h" +#include "gviewrender.h" +#include "video_capture.h" + + +extern int debug_level; + +/* + * attach v4l2 video controls tab widget + * args: + * device - pointer to device data we want to attach the gui for + * parent - tab parent widget + * + * asserts: + * device is not null + * parent is not null + * + * returns: error code (0 -OK) + */ +int gui_attach_gtk3_videoctrls(v4l2_dev_t *device, GtkWidget *parent) +{ + /*assertions*/ + assert(device != NULL); + assert(parent != NULL); + + if(debug_level > 1) + printf("GUVCVIEW: attaching video controls\n"); + + int format_index = v4l2core_get_frame_format_index(device, device->requested_fmt); + + if(format_index < 0) + { + gui_error(device, "Guvcview error", "invalid pixel format", 0); + printf("GUVCVIEW: invalid pixel format\n"); + } + + int resolu_index = v4l2core_get_format_resolution_index( + device, + format_index, + device->format.fmt.pix.width, + device->format.fmt.pix.height); + + if(resolu_index < 0) + { + gui_error(device, "Guvcview error", "invalid resolution index", 0); + printf("GUVCVIEW: invalid resolution index\n"); + } + + GtkWidget *video_controls_grid = gtk_grid_new(); + gtk_widget_show (video_controls_grid); + + gtk_grid_set_column_homogeneous (GTK_GRID(video_controls_grid), FALSE); + gtk_widget_set_hexpand (video_controls_grid, TRUE); + gtk_widget_set_halign (video_controls_grid, GTK_ALIGN_FILL); + + gtk_grid_set_row_spacing (GTK_GRID(video_controls_grid), 4); + gtk_grid_set_column_spacing (GTK_GRID (video_controls_grid), 4); + gtk_container_set_border_width (GTK_CONTAINER (video_controls_grid), 2); + + char temp_str[20]; + int line = 0; + int i =0; + + /*---- Devices ----*/ + GtkWidget *label_Device = gtk_label_new(_("Device:")); + gtk_misc_set_alignment (GTK_MISC (label_Device), 1, 0.5); + + gtk_grid_attach (GTK_GRID(video_controls_grid), label_Device, 0, line, 1, 1); + + gtk_widget_show (label_Device); + + set_wgtDevices_gtk3(gtk_combo_box_text_new()); + gtk_widget_set_halign (get_wgtDevices_gtk3(), GTK_ALIGN_FILL); + gtk_widget_set_hexpand (get_wgtDevices_gtk3(), TRUE); + + v4l2_device_list *device_list = v4l2core_get_device_list(); + + if (device_list->num_devices < 1) + { + /*use current*/ + gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(get_wgtDevices_gtk3()), + device->videodevice); + gtk_combo_box_set_active(GTK_COMBO_BOX(get_wgtDevices_gtk3()),0); + } + else + { + for(i = 0; i < (device_list->num_devices); i++) + { + gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(get_wgtDevices_gtk3()), + device_list->list_devices[i].name); + if(device_list->list_devices[i].current) + gtk_combo_box_set_active(GTK_COMBO_BOX(get_wgtDevices_gtk3()),i); + } + } + gtk_grid_attach (GTK_GRID(video_controls_grid), get_wgtDevices_gtk3(), 1, line, 1 ,1); + gtk_widget_show (get_wgtDevices_gtk3()); + g_signal_connect (GTK_COMBO_BOX_TEXT(get_wgtDevices_gtk3()), "changed", + G_CALLBACK (devices_changed), device); + + /*---- Frame Rate ----*/ + line++; + + GtkWidget *label_FPS = gtk_label_new(_("Frame Rate:")); + gtk_misc_set_alignment (GTK_MISC (label_FPS), 1, 0.5); + gtk_widget_show (label_FPS); + + gtk_grid_attach (GTK_GRID(video_controls_grid), label_FPS, 0, line, 1, 1); + + GtkWidget *wgtFrameRate = gtk_combo_box_text_new (); + gtk_widget_set_halign (wgtFrameRate, GTK_ALIGN_FILL); + gtk_widget_set_hexpand (wgtFrameRate, TRUE); + + gtk_widget_show (wgtFrameRate); + gtk_widget_set_sensitive (wgtFrameRate, TRUE); + + int deffps=0; + + if (debug_level > 0) + printf("GUVCVIEW: frame rates of resolution index %d = %d \n", + resolu_index+1, + device->list_stream_formats[format_index].list_stream_cap[resolu_index].numb_frates); + for ( i = 0 ; i < device->list_stream_formats[format_index].list_stream_cap[resolu_index].numb_frates ; ++i) + { + g_snprintf( + temp_str, + 18, + "%i/%i fps", + device->list_stream_formats[format_index].list_stream_cap[resolu_index].framerate_denom[i], + device->list_stream_formats[format_index].list_stream_cap[resolu_index].framerate_num[i]); + + gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(wgtFrameRate), temp_str); + + if (( device->fps_num == device->list_stream_formats[format_index].list_stream_cap[resolu_index].framerate_num[i]) && + ( device->fps_denom == device->list_stream_formats[format_index].list_stream_cap[resolu_index].framerate_denom[i])) + deffps=i;//set selected + } + + gtk_grid_attach (GTK_GRID(video_controls_grid), wgtFrameRate, 1, line, 1 ,1); + + gtk_combo_box_set_active(GTK_COMBO_BOX(wgtFrameRate), deffps); + + if (deffps==0) + { + if (device->list_stream_formats[format_index].list_stream_cap[resolu_index].framerate_denom) + device->fps_denom = device->list_stream_formats[format_index].list_stream_cap[resolu_index].framerate_denom[0]; + + if (device->list_stream_formats[format_index].list_stream_cap[resolu_index].framerate_num) + device->fps_num = device->list_stream_formats[format_index].list_stream_cap[resolu_index].framerate_num[0]; + + if(debug_level > 0) + printf("GUVCVIEW: fps is set to %i/%i\n", device->fps_num, device->fps_denom); + } + + g_signal_connect (GTK_COMBO_BOX_TEXT(wgtFrameRate), "changed", + G_CALLBACK (frame_rate_changed), device); + + /*try to sync the device fps (capture thread must have started by now)*/ + v4l2core_request_framerate_update (device); + + /*---- Resolution ----*/ + line++; + + GtkWidget *label_Resol = gtk_label_new(_("Resolution:")); + gtk_misc_set_alignment (GTK_MISC (label_Resol), 1, 0.5); + gtk_grid_attach (GTK_GRID(video_controls_grid), label_Resol, 0, line, 1, 1); + gtk_widget_show (label_Resol); + + GtkWidget *wgtResolution = gtk_combo_box_text_new (); + gtk_widget_set_halign (wgtResolution, GTK_ALIGN_FILL); + gtk_widget_set_hexpand (wgtResolution, TRUE); + + gtk_widget_show (wgtResolution); + gtk_widget_set_sensitive (wgtResolution, TRUE); + + int defres=0; + + if (debug_level > 0) + printf("GUVCVIEW: resolutions of format(%d) = %d \n", + format_index+1, + device->list_stream_formats[format_index].numb_res); + for(i = 0 ; i < device->list_stream_formats[format_index].numb_res ; i++) + { + if (device->list_stream_formats[format_index].list_stream_cap[i].width > 0) + { + g_snprintf( + temp_str, + 18, + "%ix%i", + device->list_stream_formats[format_index].list_stream_cap[i].width, + device->list_stream_formats[format_index].list_stream_cap[i].height); + + gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(wgtResolution), temp_str); + + if ((device->format.fmt.pix.width == device->list_stream_formats[format_index].list_stream_cap[i].width) && + (device->format.fmt.pix.height == device->list_stream_formats[format_index].list_stream_cap[i].height)) + defres=i;//set selected resolution index + } + } + + gtk_combo_box_set_active(GTK_COMBO_BOX(wgtResolution), defres); + + gtk_grid_attach (GTK_GRID(video_controls_grid), wgtResolution, 1, line, 1 ,1); + + g_object_set_data (G_OBJECT (wgtResolution), "control_fps", wgtFrameRate); + + g_signal_connect (wgtResolution, "changed", + G_CALLBACK (resolution_changed), device); + + + /*---- Input Format ----*/ + line++; + + GtkWidget *label_InpType = gtk_label_new(_("Camera Output:")); + gtk_misc_set_alignment (GTK_MISC (label_InpType), 1, 0.5); + + gtk_widget_show (label_InpType); + + gtk_grid_attach (GTK_GRID(video_controls_grid), label_InpType, 0, line, 1, 1); + + GtkWidget *wgtInpType= gtk_combo_box_text_new (); + gtk_widget_set_halign (wgtInpType, GTK_ALIGN_FILL); + gtk_widget_set_hexpand (wgtInpType, TRUE); + + gtk_widget_show (wgtInpType); + gtk_widget_set_sensitive (wgtInpType, TRUE); + + int fmtind=0; + for (fmtind=0; fmtind < device->numb_formats; fmtind++) + { + gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(wgtInpType), device->list_stream_formats[fmtind].fourcc); + if(device->requested_fmt == device->list_stream_formats[fmtind].format) + gtk_combo_box_set_active(GTK_COMBO_BOX(wgtInpType), fmtind); /*set active*/ + } + + gtk_grid_attach (GTK_GRID(video_controls_grid), wgtInpType, 1, line, 1 ,1); + + //g_object_set_data (G_OBJECT (wgtInpType), "control_fps", wgtFrameRate); + g_object_set_data (G_OBJECT (wgtInpType), "control_resolution", wgtResolution); + + g_signal_connect (GTK_COMBO_BOX_TEXT(wgtInpType), "changed", + G_CALLBACK (format_changed), device); + + + /* ----- Filter controls -----*/ + line++; + GtkWidget *label_videoFilters = gtk_label_new(_("---- Video Filters ----")); + gtk_misc_set_alignment (GTK_MISC (label_videoFilters), 0.5, 0.5); + + gtk_grid_attach (GTK_GRID(video_controls_grid), label_videoFilters, 0, line, 3, 1); + gtk_widget_show (label_videoFilters); + + /*filters grid*/ + line++; + GtkWidget *table_filt = gtk_grid_new(); + gtk_grid_set_row_spacing (GTK_GRID (table_filt), 4); + gtk_grid_set_column_spacing (GTK_GRID (table_filt), 4); + gtk_container_set_border_width (GTK_CONTAINER (table_filt), 4); + gtk_widget_set_size_request (table_filt, -1, -1); + + gtk_widget_set_halign (table_filt, GTK_ALIGN_FILL); + gtk_widget_set_hexpand (table_filt, TRUE); + gtk_grid_attach (GTK_GRID(video_controls_grid), table_filt, 0, line, 3, 1); + gtk_widget_show (table_filt); + + /* Mirror FX */ + GtkWidget *FiltMirrorEnable = gtk_check_button_new_with_label (_(" Mirror")); + g_object_set_data (G_OBJECT (FiltMirrorEnable), "filt_info", GINT_TO_POINTER(REND_FX_YUV_MIRROR)); + gtk_widget_set_halign (FiltMirrorEnable, GTK_ALIGN_FILL); + gtk_widget_set_hexpand (FiltMirrorEnable, TRUE); + gtk_grid_attach(GTK_GRID(table_filt), FiltMirrorEnable, 0, 0, 1, 1); + + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(FiltMirrorEnable), + (get_render_fx_mask() & REND_FX_YUV_MIRROR) > 0); + gtk_widget_show (FiltMirrorEnable); + g_signal_connect (GTK_CHECK_BUTTON(FiltMirrorEnable), "toggled", + G_CALLBACK (render_fx_filter_changed), device); + /* Upturn FX */ + GtkWidget *FiltUpturnEnable = gtk_check_button_new_with_label (_(" Invert")); + g_object_set_data (G_OBJECT (FiltUpturnEnable), "filt_info", GINT_TO_POINTER(REND_FX_YUV_UPTURN)); + gtk_widget_set_halign (FiltUpturnEnable, GTK_ALIGN_FILL); + gtk_widget_set_hexpand (FiltUpturnEnable, TRUE); + gtk_grid_attach(GTK_GRID(table_filt), FiltUpturnEnable, 1, 0, 1, 1); + + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(FiltUpturnEnable), + (get_render_fx_mask() & REND_FX_YUV_UPTURN) > 0); + gtk_widget_show (FiltUpturnEnable); + g_signal_connect (GTK_CHECK_BUTTON(FiltUpturnEnable), "toggled", + G_CALLBACK (render_fx_filter_changed), device); + /* Negate FX */ + GtkWidget *FiltNegateEnable = gtk_check_button_new_with_label (_(" Negative")); + g_object_set_data (G_OBJECT (FiltNegateEnable), "filt_info", GINT_TO_POINTER(REND_FX_YUV_NEGATE)); + gtk_widget_set_halign (FiltNegateEnable, GTK_ALIGN_FILL); + gtk_widget_set_hexpand (FiltNegateEnable, TRUE); + gtk_grid_attach(GTK_GRID(table_filt), FiltNegateEnable, 2, 0, 1, 1); + + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(FiltNegateEnable), + (get_render_fx_mask() & REND_FX_YUV_NEGATE) >0 ); + gtk_widget_show (FiltNegateEnable); + g_signal_connect (GTK_CHECK_BUTTON(FiltNegateEnable), "toggled", + G_CALLBACK (render_fx_filter_changed), device); + /* Mono FX */ + GtkWidget *FiltMonoEnable = gtk_check_button_new_with_label (_(" Mono")); + g_object_set_data (G_OBJECT (FiltMonoEnable), "filt_info", GINT_TO_POINTER(REND_FX_YUV_MONOCR)); + gtk_widget_set_halign (FiltMonoEnable, GTK_ALIGN_FILL); + gtk_widget_set_hexpand (FiltMonoEnable, TRUE); + gtk_grid_attach(GTK_GRID(table_filt), FiltMonoEnable, 3, 0, 1, 1); + + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(FiltMonoEnable), + (get_render_fx_mask() & REND_FX_YUV_MONOCR) > 0); + gtk_widget_show (FiltMonoEnable); + g_signal_connect (GTK_CHECK_BUTTON(FiltMonoEnable), "toggled", + G_CALLBACK (render_fx_filter_changed), device); + + /* Pieces FX */ + GtkWidget *FiltPiecesEnable = gtk_check_button_new_with_label (_(" Pieces")); + g_object_set_data (G_OBJECT (FiltPiecesEnable), "filt_info", GINT_TO_POINTER(REND_FX_YUV_PIECES)); + gtk_widget_set_halign (FiltPiecesEnable, GTK_ALIGN_FILL); + gtk_widget_set_hexpand (FiltPiecesEnable, TRUE); + gtk_grid_attach(GTK_GRID(table_filt), FiltPiecesEnable, 4, 0, 1, 1); + + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(FiltPiecesEnable), + (get_render_fx_mask() & REND_FX_YUV_PIECES) > 0); + gtk_widget_show (FiltPiecesEnable); + g_signal_connect (GTK_CHECK_BUTTON(FiltPiecesEnable), "toggled", + G_CALLBACK (render_fx_filter_changed), device); + + /* Particles */ + GtkWidget *FiltParticlesEnable = gtk_check_button_new_with_label (_(" Particles")); + g_object_set_data (G_OBJECT (FiltParticlesEnable), "filt_info", GINT_TO_POINTER(REND_FX_YUV_PARTICLES)); + gtk_widget_set_halign (FiltParticlesEnable, GTK_ALIGN_FILL); + gtk_widget_set_hexpand (FiltParticlesEnable, TRUE); + gtk_grid_attach(GTK_GRID(table_filt), FiltParticlesEnable, 5, 0, 1, 1); + + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(FiltParticlesEnable), + (get_render_fx_mask() & REND_FX_YUV_PARTICLES) > 0); + gtk_widget_show (FiltParticlesEnable); + g_signal_connect (GTK_CHECK_BUTTON(FiltParticlesEnable), "toggled", + G_CALLBACK (render_fx_filter_changed), device); + + + /*add control grid to parent container*/ + gtk_container_add(GTK_CONTAINER(parent), video_controls_grid); + + return 0; +} diff -Nru guvcview-1.7.3/guvcview/gui.h guvcview-2.0.1+ubuntu1~ppa1/guvcview/gui.h --- guvcview-1.7.3/guvcview/gui.h 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/guvcview/gui.h 2014-10-05 10:41:44.000000000 +0000 @@ -0,0 +1,515 @@ +/*******************************************************************************# +# guvcview http://guvcview.sourceforge.net # +# # +# Paulo Assis # +# Nobuhiro Iwamatsu # +# Add UYVY color support(Macbook iSight) # +# Flemming Frandsen # +# Add VU meter OSD # +# # +# This program is free software; you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation; either version 2 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program; if not, write to the Free Software # +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # +# # +********************************************************************************/ + +#ifndef GUI_H +#define GUI_H + +#include "gviewv4l2core.h" + +#define GUI_NONE (0) +#define GUI_GTK3 (1) + +#define DEF_ACTION_IMAGE (0) +#define DEF_ACTION_VIDEO (1) + +/* + * gets the current video codec index + * args: + * none + * + * asserts: + * none + * + * returns: current codec index + */ +int get_video_codec_ind(); + +/* + * sets the current video codec index + * args: + * index - codec index + * + * asserts: + * none + * + * returns: none + */ +void set_video_codec_ind(int index); + +/* + * gets the current audio codec index + * args: + * none + * + * asserts: + * none + * + * returns: current codec index + */ +int get_audio_codec_ind(); + +/* + * sets the current audio codec index + * args: + * index - codec index + * + * asserts: + * none + * + * returns: none + */ +void set_audio_codec_ind(int index); + +/* + * gets the current fps numerator + * args: + * none + * + * asserts: + * none + * + * returns: current fps numerator + */ +//int gui_get_fps_num(); + +/* + * gets the current fps denominator + * args: + * none + * + * asserts: + * none + * + * returns: current fps denominator + */ +//int gui_get_fps_denom(); + +/* + * stores the fps + * args: + * fps - array with fps numerator and denominator + * + * asserts: + * none + * + * returns: none + */ +void gui_set_fps(int fps[2]); + +/* + * gets the default camera button action + * args: + * none + * + * asserts: + * none + * + * returns: default camera button action + */ +int get_default_camera_button_action(); + +/* + * sets the default camera button action + * args: + * action: camera button default action + * + * asserts: + * none + * + * returns: none + */ +void set_default_camera_button_action(int action); + +/* + * gets the control profile file name + * args: + * none + * + * asserts: + * none + * + * returns: control profile file name + */ +char *get_profile_name(); + +/* + * sets the control profile file name + * args: + * name: control profile file name + * + * asserts: + * none + * + * returns: none + */ +void set_profile_name(const char *name); + +/* + * gets the control profile path (to dir) + * args: + * none + * + * asserts: + * none + * + * returns: control profile file name + */ +char *get_profile_path(); + +/* + * sets the control profile path (to dir) + * args: + * path: control profile path + * + * asserts: + * none + * + * returns: none + */ +void set_profile_path(const char *path); + +/* + * gets video sufix flag + * args: + * none + * + * asserts: + * none + * + * returns: video sufix flag + */ +int get_video_sufix_flag(); + +/* + * sets the video sufix flag + * args: + * flag: video sufix flag + * + * asserts: + * none + * + * returns: none + */ +void set_video_sufix_flag(int flag); + +/* + * gets video muxer + * args: + * none + * + * asserts: + * none + * + * returns: video muxer + */ +int get_video_muxer(); + +/* + * sets video muxer + * args: + * muxer - video muxer (ENCODER_MUX_[MKV|WEBM|AVI]) + * + * asserts: + * none + * + * returns: none + */ +void set_video_muxer(int muxer); + +/* + * gets the video file basename + * args: + * none + * + * asserts: + * none + * + * returns: video file basename + */ +char *get_video_name(); + +/* + * sets the video file basename + * args: + * name: video file basename + * + * asserts: + * none + * + * returns: none + */ +void set_video_name(const char *name); + +/* + * gets the video file path (to dir) + * args: + * none + * + * asserts: + * none + * + * returns: video file path + */ +char *get_video_path(); + +/* + * sets video path (to dir) + * args: + * path: video file path + * + * asserts: + * none + * + * returns: none + */ +void set_video_path(const char *path); + +/* + * gets photo sufix flag + * args: + * none + * + * asserts: + * none + * + * returns: photo sufix flag + */ +int get_photo_sufix_flag(); + +/* + * sets the photo sufix flag + * args: + * flag: photo sufix flag + * + * asserts: + * none + * + * returns: none + */ +void set_photo_sufix_flag(int flag); + +/* + * gets photo format + * args: + * none + * + * asserts: + * none + * + * returns: photo format + */ +int get_photo_format(); + +/* + * sets photo format + * args: + * format - photo format (IMG_FMT_[JPG|BMP|PNG|RAW]) + * + * asserts: + * none + * + * returns: none + */ +void set_photo_format(int format); + +/* + * gets the photo file basename + * args: + * none + * + * asserts: + * none + * + * returns: photo file basename + */ +char *get_photo_name(); + +/* + * sets the photo file basename and image format + * args: + * name: photo file basename + * + * asserts: + * none + * + * returns: none + */ +void set_photo_name(const char *name); + +/* + * gets the photo file path (to dir) + * args: + * none + * + * asserts: + * none + * + * returns: photo file path + */ +char *get_photo_path(); + +/* + * sets photo path (to dir) + * args: + * path: photo file path + * + * asserts: + * none + * + * returns: none + */ +void set_photo_path(const char *path); + +/* + * click image capture button + * args: + * none + * + * asserts: + * none + * + * returns: none + */ +void gui_click_image_capture_button(); + +/* + * click video capture button + * args: + * data - pointer to user data + * + * asserts: + * none + * + * returns: none + */ +void gui_click_video_capture_button(void *data); + +/* + * sets the Image capture button label + * args: + * label: Image capture button label + * + * asserts: + * none + * + * returns: none + */ +void gui_set_image_capture_button_label(const char *label); + +/* + * sets the Video capture button status (on|off) + * args: + * flag: video capture button status + * + * asserts: + * none + * + * returns: none + */ +void gui_set_video_capture_button_status(int flag); + +/* + * set webm codecs in codecs list + * args: + * none + * + * asserts: + * none + * + * returns: none + */ +void set_webm_codecs(); + +/* + * GUI warning/error dialog + * args: + * device - pointer to device data + * title - dialog title string + * message - error message string + * fatal - flag a fatal error (display device list combo box) + * + * asserts: + * none + * + * returns: none + */ +void gui_error(v4l2_dev_t *device, + const char *title, + const char *message, + int fatal); + +/* + * adds a message to the status bar + * args: + * message - message string + * + * asserts: + * none + * + * returns: none + */ +void gui_status_message(const char *message); + +/* + * GUI initialization + * args: + * device - pointer to device data we want to attach the gui for + * gui - gui API to use (GUI_NONE, GUI_GTK3, ...) + * width - window width + * height - window height + * control_panel - flag control panel mode (1 -set; 0 -no) + * + * asserts: + * none + * + * returns: error code + */ +int gui_attach(v4l2_dev_t *device, int gui, int width, int height, int control_panel); + +/* + * run the GUI loop + * args: + * none + * + * asserts: + * none + * + * returns: error code + */ +int gui_run(); + +/* + * closes and cleans the GUI + * args: + * none + * + * asserts: + * none + * + * returns: none + */ +void gui_close(); + +#endif diff -Nru guvcview-1.7.3/guvcview/guvcview.c guvcview-2.0.1+ubuntu1~ppa1/guvcview/guvcview.c --- guvcview-1.7.3/guvcview/guvcview.c 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/guvcview/guvcview.c 2014-10-05 10:41:44.000000000 +0000 @@ -0,0 +1,387 @@ +/*******************************************************************************# +# guvcview http://guvcview.sourceforge.net # +# # +# Paulo Assis # +# # +# This program is free software; you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation; either version 2 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program; if not, write to the Free Software # +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # +# # +********************************************************************************/ + +#include +#include +#include +#include +#include +#include +#include +#include + +#include "gview.h" +#include "gviewv4l2core.h" +#include "gviewrender.h" +#include "gviewencoder.h" +#include "core_time.h" + +#include "../config.h" +#include "video_capture.h" +#include "options.h" +#include "config.h" +#include "gui.h" +#include "core_io.h" + +int debug_level = 0; + +static __THREAD_TYPE capture_thread; + +/* + * signal callback + * args: + * signum - signal number + * + * return: none + */ +void signal_callback_handler(int signum) +{ + printf("GUVCVIEW Caught signal %d\n", signum); + + switch(signum) + { + case SIGINT: + /* Terminate program */ + quit_callback(NULL); + break; + + case SIGUSR1: + /* (start/stop) record video */ + break; + + case SIGUSR2: + /* save image */ + video_capture_save_image(); + break; + } +} + +int main(int argc, char *argv[]) +{ + /*check stack size*/ + const rlim_t kStackSize = 128L * 1024L * 1024L; /* min stack size = 128 Mb*/ + struct rlimit rl; + int result; + + result = getrlimit(RLIMIT_STACK, &rl); + if (result == 0) + { + if (rl.rlim_cur < kStackSize) + { + rl.rlim_cur = kStackSize; + result = setrlimit(RLIMIT_STACK, &rl); + if (result != 0) + { + fprintf(stderr, "GUVCVIEW: setrlimit returned result = %d\n", result); + } + } + } + + // Register signal and signal handler + signal(SIGINT, signal_callback_handler); + signal(SIGUSR1, signal_callback_handler); + signal(SIGUSR2, signal_callback_handler); + + /*localization*/ + char* lc_all = setlocale (LC_ALL, ""); + char* lc_dir = bindtextdomain (GETTEXT_PACKAGE, PACKAGE_LOCALE_DIR); + bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8"); + char* txtdom = textdomain (GETTEXT_PACKAGE); + + /*parse command line options*/ + if(options_parse(argc, argv)) + return 0; + + /*get command line options*/ + options_t *my_options = options_get(); + + char *config_path = smart_cat(getenv("HOME"), '/', ".config/guvcview2"); + mkdir(config_path, 0777); + + char *device_name = get_file_basename(my_options->device); + + char *config_file = smart_cat(config_path, '/', device_name); + + /*clean strings*/ + free(config_path); + free(device_name); + + /*load config data*/ + config_load(config_file); + + /*update config with options*/ + config_update(my_options); + + /*get config data*/ + config_t *my_config = config_get(); + + debug_level = my_options->verbosity; + + if (debug_level > 1) printf("GUVCVIEW: language catalog=> dir:%s type:%s cat:%s.mo\n", + lc_dir, lc_all, txtdom); + + /*select render API*/ + int render = RENDER_SDL; + + if(strcasecmp(my_config->render, "none") == 0) + render = RENDER_NONE; + else if(strcasecmp(my_config->render, "sdl") == 0) + render = RENDER_SDL; + + /*select gui API*/ + int gui = GUI_GTK3; + + if(strcasecmp(my_config->gui, "none") == 0) + gui = GUI_NONE; + else if(strcasecmp(my_config->gui, "gtk3") == 0) + gui = GUI_GTK3; + + /*select audio API*/ + int audio = AUDIO_PORTAUDIO; + + if(strcasecmp(my_config->audio, "none") == 0) + audio = AUDIO_NONE; + else if(strcasecmp(my_config->audio, "port") == 0) + audio = AUDIO_PORTAUDIO; +#if HAS_PULSEAUDIO + else if(strcasecmp(my_config->audio, "pulse") == 0) + audio = AUDIO_PULSE; +#endif + + if(debug_level > 1) + printf("GUVCVIEW: main thread (tid: %u)\n", + (unsigned int) syscall (SYS_gettid)); + + /*initialize the v4l2 core*/ + v4l2core_set_verbosity(debug_level); + + if(my_options->disable_libv4l2) + v4l2core_disable_libv4l2(); + /*init the device list*/ + v4l2core_init_device_list(); + /*get the device data (redefines language catalog)*/ + v4l2_dev_t *device = v4l2core_init_dev(my_options->device); + + if(device) + set_render_flag(render); + else + { + char message[50]; + snprintf(message, 49, "no video device (%s) found", my_options->device); + gui_error(device, "Guvcview error", "no video device found", 1); + v4l2core_close_v4l2_device_list(); + options_clean(); + return -1; + } + + /*select capture method*/ + if(strcasecmp(my_config->capture, "read") == 0) + v4l2core_set_capture_method(device, IO_READ); + else + v4l2core_set_capture_method(device, IO_MMAP); + + /*set software autofocus sort method*/ + v4l2core_soft_autofocus_set_sort(AUTOF_SORT_INSERT); + + /*set the intended fps*/ + device->fps_num = my_config->fps_num; + device->fps_denom = my_config->fps_denom; + + if(debug_level > 2) + printf("GUVCVIEW: fps configured to %i/%i\n", device->fps_num, device->fps_denom); + + /*set fx masks*/ + set_render_fx_mask(my_config->video_fx); + set_audio_fx_mask(my_config->audio_fx); + + /*select video codec*/ + if(debug_level > 1) + printf("GUVCVIEW: setting video codec to '%s'\n", my_config->video_codec); + + int vcodec_ind = encoder_get_video_codec_ind_4cc(my_config->video_codec); + if(vcodec_ind < 0) + { + char message[50]; + snprintf(message, 49, "invalid video codec '%s' using raw input", my_config->video_codec); + gui_error(device, "Guvcview warning", message, 0); + + fprintf(stderr, "GUVCVIEW: invalid video codec '%s' using raw input\n", my_config->video_codec); + vcodec_ind = 0; + } + set_video_codec_ind(vcodec_ind); + + /*select audio codec*/ + if(debug_level > 1) + printf("GUVCVIEW: setting audio codec to '%s'\n", my_config->audio_codec); + int acodec_ind = encoder_get_audio_codec_ind_name(my_config->audio_codec); + if(acodec_ind < 0) + { + char message[50]; + snprintf(message, 49, "invalid audio codec '%s' using pcm input", my_config->audio_codec); + gui_error(device, "Guvcview warning", message, 0); + + fprintf(stderr, "GUVCVIEW: invalid audio codec '%s' using pcm input\n", my_config->audio_codec); + acodec_ind = 0; + } + set_audio_codec_ind(acodec_ind); + + /*check if need to load a profile*/ + if(my_options->prof_filename) + v4l2core_load_control_profile(device, my_options->prof_filename); + + /*set the profile file*/ + if(!my_config->profile_name) + my_config->profile_name = strdup(get_profile_name()); + if(!my_config->profile_path) + my_config->profile_path = strdup(get_profile_path()); + set_profile_name(my_config->profile_name); + set_profile_path(my_config->profile_path); + + /*set the video file*/ + if(!my_config->video_name) + my_config->video_name = strdup(get_video_name()); + if(!my_config->video_path) + my_config->video_path = strdup(get_video_path()); + set_video_name(my_config->video_name); + set_video_path(my_config->video_path); + + /*set the photo(image) file*/ + if(!my_config->photo_name) + my_config->photo_name = strdup(get_photo_name()); + if(!my_config->photo_path) + my_config->photo_path = strdup(get_photo_path()); + set_photo_name(my_config->photo_name); + set_photo_path(my_config->photo_path); + + /*set audio interface verbosity*/ + audio_set_verbosity(debug_level); + + /*create the inital audio context (stored staticly in video_capture)*/ + create_audio_context(audio); + + /*get the audio context*/ + audio_context_t *audio_ctx = get_audio_context(); + if(audio_ctx != NULL) + { + if(my_config->audio_device < 0) + my_config->audio_device = audio_ctx->device; /*api default*/ + else if (my_config->audio_device >= audio_ctx->num_input_dev) + my_config->audio_device = audio_ctx->num_input_dev - 1; + + /*set the audio device defaults*/ + audio_ctx->device = my_config->audio_device; + audio_ctx->channels = audio_ctx->list_devices[audio_ctx->device].channels; + if(audio_ctx->channels > 2) + audio_ctx->channels = 2;/*limit it to stereo input*/ + audio_ctx->samprate = audio_ctx->list_devices[audio_ctx->device].samprate; + } + else + fprintf(stderr, "GUVCVIEW: couldn't get a valid audio context for the selected api - disabling audio\n"); + + encoder_set_verbosity(debug_level); + /*init the encoder*/ + encoder_init(); + + /*start capture thread if not in control_panel mode*/ + if(!my_options->control_panel) + { + /* + * prepare format: + * doing this inside the capture thread may create a race + * condition with gui_attach, as it requires the current + * format to be set + */ + int format = v4l2core_fourcc_2_v4l2_pixelformat(my_config->format); + + v4l2core_prepare_new_format(device, format); + /*prepare resolution*/ + v4l2core_prepare_new_resolution(device, my_config->width, my_config->height); + /*try to set the video stream format on the device*/ + int ret = v4l2core_update_current_format(device); + + if(ret != E_OK) + { + fprintf(stderr, "GUCVIEW: could not set the defined stream format\n"); + fprintf(stderr, "GUCVIEW: trying first listed stream format\n"); + + v4l2core_prepare_valid_format(device); + v4l2core_prepare_valid_resolution(device); + ret = v4l2core_update_current_format(device); + + if(ret != E_OK) + { + fprintf(stderr, "GUCVIEW: also could not set the first listed stream format\n"); + fprintf(stderr, "GUVCVIEW: Video capture failed\n"); + + gui_error(device, "Guvcview error", "could not start a video stream in the device", 1); + } + } + + if(ret == E_OK) + { + capture_loop_data_t cl_data; + cl_data.options = (void *) my_options; + cl_data.config = (void *) my_config; + cl_data.device = (void *) device; + + ret = __THREAD_CREATE(&capture_thread, capture_loop, (void *) &cl_data); + + if(ret) + { + fprintf(stderr, "GUVCVIEW: Video thread creation failed\n"); + gui_error(device, "Guvcview error", "could not start the video capture thread", 1); + } + else if(debug_level > 2) + printf("GUVCVIEW: created capture thread with tid: %u\n", (unsigned int) capture_thread); + } + } + + /*initialize the gui - do this after setting the video stream*/ + gui_attach(device, gui, 800, 600, my_options->control_panel); + + /*run the gui loop*/ + gui_run(); + + if(!my_options->control_panel) + __THREAD_JOIN(capture_thread); + + /*closes the audio context (stored staticly in video_capture)*/ + close_audio_context(); + + if(device) + v4l2core_close_dev(device); + + v4l2core_close_v4l2_device_list(); + + /*save config before cleaning the options*/ + config_save(config_file); + + if(config_file) + free(config_file); + + config_clean(); + options_clean(); + + if(debug_level > 0) + printf("GUVCVIEW: good bye\n"); + + return 0; +} diff -Nru guvcview-1.7.3/guvcview/Makefile.am guvcview-2.0.1+ubuntu1~ppa1/guvcview/Makefile.am --- guvcview-1.7.3/guvcview/Makefile.am 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/guvcview/Makefile.am 2014-10-05 10:41:44.000000000 +0000 @@ -0,0 +1,50 @@ +## Process this file with automake to produce Makefile.in + +#AM_CFLAGS = + +bin_PROGRAMS = guvcview + +guvcview_SOURCES = guvcview.c \ + video_capture.c \ + core_io.c \ + options.c \ + config.c \ + gui.c \ + gui_gtk3.c \ + gui_gtk3_menu.c \ + gui_gtk3_v4l2ctrls.c \ + gui_gtk3_videoctrls.c \ + gui_gtk3_h264ctrls.c \ + gui_gtk3_audioctrls.c \ + gui_gtk3_callbacks.c + +guvcview_CFLAGS = $(GUVCVIEW_CFLAGS) \ + $(PTHREAD_CFLAGS) \ + -D_REENTRANT\ + -D_FILE_OFFSET_BITS=64\ + -Wall\ + -DPACKAGE_LOCALE_DIR=\""$(prefix)/$(DATADIRNAME)/locale"\" \ + -DPACKAGE_SRC_DIR=\""$(srcdir)"\" \ + -DPACKAGE_DATA_DIR=\""$(datadir)"\" \ + $(DEPS_CFLAGS) $(EXTRA_CFLAGS) $(PTHREAD_CFLAGS) \ + $(EXTRA_CFLAGS) -I$(top_srcdir) -I$(top_srcdir)/includes \ + -I$(top_srcdir)/gview_v4l2core \ + -I$(top_srcdir)/gview_render \ + -I$(top_srcdir)/gview_audio \ + -I$(top_srcdir)/gview_encoder + +guvcview_LDFLAGS = $(LIBINTL) + +guvcview_LDADD = ../gview_v4l2core/$(GVIEWV4L2CORE_LIBRARY_NAME).la \ + ../gview_render/$(GVIEWRENDER_LIBRARY_NAME).la \ + ../gview_audio/$(GVIEWAUDIO_LIBRARY_NAME).la \ + ../gview_encoder/$(GVIEWENCODER_LIBRARY_NAME).la \ + $(GUVCVIEW_LIBS) \ + $(PTHREAD_LIBS) \ + -lm + +localedir = $(datadir)/locale +DEFS = -DLOCALEDIR=\"$(localedir)\" @DEFS@ + + + diff -Nru guvcview-1.7.3/guvcview/Makefile.in guvcview-2.0.1+ubuntu1~ppa1/guvcview/Makefile.in --- guvcview-1.7.3/guvcview/Makefile.in 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/guvcview/Makefile.in 2014-10-05 10:41:44.000000000 +0000 @@ -0,0 +1,933 @@ +# Makefile.in generated by automake 1.14.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +#AM_CFLAGS = + +VPATH = @srcdir@ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +bin_PROGRAMS = guvcview$(EXEEXT) +subdir = guvcview +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(top_srcdir)/depcomp +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/acx_pthread.m4 \ + $(top_srcdir)/m4/intltool.m4 $(top_srcdir)/m4/libtool.m4 \ + $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ + $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ + $(top_srcdir)/m4/nls.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +am__installdirs = "$(DESTDIR)$(bindir)" +PROGRAMS = $(bin_PROGRAMS) +am_guvcview_OBJECTS = guvcview-guvcview.$(OBJEXT) \ + guvcview-video_capture.$(OBJEXT) guvcview-core_io.$(OBJEXT) \ + guvcview-options.$(OBJEXT) guvcview-config.$(OBJEXT) \ + guvcview-gui.$(OBJEXT) guvcview-gui_gtk3.$(OBJEXT) \ + guvcview-gui_gtk3_menu.$(OBJEXT) \ + guvcview-gui_gtk3_v4l2ctrls.$(OBJEXT) \ + guvcview-gui_gtk3_videoctrls.$(OBJEXT) \ + guvcview-gui_gtk3_h264ctrls.$(OBJEXT) \ + guvcview-gui_gtk3_audioctrls.$(OBJEXT) \ + guvcview-gui_gtk3_callbacks.$(OBJEXT) +guvcview_OBJECTS = $(am_guvcview_OBJECTS) +am__DEPENDENCIES_1 = +guvcview_DEPENDENCIES = \ + ../gview_v4l2core/$(GVIEWV4L2CORE_LIBRARY_NAME).la \ + ../gview_render/$(GVIEWRENDER_LIBRARY_NAME).la \ + ../gview_audio/$(GVIEWAUDIO_LIBRARY_NAME).la \ + ../gview_encoder/$(GVIEWENCODER_LIBRARY_NAME).la \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = +guvcview_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(guvcview_CFLAGS) \ + $(CFLAGS) $(guvcview_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) +depcomp = $(SHELL) $(top_srcdir)/depcomp +am__depfiles_maybe = depfiles +am__mv = mv -f +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = +CCLD = $(CC) +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = +SOURCES = $(guvcview_SOURCES) +DIST_SOURCES = $(guvcview_SOURCES) +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` +ETAGS = etags +CTAGS = ctags +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +ALL_LINGUAS = @ALL_LINGUAS@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CATALOGS = @CATALOGS@ +CATOBJEXT = @CATOBJEXT@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DATADIRNAME = @DATADIRNAME@ +DEFS = -DLOCALEDIR=\"$(localedir)\" @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GETTEXT_PACKAGE_V4L2CORE = @GETTEXT_PACKAGE_V4L2CORE@ +GMOFILES = @GMOFILES@ +GMSGFMT = @GMSGFMT@ +GREP = @GREP@ +GSL_CFLAGS = @GSL_CFLAGS@ +GSL_LIBS = @GSL_LIBS@ +GUVCVIEW_CFLAGS = @GUVCVIEW_CFLAGS@ +GUVCVIEW_LIBS = @GUVCVIEW_LIBS@ +GVIEWAUDIO_API_VERSION = @GVIEWAUDIO_API_VERSION@ +GVIEWAUDIO_CFLAGS = @GVIEWAUDIO_CFLAGS@ +GVIEWAUDIO_LD_NAME = @GVIEWAUDIO_LD_NAME@ +GVIEWAUDIO_LIBRARY_NAME = @GVIEWAUDIO_LIBRARY_NAME@ +GVIEWAUDIO_LIBRARY_VERSION = @GVIEWAUDIO_LIBRARY_VERSION@ +GVIEWAUDIO_LIBS = @GVIEWAUDIO_LIBS@ +GVIEWENCODER_API_VERSION = @GVIEWENCODER_API_VERSION@ +GVIEWENCODER_CFLAGS = @GVIEWENCODER_CFLAGS@ +GVIEWENCODER_LD_NAME = @GVIEWENCODER_LD_NAME@ +GVIEWENCODER_LIBRARY_NAME = @GVIEWENCODER_LIBRARY_NAME@ +GVIEWENCODER_LIBRARY_VERSION = @GVIEWENCODER_LIBRARY_VERSION@ +GVIEWENCODER_LIBS = @GVIEWENCODER_LIBS@ +GVIEWRENDER_API_VERSION = @GVIEWRENDER_API_VERSION@ +GVIEWRENDER_CFLAGS = @GVIEWRENDER_CFLAGS@ +GVIEWRENDER_LD_NAME = @GVIEWRENDER_LD_NAME@ +GVIEWRENDER_LIBRARY_NAME = @GVIEWRENDER_LIBRARY_NAME@ +GVIEWRENDER_LIBRARY_VERSION = @GVIEWRENDER_LIBRARY_VERSION@ +GVIEWRENDER_LIBS = @GVIEWRENDER_LIBS@ +GVIEWV4L2CORE_API_VERSION = @GVIEWV4L2CORE_API_VERSION@ +GVIEWV4L2CORE_CFLAGS = @GVIEWV4L2CORE_CFLAGS@ +GVIEWV4L2CORE_LD_NAME = @GVIEWV4L2CORE_LD_NAME@ +GVIEWV4L2CORE_LIBRARY_NAME = @GVIEWV4L2CORE_LIBRARY_NAME@ +GVIEWV4L2CORE_LIBRARY_VERSION = @GVIEWV4L2CORE_LIBRARY_VERSION@ +GVIEWV4L2CORE_LIBS = @GVIEWV4L2CORE_LIBS@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +INSTOBJEXT = @INSTOBJEXT@ +INTLLIBS = @INTLLIBS@ +INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ +INTLTOOL_MERGE = @INTLTOOL_MERGE@ +INTLTOOL_PERL = @INTLTOOL_PERL@ +INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ +INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ +INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ +INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ +INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +MKINSTALLDIRS = @MKINSTALLDIRS@ +MSGFMT = @MSGFMT@ +MSGFMT_OPTS = @MSGFMT_OPTS@ +MSGMERGE = @MSGMERGE@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_RELEASE = @PACKAGE_RELEASE@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +POFILES = @POFILES@ +POSUB = @POSUB@ +PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ +PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ +PTHREAD_CC = @PTHREAD_CC@ +PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ +PTHREAD_LIBS = @PTHREAD_LIBS@ +PULSE_CFLAGS = @PULSE_CFLAGS@ +PULSE_LIBS = @PULSE_LIBS@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +USE_NLS = @USE_NLS@ +VERSION = @VERSION@ +XGETTEXT = @XGETTEXT@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +acx_pthread_config = @acx_pthread_config@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +intltool__v_merge_options_ = @intltool__v_merge_options_@ +intltool__v_merge_options_0 = @intltool__v_merge_options_0@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = $(datadir)/locale +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +guvcview_SOURCES = guvcview.c \ + video_capture.c \ + core_io.c \ + options.c \ + config.c \ + gui.c \ + gui_gtk3.c \ + gui_gtk3_menu.c \ + gui_gtk3_v4l2ctrls.c \ + gui_gtk3_videoctrls.c \ + gui_gtk3_h264ctrls.c \ + gui_gtk3_audioctrls.c \ + gui_gtk3_callbacks.c + +guvcview_CFLAGS = $(GUVCVIEW_CFLAGS) \ + $(PTHREAD_CFLAGS) \ + -D_REENTRANT\ + -D_FILE_OFFSET_BITS=64\ + -Wall\ + -DPACKAGE_LOCALE_DIR=\""$(prefix)/$(DATADIRNAME)/locale"\" \ + -DPACKAGE_SRC_DIR=\""$(srcdir)"\" \ + -DPACKAGE_DATA_DIR=\""$(datadir)"\" \ + $(DEPS_CFLAGS) $(EXTRA_CFLAGS) $(PTHREAD_CFLAGS) \ + $(EXTRA_CFLAGS) -I$(top_srcdir) -I$(top_srcdir)/includes \ + -I$(top_srcdir)/gview_v4l2core \ + -I$(top_srcdir)/gview_render \ + -I$(top_srcdir)/gview_audio \ + -I$(top_srcdir)/gview_encoder + +guvcview_LDFLAGS = $(LIBINTL) +guvcview_LDADD = ../gview_v4l2core/$(GVIEWV4L2CORE_LIBRARY_NAME).la \ + ../gview_render/$(GVIEWRENDER_LIBRARY_NAME).la \ + ../gview_audio/$(GVIEWAUDIO_LIBRARY_NAME).la \ + ../gview_encoder/$(GVIEWENCODER_LIBRARY_NAME).la \ + $(GUVCVIEW_LIBS) \ + $(PTHREAD_LIBS) \ + -lm + +all: all-am + +.SUFFIXES: +.SUFFIXES: .c .lo .o .obj +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign guvcview/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign guvcview/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): +install-binPROGRAMS: $(bin_PROGRAMS) + @$(NORMAL_INSTALL) + @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \ + fi; \ + for p in $$list; do echo "$$p $$p"; done | \ + sed 's/$(EXEEXT)$$//' | \ + while read p p1; do if test -f $$p \ + || test -f $$p1 \ + ; then echo "$$p"; echo "$$p"; else :; fi; \ + done | \ + sed -e 'p;s,.*/,,;n;h' \ + -e 's|.*|.|' \ + -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ + sed 'N;N;N;s,\n, ,g' | \ + $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ + { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ + if ($$2 == $$4) files[d] = files[d] " " $$1; \ + else { print "f", $$3 "/" $$4, $$1; } } \ + END { for (d in files) print "f", d, files[d] }' | \ + while read type dir files; do \ + if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ + test -z "$$files" || { \ + echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \ + $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ + } \ + ; done + +uninstall-binPROGRAMS: + @$(NORMAL_UNINSTALL) + @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ + files=`for p in $$list; do echo "$$p"; done | \ + sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ + -e 's/$$/$(EXEEXT)/' \ + `; \ + test -n "$$list" || exit 0; \ + echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ + cd "$(DESTDIR)$(bindir)" && rm -f $$files + +clean-binPROGRAMS: + @list='$(bin_PROGRAMS)'; test -n "$$list" || exit 0; \ + echo " rm -f" $$list; \ + rm -f $$list || exit $$?; \ + test -n "$(EXEEXT)" || exit 0; \ + list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ + echo " rm -f" $$list; \ + rm -f $$list + +guvcview$(EXEEXT): $(guvcview_OBJECTS) $(guvcview_DEPENDENCIES) $(EXTRA_guvcview_DEPENDENCIES) + @rm -f guvcview$(EXEEXT) + $(AM_V_CCLD)$(guvcview_LINK) $(guvcview_OBJECTS) $(guvcview_LDADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/guvcview-config.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/guvcview-core_io.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/guvcview-gui.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/guvcview-gui_gtk3.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/guvcview-gui_gtk3_audioctrls.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/guvcview-gui_gtk3_callbacks.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/guvcview-gui_gtk3_h264ctrls.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/guvcview-gui_gtk3_menu.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/guvcview-gui_gtk3_v4l2ctrls.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/guvcview-gui_gtk3_videoctrls.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/guvcview-guvcview.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/guvcview-options.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/guvcview-video_capture.Po@am__quote@ + +.c.o: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< + +.c.obj: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` + +.c.lo: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< + +guvcview-guvcview.o: guvcview.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -MT guvcview-guvcview.o -MD -MP -MF $(DEPDIR)/guvcview-guvcview.Tpo -c -o guvcview-guvcview.o `test -f 'guvcview.c' || echo '$(srcdir)/'`guvcview.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/guvcview-guvcview.Tpo $(DEPDIR)/guvcview-guvcview.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='guvcview.c' object='guvcview-guvcview.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -c -o guvcview-guvcview.o `test -f 'guvcview.c' || echo '$(srcdir)/'`guvcview.c + +guvcview-guvcview.obj: guvcview.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -MT guvcview-guvcview.obj -MD -MP -MF $(DEPDIR)/guvcview-guvcview.Tpo -c -o guvcview-guvcview.obj `if test -f 'guvcview.c'; then $(CYGPATH_W) 'guvcview.c'; else $(CYGPATH_W) '$(srcdir)/guvcview.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/guvcview-guvcview.Tpo $(DEPDIR)/guvcview-guvcview.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='guvcview.c' object='guvcview-guvcview.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -c -o guvcview-guvcview.obj `if test -f 'guvcview.c'; then $(CYGPATH_W) 'guvcview.c'; else $(CYGPATH_W) '$(srcdir)/guvcview.c'; fi` + +guvcview-video_capture.o: video_capture.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -MT guvcview-video_capture.o -MD -MP -MF $(DEPDIR)/guvcview-video_capture.Tpo -c -o guvcview-video_capture.o `test -f 'video_capture.c' || echo '$(srcdir)/'`video_capture.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/guvcview-video_capture.Tpo $(DEPDIR)/guvcview-video_capture.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='video_capture.c' object='guvcview-video_capture.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -c -o guvcview-video_capture.o `test -f 'video_capture.c' || echo '$(srcdir)/'`video_capture.c + +guvcview-video_capture.obj: video_capture.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -MT guvcview-video_capture.obj -MD -MP -MF $(DEPDIR)/guvcview-video_capture.Tpo -c -o guvcview-video_capture.obj `if test -f 'video_capture.c'; then $(CYGPATH_W) 'video_capture.c'; else $(CYGPATH_W) '$(srcdir)/video_capture.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/guvcview-video_capture.Tpo $(DEPDIR)/guvcview-video_capture.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='video_capture.c' object='guvcview-video_capture.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -c -o guvcview-video_capture.obj `if test -f 'video_capture.c'; then $(CYGPATH_W) 'video_capture.c'; else $(CYGPATH_W) '$(srcdir)/video_capture.c'; fi` + +guvcview-core_io.o: core_io.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -MT guvcview-core_io.o -MD -MP -MF $(DEPDIR)/guvcview-core_io.Tpo -c -o guvcview-core_io.o `test -f 'core_io.c' || echo '$(srcdir)/'`core_io.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/guvcview-core_io.Tpo $(DEPDIR)/guvcview-core_io.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='core_io.c' object='guvcview-core_io.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -c -o guvcview-core_io.o `test -f 'core_io.c' || echo '$(srcdir)/'`core_io.c + +guvcview-core_io.obj: core_io.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -MT guvcview-core_io.obj -MD -MP -MF $(DEPDIR)/guvcview-core_io.Tpo -c -o guvcview-core_io.obj `if test -f 'core_io.c'; then $(CYGPATH_W) 'core_io.c'; else $(CYGPATH_W) '$(srcdir)/core_io.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/guvcview-core_io.Tpo $(DEPDIR)/guvcview-core_io.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='core_io.c' object='guvcview-core_io.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -c -o guvcview-core_io.obj `if test -f 'core_io.c'; then $(CYGPATH_W) 'core_io.c'; else $(CYGPATH_W) '$(srcdir)/core_io.c'; fi` + +guvcview-options.o: options.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -MT guvcview-options.o -MD -MP -MF $(DEPDIR)/guvcview-options.Tpo -c -o guvcview-options.o `test -f 'options.c' || echo '$(srcdir)/'`options.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/guvcview-options.Tpo $(DEPDIR)/guvcview-options.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='options.c' object='guvcview-options.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -c -o guvcview-options.o `test -f 'options.c' || echo '$(srcdir)/'`options.c + +guvcview-options.obj: options.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -MT guvcview-options.obj -MD -MP -MF $(DEPDIR)/guvcview-options.Tpo -c -o guvcview-options.obj `if test -f 'options.c'; then $(CYGPATH_W) 'options.c'; else $(CYGPATH_W) '$(srcdir)/options.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/guvcview-options.Tpo $(DEPDIR)/guvcview-options.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='options.c' object='guvcview-options.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -c -o guvcview-options.obj `if test -f 'options.c'; then $(CYGPATH_W) 'options.c'; else $(CYGPATH_W) '$(srcdir)/options.c'; fi` + +guvcview-config.o: config.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -MT guvcview-config.o -MD -MP -MF $(DEPDIR)/guvcview-config.Tpo -c -o guvcview-config.o `test -f 'config.c' || echo '$(srcdir)/'`config.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/guvcview-config.Tpo $(DEPDIR)/guvcview-config.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='config.c' object='guvcview-config.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -c -o guvcview-config.o `test -f 'config.c' || echo '$(srcdir)/'`config.c + +guvcview-config.obj: config.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -MT guvcview-config.obj -MD -MP -MF $(DEPDIR)/guvcview-config.Tpo -c -o guvcview-config.obj `if test -f 'config.c'; then $(CYGPATH_W) 'config.c'; else $(CYGPATH_W) '$(srcdir)/config.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/guvcview-config.Tpo $(DEPDIR)/guvcview-config.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='config.c' object='guvcview-config.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -c -o guvcview-config.obj `if test -f 'config.c'; then $(CYGPATH_W) 'config.c'; else $(CYGPATH_W) '$(srcdir)/config.c'; fi` + +guvcview-gui.o: gui.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -MT guvcview-gui.o -MD -MP -MF $(DEPDIR)/guvcview-gui.Tpo -c -o guvcview-gui.o `test -f 'gui.c' || echo '$(srcdir)/'`gui.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/guvcview-gui.Tpo $(DEPDIR)/guvcview-gui.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gui.c' object='guvcview-gui.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -c -o guvcview-gui.o `test -f 'gui.c' || echo '$(srcdir)/'`gui.c + +guvcview-gui.obj: gui.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -MT guvcview-gui.obj -MD -MP -MF $(DEPDIR)/guvcview-gui.Tpo -c -o guvcview-gui.obj `if test -f 'gui.c'; then $(CYGPATH_W) 'gui.c'; else $(CYGPATH_W) '$(srcdir)/gui.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/guvcview-gui.Tpo $(DEPDIR)/guvcview-gui.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gui.c' object='guvcview-gui.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -c -o guvcview-gui.obj `if test -f 'gui.c'; then $(CYGPATH_W) 'gui.c'; else $(CYGPATH_W) '$(srcdir)/gui.c'; fi` + +guvcview-gui_gtk3.o: gui_gtk3.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -MT guvcview-gui_gtk3.o -MD -MP -MF $(DEPDIR)/guvcview-gui_gtk3.Tpo -c -o guvcview-gui_gtk3.o `test -f 'gui_gtk3.c' || echo '$(srcdir)/'`gui_gtk3.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/guvcview-gui_gtk3.Tpo $(DEPDIR)/guvcview-gui_gtk3.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gui_gtk3.c' object='guvcview-gui_gtk3.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -c -o guvcview-gui_gtk3.o `test -f 'gui_gtk3.c' || echo '$(srcdir)/'`gui_gtk3.c + +guvcview-gui_gtk3.obj: gui_gtk3.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -MT guvcview-gui_gtk3.obj -MD -MP -MF $(DEPDIR)/guvcview-gui_gtk3.Tpo -c -o guvcview-gui_gtk3.obj `if test -f 'gui_gtk3.c'; then $(CYGPATH_W) 'gui_gtk3.c'; else $(CYGPATH_W) '$(srcdir)/gui_gtk3.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/guvcview-gui_gtk3.Tpo $(DEPDIR)/guvcview-gui_gtk3.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gui_gtk3.c' object='guvcview-gui_gtk3.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -c -o guvcview-gui_gtk3.obj `if test -f 'gui_gtk3.c'; then $(CYGPATH_W) 'gui_gtk3.c'; else $(CYGPATH_W) '$(srcdir)/gui_gtk3.c'; fi` + +guvcview-gui_gtk3_menu.o: gui_gtk3_menu.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -MT guvcview-gui_gtk3_menu.o -MD -MP -MF $(DEPDIR)/guvcview-gui_gtk3_menu.Tpo -c -o guvcview-gui_gtk3_menu.o `test -f 'gui_gtk3_menu.c' || echo '$(srcdir)/'`gui_gtk3_menu.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/guvcview-gui_gtk3_menu.Tpo $(DEPDIR)/guvcview-gui_gtk3_menu.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gui_gtk3_menu.c' object='guvcview-gui_gtk3_menu.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -c -o guvcview-gui_gtk3_menu.o `test -f 'gui_gtk3_menu.c' || echo '$(srcdir)/'`gui_gtk3_menu.c + +guvcview-gui_gtk3_menu.obj: gui_gtk3_menu.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -MT guvcview-gui_gtk3_menu.obj -MD -MP -MF $(DEPDIR)/guvcview-gui_gtk3_menu.Tpo -c -o guvcview-gui_gtk3_menu.obj `if test -f 'gui_gtk3_menu.c'; then $(CYGPATH_W) 'gui_gtk3_menu.c'; else $(CYGPATH_W) '$(srcdir)/gui_gtk3_menu.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/guvcview-gui_gtk3_menu.Tpo $(DEPDIR)/guvcview-gui_gtk3_menu.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gui_gtk3_menu.c' object='guvcview-gui_gtk3_menu.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -c -o guvcview-gui_gtk3_menu.obj `if test -f 'gui_gtk3_menu.c'; then $(CYGPATH_W) 'gui_gtk3_menu.c'; else $(CYGPATH_W) '$(srcdir)/gui_gtk3_menu.c'; fi` + +guvcview-gui_gtk3_v4l2ctrls.o: gui_gtk3_v4l2ctrls.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -MT guvcview-gui_gtk3_v4l2ctrls.o -MD -MP -MF $(DEPDIR)/guvcview-gui_gtk3_v4l2ctrls.Tpo -c -o guvcview-gui_gtk3_v4l2ctrls.o `test -f 'gui_gtk3_v4l2ctrls.c' || echo '$(srcdir)/'`gui_gtk3_v4l2ctrls.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/guvcview-gui_gtk3_v4l2ctrls.Tpo $(DEPDIR)/guvcview-gui_gtk3_v4l2ctrls.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gui_gtk3_v4l2ctrls.c' object='guvcview-gui_gtk3_v4l2ctrls.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -c -o guvcview-gui_gtk3_v4l2ctrls.o `test -f 'gui_gtk3_v4l2ctrls.c' || echo '$(srcdir)/'`gui_gtk3_v4l2ctrls.c + +guvcview-gui_gtk3_v4l2ctrls.obj: gui_gtk3_v4l2ctrls.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -MT guvcview-gui_gtk3_v4l2ctrls.obj -MD -MP -MF $(DEPDIR)/guvcview-gui_gtk3_v4l2ctrls.Tpo -c -o guvcview-gui_gtk3_v4l2ctrls.obj `if test -f 'gui_gtk3_v4l2ctrls.c'; then $(CYGPATH_W) 'gui_gtk3_v4l2ctrls.c'; else $(CYGPATH_W) '$(srcdir)/gui_gtk3_v4l2ctrls.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/guvcview-gui_gtk3_v4l2ctrls.Tpo $(DEPDIR)/guvcview-gui_gtk3_v4l2ctrls.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gui_gtk3_v4l2ctrls.c' object='guvcview-gui_gtk3_v4l2ctrls.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -c -o guvcview-gui_gtk3_v4l2ctrls.obj `if test -f 'gui_gtk3_v4l2ctrls.c'; then $(CYGPATH_W) 'gui_gtk3_v4l2ctrls.c'; else $(CYGPATH_W) '$(srcdir)/gui_gtk3_v4l2ctrls.c'; fi` + +guvcview-gui_gtk3_videoctrls.o: gui_gtk3_videoctrls.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -MT guvcview-gui_gtk3_videoctrls.o -MD -MP -MF $(DEPDIR)/guvcview-gui_gtk3_videoctrls.Tpo -c -o guvcview-gui_gtk3_videoctrls.o `test -f 'gui_gtk3_videoctrls.c' || echo '$(srcdir)/'`gui_gtk3_videoctrls.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/guvcview-gui_gtk3_videoctrls.Tpo $(DEPDIR)/guvcview-gui_gtk3_videoctrls.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gui_gtk3_videoctrls.c' object='guvcview-gui_gtk3_videoctrls.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -c -o guvcview-gui_gtk3_videoctrls.o `test -f 'gui_gtk3_videoctrls.c' || echo '$(srcdir)/'`gui_gtk3_videoctrls.c + +guvcview-gui_gtk3_videoctrls.obj: gui_gtk3_videoctrls.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -MT guvcview-gui_gtk3_videoctrls.obj -MD -MP -MF $(DEPDIR)/guvcview-gui_gtk3_videoctrls.Tpo -c -o guvcview-gui_gtk3_videoctrls.obj `if test -f 'gui_gtk3_videoctrls.c'; then $(CYGPATH_W) 'gui_gtk3_videoctrls.c'; else $(CYGPATH_W) '$(srcdir)/gui_gtk3_videoctrls.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/guvcview-gui_gtk3_videoctrls.Tpo $(DEPDIR)/guvcview-gui_gtk3_videoctrls.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gui_gtk3_videoctrls.c' object='guvcview-gui_gtk3_videoctrls.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -c -o guvcview-gui_gtk3_videoctrls.obj `if test -f 'gui_gtk3_videoctrls.c'; then $(CYGPATH_W) 'gui_gtk3_videoctrls.c'; else $(CYGPATH_W) '$(srcdir)/gui_gtk3_videoctrls.c'; fi` + +guvcview-gui_gtk3_h264ctrls.o: gui_gtk3_h264ctrls.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -MT guvcview-gui_gtk3_h264ctrls.o -MD -MP -MF $(DEPDIR)/guvcview-gui_gtk3_h264ctrls.Tpo -c -o guvcview-gui_gtk3_h264ctrls.o `test -f 'gui_gtk3_h264ctrls.c' || echo '$(srcdir)/'`gui_gtk3_h264ctrls.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/guvcview-gui_gtk3_h264ctrls.Tpo $(DEPDIR)/guvcview-gui_gtk3_h264ctrls.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gui_gtk3_h264ctrls.c' object='guvcview-gui_gtk3_h264ctrls.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -c -o guvcview-gui_gtk3_h264ctrls.o `test -f 'gui_gtk3_h264ctrls.c' || echo '$(srcdir)/'`gui_gtk3_h264ctrls.c + +guvcview-gui_gtk3_h264ctrls.obj: gui_gtk3_h264ctrls.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -MT guvcview-gui_gtk3_h264ctrls.obj -MD -MP -MF $(DEPDIR)/guvcview-gui_gtk3_h264ctrls.Tpo -c -o guvcview-gui_gtk3_h264ctrls.obj `if test -f 'gui_gtk3_h264ctrls.c'; then $(CYGPATH_W) 'gui_gtk3_h264ctrls.c'; else $(CYGPATH_W) '$(srcdir)/gui_gtk3_h264ctrls.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/guvcview-gui_gtk3_h264ctrls.Tpo $(DEPDIR)/guvcview-gui_gtk3_h264ctrls.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gui_gtk3_h264ctrls.c' object='guvcview-gui_gtk3_h264ctrls.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -c -o guvcview-gui_gtk3_h264ctrls.obj `if test -f 'gui_gtk3_h264ctrls.c'; then $(CYGPATH_W) 'gui_gtk3_h264ctrls.c'; else $(CYGPATH_W) '$(srcdir)/gui_gtk3_h264ctrls.c'; fi` + +guvcview-gui_gtk3_audioctrls.o: gui_gtk3_audioctrls.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -MT guvcview-gui_gtk3_audioctrls.o -MD -MP -MF $(DEPDIR)/guvcview-gui_gtk3_audioctrls.Tpo -c -o guvcview-gui_gtk3_audioctrls.o `test -f 'gui_gtk3_audioctrls.c' || echo '$(srcdir)/'`gui_gtk3_audioctrls.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/guvcview-gui_gtk3_audioctrls.Tpo $(DEPDIR)/guvcview-gui_gtk3_audioctrls.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gui_gtk3_audioctrls.c' object='guvcview-gui_gtk3_audioctrls.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -c -o guvcview-gui_gtk3_audioctrls.o `test -f 'gui_gtk3_audioctrls.c' || echo '$(srcdir)/'`gui_gtk3_audioctrls.c + +guvcview-gui_gtk3_audioctrls.obj: gui_gtk3_audioctrls.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -MT guvcview-gui_gtk3_audioctrls.obj -MD -MP -MF $(DEPDIR)/guvcview-gui_gtk3_audioctrls.Tpo -c -o guvcview-gui_gtk3_audioctrls.obj `if test -f 'gui_gtk3_audioctrls.c'; then $(CYGPATH_W) 'gui_gtk3_audioctrls.c'; else $(CYGPATH_W) '$(srcdir)/gui_gtk3_audioctrls.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/guvcview-gui_gtk3_audioctrls.Tpo $(DEPDIR)/guvcview-gui_gtk3_audioctrls.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gui_gtk3_audioctrls.c' object='guvcview-gui_gtk3_audioctrls.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -c -o guvcview-gui_gtk3_audioctrls.obj `if test -f 'gui_gtk3_audioctrls.c'; then $(CYGPATH_W) 'gui_gtk3_audioctrls.c'; else $(CYGPATH_W) '$(srcdir)/gui_gtk3_audioctrls.c'; fi` + +guvcview-gui_gtk3_callbacks.o: gui_gtk3_callbacks.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -MT guvcview-gui_gtk3_callbacks.o -MD -MP -MF $(DEPDIR)/guvcview-gui_gtk3_callbacks.Tpo -c -o guvcview-gui_gtk3_callbacks.o `test -f 'gui_gtk3_callbacks.c' || echo '$(srcdir)/'`gui_gtk3_callbacks.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/guvcview-gui_gtk3_callbacks.Tpo $(DEPDIR)/guvcview-gui_gtk3_callbacks.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gui_gtk3_callbacks.c' object='guvcview-gui_gtk3_callbacks.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -c -o guvcview-gui_gtk3_callbacks.o `test -f 'gui_gtk3_callbacks.c' || echo '$(srcdir)/'`gui_gtk3_callbacks.c + +guvcview-gui_gtk3_callbacks.obj: gui_gtk3_callbacks.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -MT guvcview-gui_gtk3_callbacks.obj -MD -MP -MF $(DEPDIR)/guvcview-gui_gtk3_callbacks.Tpo -c -o guvcview-gui_gtk3_callbacks.obj `if test -f 'gui_gtk3_callbacks.c'; then $(CYGPATH_W) 'gui_gtk3_callbacks.c'; else $(CYGPATH_W) '$(srcdir)/gui_gtk3_callbacks.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/guvcview-gui_gtk3_callbacks.Tpo $(DEPDIR)/guvcview-gui_gtk3_callbacks.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gui_gtk3_callbacks.c' object='guvcview-gui_gtk3_callbacks.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -c -o guvcview-gui_gtk3_callbacks.obj `if test -f 'gui_gtk3_callbacks.c'; then $(CYGPATH_W) 'gui_gtk3_callbacks.c'; else $(CYGPATH_W) '$(srcdir)/gui_gtk3_callbacks.c'; fi` + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + set x; \ + here=`pwd`; \ + $(am__define_uniq_tagged_files); \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(PROGRAMS) +installdirs: + for dir in "$(DESTDIR)$(bindir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-binPROGRAMS clean-generic clean-libtool mostlyclean-am + +distclean: distclean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: install-binPROGRAMS + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-binPROGRAMS + +.MAKE: install-am install-strip + +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean \ + clean-binPROGRAMS clean-generic clean-libtool cscopelist-am \ + ctags ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-binPROGRAMS \ + install-data install-data-am install-dvi install-dvi-am \ + install-exec install-exec-am install-html install-html-am \ + install-info install-info-am install-man install-pdf \ + install-pdf-am install-ps install-ps-am install-strip \ + installcheck installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags tags-am uninstall uninstall-am uninstall-binPROGRAMS + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff -Nru guvcview-1.7.3/guvcview/options.c guvcview-2.0.1+ubuntu1~ppa1/guvcview/options.c --- guvcview-1.7.3/guvcview/options.c 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/guvcview/options.c 2014-10-05 10:41:44.000000000 +0000 @@ -0,0 +1,667 @@ +/*******************************************************************************# +# guvcview http://guvcview.sourceforge.net # +# # +# Paulo Assis # +# # +# This program is free software; you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation; either version 2 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program; if not, write to the Free Software # +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # +# # +********************************************************************************/ + +#include +#include +#include +#include +#include + +#include "gviewv4l2core.h" +#include "gview.h" +#include "core_io.h" +#include "gui.h" +#include "options.h" +#include "../config.h" + +typedef struct _opt_values_t +{ + char opt_short; + char opt_long[20]; + int req_arg; + char opt_help_arg[20]; + char opt_help[80]; +} opt_values_t; + +static opt_values_t opt_values[] = +{ + { + .opt_short = 'h', + .opt_long = "help", + .req_arg = 0, + .opt_help_arg = "", + .opt_help = N_("Print help") + }, + { + .opt_short = 'v', + .opt_long = "version", + .req_arg = 0, + .opt_help_arg = "", + .opt_help = N_("Print version"), + }, + { + .opt_short = 'w', + .opt_long = "verbosity", + .req_arg = 1, + .opt_help_arg = N_("LEVEL"), + .opt_help = N_("Set Verbosity level (def: 0)") + }, + { + .opt_short = 'd', + .opt_long = "device", + .req_arg = 1, + .opt_help_arg = N_("DEVICE"), + .opt_help = N_("Set device name (def: /dev/video0)"), + }, + { + .opt_short = 'c', + .opt_long = "capture", + .req_arg = 1, + .opt_help_arg = N_("METHOD"), + .opt_help = N_("Set capture method [read | mmap (def)]"), + }, + { + .opt_short = 'b', + .opt_long = "disable_libv4l2", + .req_arg = 0, + .opt_help_arg = "", + .opt_help = N_("disable calls to libv4l2"), + }, + { + .opt_short = 'x', + .opt_long = "resolution", + .req_arg = 1, + .opt_help_arg = N_("WIDTHxHEIGHT"), + .opt_help = N_("Request resolution (e.g 640x480)") + }, + { + .opt_short = 'f', + .opt_long = "format", + .req_arg = 1, + .opt_help_arg = N_("FOURCC"), + .opt_help = N_("Request format (e.g MJPG)") + }, + { + .opt_short = 'r', + .opt_long = "render", + .req_arg = 1, + .opt_help_arg = N_("RENDER_API"), + .opt_help = N_("Select render API (e.g none; sdl)") + }, + { + .opt_short = 'm', + .opt_long = "render_window", + .req_arg = 1, + .opt_help_arg = N_("RENDER_WINDOW_FLAGS"), + .opt_help = N_("Set render window flags (e.g none; full; max)") + }, + { + .opt_short = 'a', + .opt_long = "audio", + .req_arg = 1, + .opt_help_arg = N_("AUDIO_API"), + .opt_help = N_("Select audio API (e.g none; port; pulse)") + }, + { + .opt_short = 'k', + .opt_long = "audio_device", + .req_arg = 1, + .opt_help_arg = N_("AUDIO_DEVICE"), + .opt_help = N_("Select audio device index for selected api (0..N)") + }, + { + .opt_short = 'g', + .opt_long = "gui", + .req_arg = 1, + .opt_help_arg = N_("GUI_API"), + .opt_help = N_("Select GUI API (e.g none; gtk3)") + }, + { + .opt_short = 'o', + .opt_long = "audio_codec", + .req_arg = 1, + .opt_help_arg = N_("CODEC"), + .opt_help = N_("Audio codec [pcm mp2 mp3 aac ac3 vorb]") + }, + { + .opt_short = 'u', + .opt_long = "video_codec", + .req_arg = 1, + .opt_help_arg = N_("CODEC"), + .opt_help = N_("Video codec [raw mjpg mpeg flv1 wmv1 mpg2 mp43 dx50 h264 vp80 theo]") + }, + { + .opt_short = 'p', + .opt_long = "profile", + .req_arg = 1, + .opt_help_arg = N_("FILENAME"), + .opt_help = N_("load control profile") + }, + { + .opt_short = 'j', + .opt_long = "video", + .req_arg = 1, + .opt_help_arg = N_("FILENAME"), + .opt_help = N_("filename for captured video)") + }, + { + .opt_short = 'i', + .opt_long = "image", + .req_arg = 1, + .opt_help_arg = N_("FILENAME"), + .opt_help = N_("filename for captured image)") + }, + { + .opt_short = 'y', + .opt_long = "video_timer", + .req_arg = 1, + .opt_help_arg = N_("TIME_IN_SEC"), + .opt_help = N_("time (double) in sec. for video capture)") + }, + { + .opt_short = 't', + .opt_long = "photo_timer", + .req_arg = 1, + .opt_help_arg = N_("TIME_IN_SEC"), + .opt_help = N_("time (double) in sec. between captured photos)") + }, + { + .opt_short = 'n', + .opt_long = "photo_total", + .req_arg = 1, + .opt_help_arg = N_("TOTAL"), + .opt_help = N_("total number of captured photos)") + }, + { + .opt_short = 'z', + .opt_long = "control_panel", + .req_arg = 0, + .opt_help_arg = "", + .opt_help = N_("Start in control panel mode") + }, + { + .opt_short = 0, + .opt_long = "", + .req_arg = 0, + .opt_help_arg = "", + .opt_help = "" + }, +}; + +static options_t my_options = +{ + .verbosity = 0, + .device = "/dev/video0", + .width = 0, + .height = 0, + .control_panel = 0, + .disable_libv4l2 = 0, + .format = "", + .render = "", + .gui = "", + .audio = "", + .audio_device = -1, /*use default*/ + .capture = "", + .video_codec = "", + .audio_codec = "", + .prof_filename = NULL, + .profile_name = NULL, + .profile_path = NULL, + .video_name = NULL, + .video_path = NULL, + .photo_name = NULL, + .photo_path = NULL, + .video_timer = 0, + .photo_timer = 0, + .photo_npics = 0, + .render_flag = "none", +}; + +/* + * get the internal options data + * args: + * none + * + * asserts: + * none + * + * returns: pointer to internal options_t struct + */ +options_t *options_get() +{ + return &my_options; +} + +/* + * prints the number of command line options + * args: + * none + * + * asserts: + * none + * + * returns: last valid index of opt_values + */ +int opt_get_number() +{ + int i = 0; + + /*long option must always be set*/ + do + { + i++; + } + while(strlen(opt_values[i].opt_long) > 0); + + return i; +} + +/* + * gets the max length of help string (up to end of opt_help_arg) + * args: + * none + * + * asserts: + * none + * + * returns: max lenght + */ +static int opt_get_help_max_len() +{ + int i = 0; + + int max_len = 0; + + /*long option must always be set*/ + do + { + int len = 5 + /*-c, and --*/ + strlen(opt_values[i].opt_long); + if(strlen(opt_values[i].opt_help_arg) > 0) + len += strlen(opt_values[i].opt_help_arg) + 1; /*add =*/ + if(len > max_len) + max_len = len; + i++; + } + while(strlen(opt_values[i].opt_long) > 0); + + + return max_len; +} + +/* + * prints the command line help + * args: + * none + * + * asserts: + * none + * + * returns: none + */ +void opt_print_help() +{ + printf(_("Guvcview version %s\n\n"), VERSION); + printf(_("Usage:\n guvcview [OPTIONS]\n\n")); + printf(_("OPTIONS:\n")); + + int max_len = opt_get_help_max_len(); + int len = 0; + + int i = 0; + + /*long option must always be set*/ + do + { + if(opt_values[i].opt_short > 0) + { + len = 3; + printf("-%c,", opt_values[i].opt_short); + } + + printf("--%s", opt_values[i].opt_long); + len += strlen(opt_values[i].opt_long) + 2; + + if(strlen(opt_values[i].opt_help_arg) > 0) + { + len += strlen(opt_values[i].opt_help_arg) + 1; + printf("=%s", _(opt_values[i].opt_help_arg)); + } + + int spaces = max_len - len; + int j = 0; + for(j=0; j < spaces; j++) + printf(" "); + + if(strlen(opt_values[i].opt_help) > 0) + printf("\t:%s\n", _(opt_values[i].opt_help)); + + i++; + } + while(strlen(opt_values[i].opt_long) > 0); +} + +/* + * prints the version info + * args: + * none + * + * asserts: + * none + * + * returns: none + */ +void opt_print_version() +{ + printf("Guvcview version %s\n", VERSION); +} + +/* + * parses the command line options + * args: + * argc - number of comman line args + * argv - pointer to list of command line args + * + * asserts: + * none + * + * returns: int (if > 0 app should terminate (help, version) + */ +int options_parse(int argc, char *argv[]) +{ + int ret = 0; + int long_index =0; + char *stopstring; + + int n_options = opt_get_number(); + + struct option long_options[n_options + 1]; + + char opt_string[128] = ""; + char *opt_str_ptr = opt_string; + + int i =0; + for(i=0; i < n_options; i++) + { + long_options[i].name = opt_values[i].opt_long; + long_options[i].has_arg = opt_values[i].req_arg > 0 ? required_argument: no_argument; + long_options[i].flag = NULL; + long_options[i].val = opt_values[i].opt_short; + + /*set opt string (be carefull we don't exceed size)*/ + if(opt_str_ptr - opt_string < 128 - 3) + { + *opt_str_ptr++ = opt_values[i].opt_short; + if(opt_values[i].req_arg > 0) + *opt_str_ptr++ = ':'; + } + } + + long_options[n_options].name = 0; + long_options[n_options].has_arg = 0; + long_options[n_options].flag = NULL; + long_options[n_options].val= 0; + + *opt_str_ptr++='\0'; /*null terminated string*/ + + int opt = 0; + + while ((opt = getopt_long(argc, argv, opt_string, + long_options, &long_index )) != -1) + { + switch (opt) + { + case 'v' : + opt_print_version(); + ret = 1; + break; + + case 'w': + my_options.verbosity = atoi(optarg); + break; + + case 'd': + { + int str_size = strlen(optarg); + if(str_size > 1) /*device needs at least 2 chars*/ + strncpy(my_options.device, optarg, 29); + else + fprintf(stderr, "V4L2_CORE: (options) Error in device usage: -d[--device] DEVICENAME \n"); + break; + } + case 'z': + { + my_options.control_panel = 1; + break; + } + case 'c': + { + int str_size = strlen(optarg); + if(str_size == 4) /*capture method*/ + strncpy(my_options.capture, optarg, 4); + break; + } + case 'b': + { + my_options.disable_libv4l2 = 1; + break; + } + case 'x': + my_options.width = (int) strtoul(optarg, &stopstring, 10); + if( *stopstring != 'x') + { + fprintf(stderr, "V4L2_CORE: (options) Error in resolution usage: -x[--resolution] WIDTHxHEIGHT \n"); + } + else + { + ++stopstring; + my_options.height = (int) strtoul(stopstring, &stopstring, 10); + } + if(my_options.width <= 0) + my_options.width = 640; + if(my_options.height <= 0) + my_options.height = 480; + break; + + case 'f': + { + int str_size = strlen(optarg); + if(str_size == 4) /*fourcc is 4 chars*/ + strncpy(my_options.format, optarg, 4); + break; + } + case 'r': + { + int str_size = strlen(optarg); + if(str_size <= 4) /*render is at most 4 chars*/ + strncpy(my_options.render, optarg, 4); + break; + } + case 'm': + { + int str_size = strlen(optarg); + if(str_size <= 4) /*render is at most 4 chars*/ + strncpy(my_options.render_flag, optarg, 4); + break; + } + case 'g': + { + int str_size = strlen(optarg); + if(str_size == 4) /*gui is 4 chars*/ + strncpy(my_options.gui, optarg, 4); + break; + } + case 'a': + { + /*audio api is at most 5 chars (p u l s e)*/ + strncpy(my_options.audio, optarg, 5); + break; + } + case 'k': + my_options.audio_device = atoi(optarg); + break; + case 'o': + { + int str_size = strlen(optarg); + if(str_size > 2) /*audio codec*/ + strncpy(my_options.audio_codec, optarg, 4); + break; + } + case 'u': + { + int str_size = strlen(optarg); + if(str_size > 2) /*video codec*/ + strncpy(my_options.video_codec, optarg, 4); + break; + } + case 'p': + { + if(my_options.prof_filename != NULL) + free(my_options.prof_filename); + my_options.prof_filename = strdup(optarg); + /*get profile path and basename*/ + char *basename = get_file_basename(optarg); + if(basename) + { + //set_profile_name(basename); + if(my_options.profile_name != NULL) + free(my_options.profile_name); + my_options.profile_name = basename; + } + char *pathname = get_file_pathname(optarg); + if(pathname) + { + //set_profile_path(pathname); + if(my_options.profile_path != NULL) + free(my_options.profile_path); + my_options.profile_path = pathname; + } + + break; + } + case 'j': + { + /*get video path and basename*/ + char *basename = get_file_basename(optarg); + if(basename) + { + //set_video_name(basename); + //free(basename); + if(my_options.video_name != NULL) + free(my_options.video_name); + my_options.video_name = basename; + } + char *pathname = get_file_pathname(optarg); + if(pathname) + { + //set_video_path(pathname); + //free(pathname); + if(my_options.video_path != NULL) + free(my_options.video_path); + my_options.video_path = pathname; + } + + break; + } + case 'i': + { + /*get photo path and basename*/ + char *basename = get_file_basename(optarg); + if(basename) + { + //set_photo_name(basename); + //free(basename); + if(my_options.photo_name != NULL) + free(my_options.photo_name); + my_options.photo_name = basename; + } + char *pathname = get_file_pathname(optarg); + if(pathname) + { + //set_photo_path(pathname); + //free(pathname); + if(my_options.photo_path != NULL) + free(my_options.photo_path); + my_options.photo_path = pathname; + } + + break; + } + case 'y': + my_options.video_timer = strtod(optarg, (char **)NULL); + break; + case 't': + my_options.photo_timer = strtod(optarg, (char **)NULL); + break; + case 'n': + my_options.photo_npics = atoi(optarg); + break; + default: + case 'h': + opt_print_help(); + ret = 1; + break; + } + } + + return ret; +} + +/* + * cleans internal options allocations + * args: + * none + * + * asserts: + * none + * + * returns: none + */ +void options_clean() +{ + if(my_options.prof_filename != NULL) + free(my_options.prof_filename); + my_options.prof_filename = NULL; + + if(my_options.profile_name != NULL) + free(my_options.profile_name); + my_options.profile_name = NULL; + + if(my_options.profile_path != NULL) + free(my_options.profile_path); + my_options.profile_path = NULL; + + if(my_options.video_name != NULL) + free(my_options.video_name); + my_options.video_name = NULL; + + if(my_options.video_path != NULL) + free(my_options.video_path); + my_options.video_path = NULL; + + if(my_options.photo_name != NULL) + free(my_options.photo_name); + my_options.photo_name = NULL; + + if(my_options.photo_path != NULL) + free(my_options.photo_path); + my_options.photo_path = NULL; +} diff -Nru guvcview-1.7.3/guvcview/options.h guvcview-2.0.1+ubuntu1~ppa1/guvcview/options.h --- guvcview-1.7.3/guvcview/options.h 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/guvcview/options.h 2014-10-05 10:41:44.000000000 +0000 @@ -0,0 +1,91 @@ +/*******************************************************************************# +# guvcview http://guvcview.sourceforge.net # +# # +# Paulo Assis # +# # +# This program is free software; you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation; either version 2 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program; if not, write to the Free Software # +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # +# # +********************************************************************************/ + +#ifndef OPTIONS_H +#define OPTIONS_H + +typedef struct _options_t +{ + int verbosity; /*verbosity level*/ + char device[30]; /*device name*/ + int width; /*width*/ + int height; /*height*/ + int control_panel; /*flag control panel mode*/ + int disable_libv4l2; /*set to 1 to disbale libv4l2 calls*/ + char format[5]; /*pixelformat fourcc*/ + char render[5]; /*render api*/ + char gui[5]; /*gui api*/ + char audio[6]; /*audio api - none; port; pulse*/ + int audio_device; /*audio device index 0..N (-1 = default)*/ + char capture[5]; /*capture method: read or mmap*/ + char audio_codec[5]; /*audio codec*/ + char video_codec[5]; /*video codec*/ + char *prof_filename; /*profile_filename (if set load it on start)*/ + char *profile_name; + char *profile_path; + char *video_name; + char *video_path; + char *photo_name; + char *photo_path; + double video_timer; /*video capture time in seconds (double)*/ + double photo_timer; /*photo capture timer interval in seconds (double)*/ + int photo_npics; /*number of photo captures*/ + char render_flag[5]; /*render window flag => default (none) | FULLSCREEN (full) | MAXIMIZED (max)*/ +} options_t; + +/* + * get the internal options data + * args: + * none + * + * asserts: + * none + * + * returns: pointer to internal options_t struct + */ +options_t *options_get(); + +/* + * parses the command line options + * args: + * argc - number of comman line args + * argv - pointer to list of command line args + * + * asserts: + * none + * + * returns: int (if > 0 app should terminate (help, version) + */ +int options_parse(int argc, char *argv[]); + +/* + * cleans internal options allocations + * args: + * none + * + * asserts: + * none + * + * returns: none + */ +void options_clean(); + +#endif diff -Nru guvcview-1.7.3/guvcview/video_capture.c guvcview-2.0.1+ubuntu1~ppa1/guvcview/video_capture.c --- guvcview-1.7.3/guvcview/video_capture.c 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/guvcview/video_capture.c 2014-10-05 10:41:44.000000000 +0000 @@ -0,0 +1,1215 @@ +/*******************************************************************************# +# guvcview http://guvcview.sourceforge.net # +# # +# Paulo Assis # +# # +# This program is free software; you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation; either version 2 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program; if not, write to the Free Software # +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # +# # +********************************************************************************/ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +/* support for internationalization - i18n */ +#include +#include + +#include "gviewv4l2core.h" +#include "gviewrender.h" +#include "gviewencoder.h" +#include "gview.h" +#include "video_capture.h" +#include "options.h" +#include "config.h" +#include "core_io.h" +#include "gui.h" +#include "../config.h" + +/*flags*/ +extern int debug_level; + +static int render = RENDER_SDL; /*render API*/ +static int quit = 0; /*terminate flag*/ +static int save_image = 0; /*save image flag*/ +static int save_video = 0; /*save video flag*/ + +static uint64_t my_photo_timer = 0; /*timer count*/ + +static uint64_t my_video_timer = 0; /*timer count*/ +static uint64_t my_video_begin_time = 0; /*first video frame ts*/ + +static int restart = 0; /*restart flag*/ + +static char render_caption[30]; /*render window caption*/ + +static uint32_t my_render_mask = REND_FX_YUV_NOFILT; /*render fx filter mask*/ + +static uint32_t my_audio_mask = AUDIO_FX_NONE; /*audio fx filter mask*/ + +/*continues focus*/ +static int do_soft_autofocus = 0; +/*single time focus (can happen during continues focus)*/ +static int do_soft_focus = 0; + +/*pointer to audio context data*/ +static audio_context_t *my_audio_ctx = NULL; + +static __THREAD_TYPE encoder_thread; + +static int my_encoder_status = 0; + +static char status_message[80]; + +/* + * set render flag + * args: + * value - flag value + * + * asserts: + * none + * + * returns: none + */ +void set_render_flag(int value) +{ + render = value; +} + +/* + * get render fx mask + * args: + * none + * + * asserts: + * none + * + * returns: render fx mask + */ +uint32_t get_render_fx_mask() +{ + return my_render_mask; +} + +/* + * set render fx mask + * args: + * new_mask - fx mask value + * + * asserts: + * none + * + * returns: none + */ +void set_render_fx_mask(uint32_t new_mask) +{ + my_render_mask = new_mask; + /* update config */ + config_t *my_config = config_get(); + my_config->video_fx = my_render_mask; +} + +/* + * get audio fx mask + * args: + * none + * + * asserts: + * none + * + * returns: audio fx mask + */ +uint32_t get_audio_fx_mask() +{ + return my_audio_mask; +} + +/* + * set audio fx mask + * args: + * new_mask - new audio fx filter mask + * + * asserts: + * none + * + * returns: none + */ +void set_audio_fx_mask(uint32_t new_mask) +{ + my_audio_mask = new_mask; + /* update config */ + config_t *my_config = config_get(); + my_config->audio_fx = my_audio_mask; +} + +/* + * set software autofocus flag + * args: + * value - flag value + * + * asserts: + * none + * + * returns: none + */ +void set_soft_autofocus(int value) +{ + do_soft_autofocus = value; +} + +/* + * sets the save video flag + * args: + * value - save_video flag value + * + * asserts: + * none + * + * returns: none + */ +void video_capture_save_video(int value) +{ + save_video = value; + + if(debug_level > 1) + printf("GUVCVIEW: save video flag changed to %i\n", save_video); +} + +/* + * gets the save video flag + * args: + * none + * + * asserts: + * none + * + * returns: save_video flag + */ +int video_capture_get_save_video() +{ + return save_video; +} + +/* + * sets the save image flag + * args: + * none + * + * asserts: + * none + * + * returns: none + */ +void video_capture_save_image() +{ + save_image = 1; +} + +/* + * get encoder started flag + * args: + * none + * + * asserts: + * none + * + * returns: encoder started flag (1 -started; 0 -not started) + */ +int get_encoder_status() +{ + return my_encoder_status; +} + +/* + * stops the photo timed capture + * args: + * none + * + * asserts: + * none + * + * returns: none + */ +void stop_photo_timer() +{ + my_photo_timer = 0; + gui_set_image_capture_button_label(_("Cap. Image (I)")); +} + +/* + * checks if photo timed capture is on + * args: + * none + * + * asserts: + * none + * + * returns: 1 if on; 0 if off + */ +int check_photo_timer() +{ + return ( (my_photo_timer > 0) ? 1 : 0 ); +} + +/* + * reset video timer + * args: + * none + * + * asserts: + * none + * + * returns: none + */ +void reset_video_timer() +{ + my_video_timer = 0; + my_video_begin_time = 0; +} + +/* + * stops the video timed capture + * args: + * data - pointer to user data (device) + * + * asserts: + * none + * + * returns: none + */ +static void stop_video_timer(void *data) +{ + /* + * if we are saving video stop it + * this also calls reset_video_timer + */ + if(video_capture_get_save_video()) + gui_click_video_capture_button(data); + + /*make sure the timer is reset*/ + reset_video_timer(); +} + +/* + * checks if video timed capture is on + * args: + * none + * + * asserts: + * none + * + * returns: 1 if on; 0 if off + */ +int check_video_timer() +{ + return ( (my_video_timer > 0) ? 1 : 0 ); +} + +/* + * set software focus flag + * args: + * value - flag value + * + * asserts: + * none + * + * returns: none + */ +void set_soft_focus(int value) +{ + v4l2core_soft_autofocus_set_focus(); + + do_soft_focus = value; +} +/* + * request format update + * args: + * none + * + * asserts: + * none + * + * returns: none + */ +void request_format_update() +{ + restart = 1; +} + +/* + * quit callback + * args: + * data - pointer to user data + * + * asserts: + * none + * + * returns: error code + */ +int quit_callback(void *data) +{ + /*make sure we only call gui_close once*/ + if(!quit) + gui_close(); + + quit = 1; + + return 0; +} + +/************ RENDER callbacks *******************/ +/* + * key I pressed callback + * args: + * data - pointer to user data + * + * asserts: + * none + * + * returns: error code + */ +int key_I_callback(void *data) +{ + gui_click_image_capture_button(); + + if(debug_level > 1) + printf("GUVCVIEW: I key pressed\n"); + + return 0; +} + +/* + * key V pressed callback + * args: + * data - pointer to user data + * + * asserts: + * none + * + * returns: error code + */ +int key_V_callback(void *data) +{ + gui_click_video_capture_button(data); + + if(debug_level > 1) + printf("GUVCVIEW: V key pressed\n"); + + return 0; +} + +/* + * key DOWN pressed callback + * args: + * data - pointer to user data + * + * asserts: + * data (device) is not null + * + * returns: error code + */ +int key_DOWN_callback(void *data) +{ + v4l2_dev_t *device = (v4l2_dev_t *) data; + + /*assertions*/ + assert(device != NULL); + + if(device->has_pantilt_control_id) + { + int id = V4L2_CID_TILT_RELATIVE; + int value = device->tilt_step; + + v4l2_ctrl_t *control = v4l2core_get_control_by_id(device, id); + + if(control) + { + control->value = value; + + if(v4l2core_set_control_value_by_id(device, id)) + fprintf(stderr, "GUVCVIEW: error setting pan/tilt value\n"); + + return 0; + } + } + + return -1; +} + +/* + * key UP pressed callback + * args: + * data - pointer to user data + * + * asserts: + * data (device) is not null + * + * returns: error code + */ +int key_UP_callback(void *data) +{ + v4l2_dev_t *device = (v4l2_dev_t *) data; + + /*assertions*/ + assert(device != NULL); + + if(device->has_pantilt_control_id) + { + int id = V4L2_CID_TILT_RELATIVE; + int value = - device->tilt_step; + + v4l2_ctrl_t *control = v4l2core_get_control_by_id(device, id); + + if(control) + { + control->value = value; + + if(v4l2core_set_control_value_by_id(device, id)) + fprintf(stderr, "GUVCVIEW: error setting pan/tilt value\n"); + + return 0; + } + } + + return -1; +} + +/* + * key LEFT pressed callback + * args: + * data - pointer to user data + * + * asserts: + * data (device) is not null + * + * returns: error code + */ +int key_LEFT_callback(void *data) +{ + v4l2_dev_t *device = (v4l2_dev_t *) data; + + /*assertions*/ + assert(device != NULL); + + if(device->has_pantilt_control_id) + { + int id = V4L2_CID_PAN_RELATIVE; + int value = device->pan_step; + + v4l2_ctrl_t *control = v4l2core_get_control_by_id(device, id); + + if(control) + { + control->value = value; + + if(v4l2core_set_control_value_by_id(device, id)) + fprintf(stderr, "GUVCVIEW: error setting pan/tilt value\n"); + + return 0; + } + } + + return -1; +} + +/* + * key RIGHT pressed callback + * args: + * data - pointer to user data + * + * asserts: + * data (device) is not null + * + * returns: error code + */ +int key_RIGHT_callback(void *data) +{ + v4l2_dev_t *device = (v4l2_dev_t *) data; + + /*assertions*/ + assert(device != NULL); + + if(device->has_pantilt_control_id) + { + int id = V4L2_CID_PAN_RELATIVE; + int value = - device->pan_step; + + v4l2_ctrl_t *control = v4l2core_get_control_by_id(device, id); + + if(control) + { + control->value = value; + + if(v4l2core_set_control_value_by_id(device, id)) + fprintf(stderr, "GUVCVIEW: error setting pan/tilt value\n"); + + return 0; + } + } + + return -1; +} + +/* + * create an audio context + * args: + * api - audio api + * + * asserts: + * none + * + * returns: pointer to audio context data + */ +audio_context_t *create_audio_context(int api) +{ + close_audio_context(); + + my_audio_ctx = audio_init(api); + + return my_audio_ctx; +} + +/* + * get audio context + * args: + * none + * + * asserts: + * none + * + * returns: pointer to audio context data (or NULL if no audio) + */ +audio_context_t *get_audio_context() +{ + if(!my_audio_ctx) + return NULL; + + /*force a valid number of channels*/ + if(my_audio_ctx->channels > 2) + my_audio_ctx->channels = 2; + + return my_audio_ctx; +} + +/* + * close the audio context + * args: + * none + * + * asserts: + * none + * + * returns: none + */ +void close_audio_context() +{ + if(my_audio_ctx != NULL) + audio_close(my_audio_ctx); + + my_audio_ctx = NULL; +} + +/* + * audio processing loop (should run in a separate thread) + * args: + * data - pointer to user data + * + * asserts: + * none + * + * returns: pointer to return code + */ +static void *audio_processing_loop(void *data) +{ + encoder_context_t *encoder_ctx = (encoder_context_t *) data; + + if(debug_level > 1) + printf("GUVCVIEW: audio thread (tid: %u)\n", + (unsigned int) syscall (SYS_gettid)); + + audio_context_t *audio_ctx = get_audio_context(); + if(!audio_ctx) + { + fprintf(stderr, "GUVCVIEW: no audio context: skiping audio processing\n"); + return ((void *) -1); + } + audio_buff_t *audio_buff = NULL; + + /*start audio capture*/ + int frame_size = encoder_get_audio_frame_size(encoder_ctx); + + audio_ctx->capture_buff_size = frame_size * audio_ctx->channels; + audio_start(audio_ctx); + /* + * alloc the buffer after audio_start + * otherwise capture_buff_size may not + * be correct + * allocated data is big enough for float samples (32 bit) + * although it may contain int16 samples (16 bit) + */ + audio_buff = audio_get_buffer(audio_ctx); + + int sample_type = encoder_get_audio_sample_fmt(encoder_ctx); + + + /*enable vu meter OSD display*/ + if(audio_ctx->channels > 1) + render_set_osd_mask(REND_OSD_VUMETER_STEREO); + else + render_set_osd_mask(REND_OSD_VUMETER_MONO); + + while(video_capture_get_save_video()) + { + int ret = audio_get_next_buffer(audio_ctx, audio_buff, + sample_type, my_audio_mask); + + if(ret == 0) + { + encoder_ctx->enc_audio_ctx->pts = audio_buff->timestamp; + + /*OSD vu meter level*/ + render_set_vu_level(audio_buff->level_meter); + + encoder_process_audio_buffer(encoder_ctx, audio_buff->data); + } + } + + /*flush any delayed audio frames*/ + encoder_flush_audio_buffer(encoder_ctx); + + /*reset vu meter*/ + audio_buff->level_meter[0] = 0; + audio_buff->level_meter[1] = 0; + render_set_vu_level(audio_buff->level_meter); + + /*disable OSD*/ + render_set_osd_mask(REND_OSD_NONE); + + audio_stop(audio_ctx); + audio_delete_buffer(audio_buff); + + return ((void *) 0); +} + +/* + * encoder loop (should run in a separate thread) + * args: + * data - pointer to user data + * + * asserts: + * none + * + * returns: pointer to return code + */ +static void *encoder_loop(void *data) +{ + v4l2_dev_t *device = (v4l2_dev_t *) data; + + my_encoder_status = 1; + + if(debug_level > 1) + printf("GUVCVIEW: encoder thread (tid: %u)\n", + (unsigned int) syscall (SYS_gettid)); + + /*get the audio context*/ + audio_context_t *audio_ctx = get_audio_context(); + + __THREAD_TYPE encoder_audio_thread; + + int channels = 0; + int samprate = 0; + + if(audio_ctx) + { + channels = audio_ctx->channels; + samprate = audio_ctx->samprate; + } + + if(debug_level > 0) + printf("GUVCVIEW: audio [channels= %i; samprate= %i] \n", + channels, samprate); + + /*create the encoder context*/ + encoder_context_t *encoder_ctx = encoder_get_context( + device->requested_fmt, + get_video_codec_ind(), + get_audio_codec_ind(), + get_video_muxer(), + device->format.fmt.pix.width, + device->format.fmt.pix.height, + device->fps_num, + device->fps_denom, + channels, + samprate); + + /*store external SPS and PPS data if needed*/ + if(encoder_ctx->video_codec_ind == 0 && /*raw - direct input*/ + device->requested_fmt == V4L2_PIX_FMT_H264) + { + /*request a IDR (key) frame*/ + v4l2core_h264_request_idr(device); + + if(debug_level > 0) + printf("GUVCVIEW: storing external pps and sps data in encoder context\n"); + encoder_ctx->h264_pps_size = device->h264_PPS_size; + if(encoder_ctx->h264_pps_size > 0) + { + encoder_ctx->h264_pps = calloc(device->h264_PPS_size, sizeof(uint8_t)); + if(encoder_ctx->h264_pps == NULL) + { + fprintf(stderr,"GUVCVIEW: FATAL memory allocation failure (encoder_loop): %s\n", strerror(errno)); + exit(-1); + } + memcpy(encoder_ctx->h264_pps, device->h264_PPS, device->h264_PPS_size); + } + + encoder_ctx->h264_sps_size = device->h264_SPS_size; + if(encoder_ctx->h264_sps_size > 0) + { + encoder_ctx->h264_sps = calloc(device->h264_SPS_size, sizeof(uint8_t)); + if(encoder_ctx->h264_sps == NULL) + { + fprintf(stderr,"GUVCVIEW: FATAL memory allocation failure (encoder_loop): %s\n", strerror(errno)); + exit(-1); + } + memcpy(encoder_ctx->h264_sps, device->h264_SPS, device->h264_SPS_size); + } + } + + uint32_t current_framerate = 0; + if(device->requested_fmt == V4L2_PIX_FMT_H264) + { + /* store framerate since it may change due to scheduler*/ + current_framerate = v4l2core_get_h264_frame_rate_config(device); + } + + char *video_filename = NULL; + /*get_video_[name|path] always return a non NULL value*/ + char *name = strdup(get_video_name()); + char *path = strdup(get_video_path()); + + if(get_video_sufix_flag()) + { + char *new_name = add_file_suffix(path, name); + free(name); /*free old name*/ + name = new_name; /*replace with suffixed name*/ + } + int pathsize = strlen(path); + if(path[pathsize] != '/') + video_filename = smart_cat(path, '/', name); + else + video_filename = smart_cat(path, 0, name); + + snprintf(status_message, 79, _("saving video to %s"), video_filename); + gui_status_message(status_message); + + /*muxer initialization*/ + encoder_muxer_init(encoder_ctx, video_filename); + + /*start video capture*/ + video_capture_save_video(1); + + int treshold = 102400; /*100 Mbytes*/ + int64_t last_check_pts = 0; /*last pts when disk supervisor called*/ + + /*start audio processing thread*/ + if(encoder_ctx->enc_audio_ctx != NULL && audio_ctx->channels > 0) + { + if(debug_level > 1) + printf("GUVCVIEW: starting encoder audio thread\n"); + + int ret = __THREAD_CREATE(&encoder_audio_thread, audio_processing_loop, (void *) encoder_ctx); + + if(ret) + fprintf(stderr, "GUVCVIEW: encoder audio thread creation failed (%i)\n", ret); + else if(debug_level > 2) + printf("GUVCVIEW: created audio encoder thread with tid: %u\n", + (unsigned int) encoder_audio_thread); + } + + while(video_capture_get_save_video()) + { + /*process the video buffer*/ + encoder_process_next_video_buffer(encoder_ctx); + + /*disk supervisor*/ + if(encoder_ctx->enc_video_ctx->pts - last_check_pts > 2 * NSEC_PER_SEC) + { + last_check_pts = encoder_ctx->enc_video_ctx->pts; + + if(!encoder_disk_supervisor(treshold, path)) + { + /*stop capture*/ + gui_set_video_capture_button_status(0); + } + } + } + + /*flush the video buffer*/ + encoder_flush_video_buffer(encoder_ctx); + + /*make sure the audio processing thread has stopped*/ + if(encoder_ctx->enc_audio_ctx != NULL && audio_ctx->channels > 0) + { + if(debug_level > 1) + printf("GUVCVIEW: join encoder audio thread\n"); + __THREAD_JOIN(encoder_audio_thread); + } + + /*close the muxer*/ + encoder_muxer_close(encoder_ctx); + + /*close the encoder context (clean up)*/ + encoder_close(encoder_ctx); + + if(device->requested_fmt == V4L2_PIX_FMT_H264) + { + /* restore framerate */ + v4l2core_set_h264_frame_rate_config(device, current_framerate); + } + + /*clean string*/ + free(video_filename); + free(path); + free(name); + + my_encoder_status = 0; + + return ((void *) 0); +} + +/* + * capture loop (should run in a separate thread) + * args: + * data - pointer to user data (device data + options data) + * + * asserts: + * device data is not null + * + * returns: pointer to return code + */ +void *capture_loop(void *data) +{ + capture_loop_data_t *cl_data = (capture_loop_data_t *) data; + v4l2_dev_t *device = (v4l2_dev_t *) cl_data->device; + options_t *my_options = (options_t *) cl_data->options; + //config_t *my_config = (config_t *) cl_data->config; + + uint64_t my_last_photo_time = 0; /*timer count*/ + int my_photo_npics = 0;/*no npics*/ + + /*asserts*/ + assert(device != NULL); + + /*reset quit flag*/ + quit = 0; + + if(debug_level > 1) + printf("GUVCVIEW: capture thread (tid: %u)\n", + (unsigned int) syscall (SYS_gettid)); + + int ret = 0; + + int render_flags = 0; + + if (strcasecmp(my_options->render_flag, "full") == 0) + render_flags = 1; + else if (strcasecmp(my_options->render_flag, "max") == 0) + render_flags = 2; + + render_set_verbosity(debug_level); + + if(render_init(render, device->format.fmt.pix.width, device->format.fmt.pix.height, render_flags) < 0) + render = RENDER_NONE; + else + { + render_set_event_callback(EV_QUIT, &quit_callback, NULL); + render_set_event_callback(EV_KEY_V, &key_V_callback, device); + render_set_event_callback(EV_KEY_I, &key_I_callback, NULL); + render_set_event_callback(EV_KEY_UP, &key_UP_callback, device); + render_set_event_callback(EV_KEY_DOWN, &key_DOWN_callback, device); + render_set_event_callback(EV_KEY_LEFT, &key_LEFT_callback, device); + render_set_event_callback(EV_KEY_RIGHT, &key_RIGHT_callback, device); + } + + /*add a video capture timer*/ + if(my_options->video_timer > 0) + { + my_video_timer = NSEC_PER_SEC * my_options->video_timer; + my_video_begin_time = v4l2core_time_get_timestamp(); /*timer count*/ + /*if are not saving video start it*/ + if(!get_encoder_status()) + start_encoder_thread(device); + } + + /*add a photo capture timer*/ + if(my_options->photo_timer > 0) + { + my_photo_timer = NSEC_PER_SEC * my_options->photo_timer; + my_last_photo_time = v4l2core_time_get_timestamp(); /*timer count*/ + } + + if(my_options->photo_npics > 0) + my_photo_npics = my_options->photo_npics; + + v4l2core_start_stream(device); + + while(!quit) + { + if(restart) + { + restart = 0; /*reset*/ + v4l2core_stop_stream(device); + + /*close render*/ + render_close(); + + v4l2core_clean_buffers(device); + + /*try new format (values prepared by the request callback)*/ + ret = v4l2core_update_current_format(device); + /*try to set the video stream format on the device*/ + if(ret != E_OK) + { + fprintf(stderr, "GUCVIEW: could not set the defined stream format\n"); + fprintf(stderr, "GUCVIEW: trying first listed stream format\n"); + + v4l2core_prepare_valid_format(device); + v4l2core_prepare_valid_resolution(device); + ret = v4l2core_update_current_format(device); + + if(ret != E_OK) + { + fprintf(stderr, "GUCVIEW: also could not set the first listed stream format\n"); + + gui_error(device, "Guvcview error", "could not start a video stream in the device", 1); + + return ((void *) -1); + } + } + + /*restart the render with new format*/ + if(render_init(render, device->format.fmt.pix.width, device->format.fmt.pix.height, render_flags) < 0) + render = RENDER_NONE; + else + { + render_set_event_callback(EV_QUIT, &quit_callback, NULL); + render_set_event_callback(EV_KEY_V, &key_V_callback, device); + render_set_event_callback(EV_KEY_I, &key_I_callback, NULL); + render_set_event_callback(EV_KEY_UP, &key_UP_callback, device); + render_set_event_callback(EV_KEY_DOWN, &key_DOWN_callback, device); + render_set_event_callback(EV_KEY_LEFT, &key_LEFT_callback, device); + render_set_event_callback(EV_KEY_RIGHT, &key_RIGHT_callback, device); + } + + + if(debug_level > 0) + printf("GUVCVIEW: reset to pixelformat=%x width=%i and height=%i\n", device->requested_fmt, device->format.fmt.pix.width, device->format.fmt.pix.height); + + v4l2core_start_stream(device); + + } + + if( v4l2core_get_frame(device) == E_OK) + { + /*decode the raw frame*/ + if(v4l2core_frame_decode(device) != E_OK) + { + fprintf(stderr, "GUVCIEW: Error - Couldn't decode frame\n"); + } + + /*run software autofocus (must be called after frame_decode)*/ + if(do_soft_autofocus || do_soft_focus) + do_soft_focus = v4l2core_soft_autofocus_run(device); + + /*render the decoded frame*/ + snprintf(render_caption, 29, "Guvcview (%2.2f fps)", v4l2core_get_realfps()); + render_set_caption(render_caption); + render_frame(device->yuv_frame, my_render_mask); + + if(check_photo_timer()) + { + if((device->timestamp - my_last_photo_time) > my_photo_timer) + { + save_image = 1; + my_last_photo_time = device->timestamp; + + if(my_options->photo_npics > 0) + { + if(my_photo_npics > 0) + my_photo_npics--; + else + stop_photo_timer(); /*close timer*/ + } + } + } + + if(check_video_timer()) + { + if((device->timestamp - my_video_begin_time) > my_video_timer) + stop_video_timer(device); + } + + if(save_image) + { + char *img_filename = NULL; + + /*get_photo_[name|path] always return a non NULL value*/ + char *name = strdup(get_photo_name()); + char *path = strdup(get_photo_path()); + + if(get_photo_sufix_flag()) + { + char *new_name = add_file_suffix(path, name); + free(name); /*free old name*/ + name = new_name; /*replace with suffixed name*/ + } + int pathsize = strlen(path); + if(path[pathsize] != '/') + img_filename = smart_cat(path, '/', name); + else + img_filename = smart_cat(path, 0, name); + + //if(debug_level > 1) + // printf("GUVCVIEW: saving image to %s\n", img_filename); + + snprintf(status_message, 79, _("saving image to %s"), img_filename); + gui_status_message(status_message); + + v4l2core_save_image(device, img_filename, get_photo_format()); + + free(path); + free(name); + free(img_filename); + + save_image = 0; /*reset*/ + } + + if(video_capture_get_save_video()) + { +#ifdef USE_PLANAR_YUV + int size = (device->format.fmt.pix.width * device->format.fmt.pix.height * 3) / 2; +#else + int size = device->format.fmt.pix.width * device->format.fmt.pix.height * 2; +#endif + uint8_t *input_frame = device->yuv_frame; + /* + * TODO: check codec_id, format and frame flags + * (we may want to store a compressed format + */ + if(get_video_codec_ind() == 0) + { + switch(device->requested_fmt) + { + case V4L2_PIX_FMT_H264: + input_frame = device->h264_frame; + size = (int) device->h264_frame_size; + break; + default: + input_frame = device->raw_frame; + size = (int) device->raw_frame_size; + break; + } + + } + encoder_add_video_frame(input_frame, size, device->timestamp, device->isKeyframe); + + /* + * exponencial scheduler + * with 50% threshold (nanosec) + * and max value of 250 ms (4 fps) + */ + int time_sched = encoder_buff_scheduler(ENCODER_SCHED_EXP, 0.5, 250); + if(time_sched > 0) + { + switch(device->requested_fmt) + { + case V4L2_PIX_FMT_H264: + { + uint32_t framerate = time_sched; /*nanosec*/ + v4l2core_set_h264_frame_rate_config(device, framerate); + break; + } + default: + { + struct timespec req = { + .tv_sec = 0, + .tv_nsec = time_sched};/*nanosec*/ + nanosleep(&req, NULL); + break; + } + } + } + } + /*we are done with the frame buffer release it*/ + v4l2core_release_frame(device); + } + } + + v4l2core_stop_stream(device); + + render_close(); + + return ((void *) 0); +} + +/* + * start the encoder thread + * args: + * data - pointer to user data + * + * asserts: + * none + * + * returns: error code + */ +int start_encoder_thread(void *data) +{ + int ret = __THREAD_CREATE(&encoder_thread, encoder_loop, data); + + if(ret) + fprintf(stderr, "GUVCVIEW: encoder thread creation failed (%i)\n", ret); + else if(debug_level > 2) + printf("GUVCVIEW: created encoder thread with tid: %u\n", + (unsigned int) encoder_thread); + + return ret; +} + +/* + * stop the encoder thread + * args: + * none + * + * asserts: + * none + * + * returns: error code + */ +int stop_encoder_thread() +{ + video_capture_save_video(0); + + __THREAD_JOIN(encoder_thread); + + return 0; +} diff -Nru guvcview-1.7.3/guvcview/video_capture.h guvcview-2.0.1+ubuntu1~ppa1/guvcview/video_capture.h --- guvcview-1.7.3/guvcview/video_capture.h 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/guvcview/video_capture.h 2014-10-05 10:41:44.000000000 +0000 @@ -0,0 +1,288 @@ +/*******************************************************************************# +# guvcview http://guvcview.sourceforge.net # +# # +# Paulo Assis # +# # +# This program is free software; you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation; either version 2 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program; if not, write to the Free Software # +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # +# # +********************************************************************************/ +#ifndef VIDEO_CAPTURE_H +#define VIDEO_CAPTURE_H + +#include +#include + +#include "gviewaudio.h" + +typedef struct _capture_loop_data_t +{ + void *options; + void *config; + void *device; +} capture_loop_data_t; + +/* + * set render flag + * args: + * value - flag value + * + * asserts: + * none + * + * returns: none + */ +void set_render_flag(int value); + +/* + * get render fx mask + * args: + * none + * + * asserts: + * none + * + * returns: render fx mask + */ +uint32_t get_render_fx_mask(); + +/* + * set render fx mask + * args: + * new_mask - new render fx filter mask + * + * asserts: + * none + * + * returns: none + */ +void set_render_fx_mask(uint32_t new_mask); + +/* + * get audio fx mask + * args: + * none + * + * asserts: + * none + * + * returns: audio fx mask + */ +uint32_t get_audio_fx_mask(); + +/* + * set audio fx mask + * args: + * new_mask - new audio fx filter mask + * + * asserts: + * none + * + * returns: none + */ +void set_audio_fx_mask(uint32_t new_mask); + +/* + * set software autofocus flag + * args: + * value - flag value + * + * asserts: + * none + * + * returns: none + */ +void set_soft_autofocus(int value); + +/* + * set software focus flag + * args: + * value - flag value + * + * asserts: + * none + * + * returns: none + */ +void set_soft_focus(int value); + +/* + * checks if photo timed capture is on + * args: + * none + * + * asserts: + * none + * + * returns: 1 if on; 0 if off + */ +int check_photo_timer(); + +/* + * stops the photo timed capture + * args: + * none + * + * asserts: + * none + * + * returns: none + */ +void stop_photo_timer(); + +/* + * checks if video timed capture is on + * args: + * none + * + * asserts: + * none + * + * returns: 1 if on; 0 if off + */ +int check_video_timer(); + +/* + * reset video timer + * args: + * none + * + * asserts: + * none + * + * returns: none + */ +void reset_video_timer(); + +/* + * quit callback + * args: + * data - pointer to user data + * + * asserts: + * none + * + * returns: error code + */ +int quit_callback(void *data); + +/* + * sets the save image flag + * args: + * none + * + * asserts: + * none + * + * returns: none + */ +void video_capture_save_image(); + +/* + * get encoder status + * args: + * none + * + * asserts: + * none + * + * returns: encoder status (1 -running; 0 -not started) + */ +int get_encoder_status(); + +/* + * request format update + * args: + * none + * + * asserts: + * none + * + * returns: none + */ +void request_format_update(); + +/* + * create an audio context + * args: + * api - audio api + * + * asserts: + * none + * + * returns: pointer to audio context data + */ +audio_context_t *create_audio_context(int api); + +/* + * close the audio context + * args: + * none + * + * asserts: + * none + * + * returns: none + */ +void close_audio_context(); + +/* + * get audio context + * args: + * none + * + * asserts: + * none + * + * returns: pointer to audio context data (or NULL if no audio) + */ +audio_context_t *get_audio_context(); + +/* + * start the encoder thread + * args: + * data - pointer to user data + * + * asserts: + * none + * + * returns: error code + */ +int start_encoder_thread(void *data); + +/* + * stop the encoder thread + * args: + * none + * + * asserts: + * none + * + * returns: error code + */ +int stop_encoder_thread(); + +/* + * capture loop (should run in a separate thread) + * args: + * data - pointer to user data + * + * asserts: + * device data is not null + * + * returns: pointer to return code + */ +void *capture_loop(void *data); + +#endif diff -Nru guvcview-1.7.3/gview_audio/audio.c guvcview-2.0.1+ubuntu1~ppa1/gview_audio/audio.c --- guvcview-1.7.3/gview_audio/audio.c 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/gview_audio/audio.c 2014-10-05 10:41:44.000000000 +0000 @@ -0,0 +1,584 @@ +/*******************************************************************************# +# guvcview http://guvcview.sourceforge.net # +# # +# Paulo Assis # +# Nobuhiro Iwamatsu # +# Add UYVY color support(Macbook iSight) # +# Flemming Frandsen # +# Add VU meter OSD # +# # +# This program is free software; you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation; either version 2 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program; if not, write to the Free Software # +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # +# # +********************************************************************************/ + +/*******************************************************************************# +# # +# Audio library # +# # +********************************************************************************/ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +/* support for internationalization - i18n */ +#include +#include + +#include "../config.h" +#include "gviewaudio.h" +#include "gview.h" +#include "audio_portaudio.h" +#if HAS_PULSEAUDIO + #include "audio_pulseaudio.h" +#endif + +/*audio device data mutex*/ +static __MUTEX_TYPE mutex = __STATIC_MUTEX_INIT; +#define __PMUTEX &mutex + +#define AUDBUFF_NUM 80 /*number of audio buffers*/ +#define AUDBUFF_FRAMES 1152 /*number of audio frames per buffer*/ +static audio_buff_t *audio_buffers = NULL; /*pointer to buffers list*/ +static int buffer_read_index = 0; /*current read index of buffer list*/ +static int buffer_write_index = 0;/*current write index of buffer list*/ + +int verbosity = 0; +static int audio_api = AUDIO_PORTAUDIO; + +/* + * set verbosity + * args: + * value - verbosity value + * + * asserts: + * none + * + * returns: none + */ +void audio_set_verbosity(int value) +{ + verbosity = value; +} + +/* + * Lock the mutex + * args: + * none + * + * asserts: + * none + * + * returns: none + */ +void audio_lock_mutex() +{ + __LOCK_MUTEX( __PMUTEX ); +} + +/* + * Unlock the mutex + * args: + * none + * + * asserts: + * none + * + * returns: none + */ +void audio_unlock_mutex() +{ + __UNLOCK_MUTEX( __PMUTEX ); +} + +/* + * free audio buffers + * args: + * none + * + * asserts: + * none + * + * returns: error code + */ +static int audio_free_buffers() +{ + buffer_read_index = 0; + buffer_write_index = 0; + + /*return if no buffers set*/ + if(!audio_buffers) + { + if(verbosity > 0) + fprintf(stderr,"AUDIO: can't free audio buffers (audio_free_buffers): audio_buffers is null\n"); + return 0; + } + + int i = 0; + + for(i = 0; i < AUDBUFF_NUM; ++i) + { + free(audio_buffers[i].data); + } + + free(audio_buffers); + audio_buffers = NULL; +} + +/* + * alloc a single audio buffer + * args: + * audio_ctx - pointer to audio context data + * + * asserts: + * none + * + * returns: pointer to newly allocate audio buffer or NULL on error + * must be freed with audio_delete_buffer + * data is allocated for float(32 bit) samples but can also store + * int16 (16 bit) samples + */ +audio_buff_t *audio_get_buffer(audio_context_t *audio_ctx) +{ + if(audio_ctx->capture_buff_size <= 0) + { + fprintf(stderr, "AUDIO: (get_buffer) invalid capture_buff_size(%i)\n", + audio_ctx->capture_buff_size); + return NULL; + } + + audio_buff_t *audio_buff = calloc(1, sizeof(audio_buff_t)); + if(audio_buff == NULL) + { + fprintf(stderr,"AUDIO: FATAL memory allocation failure (audio_get_buffer): %s\n", strerror(errno)); + exit(-1); + } + audio_buff->data = calloc(audio_ctx->capture_buff_size, sizeof(sample_t)); + if(audio_buff->data == NULL) + { + fprintf(stderr,"AUDIO: FATAL memory allocation failure (audio_get_buffer): %s\n", strerror(errno)); + exit(-1); + } + + return audio_buff; +} + +/* + * deletes a single audio buffer + * args: + * audio_buff - pointer to audio_buff_t data + * + * asserts: + * none + * + * returns: none + */ +void audio_delete_buffer(audio_buff_t *audio_buff) +{ + if(!audio_buff) + return; + + if(audio_buff->data) + free(audio_buff->data); + + free(audio_buff); +} + +/* + * alloc audio buffers + * args: + * audio_ctx - pointer to audio context data + * + * asserts: + * none + * + * returns: error code + */ +static int audio_init_buffers(audio_context_t *audio_ctx) +{ + if(!audio_ctx) + return -1; + + /*don't allocate if no audio*/ + if(audio_api == AUDIO_NONE) + { + audio_buffers = NULL; + return 0; + } + + int i = 0; + + /*set the buffers size*/ + if(!audio_ctx->capture_buff_size) + audio_ctx->capture_buff_size = audio_ctx->channels * AUDBUFF_FRAMES; + + if(audio_ctx->capture_buff) + free(audio_ctx->capture_buff); + + audio_ctx->capture_buff = calloc( + audio_ctx->capture_buff_size, sizeof(sample_t)); + if(audio_ctx->capture_buff == NULL) + { + fprintf(stderr,"AUDIO: FATAL memory allocation failure (audio_init_buffers): %s\n", strerror(errno)); + exit(-1); + } + + /*free audio_buffers (if any)*/ + audio_free_buffers; + + audio_buffers = calloc(AUDBUFF_NUM, sizeof(audio_buff_t)); + if(audio_buffers == NULL) + { + fprintf(stderr,"AUDIO: FATAL memory allocation failure (audio_init_buffers): %s\n", strerror(errno)); + exit(-1); + } + + for(i = 0; i < AUDBUFF_NUM; ++i) + { + audio_buffers[i].data = calloc( + audio_ctx->capture_buff_size, sizeof(sample_t)); + if(audio_buffers[i].data == NULL) + { + fprintf(stderr,"AUDIO: FATAL memory allocation failure (audio_init_buffers): %s\n", strerror(errno)); + exit(-1); + } + audio_buffers[i].flag = AUDIO_BUFF_FREE; + } + + return 0; +} + +/* + * fill a audio buffer data and move write index to next one + * args: + * audio_ctx - pointer to audio context data + * ts - timestamp for end of data + * + * asserts: + * audio_ctx is not null + * + * returns: none + */ +void audio_fill_buffer(audio_context_t *audio_ctx, int64_t ts) +{ + /*assertions*/ + assert(audio_ctx != NULL); + + if(verbosity > 3) + printf("AUDIO: filling buffer ts:%" PRId64 "\n", ts); + /*in nanosec*/ + uint64_t frame_length = NSEC_PER_SEC / audio_ctx->samprate; + uint64_t buffer_length = frame_length * (audio_ctx->capture_buff_size / audio_ctx->channels); + + audio_ctx->current_ts += buffer_length; /*buffer end time*/ + + audio_ctx->ts_drift = audio_ctx->current_ts - ts; + + /*get the current write indexed buffer flag*/ + audio_lock_mutex(); + int flag = audio_buffers[buffer_write_index].flag; + audio_unlock_mutex(); + + if(flag == AUDIO_BUFF_USED) + { + fprintf(stderr, "AUDIO: write buffer(%i) is still in use - dropping data\n", buffer_write_index); + return; + } + + /*write max_frames and fill a buffer*/ + memcpy(audio_buffers[buffer_write_index].data, + audio_ctx->capture_buff, + audio_ctx->capture_buff_size * sizeof(sample_t)); + /*buffer begin time*/ + audio_buffers[buffer_write_index].timestamp = audio_ctx->current_ts - buffer_length; + + audio_buffers[buffer_write_index].level_meter[0] = audio_ctx->capture_buff_level[0]; + audio_buffers[buffer_write_index].level_meter[1] = audio_ctx->capture_buff_level[1]; + + audio_lock_mutex(); + audio_buffers[buffer_write_index].flag = AUDIO_BUFF_USED; + NEXT_IND(buffer_write_index, AUDBUFF_NUM); + audio_unlock_mutex(); + +} + +/* saturate float samples to int16 limits*/ +static int16_t clip_int16 (float in) +{ + //int16_t out = (int16_t) (in < -32768) ? -32768 : (in > 32767) ? 32767 : in; + + long lout = lroundf(in); + int16_t out = (lout < INT16_MIN) ? INT16_MIN : (lout > INT16_MAX) ? INT16_MAX: (int16_t) lout; + return (out); +} + +/* + * get the next used buffer from the ring buffer + * args: + * audio_ctx - pointer to audio context + * buff - pointer to an allocated audio buffer + * type - type of data (SAMPLE_TYPE_[INT16|FLOAT]) + * mask - audio fx mask + * + * asserts: + * none + * + * returns: error code + */ +int audio_get_next_buffer(audio_context_t *audio_ctx, audio_buff_t *buff, int type, uint32_t mask) +{ + audio_lock_mutex(); + int flag = audio_buffers[buffer_read_index].flag; + audio_unlock_mutex(); + + if(flag == AUDIO_BUFF_FREE) + return 1; /*all done*/ + + /*aplly fx*/ + audio_fx_apply(audio_ctx, (sample_t *) audio_buffers[buffer_read_index].data, mask); + + /*copy data into requested format type*/ + int i = 0; + switch(type) + { + case GV_SAMPLE_TYPE_FLOAT: + { + sample_t *my_data = (sample_t *) buff->data; + memcpy( my_data, audio_buffers[buffer_read_index].data, + audio_ctx->capture_buff_size * sizeof(sample_t)); + break; + } + case GV_SAMPLE_TYPE_INT16: + { + int16_t *my_data = (int16_t *) buff->data; + sample_t *buff_p = (sample_t *) audio_buffers[buffer_read_index].data; + for(i = 0; i < audio_ctx->capture_buff_size; ++i) + { + my_data[i] = clip_int16( (buff_p[i]) * INT16_MAX); + } + break; + } + case GV_SAMPLE_TYPE_FLOATP: + { + int j=0; + + float *my_data[audio_ctx->channels]; + sample_t *buff_p = (sample_t *) audio_buffers[buffer_read_index].data; + + for(j = 0; j < audio_ctx->channels; ++j) + my_data[j] = (float *) (((float *) buff->data) + + (j * audio_ctx->capture_buff_size/audio_ctx->channels)); + + for(i = 0; i < audio_ctx->capture_buff_size/audio_ctx->channels; ++i) + for(j = 0; j < audio_ctx->channels; ++j) + { + my_data[j][i] = *buff_p++; + } + break; + } + case GV_SAMPLE_TYPE_INT16P: + { + int j=0; + + int16_t *my_data[audio_ctx->channels]; + sample_t *buff_p = (sample_t *) audio_buffers[buffer_read_index].data; + + for(j = 0; j < audio_ctx->channels; ++j) + my_data[j] = (int16_t *) (((int16_t *) buff->data) + + (j * audio_ctx->capture_buff_size/audio_ctx->channels)); + + for(i = 0; i < audio_ctx->capture_buff_size/audio_ctx->channels; ++i) + for(j = 0; j < audio_ctx->channels; ++j) + { + my_data[j][i] = clip_int16((*buff_p++) * INT16_MAX); + } + break; + } + } + + buff->timestamp = audio_buffers[buffer_read_index].timestamp; + + buff->level_meter[0] = audio_buffers[buffer_read_index].level_meter[0]; + buff->level_meter[1] = audio_buffers[buffer_read_index].level_meter[1]; + + audio_lock_mutex(); + audio_buffers[buffer_read_index].flag = AUDIO_BUFF_FREE; + NEXT_IND(buffer_read_index, AUDBUFF_NUM); + audio_unlock_mutex(); + + return 0; +} + +/* + * audio initialization + * args: + * api - audio API to use + * (AUDIO_NONE, AUDIO_PORTAUDIO, AUDIO_PULSE, ...) + * + * asserts: + * none + * + * returns: pointer to audio context + */ +audio_context_t *audio_init(int api) +{ + + audio_context_t *audio_ctx = NULL; + + audio_api = api; + + switch(audio_api) + { + case AUDIO_NONE: + break; + +#if HAS_PULSEAUDIO + case AUDIO_PULSE: + audio_ctx = audio_init_pulseaudio(); + break; +#endif + case AUDIO_PORTAUDIO: + default: + audio_ctx = audio_init_portaudio(); + break; + } + + if(!audio_ctx) + audio_api = AUDIO_NONE; + + return audio_ctx; +} + +/* + * start audio stream capture + * args: + * audio_ctx - pointer to audio context data + * + * asserts: + * audio_ctx is not null + * + * returns: error code + */ +int audio_start(audio_context_t *audio_ctx) +{ + if(verbosity > 1) + printf("AUDIO: starting audio capture\n"); + /*assertions*/ + assert(audio_ctx != NULL); + + /*alloc the ring buffer*/ + audio_init_buffers(audio_ctx); + + /*reset timestamp values*/ + audio_ctx->current_ts = 0; + audio_ctx->last_ts = 0; + audio_ctx->snd_begintime = 0; + audio_ctx->ts_drift = 0; + + int err = 0; + + switch(audio_api) + { + case AUDIO_NONE: + break; + +#if HAS_PULSEAUDIO + case AUDIO_PULSE: + err = audio_start_pulseaudio(audio_ctx); + break; +#endif + case AUDIO_PORTAUDIO: + default: + err = audio_start_portaudio(audio_ctx); + break; + } + + return err; +} + +/* + * stop audio stream capture + * args: + * audio_ctx - pointer to audio context data + * + * asserts: + * audio_ctx is not null + * + * returns: error code + */ +int audio_stop(audio_context_t *audio_ctx) +{ + int err =0; + + switch(audio_api) + { + case AUDIO_NONE: + break; + +#if HAS_PULSEAUDIO + case AUDIO_PULSE: + err = audio_stop_pulseaudio(audio_ctx); + break; +#endif + case AUDIO_PORTAUDIO: + default: + err = audio_stop_portaudio(audio_ctx); + break; + } + + /*free the ring buffer (if any)*/ + audio_free_buffers(); + + return err; +} + +/* + * close and clean audio context + * args: + * audio_ctx - pointer to audio context data + * + * asserts: + * none + * + * returns: none + */ +void audio_close(audio_context_t *audio_ctx) +{ + audio_fx_close(); + + switch(audio_api) + { + case AUDIO_NONE: + break; + +#if HAS_PULSEAUDIO + case AUDIO_PULSE: + audio_close_pulseaudio(audio_ctx); + break; +#endif + case AUDIO_PORTAUDIO: + default: + audio_close_portaudio(audio_ctx); + break; + } + + if(audio_buffers != NULL) + audio_free_buffers(); +} diff -Nru guvcview-1.7.3/gview_audio/audio_fx.c guvcview-2.0.1+ubuntu1~ppa1/gview_audio/audio_fx.c --- guvcview-1.7.3/gview_audio/audio_fx.c 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/gview_audio/audio_fx.c 2014-10-05 10:41:44.000000000 +0000 @@ -0,0 +1,1175 @@ +/*******************************************************************************# +# guvcview http://guvcview.sourceforge.net # +# # +# Paulo Assis # +# # +# This program is free software; you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation; either version 2 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program; if not, write to the Free Software # +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # +# # +********************************************************************************/ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +/* support for internationalization - i18n */ +#include +#include + +#include "../config.h" +#include "gviewaudio.h" +#include "gview.h" + +#ifndef M_PI +#define M_PI 3.14159265358979323846 +#endif + +extern int verbosity; + +/*----------- structs for audio effects ------------*/ + +/*data for Butterworth filter (LP or HP)*/ +typedef struct _fx_filt_data_t +{ + sample_t buff_in1[2]; + sample_t buff_in2[2]; + sample_t buff_out1[2]; + sample_t buff_out2[2]; + float c; + float a1; + float a2; + float a3; + float b1; + float b2; +} fx_filt_data_t; + +/*data for Comb4 filter*/ +typedef struct _fx_comb4_data_t +{ + int buff_size1; + int buff_size2; + int buff_size3; + int buff_size4; + + sample_t *CombBuff10; // four parallel comb filters - first channel + sample_t *CombBuff11; // four parallel comb filters - second channel + sample_t *CombBuff20; // four parallel comb filters - first channel + sample_t *CombBuff21; // four parallel comb filters - second channel + sample_t *CombBuff30; // four parallel comb filters - first channel + sample_t *CombBuff31; // four parallel comb filters - second channel + sample_t *CombBuff40; // four parallel comb filters - first channel + sample_t *CombBuff41; // four parallel comb filters - second channel + + int CombIndex1; //comb filter 1 index + int CombIndex2; //comb filter 2 index + int CombIndex3; //comb filter 3 index + int CombIndex4; //comb filter 4 index +} fx_comb4_data_t; + +/* data for delay*/ +typedef struct _fx_delay_data_t +{ + int buff_size; + sample_t *delayBuff1; // delay buffer 1 - first channel + sample_t *delayBuff2; // delay buffer 2 - second channel (stereo) + int delayIndex; // delay buffer index +} fx_delay_data_t; + +/* data for WahWah effect*/ +typedef struct _fx_wah_data_t +{ + float lfoskip; + unsigned long skipcount; + float xn1; + float xn2; + float yn1; + float yn2; + float b0; + float b1; + float b2; + float a0; + float a1; + float a2; + float phase; +} fx_wah_data_t; + +typedef struct _fx_rate_data_t +{ + sample_t *rBuff1; + sample_t *rBuff2; + sample_t *wBuff1; + sample_t *wBuff2; + int wSize; + int numsamples; +} fx_rate_data_t; + +typedef struct _audio_fx_t +{ + fx_delay_data_t *ECHO; + fx_delay_data_t *AP1; + fx_comb4_data_t *COMB4; + fx_filt_data_t *HPF; + fx_filt_data_t *LPF1; + fx_rate_data_t *RT1; + fx_wah_data_t *wahData; +} audio_fx_t; + +/*audio fx data*/ +static audio_fx_t *aud_fx = NULL; + +/* + * initialize audio fx data + * args: + * none + * + * asserts: + * none + * + * returns: none + */ +static void audio_fx_init () +{ + aud_fx = calloc(1, sizeof(audio_fx_t)); + if(aud_fx == NULL) + { + fprintf(stderr,"AUDIO: FATAL memory allocation failure (audio_fx_init): %s\n", strerror(errno)); + exit(-1); + } + /*Echo effect data */ + aud_fx->ECHO = NULL; + /* 4 parallel comb filters data*/ + aud_fx->COMB4 = NULL; + /*all pass 1 filter data*/ + aud_fx->AP1 = NULL; + /*WahWah effect data*/ + aud_fx->wahData = NULL; + /*high pass filter data*/ + aud_fx->HPF = NULL; + /*rate transposer*/ + aud_fx->RT1 = NULL; + /*low pass filter*/ + aud_fx->LPF1 = NULL; +} + +/* + * clip float samples [-1.0 ; 1.0] + * args: + * in - float sample + * + * asserts: + * none + * + * returns: float sample + */ +static float clip_float (float in) +{ + in = (in < -1.0) ? -1.0 : (in > 1.0) ? 1.0 : in; + + return in; +} + +/* + * Butterworth Filter for HP or LP + * out(n) = a1 * in + a2 * in(n-1) + a3 * in(n-2) - b1*out(n-1) - b2*out(n-2) + * args: + * FILT - pointer to fx_filt_data_t + * Buff - sampe buffer + * NumSamples - samples in buffer + * channels - number of audio channels + */ +static void Butt(fx_filt_data_t *FILT, + sample_t *Buff, + int NumSamples, + int channels) +{ + int index = 0; + + for (index = 0; index < NumSamples; index = index + channels) + { + sample_t out = FILT->a1 * Buff[index] + FILT->a2 * FILT->buff_in1[0] + + FILT->a3 * FILT->buff_in1[1] - FILT->b1 * FILT->buff_out1[0] - + FILT->b2 * FILT->buff_out1[1]; + FILT->buff_in1[1] = FILT->buff_in1[0]; //in(n-2) = in(n-1) + FILT->buff_in1[0] = Buff[index]; // in(n-1) = in + FILT->buff_out1[1] = FILT->buff_out1[0]; //out(n-2) = out(n-1) + FILT->buff_out1[0] = out; //out(n-1) = out + + Buff[index] = clip_float(out); + /*process second channel*/ + if(channels > 1) + { + out = FILT->a1 * Buff[index+1] + FILT->a2 * FILT->buff_in2[0] + + FILT->a3 * FILT->buff_in2[1] - FILT->b1 * FILT->buff_out2[0] - + FILT->b2 * FILT->buff_out2[1]; + FILT->buff_in2[1] = FILT->buff_in2[0]; //in(n-2) = in(n-1) + FILT->buff_in2[0] = Buff[index+1]; // in(n-1) = in + FILT->buff_out2[1] = FILT->buff_out2[0]; //out(n-2) = out(n-1) + FILT->buff_out2[0] = out; //out(n-1) = out + + Buff[index+1] = clip_float(out); + } + } +} + +/* + * HP Filter: out(n) = a1 * in + a2 * in(n-1) + a3 * in(n-2) - b1*out(n-1) - b2*out(n-2) + * f - cuttof freq., from ~0 Hz to SampleRate/2 - though many synths seem to filter only up to SampleRate/4 + * r = rez amount, from sqrt(2) to ~ 0.1 + * + * c = tan(pi * f / sample_rate); + * a1 = 1.0 / ( 1.0 + r * c + c * c); + * a2 = -2*a1; + * a3 = a1; + * b1 = 2.0 * ( c*c - 1.0) * a1; + * b2 = ( 1.0 - r * c + c * c) * a1; + * args: + * audio_ctx - pointer to audio context + * data -pointer to audio buffer to be processed + * cutoff_freq - filter cut off frequency + * res - rez amount + * + * asserts: + * none + * + * returns: none + */ +static void HPF(audio_context_t *audio_ctx, + sample_t *data, + int cutoff_freq, + float res) +{ + if(aud_fx->HPF == NULL) + { + float inv_samprate = 1.0 / audio_ctx->samprate; + aud_fx->HPF = calloc(1, sizeof(fx_filt_data_t)); + if(aud_fx->HPF == NULL) + { + fprintf(stderr,"AUDIO: FATAL memory allocation failure (HPF): %s\n", strerror(errno)); + exit(-1); + } + aud_fx->HPF->c = tan(M_PI * cutoff_freq * inv_samprate); + aud_fx->HPF->a1 = 1.0 / (1.0 + (res * aud_fx->HPF->c) + (aud_fx->HPF->c * aud_fx->HPF->c)); + aud_fx->HPF->a2 = -2.0 * aud_fx->HPF->a1; + aud_fx->HPF->a3 = aud_fx->HPF->a1; + aud_fx->HPF->b1 = 2.0 * ((aud_fx->HPF->c * aud_fx->HPF->c) - 1.0) * aud_fx->HPF->a1; + aud_fx->HPF->b2 = (1.0 - (res * aud_fx->HPF->c) + (aud_fx->HPF->c * aud_fx->HPF->c)) * aud_fx->HPF->a1; + } + + Butt(aud_fx->HPF, data, audio_ctx->capture_buff_size, audio_ctx->channels); +} + +/* + * LP Filter: out(n) = a1 * in + a2 * in(n-1) + a3 * in(n-2) - b1*out(n-1) - b2*out(n-2) + * f - cuttof freq., from ~0 Hz to SampleRate/2 - + * though many synths seem to filter only up to SampleRate/4 + * r = rez amount, from sqrt(2) to ~ 0.1 + * + * c = 1.0 / tan(pi * f / sample_rate); + * a1 = 1.0 / ( 1.0 + r * c + c * c); + * a2 = 2* a1; + * a3 = a1; + * b1 = 2.0 * ( 1.0 - c*c) * a1; + * b2 = ( 1.0 - r * c + c * c) * a1; + * + * args: + * audio_ctx - pointer to audio context + * data -pointer to audio buffer to be processed + * cutoff_freq - filter cut off frequency + * res - rez amount + * + * asserts: + * none + * + * returns: none + */ +static void LPF(audio_context_t *audio_ctx, + sample_t *data, + float cutoff_freq, + float res) +{ + if(aud_fx->LPF1 == NULL) + { + aud_fx->LPF1 = calloc(1, sizeof(fx_filt_data_t)); + if(aud_fx->LPF1 == NULL) + { + fprintf(stderr,"AUDIO: FATAL memory allocation failure (LPF): %s\n", strerror(errno)); + exit(-1); + } + aud_fx->LPF1->c = 1.0 / tan(M_PI * cutoff_freq / audio_ctx->samprate); + aud_fx->LPF1->a1 = 1.0 / (1.0 + (res * aud_fx->LPF1->c) + (aud_fx->LPF1->c * aud_fx->LPF1->c)); + aud_fx->LPF1->a2 = 2.0 * aud_fx->LPF1->a1; + aud_fx->LPF1->a3 = aud_fx->LPF1->a1; + aud_fx->LPF1->b1 = 2.0 * (1.0 - (aud_fx->LPF1->c * aud_fx->LPF1->c)) * aud_fx->LPF1->a1; + aud_fx->LPF1->b2 = (1.0 - (res * aud_fx->LPF1->c) + (aud_fx->LPF1->c * aud_fx->LPF1->c)) * aud_fx->LPF1->a1; + } + + Butt(aud_fx->LPF1, data, audio_ctx->capture_buff_size, audio_ctx->channels); +} + +/* Non-linear amplifier with soft distortion curve. + * args: + * input - sample input + * + * asserts: + * none + * + * returns: processed sample + */ +static sample_t CubicAmplifier( sample_t input ) +{ + sample_t out; + float temp; + if( input < 0 ) /*silence*/ + { + + temp = input + 1.0f; + out = (temp * temp * temp) - 1.0f; + } + else + { + temp = input - 1.0f; + out = (temp * temp * temp) + 1.0f; + } + return clip_float(out); +} + +/* + * four paralell Comb filters for reverb + * args: + * audio_ctx - audio context + * data - audio buffer to be processed + * delay1_ms - delay for filter 1 + * delay2_ms - delay for filter 2 + * delay3_ms - delay for filter 3 + * delay4_ms - delay for filter 4 + * gain1 - feed gain for filter 1 + * gain2 - feed gain for filter 2 + * gain3 - feed gain for filter 3 + * gain4 - feed gain for filter 4 + * in_gain - input line gain + * + * asserts: + * none + * + * returns: none + */ +static void CombFilter4 (audio_context_t *audio_ctx, + sample_t *data, + int delay1_ms, + int delay2_ms, + int delay3_ms, + int delay4_ms, + float gain1, + float gain2, + float gain3, + float gain4, + float in_gain) +{ + int samp=0; + /*buff_size in samples*/ + + if (aud_fx->COMB4 == NULL) + { + aud_fx->COMB4 = calloc(1, sizeof(fx_comb4_data_t)); + if(aud_fx->COMB4 == NULL) + { + fprintf(stderr,"AUDIO: FATAL memory allocation failure (CombFilter4): %s\n", strerror(errno)); + exit(-1); + } + /*buff_size in samples*/ + aud_fx->COMB4->buff_size1 = (int) delay1_ms * (audio_ctx->samprate * 0.001); + aud_fx->COMB4->buff_size2 = (int) delay2_ms * (audio_ctx->samprate * 0.001); + aud_fx->COMB4->buff_size3 = (int) delay3_ms * (audio_ctx->samprate * 0.001); + aud_fx->COMB4->buff_size4 = (int) delay4_ms * (audio_ctx->samprate * 0.001); + + aud_fx->COMB4->CombBuff10 = calloc(aud_fx->COMB4->buff_size1, sizeof(sample_t)); + if(aud_fx->COMB4->CombBuff10 == NULL) + { + fprintf(stderr,"AUDIO: FATAL memory allocation failure (CombFilter4): %s\n", strerror(errno)); + exit(-1); + } + aud_fx->COMB4->CombBuff20 = calloc(aud_fx->COMB4->buff_size2, sizeof(sample_t)); + if(aud_fx->COMB4->CombBuff20 == NULL) + { + fprintf(stderr,"AUDIO: FATAL memory allocation failure (CombFilter4): %s\n", strerror(errno)); + exit(-1); + } + aud_fx->COMB4->CombBuff30 = calloc(aud_fx->COMB4->buff_size3, sizeof(sample_t)); + if(aud_fx->COMB4->CombBuff30 == NULL) + { + fprintf(stderr,"AUDIO: FATAL memory allocation failure (CombFilter4): %s\n", strerror(errno)); + exit(-1); + } + aud_fx->COMB4->CombBuff40 = calloc(aud_fx->COMB4->buff_size4, sizeof(sample_t)); + if(aud_fx->COMB4->CombBuff40 == NULL) + { + fprintf(stderr,"AUDIO: FATAL memory allocation failure (CombFilter4): %s\n", strerror(errno)); + exit(-1); + } + aud_fx->COMB4->CombBuff11 = NULL; + aud_fx->COMB4->CombBuff21 = NULL; + aud_fx->COMB4->CombBuff31 = NULL; + aud_fx->COMB4->CombBuff41 = NULL; + if(audio_ctx->channels > 1) + { + aud_fx->COMB4->CombBuff11 = calloc(aud_fx->COMB4->buff_size1, sizeof(sample_t)); + if(aud_fx->COMB4->CombBuff11 == NULL) + { + fprintf(stderr,"AUDIO: FATAL memory allocation failure (CombFilter4): %s\n", strerror(errno)); + exit(-1); + } + aud_fx->COMB4->CombBuff21 = calloc(aud_fx->COMB4->buff_size2, sizeof(sample_t)); + if(aud_fx->COMB4->CombBuff21 == NULL) + { + fprintf(stderr,"AUDIO: FATAL memory allocation failure (CombFilter4): %s\n", strerror(errno)); + exit(-1); + } + aud_fx->COMB4->CombBuff31 = calloc(aud_fx->COMB4->buff_size3, sizeof(sample_t)); + if(aud_fx->COMB4->CombBuff31 == NULL) + { + fprintf(stderr,"AUDIO: FATAL memory allocation failure (CombFilter4): %s\n", strerror(errno)); + exit(-1); + } + aud_fx->COMB4->CombBuff41 = calloc(aud_fx->COMB4->buff_size4, sizeof(sample_t)); + if(aud_fx->COMB4->CombBuff41 == NULL) + { + fprintf(stderr,"AUDIO: FATAL memory allocation failure (CombFilter4): %s\n", strerror(errno)); + exit(-1); + } + } + } + + for(samp = 0; samp < audio_ctx->capture_buff_size; samp = samp + audio_ctx->channels) + { + sample_t out1 = in_gain * data[samp] + + gain1 * aud_fx->COMB4->CombBuff10[aud_fx->COMB4->CombIndex1]; + sample_t out2 = in_gain * data[samp] + + gain2 * aud_fx->COMB4->CombBuff20[aud_fx->COMB4->CombIndex2]; + sample_t out3 = in_gain * data[samp] + + gain3 * aud_fx->COMB4->CombBuff30[aud_fx->COMB4->CombIndex3]; + sample_t out4 = in_gain * data[samp] + + gain4 * aud_fx->COMB4->CombBuff40[aud_fx->COMB4->CombIndex4]; + + aud_fx->COMB4->CombBuff10[aud_fx->COMB4->CombIndex1] = data[samp] + + gain1 * aud_fx->COMB4->CombBuff10[aud_fx->COMB4->CombIndex1]; + aud_fx->COMB4->CombBuff20[aud_fx->COMB4->CombIndex2] = data[samp] + + gain2 * aud_fx->COMB4->CombBuff20[aud_fx->COMB4->CombIndex2]; + aud_fx->COMB4->CombBuff30[aud_fx->COMB4->CombIndex3] = data[samp] + + gain3 * aud_fx->COMB4->CombBuff30[aud_fx->COMB4->CombIndex3]; + aud_fx->COMB4->CombBuff40[aud_fx->COMB4->CombIndex4] = data[samp] + + gain4 * aud_fx->COMB4->CombBuff40[aud_fx->COMB4->CombIndex4]; + + data[samp] = clip_float(out1 + out2 + out3 + out4); + + /*if stereo process second channel */ + if(audio_ctx->channels > 1) + { + out1 = in_gain * data[samp+1] + + gain1 * aud_fx->COMB4->CombBuff11[aud_fx->COMB4->CombIndex1]; + out2 = in_gain * data[samp+1] + + gain2 * aud_fx->COMB4->CombBuff21[aud_fx->COMB4->CombIndex2]; + out3 = in_gain * data[samp+1] + + gain3 * aud_fx->COMB4->CombBuff31[aud_fx->COMB4->CombIndex3]; + out4 = in_gain * data[samp+1] + + gain4 * aud_fx->COMB4->CombBuff41[aud_fx->COMB4->CombIndex4]; + + aud_fx->COMB4->CombBuff11[aud_fx->COMB4->CombIndex1] = data[samp+1] + + gain1 * aud_fx->COMB4->CombBuff11[aud_fx->COMB4->CombIndex1]; + aud_fx->COMB4->CombBuff21[aud_fx->COMB4->CombIndex2] = data[samp+1] + + gain2 * aud_fx->COMB4->CombBuff21[aud_fx->COMB4->CombIndex2]; + aud_fx->COMB4->CombBuff31[aud_fx->COMB4->CombIndex3] = data[samp+1] + + gain3 * aud_fx->COMB4->CombBuff31[aud_fx->COMB4->CombIndex3]; + aud_fx->COMB4->CombBuff41[aud_fx->COMB4->CombIndex4] = data[samp+1] + + gain4 * aud_fx->COMB4->CombBuff41[aud_fx->COMB4->CombIndex4]; + + data[samp+1] = clip_float(out1 + out2 + out3 + out4); + } + + if(++(aud_fx->COMB4->CombIndex1) >= aud_fx->COMB4->buff_size1) aud_fx->COMB4->CombIndex1=0; + if(++(aud_fx->COMB4->CombIndex2) >= aud_fx->COMB4->buff_size2) aud_fx->COMB4->CombIndex2=0; + if(++(aud_fx->COMB4->CombIndex3) >= aud_fx->COMB4->buff_size3) aud_fx->COMB4->CombIndex3=0; + if(++(aud_fx->COMB4->CombIndex4) >= aud_fx->COMB4->buff_size4) aud_fx->COMB4->CombIndex4=0; + } +} + +/* + * All pass filter + * args: + * AP - pointer to fx_delay_data_t + * Buff -pointer to sample buffer + * NumSamples - number of samples in buffer + * channels -number of audio channels + * gain- filter gain + * + * asserts: + * none + * + * returns: none + */ +static void all_pass (fx_delay_data_t *AP, + sample_t *Buff, + int NumSamples, + int channels, + float gain) +{ + int samp = 0; + float inv_gain = 1.0 / gain; + + for(samp = 0; samp < NumSamples; samp += channels) + { + AP->delayBuff1[AP->delayIndex] = Buff[samp] + + (gain * AP->delayBuff1[AP->delayIndex]); + Buff[samp] = ((AP->delayBuff1[AP->delayIndex] * (1 - gain*gain)) - + Buff[samp]) * inv_gain; + if(channels > 1) + { + AP->delayBuff2[AP->delayIndex] = Buff[samp+1] + + (gain * AP->delayBuff2[AP->delayIndex]); + Buff[samp+1] = ((AP->delayBuff2[AP->delayIndex] * (1 - gain*gain)) - + Buff[samp+1]) * inv_gain; + } + + if(++(AP->delayIndex) >= AP->buff_size) AP->delayIndex=0; + } +} + +/* + * All pass for reverb + * args: + * audio_ctx - audio context + * data - audio buffer to be processed + * delay_ms - delay in ms + * gain - filter gain + * + * asserts: + * none + * + * returns: none + */ +static void all_pass1 (audio_context_t *audio_ctx, + sample_t *data, + int delay_ms, + float gain) +{ + if(aud_fx->AP1 == NULL) + { + aud_fx->AP1 = calloc(1, sizeof(fx_delay_data_t)); + if(aud_fx->AP1 == NULL) + { + fprintf(stderr,"AUDIO: FATAL memory allocation failure (all_pass1): %s\n", strerror(errno)); + exit(-1); + } + aud_fx->AP1->buff_size = (int) delay_ms * (audio_ctx->samprate * 0.001); + aud_fx->AP1->delayBuff1 = calloc(aud_fx->AP1->buff_size, sizeof(sample_t)); + if(aud_fx->AP1->delayBuff1 == NULL) + { + fprintf(stderr,"AUDIO: FATAL memory allocation failure (all_pass1): %s\n", strerror(errno)); + exit(-1); + } + aud_fx->AP1->delayBuff2 = NULL; + if(audio_ctx->channels > 1) + { + aud_fx->AP1->delayBuff2 = calloc(aud_fx->AP1->buff_size, sizeof(sample_t)); + if(aud_fx->AP1->delayBuff2 == NULL) + { + fprintf(stderr,"AUDIO: FATAL memory allocation failure (all_pass1): %s\n", strerror(errno)); + exit(-1); + } + } + } + + all_pass (aud_fx->AP1, data, + audio_ctx->capture_buff_size, audio_ctx->channels, gain); +} + +/* + * reduce number of samples with linear interpolation + * rate - rate of samples to remove [1,...[ + * rate = 1-> XXX (splits channels) 2 -> X0X0X 3 -> X00X00X 4 -> X000X000X + * args: + * RT - pointer to fx_rate_data_t + * Buff - pointer to sample buffer + * rate - rate of samples to remove + * NumSamples - samples in buffer + * channels - audio channels + * + * asserts: + * + * returns: none + */ +static void change_rate_less(fx_rate_data_t *RT, + sample_t *Buff, + int rate, + int NumSamples, + int channels) +{ + int samp = 0; + int n = 0, i = 0; + + for (samp = 0; samp < NumSamples; samp += channels) + { + if (n==0) + { + RT->rBuff1[i] = Buff[samp]; + if(channels > 1) + RT->rBuff2[i] = Buff[samp + 1]; + + i++; + } + if(++n >= rate) n=0; + } + RT->numsamples = i; +} + +/* + * increase audio tempo by adding audio windows of wtime_ms in given rate + * rate: 2 -> [w1..w2][w1..w2][w2..w3][w2..w3] 3-> [w1..w2][w1..w2][w1..w2][w2..w3][w2..w3][w2..w3] + * args: + * audio_ctx - audio context + * data - audio buffer to be processed + * rate -rate of added windows + * wtime_ms - window time in ms + * + * asserts: + * none + * + * returns: none + */ +static void change_tempo_more(audio_context_t *audio_ctx, + sample_t *data, + int rate, + int wtime_ms) +{ + int samp = 0; + int i = 0; + int r = 0; + int index = 0; + + if(aud_fx->RT1->wBuff1 == NULL) + { + aud_fx->RT1->wSize = wtime_ms * audio_ctx->samprate * 0.001; + aud_fx->RT1->wBuff1 = calloc(aud_fx->RT1->wSize, sizeof(sample_t)); + if(aud_fx->RT1->wBuff1 == NULL) + { + fprintf(stderr,"AUDIO: FATAL memory allocation failure (change_tempo_more): %s\n", strerror(errno)); + exit(-1); + } + if (audio_ctx->channels >1) + { + aud_fx->RT1->wBuff2 = calloc(aud_fx->RT1->wSize, sizeof(sample_t)); + if(aud_fx->RT1->wBuff2 == NULL) + { + fprintf(stderr,"AUDIO: FATAL memory allocation failure (change_tempo_more): %s\n", strerror(errno)); + exit(-1); + } + } + } + + //printf("samples = %i\n", data->RT1->numsamples); + for(samp = 0; samp < aud_fx->RT1->numsamples; samp++) + { + aud_fx->RT1->wBuff1[i] = aud_fx->RT1->rBuff1[samp]; + if(audio_ctx->channels > 1) + aud_fx->RT1->wBuff2[i] = aud_fx->RT1->rBuff2[samp]; + + if((++i) > aud_fx->RT1->wSize) + { + for (r = 0; r < rate; r++) + { + for(i = 0; i < aud_fx->RT1->wSize; i++) + { + data[index] = aud_fx->RT1->wBuff1[i]; + if (audio_ctx->channels > 1) + data[index +1] = aud_fx->RT1->wBuff2[i]; + index += audio_ctx->channels; + } + } + i = 0; + } + } +} + +#define FUZZ(x) CubicAmplifier(CubicAmplifier(CubicAmplifier(CubicAmplifier(x)))) + +/* + * Fuzz distortion + * args: + * audio_ctx - audio context + * data - audio buffer to be processed + * + * asserts: + * audio_ctx is not null + * + * returns: none + */ +static void audio_fx_fuzz (audio_context_t *audio_ctx, sample_t *data) +{ + /*assertions*/ + assert(audio_ctx != NULL); + + int samp=0; + for(samp = 0; samp < audio_ctx->capture_buff_size; samp++) + data[samp] = FUZZ(data[samp]); + HPF(audio_ctx, data, 1000, 0.9); +} + +/* + * Echo effect + * args: + * audio_ctx - audio context + * data - audio buffer to be processed + * delay_ms - echo delay in ms (e.g: 300) + * decay - feedback gain (<1) (e.g: 0.5) + * + * asserts: + * audio_ctx is not null + * + * returns: none + */ +static void audio_fx_echo(audio_context_t *audio_ctx, + sample_t *data, + int delay_ms, + float decay) +{ + /*assertions*/ + assert(audio_ctx != NULL); + + int samp = 0; + + if(aud_fx->ECHO == NULL) + { + aud_fx->ECHO = calloc(1, sizeof(fx_delay_data_t)); + if(aud_fx->ECHO == NULL) + { + fprintf(stderr,"AUDIO: FATAL memory allocation failure (audio_fx_echo): %s\n", strerror(errno)); + exit(-1); + } + aud_fx->ECHO->buff_size = (int) delay_ms * audio_ctx->samprate * 0.001; + aud_fx->ECHO->delayBuff1 = calloc(aud_fx->ECHO->buff_size, sizeof(sample_t)); + if(aud_fx->ECHO->delayBuff1 == NULL) + { + fprintf(stderr,"AUDIO: FATAL memory allocation failure (audio_fx_echo): %s\n", strerror(errno)); + exit(-1); + } + aud_fx->ECHO->delayBuff2 = NULL; + if(audio_ctx->channels > 1) + { + aud_fx->ECHO->delayBuff2 = calloc(aud_fx->ECHO->buff_size, sizeof(sample_t)); + if(aud_fx->ECHO->delayBuff2 == NULL) + { + fprintf(stderr,"AUDIO: FATAL memory allocation failure (audio_fx_echo): %s\n", strerror(errno)); + exit(-1); + } + } + } + + for(samp = 0; samp < audio_ctx->capture_buff_size; samp = samp + audio_ctx->channels) + { + sample_t out = (0.7 * data[samp]) + + (0.3 * aud_fx->ECHO->delayBuff1[aud_fx->ECHO->delayIndex]); + aud_fx->ECHO->delayBuff1[aud_fx->ECHO->delayIndex] = data[samp] + + (aud_fx->ECHO->delayBuff1[aud_fx->ECHO->delayIndex] * decay); + data[samp] = clip_float(out); + /*if stereo process second channel in separate*/ + if (audio_ctx->channels > 1) + { + out = (0.7 * data[samp+1]) + + (0.3 * aud_fx->ECHO->delayBuff2[aud_fx->ECHO->delayIndex]); + aud_fx->ECHO->delayBuff2[aud_fx->ECHO->delayIndex] = data[samp] + + (aud_fx->ECHO->delayBuff2[aud_fx->ECHO->delayIndex] * decay); + data[samp+1] = clip_float(out); + } + + if(++(aud_fx->ECHO->delayIndex) >= aud_fx->ECHO->buff_size) aud_fx->ECHO->delayIndex=0; + } +} + +/* + * Reverb effect + * args: + * audio_ctx - audio context + * data - audio buffer to be processed + * delay_ms - reverb delay in ms + * + * asserts: + * audio_ctx is not null + * + * returns: none + */ +static void audio_fx_reverb (audio_context_t *audio_ctx, + sample_t *data, + int delay_ms) +{ + /*assertions*/ + assert(audio_ctx != NULL); + + /*4 parallel comb filters*/ + CombFilter4 (audio_ctx, data, + delay_ms, delay_ms - 5, delay_ms -10, delay_ms -15, + 0.55, 0.6, 0.5, 0.45, 0.7); + + /*all pass*/ + all_pass1 (audio_ctx, data, delay_ms, 0.75); +} + +#define lfoskipsamples 30 + +/* + * WahWah effect + * !!!!!!!!!!!!! IMPORTANT!!!!!!!!! : + * depth and freqofs should be from 0(min) to 1(max) ! + * res should be greater than 0 ! + * args: + * audio_ctx - audio context + * data - audio buffer to be processed + * freq - LFO frequency (1.5) + * startphase - LFO startphase in RADIANS - usefull for stereo WahWah (0) + * depth - Wah depth (0.7) + * freqofs - Wah frequency offset (0.3) + * res - Resonance (2.5) + * + * asserts: + * audio_ctx is not null + * + * returns: none + */ +static void audio_fx_wahwah (audio_context_t *audio_ctx, + sample_t *data, + float freq, + float startphase, + float depth, + float freqofs, + float res) +{ + /*assertions*/ + assert(audio_ctx != NULL); + + float frequency, omega, sn, cs, alpha; + + if(aud_fx->wahData == NULL) + { + aud_fx->wahData = calloc(1, sizeof(fx_wah_data_t)); + if(aud_fx->wahData == NULL) + { + fprintf(stderr,"AUDIO: FATAL memory allocation failure (audio_fx_wahwah): %s\n", strerror(errno)); + exit(-1); + } + aud_fx->wahData->lfoskip = freq * 2 * M_PI / audio_ctx->samprate; + aud_fx->wahData->phase = startphase; + /*if right channel set: phase += (float)M_PI;*/ + } + + int samp = 0; + for(samp = 0; samp < audio_ctx->capture_buff_size; samp++) + { + float in = data[samp]; + + if ((aud_fx->wahData->skipcount++) % lfoskipsamples == 0) + { + frequency = (1 + cos(aud_fx->wahData->skipcount * aud_fx->wahData->lfoskip + aud_fx->wahData->phase)) * 0.5; + frequency = frequency * depth * (1 - freqofs) + freqofs; + frequency = exp((frequency - 1) * 6); + omega = M_PI * frequency; + sn = sin(omega); + cs = cos(omega); + alpha = sn / (2 * res); + aud_fx->wahData->b0 = (1 - cs) * 0.5; + aud_fx->wahData->b1 = 1 - cs; + aud_fx->wahData->b2 = (1 - cs) * 0.5; + aud_fx->wahData->a0 = 1 + alpha; + aud_fx->wahData->a1 = -2 * cs; + aud_fx->wahData->a2 = 1 - alpha; + } + float out = (aud_fx->wahData->b0 * in + aud_fx->wahData->b1 * aud_fx->wahData->xn1 + + aud_fx->wahData->b2 * aud_fx->wahData->xn2 - aud_fx->wahData->a1 * aud_fx->wahData->yn1 - + aud_fx->wahData->a2 * aud_fx->wahData->yn2) / aud_fx->wahData->a0; + aud_fx->wahData->xn2 = aud_fx->wahData->xn1; + aud_fx->wahData->xn1 = in; + aud_fx->wahData->yn2 = aud_fx->wahData->yn1; + aud_fx->wahData->yn1 = out; + + data[samp] = clip_float(out); + } +} + +/* + * change pitch effect + * args: + * audio_ctx - audio context + * data - audio buffer to be processed + * rate - window rate + * + * asserts: + * audio_ctx is not null + * + * returns: none + */ +static void audio_fx_change_pitch (audio_context_t *audio_ctx, + sample_t *data, + int rate) +{ + if(aud_fx->RT1 == NULL) + { + aud_fx->RT1 = calloc(1, sizeof(fx_rate_data_t)); + if(aud_fx->RT1 == NULL) + { + fprintf(stderr,"AUDIO: FATAL memory allocation failure (audio_fx_change_pitch): %s\n", strerror(errno)); + exit(-1); + } + aud_fx->RT1->wBuff1 = NULL; + aud_fx->RT1->wBuff2 = NULL; + aud_fx->RT1->rBuff1 = calloc(audio_ctx->capture_buff_size/audio_ctx->channels, sizeof(sample_t)); + if(aud_fx->RT1->rBuff1 == NULL) + { + fprintf(stderr,"AUDIO: FATAL memory allocation failure (audio_fx_change_pitch): %s\n", strerror(errno)); + exit(-1); + } + aud_fx->RT1->rBuff2 = NULL; + if(audio_ctx->channels > 1) + { + aud_fx->RT1->rBuff2 = calloc(audio_ctx->capture_buff_size/audio_ctx->channels, sizeof(sample_t)); + if(aud_fx->RT1->rBuff2 == NULL) + { + fprintf(stderr,"AUDIO: FATAL memory allocation failure (audio_fx_change_pitch): %s\n", strerror(errno)); + exit(-1); + } + } + } + + change_rate_less(aud_fx->RT1, data, rate, audio_ctx->capture_buff_size, audio_ctx->channels); + change_tempo_more(audio_ctx, data, rate, 20); + LPF(audio_ctx, data, audio_ctx->samprate * 0.25, 0.9); +} + +/* + * clean fx_delay_data_t + * args: + * DELAY - pointer to fx_delay_data_t + * + * asserts: + * none + * + * returns: none + */ +static void close_DELAY(fx_delay_data_t *DELAY) +{ + if(DELAY != NULL) + { + free(DELAY->delayBuff1); + free(DELAY->delayBuff2); + free(DELAY); + } +} + +/* + * clean fx_comb4_data_t + * args: + * COMB4 - pointer to fx_comb4_data_t + * + * asserts: + * none + * + * returns: none + */ +static void close_COMB4(fx_comb4_data_t *COMB4) +{ + if(COMB4 != NULL) + { + free(COMB4->CombBuff10); + free(COMB4->CombBuff20); + free(COMB4->CombBuff30); + free(COMB4->CombBuff40); + + free(COMB4->CombBuff11); + free(COMB4->CombBuff21); + free(COMB4->CombBuff31); + free(COMB4->CombBuff41); + + free(COMB4); + } +} + +/* + * clean fx_filt_data_t + * args: + * FILT - pointer to fx_filt_data_t + * + * asserts: + * none + * + * returns: none + */ +static void close_FILT(fx_filt_data_t *FILT) +{ + if(FILT != NULL) + { + free(FILT); + } +} + +/* + * clean fx_wah_data_t + * args: + * WAH - pointer to fx_wah_data_t + * + * asserts: + * none + * + * returns: none + */ +static void close_WAHWAH(fx_wah_data_t *WAH) +{ + if(WAH != NULL) + { + free(WAH); + } +} + +/* + * clean reverb data + * args: + * none + * + * asserts: + * none + * + * returns: none + */ +static void close_reverb() +{ + close_DELAY(aud_fx->AP1); + aud_fx->AP1 = NULL; + close_COMB4(aud_fx->COMB4); + aud_fx->COMB4 = NULL; +} + +/* + * clean pitch data + * args: + * none + * + * asserts: + * none + * + * returns: none + */ +static void close_pitch () +{ + if(aud_fx->RT1 != NULL) + { + free(aud_fx->RT1->rBuff1); + free(aud_fx->RT1->rBuff2); + free(aud_fx->RT1->wBuff1); + free(aud_fx->RT1->wBuff2); + free(aud_fx->RT1); + aud_fx->RT1 = NULL; + close_FILT(aud_fx->LPF1); + aud_fx->LPF1 = NULL; + } +} + +/* + * clean audio fx data + * args: + * none + * + * asserts: + * none + * + * returns: none + */ +void audio_fx_close() +{ + if(aud_fx == NULL) + return; + + close_DELAY(aud_fx->ECHO); + aud_fx->ECHO = NULL; + close_reverb(); + close_WAHWAH(aud_fx->wahData); + aud_fx->wahData = NULL; + close_FILT(aud_fx->HPF); + aud_fx->HPF = NULL; + close_pitch(); + + free(aud_fx); + aud_fx = NULL; +} + +/* + * apply audio fx + * args: + * audio_ctx - pointer to audio context + * proc_buff - pointer to audio buffer to process + * mask - or'ed fx combination + * + * asserts: + * none + * + * returns: none + */ +void audio_fx_apply(audio_context_t *audio_ctx, + sample_t *data, + uint32_t mask) +{ + if(mask != AUDIO_FX_NONE) + { + if(verbosity > 2) + printf("AUDIO: Apllying Fx (0x%x)\n", mask); + + if(aud_fx == NULL) + audio_fx_init(); + + if(mask & AUDIO_FX_ECHO) + audio_fx_echo(audio_ctx, data, 300, 0.5); + else + { + close_DELAY(aud_fx->ECHO); + aud_fx->ECHO = NULL; + } + + if(mask & AUDIO_FX_REVERB) + audio_fx_reverb(audio_ctx, data, 50); + else + close_reverb(); + + if(mask & AUDIO_FX_FUZZ) + audio_fx_fuzz(audio_ctx, data); + else + { + close_FILT(aud_fx->HPF); + aud_fx->HPF = NULL; + } + + if(mask & AUDIO_FX_WAHWAH) + audio_fx_wahwah(audio_ctx, data, 1.5, 0, 0.7, 0.3, 2.5); + else + { + close_WAHWAH(aud_fx->wahData); + aud_fx->wahData = NULL; + } + + if(mask & AUDIO_FX_DUCKY) + audio_fx_change_pitch(audio_ctx, data, 2); + else + close_pitch(); + } + else + audio_fx_close(); +} diff -Nru guvcview-1.7.3/gview_audio/audio.h guvcview-2.0.1+ubuntu1~ppa1/gview_audio/audio.h --- guvcview-1.7.3/gview_audio/audio.h 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/gview_audio/audio.h 2014-10-05 10:41:44.000000000 +0000 @@ -0,0 +1,47 @@ +/*******************************************************************************# +# guvcview http://guvcview.sourceforge.net # +# # +# Paulo Assis # +# Nobuhiro Iwamatsu # +# Add UYVY color support(Macbook iSight) # +# Flemming Frandsen # +# Add VU meter OSD # +# # +# This program is free software; you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation; either version 2 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program; if not, write to the Free Software # +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # +# # +********************************************************************************/ + +#ifndef AUDIO_H +#define AUDIO_H + +#include +#include + +#include "gviewaudio.h" + +/* + * fill a audio buffer data and move write index to next one + * args: + * audio_ctx - pointer to audio context data + * ts - timestamp for end of data + * + * asserts: + * audio_ctx is not null + * + * returns: none + */ +void audio_fill_buffer(audio_context_t *audio_ctx, int64_t ts); + +#endif diff -Nru guvcview-1.7.3/gview_audio/audio_portaudio.c guvcview-2.0.1+ubuntu1~ppa1/gview_audio/audio_portaudio.c --- guvcview-1.7.3/gview_audio/audio_portaudio.c 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/gview_audio/audio_portaudio.c 2014-10-05 10:41:44.000000000 +0000 @@ -0,0 +1,499 @@ +/*******************************************************************************# +# guvcview http://guvcview.sourceforge.net # +# # +# Paulo Assis # +# Nobuhiro Iwamatsu # +# Add UYVY color support(Macbook iSight) # +# Flemming Frandsen # +# Add VU meter OSD # +# # +# This program is free software; you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation; either version 2 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program; if not, write to the Free Software # +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # +# # +********************************************************************************/ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +/* support for internationalization - i18n */ +#include +#include + +#include "gview.h" +#include "audio.h" +#include "core_time.h" +#include "gviewaudio.h" + +extern int verbosity; + +static int sample_index = 0; + +#define DEFAULT_LATENCY_DURATION 100.0 + +/* + * Portaudio record callback + * args: + * inputBuffer - pointer to captured input data (for recording) + * outputBuffer - pointer ouput data (for playing - NOT USED) + * framesPerBuffer - buffer size + * timeInfo - pointer to time data (for timestamping) + * statusFlags - stream status + * userData - pointer to user data (audio context) + * + * asserts: + * audio_ctx (userData) is not null + * + * returns: error code (0 ok) + */ +static int recordCallback ( + const void *inputBuffer, + void *outputBuffer, + unsigned long framesPerBuffer, + const PaStreamCallbackTimeInfo* timeInfo, + PaStreamCallbackFlags statusFlags, + void *userData ) +{ + audio_context_t *audio_ctx = (audio_context_t *) userData; + + /*asserts*/ + assert(audio_ctx != NULL); + + int i = 0; + + sample_t *rptr = (sample_t*) inputBuffer; + sample_t *capture_buff = (sample_t *) audio_ctx->capture_buff; + + unsigned long numSamples = framesPerBuffer * audio_ctx->channels; + uint64_t frame_length = NSEC_PER_SEC / audio_ctx->samprate; /*in nanosec*/ + + PaTime ts_sec = timeInfo->inputBufferAdcTime; /*in seconds (double)*/ + int64_t ts = ts_sec * NSEC_PER_SEC; /*in nanosec (monotonic time)*/ + int64_t buff_ts = 0; + + /*determine the number of samples dropped*/ + if(audio_ctx->last_ts <= 0) + { + audio_ctx->last_ts = ts; + } + + if(statusFlags & paInputOverflow) + { + fprintf( stderr, "AUDIO: portaudio buffer overflow\n" ); + + int64_t d_ts = ts - audio_ctx->last_ts; + int n_samples = (d_ts / frame_length) * audio_ctx->channels; + for( i = 0; i < n_samples; ++i ) + { + capture_buff[sample_index] = 0; + sample_index++; + + if(sample_index >= audio_ctx->capture_buff_size) + { + audio_fill_buffer(audio_ctx, audio_ctx->last_ts); + sample_index = 0; + } + } + + if(verbosity > 1) + printf("AUDIO: compensate overflow with %i silence samples\n", n_samples); + } + if(statusFlags & paInputUnderflow) + fprintf( stderr, "AUDIO: portaudio buffer underflow\n" ); + + if(sample_index == 0) + { + audio_ctx->capture_buff_level[0] = 0; + audio_ctx->capture_buff_level[1] = 0; + } + + int chan = 0; + /*store capture samples*/ + for( i = 0; i < numSamples; ++i ) + { + capture_buff[sample_index] = inputBuffer ? *rptr++ : 0; + sample_index++; + + /*store peak value*/ + if(audio_ctx->capture_buff_level[chan] < capture_buff[sample_index]) + audio_ctx->capture_buff_level[chan] = capture_buff[sample_index]; + chan++; + if(chan >= audio_ctx->channels) + chan = 0; + + if(sample_index >= audio_ctx->capture_buff_size) + { + buff_ts = ts + ( i / audio_ctx->channels ) * frame_length; + + audio_fill_buffer(audio_ctx, buff_ts); + + /*reset*/ + audio_ctx->capture_buff_level[0] = 0; + audio_ctx->capture_buff_level[1] = 0; + sample_index = 0; + } + } + + audio_ctx->last_ts = ts + (framesPerBuffer * frame_length); + + if(audio_ctx->stream_flag == AUDIO_STRM_OFF ) + return (paComplete); /*capture stopped*/ + else + return (paContinue); /*still capturing*/ +} + + +/* + * list audio devices for portaudio api + * args: + * audio_ctx - pointer to audio context data + * asserts: + * audio_ctx is not null + * + * returns: error code (0 ok) + */ +static int audio_portaudio_list_devices(audio_context_t *audio_ctx) +{ + int numDevices; + const PaDeviceInfo *deviceInfo; + + //reset device count + audio_ctx->num_input_dev = 0; + + numDevices = Pa_GetDeviceCount(); + if( numDevices < 0 ) + { + printf( "AUDIO: Audio disabled: Pa_CountDevices returned %i\n", numDevices ); + } + else + { + audio_ctx->device = 0; + + int it = 0; + for( it=0; it < numDevices; it++ ) + { + deviceInfo = Pa_GetDeviceInfo( it ); + if (verbosity > 0) + printf( "--------------------------------------- device #%d\n", it ); + /* Mark audio_ctx and API specific default devices*/ + int defaultDisplayed = 0; + + /* with pulse, ALSA is now listed first and doesn't set a API default- 11-2009*/ + if( it == Pa_GetDefaultInputDevice() ) + { + if (verbosity > 0) + printf( "[ Default Input" ); + defaultDisplayed = 1; + audio_ctx->device = audio_ctx->num_input_dev;/*default index in array of input devs*/ + } + else if( it == Pa_GetHostApiInfo( deviceInfo->hostApi )->defaultInputDevice ) + { + const PaHostApiInfo *hostInfo = Pa_GetHostApiInfo( deviceInfo->hostApi ); + if (verbosity > 0) + printf( "[ Default %s Input", hostInfo->name ); + defaultDisplayed = 2; + } + /* OUTPUT device doesn't matter for capture*/ + if( it == Pa_GetDefaultOutputDevice() ) + { + if (verbosity > 0) + { + printf( (defaultDisplayed ? "," : "[") ); + printf( " Default Output" ); + } + defaultDisplayed = 3; + } + else if( it == Pa_GetHostApiInfo( deviceInfo->hostApi )->defaultOutputDevice ) + { + const PaHostApiInfo *hostInfo = Pa_GetHostApiInfo( deviceInfo->hostApi ); + if (verbosity > 0) + { + printf( (defaultDisplayed ? "," : "[") ); + printf( " Default %s Output", hostInfo->name );/* OSS ALSA etc*/ + } + defaultDisplayed = 4; + } + + if( defaultDisplayed!=0 ) + if (verbosity > 0) + printf( " ]\n" ); + + /* print device info fields */ + if (verbosity > 0) + { + printf( "Name = %s\n", deviceInfo->name ); + printf( "Host API = %s\n", Pa_GetHostApiInfo( deviceInfo->hostApi )->name ); + printf( "Max inputs = %d", deviceInfo->maxInputChannels ); + } + /* INPUT devices (if it has input channels it's a capture device)*/ + if (deviceInfo->maxInputChannels > 0) + { + audio_ctx->num_input_dev++; + /*add device to list*/ + audio_ctx->list_devices = realloc(audio_ctx->list_devices, audio_ctx->num_input_dev * sizeof(audio_device_t)); + if(audio_ctx->list_devices == NULL) + { + fprintf(stderr,"AUDIO: FATAL memory allocation failure (audio_portaudio_list_devices): %s\n", strerror(errno)); + exit(-1); + } + /*fill device data*/ + audio_ctx->list_devices[audio_ctx->num_input_dev-1].id = it; + strncpy(audio_ctx->list_devices[audio_ctx->num_input_dev-1].name, deviceInfo->name, 511); + strncpy(audio_ctx->list_devices[audio_ctx->num_input_dev-1].description, deviceInfo->name, 255); + audio_ctx->list_devices[audio_ctx->num_input_dev-1].channels = deviceInfo->maxInputChannels; + audio_ctx->list_devices[audio_ctx->num_input_dev-1].samprate = deviceInfo->defaultSampleRate; + //audio_ctx->list_devices[audio_ctx->num_input_dev-1].Hlatency = deviceInfo->defaultHighInputLatency; + //audio_ctx->list_devices[audio_ctx->num_input_dev-1].Llatency = deviceInfo->defaultLowInputLatency; + } + if (verbosity > 0) + { + printf( ", Max outputs = %d\n", deviceInfo->maxOutputChannels ); + printf( "Def. low input latency = %8.3f\n", deviceInfo->defaultLowInputLatency ); + printf( "Def. low output latency = %8.3f\n", deviceInfo->defaultLowOutputLatency ); + printf( "Def. high input latency = %8.3f\n", deviceInfo->defaultHighInputLatency ); + printf( "Def. high output latency = %8.3f\n", deviceInfo->defaultHighOutputLatency ); + printf( "Def. sample rate = %8.2f\n", deviceInfo->defaultSampleRate ); + } + + } + + if (verbosity > 0) + printf("----------------------------------------------\n"); + } + + /*set defaults*/ + audio_ctx->channels = audio_ctx->list_devices[audio_ctx->device].channels; + audio_ctx->samprate = audio_ctx->list_devices[audio_ctx->device].samprate; + + return 0; +} + +/* + * init portaudio api + * args: + * none + * + * asserts: + * none + * + * returns: pointer to audio context data + * or NULL if error + */ +audio_context_t *audio_init_portaudio() +{ + int pa_error = Pa_Initialize(); + + if(pa_error != paNoError) + { + fprintf(stderr,"AUDIO: Failed to Initialize Portaudio (Pa_Initialize returned %i)\n", pa_error); + return NULL; + } + + audio_context_t *audio_ctx = calloc(1, sizeof(audio_context_t)); + if(audio_ctx == NULL) + { + fprintf(stderr,"AUDIO: FATAL memory allocation failure (audio_init_portaudio): %s\n", strerror(errno)); + exit(-1); + } + + if(audio_portaudio_list_devices(audio_ctx) != 0) + { + fprintf(stderr, "AUDIO: Portaudio failed to get audio device list\n"); + free(audio_ctx); + return NULL; + } + + audio_ctx->api = AUDIO_PORTAUDIO; + + return audio_ctx; +} + +/* + * start portaudio stream capture + * args: + * audio_ctx - pointer to audio context data + * + * asserts: + * audio_ctx is not null + * + * returns: error code + */ +int audio_start_portaudio(audio_context_t *audio_ctx) +{ + /*assertions*/ + assert(audio_ctx != NULL); + + PaError err = paNoError; + PaStream *stream = (PaStream *) audio_ctx->stream; + + if(stream) + { + if( !(Pa_IsStreamStopped( stream ))) + { + Pa_AbortStream( stream ); + Pa_CloseStream( stream ); + audio_ctx->stream = NULL; + stream = audio_ctx->stream; + } + } + + PaStreamParameters inputParameters; + + inputParameters.device = audio_ctx->list_devices[audio_ctx->device].id; + inputParameters.channelCount = audio_ctx->channels; + inputParameters.sampleFormat = paFloat32; /*sample_t - float*/ + + if (Pa_GetDeviceInfo( inputParameters.device )) + inputParameters.suggestedLatency = Pa_GetDeviceInfo( inputParameters.device )->defaultLowInputLatency; + //inputParameters.suggestedLatency = Pa_GetDeviceInfo( inputParameters.device )->defaultHighInputLatency; + else + inputParameters.suggestedLatency = DEFAULT_LATENCY_DURATION/1000.0; + inputParameters.hostApiSpecificStreamInfo = NULL; + + /*---------------------------- start recording Audio. ----------------------------- */ + audio_ctx->snd_begintime = ns_time_monotonic(); + + audio_ctx->stream_flag = AUDIO_STRM_ON; + + err = Pa_OpenStream( + &stream, /* stream */ + &inputParameters, /* inputParameters */ + NULL, /* outputParameters */ + audio_ctx->samprate, /* sample rate */ + paFramesPerBufferUnspecified,/* buffer in frames (use API optimal)*/ + paNoFlag, /* PaNoFlag - clip and dhiter*/ + recordCallback, /* sound callback */ + audio_ctx ); /* callback userData */ + + if( err == paNoError ) + { + err = Pa_StartStream( stream ); + audio_ctx->stream = (void *) stream; /* store stream pointer*/ + } + + if( err != paNoError ) + { + fprintf(stderr, "AUDIO: An error occured while starting the portaudio API\n" ); + fprintf(stderr, " Error number: %d\n", err ); + fprintf(stderr, " Error message: %s\n", Pa_GetErrorText( err ) ); + + if(stream) Pa_AbortStream( stream ); + audio_ctx->stream_flag = AUDIO_STRM_OFF; + + return(-1); + } + + const PaStreamInfo* stream_info = Pa_GetStreamInfo (stream); + if(verbosity > 1) + printf("AUDIO: latency of %8.3f msec\n", 1000 * stream_info->inputLatency); + + return 0; +} + +/* + * stop portaudio stream capture + * args: + * audio_ctx - pointer to audio context data + * + * asserts: + * audio_ctx is not null + * + * returns: error code + */ +int audio_stop_portaudio(audio_context_t *audio_ctx) +{ + /*assertions*/ + assert(audio_ctx != NULL); + + int ret = 0; + int err = paNoError; + audio_ctx->stream_flag = AUDIO_STRM_OFF; + + PaStream *stream = (PaStream *) audio_ctx->stream; + + /*stops and closes the audio stream*/ + if(stream) + { + if(Pa_IsStreamActive( stream ) > 0) + { + printf("AUDIO: (portaudio) Aborting audio stream\n"); + err = Pa_AbortStream( stream ); + } + else + { + printf("AUDIO: (portaudio) Stoping audio stream\n"); + err = Pa_StopStream( stream ); + } + + if( err != paNoError ) + { + fprintf(stderr, "AUDIO: (portaudio) An error occured while stoping the audio stream\n" ); + fprintf(stderr, " Error number: %d\n", err ); + fprintf(stderr, " Error message: %s\n", Pa_GetErrorText( err ) ); + ret = -1; + } + + printf("AUDIO: Closing audio stream...\n"); + err = Pa_CloseStream( stream ); + + if( err != paNoError ) + { + fprintf(stderr, "AUDIO: (portaudio) An error occured while closing the audio stream\n" ); + fprintf(stderr, " Error number: %d\n", err ); + fprintf(stderr, " Error message: %s\n", Pa_GetErrorText( err ) ); + ret = -1; + } + } + else + { + fprintf(stderr, "AUDIO: (portaudio) Invalid stream pointer.\n"); + ret = -2; + } + + audio_ctx->stream = NULL; + + return ret; +} + +/* + * close and clean audio context for portaudio api + * args: + * audio_ctx - pointer to audio context data + * + * asserts: + * none + * + * returns: none + */ +void audio_close_portaudio(audio_context_t *audio_ctx) +{ + Pa_Terminate(); + + if(audio_ctx == NULL) + return; + + if(audio_ctx->list_devices != NULL); + free(audio_ctx->list_devices); + audio_ctx->list_devices = NULL; + + if(audio_ctx->capture_buff) + free(audio_ctx->capture_buff); + + free(audio_ctx); +} diff -Nru guvcview-1.7.3/gview_audio/audio_portaudio.h guvcview-2.0.1+ubuntu1~ppa1/gview_audio/audio_portaudio.h --- guvcview-1.7.3/gview_audio/audio_portaudio.h 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/gview_audio/audio_portaudio.h 2014-10-05 10:41:44.000000000 +0000 @@ -0,0 +1,78 @@ +/*******************************************************************************# +# guvcview http://guvcview.sourceforge.net # +# # +# Paulo Assis # +# Nobuhiro Iwamatsu # +# Add UYVY color support(Macbook iSight) # +# Flemming Frandsen # +# Add VU meter OSD # +# # +# This program is free software; you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation; either version 2 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program; if not, write to the Free Software # +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # +# # +********************************************************************************/ + +#ifndef GVIEWAUDIO_PORTAUDIO_H +#define GVIEWAUDIO_PORTAUDIO_H + +/* + * init portaudio api + * args: + * none + * + * asserts: + * none + * + * returns: pointer to audio context data + * or NULL if error + */ +audio_context_t *audio_init_portaudio(); + +/* + * start portaudio stream capture + * args: + * audio_ctx - pointer to audio context data + * + * asserts: + * audio_ctx is not null + * + * returns: error code + */ +int audio_start_portaudio(audio_context_t *audio_ctx); + +/* + * stop portaudio stream capture + * args: + * audio_ctx - pointer to audio context data + * + * asserts: + * audio_ctx is not null + * + * returns: error code + */ +int audio_stop_portaudio(audio_context_t *audio_ctx); + +/* + * close and clean audio context for portaudio api + * args: + * audio_ctx - pointer to audio context data + * + * asserts: + * none + * + * returns: none + */ +void audio_close_portaudio(audio_context_t *audio_ctx); + +#endif \ No newline at end of file diff -Nru guvcview-1.7.3/gview_audio/audio_pulseaudio.c guvcview-2.0.1+ubuntu1~ppa1/gview_audio/audio_pulseaudio.c --- guvcview-1.7.3/gview_audio/audio_pulseaudio.c 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/gview_audio/audio_pulseaudio.c 2014-10-05 10:41:44.000000000 +0000 @@ -0,0 +1,739 @@ +/*******************************************************************************# +# guvcview http://guvcview.sourceforge.net # +# # +# Paulo Assis # +# Nobuhiro Iwamatsu # +# Add UYVY color support(Macbook iSight) # +# Flemming Frandsen # +# Add VU meter OSD # +# # +# This program is free software; you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation; either version 2 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program; if not, write to the Free Software # +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # +# # +********************************************************************************/ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +/* support for internationalization - i18n */ +#include +#include + +#include "gview.h" +#include "audio.h" +#include "core_time.h" +#include "gviewaudio.h" + +extern int verbosity; + +static int sample_index = 0; + + +// From pulsecore/macro.h +#define pa_memzero(x,l) (memset((x), 0, (l))) +#define pa_zero(x) (pa_memzero(&(x), sizeof(x))) + +static pa_stream *recordstream = NULL; // pulse audio stream +static pa_context *pa_ctx = NULL; //pulse context + +static uint32_t latency_ms = 15; // requested initial latency in milisec: 0 use max +static pa_usec_t latency = 0; //real latency in usec (for timestamping) + +static int sink_index = 0; +static int source_index = 0; + +static __THREAD_TYPE my_read_thread; + +/* + * clean up and disconnect + * args: + * pa_ctx - pointer to pulse context + * pa_ml - pointer to pulse mainloop + * + * asserts: + * none + * + * returns: + * none + */ +static void finish(pa_context *pa_ctx, pa_mainloop *pa_ml) +{ + /* clean up and disconnect */ + pa_context_disconnect(pa_ctx); + pa_context_unref(pa_ctx); + pa_mainloop_free(pa_ml); +} + +/* + * This callback gets called when our context changes state. + * We really only care about when it's ready or if it has failed + * args: + * c -pointer to pulse context + * data - pointer to user data + * + * asserts: + * none + * + * retuns: none + */ +static void pa_state_cb(pa_context *c, void *data) +{ + pa_context_state_t state; + int *pa_ready = data; + state = pa_context_get_state(c); + switch (state) + { + // These are just here for reference + case PA_CONTEXT_UNCONNECTED: + case PA_CONTEXT_CONNECTING: + case PA_CONTEXT_AUTHORIZING: + case PA_CONTEXT_SETTING_NAME: + default: + break; + case PA_CONTEXT_FAILED: + case PA_CONTEXT_TERMINATED: + *pa_ready = 2; + break; + case PA_CONTEXT_READY: + *pa_ready = 1; + break; + } +} + +/* + * pa_mainloop will call this function when it's ready to tell us + * about a source (input). + * Since we're not threading when listing devices, + * there's no need for mutexes on the devicelist structure + * args: + * c - pointer to pulse context + * l - pointer to source info + * eol - end of list + * data - pointer to user data (audio context) + * + * asserts: + * none + * + * returns: none + */ +static void pa_sourcelist_cb(pa_context *c, const pa_source_info *l, int eol, void *data) +{ + audio_context_t *audio_ctx = (audio_context_t *) data; + + int channels = 1; + + /* + * If eol is set to a positive number, + * you're at the end of the list + */ + if (eol > 0) + return; + + source_index++; + + if(l->sample_spec.channels <1) + channels = 1; + else + channels = l->sample_spec.channels; + + if(verbosity > 0) + { + printf("AUDIO: =======[ Input Device #%d ]=======\n", source_index); + printf(" Description: %s\n", l->description); + printf(" Name: %s\n", l->name); + printf(" Index: %d\n", l->index); + printf(" Channels: %d (default to: %d)\n", l->sample_spec.channels, channels); + printf(" SampleRate: %d\n", l->sample_spec.rate); + printf(" Latency: %llu (usec)\n", (long long unsigned) l->latency); + printf(" Card: %d\n", l->card); + printf("\n"); + } + + if(l->monitor_of_sink == PA_INVALID_INDEX) + { + audio_ctx->num_input_dev++; + /*add device to list*/ + audio_ctx->list_devices = realloc(audio_ctx->list_devices, audio_ctx->num_input_dev * sizeof(audio_device_t)); + if(audio_ctx->list_devices == NULL) + { + fprintf(stderr,"AUDIO: FATAL memory allocation failure (pa_sourcelist_cb): %s\n", strerror(errno)); + exit(-1); + } + /*fill device data*/ + audio_ctx->list_devices[audio_ctx->num_input_dev-1].id = l->index; /*saves dev id*/ + strncpy(audio_ctx->list_devices[audio_ctx->num_input_dev-1].name, l->name, 511); + strncpy(audio_ctx->list_devices[audio_ctx->num_input_dev-1].description, l->description, 255); + audio_ctx->list_devices[audio_ctx->num_input_dev-1].channels = channels; + audio_ctx->list_devices[audio_ctx->num_input_dev-1].samprate = l->sample_spec.rate; + } +} + +/* + * pa_mainloop will call this function when it's ready to tell us + * about a source (input). + * This callback is pretty much identical to the previous + * but it will only print the output devices + * args: + * c - pointer to pulse context + * l - pointer to sink info + * eol - end of list + * data - pointer to user data (audio context) + * + * asserts: + * none + * + * returns: none + */ +static void pa_sinklist_cb(pa_context *c, const pa_sink_info *l, int eol, void *userdata) +{ + //audio_context_t *audio_ctx = (audio_context_t *) data; + + /* + * If eol is set to a positive number, + * you're at the end of the list + */ + if (eol > 0) + return; + + sink_index++; + + if(verbosity > 0) + { + printf("AUDIO: =======[ Output Device #%d ]=======\n", sink_index); + printf(" Description: %s\n", l->description); + printf(" Name: %s\n", l->name); + printf(" Index: %d\n", l->index); + printf(" Channels: %d\n", l->channel_map.channels); + printf(" SampleRate: %d\n", l->sample_spec.rate); + printf(" Latency: %llu (usec)\n", (long long unsigned) l->latency); + printf(" Card: %d\n", l->card); + printf("\n"); + } +} + +/* + * iterate the main loop until all devices are listed + * args: + * audio_ctx - pointer to audio context + * + * asserts: + * audio_ctx is not null + * + * returns: error code + */ +static int pa_get_devicelist(audio_context_t *audio_ctx) +{ + /*assertions*/ + assert(audio_ctx != NULL); + + /* Define our pulse audio loop and connection variables */ + pa_mainloop *pa_ml; + pa_mainloop_api *pa_mlapi; + pa_operation *pa_op = NULL; + pa_context *pa_ctx; + + /* We'll need these state variables to keep track of our requests */ + int state = 0; + int pa_ready = 0; + + /* Create a mainloop API and connection to the default server */ + pa_ml = pa_mainloop_new(); + pa_mlapi = pa_mainloop_get_api(pa_ml); + pa_ctx = pa_context_new(pa_mlapi, "getDevices"); + + /* This function connects to the pulse server */ + if(pa_context_connect(pa_ctx, NULL, 0, NULL) < 0) + { + fprintf(stderr,"AUDIO: PULSE - unable to connect to server: pa_context_connect failed\n"); + finish(pa_ctx, pa_ml); + return -1; + } + + /* + * This function defines a callback so the server will tell us + * it's state. + * Our callback will wait for the state to be ready. + * The callback will modify the variable to 1 so we know when we + * have a connection and it's ready. + * If there's an error, the callback will set pa_ready to 2 + */ + pa_context_set_state_callback(pa_ctx, pa_state_cb, &pa_ready); + + /* + * Now we'll enter into an infinite loop until we get the data + * we receive or if there's an error + */ + for (;;) + { + /* + * We can't do anything until PA is ready, + * so just iterate the mainloop and continue + */ + if (pa_ready == 0) + { + pa_mainloop_iterate(pa_ml, 1, NULL); + continue; + } + /* We couldn't get a connection to the server, so exit out */ + if (pa_ready == 2) + { + finish(pa_ctx, pa_ml); + return -1; + } + /* + * At this point, we're connected to the server and ready + * to make requests + */ + switch (state) + { + /* State 0: we haven't done anything yet */ + case 0: + /* + * This sends an operation to the server. + * pa_sinklist_cb is our callback function and a pointer + * o our devicelist will be passed to the callback + * (audio_ctx) The operation ID is stored in the + * pa_op variable + */ + pa_op = pa_context_get_sink_info_list( + pa_ctx, + pa_sinklist_cb, + (void *) audio_ctx); + + /* Update state for next iteration through the loop */ + state++; + break; + case 1: + /* + * Now we wait for our operation to complete. + * When it's complete our pa_output_devicelist is + * filled out, and we move along to the next state + */ + if (pa_operation_get_state(pa_op) == PA_OPERATION_DONE) + { + pa_operation_unref(pa_op); + + /* + * Now we perform another operation to get the + * source(input device) list just like before. + * This time we pass a pointer to our input structure + */ + pa_op = pa_context_get_source_info_list( + pa_ctx, + pa_sourcelist_cb, + (void *) audio_ctx); + /* Update the state so we know what to do next */ + state++; + } + break; + case 2: + if (pa_operation_get_state(pa_op) == PA_OPERATION_DONE) + { + /* + * Now we're done, + * clean up and disconnect and return + */ + pa_operation_unref(pa_op); + finish(pa_ctx, pa_ml); + return 0; + } + break; + default: + /* We should never see this state */ + printf("AUDIO: Pulseaudio in state %d\n", state); + return -1; + } + /* + * Iterate the main loop and go again. The second argument is whether + * or not the iteration should block until something is ready to be + * done. Set it to zero for non-blocking. + */ + pa_mainloop_iterate(pa_ml, 1, NULL); + } + + return 0; +} + +/* + * update pulseaudio latency + * args: + * s - pointer to pa_stream + * + * asserts: + * none + * + * returns:none + */ +static void get_latency(pa_stream *s) +{ + pa_usec_t l; + int negative; + + pa_stream_get_timing_info(s); + + if (pa_stream_get_latency(s, &l, &negative) != 0) + { + fprintf(stderr, "AUDIO: Pulseaudio pa_stream_get_latency() failed\n"); + return; + } + + //latency = l * (negative?-1:1); + latency = l; /*can only be negative in monitoring streams*/ + + //printf("AUDIO: pulseaudio latency is %0.0f usec \r", (float)latency); +} + +/* + * audio record callback + * args: + * s - pointer to pa_stream + * length - buffer length + * data - pointer to user data + * + * asserts: + * none + * + * returns: none + */ +static void stream_request_cb(pa_stream *s, size_t length, void *data) +{ + + audio_context_t *audio_ctx = (audio_context_t *) data; + + uint64_t frame_length = NSEC_PER_SEC / audio_ctx->samprate; /*in nanosec*/ + int64_t ts = 0; + int64_t buff_ts = 0; + int i = 0; + + while (pa_stream_readable_size(s) > 0) + { + const void *inputBuffer; + size_t length; + + /*read from stream*/ + if (pa_stream_peek(s, &inputBuffer, &length) < 0) + { + fprintf(stderr, "AUDIO: (pulseaudio) pa_stream_peek() failed\n"); + return; + } + + if(length == 0) + { + fprintf(stderr, "AUDIO: (pulseaudio) empty buffer!\n"); + return; /*buffer is empty*/ + } + + get_latency(s); + + ts = ns_time_monotonic() - (latency * 1000); + + if(audio_ctx->last_ts <= 0) + audio_ctx->last_ts = ts; + + + int numSamples= length / sizeof(sample_t); + + const sample_t *rptr = (const sample_t*) inputBuffer; + sample_t *capture_buff = (sample_t *) audio_ctx->capture_buff; + + int chan = 0; + /*store capture samples or silence if inputBuffer == NULL (hole)*/ + for( i = 0; i < numSamples; ++i ) + { + capture_buff[sample_index] = inputBuffer ? *rptr++ : 0; + sample_index++; + + /*store peak value*/ + if(audio_ctx->capture_buff_level[chan] < capture_buff[sample_index]) + audio_ctx->capture_buff_level[chan] = capture_buff[sample_index]; + chan++; + if(chan >= audio_ctx->channels) + chan = 0; + + if(sample_index >= audio_ctx->capture_buff_size) + { + buff_ts = ts + ( i / audio_ctx->channels ) * frame_length; + + audio_fill_buffer(audio_ctx, buff_ts); + + /*reset*/ + audio_ctx->capture_buff_level[0] = 0; + audio_ctx->capture_buff_level[1] = 0; + sample_index = 0; + } + } + + pa_stream_drop(s); /*clean the samples*/ + } + +} + +/* + * Iterate the main loop while recording is on. + * This function runs under it's own thread called by audio_pulse_start + * args: + * data - pointer to user data (audio context) + * + * asserts: + * data is not null + * + * returns: pointer to error code + */ +static void *pulse_read_audio(void *data) +{ + audio_context_t *audio_ctx = (audio_context_t *) data; + /*assertions*/ + assert(audio_ctx != NULL); + + if(verbosity > 0) + printf("AUDIO: (pulseaudio) read thread started\n"); + pa_mainloop *pa_ml; + pa_mainloop_api *pa_mlapi; + pa_buffer_attr bufattr; + pa_sample_spec ss; + pa_stream_flags_t flags = 0; + int r; + int pa_ready = 0; + + /* Create a mainloop API and connection to the default server */ + pa_ml = pa_mainloop_new(); + pa_mlapi = pa_mainloop_get_api(pa_ml); + pa_ctx = pa_context_new(pa_mlapi, "guvcview Pulse API"); + + if(pa_context_connect(pa_ctx, NULL, 0, NULL) < 0) + { + fprintf(stderr,"AUDIO: PULSE - unable to connect to server: pa_context_connect failed\n"); + finish(pa_ctx, pa_ml); + return ((void *) -1); + } + + /* + * This function defines a callback so the server will tell us it's state. + * Our callback will wait for the state to be ready. The callback will + * modify the variable to 1 so we know when we have a connection and it's + * ready. + * If there's an error, the callback will set pa_ready to 2 + */ + pa_context_set_state_callback(pa_ctx, pa_state_cb, &pa_ready); + + /* + * This function defines a time event callback (called every TIME_EVENT_USEC) + */ + //pa_context_rttime_new(pa_ctx, pa_rtclock_now() + TIME_EVENT_USEC, time_event_callback, NULL); + + /* + * We can't do anything until PA is ready, so just iterate the mainloop + * and continue + */ + while (pa_ready == 0) + { + pa_mainloop_iterate(pa_ml, 1, NULL); + } + if (pa_ready == 2) + { + finish(pa_ctx, pa_ml); + return ((void *) -1); + } + + /* set the sample spec (frame rate, channels and format) */ + ss.rate = audio_ctx->samprate; + ss.channels = audio_ctx->channels; + ss.format = PA_SAMPLE_FLOAT32LE; /*for PCM -> PA_SAMPLE_S16LE*/ + + recordstream = pa_stream_new(pa_ctx, "Record", &ss, NULL); + if (!recordstream) + fprintf(stderr, "AUDIO: (pulseaudio) pa_stream_new failed\n"); + + /* define the callbacks */ + pa_stream_set_read_callback(recordstream, stream_request_cb, (void *) audio_ctx); + + // Set properties of the record buffer + pa_zero(bufattr); + /* optimal value for all is (uint32_t)-1 ~= 2 sec */ + bufattr.maxlength = (uint32_t) -1; + bufattr.prebuf = (uint32_t) -1; + bufattr.minreq = (uint32_t) -1; + + if (latency_ms > 0) + { + bufattr.fragsize = bufattr.tlength = pa_usec_to_bytes(latency_ms * PA_USEC_PER_MSEC, &ss); + flags |= PA_STREAM_ADJUST_LATENCY; + } + else + bufattr.fragsize = bufattr.tlength = (uint32_t) -1; + + flags |= PA_STREAM_INTERPOLATE_TIMING; + flags |= PA_STREAM_AUTO_TIMING_UPDATE; + + char * dev = audio_ctx->list_devices[audio_ctx->device].name; + if(verbosity > 0) + printf("AUDIO: (pulseaudio) connecting to device %s\n\t (channels %d rate %d)\n", + dev, ss.channels, ss.rate); + r = pa_stream_connect_record(recordstream, dev, &bufattr, flags); + if (r < 0) + { + fprintf(stderr, "AUDIO: (pulseaudio) skip latency adjustment\n"); + /* + * Old pulse audio servers don't like the ADJUST_LATENCY flag, + * so retry without that + */ + r = pa_stream_connect_record(recordstream, dev, &bufattr, + PA_STREAM_INTERPOLATE_TIMING| + PA_STREAM_AUTO_TIMING_UPDATE); + } + if (r < 0) + { + fprintf(stderr, "AUDIO: (pulseaudio) pa_stream_connect_record failed\n"); + finish(pa_ctx, pa_ml); + return ((void *) -1); + } + + get_latency(recordstream); + + /* + * Iterate the main loop while streaming. The second argument is whether + * or not the iteration should block until something is ready to be + * done. Set it to zero for non-blocking. + */ + while (audio_ctx->stream_flag == AUDIO_STRM_ON) + { + pa_mainloop_iterate(pa_ml, 1, NULL); + } + + if(verbosity > 0) + printf("AUDIO: (pulseaudio) stream terminated(%i)\n", audio_ctx->stream_flag); + + pa_stream_disconnect (recordstream); + pa_stream_unref (recordstream); + finish(pa_ctx, pa_ml); + return ((void *) 0); +} + +/* + * init pulseaudio api + * args: + * none + * + * asserts: + * none + * + * returns: pointer to audio context data + * or NULL if error + */ +audio_context_t *audio_init_pulseaudio() +{ + audio_context_t *audio_ctx = calloc(1, sizeof(audio_context_t)); + if(audio_ctx == NULL) + { + fprintf(stderr,"AUDIO: FATAL memory allocation failure (audio_init_pulseaudio): %s\n", strerror(errno)); + exit(-1); + } + + if (pa_get_devicelist(audio_ctx) < 0) + { + fprintf(stderr, "AUDIO: Pulseaudio failed to get audio device list from PULSE server\n"); + free(audio_ctx); + return NULL; + } + + audio_ctx->api = AUDIO_PULSE; + return audio_ctx; +} + +/* + * Launch the main loop iteration thread + * args: + * audio_ctx - pointer to audio context data + * + * asserts: + * audio_ctx is not null + * + * returns: error code + */ +int audio_start_pulseaudio(audio_context_t *audio_ctx) +{ + /*assertions*/ + assert(audio_ctx != NULL); + + audio_ctx->stream_flag = AUDIO_STRM_ON; + + /* start audio capture thread */ + if(__THREAD_CREATE(&my_read_thread, pulse_read_audio, (void *) audio_ctx)) + { + fprintf(stderr, "AUDIO: (pulseaudio) read thread creation failed\n"); + audio_ctx->stream_flag = AUDIO_STRM_OFF; + return (-1); + } + + return 0; +} + +/* + * stop and join the main loop iteration thread + * args: + * audio_ctx - pointer to audio context data + * + * asserts: + * audio_ctx is not null + * + * returns: error code + */ +int audio_stop_pulseaudio(audio_context_t *audio_ctx) +{ + /*assertions*/ + assert(audio_ctx != NULL); + + audio_ctx->stream_flag = AUDIO_STRM_OFF; + + __THREAD_JOIN( my_read_thread ); + + if(verbosity > 0) + printf("AUDIO: (pulseaudio) read thread joined\n"); + + return 0; +} + +/* + * close and clean audio context for pulseaudio api + * args: + * audio_ctx - pointer to audio context data + * + * asserts: + * none + * + * returns: none + */ +void audio_close_pulseaudio(audio_context_t *audio_ctx) +{ + if(audio_ctx == NULL) + return; + + if(audio_ctx->stream_flag == AUDIO_STRM_ON) + audio_stop_pulseaudio(audio_ctx); + + if(audio_ctx->list_devices != NULL); + free(audio_ctx->list_devices); + audio_ctx->list_devices = NULL; + + if(audio_ctx->capture_buff) + free(audio_ctx->capture_buff); + + free(audio_ctx); +} diff -Nru guvcview-1.7.3/gview_audio/audio_pulseaudio.h guvcview-2.0.1+ubuntu1~ppa1/gview_audio/audio_pulseaudio.h --- guvcview-1.7.3/gview_audio/audio_pulseaudio.h 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/gview_audio/audio_pulseaudio.h 2014-10-05 10:41:44.000000000 +0000 @@ -0,0 +1,78 @@ +/*******************************************************************************# +# guvcview http://guvcview.sourceforge.net # +# # +# Paulo Assis # +# Nobuhiro Iwamatsu # +# Add UYVY color support(Macbook iSight) # +# Flemming Frandsen # +# Add VU meter OSD # +# # +# This program is free software; you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation; either version 2 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program; if not, write to the Free Software # +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # +# # +********************************************************************************/ + +#ifndef GVIEWAUDIO_PULSEAUDIO_H +#define GVIEWAUDIO_PULSEAUDIO_H + +/* + * init pulseaudio api + * args: + * none + * + * asserts: + * none + * + * returns: pointer to audio context data + * or NULL if error + */ +audio_context_t *audio_init_pulseaudio(); + +/* + * start pulseaudio stream capture + * args: + * audio_ctx - pointer to audio context data + * + * asserts: + * audio_ctx is not null + * + * returns: error code + */ +int audio_start_pulseaudio(audio_context_t *audio_ctx); + +/* + * stop and join the main loop iteration thread + * args: + * audio_ctx - pointer to audio context data + * + * asserts: + * audio_ctx is not null + * + * returns: error code + */ +int audio_stop_pulseaudio(audio_context_t *audio_ctx); + +/* + * close and clean audio context for pulseaudio api + * args: + * audio_ctx - pointer to audio context data + * + * asserts: + * none + * + * returns: none + */ +void audio_close_pulseaudio(audio_context_t *audio_ctx); + +#endif \ No newline at end of file diff -Nru guvcview-1.7.3/gview_audio/core_time.c guvcview-2.0.1+ubuntu1~ppa1/gview_audio/core_time.c --- guvcview-1.7.3/gview_audio/core_time.c 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/gview_audio/core_time.c 2014-10-05 10:41:44.000000000 +0000 @@ -0,0 +1,128 @@ +/*******************************************************************************# +# guvcview http://guvcview.sourceforge.net # +# # +# Paulo Assis # +# # +# This program is free software; you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation; either version 2 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program; if not, write to the Free Software # +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # +# # +********************************************************************************/ + +#include +#include +#include +#include +#include +#include +#include +#include + +#include "core_time.h" +#include "gview.h" + +/* + * time in miliseconds + * args: + * none + * + * asserts: + * none + * + * returns: time of day in miliseconds + */ +//uint32_t ms_time () +//{ +// struct timeval now; +// +// if(gettimeofday(&now, NULL) != 0) +// { +// fprintf(stderr, "V4L2_CORE: ms_time (gettimeofday) error: %s\n", strerror(errno)); +// return 0; +// } +// +// uint32_t mst = (uint32_t) now.tv_sec * 1000 + (uint32_t) now.tv_usec / 1000; +// +// return (mst); +//} + +/* + * time in microseconds + * args: + * none + * + * asserts: + * none + * + * returns: time of day in microseconds + */ +//uint64_t us_time(void) +//{ +// struct timeval now; +// +// if(gettimeofday(&now, NULL) != 0) +// { +// fprintf(stderr, "V4L2_CORE: us_time (gettimeofday) error: %s\n", strerror(errno)); +// return 0; +// } +// +// uint64_t ust = (uint64_t) now.tv_sec * USEC_PER_SEC + (uint64_t) now.tv_usec; +// +// return (ust); +//} + +/* + * time in nanoseconds + * args: + * none + * + * asserts: + * none + * + * returns: time in nanoseconds + */ +//uint64_t ns_time (void) +//{ +// struct timespec now; +// +// if(clock_gettime(CLOCK_REALTIME, &now) != 0) +// { +// fprintf(stderr, "V4L2_CORE: ns_time (clock_gettime) error: %s\n", strerror(errno)); +// return 0; +// } +// +// return ((uint64_t) now.tv_sec * NSEC_PER_SEC + (uint64_t) now.tv_nsec); +//} + +/* + * monotonic time in nanoseconds + * args: + * none + * + * asserts: + * none + * + * returns: monotonic time in nanoseconds + */ +uint64_t ns_time_monotonic() +{ + struct timespec now; + + if(clock_gettime(CLOCK_MONOTONIC, &now) != 0) + { + fprintf(stderr, "V4L2_CORE: ns_time_monotonic (clock_gettime) error: %s\n", strerror(errno)); + return 0; + } + + return ((uint64_t)now.tv_sec * NSEC_PER_SEC + (uint64_t) now.tv_nsec); +} diff -Nru guvcview-1.7.3/gview_audio/core_time.h guvcview-2.0.1+ubuntu1~ppa1/gview_audio/core_time.h --- guvcview-1.7.3/gview_audio/core_time.h 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/gview_audio/core_time.h 2014-10-05 10:41:44.000000000 +0000 @@ -0,0 +1,42 @@ +/*******************************************************************************# +# guvcview http://guvcview.sourceforge.net # +# # +# Paulo Assis # +# # +# This program is free software; you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation; either version 2 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program; if not, write to the Free Software # +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # +# # +********************************************************************************/ + +#ifndef CORE_TIME_H +#define CORE_TIME_H + +#include +#include +#include +#include + +/* + * monotonic time in nanoseconds + * args: + * none + * + * asserts: + * none + * + * returns: monotonic time in nanoseconds + */ +uint64_t ns_time_monotonic(); + +#endif \ No newline at end of file diff -Nru guvcview-1.7.3/gview_audio/gviewaudio.h guvcview-2.0.1+ubuntu1~ppa1/gview_audio/gviewaudio.h --- guvcview-1.7.3/gview_audio/gviewaudio.h 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/gview_audio/gviewaudio.h 2014-10-05 10:41:44.000000000 +0000 @@ -0,0 +1,251 @@ +/*******************************************************************************# +# guvcview http://guvcview.sourceforge.net # +# # +# Paulo Assis # +# Nobuhiro Iwamatsu # +# Add UYVY color support(Macbook iSight) # +# Flemming Frandsen # +# Add VU meter OSD # +# # +# This program is free software; you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation; either version 2 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program; if not, write to the Free Software # +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # +# # +********************************************************************************/ + +/*******************************************************************************# +# # +# Audio library # +# # +********************************************************************************/ + +#ifndef GVIEWAUDIO_H +#define GVIEWAUDIO_H + +#include + +#include +#include + +/*make sure we support c++*/ +__BEGIN_DECLS + +/*Audio API*/ +#define AUDIO_NONE (0) +#define AUDIO_PORTAUDIO (1) +#define AUDIO_PULSE (2) + +/*Audio Buffer flags*/ +#define AUDIO_BUFF_FREE (0) +#define AUDIO_BUFF_USED (1) + +/*Audio stream flag*/ +#define AUDIO_STRM_ON (1) +#define AUDIO_STRM_OFF (0) + +/*Audio Effects*/ +#define AUDIO_FX_NONE (0) +#define AUDIO_FX_ECHO (1<<0) +#define AUDIO_FX_FUZZ (1<<1) +#define AUDIO_FX_REVERB (1<<2) +#define AUDIO_FX_WAHWAH (1<<3) +#define AUDIO_FX_DUCKY (1<<4) + +/*audio sample format (definition also in gview_encoder)*/ +#ifndef GV_SAMPLE_TYPE_INT16 +#define GV_SAMPLE_TYPE_INT16 (0) //interleaved +#define GV_SAMPLE_TYPE_FLOAT (1) //interleaved +#define GV_SAMPLE_TYPE_INT16P (2) //planar +#define GV_SAMPLE_TYPE_FLOATP (3) //planar +#endif + +/*internally is always float*/ +typedef float sample_t; + +typedef struct _audio_buff_t +{ + void *data; /*sample buffer - usually sample_t (float)*/ + int64_t timestamp; + int flag; + float level_meter[2]; /*average sample level*/ +} audio_buff_t; + +typedef struct _audio_device_t +{ + int id; /*audo device id*/ + int channels; /*max channels*/ + int samprate; /*default samplerate*/ + char name[512]; /*device name*/ + char description[256]; /*device description*/ +} audio_device_t; + +typedef struct _audio_context_t +{ + int api; /*audio api for this context*/ + int num_input_dev; /*number of audio input devices in list*/ + audio_device_t *list_devices; /*audio input devices list*/ + int device; /*current device list index*/ + int channels; /*channels*/ + int samprate; /*sample rate*/ + + /*all ts are monotonic based: both real and generated*/ + int64_t current_ts; /*current buffer generated timestamp*/ + int64_t last_ts; /*last real timestamp (in nanosec)*/ + int64_t snd_begintime; /*sound capture start ref time*/ + int64_t ts_drift; /*drift between real and generated ts*/ + + sample_t *capture_buff; /*pointer to capture data*/ + int capture_buff_size; + float capture_buff_level[2]; /*capture buffer channels level*/ + + void *stream; /*pointer to audio stream (portaudio)*/ + + int stream_flag; /*stream flag*/ + +} audio_context_t; + +/* + * set verbosity + * args: + * value - verbosity value + * + * asserts: + * none + * + * returns: none + */ +void audio_set_verbosity(int value); + +/* + * audio initialization + * args: + * api - audio API to use + * (AUDIO_NONE, AUDIO_PORTAUDIO, AUDIO_PULSE, ...) + * + * asserts: + * none + * + * returns: pointer to audio context (NULL if AUDIO_NONE) + */ +audio_context_t *audio_init(int api); + +/* + * start audio stream capture + * args: + * audio_ctx - pointer to audio context data + * + * asserts: + * audio_ctx is not null + * + * returns: error code + */ +int audio_start(audio_context_t *audio_ctx); + +/* + * alloc a single audio buffer + * args: + * audio_ctx - pointer to audio context data + * + * asserts: + * none + * + * returns: pointer to newly allocate audio buffer or NULL on error + * must be freed with audio_delete_buffer + */ +audio_buff_t *audio_get_buffer(audio_context_t *audio_ctx); + +/* + * deletes a single audio buffer + * args: + * audio_buff - pointer to audio_buff_t data + * + * asserts: + * none + * + * returns: none + */ +void audio_delete_buffer(audio_buff_t *audio_buff); + +/* + * get the next used buffer from the ring buffer and apply fx + * args: + * audio_ctx - pointer to audio context + * buff - pointer to an allocated audio buffer + * type - type of data (SAMPLE_TYPE_[INT16|FLOAT]) + * mask - audio fx mask + * + * asserts: + * none + * + * returns: error code + */ +int audio_get_next_buffer(audio_context_t *audio_ctx, + audio_buff_t *buff, + int type, + uint32_t mask); + +/* + * apply audio fx + * args: + * audio_ctx - pointer to audio context + * data - pointer to sample buffer to process + * mask - or'ed fx combination + * + * asserts: + * none + * + * returns: none + */ +void audio_fx_apply(audio_context_t *audio_ctx, + sample_t *data, + uint32_t mask); + +/* + * clean audio fx data + * args: + * none + * + * asserts: + * aud_fx is not null + * + * returns: none + */ +void audio_fx_close(); + +/* + * stop audio stream capture + * args: + * audio_ctx - pointer to audio context data + * + * asserts: + * audio_ctx is not null + * + * returns: error code + */ +int audio_stop(audio_context_t *audio_ctx); + +/* + * close and clean audio context + * args: + * audio_ctx - pointer to audio context data + * + * asserts: + * none + * + * returns: none + */ +void audio_close(audio_context_t *audio_ctx); + +__END_DECLS + +#endif diff -Nru guvcview-1.7.3/gview_audio/Makefile.am guvcview-2.0.1+ubuntu1~ppa1/gview_audio/Makefile.am --- guvcview-1.7.3/gview_audio/Makefile.am 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/gview_audio/Makefile.am 2014-10-05 10:41:44.000000000 +0000 @@ -0,0 +1,36 @@ +## Process this file with automake to produce Makefile.in + +# Public headers +h_sources = gviewaudio.h + +c_sources = audio.c \ + audio_fx.c \ + core_time.c \ + audio_portaudio.c + +if HAVE_PULSEAUDIO +c_sources += audio_pulseaudio.c +endif + + +#Install the headers in a versioned directory - guvcvideo-x.x/libgviewaudio: +library_includedir=$(includedir)/$(PACKAGE)-$(PACKAGE_RELEASE)/$(GVIEWAUDIO_LIBRARY_NAME) +library_include_HEADERS = $(h_sources) + +#AM_CFLAGS = + +lib_LTLIBRARIES= libgviewaudio.la + +libgviewaudio_la_SOURCES= $(h_sources) $(c_sources) + +libgviewaudio_la_CFLAGS = $(GVIEWAUDIO_CFLAGS) \ + $(PULSE_CFLAGS) \ + $(PTHREAD_CFLAGS) \ + -I$(top_srcdir) \ + -I$(top_srcdir)/includes + +libgviewaudio_la_LIBADD= $(GVIEWAUDIO_LIBS) $(PULSE_LIBS) $(PTHREAD_LIBS) + +libgviewaudio_la_LDFLAGS= -version-info $(GVIEWAUDIO_LIBRARY_VERSION) -release $(GVIEWAUDIO_API_VERSION) + + diff -Nru guvcview-1.7.3/gview_audio/Makefile.in guvcview-2.0.1+ubuntu1~ppa1/gview_audio/Makefile.in --- guvcview-1.7.3/gview_audio/Makefile.in 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/gview_audio/Makefile.in 2014-10-05 10:41:44.000000000 +0000 @@ -0,0 +1,795 @@ +# Makefile.in generated by automake 1.14.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + + +VPATH = @srcdir@ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +@HAVE_PULSEAUDIO_TRUE@am__append_1 = audio_pulseaudio.c +subdir = gview_audio +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(top_srcdir)/depcomp $(library_include_HEADERS) +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/acx_pthread.m4 \ + $(top_srcdir)/m4/intltool.m4 $(top_srcdir)/m4/libtool.m4 \ + $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ + $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ + $(top_srcdir)/m4/nls.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } +am__installdirs = "$(DESTDIR)$(libdir)" \ + "$(DESTDIR)$(library_includedir)" +LTLIBRARIES = $(lib_LTLIBRARIES) +am__DEPENDENCIES_1 = +libgviewaudio_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) +am__libgviewaudio_la_SOURCES_DIST = gviewaudio.h audio.c audio_fx.c \ + core_time.c audio_portaudio.c audio_pulseaudio.c +am__objects_1 = +@HAVE_PULSEAUDIO_TRUE@am__objects_2 = \ +@HAVE_PULSEAUDIO_TRUE@ libgviewaudio_la-audio_pulseaudio.lo +am__objects_3 = libgviewaudio_la-audio.lo libgviewaudio_la-audio_fx.lo \ + libgviewaudio_la-core_time.lo \ + libgviewaudio_la-audio_portaudio.lo $(am__objects_2) +am_libgviewaudio_la_OBJECTS = $(am__objects_1) $(am__objects_3) +libgviewaudio_la_OBJECTS = $(am_libgviewaudio_la_OBJECTS) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = +libgviewaudio_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ + $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ + $(libgviewaudio_la_CFLAGS) $(CFLAGS) \ + $(libgviewaudio_la_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) +depcomp = $(SHELL) $(top_srcdir)/depcomp +am__depfiles_maybe = depfiles +am__mv = mv -f +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = +CCLD = $(CC) +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = +SOURCES = $(libgviewaudio_la_SOURCES) +DIST_SOURCES = $(am__libgviewaudio_la_SOURCES_DIST) +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +HEADERS = $(library_include_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` +ETAGS = etags +CTAGS = ctags +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +ALL_LINGUAS = @ALL_LINGUAS@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CATALOGS = @CATALOGS@ +CATOBJEXT = @CATOBJEXT@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DATADIRNAME = @DATADIRNAME@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GETTEXT_PACKAGE_V4L2CORE = @GETTEXT_PACKAGE_V4L2CORE@ +GMOFILES = @GMOFILES@ +GMSGFMT = @GMSGFMT@ +GREP = @GREP@ +GSL_CFLAGS = @GSL_CFLAGS@ +GSL_LIBS = @GSL_LIBS@ +GUVCVIEW_CFLAGS = @GUVCVIEW_CFLAGS@ +GUVCVIEW_LIBS = @GUVCVIEW_LIBS@ +GVIEWAUDIO_API_VERSION = @GVIEWAUDIO_API_VERSION@ +GVIEWAUDIO_CFLAGS = @GVIEWAUDIO_CFLAGS@ +GVIEWAUDIO_LD_NAME = @GVIEWAUDIO_LD_NAME@ +GVIEWAUDIO_LIBRARY_NAME = @GVIEWAUDIO_LIBRARY_NAME@ +GVIEWAUDIO_LIBRARY_VERSION = @GVIEWAUDIO_LIBRARY_VERSION@ +GVIEWAUDIO_LIBS = @GVIEWAUDIO_LIBS@ +GVIEWENCODER_API_VERSION = @GVIEWENCODER_API_VERSION@ +GVIEWENCODER_CFLAGS = @GVIEWENCODER_CFLAGS@ +GVIEWENCODER_LD_NAME = @GVIEWENCODER_LD_NAME@ +GVIEWENCODER_LIBRARY_NAME = @GVIEWENCODER_LIBRARY_NAME@ +GVIEWENCODER_LIBRARY_VERSION = @GVIEWENCODER_LIBRARY_VERSION@ +GVIEWENCODER_LIBS = @GVIEWENCODER_LIBS@ +GVIEWRENDER_API_VERSION = @GVIEWRENDER_API_VERSION@ +GVIEWRENDER_CFLAGS = @GVIEWRENDER_CFLAGS@ +GVIEWRENDER_LD_NAME = @GVIEWRENDER_LD_NAME@ +GVIEWRENDER_LIBRARY_NAME = @GVIEWRENDER_LIBRARY_NAME@ +GVIEWRENDER_LIBRARY_VERSION = @GVIEWRENDER_LIBRARY_VERSION@ +GVIEWRENDER_LIBS = @GVIEWRENDER_LIBS@ +GVIEWV4L2CORE_API_VERSION = @GVIEWV4L2CORE_API_VERSION@ +GVIEWV4L2CORE_CFLAGS = @GVIEWV4L2CORE_CFLAGS@ +GVIEWV4L2CORE_LD_NAME = @GVIEWV4L2CORE_LD_NAME@ +GVIEWV4L2CORE_LIBRARY_NAME = @GVIEWV4L2CORE_LIBRARY_NAME@ +GVIEWV4L2CORE_LIBRARY_VERSION = @GVIEWV4L2CORE_LIBRARY_VERSION@ +GVIEWV4L2CORE_LIBS = @GVIEWV4L2CORE_LIBS@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +INSTOBJEXT = @INSTOBJEXT@ +INTLLIBS = @INTLLIBS@ +INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ +INTLTOOL_MERGE = @INTLTOOL_MERGE@ +INTLTOOL_PERL = @INTLTOOL_PERL@ +INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ +INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ +INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ +INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ +INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +MKINSTALLDIRS = @MKINSTALLDIRS@ +MSGFMT = @MSGFMT@ +MSGFMT_OPTS = @MSGFMT_OPTS@ +MSGMERGE = @MSGMERGE@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_RELEASE = @PACKAGE_RELEASE@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +POFILES = @POFILES@ +POSUB = @POSUB@ +PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ +PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ +PTHREAD_CC = @PTHREAD_CC@ +PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ +PTHREAD_LIBS = @PTHREAD_LIBS@ +PULSE_CFLAGS = @PULSE_CFLAGS@ +PULSE_LIBS = @PULSE_LIBS@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +USE_NLS = @USE_NLS@ +VERSION = @VERSION@ +XGETTEXT = @XGETTEXT@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +acx_pthread_config = @acx_pthread_config@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +intltool__v_merge_options_ = @intltool__v_merge_options_@ +intltool__v_merge_options_0 = @intltool__v_merge_options_0@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ + +# Public headers +h_sources = gviewaudio.h +c_sources = audio.c audio_fx.c core_time.c audio_portaudio.c \ + $(am__append_1) + +#Install the headers in a versioned directory - guvcvideo-x.x/libgviewaudio: +library_includedir = $(includedir)/$(PACKAGE)-$(PACKAGE_RELEASE)/$(GVIEWAUDIO_LIBRARY_NAME) +library_include_HEADERS = $(h_sources) + +#AM_CFLAGS = +lib_LTLIBRARIES = libgviewaudio.la +libgviewaudio_la_SOURCES = $(h_sources) $(c_sources) +libgviewaudio_la_CFLAGS = $(GVIEWAUDIO_CFLAGS) \ + $(PULSE_CFLAGS) \ + $(PTHREAD_CFLAGS) \ + -I$(top_srcdir) \ + -I$(top_srcdir)/includes + +libgviewaudio_la_LIBADD = $(GVIEWAUDIO_LIBS) $(PULSE_LIBS) $(PTHREAD_LIBS) +libgviewaudio_la_LDFLAGS = -version-info $(GVIEWAUDIO_LIBRARY_VERSION) -release $(GVIEWAUDIO_API_VERSION) +all: all-am + +.SUFFIXES: +.SUFFIXES: .c .lo .o .obj +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign gview_audio/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign gview_audio/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +install-libLTLIBRARIES: $(lib_LTLIBRARIES) + @$(NORMAL_INSTALL) + @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ + list2=; for p in $$list; do \ + if test -f $$p; then \ + list2="$$list2 $$p"; \ + else :; fi; \ + done; \ + test -z "$$list2" || { \ + echo " $(MKDIR_P) '$(DESTDIR)$(libdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(libdir)" || exit 1; \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \ + } + +uninstall-libLTLIBRARIES: + @$(NORMAL_UNINSTALL) + @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ + for p in $$list; do \ + $(am__strip_dir) \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \ + done + +clean-libLTLIBRARIES: + -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) + @list='$(lib_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + +libgviewaudio.la: $(libgviewaudio_la_OBJECTS) $(libgviewaudio_la_DEPENDENCIES) $(EXTRA_libgviewaudio_la_DEPENDENCIES) + $(AM_V_CCLD)$(libgviewaudio_la_LINK) -rpath $(libdir) $(libgviewaudio_la_OBJECTS) $(libgviewaudio_la_LIBADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgviewaudio_la-audio.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgviewaudio_la-audio_fx.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgviewaudio_la-audio_portaudio.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgviewaudio_la-audio_pulseaudio.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgviewaudio_la-core_time.Plo@am__quote@ + +.c.o: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< + +.c.obj: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` + +.c.lo: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< + +libgviewaudio_la-audio.lo: audio.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgviewaudio_la_CFLAGS) $(CFLAGS) -MT libgviewaudio_la-audio.lo -MD -MP -MF $(DEPDIR)/libgviewaudio_la-audio.Tpo -c -o libgviewaudio_la-audio.lo `test -f 'audio.c' || echo '$(srcdir)/'`audio.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgviewaudio_la-audio.Tpo $(DEPDIR)/libgviewaudio_la-audio.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='audio.c' object='libgviewaudio_la-audio.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgviewaudio_la_CFLAGS) $(CFLAGS) -c -o libgviewaudio_la-audio.lo `test -f 'audio.c' || echo '$(srcdir)/'`audio.c + +libgviewaudio_la-audio_fx.lo: audio_fx.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgviewaudio_la_CFLAGS) $(CFLAGS) -MT libgviewaudio_la-audio_fx.lo -MD -MP -MF $(DEPDIR)/libgviewaudio_la-audio_fx.Tpo -c -o libgviewaudio_la-audio_fx.lo `test -f 'audio_fx.c' || echo '$(srcdir)/'`audio_fx.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgviewaudio_la-audio_fx.Tpo $(DEPDIR)/libgviewaudio_la-audio_fx.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='audio_fx.c' object='libgviewaudio_la-audio_fx.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgviewaudio_la_CFLAGS) $(CFLAGS) -c -o libgviewaudio_la-audio_fx.lo `test -f 'audio_fx.c' || echo '$(srcdir)/'`audio_fx.c + +libgviewaudio_la-core_time.lo: core_time.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgviewaudio_la_CFLAGS) $(CFLAGS) -MT libgviewaudio_la-core_time.lo -MD -MP -MF $(DEPDIR)/libgviewaudio_la-core_time.Tpo -c -o libgviewaudio_la-core_time.lo `test -f 'core_time.c' || echo '$(srcdir)/'`core_time.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgviewaudio_la-core_time.Tpo $(DEPDIR)/libgviewaudio_la-core_time.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='core_time.c' object='libgviewaudio_la-core_time.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgviewaudio_la_CFLAGS) $(CFLAGS) -c -o libgviewaudio_la-core_time.lo `test -f 'core_time.c' || echo '$(srcdir)/'`core_time.c + +libgviewaudio_la-audio_portaudio.lo: audio_portaudio.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgviewaudio_la_CFLAGS) $(CFLAGS) -MT libgviewaudio_la-audio_portaudio.lo -MD -MP -MF $(DEPDIR)/libgviewaudio_la-audio_portaudio.Tpo -c -o libgviewaudio_la-audio_portaudio.lo `test -f 'audio_portaudio.c' || echo '$(srcdir)/'`audio_portaudio.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgviewaudio_la-audio_portaudio.Tpo $(DEPDIR)/libgviewaudio_la-audio_portaudio.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='audio_portaudio.c' object='libgviewaudio_la-audio_portaudio.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgviewaudio_la_CFLAGS) $(CFLAGS) -c -o libgviewaudio_la-audio_portaudio.lo `test -f 'audio_portaudio.c' || echo '$(srcdir)/'`audio_portaudio.c + +libgviewaudio_la-audio_pulseaudio.lo: audio_pulseaudio.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgviewaudio_la_CFLAGS) $(CFLAGS) -MT libgviewaudio_la-audio_pulseaudio.lo -MD -MP -MF $(DEPDIR)/libgviewaudio_la-audio_pulseaudio.Tpo -c -o libgviewaudio_la-audio_pulseaudio.lo `test -f 'audio_pulseaudio.c' || echo '$(srcdir)/'`audio_pulseaudio.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgviewaudio_la-audio_pulseaudio.Tpo $(DEPDIR)/libgviewaudio_la-audio_pulseaudio.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='audio_pulseaudio.c' object='libgviewaudio_la-audio_pulseaudio.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgviewaudio_la_CFLAGS) $(CFLAGS) -c -o libgviewaudio_la-audio_pulseaudio.lo `test -f 'audio_pulseaudio.c' || echo '$(srcdir)/'`audio_pulseaudio.c + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +install-library_includeHEADERS: $(library_include_HEADERS) + @$(NORMAL_INSTALL) + @list='$(library_include_HEADERS)'; test -n "$(library_includedir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(library_includedir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(library_includedir)" || exit 1; \ + fi; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(library_includedir)'"; \ + $(INSTALL_HEADER) $$files "$(DESTDIR)$(library_includedir)" || exit $$?; \ + done + +uninstall-library_includeHEADERS: + @$(NORMAL_UNINSTALL) + @list='$(library_include_HEADERS)'; test -n "$(library_includedir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(library_includedir)'; $(am__uninstall_files_from_dir) + +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + set x; \ + here=`pwd`; \ + $(am__define_uniq_tagged_files); \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(LTLIBRARIES) $(HEADERS) +installdirs: + for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(library_includedir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \ + mostlyclean-am + +distclean: distclean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: install-library_includeHEADERS + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: install-libLTLIBRARIES + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-libLTLIBRARIES \ + uninstall-library_includeHEADERS + +.MAKE: install-am install-strip + +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libLTLIBRARIES clean-libtool cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-libLTLIBRARIES \ + install-library_includeHEADERS install-man install-pdf \ + install-pdf-am install-ps install-ps-am install-strip \ + installcheck installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags tags-am uninstall uninstall-am uninstall-libLTLIBRARIES \ + uninstall-library_includeHEADERS + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff -Nru guvcview-1.7.3/gview_encoder/audio_codecs.c guvcview-2.0.1+ubuntu1~ppa1/gview_encoder/audio_codecs.c --- guvcview-1.7.3/gview_encoder/audio_codecs.c 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/gview_encoder/audio_codecs.c 2014-10-05 10:41:44.000000000 +0000 @@ -0,0 +1,685 @@ +/*******************************************************************************# +# guvcview http://guvcview.sourceforge.net # +# # +# Paulo Assis # +# # +# This program is free software; you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation; either version 2 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program; if not, write to the Free Software # +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # +# # +********************************************************************************/ + +#include +#include +#include +#include +#include +#include +#include +#include +/* support for internationalization - i18n */ +#include +#include + +#include "gviewencoder.h" +#include "gview.h" +#include "encoder.h" + +extern int verbosity; + +/* AAC object types index: MAIN = 1; LOW = 2; SSR = 3; LTP = 4*/ +static int AAC_OBJ_TYPE[5] = + { FF_PROFILE_UNKNOWN, FF_PROFILE_AAC_MAIN, FF_PROFILE_AAC_LOW, FF_PROFILE_AAC_SSR, FF_PROFILE_AAC_LTP }; +/*-1 = reserved; 0 = freq. is writen explictly (increases header by 24 bits)*/ +static int AAC_SAMP_FREQ[16] = + { 96000, 88200, 64000, 48000, 44100, 32000, 24000, 22050, 16000, 12000, 11025, 8000, 7350, -1, -1, 0}; + +/*NORMAL AAC HEADER*/ +/*2 bytes: object type index(5 bits) + sample frequency index(4bits) + channels(4 bits) + flags(3 bit) */ +/*default = MAIN(1)+44100(4)+stereo(2)+flags(0) = 0x0A10*/ +static uint8_t AAC_ESDS[2] = {0x0A,0x10}; +/* if samprate index == 15 AAC_ESDS[5]: + * object type index(5 bits) + sample frequency index(4bits) + samprate(24bits) + channels(4 bits) + flags(3 bit) + */ + + +static audio_codec_t listSupCodecs[] = //list of software supported formats +{ + { + .valid = 1, + .bits = 32, + .avi_4cc = WAVE_FORMAT_IEEE_FLOAT, + .mkv_codec = "A_PCM/FLOAT/IEEE", + .description = N_("PCM - uncompressed (float 32 bit)"), + .bit_rate = 0, + .codec_id = AV_CODEC_ID_PCM_F32LE, + .codec_name = "pcm_f32le", + .sample_format = AV_SAMPLE_FMT_FLT, + .profile = FF_PROFILE_UNKNOWN, + .mkv_codpriv = NULL, + .codpriv_size = 0, + .flags = 0, + .name = "pcm" + }, + { + .valid = 1, + .bits = 0, + .monotonic_pts= 1, + .avi_4cc = WAVE_FORMAT_MPEG12, + .mkv_codec = "A_MPEG/L2", + .description = N_("MP2 (MPEG audio layer 2)"), + .bit_rate = 160000, + .codec_id = AV_CODEC_ID_MP2, + .codec_name = "mp2", + .sample_format = AV_SAMPLE_FMT_S16, + .profile = FF_PROFILE_UNKNOWN, + .mkv_codpriv = NULL, + .codpriv_size = 0, + .flags = 0, + .name = "mp2" + }, + { + .valid = 1, + .bits = 0, + .monotonic_pts= 1, + .avi_4cc = WAVE_FORMAT_MP3, + .mkv_codec = "A_MPEG/L3", + .description = N_("MP3 (MPEG audio layer 3)"), + .bit_rate = 160000, + .codec_id = AV_CODEC_ID_MP3, + .codec_name = "libmp3lame", +#if LIBAVCODEC_VER_AT_LEAST(54,31) + .sample_format = AV_SAMPLE_FMT_FLTP, +#else + .sample_format = AV_SAMPLE_FMT_S16, +#endif + .profile = FF_PROFILE_UNKNOWN, + .mkv_codpriv = NULL, + .codpriv_size = 0, + .flags = 0, + .name = "mp3" + }, + { + .valid = 1, + .bits = 0, + .monotonic_pts= 1, + .avi_4cc = WAVE_FORMAT_AC3, + .mkv_codec = "A_AC3", + .description = N_("AC-3 (ATSC A/52A)"), + .bit_rate = 160000, + .codec_id = AV_CODEC_ID_AC3, + .codec_name = "ac3", +#if LIBAVCODEC_VER_AT_LEAST(54,31) + .sample_format = AV_SAMPLE_FMT_FLTP, +#else + .sample_format = AV_SAMPLE_FMT_FLT, +#endif + .profile = FF_PROFILE_UNKNOWN, + .mkv_codpriv = NULL, + .codpriv_size = 0, + .flags = 0, + .name = "ac3" + }, + { + .valid = 1, + .bits = 16, + .monotonic_pts= 1, + .avi_4cc = WAVE_FORMAT_AAC, + .mkv_codec = "A_AAC", + .description = N_("AAC (Advanced Audio Coding)"), + .bit_rate = 64000, + .codec_id = AV_CODEC_ID_AAC, + .codec_name = "aac", +#if LIBAVCODEC_VER_AT_LEAST(54,31) + .sample_format = AV_SAMPLE_FMT_FLTP, +#else + .sample_format = AV_SAMPLE_FMT_S16, +#endif + .profile = FF_PROFILE_AAC_LOW, + .mkv_codpriv = AAC_ESDS, + .codpriv_size = 2, + .flags = 0, + .name = "aac" + }, + { + .valid = 1, + .bits = 16, + .monotonic_pts= 1, + .avi_4cc = OGG_FORMAT_VORBIS, + .mkv_codec = "A_VORBIS", + .description = N_("Vorbis"), + .bit_rate = 64000, + .codec_id = AV_CODEC_ID_VORBIS, + .codec_name = "libvorbis", +#if LIBAVCODEC_VER_AT_LEAST(54,31) + .sample_format = AV_SAMPLE_FMT_FLTP, +#else + .sample_format = AV_SAMPLE_FMT_S16, +#endif + .profile = FF_PROFILE_UNKNOWN, + .mkv_codpriv = NULL, + .codpriv_size = 0, + .flags = 0, + .name = "vorb" + } +}; + +static int get_aac_obj_ind(int profile) +{ + int i = 0; + + for (i=0; i<5; i++) + if(AAC_OBJ_TYPE[i] == profile) break; + + return i; +} + +static int get_aac_samp_ind(int samprate) +{ + int i = 0; + + for (i=0; i<13; i++) + if(AAC_SAMP_FREQ[i] == samprate) break; + + if (i>12) + { + printf("WARNING: invalid sample rate for AAC encoding\n"); + printf("valid(96000, 88200, 64000, 48000, 44100, 32000, 24000, 22050, 16000, 12000, 11025, 8000, 7350)\n"); + i=4; /*default 44100*/ + } + return i; +} + +/* + * get audio codec list size + * args: + * none + * + * asserts: + * none + * + * returns: listSupCodecs size (number of elements) + */ +int encoder_get_audio_codec_list_size() +{ + int size = sizeof(listSupCodecs)/sizeof(audio_codec_t); + + if(verbosity > 2) + printf("ENCODER: audio codec list size:%i\n", size); + + return size; +} + +/* + * get audio codec valid list size + * args: + * none + * + * asserts: + * none + * + * returns: listSupCodecs valid number of elements + */ +//int encoder_get_audio_codec_valid_list_size() +//{ +// int valid_size = 0; +// +// int i = 0; +// for(i = 0; i < encoder_get_audio_codec_list_size(); ++i) +// if(listSupCodecs[i].valid) +// valid_size++; +// +// if(verbosity > 2) +// printf("ENCODER: audio codec valid list size:%i\n", valid_size); +// +// return valid_size; +//} + +/* + * return the real (valid only) codec index + * args: + * codec_ind - codec list index (with non valid removed) + * + * asserts: + * none + * + * returns: matching listSupCodecs index + */ +static int get_real_index (int codec_ind) +{ + int i = 0; + int ind = -1; + for (i = 0; i < encoder_get_audio_codec_list_size(); ++i) + { + if(listSupCodecs[i].valid) + ind++; + if(ind == codec_ind) + return i; + } + return (codec_ind); //should never arrive +} + +/* + * return the list codec index + * args: + * real_ind - listSupCodecs index + * + * asserts: + * none + * + * returns: matching list index (with non valid removed) + */ +static int get_list_index (int real_index) +{ + if( real_index < 0 || + real_index >= encoder_get_audio_codec_list_size() || + !listSupCodecs[real_index].valid ) + return -1; //error: real index is not valid + + int i = 0; + int ind = -1; + for (i = 0; i<= real_index; ++i) + { + if(listSupCodecs[i].valid) + ind++; + } + + return (ind); +} + +/* + * returns the real codec array index + * args: + * codec_id - codec id + * + * asserts: + * none + * + * returns: real index or -1 if none + */ +int get_audio_codec_index(int codec_id) +{ + int i = 0; + for(i = 0; i < encoder_get_audio_codec_list_size(); ++i ) + { + if(codec_id == listSupCodecs[i].codec_id) + return i; + } + + return -1; +} + +/* + * returns the list codec index + * args: + * codec_id - codec id + * + * asserts: + * none + * + * returns: real index or -1 if none + */ +int get_audio_codec_list_index(int codec_id) +{ + return get_list_index(get_audio_codec_index(codec_id)); +} + +/* + * get audio list codec entry for codec index + * args: + * codec_ind - codec list index + * + * asserts: + * none + * + * returns: list codec entry or NULL if none + */ +audio_codec_t *encoder_get_audio_codec_defaults(int codec_ind) +{ + int real_index = get_real_index (codec_ind); + + if(real_index >= 0 && real_index < encoder_get_audio_codec_list_size()) + return (&(listSupCodecs[real_index])); + else + { + fprintf(stderr, "ENCODER: (audio codec defaults) bad codec index (%i)\n", codec_ind); + return NULL; + } +} + +/* + * checks if the audio codec index corresponds to Vorbis (webm) codec + * args: + * codec_ind - audio codec list index + * + * asserts: + * none + * + * returns: 1 true; 0 false + */ +int encoder_check_webm_audio_codec(int codec_ind) +{ + int real_index = get_real_index (codec_ind); + + int ret = 0; + if(real_index >= 0 && real_index < encoder_get_audio_codec_list_size()) + ret = (listSupCodecs[real_index].codec_id == AV_CODEC_ID_VORBIS) ? 1: 0; + + return ret; +} + +/* + * get the audio codec index for Vorbis (webm) codec + * args: + * none + * + * asserts: + * none + * + * returns: index for Vorbis codec or -1 if error + */ +int encoder_get_webm_audio_codec_index() +{ + return get_audio_codec_list_index(AV_CODEC_ID_VORBIS); +} + +/* + * sets the valid flag in the audio codecs list + * args: + * none + * + * asserts: + * none + * + * returns: number of valid audio codecs in list + */ +int encoder_set_valid_audio_codec_list () +{ + int ind = 0; + int num_codecs = 0; + for ( ind = 0; ind < encoder_get_audio_codec_list_size(); ++ind) + { + AVCodec *codec = avcodec_find_encoder(listSupCodecs[ind].codec_id); + if (!codec) + { + printf("ENCODER: no audio codec detected for %s\n", listSupCodecs[ind].description); + listSupCodecs[ind].valid = 0; + } + else num_codecs++; + } + + return num_codecs; +} + +/* + * get audio list codec description + * args: + * codec_ind - codec list index + * + * asserts: + * none + * + * returns: list codec entry or NULL if none + */ +const char *encoder_get_audio_codec_description(int codec_ind) +{ + int real_index = get_real_index (codec_ind); + if(real_index >= 0 && real_index < encoder_get_audio_codec_list_size()) + return (listSupCodecs[real_index].description); + else + { + fprintf(stderr, "ENCODER: (audio codec description) bad codec index (%i)\n", codec_ind); + return NULL; + } +} + +/* + * get audio mkv codec + * args: + * codec_ind - codec list index + * + * asserts: + * none + * + * returns: mkv codec entry or NULL if none + */ +const char *encoder_get_audio_mkv_codec(int codec_ind) +{ + int real_index = get_real_index (codec_ind); + if(real_index >= 0 && real_index < encoder_get_audio_codec_list_size()) + return (listSupCodecs[real_index].mkv_codec); + else + { + fprintf(stderr, "ENCODER: (audio mkv codec) bad codec index (%i)\n", codec_ind); + return NULL; + } +} + +/* + * get audio codec bits + * args: + * codec_ind - codec list index + * + * asserts: + * none + * + * returns: bits entry from audio codec list + */ +int encoder_get_audio_bits(int codec_ind) +{ + int real_index = get_real_index (codec_ind); + if(real_index >= 0 && real_index < encoder_get_audio_codec_list_size()) + return (listSupCodecs[real_index].bits); + else + { + fprintf(stderr, "ENCODER: (get_audio_bits) bad codec index (%i)\n", codec_ind); + return 0; + } +} + +/* + * get audio codec bit rate + * args: + * codec_ind - codec list index + * + * asserts: + * none + * + * returns: bit_rate entry from audio codec list + */ +int encoder_get_audio_bit_rate(int codec_ind) +{ + int real_index = get_real_index (codec_ind); + if(real_index >= 0 && real_index < encoder_get_audio_codec_list_size()) + return (listSupCodecs[real_index].bit_rate); + else + { + fprintf(stderr, "ENCODER: (get_audio_bit_rate) bad codec index (%i)\n", codec_ind); + return 0; + } +} + +/* + * get the mkv codec private data + * args: + * codec_ind - codec list index + * + * asserts: + * none + * + * returns: pointer to mkvCodecPriv data + */ +void *encoder_get_audio_mkvCodecPriv(int codec_ind) +{ + int real_index = get_real_index (codec_ind); + if(real_index >= 0 && real_index < encoder_get_audio_codec_list_size()) + return ((void *) listSupCodecs[real_index].mkv_codpriv); + else + { + fprintf(stderr, "ENCODER: (mkvCodecPriv) bad codec index (%i)\n", codec_ind); + return NULL; + } +} + +/* + * set the audio codec mkv private data + * args: + * encoder_ctx - pointer to encoder context + * + * asserts: + * encoder_ctx is not null + * + * returns: mkvCodecPriv size + */ +int encoder_set_audio_mkvCodecPriv(encoder_context_t *encoder_ctx) +{ + /*assertions*/ + assert(encoder_ctx != NULL); + + /*assert audio encoder context is not null*/ + assert( encoder_ctx->enc_audio_ctx); + encoder_codec_data_t *audio_codec_data = (encoder_codec_data_t *) encoder_ctx->enc_audio_ctx->codec_data; + /*assert video codec data is not null*/ + assert(audio_codec_data); + + int codec_id = audio_codec_data->codec_context->codec_id; + int real_index = get_audio_codec_index(codec_id); + + + if (codec_id == AV_CODEC_ID_AAC) + { + int obj_type = get_aac_obj_ind(listSupCodecs[real_index].profile); + int sampind = get_aac_samp_ind(encoder_ctx->audio_samprate); + AAC_ESDS[0] = (uint8_t) ((obj_type & 0x1F) << 3 ) + ((sampind & 0x0F) >> 1); + AAC_ESDS[1] = (uint8_t) ((sampind & 0x0F) << 7 ) + ((encoder_ctx->audio_channels & 0x0F) << 3); + + return listSupCodecs[real_index].codpriv_size; /*return size = 2 */ + } + else if(codec_id == AV_CODEC_ID_VORBIS) + { + //get the 3 first header packets + uint8_t *header_start[3]; + int header_len[3]; + int first_header_size; + + first_header_size = 30; //theora = 42 + if (avpriv_split_xiph_headers( + audio_codec_data->codec_context->extradata, + audio_codec_data->codec_context->extradata_size, + first_header_size, header_start, header_len) < 0) + { + fprintf(stderr, "ENCODER: vorbis codec - Extradata corrupt.\n"); + return -1; + } + + //printf("Vorbis: header1: %i header2: %i header3:%i \n", header_len[0], header_len[1], header_len[2]); + + //get the allocation needed for headers size + int header_lace_size[2]; + header_lace_size[0]=0; + header_lace_size[1]=0; + int i; + for (i = 0; i < header_len[0] / 255; i++) + header_lace_size[0]++; + header_lace_size[0]++; + for (i = 0; i < header_len[1] / 255; i++) + header_lace_size[1]++; + header_lace_size[1]++; + + int priv_data_size = 1 + //number of packets -1 + header_lace_size[0] + //first packet size + header_lace_size[1] + //second packet size + header_len[0] + //first packet header + header_len[1] + //second packet header + header_len[2]; //third packet header + + /*should check and clean before allocating ??*/ + encoder_ctx->enc_audio_ctx->priv_data = calloc(priv_data_size, sizeof(uint8_t)); + if(encoder_ctx->enc_audio_ctx->priv_data == NULL) + { + fprintf(stderr, "ENCODER: FATAL memory allocation failure (encoder_set_audio_mkvCodecPriv): %s\n", strerror(errno)); + exit(-1); + } + //write header + uint8_t* tmp = encoder_ctx->enc_audio_ctx->priv_data; + *tmp++ = 0x02; //number of packets -1 + //size of head 1 + for (i = 0; i < header_len[0] / 0xff; i++) + *tmp++ = 0xff; + *tmp++ = header_len[0] % 0xff; + //size of head 2 + for (i = 0; i < header_len[1] / 0xff; i++) + *tmp++ = 0xff; + *tmp++ = header_len[1] % 0xff; + //add headers + for(i=0; i<3; i++) + { + memcpy(tmp, header_start[i] , header_len[i]); + tmp += header_len[i]; + } + + listSupCodecs[real_index].mkv_codpriv = encoder_ctx->enc_audio_ctx->priv_data; + listSupCodecs[real_index].codpriv_size = priv_data_size; + return listSupCodecs[real_index].codpriv_size; + } + + + return 0; +} + +/* + * get audio codec name + * args: + * codec_ind - codec list index + * + * asserts: + * none + * + * returns: codec name entry + */ +const char *encoder_get_audio_codec_name(int codec_ind) +{ + int real_index = get_real_index (codec_ind); + if(real_index >= 0 && real_index < encoder_get_audio_codec_list_size()) + return (listSupCodecs[real_index].name); + else + { + fprintf(stderr, "ENCODER: (audio codec name) bad codec index (%i)\n", codec_ind);; + return NULL; + } +} + +/* + * get audio codec list index for codec name + * args: + * codec_name - codec common name + * + * asserts: + * none + * + * returns: codec index or -1 if error + */ +int encoder_get_audio_codec_ind_name(const char *codec_name) +{ + int real_index = 0; + int index = -1; + for(real_index = 0; real_index < encoder_get_audio_codec_list_size(); ++real_index) + { + if(listSupCodecs[real_index].valid) + index++; + if(strcasecmp(codec_name, listSupCodecs[real_index].name) == 0) + return index; + } + + return -1; +} diff -Nru guvcview-1.7.3/gview_encoder/avi.c guvcview-2.0.1+ubuntu1~ppa1/gview_encoder/avi.c --- guvcview-1.7.3/gview_encoder/avi.c 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/gview_encoder/avi.c 2014-10-05 10:41:44.000000000 +0000 @@ -0,0 +1,1012 @@ +/*******************************************************************************# +# guvcview http://guvcview.sourceforge.net # +# # +# Paulo Assis # +# # +# This is a heavily modified version of the matroska interface from x264 # +# Copyright (C) 2005 Mike Matsnev # +# # +# This program is free software; you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation; either version 2 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program; if not, write to the Free Software # +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # +# # +********************************************************************************/ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +/* support for internationalization - i18n */ +#include +#include + +#include "gviewencoder.h" +#include "encoder.h" +#include "stream_io.h" +#include "file_io.h" +#include "avi.h" +#include "gview.h" + +#ifndef O_BINARY +/* win32 wants a binary flag to open(); this sets it to null + on platforms that don't have it. */ +#define O_BINARY 0 +#endif + +#define INFO_LIST + +//#define MAX_INFO_STRLEN 64 +//static char id_str[MAX_INFO_STRLEN]; + +#ifndef PACKAGE +#define PACKAGE "guvcview" +#endif +#ifndef VERSION +#define VERSION "1.0" +#endif + +#define AVI_INDEX_CLUSTER_SIZE 16384 + +#define AVIF_HASINDEX 0x00000010 /* Index at end of file */ +#define AVIF_MUSTUSEINDEX 0x00000020 +#define AVIF_ISINTERLEAVED 0x00000100 +#define AVIF_TRUSTCKTYPE 0x00000800 /* Use CKType to find key frames */ +#define AVIF_WASCAPTUREFILE 0x00010000 +#define AVIF_COPYRIGHTED 0x00020000 + +#define AVI_MAX_RIFF_SIZE 0x40000000LL /*1Gb = 0x40000000LL*/ +#define AVI_MASTER_INDEX_SIZE 256 +#define AVI_MAX_STREAM_COUNT 10 + +/* index flags */ +#define AVIF_INDEX 0x10 + +// bIndexType codes +// +#define AVI_INDEX_OF_INDEXES 0x00 // when each entry in aIndex + // array points to an index chunk + +#define AVI_INDEX_OF_CHUNKS 0x01 // when each entry in aIndex + // array points to a chunk in the file + +#define AVI_INDEX_IS_DATA 0x80 // when each entry is aIndex is + // really the data + // bIndexSubtype codes for INDEX_OF_CHUNKS + +#define AVI_INDEX_2FIELD 0x01 // when fields within frames + // are also indexed + +extern int verbosity; + +int64_t avi_open_tag (avi_context_t *avi_ctx, const char *tag) +{ + io_write_4cc(avi_ctx->writer, tag); + io_write_wl32(avi_ctx->writer, 0); + return io_get_offset(avi_ctx->writer); +} + +static void avi_close_tag(avi_context_t *avi_ctx, int64_t start_pos) +{ + int64_t current_offset = io_get_offset(avi_ctx->writer); + int32_t size = (int32_t) (current_offset - start_pos); + io_seek(avi_ctx->writer, start_pos-4); + io_write_wl32(avi_ctx->writer, size); + io_seek(avi_ctx->writer, current_offset); + + if(verbosity > 0) + printf("ENCODER: (avi) %" PRIu64 " closing tag at %" PRIu64 " with size %i\n", + current_offset, start_pos-4, size); + +} + +/* + * Calculate audio sample size from number of bits and number of channels. + * This may have to be adjusted for eg. 12 bits and stereo + */ +static int avi_audio_sample_size(stream_io_t *stream) +{ + if(stream->type != STREAM_TYPE_AUDIO) + return -1; + + int s; + if (stream->a_fmt != WAVE_FORMAT_PCM) + { + s = 4; + } + else + { + s = ((stream->a_bits+7)/8)*stream->a_chans; + if(s<4) s=4; /* avoid possible zero divisions */ + } + return s; +} + +static char* avi_stream2fourcc(char* tag, stream_io_t *stream) +{ + tag[0] = '0' + (stream->id)/10; + tag[1] = '0' + (stream->id)%10; + switch(stream->type) + { + case STREAM_TYPE_VIDEO: + tag[2] = 'd'; + tag[3] = 'c'; + break; + case STREAM_TYPE_SUB: + // note: this is not an official code + tag[2] = 's'; + tag[3] = 'b'; + break; + default: //audio + tag[2] = 'w'; + tag[3] = 'b'; + break; + } + tag[4] = '\0'; + return tag; +} + +void avi_put_main_header(avi_context_t *avi_ctx, avi_riff_t *riff) +{ + avi_ctx->fps = get_first_video_stream(avi_ctx->stream_list)->fps; + int width = get_first_video_stream(avi_ctx->stream_list)->width; + int height = get_first_video_stream(avi_ctx->stream_list)->height; + int time_base_num = avi_ctx->time_base_num; + int time_base_den = avi_ctx->time_base_den; + + uint32_t data_rate = 0; + if(time_base_den > 0 || time_base_num > 0) //these are not set yet so it's always false + data_rate = (uint32_t) (INT64_C(1000000) * time_base_num/time_base_den); + else + fprintf(stderr, "ENCODER: (avi) bad time base (%i/%i): set it later", time_base_num, time_base_den); + + /*do not force index yet -only when closing*/ + /*this should prevent bad avi files even if it is not closed properly*/ + //if(hasIndex) flag |= AVIF_HASINDEX; + //if(hasIndex && avi_ctx->must_use_index) flag |= AVIF_MUSTUSEINDEX; + avi_ctx->avi_flags = AVIF_WASCAPTUREFILE; + + int64_t avih = avi_open_tag(avi_ctx, "avih"); // main avi header + riff->time_delay_off = io_get_offset(avi_ctx->writer); + io_write_wl32(avi_ctx->writer, 1000000 / FRAME_RATE_SCALE); // time per frame (milisec) + io_write_wl32(avi_ctx->writer, data_rate); // data rate + io_write_wl32(avi_ctx->writer, 0); // Padding multiple size (2048) + io_write_wl32(avi_ctx->writer, avi_ctx->avi_flags); // parameter Flags + //riff->frames_hdr_all = io_get_offset(avi_ctx->writer); + io_write_wl32(avi_ctx->writer, 0); // number of video frames + io_write_wl32(avi_ctx->writer, 0); // number of preview frames + io_write_wl32(avi_ctx->writer, avi_ctx->stream_list_size); // number of data streams (audio + video)*/ + io_write_wl32(avi_ctx->writer, 1024*1024); // suggested playback buffer size (bytes) + io_write_wl32(avi_ctx->writer, width); // width + io_write_wl32(avi_ctx->writer, height); // height + io_write_wl32(avi_ctx->writer, 0); // time scale: unit used to measure time (30) + io_write_wl32(avi_ctx->writer, 0); // data rate (frame rate * time scale) + io_write_wl32(avi_ctx->writer, 0); // start time (0) + io_write_wl32(avi_ctx->writer, 0); // size of avi data chunk (in scale units) + avi_close_tag(avi_ctx, avih); //write the chunk size +} + +int64_t avi_put_bmp_header(avi_context_t *avi_ctx, stream_io_t *stream) +{ + int frate = 15 * FRAME_RATE_SCALE; + if(stream->fps > 0.001) + frate = (int) ((FRAME_RATE_SCALE * (stream->fps)) + 0.5); + + int64_t strh = avi_open_tag(avi_ctx, "strh");// video stream header + io_write_4cc(avi_ctx->writer, "vids"); // stream type + io_write_4cc(avi_ctx->writer, stream->compressor); // Handler (VIDEO CODEC) + io_write_wl32(avi_ctx->writer, 0); // Flags + io_write_wl16(avi_ctx->writer, 0); // stream priority + io_write_wl16(avi_ctx->writer, 0); // language tag + io_write_wl32(avi_ctx->writer, 0); // initial frames + io_write_wl32(avi_ctx->writer, FRAME_RATE_SCALE); // Scale + stream->rate_hdr_strm = io_get_offset(avi_ctx->writer); //store this to set proper fps + io_write_wl32(avi_ctx->writer, frate); // Rate: Rate/Scale == sample/second (fps) */ + io_write_wl32(avi_ctx->writer, 0); // start time + stream->frames_hdr_strm = io_get_offset(avi_ctx->writer); + io_write_wl32(avi_ctx->writer, 0); // lenght of stream + io_write_wl32(avi_ctx->writer, 1024*1024); // suggested playback buffer size + io_write_wl32(avi_ctx->writer, -1); // Quality + io_write_wl32(avi_ctx->writer, 0); // SampleSize + io_write_wl16(avi_ctx->writer, 0); // rFrame (left) + io_write_wl16(avi_ctx->writer, 0); // rFrame (top) + io_write_wl16(avi_ctx->writer, stream->width); // rFrame (right) + io_write_wl16(avi_ctx->writer, stream->height); // rFrame (bottom) + avi_close_tag(avi_ctx, strh); //write the chunk size + + return strh; +} + +int64_t avi_put_wav_header(avi_context_t *avi_ctx, stream_io_t *stream) +{ + int sampsize = avi_audio_sample_size(stream); + + int64_t strh = avi_open_tag(avi_ctx, "strh");// audio stream header + io_write_4cc(avi_ctx->writer, "auds"); + io_write_wl32(avi_ctx->writer, 1); // codec tag on strf + io_write_wl32(avi_ctx->writer, 0); // Flags + io_write_wl16(avi_ctx->writer, 0); // stream priority + io_write_wl16(avi_ctx->writer, 0); // language tag + io_write_wl32(avi_ctx->writer, 0); // initial frames + stream->rate_hdr_strm = io_get_offset(avi_ctx->writer); + io_write_wl32(avi_ctx->writer, sampsize/4); // Scale + io_write_wl32(avi_ctx->writer, stream->mpgrate/8); // Rate: Rate/Scale == sample/second (fps) */ + io_write_wl32(avi_ctx->writer, 0); // start time + stream->frames_hdr_strm = io_get_offset(avi_ctx->writer); + io_write_wl32(avi_ctx->writer, 0); // lenght of stream + io_write_wl32(avi_ctx->writer, 12*1024); // suggested playback buffer size + io_write_wl32(avi_ctx->writer, -1); // Quality + io_write_wl32(avi_ctx->writer, sampsize/4); // SampleSize + io_write_wl16(avi_ctx->writer, 0); // rFrame (left) + io_write_wl16(avi_ctx->writer, 0); // rFrame (top) + io_write_wl16(avi_ctx->writer, 0); // rFrame (right) + io_write_wl16(avi_ctx->writer, 0); // rFrame (bottom) + avi_close_tag(avi_ctx, strh); //write the chunk size + + return strh; +} + +void avi_put_vstream_format_header(avi_context_t *avi_ctx, stream_io_t *stream) +{ + int vxd_size = stream->extra_data_size; + int vxd_size_align = (stream->extra_data_size+1) & ~1; + + int64_t strf = avi_open_tag(avi_ctx, "strf"); // stream format header + io_write_wl32(avi_ctx->writer, 40 + vxd_size); // sruct Size + io_write_wl32(avi_ctx->writer, stream->width); // Width + io_write_wl32(avi_ctx->writer, stream->height); // Height + io_write_wl16(avi_ctx->writer, 1); // Planes + io_write_wl16(avi_ctx->writer, 24); // Count - bitsperpixel - 1,4,8 or 24 32 + if(strncmp(stream->compressor,"DIB",3)==0) + io_write_wl32(avi_ctx->writer, 0); // Compression + else + io_write_4cc(avi_ctx->writer, stream->compressor); + io_write_wl32(avi_ctx->writer, stream->width*stream->height*3);// image size (in bytes?) + io_write_wl32(avi_ctx->writer, 0); // XPelsPerMeter + io_write_wl32(avi_ctx->writer, 0); // YPelsPerMeter + io_write_wl32(avi_ctx->writer, 0); // ClrUsed: Number of colors used + io_write_wl32(avi_ctx->writer, 0); // ClrImportant: Number of colors important + // write extradata (codec private) + if (vxd_size > 0 && stream->extra_data) + { + io_write_buf(avi_ctx->writer, stream->extra_data, vxd_size); + if (vxd_size != vxd_size_align) + { + io_write_w8(avi_ctx->writer, 0); //align + } + } + avi_close_tag(avi_ctx, strf); //write the chunk size +} + +void avi_put_astream_format_header(avi_context_t *avi_ctx, stream_io_t *stream) +{ + int axd_size = stream->extra_data_size; + int axd_size_align = (stream->extra_data_size+1) & ~1; + + int sampsize = avi_audio_sample_size(stream); + + int64_t strf = avi_open_tag(avi_ctx, "strf");// audio stream format + io_write_wl16(avi_ctx->writer, stream->a_fmt); // Format (codec) tag + io_write_wl16(avi_ctx->writer, stream->a_chans); // Number of channels + io_write_wl32(avi_ctx->writer, stream->a_rate); // SamplesPerSec + io_write_wl32(avi_ctx->writer, stream->mpgrate/8);// Average Bytes per sec + io_write_wl16(avi_ctx->writer, sampsize/4); // BlockAlign + io_write_wl16(avi_ctx->writer, stream->a_bits); //BitsPerSample + io_write_wl16(avi_ctx->writer, axd_size); //size of extra data + // write extradata (codec private) + if (axd_size > 0 && stream->extra_data) + { + io_write_buf(avi_ctx->writer, stream->extra_data, axd_size); + if (axd_size != axd_size_align) + { + io_write_w8(avi_ctx->writer, 0); //align + } + } + avi_close_tag(avi_ctx, strf); //write the chunk size +} + +void avi_put_vproperties_header(avi_context_t *avi_ctx, stream_io_t *stream) +{ + uint32_t refresh_rate = (uint32_t) lrintf(2.0 * avi_ctx->fps); + if(avi_ctx->time_base_den > 0 || avi_ctx->time_base_num > 0) //these are not set yet so it's always false + { + double time_base = avi_ctx->time_base_num / (double) avi_ctx->time_base_den; + refresh_rate = lrintf(1.0/time_base); + } + int vprp= avi_open_tag(avi_ctx, "vprp"); + io_write_wl32(avi_ctx->writer, 0); //video format = unknown + io_write_wl32(avi_ctx->writer, 0); //video standard= unknown + io_write_wl32(avi_ctx->writer, refresh_rate); // dwVerticalRefreshRate + io_write_wl32(avi_ctx->writer, stream->width ); //horizontal pixels + io_write_wl32(avi_ctx->writer, stream->height); //vertical lines + io_write_wl16(avi_ctx->writer, stream->height); //Active Frame Aspect Ratio (4:3 - 16:9) + io_write_wl16(avi_ctx->writer, stream->width); //Active Frame Aspect Ratio + io_write_wl32(avi_ctx->writer, stream->width ); //Active Frame Height in Pixels + io_write_wl32(avi_ctx->writer, stream->height); //Active Frame Height in Lines + io_write_wl32(avi_ctx->writer, 1); //progressive FIXME + //Field Framing Information + io_write_wl32(avi_ctx->writer, stream->height); + io_write_wl32(avi_ctx->writer, stream->width ); + io_write_wl32(avi_ctx->writer, stream->height); + io_write_wl32(avi_ctx->writer, stream->width ); + io_write_wl32(avi_ctx->writer, 0); + io_write_wl32(avi_ctx->writer, 0); + io_write_wl32(avi_ctx->writer, 0); + io_write_wl32(avi_ctx->writer, 0); + + avi_close_tag(avi_ctx, vprp); +} + +int64_t avi_create_riff_tags(avi_context_t *avi_ctx, avi_riff_t *riff) +{ + int64_t off = 0; + riff->riff_start = avi_open_tag(avi_ctx, "RIFF"); + + if(riff->id == 1) + { + io_write_4cc(avi_ctx->writer, "AVI "); + off = avi_open_tag(avi_ctx, "LIST"); + io_write_4cc(avi_ctx->writer, "hdrl"); + } + else + { + io_write_4cc(avi_ctx->writer, "AVIX"); + off = avi_open_tag(avi_ctx, "LIST"); + io_write_4cc(avi_ctx->writer, "movi"); + + riff->movi_list = off; //update movi list pos for this riff + } + + return off; +} + +//only for riff id = 1 +void avi_create_riff_header(avi_context_t *avi_ctx, avi_riff_t *riff) +{ + int64_t list1 = avi_create_riff_tags(avi_ctx, riff); + + avi_put_main_header(avi_ctx, riff); + + int i, j = 0; + + for(j=0; j< avi_ctx->stream_list_size; j++) + { + stream_io_t *stream = get_stream(avi_ctx->stream_list, j); + + int64_t list2 = avi_open_tag(avi_ctx, "LIST"); + io_write_4cc(avi_ctx->writer,"strl"); //stream list + + if(stream->type == STREAM_TYPE_VIDEO) + { + avi_put_bmp_header(avi_ctx, stream); + avi_put_vstream_format_header(avi_ctx, stream); + } + else + { + avi_put_wav_header(avi_ctx, stream); + avi_put_astream_format_header(avi_ctx, stream); + } + /* Starting to lay out AVI OpenDML master index. + * We want to make it JUNK entry for now, since we'd + * like to get away without making AVI an OpenDML one + * for compatibility reasons. + */ + char tag[5]; + avi_index_t *indexes = (avi_index_t *) stream->indexes; + indexes->entry = indexes->ents_allocated = 0; + indexes->indx_start = io_get_offset(avi_ctx->writer); + int64_t ix = avi_open_tag(avi_ctx, "JUNK"); // ’ix##’ + io_write_wl16(avi_ctx->writer, 4); // wLongsPerEntry must be 4 (size of each entry in aIndex array) + io_write_w8(avi_ctx->writer, 0); // bIndexSubType must be 0 (frame index) or AVI_INDEX_2FIELD + io_write_w8(avi_ctx->writer, AVI_INDEX_OF_INDEXES); // bIndexType (0 == AVI_INDEX_OF_INDEXES) + io_write_wl32(avi_ctx->writer, 0); // nEntriesInUse (will fill out later on) + io_write_4cc(avi_ctx->writer, avi_stream2fourcc(tag, stream)); // dwChunkId + io_write_wl32(avi_ctx->writer, 0); // dwReserved[3] must be 0 + io_write_wl32(avi_ctx->writer, 0); + io_write_wl32(avi_ctx->writer, 0); + for (i=0; i < AVI_MASTER_INDEX_SIZE; i++) + { + io_write_wl64(avi_ctx->writer, 0); // absolute file offset, offset 0 is unused entry + io_write_wl32(avi_ctx->writer, 0); // dwSize - size of index chunk at this offset + io_write_wl32(avi_ctx->writer, 0); // dwDuration - time span in stream ticks + } + avi_close_tag(avi_ctx, ix); //write the chunk size + + if(stream->type == STREAM_TYPE_VIDEO) + avi_put_vproperties_header(avi_ctx, stream); + + avi_close_tag(avi_ctx, list2); //write the chunk size + } + + avi_ctx->odml_list = avi_open_tag(avi_ctx, "JUNK"); + io_write_4cc(avi_ctx->writer, "odml"); + io_write_4cc(avi_ctx->writer, "dmlh"); + io_write_wl32(avi_ctx->writer, 248); + for (i = 0; i < 248; i+= 4) + io_write_wl32(avi_ctx->writer, 0); + avi_close_tag(avi_ctx, avi_ctx->odml_list); + + avi_close_tag(avi_ctx, list1); //write the chunk size + + /* some padding for easier tag editing */ + int64_t list3 = avi_open_tag(avi_ctx, "JUNK"); + for (i = 0; i < 1016; i += 4) + io_write_wl32(avi_ctx->writer, 0); + avi_close_tag(avi_ctx, list3); //write the chunk size + + riff->movi_list = avi_open_tag(avi_ctx, "LIST"); + io_write_4cc(avi_ctx->writer, "movi"); +} + +avi_riff_t *avi_get_last_riff(avi_context_t *avi_ctx) +{ + avi_riff_t *last_riff = avi_ctx->riff_list; + while(last_riff->next != NULL) + last_riff = last_riff->next; + + return last_riff; +} + +avi_riff_t *avi_get_riff(avi_context_t *avi_ctx, int index) +{ + avi_riff_t *riff = avi_ctx->riff_list; + + if(!riff) + return NULL; + + int j = 1; + + while(riff->next != NULL && (j < index)) + { + riff = riff->next; + j++; + } + + if(j != index) + return NULL; + + return riff; +} + +static void clean_indexes(avi_context_t *avi_ctx) +{ + int i=0, j=0; + + for (i=0; istream_list_size; i++) + { + stream_io_t *stream = get_stream(avi_ctx->stream_list, i); + + avi_index_t *indexes = (avi_index_t *) stream->indexes; + for (j=0; jents_allocated/AVI_INDEX_CLUSTER_SIZE; j++) + free(indexes->cluster[j]); + av_freep(&indexes->cluster); + indexes->ents_allocated = indexes->entry = 0; + } +} + +//call this after adding all the streams +avi_riff_t *avi_add_new_riff(avi_context_t *avi_ctx) +{ + avi_riff_t *riff = calloc(1, sizeof(avi_riff_t)); + + if(riff == NULL) + { + fprintf(stderr, "ENCODER: FATAL memory allocation failure (avi_add_new_riff): %s\n", strerror(errno)); + exit(-1); + } + + riff->next = NULL; + riff->id = avi_ctx->riff_list_size + 1; + + if(riff->id == 1) + { + riff->previous = NULL; + avi_ctx->riff_list = riff; + avi_create_riff_header(avi_ctx, riff); + } + else + { + avi_riff_t *last_riff = avi_get_last_riff(avi_ctx); + riff->previous = last_riff; + last_riff->next = riff; + avi_create_riff_tags(avi_ctx, riff); + } + + avi_ctx->riff_list_size++; + + clean_indexes(avi_ctx); + + if(verbosity > 0) + printf("ENCODER: (avi) adding new RIFF (%i)\n", riff->id); + return riff; +} + +//second function to get called (add video stream to avi_Context) +stream_io_t *avi_add_video_stream( + avi_context_t *avi_ctx, + int32_t width, + int32_t height, + int32_t fps, + int32_t fps_num, + int32_t codec_id) +{ + stream_io_t *stream = add_new_stream(&avi_ctx->stream_list, &avi_ctx->stream_list_size); + stream->type = STREAM_TYPE_VIDEO; + stream->fps = (double) fps/fps_num;; + stream->width = width; + stream->height = height; + stream->codec_id = codec_id; + + stream->indexes = (void *) calloc(1, sizeof(avi_index_t)); + if(stream->indexes == NULL) + { + fprintf(stderr, "ENCODER: FATAL memory allocation failure (avi_add_video_stream): %s\n", strerror(errno)); + exit(-1); + } + + int codec_ind = get_video_codec_list_index(codec_id); + strncpy(stream->compressor, encoder_get_video_codec_4cc(codec_ind), 8); + + return stream; +} + +//third function to get called (add audio stream to avi_Context) +stream_io_t *avi_add_audio_stream( + avi_context_t *avi_ctx, + int32_t channels, + int32_t rate, + int32_t bits, + int32_t mpgrate, + int32_t codec_id, + int32_t format) +{ + stream_io_t *stream = add_new_stream(&avi_ctx->stream_list, &avi_ctx->stream_list_size); + stream->type = STREAM_TYPE_AUDIO; + + stream->a_chans = channels; + stream->a_rate = rate; + stream->a_bits = bits; + stream->mpgrate = mpgrate; + stream->a_vbr = 0; + stream->codec_id = codec_id; + stream->a_fmt = format; + + stream->indexes = (void *) calloc(1, sizeof(avi_index_t)); + if(stream->indexes == NULL) + { + fprintf(stderr, "ENCODER: FATAL memory allocation failure (avi_add_audio_stream): %s\n", strerror(errno)); + exit(-1); + } + + return stream; +} + +/* + first function to get called + + avi_create_context: Open an AVI File and write a bunch + of zero bytes as space for the header. + Creates a mutex. + + returns a pointer to avi_Context on success, a NULL pointer on error +*/ +avi_context_t *avi_create_context(const char *filename) +{ + avi_context_t *avi_ctx = calloc(1, sizeof(avi_context_t)); + + if(avi_ctx == NULL) + { + fprintf(stderr, "ENCODER: FATAL memory allocation failure (avi_create_context): %s\n", strerror(errno)); + exit(-1); + } + + avi_ctx->writer = io_create_writer(filename, 0); + + if (avi_ctx->writer == NULL) + { + fprintf(stderr, "ENCODER: (avi) Could not open file (%s) for writing: %s", + filename, strerror(errno)); + free(avi_ctx); + return NULL; + } + + avi_ctx->flags = 0; /*recordind*/ + + avi_ctx->riff_list = NULL; + avi_ctx->riff_list_size = 0; + + avi_ctx->stream_list = NULL; + avi_ctx->stream_list_size = 0; + + return avi_ctx; +} + +void avi_destroy_context(avi_context_t *avi_ctx) +{ + //clean up + io_destroy_writer(avi_ctx->writer); + + avi_riff_t *riff = avi_get_last_riff(avi_ctx); + while(riff != NULL) //from end to start + { + avi_riff_t *prev_riff = riff->previous; + free(riff); + riff = prev_riff; + avi_ctx->riff_list_size--; + } + + destroy_stream_list(avi_ctx->stream_list, &avi_ctx->stream_list_size); + + //free avi_Context + free(avi_ctx); +} + +avi_I_entry_t *avi_get_ientry(avi_index_t *idx, int ent_id) +{ + int cl = ent_id / AVI_INDEX_CLUSTER_SIZE; + int id = ent_id % AVI_INDEX_CLUSTER_SIZE; + return &idx->cluster[cl][id]; +} + +static int avi_write_counters(avi_context_t *avi_ctx, avi_riff_t *riff) +{ + int n, nb_frames = 0; + io_flush_buffer(avi_ctx->writer); + + //int time_base_num = avi_ctx->time_base_num; + //int time_base_den = avi_ctx->time_base_den; + + int64_t file_size = io_get_offset(avi_ctx->writer);//avi_tell(avi_ctx); + if(verbosity > 0) + printf("ENCODER: (avi) file size = %" PRIu64 "\n", file_size); + + for(n = 0; n < avi_ctx->stream_list_size; n++) + { + stream_io_t *stream = get_stream(avi_ctx->stream_list, n); + + if(stream->rate_hdr_strm <= 0) + { + fprintf(stderr, "ENCODER: (avi) stream rate header pos not valid\n"); + } + else + { + io_seek(avi_ctx->writer, stream->rate_hdr_strm); + + if(stream->type == STREAM_TYPE_VIDEO && avi_ctx->fps > 0.001) + { + uint32_t rate =(uint32_t) FRAME_RATE_SCALE * lrintf(avi_ctx->fps); + if(verbosity > 0) + fprintf(stderr,"ENCODER: (avi) storing rate(%i)\n",rate); + io_write_wl32(avi_ctx->writer, rate); + } + } + + if(stream->frames_hdr_strm <= 0) + { + fprintf(stderr, "ENCODER: (avi) stream frames header pos not valid\n"); + } + else + { + io_seek(avi_ctx->writer, stream->frames_hdr_strm); + + if(stream->type == STREAM_TYPE_VIDEO) + { + io_write_wl32(avi_ctx->writer, stream->packet_count); + nb_frames = MAX(nb_frames, stream->packet_count); + } + else + { + int sampsize = avi_audio_sample_size(stream); + io_write_wl32(avi_ctx->writer, 4*stream->audio_strm_length/sampsize); + } + } + } + + avi_riff_t *riff_1 = avi_get_riff(avi_ctx, 1); + if(riff_1->id == 1) /*should always be true*/ + { + if(riff_1->time_delay_off <= 0) + { + fprintf(stderr, "ENCODER: (avi) riff main header pos not valid\n"); + } + else + { + uint32_t us_per_frame = 1000; //us + if(avi_ctx->fps > 0.001) + us_per_frame=(uint32_t) lrintf(1000000.0 / avi_ctx->fps); + + avi_ctx->avi_flags |= AVIF_HASINDEX; + + io_seek(avi_ctx->writer, riff_1->time_delay_off); + io_write_wl32(avi_ctx->writer, us_per_frame); // time_per_frame + io_write_wl32(avi_ctx->writer, 0); // data rate + io_write_wl32(avi_ctx->writer, 0); // Padding multiple size (2048) + io_write_wl32(avi_ctx->writer, avi_ctx->avi_flags); // parameter Flags + //io_seek(avi_ctx->writer, riff_1->frames_hdr_all); + io_write_wl32(avi_ctx->writer, nb_frames); + } + } + + //return to position (EOF) + io_seek(avi_ctx->writer, file_size); + + return 0; +} + +static int avi_write_ix(avi_context_t *avi_ctx) +{ + char tag[5]; + char ix_tag[] = "ix00"; + int i, j; + + avi_riff_t *riff = avi_get_last_riff(avi_ctx); + + if (riff->id > AVI_MASTER_INDEX_SIZE) + return -1; + + for (i=0;istream_list_size;i++) + { + stream_io_t *stream = get_stream(avi_ctx->stream_list, i); + int64_t ix, pos; + + avi_stream2fourcc(tag, stream); + + ix_tag[3] = '0' + i; /*only 10 streams supported*/ + + /* Writing AVI OpenDML leaf index chunk */ + ix = io_get_offset(avi_ctx->writer); + io_write_4cc(avi_ctx->writer, ix_tag); /* ix?? */ + avi_index_t *indexes = (avi_index_t *) stream->indexes; + io_write_wl32(avi_ctx->writer, indexes->entry * 8 + 24); + /* chunk size */ + io_write_wl16(avi_ctx->writer, 2); /* wLongsPerEntry */ + io_write_w8(avi_ctx->writer, 0); /* bIndexSubType (0 == frame index) */ + io_write_w8(avi_ctx->writer, AVI_INDEX_OF_CHUNKS); /* bIndexType (1 == AVI_INDEX_OF_CHUNKS) */ + io_write_wl32(avi_ctx->writer, indexes->entry); + /* nEntriesInUse */ + io_write_4cc(avi_ctx->writer, tag); /* dwChunkId */ + io_write_wl64(avi_ctx->writer, riff->movi_list);/* qwBaseOffset */ + io_write_wl32(avi_ctx->writer, 0); /* dwReserved_3 (must be 0) */ + + for (j=0; j< indexes->entry; j++) + { + avi_I_entry_t *ie = avi_get_ientry(indexes, j); + io_write_wl32(avi_ctx->writer, ie->pos + 8); + io_write_wl32(avi_ctx->writer, ((uint32_t)ie->len & ~0x80000000) | + (ie->flags & 0x10 ? 0 : 0x80000000)); + } + io_flush_buffer(avi_ctx->writer); + pos = io_get_offset(avi_ctx->writer); //current position + if(verbosity > 0) + printf("ENCODER: (avi) wrote ix %s with %i entries\n", + tag, indexes->entry); + + /* Updating one entry in the AVI OpenDML master index */ + io_seek(avi_ctx->writer, indexes->indx_start); + io_write_4cc(avi_ctx->writer, "indx"); /* enabling this entry */ + io_skip(avi_ctx->writer, 8); + io_write_wl32(avi_ctx->writer, riff->id); /* nEntriesInUse */ + io_skip(avi_ctx->writer, 16*(riff->id)); + io_write_wl64(avi_ctx->writer, ix); /* qwOffset */ + io_write_wl32(avi_ctx->writer, pos - ix); /* dwSize */ + io_write_wl32(avi_ctx->writer, indexes->entry); /* dwDuration */ + + //return to position + io_seek(avi_ctx->writer, pos); + } + return 0; +} + +static int avi_write_idx1(avi_context_t *avi_ctx, avi_riff_t *riff) +{ + + int64_t idx_chunk; + int i; + char tag[5]; + + + stream_io_t *stream; + avi_I_entry_t *ie = 0, *tie; + int empty, stream_id = -1; + + idx_chunk = avi_open_tag(avi_ctx, "idx1"); + for (i=0;istream_list_size;i++) + { + stream = get_stream(avi_ctx->stream_list, i); + stream->entry=0; + } + + do + { + empty = 1; + for (i=0;istream_list_size;i++) + { + stream = get_stream(avi_ctx->stream_list, i); + avi_index_t *indexes = (avi_index_t *) stream->indexes; + if (indexes->entry <= stream->entry) + continue; + + tie = avi_get_ientry(indexes, stream->entry); + if (empty || tie->pos < ie->pos) + { + ie = tie; + stream_id = i; + } + empty = 0; + } + + if (!empty) + { + stream = get_stream(avi_ctx->stream_list, stream_id); + avi_stream2fourcc(tag, stream); + io_write_4cc(avi_ctx->writer, tag); + io_write_wl32(avi_ctx->writer, ie->flags); + io_write_wl32(avi_ctx->writer, ie->pos); + io_write_wl32(avi_ctx->writer, ie->len); + stream->entry++; + } + } + while (!empty); + + avi_close_tag(avi_ctx, idx_chunk); + if(verbosity > 0) + printf("ENCODER: (avi) wrote idx1\n"); + avi_write_counters(avi_ctx, riff); + + return 0; +} + +int avi_write_packet( + avi_context_t *avi_ctx, + int stream_index, + uint8_t *data, + uint32_t size, + int64_t dts, + int block_align, + int32_t flags) +{ + char tag[5]; + unsigned int i_flags=0; + + stream_io_t *stream= get_stream(avi_ctx->stream_list, stream_index); + + avi_riff_t *riff = avi_get_last_riff(avi_ctx); + //align + //while(block_align==0 && dts != AV_NOPTS_VALUE && dts > stream->packet_count) + // avi_write_packet(avi_ctx, stream_index, NULL, 0, AV_NOPTS_VALUE, 0, 0); + + stream->packet_count++; + + // Make sure to put an OpenDML chunk when the file size exceeds the limits + if (io_get_offset(avi_ctx->writer) - riff->riff_start > AVI_MAX_RIFF_SIZE) + { + avi_write_ix(avi_ctx); + avi_close_tag(avi_ctx, riff->movi_list); + + if (riff->id == 1) + avi_write_idx1(avi_ctx, riff); + + avi_close_tag(avi_ctx, riff->riff_start); + + avi_add_new_riff(avi_ctx); + + riff = avi_get_last_riff(avi_ctx); //update riff + } + + avi_stream2fourcc(tag, stream); + + if(flags & AV_PKT_FLAG_KEY) //key frame + i_flags = 0x10; + + if (stream->type == STREAM_TYPE_AUDIO) + stream->audio_strm_length += size; + + + avi_index_t *idx = (avi_index_t *) stream->indexes; + int cl = idx->entry / AVI_INDEX_CLUSTER_SIZE; + int id = idx->entry % AVI_INDEX_CLUSTER_SIZE; + if (idx->ents_allocated <= idx->entry) + { + idx->cluster = realloc(idx->cluster, (cl+1)*sizeof(void*)); + if (idx->cluster == NULL) + { + fprintf(stderr, "ENCODER: FATAL memory allocation failure (avi_write_packet): %s\n", strerror(errno)); + exit(-1); + } + + idx->cluster[cl] = calloc(AVI_INDEX_CLUSTER_SIZE, sizeof(avi_I_entry_t)); + if (idx->cluster[cl] == NULL) + { + fprintf(stderr, "ENCODER: FATAL memory allocation failure (avi_write_packet): %s\n", strerror(errno)); + exit(-1); + } + idx->ents_allocated += AVI_INDEX_CLUSTER_SIZE; + } + + idx->cluster[cl][id].flags = i_flags; + idx->cluster[cl][id].pos = io_get_offset(avi_ctx->writer) - riff->movi_list; + idx->cluster[cl][id].len = size; + idx->entry++; + + + io_write_4cc(avi_ctx->writer, tag); + io_write_wl32(avi_ctx->writer, size); + io_write_buf(avi_ctx->writer, data, size); + if (size & 1) + io_write_w8(avi_ctx->writer, 0); + + io_flush_buffer(avi_ctx->writer); + + return 0; +} + +int avi_close(avi_context_t *avi_ctx) +{ + int res = 0; + int64_t file_size; + + avi_riff_t *riff = avi_get_last_riff(avi_ctx); + + if (riff->id == 1) + { + avi_close_tag(avi_ctx, riff->movi_list); + if(verbosity > 0) + printf("ENCODER: (avi) %" PRIu64 " close movi tag\n",io_get_offset(avi_ctx->writer)); + res = avi_write_idx1(avi_ctx, riff); + avi_close_tag(avi_ctx, riff->riff_start); + } + else + { + avi_write_ix(avi_ctx); + avi_close_tag(avi_ctx, riff->movi_list); + avi_close_tag(avi_ctx, riff->riff_start); + + file_size = io_get_offset(avi_ctx->writer); + io_seek(avi_ctx->writer, avi_ctx->odml_list - 8); + io_write_4cc(avi_ctx->writer, "LIST"); /* Making this AVI OpenDML one */ + io_skip(avi_ctx->writer, 16); + + int n = 0; + int nb_frames = 0; + + for (n=nb_frames=0;nstream_list_size;n++) + { + stream_io_t *stream = get_stream(avi_ctx->stream_list, n); + + if (stream->type == STREAM_TYPE_VIDEO) + { + if (nb_frames < stream->packet_count) + nb_frames = stream->packet_count; + } + else + { + if (stream->codec_id == AV_CODEC_ID_MP2 || stream->codec_id == AV_CODEC_ID_MP3) + nb_frames += stream->packet_count; + } + } + io_write_wl32(avi_ctx->writer, nb_frames); + io_seek(avi_ctx->writer, file_size); + + avi_write_counters(avi_ctx, riff); + } + + clean_indexes(avi_ctx); + + return res; +} diff -Nru guvcview-1.7.3/gview_encoder/avi.h guvcview-2.0.1+ubuntu1~ppa1/gview_encoder/avi.h --- guvcview-1.7.3/gview_encoder/avi.h 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/gview_encoder/avi.h 2014-10-05 10:41:44.000000000 +0000 @@ -0,0 +1,135 @@ +/*******************************************************************************# +# guvcview http://guvcview.sourceforge.net # +# # +# Paulo Assis # +# # +# This is a heavily modified version of the matroska interface from x264 # +# Copyright (C) 2005 Mike Matsnev # +# # +# This program is free software; you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation; either version 2 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program; if not, write to the Free Software # +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # +# # +********************************************************************************/ + +#ifndef AVI_H +#define AVI_H + +#include +#include + +#include "stream_io.h" +#include "file_io.h" + +#define AVI_MAX_TRACKS 8 +#define FRAME_RATE_SCALE 1000 //1000000 + +typedef struct _video_index_entry_t +{ + off_t key; + off_t pos; + off_t len; +} video_index_entry_t; + +typedef struct _audio_index_entry_t +{ + off_t pos; + off_t len; + off_t tot; +} audio_index_entry_t; + +typedef struct avi_I_entry_t +{ + unsigned int flags, pos, len; +} avi_I_entry_t; + +typedef struct avi_index_t +{ + int64_t indx_start; + int entry; + int ents_allocated; + avi_I_entry_t **cluster; +} avi_index_t; + +typedef struct _avi_riff_t +{ + int64_t riff_start, movi_list; + //int64_t frames_hdr_all; + int64_t time_delay_off; + int id; + + struct _avi_riff_t *previous, *next; +} avi_riff_t; + +typedef struct avi_RIFF avi_RIFF; + +typedef struct avi_context_t +{ + io_writer_t *writer; + + int flags; /* 0 - AVI is recordind; 1 - AVI is not recording*/ + + uint32_t avi_flags; + + int32_t time_base_num; /* video time base numerator */ + int32_t time_base_den; /* video time base denominator */ + + avi_riff_t *riff_list; // avi_riff list (NULL terminated) + int riff_list_size; + + stream_io_t *stream_list; + int stream_list_size; + + double fps; + + int64_t odml_list; /*,time_delay_off*/ ; //some file offsets + +} avi_context_t; + +avi_context_t *avi_create_context(const char *filename); + +stream_io_t *avi_add_video_stream( + avi_context_t *avi_ctx, + int32_t width, + int32_t height, + int32_t fps, + int32_t fps_num, + int32_t codec_id); + +stream_io_t *avi_add_audio_stream( + avi_context_t *avi_ctx, + int32_t channels, + int32_t rate, + int32_t bits, + int32_t mpgrate, + int32_t codec_id, + int32_t format); + + +int avi_write_packet( + avi_context_t *avi_ctx, + int stream_index, + uint8_t *data, + uint32_t size, + int64_t dts, + int block_align, + int32_t flags); + +avi_riff_t *avi_add_new_riff(avi_context_t *avi_ctx); + +int avi_close(avi_context_t *avi_ctx); + + +void avi_destroy_context(avi_context_t *avi_ctx); + +#endif \ No newline at end of file diff -Nru guvcview-1.7.3/gview_encoder/encoder.c guvcview-2.0.1+ubuntu1~ppa1/gview_encoder/encoder.c --- guvcview-1.7.3/gview_encoder/encoder.c 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/gview_encoder/encoder.c 2014-10-05 10:41:44.000000000 +0000 @@ -0,0 +1,1854 @@ +/*******************************************************************************# +# guvcview http://guvcview.sourceforge.net # +# # +# Paulo Assis # +# Nobuhiro Iwamatsu # +# Add UYVY color support(Macbook iSight) # +# Flemming Frandsen # +# Add VU meter OSD # +# # +# This program is free software; you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation; either version 2 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program; if not, write to the Free Software # +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # +# # +********************************************************************************/ + +/*******************************************************************************# +# # +# Encoder library # +# # +********************************************************************************/ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +/* support for internationalization - i18n */ +#include +#include + +#include "../config.h" +#include "gviewencoder.h" +#include "encoder.h" +#include "stream_io.h" +#include "gview.h" + +#if LIBAVUTIL_VER_AT_LEAST(52,2) +#include +#endif + +int verbosity = 0; + +/*video buffer data mutex*/ +static __MUTEX_TYPE mutex = __STATIC_MUTEX_INIT; +#define __PMUTEX &mutex + +static int valid_video_codecs = 0; +static int valid_audio_codecs = 0; + +static int64_t last_video_pts = 0; +static int64_t last_audio_pts = 0; +static int64_t reference_pts = 0; + +static int video_frame_max_size = 0; + +static int video_ring_buffer_size = 0; +static video_buffer_t *video_ring_buffer = NULL; +static int video_read_index = 0; +static int video_write_index = 0; +static int video_scheduler = 0; + +/* + * set verbosity + * args: + * value - verbosity value + * + * asserts: + * none + * + * returns: none + */ +void encoder_set_verbosity(int value) +{ + verbosity = value; +} + +/* + * convert yuyv to yuv420p + * args: + * encoder_ctx - pointer to encoder context + * inp - input data (yuyv) + * + * asserts: + * encoder_ctx is not null + * encoder_ctx->enc_video_ctx is not null + * encoder_ctx->enc_video_ctx->tmpbuf is not null + * + * returns: none + */ +static void yuv422to420p(encoder_context_t *encoder_ctx, uint8_t *inp) +{ + /*assertions*/ + assert(encoder_ctx != NULL); + assert(encoder_ctx->enc_video_ctx != NULL); + assert( encoder_ctx->enc_video_ctx->tmpbuf != NULL); + + encoder_codec_data_t *video_codec_data = (encoder_codec_data_t *) encoder_ctx->enc_video_ctx->codec_data; + + assert(video_codec_data); + + int i,j; + int linesize= encoder_ctx->video_width * 2; + int size = encoder_ctx->video_width * encoder_ctx->video_height; + + uint8_t *y; + uint8_t *y1; + uint8_t *u; + uint8_t *v; + y = encoder_ctx->enc_video_ctx->tmpbuf; + y1 = encoder_ctx->enc_video_ctx->tmpbuf + encoder_ctx->video_width; + u = encoder_ctx->enc_video_ctx->tmpbuf + size; + v = u + size/4; + + for(j = 0; j < (encoder_ctx->video_height - 1); j += 2) + { + for(i = 0; i < (linesize - 3); i += 4) + { + *y++ = inp[i+j*linesize]; + *y++ = inp[i+2+j*linesize]; + *y1++ = inp[i+(j+1)*linesize]; + *y1++ = inp[i+2+(j+1)*linesize]; + *u++ = (inp[i+1+j*linesize] + inp[i+1+(j+1)*linesize])>>1; // div by 2 + *v++ = (inp[i+3+j*linesize] + inp[i+3+(j+1)*linesize])>>1; + } + y += encoder_ctx->video_width; + y1 += encoder_ctx->video_width;//2 lines + } + + prepare_video_frame(video_codec_data, encoder_ctx->enc_video_ctx->tmpbuf, encoder_ctx->video_width, encoder_ctx->video_height); +} + +/* + * check that a given sample format is supported by the encoder + * args: + * codec - pointer to AVCodec + * sample_fmt - audio sample format + * + * assertions: + * none + * + * returns: 1 - sample format is supported; 0 - is not supported + */ +static int encoder_check_audio_sample_fmt(AVCodec *codec, enum AVSampleFormat sample_fmt) +{ + const enum AVSampleFormat *p = codec->sample_fmts; + + while (*p != AV_SAMPLE_FMT_NONE) + { + if (*p == sample_fmt) + return 1; + p++; + } + return 0; +} + +/* + * allocate video ring buffer + * args: + * video_width - video frame width (in pixels) + * video_height - video frame height (in pixels) + * fps_den - frames per sec (denominator) + * fps_num - frames per sec (numerator) + * codec_ind - video codec index (0 -raw) + * + * asserts: + * none + * + * returns: none + */ +static void encoder_alloc_video_ring_buffer( + int video_width, + int video_height, + int fps_den, + int fps_num, + int codec_ind) +{ + video_ring_buffer_size = (fps_den * 3) / (fps_num * 2); /* 1.5 sec */ + if(video_ring_buffer_size < 20) + video_ring_buffer_size = 20; /*at least 20 frames buffer*/ + video_ring_buffer = calloc(video_ring_buffer_size, sizeof(video_buffer_t)); + if(video_ring_buffer == NULL) + { + fprintf(stderr, "ENCODER: FATAL memory allocation failure (encoder_alloc_video_ring_buffer): %s\n", strerror(errno)); + exit(-1); + } + + if(codec_ind > 0) + { +#ifdef USE_PLANAR_YUV + video_frame_max_size = (video_width * video_height * 3) / 2; +#else + /*Max: (yuyv) 2 bytes per pixel*/ + video_frame_max_size = video_width * video_height * 2; +#endif + } + else + video_frame_max_size = video_width * video_height * 3; //RGB formats + + int i = 0; + for(i = 0; i < video_ring_buffer_size; ++i) + { + video_ring_buffer[i].frame = calloc(video_frame_max_size, sizeof(uint8_t)); + if(video_ring_buffer[i].frame == NULL) + { + fprintf(stderr, "ENCODER: FATAL memory allocation failure (encoder_alloc_video_ring_buffer): %s\n", strerror(errno)); + exit(-1); + } + video_ring_buffer[i].flag = VIDEO_BUFF_FREE; + } +} + +/* + * clean video ring buffer + * args: + * none + * + * asserts: + * none + * + * returns: none + */ +static void encoder_clean_video_ring_buffer() +{ + if(!video_ring_buffer) + return; + + int i = 0; + for(i = 0; i < video_ring_buffer_size; ++i) + { + /*Max: (yuyv) 2 bytes per pixel*/ + free(video_ring_buffer[i].frame); + } + free(video_ring_buffer); + video_ring_buffer = NULL; +} + +/* + * video encoder initialization for raw input + * (don't set a codec but set the proper codec 4cc) + * args: + * enc_video_ctx - pointer to video context + * video_defaults - pointer to video codec default data + * video_width - video frame width + * video_height - video frame height + * + * asserts: + * encoder_ctx is not null + * encoder_ctx->enc_video_ctx is not null + * + * returns: none + */ +static void encoder_set_raw_video_input( + encoder_context_t *encoder_ctx, + video_codec_t *video_defaults + ) +{ + //assertions + assert(encoder_ctx != NULL); + assert(encoder_ctx->enc_video_ctx != NULL); + + encoder_ctx->video_codec_ind = 0; + + switch(encoder_ctx->input_format) + { + case V4L2_PIX_FMT_MJPEG: + strncpy(video_defaults->compressor, "MJPG", 5); + video_defaults->mkv_4cc = v4l2_fourcc('M','J','P','G'); + strncpy(video_defaults->mkv_codec, "V_MS/VFW/FOURCC", 25); + encoder_ctx->enc_video_ctx->outbuf_size = encoder_ctx->video_width * encoder_ctx->video_height / 2; + encoder_ctx->enc_video_ctx->outbuf = calloc(encoder_ctx->enc_video_ctx->outbuf_size, sizeof(uint8_t)); + if(encoder_ctx->enc_video_ctx->outbuf == NULL) + { + fprintf(stderr, "ENCODER: FATAL memory allocation failure (encoder_video_init): %s\n", strerror(errno)); + exit(-1); + } + break; + + case V4L2_PIX_FMT_H264: + strncpy(video_defaults->compressor, "H264", 5); + video_defaults->mkv_4cc = v4l2_fourcc('H','2','6','4'); + strncpy(video_defaults->mkv_codec, "V_MPEG4/ISO/AVC", 25); + encoder_ctx->enc_video_ctx->outbuf_size = encoder_ctx->video_width * encoder_ctx->video_height / 2; + encoder_ctx->enc_video_ctx->outbuf = calloc(encoder_ctx->enc_video_ctx->outbuf_size, sizeof(uint8_t)); + if(encoder_ctx->enc_video_ctx->outbuf == NULL) + { + fprintf(stderr, "ENCODER: FATAL memory allocation failure (encoder_video_init): %s\n", strerror(errno)); + exit(-1); + } + break; + + default: + { + char fourcc[5]; + fourcc[0]= (char) encoder_ctx->input_format & 0xFF; + fourcc[1]= (char) encoder_ctx->input_format & 0xFF00 >> 8; + fourcc[2]= (char) encoder_ctx->input_format & 0xFF0000 >> 16; + fourcc[3]= (char) encoder_ctx->input_format & 0xFF000000 >> 24; + fourcc[4]='\0'; + + strncpy(video_defaults->compressor, fourcc, 5); + video_defaults->mkv_4cc = encoder_ctx->input_format; //v4l2_fourcc('Y','U','Y','2') + strncpy(video_defaults->mkv_codec, "V_MS/VFW/FOURCC", 25); + encoder_ctx->enc_video_ctx->outbuf_size = encoder_ctx->video_width * encoder_ctx->video_height * 3; //max of 3 bytes per pixel + encoder_ctx->enc_video_ctx->outbuf = calloc(encoder_ctx->enc_video_ctx->outbuf_size, sizeof(uint8_t)); + if(encoder_ctx->enc_video_ctx->outbuf == NULL) + { + fprintf(stderr, "ENCODER: FATAL memory allocation failure (encoder_video_init): %s\n", strerror(errno)); + exit(-1); + } + break; + } + } +} + +/* + * video encoder initialization + * args: + * encoder_ctx - pointer to encoder context + * + * asserts: + * encoder_ctx is not null + * + * returns: pointer to encoder video context (NULL on none) + */ +static encoder_video_context_t *encoder_video_init(encoder_context_t *encoder_ctx) +{ + //assertions + assert(encoder_ctx != NULL); + + if(encoder_ctx->video_codec_ind < 0) + { + if(verbosity > 0) + printf("ENCODER: no video codec set - using raw (direct input)\n"); + + encoder_ctx->video_codec_ind = 0; + } + + video_codec_t *video_defaults = encoder_get_video_codec_defaults(encoder_ctx->video_codec_ind); + + if(!video_defaults) + { + fprintf(stderr, "ENCODER: defaults for video codec index %i not found: using raw (direct input)\n", + encoder_ctx->video_codec_ind); + encoder_ctx->video_codec_ind = 0; + video_defaults = encoder_get_video_codec_defaults(encoder_ctx->video_codec_ind); + if(!video_defaults) + { + /*should never happen*/ + fprintf(stderr, "ENCODER: defaults for raw video not found\n"); + return NULL; + } + } + + encoder_video_context_t *enc_video_ctx = calloc(1, sizeof(encoder_video_context_t)); + if(enc_video_ctx == NULL) + { + fprintf(stderr, "ENCODER: FATAL memory allocation failure (encoder_video_init): %s\n", strerror(errno)); + exit(-1); + } + + /* make sure enc_video_ctx is set in encoder_ctx */ + encoder_ctx->enc_video_ctx = enc_video_ctx; + + if(encoder_ctx->video_codec_ind == 0) + { + encoder_set_raw_video_input(encoder_ctx, video_defaults); + return (enc_video_ctx); + } + + /* + * alloc the video codec data + */ + encoder_codec_data_t *video_codec_data = calloc(1, sizeof(encoder_codec_data_t)); + if(video_codec_data == NULL) + { + fprintf(stderr, "ENCODER: FATAL memory allocation failure (encoder_video_init): %s\n", strerror(errno)); + exit(-1); + } + /* + * find the video encoder + * try specific codec (by name) + */ + video_codec_data->codec = avcodec_find_encoder_by_name(video_defaults->codec_name); + /*if it fails try any codec with matching AV_CODEC_ID*/ + if(!video_codec_data->codec) + video_codec_data->codec = avcodec_find_encoder(video_defaults->codec_id); + + if(!video_codec_data->codec) + { + /*we will use raw data so free the codec data*/ + free(video_codec_data); + fprintf(stderr, "ENCODER: libav video codec (%i) not found - using raw input\n",video_defaults->codec_id); + video_defaults = encoder_get_video_codec_defaults(0); + encoder_set_raw_video_input(encoder_ctx, video_defaults); + return (enc_video_ctx); + } + +#if LIBAVCODEC_VER_AT_LEAST(53,6) + + video_codec_data->codec_context = avcodec_alloc_context3(video_codec_data->codec); + + avcodec_get_context_defaults3 ( + video_codec_data->codec_context, + video_codec_data->codec); +#else + video_codec_data->codec_context = avcodec_alloc_context(); +#endif + + if(video_codec_data->codec_context == NULL) + { + fprintf(stderr, "ENCODER: FATAL memory allocation failure (encoder_video_init): %s\n", strerror(errno)); + exit(-1); + } + + /*set codec defaults*/ + video_codec_data->codec_context->bit_rate = video_defaults->bit_rate; + video_codec_data->codec_context->width = encoder_ctx->video_width; + video_codec_data->codec_context->height = encoder_ctx->video_height; + + video_codec_data->codec_context->flags |= video_defaults->flags; + if (video_defaults->num_threads > 0) + video_codec_data->codec_context->thread_count = video_defaults->num_threads; + /* + * mb_decision: + * 0 (FF_MB_DECISION_SIMPLE) Use mbcmp (default). + * 1 (FF_MB_DECISION_BITS) Select the MB mode which needs the fewest bits (=vhq). + * 2 (FF_MB_DECISION_RD) Select the MB mode which has the best rate distortion. + */ + video_codec_data->codec_context->mb_decision = video_defaults->mb_decision; + /*use trellis quantization*/ + video_codec_data->codec_context->trellis = video_defaults->trellis; + + /*motion estimation method (epzs)*/ + video_codec_data->codec_context->me_method = video_defaults->me_method; + + video_codec_data->codec_context->dia_size = video_defaults->dia; + video_codec_data->codec_context->pre_dia_size = video_defaults->pre_dia; + video_codec_data->codec_context->pre_me = video_defaults->pre_me; + video_codec_data->codec_context->me_pre_cmp = video_defaults->me_pre_cmp; + video_codec_data->codec_context->me_cmp = video_defaults->me_cmp; + video_codec_data->codec_context->me_sub_cmp = video_defaults->me_sub_cmp; + video_codec_data->codec_context->me_subpel_quality = video_defaults->subq; //NEW + video_codec_data->codec_context->refs = video_defaults->framerefs; //NEW + video_codec_data->codec_context->last_predictor_count = video_defaults->last_pred; + + video_codec_data->codec_context->mpeg_quant = video_defaults->mpeg_quant; //h.263 + video_codec_data->codec_context->qmin = video_defaults->qmin; // best detail allowed - worst compression + video_codec_data->codec_context->qmax = video_defaults->qmax; // worst detail allowed - best compression + video_codec_data->codec_context->max_qdiff = video_defaults->max_qdiff; + video_codec_data->codec_context->max_b_frames = video_defaults->max_b_frames; + + video_codec_data->codec_context->qcompress = video_defaults->qcompress; + video_codec_data->codec_context->qblur = video_defaults->qblur; + video_codec_data->codec_context->strict_std_compliance = FF_COMPLIANCE_NORMAL; + video_codec_data->codec_context->codec_id = video_defaults->codec_id; + +#if !LIBAVCODEC_VER_AT_LEAST(53,0) +#define AVMEDIA_TYPE_VIDEO CODEC_TYPE_VIDEO +#endif + video_codec_data->codec_context->codec_type = AVMEDIA_TYPE_VIDEO; + + video_codec_data->codec_context->pix_fmt = video_defaults->pix_fmt; //only yuv420p available for mpeg + if(video_defaults->fps) + video_codec_data->codec_context->time_base = (AVRational){1, video_defaults->fps}; //use codec properties fps + else if (encoder_ctx->fps_den >= 5) + video_codec_data->codec_context->time_base = (AVRational){encoder_ctx->fps_num, encoder_ctx->fps_den}; //default fps (for gspca this is 1/1) + else + video_codec_data->codec_context->time_base = (AVRational){1,15}; //fallback to 15 fps (e.g gspca) + + if(video_defaults->gop_size > 0) + video_codec_data->codec_context->gop_size = video_defaults->gop_size; + else + video_codec_data->codec_context->gop_size = video_codec_data->codec_context->time_base.den; + + if(video_defaults->codec_id == AV_CODEC_ID_H264) + { + video_codec_data->codec_context->me_range = 16; + //the first compressed frame will be empty (1 frame out of sync) + //but avoids x264 warning on lookaheadless mb-tree +#if LIBAVCODEC_VER_AT_LEAST(53,6) + av_dict_set(&video_codec_data->private_options, "rc_lookahead", "1", 0); +#else + video_codec_data->codec_context->rc_lookahead=1; +#endif + } + + /* open codec*/ +#if LIBAVCODEC_VER_AT_LEAST(53,6) + if (avcodec_open2( + video_codec_data->codec_context, + video_codec_data->codec, + &video_codec_data->private_options) < 0) +#else + if (avcodec_open( + video_codec_data->codec_context, + video_codec_data->codec) < 0) +#endif + { + fprintf(stderr, "ENCODER: could not open video codec (%s) - using raw input\n", video_defaults->codec_name); + free(video_codec_data->codec_context); + video_codec_data->codec_context = NULL; + video_codec_data->codec = 0; + /*we will use raw data so free the codec data*/ + free(video_codec_data); + video_defaults = encoder_get_video_codec_defaults(0); + encoder_set_raw_video_input(encoder_ctx, video_defaults); + return (enc_video_ctx); + } + +#if LIBAVCODEC_VER_AT_LEAST(55,28) + video_codec_data->frame = av_frame_alloc(); +#else + video_codec_data->frame = avcodec_alloc_frame(); +#endif + if(video_codec_data->frame == NULL) + { + fprintf(stderr, "ENCODER: FATAL memory allocation failure (encoder_video_init): %s\n", strerror(errno)); + exit(-1); + } + video_codec_data->frame->pts = 0; + + /*set the codec data in codec context*/ + enc_video_ctx->codec_data = (void *) video_codec_data; + +#ifdef USE_PLANAR_YUV + enc_video_ctx->tmpbuf = NULL; //no need to temp buffer input already in yu12 (yuv420p) +#else + //alloc tmpbuff (yuv420p) + enc_video_ctx->tmpbuf = calloc((encoder_ctx->video_width * encoder_ctx->video_height * 3)/2, sizeof(uint8_t)); + if(enc_video_ctx->tmpbuf == NULL) + { + fprintf(stderr, "ENCODER: FATAL memory allocation failure (encoder_video_init): %s\n", strerror(errno)); + exit(-1); + } +#endif + //alloc outbuf + enc_video_ctx->outbuf_size = 240000;//1792 + enc_video_ctx->outbuf = calloc(enc_video_ctx->outbuf_size, sizeof(uint8_t)); + if(enc_video_ctx->outbuf == NULL) + { + fprintf(stderr, "ENCODER: FATAL memory allocation failure (encoder_video_init): %s\n", strerror(errno)); + exit(-1); + } + + enc_video_ctx->delayed_frames = 0; + enc_video_ctx->index_of_df = -1; + + enc_video_ctx->flushed_buffers = 0; + enc_video_ctx->flush_delayed_frames = 0; + enc_video_ctx->flush_done = 0; + + return (enc_video_ctx); +} + +/* + * audio encoder initialization + * args: + * encoder_ctx - pointer to encoder context + * + * asserts: + * encoder_ctx is not null + * + * returns: pointer to encoder audio context (NULL on none) + */ +static encoder_audio_context_t *encoder_audio_init(encoder_context_t *encoder_ctx) +{ + //assertions + assert(encoder_ctx != NULL); + + if(encoder_ctx->audio_codec_ind < 0) + { + if(verbosity > 0) + printf("ENCODER: no audio codec set\n"); + + return NULL; + } + + if(encoder_ctx->audio_channels <= 0) + { + if(verbosity > 0) + printf("ENCODER: no audio channels set\n"); + + return NULL; + } + + audio_codec_t *audio_defaults = encoder_get_audio_codec_defaults(encoder_ctx->audio_codec_ind); + + if(!audio_defaults) + { + fprintf(stderr, "ENCODER: defaults for audio codec index %i not found\n", encoder_ctx->audio_codec_ind); + return NULL; + } + + /*alloc the encoder audio context*/ + encoder_audio_context_t *enc_audio_ctx = calloc(1, sizeof(encoder_audio_context_t)); + if(enc_audio_ctx == NULL) + { + fprintf(stderr, "ENCODER: FATAL memory allocation failure (encoder_audio_init): %s\n", strerror(errno)); + exit(-1); + } + + encoder_ctx->enc_audio_ctx = enc_audio_ctx; + + enc_audio_ctx->index_of_df = -1; + + enc_audio_ctx->flushed_buffers = 0; + enc_audio_ctx->flush_delayed_frames = 0; + enc_audio_ctx->flush_done = 0; + + /* + * alloc the audio codec data + */ + encoder_codec_data_t *audio_codec_data = calloc(1, sizeof(encoder_codec_data_t)); + + /* + * find the audio encoder + * try specific codec (by name) + */ + audio_codec_data->codec = avcodec_find_encoder_by_name(audio_defaults->codec_name); + /*if it fails try any codec with matching AV_CODEC_ID*/ + if(!audio_codec_data->codec) + audio_codec_data->codec = avcodec_find_encoder(audio_defaults->codec_id); + + if(!audio_codec_data->codec) + { + fprintf(stderr, "ENCODER: audio codec (%i) not found\n",audio_defaults->codec_id); + free(audio_codec_data); + free(enc_audio_ctx); + encoder_ctx->enc_audio_ctx = NULL; + return NULL; + } + +#if LIBAVCODEC_VER_AT_LEAST(53,6) + audio_codec_data->codec_context = avcodec_alloc_context3(audio_codec_data->codec); + avcodec_get_context_defaults3 (audio_codec_data->codec_context, audio_codec_data->codec); +#else + audio_codec_data->codec_context = avcodec_alloc_context(); +#endif + + if(audio_codec_data->codec_context == NULL) + { + fprintf(stderr, "ENCODER: FATAL memory allocation failure (encoder_audio_init): %s\n", strerror(errno)); + exit(-1); + } + + /*defaults*/ + enc_audio_ctx->avi_4cc = audio_defaults->avi_4cc; + + audio_codec_data->codec_context->bit_rate = audio_defaults->bit_rate; + audio_codec_data->codec_context->profile = audio_defaults->profile; /*for AAC*/ + + audio_codec_data->codec_context->flags |= audio_defaults->flags; + + audio_codec_data->codec_context->sample_rate = encoder_ctx->audio_samprate; + audio_codec_data->codec_context->channels = encoder_ctx->audio_channels; + +#if LIBAVCODEC_VER_AT_LEAST(53,34) + if(encoder_ctx->audio_channels < 2) + audio_codec_data->codec_context->channel_layout = AV_CH_LAYOUT_MONO; + else + audio_codec_data->codec_context->channel_layout = AV_CH_LAYOUT_STEREO; +#endif + + audio_codec_data->codec_context->cutoff = 0; /*automatic*/ + + audio_codec_data->codec_context->codec_id = audio_defaults->codec_id; + +#if !LIBAVCODEC_VER_AT_LEAST(53,0) +#define AVMEDIA_TYPE_AUDIO CODEC_TYPE_AUDIO +#endif + audio_codec_data->codec_context->codec_type = AVMEDIA_TYPE_AUDIO; + + /*check if codec supports sample format*/ + if (!encoder_check_audio_sample_fmt(audio_codec_data->codec, audio_defaults->sample_format)) + { + switch(audio_defaults->sample_format) + { + case AV_SAMPLE_FMT_S16: + if (encoder_check_audio_sample_fmt(audio_codec_data->codec, AV_SAMPLE_FMT_S16P)) + { + fprintf(stderr, "ENCODER: changing sample format (S16 -> S16P)\n"); + audio_defaults->sample_format = AV_SAMPLE_FMT_S16P; + } + else if (encoder_check_audio_sample_fmt(audio_codec_data->codec, AV_SAMPLE_FMT_FLT)) + { + fprintf(stderr, "ENCODER: changing sample format (S16 -> FLT)\n"); + audio_defaults->sample_format = AV_SAMPLE_FMT_FLT; + } + else if (encoder_check_audio_sample_fmt(audio_codec_data->codec, AV_SAMPLE_FMT_FLTP)) + { + fprintf(stderr, "ENCODER: changing sample format (S16 -> FLTP)\n"); + audio_defaults->sample_format = AV_SAMPLE_FMT_FLTP; + } + else + { + fprintf(stderr, "ENCODER: could not open audio codec: no supported sample format\n"); + free(audio_codec_data->codec_context); + free(audio_codec_data); + free(enc_audio_ctx); + encoder_ctx->enc_audio_ctx = NULL; + return NULL; + } + break; + + case AV_SAMPLE_FMT_FLT: + if (encoder_check_audio_sample_fmt(audio_codec_data->codec, AV_SAMPLE_FMT_S16)) + { + fprintf(stderr, "ENCODER: changing sample format (FLT -> S16)\n"); + audio_defaults->sample_format = AV_SAMPLE_FMT_S16; + } + else if (encoder_check_audio_sample_fmt(audio_codec_data->codec, AV_SAMPLE_FMT_S16P)) + { + fprintf(stderr, "ENCODER: changing sample format (FLT -> S16P)\n"); + audio_defaults->sample_format = AV_SAMPLE_FMT_S16P; + } + else if (encoder_check_audio_sample_fmt(audio_codec_data->codec, AV_SAMPLE_FMT_FLTP)) + { + fprintf(stderr, "ENCODER: changing sample format (FLT -> FLTP)\n"); + audio_defaults->sample_format = AV_SAMPLE_FMT_FLTP; + } + else + { + fprintf(stderr, "ENCODER: could not open audio codec: no supported sample format\n"); + free(audio_codec_data->codec_context); + free(audio_codec_data); + free(enc_audio_ctx); + encoder_ctx->enc_audio_ctx = NULL; + return NULL; + } + break; + + case AV_SAMPLE_FMT_FLTP: + if (encoder_check_audio_sample_fmt(audio_codec_data->codec, AV_SAMPLE_FMT_S16)) + { + fprintf(stderr, "ENCODER: changing sample format (FLTP -> S16)\n"); + audio_defaults->sample_format = AV_SAMPLE_FMT_S16; + } + else if (encoder_check_audio_sample_fmt(audio_codec_data->codec, AV_SAMPLE_FMT_S16P)) + { + fprintf(stderr, "ENCODER: changing sample format (FLTP -> S16P)\n"); + audio_defaults->sample_format = AV_SAMPLE_FMT_S16P; + } + else if (encoder_check_audio_sample_fmt(audio_codec_data->codec, AV_SAMPLE_FMT_FLT)) + { + fprintf(stderr, "ENCODER: changing sample format (FLTP -> FLT)\n"); + audio_defaults->sample_format = AV_SAMPLE_FMT_FLT; + } + else + { + fprintf(stderr, "ENCODER: could not open audio codec: no supported sample format\n"); + free(audio_codec_data->codec_context); + free(audio_codec_data); + free(enc_audio_ctx); + encoder_ctx->enc_audio_ctx = NULL; + return NULL; + } + break; + } + } + + audio_codec_data->codec_context->sample_fmt = audio_defaults->sample_format; + + /* open codec*/ +#if LIBAVCODEC_VER_AT_LEAST(53,6) + if (avcodec_open2( + audio_codec_data->codec_context, + audio_codec_data->codec, NULL) < 0) +#else + if (avcodec_open( + audio_codec_data->codec_context, + audio_codec_data->codec) < 0) +#endif + { + fprintf(stderr, "ENCODER: could not open audio codec\n"); + free(audio_codec_data->codec_context); + free(audio_codec_data); + free(enc_audio_ctx); + encoder_ctx->enc_audio_ctx = NULL; + return NULL; + } + + /* the codec gives us the frame size, in samples */ + int frame_size = audio_codec_data->codec_context->frame_size; + if(frame_size <= 0) + { + frame_size = 1152; /*default value*/ + audio_codec_data->codec_context->frame_size = frame_size; + } + if(verbosity > 0) + printf("ENCODER: Audio frame size is %d frames for selected codec\n", frame_size); + + enc_audio_ctx->monotonic_pts = audio_defaults->monotonic_pts; + + /*alloc outbuf*/ + enc_audio_ctx->outbuf_size = 240000; + enc_audio_ctx->outbuf = calloc(enc_audio_ctx->outbuf_size, sizeof(uint8_t)); + if(enc_audio_ctx->outbuf == NULL) + { + fprintf(stderr, "ENCODER: FATAL memory allocation failure (encoder_audio_init): %s\n", strerror(errno)); + exit(-1); + } + +#if LIBAVCODEC_VER_AT_LEAST(53,34) + +#if LIBAVCODEC_VER_AT_LEAST(55,28) + audio_codec_data->frame = av_frame_alloc(); +#else + audio_codec_data->frame = avcodec_alloc_frame(); +#endif + + if(audio_codec_data->frame == NULL) + { + fprintf(stderr, "ENCODER: FATAL memory allocation failure (encoder_audio_init): %s\n", strerror(errno)); + exit(-1); + } + +#if LIBAVCODEC_VER_AT_LEAST(55,28) + av_frame_unref(audio_codec_data->frame); +#else + avcodec_get_frame_defaults(audio_codec_data->frame); +#endif + + audio_codec_data->frame->nb_samples = frame_size; + audio_codec_data->frame->format = audio_defaults->sample_format; + +#if LIBAVCODEC_VER_AT_LEAST(54,0) + audio_codec_data->frame->channel_layout = audio_codec_data->codec_context->channel_layout; +#endif + +#endif + + /*set codec data in encoder context*/ + enc_audio_ctx->codec_data = (void *) audio_codec_data; + + return (enc_audio_ctx); +} + +/* + * get the audio encoder frame size + * args: + * encoder_ctx - pointer to encoder context + * + * asserts: + * encoder_ctx is not null + * + * returns: audio encoder frame size + * or < 0 on error + */ +int encoder_get_audio_frame_size(encoder_context_t *encoder_ctx) +{ + /*assertions*/ + assert(encoder_ctx); + if(encoder_ctx->enc_audio_ctx == NULL) + return -1; + + encoder_codec_data_t *audio_codec_data = (encoder_codec_data_t *) encoder_ctx->enc_audio_ctx->codec_data; + + if(audio_codec_data == NULL) + return -1; + + return audio_codec_data->codec_context->frame_size; + +} + +/* + * get the audio encoder input sample format + * args: + * encoder_ctx - pointer to encoder context + * + * asserts: + * encoder_ctx is not null + * + * returns: audio encoder sample format + */ +int encoder_get_audio_sample_fmt(encoder_context_t *encoder_ctx) +{ + /*assertions*/ + assert(encoder_ctx); + + /*default*/ + int sample_type = GV_SAMPLE_TYPE_INT16; + + if(encoder_ctx->enc_audio_ctx == NULL) + return sample_type; + + encoder_codec_data_t *audio_codec_data = (encoder_codec_data_t *) encoder_ctx->enc_audio_ctx->codec_data; + + if(audio_codec_data == NULL) + return sample_type; + + switch(audio_codec_data->codec_context->sample_fmt) + { + case AV_SAMPLE_FMT_FLTP: + sample_type = GV_SAMPLE_TYPE_FLOATP; + break; + case AV_SAMPLE_FMT_FLT: + sample_type = GV_SAMPLE_TYPE_FLOAT; + break; + case AV_SAMPLE_FMT_S16P: + sample_type = GV_SAMPLE_TYPE_INT16P; + break; + default: + sample_type = GV_SAMPLE_TYPE_INT16; + break; + } + + return sample_type; +} + +/* + * get audio sample format max value + * args: + * none + * + * returns the maximum audio sample format value + */ +int encoder_get_max_audio_sample_fmt() +{ + return AV_SAMPLE_FMT_NB-1; +} + +/* + * get an estimated write loop sleep time to avoid a ring buffer overrun + * args: + * mode: scheduler mode: + * 0 - linear funtion; 1 - exponencial funtion + * thresh: ring buffer threshold in wich scheduler becomes active: + * [0.2 (20%) - 0.9 (90%)] + * max_time - maximum scheduler time (in ms) + * + * asserts: + * none + * + * returns: estimate sleep time (nanosec) + */ +uint32_t encoder_buff_scheduler(int mode, double thresh, int max_time) +{ + int diff_ind = 0; + uint32_t sched_time = 0; /*in milisec*/ + + __LOCK_MUTEX( __PMUTEX ); + /* try to balance buffer overrun in read/write operations */ + if(video_write_index >= video_read_index) + diff_ind = video_write_index - video_read_index; + else + diff_ind = (video_ring_buffer_size - video_read_index) + video_write_index; + __UNLOCK_MUTEX( __PMUTEX ); + + /*clip ring buffer threshold*/ + if(thresh < 0.2) + thresh = 0.2; /*20% full*/ + if(thresh > 0.9) + thresh = 0.9; /*90% full*/ + + int th = (int) lround((double) video_ring_buffer_size * thresh); + + if (diff_ind >= th) + { + switch(mode) + { + case ENCODER_SCHED_LIN: /*linear function*/ + sched_time = (uint32_t) lround((double) (diff_ind - th) * (max_time/(video_ring_buffer_size - th))); + break; + + case ENCODER_SCHED_EXP: /*exponencial*/ + { + double exp = (double) log10(max_time)/log10(video_ring_buffer_size - th); + if(exp > 0) + sched_time = (uint32_t) lround( pow(diff_ind - th, exp)); + else /*use linear function*/ + sched_time = (uint32_t) lround((double) (diff_ind - th) * (max_time/(video_ring_buffer_size - th))); + break; + } + + } + } + + if(verbosity > 2) + printf("ENCODER: scheduler %i ms (index delta %i)\n", sched_time, diff_ind); + + /*clip*/ + if(sched_time < 0) sched_time = 0; /*clip to positive values just in case*/ + if(sched_time > 1000) + sched_time = 1000; /*1 sec max*/ + + return (sched_time * 1E6); /*return in nanosec*/ +} + +/* + * encoder initaliztion + * args: + * none + * + * asserts: + * none + * + * returns: none + */ +void encoder_init() +{ + +#if !LIBAVCODEC_VER_AT_LEAST(53,34) + avcodec_init(); +#endif + /* register all the codecs (you can also register only the codec + * you wish to have smaller code) + */ + avcodec_register_all(); + + valid_video_codecs = encoder_set_valid_video_codec_list (); + valid_audio_codecs = encoder_set_valid_audio_codec_list (); + +} + +/* + * get valid video codec count + * args: + * none + * + * asserts: + * none + * + * returns: number of valid video codecs + */ +int encoder_get_valid_video_codecs() +{ + return valid_video_codecs; +} + +/* + * get valid audio codec count + * args: + * none + * + * asserts: + * none + * + * returns: number of valid audio codecs + */ +int encoder_get_valid_audio_codecs() +{ + return valid_audio_codecs; +} + +/* + * initialize and get the encoder context + * args: + * input_format - input v4l2 format (yuyv for encoding) + * video_codec_ind - video codec list index + * audio_codec_ind - audio codec list index + * muxer_id - file muxer: + * ENCODER_MUX_MKV; ENCODER_MUX_WEBM; ENCODER_MUX_AVI + * video_width - video frame width + * video_height - video frame height + * fps_num - fps numerator + * fps_den - fps denominator + * audio_channels- audio channels + * audio_samprate- audio sample rate + * + * asserts: + * none + * + * returns: pointer to encoder context (NULL on error) + */ +encoder_context_t *encoder_get_context( + int input_format, + int video_codec_ind, + int audio_codec_ind, + int muxer_id, + int video_width, + int video_height, + int fps_num, + int fps_den, + int audio_channels, + int audio_samprate) +{ + encoder_context_t *encoder_ctx = calloc(1, sizeof(encoder_context_t)); + + if(encoder_ctx == NULL) + { + fprintf(stderr, "ENCODER: FATAL memory allocation failure (encoder_get_context): %s\n", strerror(errno)); + exit(-1); + } + + encoder_ctx->input_format = input_format; + + encoder_ctx->video_codec_ind = video_codec_ind; + encoder_ctx->audio_codec_ind = audio_codec_ind; + + encoder_ctx->muxer_id = muxer_id; + + encoder_ctx->video_width = video_width; + encoder_ctx->video_height = video_height; + + encoder_ctx->fps_num = fps_num; + encoder_ctx->fps_den = fps_den; + + encoder_ctx->audio_channels = audio_channels; + encoder_ctx->audio_samprate = audio_samprate; + + /******************* video **********************/ + encoder_video_init(encoder_ctx); + + /******************* audio **********************/ + encoder_audio_init(encoder_ctx); + + if(!encoder_ctx->enc_audio_ctx) + encoder_ctx->audio_channels = 0; /*no audio*/ + + /****************** ring buffer *****************/ + encoder_alloc_video_ring_buffer( + video_width, + video_height, + fps_den, + fps_num, + video_codec_ind); + + return encoder_ctx; +} + +/* + * store unprocessed input video frame in video ring buffer + * args: + * frame - pointer to unprocessed frame data + * size - frame size (in bytes) + * timestamp - frame timestamp (in nanosec) + * isKeyframe - flag if it's a key(IDR) frame + * + * asserts: + * none + * + * returns: error code + */ +int encoder_add_video_frame(uint8_t *frame, int size, int64_t timestamp, int isKeyframe) +{ + if(!video_ring_buffer) + return -1; + + if (reference_pts == 0) + { + reference_pts = timestamp; /*first frame ts*/ + if(verbosity > 0) + printf("ENCODER: ref ts = %" PRId64 "\n", timestamp); + } + + int64_t pts = timestamp - reference_pts; + + __LOCK_MUTEX( __PMUTEX ); + int flag = video_ring_buffer[video_write_index].flag; + __UNLOCK_MUTEX( __PMUTEX ); + + if(flag != VIDEO_BUFF_FREE) + { + fprintf(stderr, "ENCODER: video ring buffer full - dropping frame\n"); + return -1; + } + + /*clip*/ + if(size > video_frame_max_size) + { + fprintf(stderr, "ENCODER: frame (%i bytes) larger than buffer (%i bytes): clipping\n", + size, video_frame_max_size); + + size = video_frame_max_size; + } + memcpy(video_ring_buffer[video_write_index].frame, frame, size); + video_ring_buffer[video_write_index].frame_size = size; + video_ring_buffer[video_write_index].timestamp = pts; + video_ring_buffer[video_write_index].keyframe = isKeyframe; + + __LOCK_MUTEX( __PMUTEX ); + video_ring_buffer[video_write_index].flag = VIDEO_BUFF_USED; + NEXT_IND(video_write_index, video_ring_buffer_size); + __UNLOCK_MUTEX( __PMUTEX ); + + return 0; +} + +/* + * process next video frame on the ring buffer (encode and mux to file) + * args: + * encoder_ctx - pointer to encoder context + * + * asserts: + * encoder_ctx is not null + * + * returns: error code + */ +int encoder_process_next_video_buffer(encoder_context_t *encoder_ctx) +{ + /*assertions*/ + assert(encoder_ctx != NULL); + + __LOCK_MUTEX( __PMUTEX ); + + int flag = video_ring_buffer[video_read_index].flag; + + __UNLOCK_MUTEX ( __PMUTEX ); + + if(flag == VIDEO_BUFF_FREE) + return 1; /*all done*/ + + /*timestamp is zero indexed*/ + encoder_ctx->enc_video_ctx->pts = video_ring_buffer[video_read_index].timestamp; + + /*raw (direct input)*/ + if(encoder_ctx->video_codec_ind == 0) + { + /*outbuf_coded_size must already be set*/ + encoder_ctx->enc_video_ctx->outbuf_coded_size = video_ring_buffer[video_read_index].frame_size; + if(video_ring_buffer[video_read_index].keyframe) + encoder_ctx->enc_video_ctx->flags |= AV_PKT_FLAG_KEY; + } + + encoder_encode_video(encoder_ctx, video_ring_buffer[video_read_index].frame); + + + /*mux the frame*/ + __LOCK_MUTEX( __PMUTEX ); + + video_ring_buffer[video_read_index].flag = VIDEO_BUFF_FREE; + NEXT_IND(video_read_index, video_ring_buffer_size); + + __UNLOCK_MUTEX ( __PMUTEX ); + + encoder_write_video_data(encoder_ctx); + + return 0; +} + +/* + * process all used video frames from buffer + * args: + * encoder_ctx - pointer to encoder context + * + * asserts: + * encoder_ctx is not null + * + * returns: error code + */ +int encoder_flush_video_buffer(encoder_context_t *encoder_ctx) +{ + /*assertions*/ + assert(encoder_ctx != NULL); + + __LOCK_MUTEX( __PMUTEX ); + int flag = video_ring_buffer[video_read_index].flag; + __UNLOCK_MUTEX ( __PMUTEX ); + + int buffer_count = video_ring_buffer_size; + + while(flag != VIDEO_BUFF_FREE && buffer_count > 0) + { + buffer_count--; + + /*timestamp is zero indexed*/ + encoder_ctx->enc_video_ctx->pts = video_ring_buffer[video_read_index].timestamp; + + /*raw (direct input)*/ + if(encoder_ctx->video_codec_ind == 0) + { + /*outbuf_coded_size must already be set*/ + encoder_ctx->enc_video_ctx->outbuf_coded_size = video_ring_buffer[video_read_index].frame_size; + if(video_ring_buffer[video_read_index].keyframe) + encoder_ctx->enc_video_ctx->flags |= AV_PKT_FLAG_KEY; + } + + encoder_encode_video(encoder_ctx, video_ring_buffer[video_read_index].frame); + + /*mux the frame*/ + __LOCK_MUTEX( __PMUTEX ); + + video_ring_buffer[video_read_index].flag = VIDEO_BUFF_FREE; + NEXT_IND(video_read_index, video_ring_buffer_size); + + __UNLOCK_MUTEX ( __PMUTEX ); + + encoder_write_video_data(encoder_ctx); + + /*get next buffer flag*/ + __LOCK_MUTEX( __PMUTEX ); + flag = video_ring_buffer[video_read_index].flag; + __UNLOCK_MUTEX ( __PMUTEX ); + } + + /*flush libav*/ + int flushed_frame_counter = 0; + encoder_ctx->enc_video_ctx->flush_delayed_frames = 1; + while(!encoder_ctx->enc_video_ctx->flush_done && + flushed_frame_counter <= encoder_ctx->enc_video_ctx->delayed_frames) + { + encoder_encode_video(encoder_ctx, NULL); + encoder_write_video_data(encoder_ctx); + flushed_frame_counter++; + } + + if(!buffer_count) + { + fprintf(stderr, "ENCODER: (flush video buffer) max processed buffers reached\n"); + return -1; + } + + return 0; +} + +/* + * process all delayed audio frames from libavcodec + * args: + * encoder_ctx - pointer to encoder context + * + * asserts: + * encoder_ctx is not null + * + * returns: error code + */ +int encoder_flush_audio_buffer(encoder_context_t *encoder_ctx) +{ + /*assertions*/ + assert(encoder_ctx != NULL); + + /*flush libav*/ + int flushed_frame_counter = 0; + encoder_ctx->enc_audio_ctx->flush_delayed_frames = 1; + while(!encoder_ctx->enc_audio_ctx->flush_done && + flushed_frame_counter <= encoder_ctx->enc_audio_ctx->delayed_frames) + { + encoder_encode_audio(encoder_ctx, NULL); + encoder_write_audio_data(encoder_ctx); + flushed_frame_counter++; + } +} + +/* + * process audio frame (encode and mux to file) + * args: + * encoder_ctx - pointer to encoder context + * data - audio buffer + * + * asserts: + * encoder_ctx is not null + * + * returns: error code + */ +int encoder_process_audio_buffer(encoder_context_t *encoder_ctx, void *data) +{ + /*assertions*/ + assert(encoder_ctx != NULL); + + if(encoder_ctx->enc_audio_ctx == NULL || + encoder_ctx->audio_channels <= 0) + return -1; + + encoder_encode_audio(encoder_ctx, data); + + int ret = encoder_write_audio_data(encoder_ctx); + + return ret; +} + +/* + * encode video frame + * args: + * encoder_ctx - pointer to encoder context + * input_frame - pointer to frame data + * + * asserts: + * encoder_ctx is not null + * + * returns: encoded buffer size + */ +int encoder_encode_video(encoder_context_t *encoder_ctx, void *input_frame) +{ + /*assertions*/ + assert(encoder_ctx != NULL); + + encoder_video_context_t *enc_video_ctx = encoder_ctx->enc_video_ctx; + + int outsize = 0; + + if(!enc_video_ctx) + { + if(verbosity > 1) + printf("ENCODER: video encoder not set\n"); + encoder_ctx->enc_video_ctx->outbuf_coded_size = outsize; + return outsize; + } + + encoder_codec_data_t *video_codec_data = (encoder_codec_data_t *) enc_video_ctx->codec_data; + + /*raw - direct input no software encoding*/ + if(encoder_ctx->video_codec_ind == 0) + { + if(input_frame == NULL) + { + encoder_ctx->enc_video_ctx->outbuf_coded_size = outsize; + return outsize; + } + /*outbuf_coded_size must already be set*/ + outsize = enc_video_ctx->outbuf_coded_size; + memcpy(enc_video_ctx->outbuf, input_frame, outsize); + enc_video_ctx->flags = 0; + /*enc_video_ctx->flags must be set*/ + enc_video_ctx->dts = AV_NOPTS_VALUE; + + if(last_video_pts == 0) + last_video_pts = enc_video_ctx->pts; + + enc_video_ctx->duration = enc_video_ctx->pts - last_video_pts; + last_video_pts = enc_video_ctx->pts; + return (outsize); + } + + if(input_frame != NULL) + { +#ifdef USE_PLANAR_YUV + prepare_video_frame(video_codec_data, input_frame, encoder_ctx->video_width, encoder_ctx->video_height); +#else + /*convert default yuyv to y420p (libav input format)*/ + switch(video_codec_data->codec_context->pix_fmt) + { + case PIX_FMT_YUVJ420P: + yuv422to420p(encoder_ctx, input_frame); + break; + default: + yuv422to420p(encoder_ctx, input_frame); + break; + } +#endif + } + + if(!enc_video_ctx->monotonic_pts) //generate a real pts based on the frame timestamp + video_codec_data->frame->pts += ((enc_video_ctx->pts - last_video_pts)/1000) * 90; + else /*generate a true monotonic pts based on the codec fps*/ + video_codec_data->frame->pts += + (video_codec_data->codec_context->time_base.num * 1000 / video_codec_data->codec_context->time_base.den) * 90; + + if(enc_video_ctx->flush_delayed_frames) + { + //pkt.size = 0; + if(!enc_video_ctx->flushed_buffers) + { + avcodec_flush_buffers(video_codec_data->codec_context); + enc_video_ctx->flushed_buffers = 1; + } + } + +#if LIBAVCODEC_VER_AT_LEAST(54,01) + AVPacket pkt; + int got_packet = 0; + av_init_packet(&pkt); + pkt.data = enc_video_ctx->outbuf; + pkt.size = enc_video_ctx->outbuf_size; + + int ret = 0; + //if(enc_video_ctx->outbuf_size < FF_MIN_BUFFER_SIZE) + //{ + // av_log(avctx, AV_LOG_ERROR, "buffer smaller than minimum size\n"); + // return -1; + //} + if(!enc_video_ctx->flush_delayed_frames) + ret = avcodec_encode_video2( + video_codec_data->codec_context, + &pkt, + video_codec_data->frame, + &got_packet); + else + ret = avcodec_encode_video2( + video_codec_data->codec_context, + &pkt, NULL, /*NULL flushes the encoder buffers*/ + &got_packet); + + if (!ret && got_packet && video_codec_data->codec_context->coded_frame) + { + /* Do we really need to set this ???*/ + video_codec_data->codec_context->coded_frame->pts = pkt.pts; + video_codec_data->codec_context->coded_frame->key_frame = !!(pkt.flags & AV_PKT_FLAG_KEY); + } + + enc_video_ctx->dts = pkt.dts; + enc_video_ctx->flags = pkt.flags; + enc_video_ctx->duration = pkt.duration; + + /* free any side data since we cannot return it */ + if (pkt.side_data_elems > 0) + { + int i; + for (i = 0; i < pkt.side_data_elems; i++) + av_free(pkt.side_data[i].data); + av_freep(&pkt.side_data); + pkt.side_data_elems = 0; + } + + outsize = pkt.size; +#else + if(!enc_video_ctx->flush_delayed_frames) + outsize = avcodec_encode_video( + video_codec_data->codec_context, + enc_video_ctx->outbuf, + enc_video_ctx->outbuf_size, + video_codec_data->frame); + else + outsize = avcodec_encode_video( + video_codec_data->codec_context, + enc_video_ctx->outbuf, + enc_video_ctx->outbuf_size, + NULL); /*NULL flushes the encoder buffers*/ + + enc_video_ctx->flags = 0; + if (video_codec_data->codec_context->coded_frame->key_frame) + enc_video_ctx->flags |= AV_PKT_FLAG_KEY; + enc_video_ctx->dts = AV_NOPTS_VALUE; + + if(last_video_pts == 0) + last_video_pts = enc_video_ctx->pts; + + enc_video_ctx->duration = enc_video_ctx->pts - last_video_pts; +#endif + + last_video_pts = enc_video_ctx->pts; + + if(enc_video_ctx->flush_delayed_frames && outsize == 0) + enc_video_ctx->flush_done = 1; + else if(outsize == 0 && enc_video_ctx->index_of_df < 0) + { + enc_video_ctx->delayed_pts[enc_video_ctx->delayed_frames] = enc_video_ctx->pts; + enc_video_ctx->delayed_frames++; + if(enc_video_ctx->delayed_frames > MAX_DELAYED_FRAMES) + { + enc_video_ctx->delayed_frames = MAX_DELAYED_FRAMES; + printf("ENCODER: Maximum of %i delayed video frames reached...\n", MAX_DELAYED_FRAMES); + } + } + else + { + if(enc_video_ctx->delayed_frames > 0) + { + if(enc_video_ctx->index_of_df < 0) + { + enc_video_ctx->index_of_df = 0; + printf("ENCODER: video codec is using %i delayed video frames\n", enc_video_ctx->delayed_frames); + } + int64_t my_pts = enc_video_ctx->pts; + enc_video_ctx->pts = enc_video_ctx->delayed_pts[enc_video_ctx->index_of_df]; + enc_video_ctx->delayed_pts[enc_video_ctx->index_of_df] = my_pts; + enc_video_ctx->index_of_df++; + if(enc_video_ctx->index_of_df >= enc_video_ctx->delayed_frames) + enc_video_ctx->index_of_df = 0; + } + } + + encoder_ctx->enc_video_ctx->outbuf_coded_size = outsize; + return (outsize); +} + +/* + * encode audio + * args: + * encoder_ctx - pointer to encoder context + * audio_data - pointer to audio pcm data + * + * asserts: + * encoder_ctx is not null + * + * returns: encoded buffer size + */ +int encoder_encode_audio(encoder_context_t *encoder_ctx, void *audio_data) +{ + /*assertions*/ + assert(encoder_ctx != NULL); + + encoder_audio_context_t *enc_audio_ctx = encoder_ctx->enc_audio_ctx; + + int outsize = 0; + + if(!enc_audio_ctx) + { + if(verbosity > 1) + printf("ENCODER: audio encoder not set\n"); + + return outsize; + } + + encoder_codec_data_t *audio_codec_data = (encoder_codec_data_t *) enc_audio_ctx->codec_data; + + if(enc_audio_ctx->flush_delayed_frames) + { + //pkt.size = 0; + if(!enc_audio_ctx->flushed_buffers) + { + if(audio_codec_data) + avcodec_flush_buffers(audio_codec_data->codec_context); + enc_audio_ctx->flushed_buffers = 1; + } + } + + /* encode the audio */ +#if LIBAVCODEC_VER_AT_LEAST(53,34) + AVPacket pkt; + int got_packet; + av_init_packet(&pkt); + pkt.data = enc_audio_ctx->outbuf; + pkt.size = enc_audio_ctx->outbuf_size; + + int ret = 0; + + if(!enc_audio_ctx->flush_delayed_frames) + { + /*number of samples per channel*/ + audio_codec_data->frame->nb_samples = audio_codec_data->codec_context->frame_size; + int buffer_size = av_samples_get_buffer_size( + NULL, + audio_codec_data->codec_context->channels, + audio_codec_data->frame->nb_samples, + audio_codec_data->codec_context->sample_fmt, + 0); + + /*set the data pointers in frame*/ + avcodec_fill_audio_frame( + audio_codec_data->frame, + audio_codec_data->codec_context->channels, + audio_codec_data->codec_context->sample_fmt, + (const uint8_t *) audio_data, + buffer_size, + 0); + + if(!enc_audio_ctx->monotonic_pts) /*generate a real pts based on the frame timestamp*/ + audio_codec_data->frame->pts += ((enc_audio_ctx->pts - last_audio_pts)/1000) * 90; + else /*generate a true monotonic pts based on the codec fps*/ + audio_codec_data->frame->pts += + (audio_codec_data->codec_context->time_base.num*1000/audio_codec_data->codec_context->time_base.den) * 90; + + ret = avcodec_encode_audio2( + audio_codec_data->codec_context, + &pkt, + audio_codec_data->frame, + &got_packet); + } + else + { + ret = avcodec_encode_audio2( + audio_codec_data->codec_context, + &pkt, + NULL, /*NULL flushes the encoder buffers*/ + &got_packet); + } + + if (!ret && got_packet && audio_codec_data->codec_context->coded_frame) + { + audio_codec_data->codec_context->coded_frame->pts = pkt.pts; + audio_codec_data->codec_context->coded_frame->key_frame = !!(pkt.flags & AV_PKT_FLAG_KEY); + } + + enc_audio_ctx->dts = pkt.dts; + enc_audio_ctx->flags = pkt.flags; + enc_audio_ctx->duration = pkt.duration; + + /* free any side data since we cannot return it */ + //ff_packet_free_side_data(&pkt); + if (audio_codec_data->frame && + audio_codec_data->frame->extended_data != audio_codec_data->frame->data) + av_freep(audio_codec_data->frame->extended_data); + + outsize = pkt.size; +#else + if(!enc_video_ctx->flush_delayed_frames) + outsize = avcodec_encode_audio( + audio_codec_data->codec_context, + enc_audio_ctx->outbuf, + enc_audio_ctx->outbuf_size, + audio_data); + else + outsize = avcodec_encode_audio( + audio_codec_data->codec_context, + enc_audio_ctx->outbuf, + enc_audio_ctx->outbuf_size, + NULL); + + enc_audio_ctx->dts = AV_NOPTS_VALUE; + enc_audio_ctx->flags = 0; + if (audio_codec_data->codec_context->coded_frame->key_frame) + enc_audio_ctx->flags |= AV_PKT_FLAG_KEY; + + enc_audio_ctx->duration = enc_audio_ctx->pts - last_audio_pts; +#endif + + last_audio_pts = enc_audio_ctx->pts; + + if(enc_audio_ctx->flush_delayed_frames && outsize == 0) + enc_audio_ctx->flush_done = 1; + else if(outsize == 0 && enc_audio_ctx->index_of_df < 0) + { + enc_audio_ctx->delayed_pts[enc_audio_ctx->delayed_frames] = enc_audio_ctx->pts; + enc_audio_ctx->delayed_frames++; + if(enc_audio_ctx->delayed_frames > MAX_DELAYED_FRAMES) + { + enc_audio_ctx->delayed_frames = MAX_DELAYED_FRAMES; + printf("ENCODER: Maximum of %i delayed audio frames reached...\n", MAX_DELAYED_FRAMES); + } + } + else + { + if(enc_audio_ctx->delayed_frames > 0) + { + if(enc_audio_ctx->index_of_df < 0) + { + enc_audio_ctx->index_of_df = 0; + printf("ENCODER: audio codec is using %i delayed audio frames\n", enc_audio_ctx->delayed_frames); + } + int64_t my_pts = enc_audio_ctx->pts; + enc_audio_ctx->pts = enc_audio_ctx->delayed_pts[enc_audio_ctx->index_of_df]; + enc_audio_ctx->delayed_pts[enc_audio_ctx->index_of_df] = my_pts; + enc_audio_ctx->index_of_df++; + if(enc_audio_ctx->index_of_df >= enc_audio_ctx->delayed_frames) + enc_audio_ctx->index_of_df = 0; + } + } + + enc_audio_ctx->outbuf_coded_size = outsize; + return (outsize); +} + +/* + * close and clean encoder context + * args: + * encoder_ctx - pointer to encoder context data + * + * asserts: + * none + * + * returns: none + */ +void encoder_close(encoder_context_t *encoder_ctx) +{ + encoder_clean_video_ring_buffer(); + + if(!encoder_ctx) + return; + + encoder_video_context_t *enc_video_ctx = encoder_ctx->enc_video_ctx; + encoder_audio_context_t *enc_audio_ctx = encoder_ctx->enc_audio_ctx; + encoder_codec_data_t *video_codec_data = NULL; + encoder_codec_data_t *audio_codec_data = NULL; + + if(encoder_ctx->h264_pps) + free(encoder_ctx->h264_pps); + + if(encoder_ctx->h264_sps) + free(encoder_ctx->h264_sps); + + /*close video codec*/ + if(enc_video_ctx) + { + video_codec_data = (encoder_codec_data_t *) enc_video_ctx->codec_data; + if(video_codec_data) + { + if(!(enc_video_ctx->flushed_buffers)) + { + avcodec_flush_buffers(video_codec_data->codec_context); + enc_video_ctx->flushed_buffers = 1; + } + avcodec_close(video_codec_data->codec_context); + free(video_codec_data->codec_context); + +#if LIBAVCODEC_VER_AT_LEAST(53,6) + av_dict_free(&(video_codec_data->private_options)); +#endif + + if(video_codec_data->frame) +#if LIBAVCODEC_VER_AT_LEAST(55,28) + av_frame_free(&video_codec_data->frame); +#else + #if LIBAVCODEC_VER_AT_LEAST(54,28) + avcodec_free_frame(&video_codec_data->frame); + #else + av_freep(&video_codec_data->frame); + #endif +#endif + free(video_codec_data); + } + + if(enc_video_ctx->priv_data) + free(enc_video_ctx->priv_data); + if(enc_video_ctx->tmpbuf) + free(enc_video_ctx->tmpbuf); + if(enc_video_ctx->outbuf) + free(enc_video_ctx->outbuf); + + free(enc_video_ctx); + } + + /*close audio codec*/ + if(enc_audio_ctx) + { + audio_codec_data = (encoder_codec_data_t *) enc_audio_ctx->codec_data; + if(audio_codec_data) + { + avcodec_flush_buffers(audio_codec_data->codec_context); + + avcodec_close(audio_codec_data->codec_context); + free(audio_codec_data->codec_context); + + if(audio_codec_data->frame) +#if LIBAVCODEC_VER_AT_LEAST(55,28) + av_frame_free(&audio_codec_data->frame); +#else + #if LIBAVCODEC_VER_AT_LEAST(54,28) + avcodec_free_frame(&audio_codec_data->frame); + #else + av_freep(&audio_codec_data->frame); + #endif +#endif + free(audio_codec_data); + } + + if(enc_audio_ctx->priv_data) + free(enc_audio_ctx->priv_data); + if(enc_audio_ctx->outbuf) + free(enc_audio_ctx->outbuf); + + free(enc_audio_ctx); + } + + free(encoder_ctx); + + /*reset static data*/ + last_video_pts = 0; + last_audio_pts = 0; + reference_pts = 0; + + video_frame_max_size = 0; + + video_ring_buffer_size = 0; + video_ring_buffer = NULL; + video_read_index = 0; + video_write_index = 0; + video_scheduler = 0; + +} diff -Nru guvcview-1.7.3/gview_encoder/encoder.h guvcview-2.0.1+ubuntu1~ppa1/gview_encoder/encoder.h --- guvcview-1.7.3/gview_encoder/encoder.h 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/gview_encoder/encoder.h 2014-10-05 10:41:44.000000000 +0000 @@ -0,0 +1,350 @@ +/*******************************************************************************# +# guvcview http://guvcview.sourceforge.net # +# # +# Paulo Assis # +# George Sedov # +# - Threaded encoding # +# # +# This program is free software; you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation; either version 2 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program; if not, write to the Free Software # +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # +# # +********************************************************************************/ + +#ifndef ENCODER_H +#define ENCODER_H + +#include +#include + +#include "../config.h" + +#ifdef HAVE_AVCODEC_H + #include +#else + #ifdef HAVE_LIBAVCODEC_AVCODEC_H + #include + #ifdef HAVE_LIBAVUTIL_VERSION_H + #include + #endif + #else + #ifdef HAVE_FFMPEG_AVCODEC_H + #include + #else + #include + #endif + #endif +#endif + +#ifdef HAVE_LIBAVUTIL_VERSION_H + #include +#endif + +#define LIBAVCODEC_VER_AT_LEAST(major,minor) (LIBAVCODEC_VERSION_MAJOR > major || \ + (LIBAVCODEC_VERSION_MAJOR == major && \ + LIBAVCODEC_VERSION_MINOR >= minor)) + +#ifdef HAVE_LIBAVUTIL_VERSION_H +#define LIBAVUTIL_VER_AT_LEAST(major,minor) (LIBAVUTIL_VERSION_MAJOR > major || \ + (LIBAVUTIL_VERSION_MAJOR == major && \ + LIBAVUTIL_VERSION_MINOR >= minor)) +#else +#define LIBAVUTIL_VER_AT_LEAST(major,minor) 0 +#endif + +#if !LIBAVCODEC_VER_AT_LEAST(53,0) + #define AV_SAMPLE_FMT_S16 SAMPLE_FMT_S16 + #define AV_SAMPLE_FMT_FLT SAMPLE_FMT_FLT +#endif + + +#if !LIBAVCODEC_VER_AT_LEAST(54,25) + #define AV_CODEC_ID_NONE CODEC_ID_NONE + #define AV_CODEC_ID_MJPEG CODEC_ID_MJPEG + #define AV_CODEC_ID_MPEG1VIDEO CODEC_ID_MPEG1VIDEO + #define AV_CODEC_ID_FLV1 CODEC_ID_FLV1 + #define AV_CODEC_ID_WMV1 CODEC_ID_WMV1 + #define AV_CODEC_ID_MPEG2VIDEO CODEC_ID_MPEG2VIDEO + #define AV_CODEC_ID_MSMPEG4V3 CODEC_ID_MSMPEG4V3 + #define AV_CODEC_ID_MPEG4 CODEC_ID_MPEG4 + #define AV_CODEC_ID_H264 CODEC_ID_H264 + #define AV_CODEC_ID_VP8 CODEC_ID_VP8 + #define AV_CODEC_ID_THEORA CODEC_ID_THEORA + + #define AV_CODEC_ID_PCM_S16LE CODEC_ID_PCM_S16LE + #define AV_CODEC_ID_PCM_F32LE CODEC_ID_PCM_F32LE + #define AV_CODEC_ID_MP2 CODEC_ID_MP2 + #define AV_CODEC_ID_MP3 CODEC_ID_MP3 + #define AV_CODEC_ID_AC3 CODEC_ID_AC3 + #define AV_CODEC_ID_AAC CODEC_ID_AAC + #define AV_CODEC_ID_VORBIS CODEC_ID_VORBIS +#endif + +#if !LIBAVUTIL_VER_AT_LEAST(52,0) + #define AV_PIX_FMT_NONE PIX_FMT_NONE + #define AV_PIX_FMT_YUVJ420P PIX_FMT_YUVJ420P + #define AV_PIX_FMT_YUV420P PIX_FMT_YUV420P +#endif + + +/* Possible Audio formats */ +#define WAVE_FORMAT_UNKNOWN (0x0000) +#define WAVE_FORMAT_PCM (0x0001) +#define WAVE_FORMAT_ADPCM (0x0002) +#define WAVE_FORMAT_IEEE_FLOAT (0x0003) +#define WAVE_FORMAT_IBM_CVSD (0x0005) +#define WAVE_FORMAT_ALAW (0x0006) +#define WAVE_FORMAT_MULAW (0x0007) +#define WAVE_FORMAT_OKI_ADPCM (0x0010) +#define WAVE_FORMAT_DVI_ADPCM (0x0011) +#define WAVE_FORMAT_DIGISTD (0x0015) +#define WAVE_FORMAT_DIGIFIX (0x0016) +#define WAVE_FORMAT_YAMAHA_ADPCM (0x0020) +#define WAVE_FORMAT_DSP_TRUESPEECH (0x0022) +#define WAVE_FORMAT_GSM610 (0x0031) +#define WAVE_FORMAT_MP3 (0x0055) +#define WAVE_FORMAT_MPEG12 (0x0050) +#define WAVE_FORMAT_AAC (0x00ff) +#define WAVE_FORMAT_IBM_MULAW (0x0101) +#define WAVE_FORMAT_IBM_ALAW (0x0102) +#define WAVE_FORMAT_IBM_ADPCM (0x0103) +#define WAVE_FORMAT_AC3 (0x2000) +/*extra audio formats (codecs)*/ +#define ANTEX_FORMAT_ADPCME (0x0033) +#define AUDIO_FORMAT_APTX (0x0025) +#define AUDIOFILE_FORMAT_AF10 (0x0026) +#define AUDIOFILE_FORMAT_AF36 (0x0024) +#define BROOKTREE_FORMAT_BTVD (0x0400) +#define CANOPUS_FORMAT_ATRAC (0x0063) +#define CIRRUS_FORMAT_CIRRUS (0x0060) +#define CONTROL_FORMAT_CR10 (0x0037) +#define CONTROL_FORMAT_VQLPC (0x0034) +#define CREATIVE_FORMAT_ADPCM (0x0200) +#define CREATIVE_FORMAT_FASTSPEECH10 (0x0203) +#define CREATIVE_FORMAT_FASTSPEECH8 (0x0202) +#define IMA_FORMAT_ADPCM (0x0039) +#define CONSISTENT_FORMAT_CS2 (0x0260) +#define HP_FORMAT_CU (0x0019) +#define DEC_FORMAT_G723 (0x0123) +#define DF_FORMAT_G726 (0x0085) +#define DSP_FORMAT_ADPCM (0x0036) +#define DOLBY_FORMAT_AC2 (0x0030) +#define DOLBY_FORMAT_AC3_SPDIF (0x0092) +#define ESS_FORMAT_ESPCM (0x0061) +#define IEEE_FORMAT_FLOAT (0x0003) +#define MS_FORMAT_MSAUDIO1_DIVX (0x0160) +#define MS_FORMAT_MSAUDIO2_DIVX (0x0161) +#define OGG_FORMAT_VORBIS (0x566f) +#define OGG_FORMAT_VORBIS1 (0x674f) +#define OGG_FORMAT_VORBIS1P (0x676f) +#define OGG_FORMAT_VORBIS2 (0x6750) +#define OGG_FORMAT_VORBIS2P (0x6770) +#define OGG_FORMAT_VORBIS3 (0x6751) +#define OGG_FORMAT_VORBIS3P (0x6771) +#define MS_FORMAT_WMA9 (0x0163) +#define MS_FORMAT_WMA9_PRO (0x0162) + +/*video buffer flags*/ +#define VIDEO_BUFF_FREE (0) +#define VIDEO_BUFF_USED (1) + +/* + * codec data struct used for encoder context + * we set all avcodec stuff here so that we don't + * need to export any of it's symbols in the public API + */ +typedef struct _encoder_codec_data_t +{ + AVCodec *codec; +#if LIBAVCODEC_VER_AT_LEAST(53,6) + AVDictionary *private_options; +#endif + AVCodecContext *codec_context; + AVFrame *frame; + AVPacket *outpkt; +} encoder_codec_data_t; + +typedef struct _bmp_info_header_t +{ + uint32_t biSize; /*size of this header 40 bytes*/ + int32_t biWidth; + int32_t biHeight; + uint16_t biPlanes; /*color planes - set to 1*/ + uint16_t biBitCount; /*bits per pixel - color depth (use 24)*/ + uint32_t biCompression; /*BI_RGB = 0*/ + uint32_t biSizeImage; + uint32_t biXPelsPerMeter; + uint32_t biYPelsPerMeter; + uint32_t biClrUsed; + uint32_t biClrImportant; +} __attribute__ ((packed)) bmp_info_header_t; + +/* + * get default mkv_codecPriv + * args: + * none + * + * asserts: + * none + * + * returns: pointer to bmp_info_header_t + */ +bmp_info_header_t *get_default_mkv_codecPriv(); + +/* + * split xiph headers from libav private data + * args: + * extradata - libav codec private data + * extradata_size - codec private data size + * first_header_size - first header size + * header_start - first 3 bytes of header + * header_len - header length + * + * asserts: + * none + * + * returns: error code + */ +int avpriv_split_xiph_headers( + uint8_t *extradata, + int extradata_size, + int first_header_size, + uint8_t *header_start[3], + int header_len[3]); + +/* + * set yu12 frame in codec data frame + * args: + * video_codec_data - pointer to video codec data + * inp - input data (yu12) + * width - frame width + * height - frame height + * + * asserts: + * video_codec_data is not null + * inp is not null + * + * returns: none + */ +void prepare_video_frame(encoder_codec_data_t *encoder_ctx, uint8_t *inp, int width, int height); + + +/* + * returns the real codec array index + * args: + * codec_id - codec id + * + * asserts: + * none + * + * returns: real index or -1 if none + */ +int get_video_codec_index(int codec_id); + +/* + * returns the list codec index + * args: + * codec_id - codec id + * + * asserts: + * none + * + * returns: list index or -1 if none + */ +int get_video_codec_list_index(int codec_id); + +/* + * returns the real codec array index + * args: + * codec_id - codec id + * + * asserts: + * none + * + * returns: real index or -1 if none + */ +int get_audio_codec_index(int codec_id); + +/* + * returns the list codec index + * args: + * codec_id - codec id + * + * asserts: + * none + * + * returns: real index or -1 if none + */ +int get_audio_codec_list_index(int codec_id); + +/* + * get audio mkv codec + * args: + * codec_ind - codec list index + * + * asserts: + * none + * + * returns: mkv codec entry or NULL if none + */ +const char *encoder_get_audio_mkv_codec(int codec_ind); + +/* + * get video mkv codec + * args: + * codec_ind - codec list index + * + * asserts: + * none + * + * returns: mkv codec entry or NULL if none + */ +const char *encoder_get_video_mkv_codec(int codec_ind); + +/* + * get video compressor (avi 4cc code) + * args: + * codec_ind - codec list index + * + * asserts: + * none + * + * returns: compressor codec entry or NULL if none + */ +const char *encoder_get_video_codec_4cc(int codec_ind); + +/* + * get audio codec bits + * args: + * codec_ind - codec list index + * + * asserts: + * none + * + * returns: bits entry from audio codec list + */ +int encoder_get_audio_bits(int codec_ind); + +/* + * get audio codec bit rate + * args: + * codec_ind - codec list index + * + * asserts: + * none + * + * returns: bit_rate entry from audio codec list + */ +int encoder_get_audio_bit_rate(int codec_ind); + +#endif diff -Nru guvcview-1.7.3/gview_encoder/file_io.c guvcview-2.0.1+ubuntu1~ppa1/gview_encoder/file_io.c --- guvcview-1.7.3/gview_encoder/file_io.c 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/gview_encoder/file_io.c 2014-10-05 10:41:44.000000000 +0000 @@ -0,0 +1,578 @@ +/*******************************************************************************# +# guvcview http://guvcview.sourceforge.net # +# # +# Paulo Assis # +# # +# This program is free software; you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation; either version 2 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program; if not, write to the Free Software # +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # +# # +********************************************************************************/ + +#include +#include +#include +#include +#include +#include +#include +#include +/* support for internationalization - i18n */ +#include +#include + +#include "gviewencoder.h" +#include "file_io.h" +#include "gview.h" + + +/* + * get the file position pointer + * args: + * writer - pointer to io_writer + * + * asserts: + * writer is not null + * + * returns: the file position pointer + */ +static int64_t io_tell(io_writer_t *writer) +{ + /*assertions*/ + assert(writer != NULL); + + if(writer->fp == NULL) + { + fprintf(stderr, "ENCODER: (io_tell) no file pointer associated with io_writer (mem only ?)\n"); + return -1; + } + /*flush the file buffer*/ + fflush(writer->fp); + + /*return the file pointer position*/ + return ((int64_t) ftello64(writer->fp)); +} + +/* flush a mem only writer(buf_writer) into a file writer + * args: + * file_writer - pointer to a file io_writer + * buf_writer -pointer to a buf io_writer + * + * asserts: + * + * returns: delta between file and buffer writer positions + */ +//static int io_flush_buf_writer(io_writer_t *file_writer, io_writer_t *buf_writer) +//{ +// int size = (int) (buf_writer->buf_ptr - buf_writer->buffer); +// io_write_buf(file_writer, buf_writer->buffer, size); +// buf_writer->buf_ptr = buf_writer->buffer; +// +// return size; +//} + +/* + * create a new writer: + * args: + * filename - file for write to (if NULL mem only writer) + * max_size - mem buffer size (if 0 use default) + * + * asserts: + * none + * + * returns: pointer to io_writer + */ +io_writer_t *io_create_writer(const char *filename, int max_size) +{ + io_writer_t *writer = calloc(1, sizeof(io_writer_t)); + + if(writer == NULL) + { + fprintf(stderr, "ENCODER: FATAL memory allocation failure (io_create_writer): %s\n", strerror(errno)); + exit(-1); + } + + if(max_size > 0) + writer->buffer_size = max_size; + else + writer->buffer_size = IO_BUFFER_SIZE; + + writer->buffer = calloc(writer->buffer_size, sizeof(uint8_t)); + if(writer->buffer == NULL) + { + fprintf(stderr, "ENCODER: FATAL memory allocation failure (io_create_writer): %s\n", strerror(errno)); + exit(-1); + } + + writer->buf_ptr = writer->buffer; + writer->buf_end = writer->buf_ptr + writer->buffer_size; + + if(filename != NULL) + { + writer->fp = fopen(filename, "wb"); + if (writer->fp == NULL) + { + fprintf(stderr, "ENCODER: Could not open file for writing: %s\n", + strerror(errno)); + free(writer); + return NULL; + } + } + else + writer->fp = NULL; /*mem only writer (must be flushed to a file writer*/ + + return writer; +} + +/* + * destroy the writer (clean up) + * args: + * writer - pointer to io_writer + * + * asserts: + * writer is not null + * + * returns: none + */ +void io_destroy_writer(io_writer_t *writer) +{ + /*assertions*/ + assert(writer != NULL); + + if(writer->fp != NULL) + { + /* flush the buffer to file*/ + io_flush_buffer(writer); + /* flush the file buffer*/ + fflush(writer->fp); + /* close the file pointer */ + fclose(writer->fp); + } + + /*clean the mem buffer*/ + free(writer->buffer); +} + +/* + * flush the writer buffer to disk + * args: + * writer - pointer to io_writer + * + * asserts: + * writer is not null + * + * returns: current offset + */ +int64_t io_flush_buffer(io_writer_t *writer) +{ + /*assertions*/ + assert(writer != NULL); + + if(writer->fp == NULL) + { + fprintf(stderr, "ENCODER: (io_flush) no file pointer associated with writer (mem only ?)\n"); + fprintf(stderr, "ENCODER: (io_flush) try to increase buffer size\n"); + return -1; + } + + size_t nitems = 0; + if (writer->buf_ptr > writer->buffer) + { + nitems= writer->buf_ptr - writer->buffer; + if(fwrite(writer->buffer, 1, nitems, writer->fp) < nitems) + { + fprintf(stderr, "ENCODER: (io_flush) file write error: %s\n", strerror(errno)); + return -1; + } + } + else if (writer->buf_ptr < writer->buffer) + { + fprintf(stderr, "ENCODER: (io_flush) bad buffer pointer - dropping buffer\n"); + writer->buf_ptr = writer->buffer; + return -1; + } + + int64_t size_inc = nitems - (writer->size - writer->position); + if(size_inc > 0) + writer->size += size_inc; + + writer->position = io_tell(writer); /*update current file pointer position*/ + + writer->buf_ptr = writer->buffer; + + /*should never happen*/ + if(writer->position > writer->size) + { + fprintf(stderr, "ENCODER: (io_flush) file pointer ( %" PRIu64 " ) above expected file size ( %" PRIu64 " )\n", writer->position, writer->size); + writer->size = writer->position; + } + + return writer->position; +} + +/* + * move the writer pointer to position + * args: + * writer - pointer to io_writer + * position - new position offset + * + * asserts: + * writer is not null + * + * returns: error code + */ +int io_seek(io_writer_t *writer, int64_t position) +{ + /*assertions*/ + assert(writer != NULL); + + int ret = 0; + + if(position <= writer->size) //position is on the file + { + if(writer->fp == NULL) + { + fprintf(stderr, "ENCODER: (io_seek) no file pointer associated with writer (mem only ?)\n"); + return -1; + } + /*flush the memory buffer (we need an empty buffer)*/ + io_flush_buffer(writer); + /*try to move the file pointer to position*/ + int ret = fseeko(writer->fp, position, SEEK_SET); + if(ret != 0) + fprintf(stderr, "ENCODER: (io_seek) seek to file position %" PRIu64 "failed\n", position); + else + writer->position = io_tell(writer); /*update current file pointer position*/ + + /*we are now on position with an empty memory buffer*/ + } + else /* position is on the buffer*/ + { + /*move file pointer to EOF*/ + if(writer->position != writer->size) + { + fseeko(writer->fp, writer->size, SEEK_SET); + writer->position = writer->size; + } + /*move buffer pointer to position*/ + writer->buf_ptr = writer->buffer + (position - writer->size); + } + + return ret; +} + +/* + * move file pointer by offset + * args: + * writer - pointer to io_writer + * offset - offset value to skip + * + * asserts: + * writer is not null + * + * returns: error code + */ +int io_skip(io_writer_t *writer, int offset) +{ + /*assertions*/ + assert(writer != NULL); + + if(writer->fp == NULL) + { + fprintf(stderr, "ENCODER: (io_skip) no file pointer associated with writer (mem only ?)\n"); + return -1; + } + /*flush the memory buffer (clean buffer)*/ + io_flush_buffer(writer); + /*try to move the file pointer to position*/ + int ret = fseeko(writer->fp, offset, SEEK_CUR); + if(ret != 0) + fprintf(stderr, "ENCODER: (io_skip) skip file pointer by 0x%x failed\n", offset); + + writer->position = io_tell(writer); //update current file pointer position + + /*we are on position with an empty memory buffer*/ + return ret; +} + +/* + * get writer offset (current position) + * args: + * writer - pointer to io_writer + * + * asserts: + * writer is not null + * + * returns: current writer position offset + */ +int64_t io_get_offset(io_writer_t *writer) +{ + /*assertions*/ + assert(writer != NULL); + + /*buffer offset*/ + int64_t offset = writer->buf_ptr - writer->buffer; + if(offset < 0) + { + fprintf(stderr, "ENCODER: (io_get_offset) bad buf pointer\n"); + writer->buf_ptr = writer->buffer; + offset = 0; + } + /*add to file offset*/ + offset += writer->position; + + return offset; +} + +/* + * write 1 octet + * args: + * writer - pointer to io_writer + * b - octect to write + * + * asserts: + * writer is not null + * + * returns: none + */ +void io_write_w8(io_writer_t *writer, uint8_t b) +{ + *writer->buf_ptr++ = b; + if (writer->buf_ptr >= writer->buf_end) + io_flush_buffer(writer); +} + +/* + * write a buffer of size + * args: + * writer - pointer to io_writer + * buf - data buffer to write + * size - size of buffer + * + * asserts: + * writer is not null + * + * returns: none + */ +void io_write_buf(io_writer_t *writer, uint8_t *buf, int size) +{ + while (size > 0) + { + int len = writer->buf_end - writer->buf_ptr; + if(len < 0) + fprintf(stderr,"ENCODER: (io_write_buf) buff pointer outside buffer\n"); + if(len >= size) + len = size; + + memcpy(writer->buf_ptr, buf, len); + writer->buf_ptr += len; + + if (writer->buf_ptr >= writer->buf_end) + io_flush_buffer(writer); + + buf += len; + size -= len; + } +} + +/* + * write 2 octets (little endian) + * args: + * writer - pointer to io_writer + * val - value to write + * + * asserts: + * writer is not null + * + * returns: none + */ +void io_write_wl16(io_writer_t *writer, uint16_t val) +{ + io_write_w8(writer, (uint8_t) val); + io_write_w8(writer, (uint8_t) (val >> 8)); +} + +/* + * write 2 octets (bid endian) + * args: + * writer - pointer to io_writer + * val - value to write + * + * asserts: + * writer is not null + * + * returns: none + */ +void io_write_wb16(io_writer_t *writer, uint16_t val) +{ + io_write_w8(writer, (uint8_t) (val >> 8)); + io_write_w8(writer, (uint8_t) val); +} + +/* + * write 3 octets (little endian) + * args: + * writer - pointer to io_writer + * val - value to write + * + * asserts: + * writer is not null + * + * returns: none + */ +//void io_write_wl24(io_writer_t *writer, uint32_t val) +//{ +// io_write_wl16(writer, (uint16_t) (val & 0xffff)); +// io_write_w8(writer, (uint8_t) (val >> 16)); +//} + +/* + * write 3 octets (bid endian) + * args: + * writer - pointer to io_writer + * val - value to write + * + * asserts: + * writer is not null + * + * returns: none + */ +//void io_write_wb24(io_writer_t *writer, uint32_t val) +//{ +// io_write_wb16(writer, (uint16_t) (val >> 8)); +// io_write_w8(writer, (uint8_t) val); +//} + +/* + * write 4 octets (little endian) + * args: + * writer - pointer to io_writer + * val - value to write + * + * asserts: + * writer is not null + * + * returns: none + */ +void io_write_wl32(io_writer_t *writer, uint32_t val) +{ + io_write_w8(writer, (uint8_t) val); + io_write_w8(writer, (uint8_t) (val >> 8)); + io_write_w8(writer, (uint8_t) (val >> 16)); + io_write_w8(writer, (uint8_t) (val >> 24)); +} + +/* + * write 4 octets (bid endian) + * args: + * writer - pointer to io_writer + * val - value to write + * + * asserts: + * writer is not null + * + * returns: none + */ +void io_write_wb32(io_writer_t *writer, uint32_t val) +{ + io_write_w8(writer, (uint8_t) (val >> 24)); + io_write_w8(writer, (uint8_t) (val >> 16)); + io_write_w8(writer, (uint8_t) (val >> 8)); + io_write_w8(writer, (uint8_t) val); +} + +/* + * write 8 octets (little endian) + * args: + * writer - pointer to io_writer + * val - value to write + * + * asserts: + * writer is not null + * + * returns: none + */ +void io_write_wl64(io_writer_t *writer, uint64_t val) +{ + io_write_wl32(writer, (uint32_t)(val & 0xffffffff)); + io_write_wl32(writer, (uint32_t)(val >> 32)); +} + +/* + * write 4 octets (bid endian) + * args: + * writer - pointer to io_writer + * val - value to write + * + * asserts: + * writer is not null + * + * returns: none + */ +void io_write_wb64(io_writer_t *writer, uint64_t val) +{ + io_write_wb32(writer, (uint32_t)(val >> 32)); + io_write_wb32(writer, (uint32_t)(val & 0xffffffff)); +} + +/* + * write 4cc code + * args: + * writer - pointer to io_writer + * str - 4 char string with 4cc code + * + * asserts: + * writer is not null + * + * returns: none + */ +void io_write_4cc(io_writer_t *writer, const char *str) +{ + int len = 4; + if(strlen(str) < len ) + { + len = strlen(str); + } + + io_write_buf(writer, (uint8_t *) str, len); + + len = 4 - len; + /*fill remaining chars with spaces*/ + while(len > 0) + { + io_write_w8(writer, ' '); + len--; + } +} + +/* + * write a string (null terminated) + * args: + * writer - pointer to io_writer + * str - 4 char string with 4cc code + * + * asserts: + * writer is not null + * + * returns: the size writen + */ +//int io_write_str(io_writer_t * writer, const char *str) +//{ +// int len = 1; +// if (str) { +// len += strlen(str); +// io_write_buf(writer, (uint8_t *) str, len); +// } else +// io_write_w8(writer, 0); +// return len; +//} diff -Nru guvcview-1.7.3/gview_encoder/file_io.h guvcview-2.0.1+ubuntu1~ppa1/gview_encoder/file_io.h --- guvcview-1.7.3/gview_encoder/file_io.h 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/gview_encoder/file_io.h 2014-10-05 10:41:44.000000000 +0000 @@ -0,0 +1,290 @@ +/*******************************************************************************# +# guvcview http://guvcview.sourceforge.net # +# # +# Paulo Assis # +# # +# This program is free software; you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation; either version 2 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program; if not, write to the Free Software # +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # +# # +********************************************************************************/ + +#ifndef FILE_IO_H +#define FILE_IO_H + +#include +#include +#include + +#include "../config.h" + + +#define IO_BUFFER_SIZE 32768 + +typedef struct _io_writer_t +{ + FILE *fp; /* file pointer */ + + uint8_t *buffer; /* Start of the buffer. */ + int buffer_size; /* Maximum buffer size */ + uint8_t *buf_ptr; /* Current position in the buffer */ + uint8_t *buf_end; /* End of the buffer. */ + + int64_t size; //file size (end of file position) + int64_t position; //file pointer position (updates on buffer flush) +} io_writer_t; + +/* + * create a new writer: + * args: + * filename - file for write to (if NULL mem only writer) + * max_size - mem buffer size (if 0 use default) + * + * asserts: + * none + * + * returns: pointer to io_writer + */ +io_writer_t *io_create_writer(const char *filename, int max_size); + +/* + * destroy the writer (clean up) + * args: + * writer - pointer to io_writer + * + * asserts: + * writer is not null + * + * returns: none + */ +void io_destroy_writer(io_writer_t *writer); + +/* + * flush the writer buffer to disk + * args: + * writer - pointer to io_writer + * + * asserts: + * writer is not null + * + * returns: current offset + */ +int64_t io_flush_buffer(io_writer_t *writer); + +/* + * move the writer pointer to position + * args: + * writer - pointer to io_writer + * position - new position offset + * + * asserts: + * writer is not null + * + * returns: error code + */ +int io_seek(io_writer_t *writer, int64_t position); + +/* + * move file pointer by offset + * args: + * writer - pointer to io_writer + * offset - offset value to skip + * + * asserts: + * writer is not null + * + * returns: error code + */ +int io_skip(io_writer_t *writer, int offset); + +/* + * get writer offset (current position) + * args: + * writer - pointer to io_writer + * + * asserts: + * writer is not null + * + * returns: current writer position offset + */ +int64_t io_get_offset(io_writer_t *writer); + +/* + * write 1 octet + * args: + * writer - pointer to io_writer + * b - octect to write + * + * asserts: + * writer is not null + * + * returns: none + */ +void io_write_w8(io_writer_t *writer, uint8_t b); + +/* + * write a buffer of size + * args: + * writer - pointer to io_writer + * buf - data buffer to write + * size - size of buffer + * + * asserts: + * writer is not null + * + * returns: none + */ +void io_write_buf(io_writer_t *writer, uint8_t *buf, int size); + +/* + * write 2 octets (little endian) + * args: + * writer - pointer to io_writer + * val - value to write + * + * asserts: + * writer is not null + * + * returns: none + */ +void io_write_wl16(io_writer_t *writer, uint16_t val); + +/* + * write 2 octets (bid endian) + * args: + * writer - pointer to io_writer + * val - value to write + * + * asserts: + * writer is not null + * + * returns: none + */ +void io_write_wb16(io_writer_t *writer, uint16_t val); + +/* write 3 octets (little endian) + * args: + * writer - pointer to io_writer + * val - value to write + * + * asserts: + * writer is not null + * + * returns: none + */ +//void io_write_wl24(io_writer_t *writer, uint32_t val); + +/* + * write 3 octets (bid endian) + * args: + * writer - pointer to io_writer + * val - value to write + * + * asserts: + * writer is not null + * + * returns: none + */ +//void io_write_wb24(io_writer_t *writer, uint32_t val); + +/* + * write 4 octets (little endian) + * args: + * writer - pointer to io_writer + * val - value to write + * + * asserts: + * writer is not null + * + * returns: none + */ +void io_write_wl32(io_writer_t *writer, uint32_t val); + +/* + * write 4 octets (bid endian) + * args: + * writer - pointer to io_writer + * val - value to write + * + * asserts: + * writer is not null + * + * returns: none + */ +void io_write_wb32(io_writer_t *writer, uint32_t val); + +/* + * write 8 octets (little endian) + * args: + * writer - pointer to io_writer + * val - value to write + * + * asserts: + * writer is not null + * + * returns: none + */ +void io_write_wl64(io_writer_t *writer, uint64_t val); + +/* + * write 4 octets (bid endian) + * args: + * writer - pointer to io_writer + * val - value to write + * + * asserts: + * writer is not null + * + * returns: none + */ +void io_write_wb64(io_writer_t *writer, uint64_t val); + +/* + * write 4cc code + * args: + * writer - pointer to io_writer + * str - 4 char string with 4cc code + * + * asserts: + * writer is not null + * + * returns: none + */ +void io_write_4cc(io_writer_t *writer, const char *str); + +/* + * write a string (null terminated) + * args: + * writer - pointer to io_writer + * str - 4 char string with 4cc code + * + * asserts: + * writer is not null + * + * returns: the size writen + */ +//int io_write_str(io_writer_t * writer, const char *str); + +#if BIGENDIAN + #define io_write_w16 io_write_wb16 + #define io_write_w24 io_write_wb24 + #define io_write_w32 io_write_wb32 + #define io_write_w64 io_write_wb64 +#else + #define io_write_w16 io_write_wl16 + #define io_write_w24 io_write_wl24 + #define io_write_w32 io_write_wl32 + #define io_write_w64 io_write_wl64 +#endif + +#endif diff -Nru guvcview-1.7.3/gview_encoder/gviewencoder.h guvcview-2.0.1+ubuntu1~ppa1/gview_encoder/gviewencoder.h --- guvcview-1.7.3/gview_encoder/gviewencoder.h 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/gview_encoder/gviewencoder.h 2014-10-05 10:41:44.000000000 +0000 @@ -0,0 +1,737 @@ +/*******************************************************************************# +# guvcview http://guvcview.sourceforge.net # +# # +# Paulo Assis # +# Nobuhiro Iwamatsu # +# Add UYVY color support(Macbook iSight) # +# Flemming Frandsen # +# Add VU meter OSD # +# # +# This program is free software; you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation; either version 2 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program; if not, write to the Free Software # +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # +# # +********************************************************************************/ + +/*******************************************************************************# +# # +# Encoder library # +# # +********************************************************************************/ + +#ifndef GVIEWENCODER_H +#define GVIEWENCODER_H + +#include + +#include +#include + +/*make sure we support c++*/ +__BEGIN_DECLS + +/*encoder modes*/ +#define ENCODER_MODE_NONE (0) +#define ENCODER_MODE_RAW (1) + +/*Muxer defs*/ +#define ENCODER_MUX_MKV (0) +#define ENCODER_MUX_WEBM (1) +#define ENCODER_MUX_AVI (2) + +/*Scheduler Modes*/ +#define ENCODER_SCHED_LIN (0) +#define ENCODER_SCHED_EXP (1) + +/*audio sample format*/ +#ifndef GV_SAMPLE_TYPE_INT16 +#define GV_SAMPLE_TYPE_INT16 (0) //interleaved +#define GV_SAMPLE_TYPE_FLOAT (1) //interleaved +#define GV_SAMPLE_TYPE_INT16P (2) //planar +#define GV_SAMPLE_TYPE_FLOATP (3) //planar +#endif + +#define MAX_DELAYED_FRAMES 50 /*Maximum supported delayed frames*/ + +/*video buffer*/ +typedef struct _video_buffer_t +{ + uint8_t *frame; /*uncompressed*/ + int frame_size; + int64_t timestamp; + int keyframe; /* 1-keyframe; 0-non keyframe (only for direct input)*/ + int flag; /*VIDEO_BUFF_FREE | VIDEO_BUFF_USED*/ +} video_buffer_t; + +/*video codec properties*/ +typedef struct _video_codec_t +{ + int valid; //the encoding codec exists in libav + char compressor[5]; //fourcc - upper case + int mkv_4cc; //fourcc WORD value + char mkv_codec[25]; //mkv codecID + void *mkv_codecPriv; //mkv codec private data + char description[35]; //codec description + int pix_fmt; //codec input pixel format + int fps; // encoder frame rate (used for time base) + int bit_rate; //lavc default bit rate + int qmax; //lavc qmax + int qmin; //lavc qmin + int max_qdiff; //lavc qmin + int dia; //lavc dia_size + int pre_dia; //lavc pre_dia_size + int pre_me; //lavc pre_me + int me_pre_cmp; //lavc me_pre_cmp + int me_cmp; //lavc me_cmp + int me_sub_cmp; //lavc me_sub_cmp + int last_pred; //lavc last_predictor_count + int gop_size; //lavc gop_size + float qcompress; //lavc qcompress + float qblur; //lavc qblur + int subq; //lavc subq + int framerefs; //lavc refs + int codec_id; //lavc codec_id + char codec_name[20]; //lavc codec_name + int mb_decision; //lavc mb_decision + int trellis; //lavc trellis quantization + int me_method; //lavc motion estimation method + int mpeg_quant; //lavc mpeg quantization + int max_b_frames; //lavc max b frames + int num_threads; //lavc num threads + int flags; //lavc flags + int monotonic_pts; //use monotonic pts instead of timestamp based +} video_codec_t; + +/*audio codec properties*/ +typedef struct _audio_codec_t +{ + int valid; //the encoding codec exists in ffmpeg + int bits; //bits per sample (pcm only) + int monotonic_pts; + uint16_t avi_4cc; //fourcc value (4 bytes) + char mkv_codec[25]; //mkv codecID + char description[35]; //codec description + int bit_rate; //lavc default bit rate + int codec_id; //lavc codec_id + char codec_name[20]; //lavc codec name + int sample_format; //lavc sample format + int profile; //for AAC only + void *mkv_codpriv; //pointer for codec private data + int codpriv_size; //size in bytes of private data + int flags; //lavc flags + char name[5]; //common 4cc name (lowercase) +} audio_codec_t; + +/*video*/ +typedef struct _encoder_video_context_t +{ + void *codec_data; + + int monotonic_pts; + + /*delayed frames handling*/ + int delayed_frames; + int index_of_df; /*index of delayed frame pts in use;*/ + int64_t delayed_pts[MAX_DELAYED_FRAMES]; /*delayed frames pts*/ + int flush_delayed_frames; + int flushed_buffers; + int flush_done; + + uint8_t *priv_data; + + uint8_t* tmpbuf; + + int outbuf_size; + uint8_t* outbuf; + int outbuf_coded_size; + + int64_t framecount; + + int64_t pts; + int64_t dts; + int flags; + int duration; + +} encoder_video_context_t; + +/*Audio*/ +typedef struct _encoder_audio_context_t +{ + void *codec_data; + + int avi_4cc; + + int monotonic_pts; + + /*delayed frames handling*/ + int delayed_frames; + int index_of_df; /*index of delayed frame pts in use;*/ + int64_t delayed_pts[MAX_DELAYED_FRAMES]; /*delayed frames pts*/ + int flush_delayed_frames; + int flushed_buffers; + int flush_done; + + uint8_t *priv_data; + + int outbuf_size; + uint8_t* outbuf; + int outbuf_coded_size; + + int64_t pts; + int64_t dts; + int flags; + int duration; + +} encoder_audio_context_t; + + +typedef struct _encoder_context_t +{ + int muxer_id; + + int input_format; + int video_codec_ind; + int audio_codec_ind; + + int video_width; + int video_height; + + int fps_num; + int fps_den; + + int audio_channels; + int audio_samprate; + + encoder_video_context_t *enc_video_ctx; + encoder_audio_context_t *enc_audio_ctx; + + /*external h264 encoder data*/ + int h264_pps_size; + uint8_t *h264_pps; + int h264_sps_size; + uint8_t *h264_sps; + +} encoder_context_t; + +/* + * set verbosity + * args: + * value - verbosity value + * + * asserts: + * none + * + * returns: none + */ +void encoder_set_verbosity(int value); + +/* + * encoder initaliztion (first function to get called) + * args: + * none + * + * asserts: + * none + * + * returns: none + */ +void encoder_init(); + +/* + * get valid video codec count + * args: + * none + * + * asserts: + * none + * + * returns: number of valid video codecs + */ +int encoder_get_valid_video_codecs(); + +/* + * get valid audio codec count + * args: + * none + * + * asserts: + * none + * + * returns: number of valid audio codecs + */ +int encoder_get_valid_audio_codecs(); + +/* + * sets the valid flag in the video codecs list + * args: + * none + * + * asserts: + * none + * + * returns: number of valid video codecs in list + */ +int encoder_set_valid_video_codec_list (); + +/* + * sets the valid flag in the audio codecs list + * args: + * none + * + * asserts: + * none + * + * returns: number of valid audio codecs in list + */ +int encoder_set_valid_audio_codec_list (); + +/* + * get video list codec description + * args: + * codec_ind - codec list index + * + * asserts: + * none + * + * returns: list codec entry or NULL if none + */ +const char *encoder_get_video_codec_description(int codec_ind); + +/* + * get audio list codec description + * args: + * codec_ind - codec list index + * + * asserts: + * none + * + * returns: list codec entry or NULL if none + */ +const char *encoder_get_audio_codec_description(int codec_ind); + +/* + * initialize and get the encoder context + * args: + * input_format - input v4l2 format (yuyv for encoding) + * video_codec_ind - video codec list index + * audio_codec_ind - audio codec list index + * muxer_id - file muxer: + * ENCODER_MUX_MKV; ENCODER_MUX_WEBM; ENCODER_MUX_AVI + * video_width - video frame width + * video_height - video frame height + * fps_num - fps numerator + * fps_den - fps denominator + * audio_channels- audio channels + * audio_samprate- audio sample rate + * + * asserts: + * none + * + * returns: pointer to encoder context (NULL on error) + */ +encoder_context_t *encoder_get_context( + int input_format, + int video_codec_ind, + int audio_codec_ind, + int muxer_id, + int video_width, + int video_height, + int fps_num, + int fps_den, + int audio_channels, + int audio_samprate); + +/* + * initialization of the file muxer + * args: + * encoder_ctx - pointer to encoder context + * filename - video filename + * + * asserts: + * encoder_ctx is not null + * + * returns: none + */ +void encoder_muxer_init(encoder_context_t *encoder_ctx, const char *filename); + +/* + * close the file muxer + * args: + * encoder_ctx - pointer to encoder context + * + * asserts: + * none + * + * returns: none + */ +void encoder_muxer_close(encoder_context_t *encoder_ctx); + +/* + * get video list codec entry for codec index + * args: + * codec_ind - codec list index + * + * asserts: + * none + * + * returns: list codec entry or NULL if none + */ +video_codec_t *encoder_get_video_codec_defaults(int codec_ind); + +/* + * get audio list codec entry for codec index + * args: + * codec_ind - codec list index + * + * asserts: + * none + * + * returns: audio list codec entry or NULL if none + */ +audio_codec_t *encoder_get_audio_codec_defaults(int codec_ind); + +/* + * checks if the video codec index corresponds to VP8 (webm) codec + * args: + * codec_ind - video codec list index + * + * asserts: + * none + * + * returns: 1 true; 0 false + */ +int encoder_check_webm_video_codec(int codec_ind); + +/* + * get video codec list index for avi 4cc + * args: + * codec_4cc - codec 4cc + * + * asserts: + * none + * + * returns: codec index or -1 if error + */ +int encoder_get_video_codec_ind_4cc(const char *codec_4cc); + +/* + * get video compressor (avi 4cc code) + * args: + * codec_ind - codec list index + * + * asserts: + * none + * + * returns: compressor codec entry or NULL if none + */ +const char *encoder_get_video_codec_4cc(int codec_ind); + +/* + * get audio codec name + * args: + * codec_ind - codec list index + * + * asserts: + * none + * + * returns: codec name entry + */ +const char *encoder_get_audio_codec_name(int codec_ind); + +/* + * get audio sample format max value + * args: + * none + * + * returns the maximum audio sample format value + */ +int encoder_get_max_audio_sample_fmt(); + +/* + * get audio codec list index for codec name + * args: + * codec_name - codec common name + * + * asserts: + * none + * + * returns: codec index or -1 if error + */ +int encoder_get_audio_codec_ind_name(const char *codec_name); + +/* + * get the audio encoder frame size + * args: + * encoder_ctx - pointer to encoder context + * + * asserts: + * encoder_ctx is not null + * + * returns: audio encoder frame size + */ +int encoder_get_audio_frame_size(encoder_context_t *encoder_ctx); + +/* + * get the audio encoder input sample format + * args: + * encoder_ctx - pointer to encoder context + * + * asserts: + * encoder_ctx is not null + * + * returns: audio encoder sample format + */ +int encoder_get_audio_sample_fmt(encoder_context_t *encoder_ctx); + +/* + * get the video codec index for VP8 (webm) codec + * args: + * none + * + * asserts: + * none + * + * returns: index for VP8 codec or -1 if error + */ +int encoder_get_webm_video_codec_index(); + +/* + * checks if the audio codec index corresponds to Vorbis (webm) codec + * args: + * codec_ind - audio codec list index + * + * asserts: + * none + * + * returns: 1 true; 0 false + */ +int encoder_check_webm_audio_codec(int codec_ind); + +/* + * get the audio codec index for Vorbis (webm) codec + * args: + * none + * + * asserts: + * none + * + * returns: index for Vorbis codec or -1 if error + */ +int encoder_get_webm_audio_codec_index(); + +/* + * get the mkv codec private data + * args: + * codec_ind - codec list index + * + * asserts: + * none + * + * returns: pointer to mkvCodecPriv data + */ +void *encoder_get_video_mkvCodecPriv(int codec_ind); + +/* + * set the video codec mkv private data + * args: + * encoder_ctx - pointer to encoder context + * + * asserts: + * encoder_ctx is not null + * + * returns: mkvCodecPriv size + */ +int encoder_set_video_mkvCodecPriv(encoder_context_t *encoder_ctx); + +/* + * get the mkv codec private data + * args: + * codec_ind - codec list index + * + * asserts: + * none + * + * returns: pointer to mkvCodecPriv data + */ +void *encoder_get_audio_mkvCodecPriv(int codec_ind); + +/* + * set the audio codec mkv private data + * args: + * encoder_ctx - pointer to encoder context + * + * asserts: + * encoder_ctx is not null + * + * returns: mkvCodecPriv size + */ +int encoder_set_audio_mkvCodecPriv(encoder_context_t *encoder_ctx); + +/* + * get an estimated write loop sleep time to avoid a ring buffer overrun + * args: + * mode: scheduler mode: + * 0 - linear funtion; 1 - exponencial funtion + * thresh: ring buffer threshold in wich scheduler becomes active: + * [0.2 (20%) - 0.9 (90%)] + * max_time - maximum scheduler time (in ms) + * + * asserts: + * none + * + * returns: estimate sleep time (nanosec) + */ +uint32_t encoder_buff_scheduler(int mode, double thresh, int max_time); + +/* + * store unprocessed input video frame in video ring buffer + * args: + * frame - pointer to unprocessed frame data + * size - frame size (in bytes) + * timestamp - frame timestamp (in nanosec) + * isKeyframe - flag if it's a key(IDR) frame + * + * asserts: + * none + * + * returns: error code + */ +int encoder_add_video_frame(uint8_t *frame, int size, int64_t timestamp, int isKeyframe); + +/* + * process next video frame on the ring buffer (encode and mux to file) + * args: + * encoder_ctx - pointer to encoder context + * + * asserts: + * encoder_ctx is not null + * + * returns: error code + */ +int encoder_process_next_video_buffer(encoder_context_t *encoder_ctx); + +/* + * process all used video frames from buffer + * args: + * encoder_ctx - pointer to encoder context + * + * asserts: + * encoder_ctx is not null + * + * returns: error code + */ +int encoder_flush_video_buffer(encoder_context_t *encoder_ctx); + +/* + * process audio buffer (encode and mux to file) + * args: + * encoder_ctx - pointer to encoder context + * data - audio buffer + * + * asserts: + * encoder_ctx is not null + * + * returns: error code + */ +int encoder_process_audio_buffer(encoder_context_t *encoder_ctx, void *data); + +/* + * process all delayed audio frames from libavcodec + * args: + * encoder_ctx - pointer to encoder context + * + * asserts: + * encoder_ctx is not null + * + * returns: error code + */ +int encoder_flush_audio_buffer(encoder_context_t *encoder_ctx); + +/* + * encode video frame + * args: + * encoder_ctx - pointer to encoder context + * yuv_frame - yuyv input frame + * + * asserts: + * none + * + * returns: encoded buffer size + */ +int encoder_encode_video(encoder_context_t *encoder_ctx, void *yuv_frame); + +/* + * encode audio + * args: + * encoder_ctx - pointer to encoder context + * audio_data - pointer to audio pcm data + * + * asserts: + * none + * + * returns: encoded buffer size + */ +int encoder_encode_audio(encoder_context_t *encoder_ctx, void *audio_data); + +/* + * close and clean encoder context + * args: + * encoder_ctx - pointer to encoder context data + * + * asserts: + * none + * + * returns: none + */ +void encoder_close(encoder_context_t *encoder_ctx); + +/* + * mux a video frame + * args: + * encoder_ctx - pointer to encoder context + * + * asserts: + * encoder_ctx is not null; + * + * returns: none + */ +int encoder_write_video_data(encoder_context_t *encoder_ctx); + +/* + * mux a audio frame + * args: + * encoder_ctx - pointer to encoder context + * + * asserts: + * encoder_ctx is not null; + * + * returns: none + */ +int encoder_write_audio_data(encoder_context_t *encoder_ctx); + +/* + * function to determine if enought free space is available + * args: + * treshold: limit treshold in Kbytes (min. free space) + * + * asserts: + * none + * + * returns: 1 if still enough free space left on disk + * 0 otherwise + */ +int encoder_disk_supervisor(int treshold, const char *path); + +__END_DECLS + +#endif diff -Nru guvcview-1.7.3/gview_encoder/libav_encoder.c guvcview-2.0.1+ubuntu1~ppa1/gview_encoder/libav_encoder.c --- guvcview-1.7.3/gview_encoder/libav_encoder.c 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/gview_encoder/libav_encoder.c 2014-10-05 10:41:44.000000000 +0000 @@ -0,0 +1,131 @@ +/*******************************************************************************# +# guvcview http://guvcview.sourceforge.net # +# # +# Paulo Assis # +# George Sedov # +# - Threaded encoding # +# # +# This program is free software; you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation; either version 2 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program; if not, write to the Free Software # +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # +# # +********************************************************************************/ + +#include +#include +#include +#include +#include +#include +#include +#include +/* support for internationalization - i18n */ +#include +#include + +#include "gviewencoder.h" +#include "encoder.h" + +#define AV_RB16(x) \ + ((((const uint8_t*)(x))[0] << 8) | \ + ((const uint8_t*)(x))[1]) + + +/* + * set yu12 frame in codec data frame + * args: + * video_codec_data - pointer to video codec data + * inp - input data (yu12) + * width - frame width + * height - frame height + * + * asserts: + * video_codec_data is not null + * inp is not null + * + * returns: none + */ +void prepare_video_frame(encoder_codec_data_t *video_codec_data, uint8_t *inp, int width, int height) +{ + /*assertions*/ + assert(video_codec_data); + assert(inp); + + int size = width * height; + + video_codec_data->frame->data[0] = inp; //Y + video_codec_data->frame->data[1] = inp + size; //U + video_codec_data->frame->data[2] = video_codec_data->frame->data[1] + size/4; //V + video_codec_data->frame->linesize[0] = width; + video_codec_data->frame->linesize[1] = width / 2; + video_codec_data->frame->linesize[2] = width / 2; +} + +/* + * split xiph headers from libav private data + * args: + * extradata - libav codec private data + * extradata_size - codec private data size + * first_header_size - first header size + * header_start - first 3 bytes of header + * header_len - header length + * + * asserts: + * none + * + * returns: error code + */ +int avpriv_split_xiph_headers( + uint8_t *extradata, + int extradata_size, + int first_header_size, + uint8_t *header_start[3], + int header_len[3]) +{ + int i; + + if (extradata_size >= 6 && AV_RB16(extradata) == first_header_size) { + int overall_len = 6; + for (i=0; i<3; i++) { + header_len[i] = AV_RB16(extradata); + extradata += 2; + header_start[i] = extradata; + extradata += header_len[i]; + if (overall_len > extradata_size - header_len[i]) + return -1; + overall_len += header_len[i]; + } + } else if (extradata_size >= 3 && extradata_size < INT_MAX - 0x1ff && extradata[0] == 2) { + int overall_len = 3; + extradata++; + for (i=0; i<2; i++, extradata++) { + header_len[i] = 0; + for (; overall_len < extradata_size && *extradata==0xff; extradata++) { + header_len[i] += 0xff; + overall_len += 0xff + 1; + } + header_len[i] += *extradata; + overall_len += *extradata; + if (overall_len > extradata_size) + return -1; + } + header_len[2] = extradata_size - overall_len; + header_start[0] = extradata; + header_start[1] = header_start[0] + header_len[0]; + header_start[2] = header_start[1] + header_len[1]; + } else { + return -1; + } + return 0; +} + diff -Nru guvcview-1.7.3/gview_encoder/Makefile.am guvcview-2.0.1+ubuntu1~ppa1/gview_encoder/Makefile.am --- guvcview-1.7.3/gview_encoder/Makefile.am 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/gview_encoder/Makefile.am 2014-10-05 10:41:44.000000000 +0000 @@ -0,0 +1,34 @@ +## Process this file with automake to produce Makefile.in + +# Public headers +h_sources = gviewencoder.h + +c_sources = encoder.c \ + video_codecs.c \ + audio_codecs.c \ + libav_encoder.c \ + stream_io.c \ + file_io.c \ + matroska.c \ + avi.c \ + muxer.c + + +#Install the headers in a versioned directory - guvcvideo-x.x/libgviewaudio: +library_includedir=$(includedir)/$(PACKAGE)-$(PACKAGE_RELEASE)/$(GVIEWENCODER_LIBRARY_NAME) +library_include_HEADERS = $(h_sources) + +#AM_CFLAGS = + +lib_LTLIBRARIES= libgviewencoder.la + +libgviewencoder_la_SOURCES= $(h_sources) $(c_sources) + +libgviewencoder_la_CFLAGS = $(GVIEWENCODER_CFLAGS) \ + $(PTHREAD_CFLAGS) \ + -I$(top_srcdir) \ + -I$(top_srcdir)/includes + +libgviewencoder_la_LIBADD= $(GVIEWENCODER_LIBS) $(GSL_LIBS) $(PTHREAD_LIBS) -lm + +libgviewencoder_la_LDFLAGS= -version-info $(GVIEWENCODER_LIBRARY_VERSION) -release $(GVIEWENCODER_API_VERSION) \ No newline at end of file diff -Nru guvcview-1.7.3/gview_encoder/Makefile.in guvcview-2.0.1+ubuntu1~ppa1/gview_encoder/Makefile.in --- guvcview-1.7.3/gview_encoder/Makefile.in 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/gview_encoder/Makefile.in 2014-10-05 10:41:44.000000000 +0000 @@ -0,0 +1,833 @@ +# Makefile.in generated by automake 1.14.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + + +VPATH = @srcdir@ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = gview_encoder +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(top_srcdir)/depcomp $(library_include_HEADERS) +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/acx_pthread.m4 \ + $(top_srcdir)/m4/intltool.m4 $(top_srcdir)/m4/libtool.m4 \ + $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ + $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ + $(top_srcdir)/m4/nls.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } +am__installdirs = "$(DESTDIR)$(libdir)" \ + "$(DESTDIR)$(library_includedir)" +LTLIBRARIES = $(lib_LTLIBRARIES) +am__DEPENDENCIES_1 = +libgviewencoder_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) +am__objects_1 = +am__objects_2 = libgviewencoder_la-encoder.lo \ + libgviewencoder_la-video_codecs.lo \ + libgviewencoder_la-audio_codecs.lo \ + libgviewencoder_la-libav_encoder.lo \ + libgviewencoder_la-stream_io.lo libgviewencoder_la-file_io.lo \ + libgviewencoder_la-matroska.lo libgviewencoder_la-avi.lo \ + libgviewencoder_la-muxer.lo +am_libgviewencoder_la_OBJECTS = $(am__objects_1) $(am__objects_2) +libgviewencoder_la_OBJECTS = $(am_libgviewencoder_la_OBJECTS) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = +libgviewencoder_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ + $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ + $(libgviewencoder_la_CFLAGS) $(CFLAGS) \ + $(libgviewencoder_la_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) +depcomp = $(SHELL) $(top_srcdir)/depcomp +am__depfiles_maybe = depfiles +am__mv = mv -f +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = +CCLD = $(CC) +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = +SOURCES = $(libgviewencoder_la_SOURCES) +DIST_SOURCES = $(libgviewencoder_la_SOURCES) +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +HEADERS = $(library_include_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` +ETAGS = etags +CTAGS = ctags +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +ALL_LINGUAS = @ALL_LINGUAS@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CATALOGS = @CATALOGS@ +CATOBJEXT = @CATOBJEXT@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DATADIRNAME = @DATADIRNAME@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GETTEXT_PACKAGE_V4L2CORE = @GETTEXT_PACKAGE_V4L2CORE@ +GMOFILES = @GMOFILES@ +GMSGFMT = @GMSGFMT@ +GREP = @GREP@ +GSL_CFLAGS = @GSL_CFLAGS@ +GSL_LIBS = @GSL_LIBS@ +GUVCVIEW_CFLAGS = @GUVCVIEW_CFLAGS@ +GUVCVIEW_LIBS = @GUVCVIEW_LIBS@ +GVIEWAUDIO_API_VERSION = @GVIEWAUDIO_API_VERSION@ +GVIEWAUDIO_CFLAGS = @GVIEWAUDIO_CFLAGS@ +GVIEWAUDIO_LD_NAME = @GVIEWAUDIO_LD_NAME@ +GVIEWAUDIO_LIBRARY_NAME = @GVIEWAUDIO_LIBRARY_NAME@ +GVIEWAUDIO_LIBRARY_VERSION = @GVIEWAUDIO_LIBRARY_VERSION@ +GVIEWAUDIO_LIBS = @GVIEWAUDIO_LIBS@ +GVIEWENCODER_API_VERSION = @GVIEWENCODER_API_VERSION@ +GVIEWENCODER_CFLAGS = @GVIEWENCODER_CFLAGS@ +GVIEWENCODER_LD_NAME = @GVIEWENCODER_LD_NAME@ +GVIEWENCODER_LIBRARY_NAME = @GVIEWENCODER_LIBRARY_NAME@ +GVIEWENCODER_LIBRARY_VERSION = @GVIEWENCODER_LIBRARY_VERSION@ +GVIEWENCODER_LIBS = @GVIEWENCODER_LIBS@ +GVIEWRENDER_API_VERSION = @GVIEWRENDER_API_VERSION@ +GVIEWRENDER_CFLAGS = @GVIEWRENDER_CFLAGS@ +GVIEWRENDER_LD_NAME = @GVIEWRENDER_LD_NAME@ +GVIEWRENDER_LIBRARY_NAME = @GVIEWRENDER_LIBRARY_NAME@ +GVIEWRENDER_LIBRARY_VERSION = @GVIEWRENDER_LIBRARY_VERSION@ +GVIEWRENDER_LIBS = @GVIEWRENDER_LIBS@ +GVIEWV4L2CORE_API_VERSION = @GVIEWV4L2CORE_API_VERSION@ +GVIEWV4L2CORE_CFLAGS = @GVIEWV4L2CORE_CFLAGS@ +GVIEWV4L2CORE_LD_NAME = @GVIEWV4L2CORE_LD_NAME@ +GVIEWV4L2CORE_LIBRARY_NAME = @GVIEWV4L2CORE_LIBRARY_NAME@ +GVIEWV4L2CORE_LIBRARY_VERSION = @GVIEWV4L2CORE_LIBRARY_VERSION@ +GVIEWV4L2CORE_LIBS = @GVIEWV4L2CORE_LIBS@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +INSTOBJEXT = @INSTOBJEXT@ +INTLLIBS = @INTLLIBS@ +INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ +INTLTOOL_MERGE = @INTLTOOL_MERGE@ +INTLTOOL_PERL = @INTLTOOL_PERL@ +INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ +INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ +INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ +INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ +INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +MKINSTALLDIRS = @MKINSTALLDIRS@ +MSGFMT = @MSGFMT@ +MSGFMT_OPTS = @MSGFMT_OPTS@ +MSGMERGE = @MSGMERGE@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_RELEASE = @PACKAGE_RELEASE@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +POFILES = @POFILES@ +POSUB = @POSUB@ +PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ +PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ +PTHREAD_CC = @PTHREAD_CC@ +PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ +PTHREAD_LIBS = @PTHREAD_LIBS@ +PULSE_CFLAGS = @PULSE_CFLAGS@ +PULSE_LIBS = @PULSE_LIBS@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +USE_NLS = @USE_NLS@ +VERSION = @VERSION@ +XGETTEXT = @XGETTEXT@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +acx_pthread_config = @acx_pthread_config@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +intltool__v_merge_options_ = @intltool__v_merge_options_@ +intltool__v_merge_options_0 = @intltool__v_merge_options_0@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ + +# Public headers +h_sources = gviewencoder.h +c_sources = encoder.c \ + video_codecs.c \ + audio_codecs.c \ + libav_encoder.c \ + stream_io.c \ + file_io.c \ + matroska.c \ + avi.c \ + muxer.c + + +#Install the headers in a versioned directory - guvcvideo-x.x/libgviewaudio: +library_includedir = $(includedir)/$(PACKAGE)-$(PACKAGE_RELEASE)/$(GVIEWENCODER_LIBRARY_NAME) +library_include_HEADERS = $(h_sources) + +#AM_CFLAGS = +lib_LTLIBRARIES = libgviewencoder.la +libgviewencoder_la_SOURCES = $(h_sources) $(c_sources) +libgviewencoder_la_CFLAGS = $(GVIEWENCODER_CFLAGS) \ + $(PTHREAD_CFLAGS) \ + -I$(top_srcdir) \ + -I$(top_srcdir)/includes + +libgviewencoder_la_LIBADD = $(GVIEWENCODER_LIBS) $(GSL_LIBS) $(PTHREAD_LIBS) -lm +libgviewencoder_la_LDFLAGS = -version-info $(GVIEWENCODER_LIBRARY_VERSION) -release $(GVIEWENCODER_API_VERSION) +all: all-am + +.SUFFIXES: +.SUFFIXES: .c .lo .o .obj +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign gview_encoder/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign gview_encoder/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +install-libLTLIBRARIES: $(lib_LTLIBRARIES) + @$(NORMAL_INSTALL) + @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ + list2=; for p in $$list; do \ + if test -f $$p; then \ + list2="$$list2 $$p"; \ + else :; fi; \ + done; \ + test -z "$$list2" || { \ + echo " $(MKDIR_P) '$(DESTDIR)$(libdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(libdir)" || exit 1; \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \ + } + +uninstall-libLTLIBRARIES: + @$(NORMAL_UNINSTALL) + @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ + for p in $$list; do \ + $(am__strip_dir) \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \ + done + +clean-libLTLIBRARIES: + -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) + @list='$(lib_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + +libgviewencoder.la: $(libgviewencoder_la_OBJECTS) $(libgviewencoder_la_DEPENDENCIES) $(EXTRA_libgviewencoder_la_DEPENDENCIES) + $(AM_V_CCLD)$(libgviewencoder_la_LINK) -rpath $(libdir) $(libgviewencoder_la_OBJECTS) $(libgviewencoder_la_LIBADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgviewencoder_la-audio_codecs.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgviewencoder_la-avi.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgviewencoder_la-encoder.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgviewencoder_la-file_io.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgviewencoder_la-libav_encoder.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgviewencoder_la-matroska.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgviewencoder_la-muxer.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgviewencoder_la-stream_io.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgviewencoder_la-video_codecs.Plo@am__quote@ + +.c.o: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< + +.c.obj: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` + +.c.lo: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< + +libgviewencoder_la-encoder.lo: encoder.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgviewencoder_la_CFLAGS) $(CFLAGS) -MT libgviewencoder_la-encoder.lo -MD -MP -MF $(DEPDIR)/libgviewencoder_la-encoder.Tpo -c -o libgviewencoder_la-encoder.lo `test -f 'encoder.c' || echo '$(srcdir)/'`encoder.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgviewencoder_la-encoder.Tpo $(DEPDIR)/libgviewencoder_la-encoder.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='encoder.c' object='libgviewencoder_la-encoder.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgviewencoder_la_CFLAGS) $(CFLAGS) -c -o libgviewencoder_la-encoder.lo `test -f 'encoder.c' || echo '$(srcdir)/'`encoder.c + +libgviewencoder_la-video_codecs.lo: video_codecs.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgviewencoder_la_CFLAGS) $(CFLAGS) -MT libgviewencoder_la-video_codecs.lo -MD -MP -MF $(DEPDIR)/libgviewencoder_la-video_codecs.Tpo -c -o libgviewencoder_la-video_codecs.lo `test -f 'video_codecs.c' || echo '$(srcdir)/'`video_codecs.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgviewencoder_la-video_codecs.Tpo $(DEPDIR)/libgviewencoder_la-video_codecs.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='video_codecs.c' object='libgviewencoder_la-video_codecs.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgviewencoder_la_CFLAGS) $(CFLAGS) -c -o libgviewencoder_la-video_codecs.lo `test -f 'video_codecs.c' || echo '$(srcdir)/'`video_codecs.c + +libgviewencoder_la-audio_codecs.lo: audio_codecs.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgviewencoder_la_CFLAGS) $(CFLAGS) -MT libgviewencoder_la-audio_codecs.lo -MD -MP -MF $(DEPDIR)/libgviewencoder_la-audio_codecs.Tpo -c -o libgviewencoder_la-audio_codecs.lo `test -f 'audio_codecs.c' || echo '$(srcdir)/'`audio_codecs.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgviewencoder_la-audio_codecs.Tpo $(DEPDIR)/libgviewencoder_la-audio_codecs.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='audio_codecs.c' object='libgviewencoder_la-audio_codecs.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgviewencoder_la_CFLAGS) $(CFLAGS) -c -o libgviewencoder_la-audio_codecs.lo `test -f 'audio_codecs.c' || echo '$(srcdir)/'`audio_codecs.c + +libgviewencoder_la-libav_encoder.lo: libav_encoder.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgviewencoder_la_CFLAGS) $(CFLAGS) -MT libgviewencoder_la-libav_encoder.lo -MD -MP -MF $(DEPDIR)/libgviewencoder_la-libav_encoder.Tpo -c -o libgviewencoder_la-libav_encoder.lo `test -f 'libav_encoder.c' || echo '$(srcdir)/'`libav_encoder.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgviewencoder_la-libav_encoder.Tpo $(DEPDIR)/libgviewencoder_la-libav_encoder.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libav_encoder.c' object='libgviewencoder_la-libav_encoder.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgviewencoder_la_CFLAGS) $(CFLAGS) -c -o libgviewencoder_la-libav_encoder.lo `test -f 'libav_encoder.c' || echo '$(srcdir)/'`libav_encoder.c + +libgviewencoder_la-stream_io.lo: stream_io.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgviewencoder_la_CFLAGS) $(CFLAGS) -MT libgviewencoder_la-stream_io.lo -MD -MP -MF $(DEPDIR)/libgviewencoder_la-stream_io.Tpo -c -o libgviewencoder_la-stream_io.lo `test -f 'stream_io.c' || echo '$(srcdir)/'`stream_io.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgviewencoder_la-stream_io.Tpo $(DEPDIR)/libgviewencoder_la-stream_io.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='stream_io.c' object='libgviewencoder_la-stream_io.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgviewencoder_la_CFLAGS) $(CFLAGS) -c -o libgviewencoder_la-stream_io.lo `test -f 'stream_io.c' || echo '$(srcdir)/'`stream_io.c + +libgviewencoder_la-file_io.lo: file_io.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgviewencoder_la_CFLAGS) $(CFLAGS) -MT libgviewencoder_la-file_io.lo -MD -MP -MF $(DEPDIR)/libgviewencoder_la-file_io.Tpo -c -o libgviewencoder_la-file_io.lo `test -f 'file_io.c' || echo '$(srcdir)/'`file_io.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgviewencoder_la-file_io.Tpo $(DEPDIR)/libgviewencoder_la-file_io.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='file_io.c' object='libgviewencoder_la-file_io.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgviewencoder_la_CFLAGS) $(CFLAGS) -c -o libgviewencoder_la-file_io.lo `test -f 'file_io.c' || echo '$(srcdir)/'`file_io.c + +libgviewencoder_la-matroska.lo: matroska.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgviewencoder_la_CFLAGS) $(CFLAGS) -MT libgviewencoder_la-matroska.lo -MD -MP -MF $(DEPDIR)/libgviewencoder_la-matroska.Tpo -c -o libgviewencoder_la-matroska.lo `test -f 'matroska.c' || echo '$(srcdir)/'`matroska.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgviewencoder_la-matroska.Tpo $(DEPDIR)/libgviewencoder_la-matroska.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='matroska.c' object='libgviewencoder_la-matroska.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgviewencoder_la_CFLAGS) $(CFLAGS) -c -o libgviewencoder_la-matroska.lo `test -f 'matroska.c' || echo '$(srcdir)/'`matroska.c + +libgviewencoder_la-avi.lo: avi.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgviewencoder_la_CFLAGS) $(CFLAGS) -MT libgviewencoder_la-avi.lo -MD -MP -MF $(DEPDIR)/libgviewencoder_la-avi.Tpo -c -o libgviewencoder_la-avi.lo `test -f 'avi.c' || echo '$(srcdir)/'`avi.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgviewencoder_la-avi.Tpo $(DEPDIR)/libgviewencoder_la-avi.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='avi.c' object='libgviewencoder_la-avi.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgviewencoder_la_CFLAGS) $(CFLAGS) -c -o libgviewencoder_la-avi.lo `test -f 'avi.c' || echo '$(srcdir)/'`avi.c + +libgviewencoder_la-muxer.lo: muxer.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgviewencoder_la_CFLAGS) $(CFLAGS) -MT libgviewencoder_la-muxer.lo -MD -MP -MF $(DEPDIR)/libgviewencoder_la-muxer.Tpo -c -o libgviewencoder_la-muxer.lo `test -f 'muxer.c' || echo '$(srcdir)/'`muxer.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgviewencoder_la-muxer.Tpo $(DEPDIR)/libgviewencoder_la-muxer.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='muxer.c' object='libgviewencoder_la-muxer.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgviewencoder_la_CFLAGS) $(CFLAGS) -c -o libgviewencoder_la-muxer.lo `test -f 'muxer.c' || echo '$(srcdir)/'`muxer.c + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +install-library_includeHEADERS: $(library_include_HEADERS) + @$(NORMAL_INSTALL) + @list='$(library_include_HEADERS)'; test -n "$(library_includedir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(library_includedir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(library_includedir)" || exit 1; \ + fi; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(library_includedir)'"; \ + $(INSTALL_HEADER) $$files "$(DESTDIR)$(library_includedir)" || exit $$?; \ + done + +uninstall-library_includeHEADERS: + @$(NORMAL_UNINSTALL) + @list='$(library_include_HEADERS)'; test -n "$(library_includedir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(library_includedir)'; $(am__uninstall_files_from_dir) + +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + set x; \ + here=`pwd`; \ + $(am__define_uniq_tagged_files); \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(LTLIBRARIES) $(HEADERS) +installdirs: + for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(library_includedir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \ + mostlyclean-am + +distclean: distclean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: install-library_includeHEADERS + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: install-libLTLIBRARIES + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-libLTLIBRARIES \ + uninstall-library_includeHEADERS + +.MAKE: install-am install-strip + +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libLTLIBRARIES clean-libtool cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-libLTLIBRARIES \ + install-library_includeHEADERS install-man install-pdf \ + install-pdf-am install-ps install-ps-am install-strip \ + installcheck installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags tags-am uninstall uninstall-am uninstall-libLTLIBRARIES \ + uninstall-library_includeHEADERS + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff -Nru guvcview-1.7.3/gview_encoder/matroska.c guvcview-2.0.1+ubuntu1~ppa1/gview_encoder/matroska.c --- guvcview-1.7.3/gview_encoder/matroska.c 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/gview_encoder/matroska.c 2014-10-05 10:41:44.000000000 +0000 @@ -0,0 +1,1131 @@ +/*******************************************************************************# +# guvcview http://guvcview.sourceforge.net # +# # +# Paulo Assis # +# # +# This is a heavily modified version of the matroska interface from x264 # +# Copyright (C) 2005 Mike Matsnev # +# # +# This program is free software; you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation; either version 2 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program; if not, write to the Free Software # +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # +# # +********************************************************************************/ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +/* support for internationalization - i18n */ +#include +#include + +#include "../config.h" +/*random generator (HAS_GSL is set in ../config.h)*/ +#ifdef HAS_GSL + #include +#endif + +#include "gviewencoder.h" +#include "encoder.h" +#include "stream_io.h" +#include "file_io.h" +#include "matroska.h" +#include "gview.h" + +/* + * default size of pkt ring buffer + * for caching audio frames + * aprox. 2 sec for 44100 samp/sec with + * each buffer containing 1152 samples + * vorbis as 64 samples + */ +#define PKT_BUFFER_DEF_SIZE 78 + +/** 2 bytes * 3 for EBML IDs, 3 1-byte EBML lengths, 8 bytes for 64 bit + * offset, 4 bytes for target EBML ID */ +#define MAX_SEEKENTRY_SIZE 21 + +/** per-cuepoint-track - 3 1-byte EBML IDs, 3 1-byte EBML sizes, 2 + * 8-byte uint max */ +#define MAX_CUETRACKPOS_SIZE 22 + +/** per-cuepoint - 2 1-byte EBML IDs, 2 1-byte EBML sizes, 8-byte uint max */ +#define MAX_CUEPOINT_SIZE(num_tracks) 12 + MAX_CUETRACKPOS_SIZE*num_tracks + +/*default audio frames per buffer*/ +#define AUDBUFF_FRAMES 1152 + +extern int verbosity; + +/** Some utilities for + * float and double conversion to/from int */ +union mkv_union_intfloat32 +{ + uint32_t i; + float f; +}; + +union mkv_union_intfloat64 +{ + uint64_t i; + double f; +}; + +static uint64_t mkv_double2int(double f) +{ + union mkv_union_intfloat64 v; + v.f = f; + return v.i; +} + + +/** get id size */ +static int ebml_id_size(unsigned int id) +{ + int bytes = 4, mask = 0x10; + + while (!(id & (mask << ((bytes - 1) * 8))) && bytes > 0) + { + mask <<= 1; + bytes--; + } + + return bytes; +} + +/** write an id */ +static void mkv_put_ebml_id(mkv_context_t *mkv_ctx, unsigned int id) +{ + int i = ebml_id_size(id); + while (i--) + io_write_w8(mkv_ctx->writer, id >> (i*8)); +} + +/** + * Write an EBML size meaning "unknown size". + * + * @param bytes The number of bytes the size should occupy (maximum: 8). + */ +static void mkv_put_ebml_size_unknown(mkv_context_t *mkv_ctx, int bytes) +{ + if(bytes <= 8) //max is 64 bits + { + io_write_w8(mkv_ctx->writer, 0x1ff >> bytes); + while (--bytes) + io_write_w8(mkv_ctx->writer, 0xff); + } + else + fprintf(stderr, "mkv_ctx: bad unknown size (%i > 8) bytes)\n", bytes); +} + +/** + * Calculate how many bytes are needed to represent a given number in EBML. + */ +static int ebml_num_size(uint64_t num) +{ + int bytes = 1; + while ((num+1) >> bytes*7) + bytes++; + return bytes; +} + +/** + * Write a number in EBML variable length format. + * + * @param bytes The number of bytes that need to be used to write the number. + * If zero, any number of bytes can be used. + */ +static void mkv_put_ebml_num(mkv_context_t *mkv_ctx, uint64_t num, int bytes) +{ + int i, needed_bytes = ebml_num_size(num); + + // sizes larger than this are currently undefined in EBML + if(num >= (1ULL<<56)-1) + { + fprintf(stderr, "ENCODER: (matroska) ebml number: %" PRIu64 "\n", num); + return; + } + + if (bytes == 0) + // don't care how many bytes are used, so use the min + bytes = needed_bytes; + // the bytes needed to write the given size would exceed the bytes + // that we need to use, so write unknown size. This shouldn't happen. + if(bytes < needed_bytes) + { + fprintf(stderr, "ENCODER: (matroska) bad requested size for ebml number: %" PRIu64 " (%i < %i)\n", num, bytes, needed_bytes); + return; + } + + num |= 1ULL << bytes*7; + for (i = bytes - 1; i >= 0; i--) + io_write_w8(mkv_ctx->writer, num >> i*8); +} + +static void mkv_put_ebml_uint(mkv_context_t *mkv_ctx, unsigned int elementid, uint64_t val) +{ + int i, bytes = 1; + uint64_t tmp = val; + while (tmp>>=8) bytes++; + + mkv_put_ebml_id(mkv_ctx, elementid); + mkv_put_ebml_num(mkv_ctx, bytes, 0); + for (i = bytes - 1; i >= 0; i--) + io_write_w8(mkv_ctx->writer, val >> i*8); +} + +static void mkv_put_ebml_float(mkv_context_t *mkv_ctx, unsigned int elementid, double val) +{ + mkv_put_ebml_id(mkv_ctx, elementid); + mkv_put_ebml_num(mkv_ctx, 8, 0); + io_write_wb64(mkv_ctx->writer, mkv_double2int(val)); +} + +static void mkv_put_ebml_binary(mkv_context_t *mkv_ctx, unsigned int elementid, + void *buf, int size) +{ + mkv_put_ebml_id(mkv_ctx, elementid); + mkv_put_ebml_num(mkv_ctx, size, 0); + io_write_buf(mkv_ctx->writer, buf, size); +} + +static void mkv_put_ebml_string(mkv_context_t *mkv_ctx, unsigned int elementid, char *str) +{ + mkv_put_ebml_binary(mkv_ctx, elementid, str, strlen(str)); +} + +/** + * Write a void element of a given size. Useful for reserving space in + * the file to be written to later. + * + * @param size The number of bytes to reserve, which must be at least 2. + */ +static void mkv_put_ebml_void(mkv_context_t *mkv_ctx, uint64_t size) +{ + int64_t currentpos = io_get_offset(mkv_ctx->writer); + + if(size < 2) + { + fprintf(stderr, "ENCODER: (matroska) wrong void size %" PRIu64 " < 2", size); + } + + mkv_put_ebml_id(mkv_ctx, EBML_ID_VOID); + // we need to subtract the length needed to store the size from the + // size we need to reserve so 2 cases, we use 8 bytes to store the + // size if possible, 1 byte otherwise + if (size < 10) + mkv_put_ebml_num(mkv_ctx, size-1, 0); + else + mkv_put_ebml_num(mkv_ctx, size-9, 8); + while(io_get_offset(mkv_ctx->writer) < currentpos + size) + io_write_w8(mkv_ctx->writer, 0); +} + +static ebml_master_t mkv_start_ebml_master(mkv_context_t *mkv_ctx, + unsigned int elementid, + uint64_t expectedsize) +{ + //if 0 reserve max (8 bytes) + int bytes = expectedsize ? ebml_num_size(expectedsize) : 8; + mkv_put_ebml_id(mkv_ctx, elementid); + mkv_put_ebml_size_unknown(mkv_ctx, bytes); + return (ebml_master_t){ io_get_offset(mkv_ctx->writer), bytes }; +} + +static void mkv_end_ebml_master(mkv_context_t *mkv_ctx, ebml_master_t master) +{ + int64_t pos = io_get_offset(mkv_ctx->writer); + + if (io_seek(mkv_ctx->writer, master.pos - master.sizebytes) < 0) + return; + mkv_put_ebml_num(mkv_ctx, pos - master.pos, master.sizebytes); + io_seek(mkv_ctx->writer, pos); +} + +//static void mkv_put_xiph_size(mkv_context_t* mkv_ctx, int size) +//{ +// int i; +// for (i = 0; i < size / 255; i++) +// io_write_w8(mkv_ctx->writer, 255); +// io_write_w8(mkv_ctx->writer, size % 255); +//} + +/** + * Initialize a mkv_seekhead element to be ready to index level 1 Matroska + * elements. If a maximum number of elements is specified, enough space + * will be reserved at the current file location to write a seek head of + * that size. + * + * @param segment_offset The absolute offset to the position in the file + * where the segment begins. + * @param numelements The maximum number of elements that will be indexed + * by this seek head, 0 if unlimited. + */ +static mkv_seekhead_t *mkv_start_seekhead(mkv_context_t *mkv_ctx, + int64_t segment_offset, + int numelements) +{ + mkv_seekhead_t *new_seekhead = calloc(1, sizeof(mkv_seekhead_t)); + if (new_seekhead == NULL) + { + fprintf(stderr, "ENCODER: FATAL memory allocation failure (mkv_start_seekhead): %s\n", strerror(errno)); + exit(-1); + } + + new_seekhead->segment_offset = segment_offset; + + if (numelements > 0) + { + new_seekhead->filepos = io_get_offset(mkv_ctx->writer); + /* + * 21 bytes max for a seek entry, 10 bytes max for the SeekHead ID + * and size, and 3 bytes to guarantee that an EBML void element + * will fit afterwards + */ + new_seekhead->reserved_size = numelements * MAX_SEEKENTRY_SIZE + 13; + new_seekhead->max_entries = numelements; + mkv_put_ebml_void(mkv_ctx, new_seekhead->reserved_size); + } + return new_seekhead; +} + +static int mkv_add_seekhead_entry(mkv_seekhead_t *seekhead, + unsigned int elementid, + uint64_t filepos) +{ + mkv_seekhead_entry_t *entries = seekhead->entries; + fprintf(stderr,"ENCODER: (matroska) add seekhead entry %i (max %i)\n", seekhead->num_entries, seekhead->max_entries); + /* don't store more elements than we reserved space for*/ + if (seekhead->max_entries > 0 && seekhead->max_entries <= seekhead->num_entries) + return -1; + + entries = realloc(entries, (seekhead->num_entries + 1) * sizeof(mkv_seekhead_entry_t)); + if (entries == NULL) + { + fprintf(stderr, "ENCODER: FATAL memory allocation failure (mkv_add_seekhead_entry): %s\n", strerror(errno)); + exit(-1); + } + + entries[seekhead->num_entries].elementid = elementid; + entries[seekhead->num_entries].segmentpos = filepos - seekhead->segment_offset; + + seekhead->num_entries++; + + seekhead->entries = entries; + return 0; +} + +/** + * Write the seek head to the file and free it. If a maximum number of + * elements was specified to mkv_start_seekhead(), the seek head will + * be written at the location reserved for it. Otherwise, it is written + * at the current location in the file. + * + * @return The file offset where the seekhead was written, + * -1 if an error occurred. + */ +static int64_t mkv_write_seekhead(mkv_context_t* mkv_ctx, mkv_seekhead_t *seekhead) +{ + ebml_master_t metaseek, seekentry; + int64_t currentpos; + int i; + + currentpos = io_get_offset(mkv_ctx->writer); + + if (seekhead->reserved_size > 0) + { + if (io_seek(mkv_ctx->writer, seekhead->filepos) < 0) + { + fprintf(stderr, "ENCODER: (matroska) failed to write seekhead at pos %" PRIu64 "\n", seekhead->filepos); + currentpos = -1; + goto fail; + } + } + + metaseek = mkv_start_ebml_master(mkv_ctx, MATROSKA_ID_SEEKHEAD, seekhead->reserved_size); + for (i = 0; i < seekhead->num_entries; i++) + { + mkv_seekhead_entry_t *entry = &seekhead->entries[i]; + + seekentry = mkv_start_ebml_master(mkv_ctx, MATROSKA_ID_SEEKENTRY, MAX_SEEKENTRY_SIZE); + + mkv_put_ebml_id(mkv_ctx, MATROSKA_ID_SEEKID); + mkv_put_ebml_num(mkv_ctx, ebml_id_size(entry->elementid), 0); + mkv_put_ebml_id(mkv_ctx, entry->elementid); + + mkv_put_ebml_uint(mkv_ctx, MATROSKA_ID_SEEKPOSITION, entry->segmentpos); + mkv_end_ebml_master(mkv_ctx, seekentry); + } + mkv_end_ebml_master(mkv_ctx, metaseek); + + if (seekhead->reserved_size > 0) { + uint64_t remaining = seekhead->filepos + seekhead->reserved_size - io_get_offset(mkv_ctx->writer); + mkv_put_ebml_void(mkv_ctx, remaining); + io_seek(mkv_ctx->writer, currentpos); + + currentpos = seekhead->filepos; + } +fail: + free(seekhead->entries); + free(seekhead); + + return currentpos; +} + +static mkv_cues_t *mkv_start_cues(int64_t segment_offset) +{ + mkv_cues_t *cues = calloc(1, sizeof(mkv_cues_t)); + if (cues == NULL) + { + fprintf(stderr, "ENCODER: FATAL memory allocation failure (mkv_start_cues): %s\n", strerror(errno)); + exit(-1); + } + + cues->segment_offset = segment_offset; + return cues; +} + +static int mkv_add_cuepoint(mkv_cues_t *cues, int stream, int64_t ts, int64_t cluster_pos) +{ + mkv_cuepoint_t *entries = cues->entries; + + if (ts < 0) + return 0; + + entries = realloc(entries, (cues->num_entries + 1) * sizeof(mkv_cuepoint_t)); + + if (entries == NULL) + { + fprintf(stderr, "ENCODER: FATAL memory allocation failure (mkv_add_cuepoint): %s\n", strerror(errno)); + exit(-1); + } + + entries[cues->num_entries].pts = ts; + entries[cues->num_entries].tracknum = stream + 1; + entries[cues->num_entries].cluster_pos = cluster_pos - cues->segment_offset; + + cues->num_entries++; + + cues->entries = entries; + return 0; +} + +static int64_t mkv_write_cues(mkv_context_t *mkv_ctx, mkv_cues_t *cues, int num_tracks) +{ + ebml_master_t cues_element; + int64_t currentpos; + int i, j; + + currentpos = io_get_offset(mkv_ctx->writer); + cues_element = mkv_start_ebml_master(mkv_ctx, MATROSKA_ID_CUES, 0); + + for (i = 0; i < cues->num_entries; i++) + { + ebml_master_t cuepoint, track_positions; + mkv_cuepoint_t *entry = &cues->entries[i]; + uint64_t pts = entry->pts; + + cuepoint = mkv_start_ebml_master(mkv_ctx, MATROSKA_ID_POINTENTRY, MAX_CUEPOINT_SIZE(num_tracks)); + mkv_put_ebml_uint(mkv_ctx, MATROSKA_ID_CUETIME, pts); + + // put all the entries from different tracks that have the exact same + // timestamp into the same CuePoint + for (j = 0; j < cues->num_entries - i && entry[j].pts == pts; j++) + { + track_positions = mkv_start_ebml_master(mkv_ctx, MATROSKA_ID_CUETRACKPOSITION, MAX_CUETRACKPOS_SIZE); + mkv_put_ebml_uint(mkv_ctx, MATROSKA_ID_CUETRACK , entry[j].tracknum ); + mkv_put_ebml_uint(mkv_ctx, MATROSKA_ID_CUECLUSTERPOSITION, entry[j].cluster_pos); + mkv_end_ebml_master(mkv_ctx, track_positions); + } + i += j - 1; + mkv_end_ebml_master(mkv_ctx, cuepoint); + } + mkv_end_ebml_master(mkv_ctx, cues_element); + + return currentpos; +} + +static void mkv_write_codecprivate(mkv_context_t *mkv_ctx, stream_io_t *stream) +{ + if (stream->extra_data_size && stream->extra_data != NULL) + mkv_put_ebml_binary(mkv_ctx, MATROSKA_ID_CODECPRIVATE, stream->extra_data, stream->extra_data_size); +} + +static void mkv_write_trackdefaultduration(mkv_context_t *mkv_ctx, stream_io_t *stream) +{ + if(stream->type == STREAM_TYPE_VIDEO) + { + mkv_put_ebml_uint(mkv_ctx, MATROSKA_ID_TRACKDEFAULTDURATION, floor(1E9/stream->fps)); + } +} + +static int mkv_write_tracks(mkv_context_t *mkv_ctx) +{ + ebml_master_t tracks; + int i, ret; + + ret = mkv_add_seekhead_entry(mkv_ctx->main_seekhead, MATROSKA_ID_TRACKS, io_get_offset(mkv_ctx->writer)); + if (ret < 0) return ret; + + tracks = mkv_start_ebml_master(mkv_ctx, MATROSKA_ID_TRACKS, 0); + + for (i = 0; i < mkv_ctx->stream_list_size; i++) + { + stream_io_t *stream = get_stream(mkv_ctx->stream_list, i); + ebml_master_t subinfo, track; + + track = mkv_start_ebml_master(mkv_ctx, MATROSKA_ID_TRACKENTRY, 0); + mkv_put_ebml_uint (mkv_ctx, MATROSKA_ID_TRACKNUMBER , i + 1); + mkv_put_ebml_uint (mkv_ctx, MATROSKA_ID_TRACKUID , i + 1); + mkv_put_ebml_uint (mkv_ctx, MATROSKA_ID_TRACKFLAGLACING , 0); // no lacing (yet) + mkv_put_ebml_uint(mkv_ctx, MATROSKA_ID_TRACKFLAGDEFAULT, 1); + + char* mkv_codec_name; + if(stream->type == STREAM_TYPE_VIDEO) + { + int codec_index = get_video_codec_list_index(stream->codec_id); + if(codec_index < 0) + { + fprintf(stderr, "ENCODER: (matroska) bad video codec index for id:0x%x\n",stream->codec_id); + return -1; + } + mkv_codec_name = (char *) encoder_get_video_mkv_codec(codec_index); + } + else + { + int codec_index = get_audio_codec_list_index(stream->codec_id); + if(codec_index < 0) + { + fprintf(stderr, "ENCODER: (matroska) bad audio codec index for id:0x%x\n",stream->codec_id); + return -1; + } + mkv_codec_name = (char *) encoder_get_audio_mkv_codec(codec_index); + } + + mkv_put_ebml_string(mkv_ctx, MATROSKA_ID_CODECID, mkv_codec_name); + + if (mkv_ctx->mode == ENCODER_MUX_WEBM && !(stream->codec_id == AV_CODEC_ID_VP8 || + stream->codec_id == AV_CODEC_ID_VORBIS)) + { + fprintf(stderr, "ENCODER: (matroska) Only VP8 video and Vorbis audio are supported for WebM.\n"); + return -2; + } + + switch (stream->type) + { + case STREAM_TYPE_VIDEO: + mkv_put_ebml_uint(mkv_ctx, MATROSKA_ID_TRACKTYPE, MATROSKA_TRACK_TYPE_VIDEO); + subinfo = mkv_start_ebml_master(mkv_ctx, MATROSKA_ID_TRACKVIDEO, 0); + // XXX: interlace flag? + mkv_put_ebml_uint (mkv_ctx, MATROSKA_ID_VIDEOPIXELWIDTH , stream->width); + mkv_put_ebml_uint (mkv_ctx, MATROSKA_ID_VIDEOPIXELHEIGHT, stream->height); + mkv_put_ebml_uint(mkv_ctx, MATROSKA_ID_VIDEODISPLAYWIDTH , stream->width); + mkv_put_ebml_uint(mkv_ctx, MATROSKA_ID_VIDEODISPLAYHEIGHT, stream->height); + mkv_put_ebml_uint(mkv_ctx, MATROSKA_ID_VIDEODISPLAYUNIT, 3); + + mkv_end_ebml_master(mkv_ctx, subinfo); + break; + + case STREAM_TYPE_AUDIO: + mkv_put_ebml_uint(mkv_ctx, MATROSKA_ID_TRACKTYPE, MATROSKA_TRACK_TYPE_AUDIO); + + + //no mkv-specific ID, use ACM mode + //put_ebml_string(pb, MATROSKA_ID_CODECID, "A_MS/ACM"); + + subinfo = mkv_start_ebml_master(mkv_ctx, MATROSKA_ID_TRACKAUDIO, 0); + mkv_put_ebml_uint(mkv_ctx, MATROSKA_ID_AUDIOCHANNELS, stream->a_chans); + mkv_put_ebml_float(mkv_ctx, MATROSKA_ID_AUDIOSAMPLINGFREQ, stream->a_rate); + mkv_put_ebml_uint(mkv_ctx, MATROSKA_ID_AUDIOBITDEPTH, stream->a_bits); + mkv_end_ebml_master(mkv_ctx, subinfo); + break; + + default: + fprintf(stderr, "ENCODER: (matroska) Only audio and video are supported by the Matroska muxer.\n"); + break; + } + + mkv_write_codecprivate(mkv_ctx, stream); + mkv_write_trackdefaultduration(mkv_ctx, stream); + + mkv_end_ebml_master(mkv_ctx, track); + } + mkv_put_ebml_void(mkv_ctx, 200); // add some extra space + mkv_end_ebml_master(mkv_ctx, tracks); + return 0; +} + +int mkv_write_header(mkv_context_t *mkv_ctx) +{ + ebml_master_t ebml_header, segment_info; + int ret; + + ebml_header = mkv_start_ebml_master(mkv_ctx, EBML_ID_HEADER, 0); + mkv_put_ebml_uint (mkv_ctx, EBML_ID_EBMLVERSION , 1); + mkv_put_ebml_uint (mkv_ctx, EBML_ID_EBMLREADVERSION , 1); + mkv_put_ebml_uint (mkv_ctx, EBML_ID_EBMLMAXIDLENGTH , 4); + mkv_put_ebml_uint (mkv_ctx, EBML_ID_EBMLMAXSIZELENGTH , 8); + if (mkv_ctx->mode == ENCODER_MUX_WEBM) + mkv_put_ebml_string (mkv_ctx, EBML_ID_DOCTYPE , "webm"); + else + mkv_put_ebml_string (mkv_ctx, EBML_ID_DOCTYPE , "matroska"); + mkv_put_ebml_uint (mkv_ctx, EBML_ID_DOCTYPEVERSION , 2); + mkv_put_ebml_uint (mkv_ctx, EBML_ID_DOCTYPEREADVERSION , 2); + mkv_end_ebml_master(mkv_ctx, ebml_header); + + mkv_ctx->segment = mkv_start_ebml_master(mkv_ctx, MATROSKA_ID_SEGMENT, 0); + mkv_ctx->segment_offset = io_get_offset(mkv_ctx->writer); + + /* + * we write 2 seek heads - one at the end of the file to point to each + * cluster, and one at the beginning to point to all other level one + * elements (including the seek head at the end of the file), which + * isn't more than 10 elements if we only write one of each other + * currently defined level 1 element + */ + mkv_ctx->main_seekhead = mkv_start_seekhead(mkv_ctx, mkv_ctx->segment_offset, 10); + + if (!mkv_ctx->main_seekhead) + { + fprintf(stderr,"ENCODER: (matroska) couldn't allocate seekhead\n"); + return -1; + } + + ret = mkv_add_seekhead_entry(mkv_ctx->main_seekhead, MATROSKA_ID_INFO, io_get_offset(mkv_ctx->writer)); + if (ret < 0) return ret; + + segment_info = mkv_start_ebml_master(mkv_ctx, MATROSKA_ID_INFO, 0); + mkv_put_ebml_uint(mkv_ctx, MATROSKA_ID_TIMECODESCALE, mkv_ctx->timescale); + mkv_put_ebml_string(mkv_ctx, MATROSKA_ID_MUXINGAPP , "Guvcview Muxer-2014.04"); + mkv_put_ebml_string(mkv_ctx, MATROSKA_ID_WRITINGAPP, "Guvcview"); + + int seg_uid[4] = {0,0,0,0}; + /*generate seg uid - 16 byte random int*/ +#ifdef HAS_GSL + /*random generator setup*/ + gsl_rng_env_setup(); + const gsl_rng_type *T = gsl_rng_default; + gsl_rng *r = gsl_rng_alloc (T); + + seg_uid[0] = INT_MIN + (int) lround( INT_MAX * gsl_rng_uniform (r)); + seg_uid[1] = INT_MIN + (int) lround( INT_MAX * gsl_rng_uniform (r)); + seg_uid[2] = INT_MIN + (int) lround( INT_MAX * gsl_rng_uniform (r)); + seg_uid[3] = INT_MIN + (int) lround( INT_MAX * gsl_rng_uniform (r)); + + /*free the random seed generator*/ + gsl_rng_free (r); +#endif + mkv_put_ebml_binary(mkv_ctx, MATROSKA_ID_SEGMENTUID, seg_uid, 16); + + /* reserve space for the duration*/ + mkv_ctx->duration = 0; + mkv_ctx->duration_offset = io_get_offset(mkv_ctx->writer); + mkv_put_ebml_void(mkv_ctx, 11); /* assumes double-precision float to be written*/ + mkv_end_ebml_master(mkv_ctx, segment_info); + + ret = mkv_write_tracks(mkv_ctx); + if (ret < 0) return ret; + + + mkv_ctx->cues = mkv_start_cues(mkv_ctx->segment_offset); + if (mkv_ctx->cues == NULL) + { + fprintf(stderr,"ENCODER: (matroska) couldn't allocate cues\n"); + return -1; + } + + io_flush_buffer(mkv_ctx->writer); + return 0; +} + +static int mkv_processh264_nalu(uint8_t *data, int size) +{ + /*replace 00 00 00 01 (nalu marker) with nalu size*/ + int last_nalu = 0; /*marks last nalu in buffer*/ + int tot_nal = 0; + uint8_t *nal_start = data; + uint8_t *sp = data; + uint8_t *ep = NULL; + uint32_t nal_size = 0; + + while (!last_nalu) + { + nal_size = 0; + + /*search for NALU marker*/ + for(sp = nal_start; sp < data + size - 4; ++sp) + { + if(sp[0] == 0x00 && + sp[1] == 0x00 && + sp[2] == 0x00 && + sp[3] == 0x01) + { + nal_start = sp + 4; + break; + } + } + + /*search for end of NALU*/ + for(ep = nal_start; ep < data + size - 4; ++ep) + { + if(ep[0] == 0x00 && + ep[1] == 0x00 && + ep[2] == 0x00 && + ep[3] == 0x01) + { + nal_size = ep - nal_start; + nal_start = ep;/*reset for next NALU*/ + break; + } + } + + if(!nal_size) + { + last_nalu = 1; + nal_size = data + size - nal_start; + } + + sp[0] = (nal_size >> 24) & 0x000000FF; + sp[1] = (nal_size >> 16) & 0x000000FF; + sp[2] = (nal_size >> 8) & 0x000000FF; + sp[3] = (nal_size) & 0x000000FF; + + tot_nal++; + + } + + return tot_nal; +} + +static int mkv_blockgroup_size(int pkt_size) +{ + int size = pkt_size + 4; + size += ebml_num_size(size); + size += 2; // EBML ID for block and block duration + size += 8; // max size of block duration + size += ebml_num_size(size); + size += 1; // blockgroup EBML ID + return size; +} + +static void mkv_write_block(mkv_context_t* mkv_ctx, + unsigned int blockid, + int stream_index, + uint8_t *data, + int size, + uint64_t pts, + int flags) +{ + stream_io_t *stream = get_stream(mkv_ctx->stream_list, stream_index); + if(stream->codec_id == AV_CODEC_ID_H264 && stream->h264_process) + mkv_processh264_nalu(data, size); + + uint8_t block_flags = 0x00; + + if(!!(flags & AV_PKT_FLAG_KEY)) //for simple block + block_flags |= 0x80; + + mkv_put_ebml_id(mkv_ctx, blockid); + mkv_put_ebml_num(mkv_ctx, size+4, 0); + io_write_w8(mkv_ctx->writer, 0x80 | (stream_index + 1));// this assumes stream_index is less than 126 + io_write_wb16(mkv_ctx->writer, pts - mkv_ctx->cluster_pts); //pts and cluster_pts are scaled + io_write_w8(mkv_ctx->writer, block_flags); + io_write_buf(mkv_ctx->writer, data, size); +} + +static int mkv_write_packet_internal(mkv_context_t* mkv_ctx, + int stream_index, + uint8_t *data, + int size, + int duration, + uint64_t pts, + int flags) +{ + int keyframe = !!(flags & AV_PKT_FLAG_KEY); + + int use_simpleblock = 1; + + uint64_t ts = pts / mkv_ctx->timescale; //scale the time stamp + + stream_io_t *stream = get_stream(mkv_ctx->stream_list, stream_index); + stream->packet_count++; + + if (!mkv_ctx->cluster_pos) + { + mkv_ctx->cluster_pos = io_get_offset(mkv_ctx->writer); + mkv_ctx->cluster = mkv_start_ebml_master(mkv_ctx, MATROSKA_ID_CLUSTER, 0); + mkv_put_ebml_uint(mkv_ctx, MATROSKA_ID_CLUSTERTIMECODE, MAX(0, ts)); + mkv_ctx->cluster_pts = MAX(0, ts); + } + + if(use_simpleblock) + mkv_write_block(mkv_ctx, MATROSKA_ID_SIMPLEBLOCK, stream_index, data, size, ts, flags); + else + { + ebml_master_t blockgroup = mkv_start_ebml_master(mkv_ctx, MATROSKA_ID_BLOCKGROUP, mkv_blockgroup_size(size)); + mkv_write_block(mkv_ctx, MATROSKA_ID_BLOCK, stream_index, data, size, ts, flags); + if(duration) + mkv_put_ebml_uint(mkv_ctx, MATROSKA_ID_BLOCKDURATION, duration); + mkv_end_ebml_master(mkv_ctx, blockgroup); + } + + if (get_stream(mkv_ctx->stream_list, stream_index)->type == STREAM_TYPE_VIDEO && keyframe) + { + //fprintf(stderr,"mkv_ctx: add a cue point\n"); + int ret = mkv_add_cuepoint(mkv_ctx->cues, stream_index, ts, mkv_ctx->cluster_pos); + if (ret < 0) + return ret; + } + + mkv_ctx->duration = MAX(mkv_ctx->duration, ts /*+ duration*/); + return 0; +} + +static int mkv_cache_packet(mkv_context_t* mkv_ctx, + int stream_index, + uint8_t *data, + int size, + int duration, + uint64_t pts, + int flags) +{ + + if(mkv_ctx->pkt_buffer_list[mkv_ctx->pkt_buffer_write_index].data_size > 0) + { + fprintf(stderr,"ENCODER: (matroska) packet buffer [%i] is in use: flushing cached data\n", + mkv_ctx->pkt_buffer_write_index); + + int ret = mkv_write_packet_internal(mkv_ctx, + mkv_ctx->pkt_buffer_list[mkv_ctx->pkt_buffer_write_index].stream_index, + mkv_ctx->pkt_buffer_list[mkv_ctx->pkt_buffer_write_index].data, + mkv_ctx->pkt_buffer_list[mkv_ctx->pkt_buffer_write_index].data_size, + mkv_ctx->pkt_buffer_list[mkv_ctx->pkt_buffer_write_index].duration, + mkv_ctx->pkt_buffer_list[mkv_ctx->pkt_buffer_write_index].pts, + mkv_ctx->pkt_buffer_list[mkv_ctx->pkt_buffer_write_index].flags); + + mkv_ctx->pkt_buffer_list[mkv_ctx->pkt_buffer_write_index].data_size = 0; + /*advance read index to next buffer*/ + mkv_ctx->pkt_buffer_read_index = mkv_ctx->pkt_buffer_write_index; + NEXT_IND(mkv_ctx->pkt_buffer_read_index, mkv_ctx->pkt_buffer_list_size); + + if (ret < 0) + { + fprintf(stderr, "ENCODER: (matroska) Could not write cached audio packet\n"); + return ret; + } + + } + + if(size > mkv_ctx->pkt_buffer_list[mkv_ctx->pkt_buffer_write_index].max_size) + { + mkv_ctx->pkt_buffer_list[mkv_ctx->pkt_buffer_write_index].max_size = size; + + if(mkv_ctx->pkt_buffer_list[mkv_ctx->pkt_buffer_write_index].data == NULL) + mkv_ctx->pkt_buffer_list[mkv_ctx->pkt_buffer_write_index].data = calloc(size, sizeof(uint8_t)); + else + mkv_ctx->pkt_buffer_list[mkv_ctx->pkt_buffer_write_index].data = realloc( + mkv_ctx->pkt_buffer_list[mkv_ctx->pkt_buffer_write_index].data, + size * sizeof(uint8_t)); + } + + if (mkv_ctx->pkt_buffer_list[mkv_ctx->pkt_buffer_write_index].data == NULL) + { + fprintf(stderr, "ENCODER: FATAL memory allocation failure (mkv_cache_packet): %s\n", strerror(errno)); + exit(-1); + } + + + if(verbosity > 3) + printf("ENCODER: (matroska) caching packet [%i]\n", mkv_ctx->pkt_buffer_write_index); + + memcpy(mkv_ctx->pkt_buffer_list[mkv_ctx->pkt_buffer_write_index].data, data, size); + mkv_ctx->pkt_buffer_list[mkv_ctx->pkt_buffer_write_index].data_size = size; + mkv_ctx->pkt_buffer_list[mkv_ctx->pkt_buffer_write_index].duration = duration; + mkv_ctx->pkt_buffer_list[mkv_ctx->pkt_buffer_write_index].pts = pts; + mkv_ctx->pkt_buffer_list[mkv_ctx->pkt_buffer_write_index].flags = flags; + mkv_ctx->pkt_buffer_list[mkv_ctx->pkt_buffer_write_index].stream_index = stream_index; + + NEXT_IND(mkv_ctx->pkt_buffer_write_index, mkv_ctx->pkt_buffer_list_size); + + return 0; +} + +/** public interface */ +int mkv_write_packet(mkv_context_t* mkv_ctx, + int stream_index, + uint8_t *data, + int size, + int duration, + uint64_t pts, + int flags) +{ + int ret, keyframe = !!(flags & AV_PKT_FLAG_KEY); + uint64_t ts = pts; + + ts -= mkv_ctx->first_pts; + + int cluster_size = io_get_offset(mkv_ctx->writer) - mkv_ctx->cluster_pos; + + stream_io_t *stream = get_stream(mkv_ctx->stream_list, stream_index); + + /* check if we have audio packets cached and write them up to video pts*/ + if (stream->type == STREAM_TYPE_VIDEO && + mkv_ctx->pkt_buffer_list_size > 0 && + mkv_ctx->pkt_buffer_list != NULL) + { + while(mkv_ctx->pkt_buffer_list[mkv_ctx->pkt_buffer_read_index].pts < ts && + mkv_ctx->pkt_buffer_list[mkv_ctx->pkt_buffer_read_index].data_size > 0) + { + if(verbosity > 3) + printf("ENCODER: (matroska) writing cached packet[%i] of %i\n", + mkv_ctx->pkt_buffer_read_index, mkv_ctx->pkt_buffer_list_size); + + ret = mkv_write_packet_internal(mkv_ctx, + mkv_ctx->pkt_buffer_list[mkv_ctx->pkt_buffer_read_index].stream_index, + mkv_ctx->pkt_buffer_list[mkv_ctx->pkt_buffer_read_index].data, + mkv_ctx->pkt_buffer_list[mkv_ctx->pkt_buffer_read_index].data_size, + mkv_ctx->pkt_buffer_list[mkv_ctx->pkt_buffer_read_index].duration, + mkv_ctx->pkt_buffer_list[mkv_ctx->pkt_buffer_read_index].pts, + mkv_ctx->pkt_buffer_list[mkv_ctx->pkt_buffer_read_index].flags); + + mkv_ctx->pkt_buffer_list[mkv_ctx->pkt_buffer_read_index].data_size = 0; + /*advance read index*/ + NEXT_IND(mkv_ctx->pkt_buffer_read_index, mkv_ctx->pkt_buffer_list_size); + + if (ret < 0) + { + fprintf(stderr, "ENCODER: (matroska) Could not write cached audio packet\n"); + return ret; + } + } + } + + /* + * start a new cluster every 6 MB and at least 5 sec, + * or on a keyframe, + * or every 3 MB if it is a video packet + */ + if (mkv_ctx->cluster_pos && + ((cluster_size > 6*1024*1024 && ts > mkv_ctx->cluster_pts + 5000) || + (stream->type == STREAM_TYPE_VIDEO && keyframe) || + (stream->type == STREAM_TYPE_VIDEO && cluster_size > 3*1024*1024))) + { + mkv_end_ebml_master(mkv_ctx, mkv_ctx->cluster); + mkv_ctx->cluster_pos = 0; + } + + /* + * buffer audio packets to ensure the packet containing the video + * timecode is contained in the same cluster + */ + if (stream->type == STREAM_TYPE_AUDIO) + ret = mkv_cache_packet(mkv_ctx, stream_index, data, size, duration, ts, flags); + else + ret = mkv_write_packet_internal(mkv_ctx, stream_index, data, size, duration, ts, flags); + + return ret; +} + +int mkv_close(mkv_context_t* mkv_ctx) +{ + int64_t currentpos, cuespos; + int ret; + printf("ENCODER: (matroska) closing context\n"); + + /* check if we have audio packets cached and write them */ + if (mkv_ctx->pkt_buffer_list_size > 0) + { + while(mkv_ctx->pkt_buffer_list[mkv_ctx->pkt_buffer_read_index].data_size > 0) + { + ret = mkv_write_packet_internal(mkv_ctx, + mkv_ctx->pkt_buffer_list[mkv_ctx->pkt_buffer_read_index].stream_index, + mkv_ctx->pkt_buffer_list[mkv_ctx->pkt_buffer_read_index].data, + mkv_ctx->pkt_buffer_list[mkv_ctx->pkt_buffer_read_index].data_size, + mkv_ctx->pkt_buffer_list[mkv_ctx->pkt_buffer_read_index].duration, + mkv_ctx->pkt_buffer_list[mkv_ctx->pkt_buffer_read_index].pts, + mkv_ctx->pkt_buffer_list[mkv_ctx->pkt_buffer_read_index].flags); + + mkv_ctx->pkt_buffer_list[mkv_ctx->pkt_buffer_read_index].data_size = 0; + /*advance read index*/ + NEXT_IND(mkv_ctx->pkt_buffer_read_index, mkv_ctx->pkt_buffer_list_size); + + if (ret < 0) + { + fprintf(stderr, "ENCODER: (matroska) Could not write cached audio packet\n"); + return ret; + } + } + } + + printf("ENCODER: (matroska) closing cluster\n"); + if(mkv_ctx->cluster_pos) + mkv_end_ebml_master(mkv_ctx, mkv_ctx->cluster); + + if (mkv_ctx->cues->num_entries) + { + printf("ENCODER: (matroska)writing cues\n"); + cuespos = mkv_write_cues(mkv_ctx, mkv_ctx->cues, mkv_ctx->stream_list_size); + printf("ENCODER: (matroska)add seekhead\n"); + ret = mkv_add_seekhead_entry(mkv_ctx->main_seekhead, MATROSKA_ID_CUES, cuespos); + if (ret < 0) return ret; + } + printf("ENCODER: (matroska)write seekhead\n"); + mkv_write_seekhead(mkv_ctx, mkv_ctx->main_seekhead); + + // update the duration + fprintf(stderr,"ENCODER: (matroska) end duration = %" PRIu64 " (%f) \n", mkv_ctx->duration, (float) mkv_ctx->duration); + currentpos = io_get_offset(mkv_ctx->writer); + io_seek(mkv_ctx->writer, mkv_ctx->duration_offset); + + mkv_put_ebml_float(mkv_ctx, MATROSKA_ID_DURATION, (float) mkv_ctx->duration); + io_seek(mkv_ctx->writer, currentpos); + + mkv_end_ebml_master(mkv_ctx, mkv_ctx->segment); + av_freep(&mkv_ctx->cues->entries); + av_freep(&mkv_ctx->cues); + + return 0; +} + +mkv_context_t *mkv_create_context(const char* filename, int mode) +{ + mkv_context_t *mkv_ctx = calloc(1, sizeof(mkv_context_t)); + if (mkv_ctx == NULL) + { + fprintf(stderr, "ENCODER: FATAL memory allocation failure (mkv_create_context): %s\n", strerror(errno)); + exit(-1); + } + + mkv_ctx->writer = io_create_writer(filename, 0); + mkv_ctx->mode = mode; + mkv_ctx->main_seekhead = NULL; + mkv_ctx->cues = NULL; + mkv_ctx->stream_list = NULL; + mkv_ctx->timescale = 1000000; + + mkv_ctx->pkt_buffer_list = NULL; + mkv_ctx->pkt_buffer_list_size = 0; + mkv_ctx->pkt_buffer_read_index = 0; + mkv_ctx->pkt_buffer_write_index = 0; + + return mkv_ctx; +} + +void mkv_destroy_context(mkv_context_t *mkv_ctx) +{ + io_destroy_writer(mkv_ctx->writer); + + destroy_stream_list(mkv_ctx->stream_list, &mkv_ctx->stream_list_size); + + /*free buffer list*/ + if(mkv_ctx->pkt_buffer_list) + { + int i = 0; + for(i=0; ipkt_buffer_list_size; ++i) + { + if(mkv_ctx->pkt_buffer_list[i].data) + free(mkv_ctx->pkt_buffer_list[i].data); + } + free(mkv_ctx->pkt_buffer_list); + } + + mkv_ctx->pkt_buffer_list = NULL; + mkv_ctx->pkt_buffer_list_size = 0; + +} + +stream_io_t *mkv_add_video_stream(mkv_context_t *mkv_ctx, + int32_t width, + int32_t height, + int32_t fps, + int32_t fps_num, + int32_t codec_id) +{ + stream_io_t *stream = add_new_stream(&mkv_ctx->stream_list, &mkv_ctx->stream_list_size); + stream->type = STREAM_TYPE_VIDEO; + stream->width = width; + stream->height = height; + stream->codec_id = codec_id; + + /*we have delayed video frames so increase the cached audio*/ + if(codec_id == AV_CODEC_ID_H264) + mkv_ctx->pkt_buffer_list_size = 3 * PKT_BUFFER_DEF_SIZE; + + stream->fps = (double) fps/fps_num; + stream->indexes = NULL; + + return stream; +} + +stream_io_t *mkv_add_audio_stream(mkv_context_t *mkv_ctx, + int32_t channels, + int32_t rate, + int32_t bits, + int32_t mpgrate, + int32_t codec_id, + int32_t format) +{ + stream_io_t *stream = add_new_stream(&mkv_ctx->stream_list, &mkv_ctx->stream_list_size); + stream->type = STREAM_TYPE_AUDIO; + + stream->a_chans = channels; + stream->a_rate = rate; + stream->a_bits = bits; + stream->mpgrate = mpgrate; + stream->a_vbr = 0; + stream->codec_id = codec_id; + stream->a_fmt = format; + + /*aprox. 2 sec cache*/ + if(!mkv_ctx->audio_frame_size) + mkv_ctx->audio_frame_size = 1152; + if(mkv_ctx->pkt_buffer_list_size == 0) + mkv_ctx->pkt_buffer_list_size = 2 * (rate/mkv_ctx->audio_frame_size); + else if(mkv_ctx->pkt_buffer_list_size == 3 * PKT_BUFFER_DEF_SIZE) /*H264*/ + { + if(3 * (rate/mkv_ctx->audio_frame_size) > mkv_ctx->pkt_buffer_list_size) + mkv_ctx->pkt_buffer_list_size = 3 * (rate/mkv_ctx->audio_frame_size); + } + + if(mkv_ctx->pkt_buffer_list == NULL) + { + mkv_ctx->pkt_buffer_write_index = 0; + mkv_ctx->pkt_buffer_read_index = 0; + mkv_ctx->pkt_buffer_list = calloc(mkv_ctx->pkt_buffer_list_size, sizeof(mkv_packet_buff_t)); + if (mkv_ctx->pkt_buffer_list == NULL) + { + fprintf(stderr, "ENCODER: FATAL memory allocation failure (mkv_add_audio_stream): %s\n", strerror(errno)); + exit(-1); + } + + int i = 0; + for(i = 0; i < mkv_ctx->pkt_buffer_list_size; ++i) + { + mkv_ctx->pkt_buffer_list[i].max_size = 0; + mkv_ctx->pkt_buffer_list[i].data_size = 0; + mkv_ctx->pkt_buffer_list[i].data = NULL; + } + } + + stream->indexes = NULL; + + return stream; +} diff -Nru guvcview-1.7.3/gview_encoder/matroska.h guvcview-2.0.1+ubuntu1~ppa1/gview_encoder/matroska.h --- guvcview-1.7.3/gview_encoder/matroska.h 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/gview_encoder/matroska.h 2014-10-05 10:41:44.000000000 +0000 @@ -0,0 +1,342 @@ +/*******************************************************************************# +# guvcview http://guvcview.sourceforge.net # +# # +# Paulo Assis # +# # +# This is a heavily modified version of the matroska interface from x264 # +# Copyright (C) 2005 Mike Matsnev # +# # +# This program is free software; you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation; either version 2 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program; if not, write to the Free Software # +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # +# # +********************************************************************************/ + +#ifndef MATROSKA_H +#define MATROSKA_H + +#include +#include + +#include "stream_io.h" +#include "file_io.h" + +/* EBML version supported */ +#define EBML_VERSION 1 + +/* top-level master-IDs */ +#define EBML_ID_HEADER 0x1A45DFA3 + +/* IDs in the HEADER master */ +#define EBML_ID_EBMLVERSION 0x4286 +#define EBML_ID_EBMLREADVERSION 0x42F7 +#define EBML_ID_EBMLMAXIDLENGTH 0x42F2 +#define EBML_ID_EBMLMAXSIZELENGTH 0x42F3 +#define EBML_ID_DOCTYPE 0x4282 +#define EBML_ID_DOCTYPEVERSION 0x4287 +#define EBML_ID_DOCTYPEREADVERSION 0x4285 + +/* general EBML types */ +#define EBML_ID_VOID 0xEC +#define EBML_ID_CRC32 0xBF + +/* + * Matroska element IDs, max. 32 bits + */ + +/* toplevel segment */ +#define MATROSKA_ID_SEGMENT 0x18538067 + +/* Matroska top-level master IDs */ +#define MATROSKA_ID_INFO 0x1549A966 +#define MATROSKA_ID_TRACKS 0x1654AE6B +#define MATROSKA_ID_CUES 0x1C53BB6B +#define MATROSKA_ID_TAGS 0x1254C367 +#define MATROSKA_ID_SEEKHEAD 0x114D9B74 +#define MATROSKA_ID_ATTACHMENTS 0x1941A469 +#define MATROSKA_ID_CLUSTER 0x1F43B675 +#define MATROSKA_ID_CHAPTERS 0x1043A770 + +/* IDs in the info master */ +#define MATROSKA_ID_TIMECODESCALE 0x2AD7B1 +#define MATROSKA_ID_DURATION 0x4489 +#define MATROSKA_ID_TITLE 0x7BA9 +#define MATROSKA_ID_WRITINGAPP 0x5741 +#define MATROSKA_ID_MUXINGAPP 0x4D80 +#define MATROSKA_ID_DATEUTC 0x4461 +#define MATROSKA_ID_SEGMENTUID 0x73A4 + +/* ID in the tracks master */ +#define MATROSKA_ID_TRACKENTRY 0xAE + +/* IDs in the trackentry master */ +#define MATROSKA_ID_TRACKNUMBER 0xD7 +#define MATROSKA_ID_TRACKUID 0x73C5 +#define MATROSKA_ID_TRACKTYPE 0x83 +#define MATROSKA_ID_TRACKAUDIO 0xE1 +#define MATROSKA_ID_TRACKVIDEO 0xE0 +#define MATROSKA_ID_CODECID 0x86 +#define MATROSKA_ID_CODECPRIVATE 0x63A2 +#define MATROSKA_ID_CODECNAME 0x258688 +#define MATROSKA_ID_CODECINFOURL 0x3B4040 +#define MATROSKA_ID_CODECDOWNLOADURL 0x26B240 +#define MATROSKA_ID_CODECDECODEALL 0xAA +#define MATROSKA_ID_TRACKNAME 0x536E +#define MATROSKA_ID_TRACKLANGUAGE 0x22B59C +#define MATROSKA_ID_TRACKFLAGENABLED 0xB9 +#define MATROSKA_ID_TRACKFLAGDEFAULT 0x88 +#define MATROSKA_ID_TRACKFLAGFORCED 0x55AA +#define MATROSKA_ID_TRACKFLAGLACING 0x9C +#define MATROSKA_ID_TRACKMINCACHE 0x6DE7 +#define MATROSKA_ID_TRACKMAXCACHE 0x6DF8 +#define MATROSKA_ID_TRACKDEFAULTDURATION 0x23E383 +#define MATROSKA_ID_TRACKCONTENTENCODINGS 0x6D80 +#define MATROSKA_ID_TRACKCONTENTENCODING 0x6240 +#define MATROSKA_ID_TRACKTIMECODESCALE 0x23314F +#define MATROSKA_ID_TRACKMAXBLKADDID 0x55EE + +/* IDs in the trackvideo master */ +#define MATROSKA_ID_VIDEOFRAMERATE 0x2383E3 +#define MATROSKA_ID_VIDEODISPLAYWIDTH 0x54B0 +#define MATROSKA_ID_VIDEODISPLAYHEIGHT 0x54BA +#define MATROSKA_ID_VIDEOPIXELWIDTH 0xB0 +#define MATROSKA_ID_VIDEOPIXELHEIGHT 0xBA +#define MATROSKA_ID_VIDEOPIXELCROPB 0x54AA +#define MATROSKA_ID_VIDEOPIXELCROPT 0x54BB +#define MATROSKA_ID_VIDEOPIXELCROPL 0x54CC +#define MATROSKA_ID_VIDEOPIXELCROPR 0x54DD +#define MATROSKA_ID_VIDEODISPLAYUNIT 0x54B2 +#define MATROSKA_ID_VIDEOFLAGINTERLACED 0x9A +#define MATROSKA_ID_VIDEOSTEREOMODE 0x53B9 +#define MATROSKA_ID_VIDEOASPECTRATIO 0x54B3 +#define MATROSKA_ID_VIDEOCOLORSPACE 0x2EB524 + +/* IDs in the trackaudio master */ +#define MATROSKA_ID_AUDIOSAMPLINGFREQ 0xB5 +#define MATROSKA_ID_AUDIOOUTSAMPLINGFREQ 0x78B5 + +#define MATROSKA_ID_AUDIOBITDEPTH 0x6264 +#define MATROSKA_ID_AUDIOCHANNELS 0x9F + +/* IDs in the content encoding master */ +#define MATROSKA_ID_ENCODINGORDER 0x5031 +#define MATROSKA_ID_ENCODINGSCOPE 0x5032 +#define MATROSKA_ID_ENCODINGTYPE 0x5033 +#define MATROSKA_ID_ENCODINGCOMPRESSION 0x5034 +#define MATROSKA_ID_ENCODINGCOMPALGO 0x4254 +#define MATROSKA_ID_ENCODINGCOMPSETTINGS 0x4255 + +/* ID in the cues master */ +#define MATROSKA_ID_POINTENTRY 0xBB + +/* IDs in the pointentry master */ +#define MATROSKA_ID_CUETIME 0xB3 +#define MATROSKA_ID_CUETRACKPOSITION 0xB7 + +/* IDs in the cuetrackposition master */ +#define MATROSKA_ID_CUETRACK 0xF7 +#define MATROSKA_ID_CUECLUSTERPOSITION 0xF1 +#define MATROSKA_ID_CUEBLOCKNUMBER 0x5378 + +/* IDs in the tags master */ +#define MATROSKA_ID_TAG 0x7373 +#define MATROSKA_ID_SIMPLETAG 0x67C8 +#define MATROSKA_ID_TAGNAME 0x45A3 +#define MATROSKA_ID_TAGSTRING 0x4487 +#define MATROSKA_ID_TAGLANG 0x447A +#define MATROSKA_ID_TAGDEFAULT 0x44B4 +#define MATROSKA_ID_TAGTARGETS 0x63C0 +#define MATROSKA_ID_TAGTARGETS_TYPE 0x63CA +#define MATROSKA_ID_TAGTARGETS_TYPEVALUE 0x68CA +#define MATROSKA_ID_TAGTARGETS_TRACKUID 0x63C5 +#define MATROSKA_ID_TAGTARGETS_CHAPTERUID 0x63C4 +#define MATROSKA_ID_TAGTARGETS_ATTACHUID 0x63C6 + +/* IDs in the seekhead master */ +#define MATROSKA_ID_SEEKENTRY 0x4DBB + +/* IDs in the seekpoint master */ +#define MATROSKA_ID_SEEKID 0x53AB +#define MATROSKA_ID_SEEKPOSITION 0x53AC + +/* IDs in the cluster master */ +#define MATROSKA_ID_CLUSTERTIMECODE 0xE7 +#define MATROSKA_ID_CLUSTERPOSITION 0xA7 +#define MATROSKA_ID_CLUSTERPREVSIZE 0xAB +#define MATROSKA_ID_BLOCKGROUP 0xA0 +#define MATROSKA_ID_SIMPLEBLOCK 0xA3 + +/* IDs in the blockgroup master */ +#define MATROSKA_ID_BLOCK 0xA1 +#define MATROSKA_ID_BLOCKDURATION 0x9B +#define MATROSKA_ID_BLOCKREFERENCE 0xFB + +/* IDs in the attachments master */ +#define MATROSKA_ID_ATTACHEDFILE 0x61A7 +#define MATROSKA_ID_FILEDESC 0x467E +#define MATROSKA_ID_FILENAME 0x466E +#define MATROSKA_ID_FILEMIMETYPE 0x4660 +#define MATROSKA_ID_FILEDATA 0x465C +#define MATROSKA_ID_FILEUID 0x46AE + +/* IDs in the chapters master */ +#define MATROSKA_ID_EDITIONENTRY 0x45B9 +#define MATROSKA_ID_CHAPTERATOM 0xB6 +#define MATROSKA_ID_CHAPTERTIMESTART 0x91 +#define MATROSKA_ID_CHAPTERTIMEEND 0x92 +#define MATROSKA_ID_CHAPTERDISPLAY 0x80 +#define MATROSKA_ID_CHAPSTRING 0x85 +#define MATROSKA_ID_CHAPLANG 0x437C +#define MATROSKA_ID_EDITIONUID 0x45BC +#define MATROSKA_ID_EDITIONFLAGHIDDEN 0x45BD +#define MATROSKA_ID_EDITIONFLAGDEFAULT 0x45DB +#define MATROSKA_ID_EDITIONFLAGORDERED 0x45DD +#define MATROSKA_ID_CHAPTERUID 0x73C4 +#define MATROSKA_ID_CHAPTERFLAGHIDDEN 0x98 +#define MATROSKA_ID_CHAPTERFLAGENABLED 0x4598 +#define MATROSKA_ID_CHAPTERPHYSEQUIV 0x63C3 + +/* track type*/ +#define MATROSKA_TRACK_TYPE_NONE 0x0 +#define MATROSKA_TRACK_TYPE_VIDEO 0x1 +#define MATROSKA_TRACK_TYPE_AUDIO 0x2 +#define MATROSKA_TRACK_TYPE_COMPLEX 0x3 +#define MATROSKA_TRACK_TYPE_LOGO 0x10 +#define MATROSKA_TRACK_TYPE_SUBTITLE 0x11 +#define MATROSKA_TRACK_TYPE_CONTROL 0x20 + + +/* +typedef enum { + MATROSKA_TRACK_ENCODING_COMP_ZLIB = 0, + MATROSKA_TRACK_ENCODING_COMP_BZLIB = 1, + MATROSKA_TRACK_ENCODING_COMP_LZO = 2, + MATROSKA_TRACK_ENCODING_COMP_HEADERSTRIP = 3, +} MatroskaTrackEncodingCompAlgo; +*/ + +typedef struct ebml_master_t +{ + int64_t pos; ///< absolute offset in the file where the master's elements start + int sizebytes; ///< how many bytes were reserved for the size +} ebml_master_t; + +typedef struct mkv_seekhead_entry_t +{ + unsigned int elementid; + uint64_t segmentpos; +} mkv_seekhead_entry_t; + +typedef struct mkv_seekhead_t +{ + int64_t filepos; + int64_t segment_offset; ///< the file offset to the beginning of the segment + int reserved_size; ///< -1 if appending to file + int max_entries; + mkv_seekhead_entry_t *entries; + int num_entries; +} mkv_seekhead_t; + +typedef struct mkv_cuepoint_t +{ + uint64_t pts; + int tracknum; + int64_t cluster_pos; ///< file offset of the cluster containing the block +} mkv_cuepoint_t; + +typedef struct mkv_cues_t +{ + int64_t segment_offset; + mkv_cuepoint_t *entries; + int num_entries; +} mkv_cues_t; + +typedef struct mkv_packet_buff_t +{ + uint8_t *data; + unsigned int data_size; + unsigned int max_size; + uint64_t pts; + int duration; + int flags; + int stream_index; +} mkv_packet_buff_t; + +typedef struct mkv_context_t +{ + int mode; /*matroska or webm*/ + io_writer_t *writer; + ebml_master_t segment; + int64_t segment_offset; + ebml_master_t cluster; + int64_t cluster_pos; ///< file offset of the current cluster + int64_t cluster_pts; + int64_t duration_offset; + int64_t duration; + mkv_seekhead_t *main_seekhead; + mkv_cues_t *cues; + + uint64_t timescale; + uint64_t first_pts; /*pts of first packet*/ + + /*stored audio packets list (ring buffer)*/ + mkv_packet_buff_t *pkt_buffer_list; + int pkt_buffer_list_size; + int pkt_buffer_read_index; + int pkt_buffer_write_index; + int audio_frame_size; /*number of audio samples per buffer(frame)*/ + + stream_io_t *stream_list; + int stream_list_size; +} mkv_context_t; + + +/** create a muxer context + * mode : WEBM_FORMAT or mkv_ctx_FORMAT*/ +mkv_context_t *mkv_create_context(const char* filename, int mode); + +/** add a video stream to the context */ +stream_io_t *mkv_add_video_stream(mkv_context_t *mkv_ctx, + int32_t width, + int32_t height, + int32_t fps, + int32_t fps_num, + int32_t codec_id); + +/** add a audio stream to the context */ +stream_io_t *mkv_add_audio_stream(mkv_context_t *mkv_ctx, + int32_t channels, + int32_t rate, + int32_t bits, + int32_t mpgrate, + int32_t codec_id, + int32_t format); + +/** write the header*/ +int mkv_write_header(mkv_context_t *mkv_ctx); + +int mkv_write_packet(mkv_context_t *mkv_ctx, + int stream_index, + uint8_t *data, + int size, + int duration, + uint64_t pts, + int flags); + +/** finalize file operations*/ +int mkv_close(mkv_context_t *mkv_ctx); + +/** destroy the muxer context (clean up)*/ +void mkv_destroy_context(mkv_context_t *mkv_ctx); + +#endif diff -Nru guvcview-1.7.3/gview_encoder/muxer.c guvcview-2.0.1+ubuntu1~ppa1/gview_encoder/muxer.c --- guvcview-1.7.3/gview_encoder/muxer.c 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/gview_encoder/muxer.c 2014-10-05 10:41:44.000000000 +0000 @@ -0,0 +1,474 @@ +/*******************************************************************************# +# guvcview http://guvcview.sourceforge.net # +# # +# Paulo Assis # +# Nobuhiro Iwamatsu # +# Add UYVY color support(Macbook iSight) # +# Flemming Frandsen # +# Add VU meter OSD # +# # +# This program is free software; you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation; either version 2 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program; if not, write to the Free Software # +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # +# # +********************************************************************************/ + +/*******************************************************************************# +# # +# Encoder library # +# # +********************************************************************************/ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +/* support for internationalization - i18n */ +#include +#include + +#include "../config.h" +#include "gviewencoder.h" +#include "encoder.h" +#include "stream_io.h" +#include "matroska.h" +#include "avi.h" +#include "gview.h" + +extern int verbosity; + +static mkv_context_t *mkv_ctx = NULL; +static avi_context_t *avi_ctx = NULL; + +static stream_io_t *video_stream = NULL; +static stream_io_t *audio_stream = NULL; + +/*file mutex*/ +static __MUTEX_TYPE mutex = __STATIC_MUTEX_INIT; +#define __PMUTEX &mutex + +/* + * mux a video frame + * args: + * encoder_ctx - pointer to encoder context + * + * asserts: + * encoder_ctx is not null; + * + * returns: error code + */ +int encoder_write_video_data(encoder_context_t *encoder_ctx) +{ + /*assertions*/ + assert(encoder_ctx); + + encoder_video_context_t *enc_video_ctx = encoder_ctx->enc_video_ctx; + assert(enc_video_ctx); + + if(enc_video_ctx->outbuf_coded_size <= 0) + return -1; + + enc_video_ctx->framecount++; + + int ret =0; + int block_align = 1; + + encoder_codec_data_t *video_codec_data = (encoder_codec_data_t *) enc_video_ctx->codec_data; + + if(video_codec_data) + block_align = video_codec_data->codec_context->block_align; + + __LOCK_MUTEX( __PMUTEX ); + switch (encoder_ctx->muxer_id) + { + case ENCODER_MUX_AVI: + ret = avi_write_packet( + avi_ctx, + 0, + enc_video_ctx->outbuf, + enc_video_ctx->outbuf_coded_size, + enc_video_ctx->dts, + block_align, + enc_video_ctx->flags); + break; + + case ENCODER_MUX_MKV: + case ENCODER_MUX_WEBM: + ret = mkv_write_packet( + mkv_ctx, + 0, + enc_video_ctx->outbuf, + enc_video_ctx->outbuf_coded_size, + enc_video_ctx->duration, + enc_video_ctx->pts, + enc_video_ctx->flags); + break; + + default: + + break; + } + __UNLOCK_MUTEX( __PMUTEX ); + + return (ret); +} + +/* + * mux a audio frame + * args: + * encoder_ctx - pointer to encoder context + * + * asserts: + * encoder_ctx is not null; + * + * returns: error code + */ +int encoder_write_audio_data(encoder_context_t *encoder_ctx) +{ + /*assertions*/ + assert(encoder_ctx != NULL); + + encoder_audio_context_t *enc_audio_ctx = encoder_ctx->enc_audio_ctx; + + if(!enc_audio_ctx || encoder_ctx->audio_channels <= 0) + return -1; + + if(verbosity > 3) + printf("ENCODER: writing %i bytes of audio data\n", enc_audio_ctx->outbuf_coded_size); + if(enc_audio_ctx->outbuf_coded_size <= 0) + return -1; + + int ret =0; + int block_align = 1; + + encoder_codec_data_t *audio_codec_data = (encoder_codec_data_t *) enc_audio_ctx->codec_data; + + if(audio_codec_data) + block_align = audio_codec_data->codec_context->block_align; + + __LOCK_MUTEX( __PMUTEX ); + switch (encoder_ctx->muxer_id) + { + case ENCODER_MUX_AVI: + ret = avi_write_packet( + avi_ctx, + 1, + enc_audio_ctx->outbuf, + enc_audio_ctx->outbuf_coded_size, + enc_audio_ctx->dts, + block_align, + enc_audio_ctx->flags); + break; + + case ENCODER_MUX_MKV: + case ENCODER_MUX_WEBM: + ret = mkv_write_packet( + mkv_ctx, + 1, + enc_audio_ctx->outbuf, + enc_audio_ctx->outbuf_coded_size, + enc_audio_ctx->duration, + enc_audio_ctx->pts, + enc_audio_ctx->flags); + break; + + default: + + break; + } + __UNLOCK_MUTEX( __PMUTEX ); + + return (ret); +} + +/* + * initialization of the file muxer + * args: + * encoder_ctx - pointer to encoder context + * filename - video filename + * + * asserts: + * encoder_ctx is not null + * encoder_ctx->enc_video_ctx is not null + * + * returns: none + */ +void encoder_muxer_init(encoder_context_t *encoder_ctx, const char *filename) +{ + /*assertions*/ + assert(encoder_ctx != NULL); + assert(encoder_ctx->enc_video_ctx != NULL); + + encoder_codec_data_t *video_codec_data = (encoder_codec_data_t *) encoder_ctx->enc_video_ctx->codec_data; + + int video_codec_id = AV_CODEC_ID_NONE; + + if(encoder_ctx->video_codec_ind == 0) /*no codec_context*/ + { + switch(encoder_ctx->input_format) + { + case V4L2_PIX_FMT_H264: + video_codec_id = AV_CODEC_ID_H264; + break; + } + } + else if(video_codec_data) + { + video_codec_id = video_codec_data->codec_context->codec_id; + } + + if(verbosity > 1) + printf("ENCODER: initializing muxer(%i)\n", encoder_ctx->muxer_id); + + switch (encoder_ctx->muxer_id) + { + case ENCODER_MUX_AVI: + if(avi_ctx != NULL) + { + avi_destroy_context(avi_ctx); + avi_ctx = NULL; + } + avi_ctx = avi_create_context(filename); + + /*add video stream*/ + video_stream = avi_add_video_stream( + avi_ctx, + encoder_ctx->video_width, + encoder_ctx->video_height, + encoder_ctx->fps_den, + encoder_ctx->fps_num, + video_codec_id); + + if(video_codec_id == AV_CODEC_ID_THEORA && video_codec_data) + { + video_stream->extra_data = (uint8_t *) video_codec_data->codec_context->extradata; + video_stream->extra_data_size = video_codec_data->codec_context->extradata_size; + } + + /*add audio stream*/ + if(encoder_ctx->enc_audio_ctx != NULL && + encoder_ctx->audio_channels > 0) + { + encoder_codec_data_t *audio_codec_data = (encoder_codec_data_t *) encoder_ctx->enc_audio_ctx->codec_data; + if(audio_codec_data) + { + int acodec_ind = get_audio_codec_list_index(audio_codec_data->codec_context->codec_id); + /*sample size - only used for PCM*/ + int32_t a_bits = encoder_get_audio_bits(acodec_ind); + /*bit rate (compressed formats)*/ + int32_t b_rate = encoder_get_audio_bit_rate(acodec_ind); + + audio_stream = avi_add_audio_stream( + avi_ctx, + encoder_ctx->audio_channels, + encoder_ctx->audio_samprate, + a_bits, + b_rate, + audio_codec_data->codec_context->codec_id, + encoder_ctx->enc_audio_ctx->avi_4cc); + + if(audio_codec_data->codec_context->codec_id == AV_CODEC_ID_VORBIS) + { + audio_stream->extra_data = (uint8_t *) audio_codec_data->codec_context->extradata; + audio_stream->extra_data_size = audio_codec_data->codec_context->extradata_size; + } + } + } + + /* add first riff header */ + avi_add_new_riff(avi_ctx); + + break; + + default: + case ENCODER_MUX_MKV: + case ENCODER_MUX_WEBM: + if(mkv_ctx != NULL) + { + mkv_destroy_context(mkv_ctx); + mkv_ctx = NULL; + } + mkv_ctx = mkv_create_context(filename, encoder_ctx->muxer_id); + + /*add video stream*/ + video_stream = mkv_add_video_stream( + mkv_ctx, + encoder_ctx->video_width, + encoder_ctx->video_height, + encoder_ctx->fps_den, + encoder_ctx->fps_num, + video_codec_id); + + video_stream->extra_data_size = encoder_set_video_mkvCodecPriv(encoder_ctx); + + if(video_stream->extra_data_size > 0) + { + video_stream->extra_data = (uint8_t *) encoder_get_video_mkvCodecPriv(encoder_ctx->video_codec_ind); + if(encoder_ctx->input_format == V4L2_PIX_FMT_H264) + video_stream->h264_process = 1; //we need to process NALU marker + } + + /*add audio stream*/ + if(encoder_ctx->enc_audio_ctx != NULL && + encoder_ctx->audio_channels > 0) + { + encoder_codec_data_t *audio_codec_data = (encoder_codec_data_t *) encoder_ctx->enc_audio_ctx->codec_data; + if(audio_codec_data) + { + mkv_ctx->audio_frame_size = audio_codec_data->codec_context->frame_size; + + /*sample size - only used for PCM*/ + int32_t a_bits = encoder_get_audio_bits(encoder_ctx->audio_codec_ind); + /*bit rate (compressed formats)*/ + int32_t b_rate = encoder_get_audio_bit_rate(encoder_ctx->audio_codec_ind); + + audio_stream = mkv_add_audio_stream( + mkv_ctx, + encoder_ctx->audio_channels, + encoder_ctx->audio_samprate, + a_bits, + b_rate, + audio_codec_data->codec_context->codec_id, + encoder_ctx->enc_audio_ctx->avi_4cc); + + audio_stream->extra_data_size = encoder_set_audio_mkvCodecPriv(encoder_ctx); + + if(audio_stream->extra_data_size > 0) + audio_stream->extra_data = encoder_get_audio_mkvCodecPriv(encoder_ctx->audio_codec_ind); + } + } + + /* write the file header */ + mkv_write_header(mkv_ctx); + + break; + + } +} + +/* + * close the file muxer + * args: + * encoder_ctx - pointer to encoder context + * + * asserts: + * none + * + * returns: none + */ +void encoder_muxer_close(encoder_context_t *encoder_ctx) +{ + switch (encoder_ctx->muxer_id) + { + case ENCODER_MUX_AVI: + if (avi_ctx) + { + /*last frame pts*/ + float tottime = (float) ((int64_t) (encoder_ctx->enc_video_ctx->pts) / 1000000); // convert to miliseconds + + if (verbosity > 0) + printf("ENCODER: (avi) time = %f\n", tottime); + + if (tottime > 0) + { + /*try to find the real frame rate*/ + avi_ctx->fps = (double) (encoder_ctx->enc_video_ctx->framecount * 1000) / tottime; + } + + if (verbosity > 0) + printf("ENCODER: (avi) %"PRId64" frames in %f ms [ %f fps]\n", + encoder_ctx->enc_video_ctx->framecount, tottime, avi_ctx->fps); + + //close sound ?? + + avi_close(avi_ctx); + + avi_destroy_context(avi_ctx); + avi_ctx = NULL; + } + break; + + default: + case ENCODER_MUX_MKV: + case ENCODER_MUX_WEBM: + if(mkv_ctx != NULL) + { + mkv_close(mkv_ctx); + + mkv_destroy_context(mkv_ctx); + mkv_ctx = NULL; + } + break; + } +} + +/* + * function to determine if enought free space is available + * args: + * treshold: limit treshold in Kbytes (min. free space) + * + * asserts: + * none + * + * returns: 1 if still enough free space left on disk + * 0 otherwise + */ +int encoder_disk_supervisor(int treshold, const char *path) +{ + /* + * treshold: + * 51200 = 50Mb + * 102400 = 100Mb + * 358400 = 300Mb + * 512000 = 500Mb + */ + int percent = 0; + uint64_t free_kbytes=0; + uint64_t total_kbytes=0; + struct statfs buf; + + + statfs(path, &buf); + + total_kbytes= buf.f_blocks * (buf.f_bsize/1024); + free_kbytes= buf.f_bavail * (buf.f_bsize/1024); + + if(total_kbytes > 0) + percent = (int) ((1.0f-((float)free_kbytes/(float)total_kbytes))*100.0f); + else + { + fprintf(stderr, "ENCODER: couldn't get disk stats for %s\n", path); + return (1); /* don't invalidate video capture*/ + } + + if(verbosity > 0) + printf("ENCODER: (%s) %lluK bytes free on a total of %lluK (used: %d %%) treshold=%iK\n", + path, (unsigned long long) free_kbytes, + (unsigned long long) total_kbytes, percent, treshold); + + if(free_kbytes < treshold) + { + fprintf(stderr,"ENCODER: Not enough free disk space (%lluKb) left on disk, need > %ik \n", + (unsigned long long) free_kbytes, treshold); + return(0); /* not enough free space left on disk */ + } + + return (1); /* still have enough free space on disk */ +} + diff -Nru guvcview-1.7.3/gview_encoder/stream_io.c guvcview-2.0.1+ubuntu1~ppa1/gview_encoder/stream_io.c --- guvcview-1.7.3/gview_encoder/stream_io.c 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/gview_encoder/stream_io.c 2014-10-05 10:41:44.000000000 +0000 @@ -0,0 +1,211 @@ +/*******************************************************************************# +# guvcview http://guvcview.sourceforge.net # +# # +# Paulo Assis # +# # +# This program is free software; you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation; either version 2 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program; if not, write to the Free Software # +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # +# # +********************************************************************************/ + + +#include +#include +#include +#include +#include +#include +#include +#include +/* support for internationalization - i18n */ +#include +#include + +#include "../config.h" +#include "gviewencoder.h" +#include "encoder.h" +#include "stream_io.h" +#include "gview.h" + +/* + * get last stream of the list (list tail) + * args: + * stream_list - pointer to stream list + * + * asserts: + * none + * + * returns: pointer to last stream of the list + * or NULL if none + */ +stream_io_t *get_last_stream(stream_io_t *stream_list) +{ + stream_io_t *stream = stream_list; + + if(!stream) + return NULL; + + while(stream->next != NULL) + stream = stream->next; + + return stream; +} + +/* + * add a new stream to the list + * args: + * stream_list - pointer to pointer of stream_list + * list_size - pointer to list size + * + * asserts: + * none + * + * returns: pointer to newly allocated stream + */ +stream_io_t *add_new_stream(stream_io_t **stream_list, int *list_size) +{ + + + stream_io_t *stream = calloc(1, sizeof(stream_io_t)); + if (stream == NULL) + { + fprintf(stderr, "ENCODER: FATAL memory allocation failure (add_new_stream): %s\n", strerror(errno)); + exit(-1); + } + stream->next = NULL; + stream->id = *list_size; + + fprintf(stderr, "ENCODER: add stream %i to stream list\n", stream->id); + + stream_io_t *last_stream = get_last_stream(*stream_list); + stream->previous = last_stream; + if(last_stream) + last_stream->next = stream; + else + *stream_list = stream; /*first stream*/ + + + stream->indexes = NULL; + + *list_size = *list_size + 1; + + return(stream); +} + +/* + * destroy the sream list (free all streams) + * args: + * stream_list - pointer to stream list + * list_size - pointer to list size + * + * asserts: + * none + * + * returns: none + */ +void destroy_stream_list(stream_io_t *stream_list, int *list_size) +{ + stream_io_t *stream = get_last_stream(stream_list); + while(stream != NULL) //from end to start + { + stream_io_t *prev_stream = stream->previous; + if(stream->indexes != NULL) + free(stream->indexes); + free(stream); + stream = prev_stream; + *list_size = *list_size - 1; + } +} + +/* + * get stream with index from list + * args: + * stream_list - pointer to pointer of stream_list + * index - stream index in the list + * + * asserts: + * none + * + * returns: pointer to stream + */ +stream_io_t *get_stream(stream_io_t *stream_list, int index) +{ + stream_io_t *stream = stream_list; + + if(!stream) + return NULL; + + int j = 0; + + while(stream->next != NULL && (j < index)) + { + stream = stream->next; + j++; + } + + if(j != index) + return NULL; + + return stream; +} + +/* + * get first video stream + * args: + * stream_list - pointer to stream list + * + * asserts: + * none + * + * returns: pointer to stream + */ +stream_io_t *get_first_video_stream(stream_io_t *stream_list) +{ + stream_io_t *stream = stream_list; + + while(stream != NULL) + { + if(stream->type == STREAM_TYPE_VIDEO) + return stream; + + stream = stream->next; + } + + return NULL; +} + +/* + * get first audio stream + * args: + * stream_list - pointer to stream list + * + * asserts: + * none + * + * returns: pointer to stream + */ +//stream_io_t *get_first_audio_stream(stream_io_t *stream_list) +//{ +// stream_io_t *stream = stream_list; +// +// while(stream != NULL) +// { +// if(stream->type == STREAM_TYPE_AUDIO) +// return stream; +// +// stream = stream->next; +// } +// +// return NULL; +//} diff -Nru guvcview-1.7.3/gview_encoder/stream_io.h guvcview-2.0.1+ubuntu1~ppa1/gview_encoder/stream_io.h --- guvcview-1.7.3/gview_encoder/stream_io.h 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/gview_encoder/stream_io.h 2014-10-05 10:41:44.000000000 +0000 @@ -0,0 +1,152 @@ +/*******************************************************************************# +# guvcview http://guvcview.sourceforge.net # +# # +# Paulo Assis # +# # +# This program is free software; you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation; either version 2 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program; if not, write to the Free Software # +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # +# # +********************************************************************************/ + +#ifndef STREAM_IO_H +#define STREAM_IO_H + +#include +#include + +enum stream_t +{ + STREAM_TYPE_VIDEO = 0, + STREAM_TYPE_AUDIO = 1, + STREAM_TYPE_SUB = 2 //not supported +}; + +typedef enum stream_t stream_t; + +typedef struct _stream_io_t +{ + stream_t type; /*stream type*/ + + int32_t id; + + uint32_t packet_count; + + /** AVI specific data */ + void* indexes; /*pointer to avi_index struct*/ + int32_t entry; + int64_t rate_hdr_strm; + int64_t frames_hdr_strm; + char compressor[8]; /* Type of compressor, 4 bytes + padding for 0 byte */ + + int32_t codec_id; + int32_t h264_process; /* Set to 1 if codec private data used (NALU marker needs to be processed)*/ + + /*video*/ + int32_t width; /* Width of a video frame */ + int32_t height; /* Height of a video frame */ + double fps; /* Frames per second */ + + /*audio*/ + int32_t a_fmt; /* Audio format, see #defines below */ + int32_t a_chans; /* Audio channels, 0 for no audio */ + int32_t a_rate; /* Rate in Hz */ + int32_t a_bits; /* bits per audio sample */ + int32_t mpgrate; /* mpg bitrate kbs*/ + int32_t a_vbr; /* 0 == no Variable BitRate */ + uint64_t audio_strm_length; /* Total number of bytes of audio data */ + + /*stream private data (codec private data)*/ + uint8_t *extra_data; + int32_t extra_data_size; + + struct _stream_io_t *previous, *next; +} stream_io_t; + +/* + * get last stream of the list (list tail) + * args: + * stream_list - pointer to stream list + * + * asserts: + * none + * + * returns: pointer to last stream of the list + * or NULL if none + */ +stream_io_t *get_last_stream(stream_io_t *stream_list); + +/* + * add a new stream to the list + * args: + * stream_list - pointer to pointer of stream_list + * list_size - pointer to list size + * + * asserts: + * none + * + * returns: pointer to newly allocated stream + */ +stream_io_t *add_new_stream(stream_io_t **stream_list, int *list_size); + +/* + * destroy the sream list (free all streams) + * args: + * stream_list - pointer to stream list + * list_size - pointer to list size + * + * asserts: + * none + * + * returns: none + */ +void destroy_stream_list(stream_io_t *stream_list, int *list_size); + +/* + * get stream with index from list + * args: + * stream_list - pointer to pointer of stream_list + * index - stream index in the list + * + * asserts: + * none + * + * returns: pointer to stream + */ +stream_io_t *get_stream(stream_io_t *stream_list, int index); + +/* + * get first video stream + * args: + * stream_list - pointer to stream list + * + * asserts: + * none + * + * returns: pointer to stream + */ +stream_io_t *get_first_video_stream(stream_io_t *stream_list); + +/* + * get first audio stream + * args: + * stream_list - pointer to stream list + * + * asserts: + * none + * + * returns: pointer to stream + */ +//stream_io_t *get_first_audio_stream(stream_io_t *stream_list); + +#endif diff -Nru guvcview-1.7.3/gview_encoder/video_codecs.c guvcview-2.0.1+ubuntu1~ppa1/gview_encoder/video_codecs.c --- guvcview-1.7.3/gview_encoder/video_codecs.c 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/gview_encoder/video_codecs.c 2014-10-05 10:41:44.000000000 +0000 @@ -0,0 +1,1000 @@ +/*******************************************************************************# +# guvcview http://guvcview.sourceforge.net # +# # +# Paulo Assis # +# # +# This program is free software; you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation; either version 2 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program; if not, write to the Free Software # +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # +# # +********************************************************************************/ +#include +#include +#include +#include +#include +#include +#include +#include +#include +/* support for internationalization - i18n */ +#include +#include + +#include "gview.h" +#include "encoder.h" +#include "gviewencoder.h" + +extern int verbosity; + +/*if not defined don't set any bits but prevent build error*/ +#ifndef CODEC_FLAG2_INTRA_REFRESH +#define CODEC_FLAG2_INTRA_REFRESH 0 +#endif + +static bmp_info_header_t mkv_codecPriv = +{ + .biSize = 0x00000028, /*40 bytes*/ + .biWidth = 640, /*default values (must be set before use)*/ + .biHeight = 480, + .biPlanes = 1, + .biBitCount = 24, + .biCompression = V4L2_PIX_FMT_MJPEG, + .biSizeImage = 640*480*2, /*2 bytes per pixel (max buffer - use x3 for RGB)*/ + .biXPelsPerMeter = 0, + .biYPelsPerMeter = 0, + .biClrUsed = 0, + .biClrImportant = 0 +}; + +/*list of software supported formats*/ +static video_codec_t listSupCodecs[] = +{ + /* + * Raw camera input (yuvy or mjpg or H264) + * we will set the correct codec data + * depending on the V4L2_PIX_FMT_* + * (this codec entry is always valid - index 0) + */ + { + .valid = 1, + .compressor = "YUY2", /*these will change according to camera input*/ + .mkv_4cc = v4l2_fourcc('Y','U','Y','2'), + .mkv_codec = "V_MS/VFW/FOURCC", + .mkv_codecPriv= &mkv_codecPriv, + .description = N_("Raw camera input"), + .pix_fmt = AV_PIX_FMT_NONE, + .fps = 0, + .monotonic_pts= 0, + .bit_rate = 0, + .qmax = 0, + .qmin = 0, + .max_qdiff = 0, + .dia = 0, + .pre_dia = 0, + .pre_me = 0, + .me_pre_cmp = 0, + .me_cmp = 0, + .me_sub_cmp = 0, + .last_pred = 0, + .gop_size = 0, + .qcompress = 0, + .qblur = 0, + .subq = 0, + .framerefs = 0, + .codec_id = AV_CODEC_ID_NONE, + .codec_name = "none", + .mb_decision = 0, + .trellis = 0, + .me_method = 0, + .mpeg_quant = 0, + .max_b_frames = 0, + .num_threads = 0, + .flags = 0 + }, + { + .valid = 1, + .compressor = "MJPG", + .mkv_4cc = v4l2_fourcc('M','J','P','G'), + .mkv_codec = "V_MS/VFW/FOURCC", + .mkv_codecPriv= &mkv_codecPriv, + .description = N_("MJPG - compressed"), + .pix_fmt = AV_PIX_FMT_YUVJ420P, + .fps = 0, + .monotonic_pts= 0, + .bit_rate = 0, + .qmax = 4, + .qmin = 1, + .max_qdiff = 2, + .dia = 2, + .pre_dia = 2, + .pre_me = 2, + .me_pre_cmp = 0, + .me_cmp = 3, + .me_sub_cmp = 3, + .last_pred = 2, + .gop_size = 12, + .qcompress = 0.5, + .qblur = 0.1, + .subq = 0, + .framerefs = 0, + .codec_id = AV_CODEC_ID_MJPEG, + .codec_name = "mjpeg", + .mb_decision = 0, + .trellis = 0, + .me_method = ME_EPZS, + .mpeg_quant = 0, + .max_b_frames = 0, + .num_threads = 0, + .flags = 0 + }, + { + .valid = 1, + .compressor = "MPEG", + .mkv_4cc = v4l2_fourcc('M','P','E','G'), + .mkv_codec = "V_MPEG1", + .mkv_codecPriv= NULL, + .description = N_("MPEG video 1"), + .pix_fmt = AV_PIX_FMT_YUV420P, + .fps = 30, + .monotonic_pts= 1, + .bit_rate = 3000000, + .qmax = 8, + .qmin = 2, + .max_qdiff = 2, + .dia = 2, + .pre_dia = 2, + .pre_me = 2, + .me_pre_cmp = 0, + .me_cmp = 3, + .me_sub_cmp = 3, + .last_pred = 2, + .gop_size = 12, + .qcompress = 0.5, + .qblur = 0.5, + .subq = 0, + .framerefs = 0, + .codec_id = AV_CODEC_ID_MPEG1VIDEO, + .codec_name = "mpeg1video", + .mb_decision = FF_MB_DECISION_RD, + .trellis = 1, + .me_method = ME_EPZS, + .mpeg_quant = 0, + .max_b_frames = 0, + .num_threads = 1, + .flags = 0 + }, + { + .valid = 1, + .compressor = "FLV1", + .mkv_4cc = v4l2_fourcc('F','L','V','1'), + .mkv_codec = "V_MS/VFW/FOURCC", + .mkv_codecPriv= &mkv_codecPriv, + .description = N_("FLV1 - flash video 1"), + .pix_fmt = AV_PIX_FMT_YUV420P, + .fps = 0, + .monotonic_pts= 1, + .bit_rate = 3000000, + .qmax = 31, + .qmin = 2, + .max_qdiff = 3, + .dia = 2, + .pre_dia = 2, + .pre_me = 2, + .me_pre_cmp = 0, + .me_cmp = 3, + .me_sub_cmp = 3, + .last_pred = 2, + .gop_size = 100, + .qcompress = 0.5, + .qblur = 0.5, + .subq = 0, + .framerefs = 0, + .codec_id = AV_CODEC_ID_FLV1, + .codec_name = "flv", + .mb_decision = FF_MB_DECISION_RD, + .trellis = 1, + .me_method = ME_EPZS, + .mpeg_quant = 0, + .max_b_frames = 0, + .num_threads = 1, + .flags = CODEC_FLAG_4MV + }, + { + .valid = 1, + .compressor = "WMV1", + .mkv_4cc = v4l2_fourcc('W','M','V','1'), + .mkv_codec = "V_MS/VFW/FOURCC", + .mkv_codecPriv= &mkv_codecPriv, + .description = N_("WMV1 - win. med. video 7"), + .pix_fmt = AV_PIX_FMT_YUV420P, + .fps = 0, + .monotonic_pts= 1, + .bit_rate = 3000000, + .qmax = 8, + .qmin = 2, + .max_qdiff = 2, + .dia = 2, + .pre_dia = 2, + .pre_me = 2, + .me_pre_cmp = 0, + .me_cmp = 3, + .me_sub_cmp = 3, + .last_pred = 2, + .gop_size = 100, + .qcompress = 0.5, + .qblur = 0.5, + .subq = 0, + .framerefs = 0, + .codec_id = AV_CODEC_ID_WMV1, + .codec_name = "wmv1", + .mb_decision = FF_MB_DECISION_RD, + .trellis = 1, + .me_method = ME_EPZS, + .mpeg_quant = 0, + .max_b_frames = 0, + .num_threads = 1, + .flags = 0 + }, + { + .valid = 1, + .compressor = "MPG2", + .mkv_4cc = v4l2_fourcc('M','P','G','2'), + .mkv_codec = "V_MPEG2", + .mkv_codecPriv= NULL, + .description = N_("MPG2 - MPG2 format"), + .pix_fmt = AV_PIX_FMT_YUV420P, + .fps = 30, + .monotonic_pts= 1, + .bit_rate = 3000000, + .qmax = 31, + .qmin = 2, + .max_qdiff = 3, + .dia = 2, + .pre_dia = 2, + .pre_me = 2, + .me_pre_cmp = 0, + .me_cmp = 3, + .me_sub_cmp = 3, + .last_pred = 2, + .gop_size = 12, + .qcompress = 0.5, + .qblur = 0.5, + .subq = 0, + .framerefs = 0, + .codec_id = AV_CODEC_ID_MPEG2VIDEO, + .codec_name = "mpeg2video", + .mb_decision = FF_MB_DECISION_RD, + .trellis = 1, + .me_method = ME_EPZS, + .mpeg_quant = 0, + .max_b_frames = 0, + .num_threads = 1, + .flags = 0 + }, + { + .valid = 1, + .compressor = "MP43", + .mkv_4cc = v4l2_fourcc('M','P','4','3'), + .mkv_codec = "V_MPEG4/MS/V3", + .mkv_codecPriv= NULL, + .description = N_("MS MP4 V3"), + .pix_fmt = AV_PIX_FMT_YUV420P, + .fps = 0, + .monotonic_pts= 1, + .bit_rate = 3000000, + .qmax = 31, + .qmin = 2, + .max_qdiff = 3, + .dia = 2, + .pre_dia = 2, + .pre_me = 2, + .me_pre_cmp = 0, + .me_cmp = 3, + .me_sub_cmp = 3, + .last_pred = 2, + .gop_size = 100, + .qcompress = 0.5, + .qblur = 0.5, + .subq = 0, + .framerefs = 0, + .codec_id = AV_CODEC_ID_MSMPEG4V3, + .codec_name = "msmpeg4v3", + .mb_decision = FF_MB_DECISION_RD, + .trellis = 1, + .me_method = ME_EPZS, + .mpeg_quant = 0, + .max_b_frames = 0, + .num_threads = 1, + .flags = 0 + }, + { + .valid = 1, + .compressor = "DX50", + .mkv_4cc = v4l2_fourcc('D','X','5','0'), + .mkv_codec = "V_MPEG4/ISO/ASP", + .mkv_codecPriv= NULL, + .description = N_("MPEG4-ASP"), + .pix_fmt = AV_PIX_FMT_YUV420P, + .fps = 0, + .monotonic_pts= 1, + .bit_rate = 1500000, + .qmax = 31, + .qmin = 2, + .max_qdiff = 3, + .dia = 2, + .pre_dia = 2, + .pre_me = 2, + .me_pre_cmp = 0, + .me_cmp = 3, + .me_sub_cmp = 3, + .last_pred = 2, + .gop_size = 100, + .qcompress = 0.5, + .qblur = 0.5, + .subq = 0, + .framerefs = 0, + .codec_id = AV_CODEC_ID_MPEG4, + .codec_name = "mpeg4", + .mb_decision = FF_MB_DECISION_RD, + .trellis = 1, + .me_method = ME_EPZS, + .mpeg_quant = 1, + .max_b_frames = 0, + .num_threads = 1, + .flags = 0 + }, + { + .valid = 1, + .compressor = "H264", + .mkv_4cc = v4l2_fourcc('H','2','6','4'), + .mkv_codec = "V_MPEG4/ISO/AVC", + .mkv_codecPriv= NULL, + .description = N_("MPEG4-AVC (H264)"), + .pix_fmt = AV_PIX_FMT_YUV420P, + .fps = 0, + .monotonic_pts= 1, + .bit_rate = 1500000, + .qmax = 51, + .qmin = 10, + .max_qdiff = 4, + .dia = 2, + .pre_dia = 2, + .pre_me = 2, + .me_pre_cmp = 0, + .me_cmp = 3, + .me_sub_cmp = 3, + .last_pred = 2, + .gop_size = 100, + .qcompress = 0.6, + .qblur = 0.5, + .subq = 5, + .framerefs = 0, + .codec_id = AV_CODEC_ID_H264, + .codec_name = "libx264", + .mb_decision = FF_MB_DECISION_RD, + .trellis = 0, + .me_method = ME_HEX, + .mpeg_quant = 1, + .max_b_frames = 0, + .num_threads = 1, +#if LIBAVCODEC_VER_AT_LEAST(54,01) + .flags = CODEC_FLAG2_INTRA_REFRESH +#else + .flags = CODEC_FLAG2_BPYRAMID | CODEC_FLAG2_WPRED | CODEC_FLAG2_FASTPSKIP | CODEC_FLAG2_INTRA_REFRESH +#endif + }, + { + .valid = 1, + .compressor = "VP80", + .mkv_4cc = v4l2_fourcc('V','P','8','0'), + .mkv_codec = "V_VP8", + .mkv_codecPriv= NULL, + .description = N_("VP8 (VP8)"), + .pix_fmt = AV_PIX_FMT_YUV420P, + .fps = 0, + .monotonic_pts= 1, + .bit_rate = 600000, + .qmax = 51, + .qmin = 11, + .max_qdiff = 4, + .dia = 2, + .pre_dia = 2, + .pre_me = 2, + .me_pre_cmp = 0, + .me_cmp = 3, + .me_sub_cmp = 3, + .last_pred = 2, + .gop_size = 120, + .qcompress = 0.8, + .qblur = 0.5, + .subq = 5, + .framerefs = 0, + .codec_id = AV_CODEC_ID_VP8, + .codec_name = "libvpx", + .mb_decision = FF_MB_DECISION_RD, + .trellis = 0, + .me_method = ME_HEX, + .mpeg_quant = 1, + .max_b_frames = 0, + .num_threads = 4, + .flags = 0 + }, + { + .valid = 1, + .compressor = "theo", + .mkv_4cc = v4l2_fourcc('t','h','e','o'), + .mkv_codec = "V_THEORA", + .mkv_codecPriv= NULL, + .description = N_("Theora (ogg theora)"), + .pix_fmt = AV_PIX_FMT_YUV420P, + .fps = 0, + .monotonic_pts= 1, + .bit_rate = 600000, + .qmax = 51, + .qmin = 11, + .max_qdiff = 4, + .dia = 2, + .pre_dia = 2, + .pre_me = 2, + .me_pre_cmp = 0, + .me_cmp = 3, + .me_sub_cmp = 3, + .last_pred = 2, + .gop_size = 120, + .qcompress = 0.8, + .qblur = 0.5, + .subq = 5, + .framerefs = 0, + .codec_id = AV_CODEC_ID_THEORA, + .codec_name = "libtheora", + .mb_decision = FF_MB_DECISION_RD, + .trellis = 0, + .me_method = ME_HEX, + .mpeg_quant = 1, + .max_b_frames = 0, + .num_threads = 1, + .flags = 0 + } +}; + +/* + * get default mkv_codecPriv + * args: + * none + * + * asserts: + * none + * + * returns: pointer to bmp_info_header_t + */ +bmp_info_header_t *get_default_mkv_codecPriv() +{ + return &mkv_codecPriv; +} + +/* + * get video codec list size + * args: + * none + * + * asserts: + * none + * + * returns: listSupCodecs size (number of elements) + */ +int encoder_get_video_codec_list_size() +{ + int size = sizeof(listSupCodecs)/sizeof(video_codec_t); + + if(verbosity > 2) + printf("ENCODER: video codec list size:%i\n", size); + + return size; +} + +/* + * get video codec valid list size + * args: + * none + * + * asserts: + * none + * + * returns: listSupCodecs valid number of elements + */ +//int encoder_get_video_codec_valid_list_size() +//{ +// int valid_size = 0; +// +// int i = 0; +// for(i = 0; i < encoder_get_video_codec_list_size(); ++i) +// if(listSupCodecs[i].valid) +// valid_size++; +// +// if(verbosity > 2) +// printf("ENCODER: video codec valid list size:%i\n", valid_size); +// +// return valid_size; +//} + +/* + * return the real (valid only) codec index + * args: + * codec_ind - codec list index (with non valid removed) + * + * asserts: + * none + * + * returns: matching listSupCodecs index + */ +static int get_real_index (int codec_ind) +{ + int i = 0; + int ind = -1; + for (i = 0; i < encoder_get_video_codec_list_size(); ++i) + { + if(listSupCodecs[i].valid) + ind++; + if(ind == codec_ind) + return i; + } + return (codec_ind); //should never arrive +} + +/* + * return the list codec index + * args: + * real_ind - listSupCodecs index + * + * asserts: + * none + * + * returns: matching list index (with non valid removed) + */ +static int get_list_index (int real_index) +{ + if( real_index < 0 || + real_index >= encoder_get_video_codec_list_size() || + !listSupCodecs[real_index].valid ) + return -1; //error: real index is not valid + + int i = 0; + int ind = -1; + for (i = 0; i<= real_index; ++i) + { + if(listSupCodecs[i].valid) + ind++; + } + + return (ind); +} + +/* + * get the mkv codec private data + * args: + * codec_ind - codec list index + * + * asserts: + * none + * + * returns: pointer to mkvCodecPriv data + */ +void *encoder_get_video_mkvCodecPriv(int codec_ind) +{ + int real_index = get_real_index (codec_ind); + if(real_index >= 0 && real_index < encoder_get_video_codec_list_size()) + return ((void *) listSupCodecs[real_index].mkv_codecPriv); + else + { + fprintf(stderr, "ENCODER: (mkvCodecPriv) bad codec index\n"); + return NULL; + } +} + +/* + * set the video codec mkv private data + * args: + * encoder_ctx - pointer to encoder context + * + * asserts: + * encoder_ctx is not null + * + * returns: mkvCodecPriv size + */ +int encoder_set_video_mkvCodecPriv(encoder_context_t *encoder_ctx) +{ + /*assertions*/ + assert(encoder_ctx != NULL); + + int size = 0; + + /*raw encoder*/ + if(encoder_ctx->video_codec_ind == 0) + { + switch(encoder_ctx->input_format) + { + case V4L2_PIX_FMT_H264: + { + /*do we have SPS and PPS data ?*/ + if(encoder_ctx->h264_sps_size <= 0 || encoder_ctx->h264_sps == NULL) + { + fprintf(stderr,"ENCODER: can't store H264 codec private data: No SPS data\n"); + return 0; + } + if(encoder_ctx->h264_pps_size <= 0 || encoder_ctx->h264_pps == NULL) + { + fprintf(stderr,"ENCODER: can't store H264 codec private data: No PPS data\n"); + return 0; + } + + /*alloc the private data*/ + size = 6 + 2 + encoder_ctx->h264_sps_size + 1 + 2 + encoder_ctx->h264_pps_size; + encoder_ctx->enc_video_ctx->priv_data = calloc(size, sizeof(uint8_t)); + if (encoder_ctx->enc_video_ctx->priv_data == NULL) + { + fprintf(stderr, "ENCODER: FATAL memory allocation failure (encoder_set_video_mkvCodecPriv): %s\n", strerror(errno)); + exit(-1); + } + + if(verbosity > 1) + printf("ENCODER: (video priv_data) processing %i bytes\n", size); + + /*write the codec private data*/ + uint8_t *tp = encoder_ctx->enc_video_ctx->priv_data; + /*header (6 bytes)*/ + tp[0] = 1; //version + tp[1] = encoder_ctx->h264_sps[1]; /* profile */ + tp[2] = encoder_ctx->h264_sps[2]; /* profile compat */ + tp[3] = encoder_ctx->h264_sps[3]; /* level */ + tp[4] = 0xff; /* 6 bits reserved (111111) + 2 bits nal size length - 1 (11) */ + tp[5] = 0xe1; /* 3 bits reserved (111) + 5 bits number of sps (00001) */ + tp += 6; + /*SPS: size (2 bytes) + SPS data*/ + tp[0] = (uint8_t) (encoder_ctx->h264_sps_size >> 8); + tp[1] = (uint8_t) encoder_ctx->h264_sps_size; //38 for logitech uvc 1.1 + tp += 2; //SPS size (16 bit) + memcpy(tp, encoder_ctx->h264_sps , encoder_ctx->h264_sps_size); + tp += encoder_ctx->h264_sps_size; + /*PPS number of pps (1 byte) + size (2 bytes) + PPS data*/ + tp[0] = 0x01; //number of pps + tp[1] = (uint8_t) (encoder_ctx->h264_pps_size >> 8); + tp[2] = (uint8_t) encoder_ctx->h264_pps_size; //4 for logitech uvc 1.1 + tp += 3; //PPS size (16 bit) + memcpy(tp, encoder_ctx->h264_pps , encoder_ctx->h264_pps_size); + + listSupCodecs[0].mkv_codecPriv = encoder_ctx->enc_video_ctx->priv_data; + break; + } + + default: + { + bmp_info_header_t *mkv_codecPriv = get_default_mkv_codecPriv(); + size = 40; + mkv_codecPriv->biWidth = encoder_ctx->video_width; + mkv_codecPriv->biHeight = encoder_ctx->video_height; + mkv_codecPriv->biCompression = encoder_ctx->input_format; + mkv_codecPriv->biSizeImage = encoder_ctx->video_width*encoder_ctx->video_height*3; /*3 bytes per pixel (max buffer - use x3 for RGB)*/ + listSupCodecs[0].mkv_codecPriv = (void *) mkv_codecPriv; + break; + } + } + + return(size); + } + + /*assert video encoder context is not null*/ + assert( encoder_ctx->enc_video_ctx); + encoder_codec_data_t *video_codec_data = (encoder_codec_data_t *) encoder_ctx->enc_video_ctx->codec_data; + /*assert video codec data is not null*/ + assert(video_codec_data); + + int codec_id = video_codec_data->codec_context->codec_id; + int real_index = get_video_codec_index(codec_id); + + if(codec_id == AV_CODEC_ID_THEORA) + { + /*get the 3 first header packets*/ + uint8_t *header_start[3]; + int header_len[3]; + int first_header_size; + + first_header_size = 42; /*vorbis = 30*/ + if (avpriv_split_xiph_headers( + video_codec_data->codec_context->extradata, + video_codec_data->codec_context->extradata_size, + first_header_size, header_start, header_len) < 0) + { + fprintf(stderr, "ENCODER: (theora codec) - Extradata corrupt.\n"); + return -1; + } + + /*get the allocation needed for headers size*/ + int header_lace_size[2]; + header_lace_size[0]=0; + header_lace_size[1]=0; + int i; + for (i = 0; i < header_len[0] / 255; i++) + header_lace_size[0]++; + header_lace_size[0]++; + for (i = 0; i < header_len[1] / 255; i++) + header_lace_size[1]++; + header_lace_size[1]++; + + size = 1 + /*number of packets -1*/ + header_lace_size[0] + //first packet size + header_lace_size[1] + //second packet size + header_len[0] + //first packet header + header_len[1] + //second packet header + header_len[2]; //third packet header + + /*should check and clean before allocating ??*/ + encoder_ctx->enc_video_ctx->priv_data = calloc(size, sizeof(uint8_t)); + if (encoder_ctx->enc_video_ctx->priv_data == NULL) + { + fprintf(stderr, "ENCODER: FATAL memory allocation failure (encoder_set_video_mkvCodecPriv): %s\n", strerror(errno)); + exit(-1); + } + /*write header*/ + uint8_t *tmp = encoder_ctx->enc_video_ctx->priv_data; + *tmp++ = 0x02; /*number of packets -1*/ + //size of head 1 + for (i = 0; i < header_len[0] / 0xff; i++) + *tmp++ = 0xff; + *tmp++ = header_len[0] % 0xff; + //size of head 2 + for (i = 0; i < header_len[1] / 0xff; i++) + *tmp++ = 0xff; + *tmp++ = header_len[1] % 0xff; + //add headers + for(i=0; i<3; i++) + { + memcpy(tmp, header_start[i] , header_len[i]); + tmp += header_len[i]; + } + + listSupCodecs[real_index].mkv_codecPriv = encoder_ctx->enc_video_ctx->priv_data; + } + else if(listSupCodecs[real_index].mkv_codecPriv != NULL) + { + bmp_info_header_t *mkv_codecPriv = get_default_mkv_codecPriv(); + + mkv_codecPriv->biWidth = encoder_ctx->video_width; + mkv_codecPriv->biHeight = encoder_ctx->video_height; + mkv_codecPriv->biCompression = listSupCodecs[real_index].mkv_4cc;; + mkv_codecPriv->biSizeImage = mkv_codecPriv->biWidth * mkv_codecPriv->biHeight * 2; /*2 bytes per pixel (max buffer - use x3 for RGB)*/ + listSupCodecs[real_index].mkv_codecPriv = (void *) mkv_codecPriv; + + size = 40; //40 bytes + } + + return (size); +} + +/* + * checks if the video codec index corresponds to VP8 (webm) codec + * args: + * codec_ind - video codec list index + * + * asserts: + * none + * + * returns: 1 true; 0 false + */ +int encoder_check_webm_video_codec(int codec_ind) +{ + int real_index = get_real_index (codec_ind); + + int ret = 0; + if(real_index >= 0 && real_index < encoder_get_video_codec_list_size()) + ret = (listSupCodecs[real_index].codec_id == AV_CODEC_ID_VP8) ? 1: 0; + + return ret; +} + +/* + * returns the real codec array index + * args: + * codec_id - codec id + * + * asserts: + * none + * + * returns: real index or -1 if none + */ +int get_video_codec_index(int codec_id) +{ + int i = 0; + for(i = 0; i < encoder_get_video_codec_list_size(); ++i ) + { + if(codec_id == listSupCodecs[i].codec_id) + return i; + } + + return -1; +} + +/* + * returns the list codec index + * args: + * codec_id - codec id + * + * asserts: + * none + * + * returns: real index or -1 if none + */ +int get_video_codec_list_index(int codec_id) +{ + return get_list_index(get_video_codec_index(codec_id)); +} + +/* + * get the video codec index for VP8 (webm) codec + * args: + * none + * + * asserts: + * none + * + * returns: index for VP8 codec or -1 if error + */ +int encoder_get_webm_video_codec_index() +{ + return get_video_codec_list_index(AV_CODEC_ID_VP8); +} + +/* + * get video list codec entry for codec index + * args: + * codec_ind - codec list index + * + * asserts: + * none + * + * returns: list codec entry or NULL if none + */ +video_codec_t *encoder_get_video_codec_defaults(int codec_ind) +{ + int real_index = get_real_index (codec_ind); + + if(real_index >= 0 && real_index < encoder_get_video_codec_list_size()) + return (&(listSupCodecs[real_index])); + else + { + fprintf(stderr, "ENCODER: (video codec defaults) bad codec index (%i)\n", codec_ind); + return NULL; + } +} + +/* + * sets the valid flag in the video codecs list + * args: + * none + * + * asserts: + * none + * + * returns: number of valid video codecs in list + */ +int encoder_set_valid_video_codec_list () +{ + int ind = 1; + int num_codecs = 1; /*raw codec (no encoding) is always valid*/ + for ( ind = 1; ind < encoder_get_video_codec_list_size(); ++ind) + { + AVCodec *codec = avcodec_find_encoder(listSupCodecs[ind].codec_id); + if (!codec) + { + printf("ENCODER: no video codec detected for %s\n", listSupCodecs[ind].description); + listSupCodecs[ind].valid = 0; + } + else num_codecs++; + } + + return num_codecs; +} + +/* + * get video list codec description + * args: + * codec_ind - codec list index + * + * asserts: + * none + * + * returns: list codec entry or NULL if none + */ +const char *encoder_get_video_codec_description(int codec_ind) +{ + int real_index = get_real_index (codec_ind); + if(real_index >= 0 && real_index < encoder_get_video_codec_list_size()) + return (listSupCodecs[real_index].description); + else + { + fprintf(stderr, "ENCODER: (video codec description) bad codec index (%i)\n", codec_ind); + return NULL; + } +} + +/* + * get video mkv codec + * args: + * codec_ind - codec list index + * + * asserts: + * none + * + * returns: mkv codec entry or NULL if none + */ +const char *encoder_get_video_mkv_codec(int codec_ind) +{ + int real_index = get_real_index (codec_ind); + if(real_index >= 0 && real_index < encoder_get_video_codec_list_size()) + return (listSupCodecs[real_index].mkv_codec); + else + { + fprintf(stderr, "ENCODER: (video mkv codec) bad codec index (%i)\n", codec_ind);; + return NULL; + } +} + +/* + * get video compressor (avi 4cc code) + * args: + * codec_ind - codec list index + * + * asserts: + * none + * + * returns: compressor codec entry or NULL if none + */ +const char *encoder_get_video_codec_4cc(int codec_ind) +{ + int real_index = get_real_index (codec_ind); + if(real_index >= 0 && real_index < encoder_get_video_codec_list_size()) + return (listSupCodecs[real_index].compressor); + else + { + fprintf(stderr, "ENCODER: (video mkv codec) bad codec index (%i)\n", codec_ind);; + return NULL; + } +} + +/* + * get video codec list index for avi 4cc + * args: + * codec_4cc - codec 4cc + * + * asserts: + * none + * + * returns: codec index or -1 if error + */ +int encoder_get_video_codec_ind_4cc(const char *codec_4cc) +{ + if(strcasecmp(codec_4cc, "raw") == 0) + return 0; /*raw is always 0*/ + + int real_index = 1; + int index = 0; /*skip raw codec*/ + for(real_index = 1; real_index < encoder_get_video_codec_list_size(); ++real_index) + { + if(listSupCodecs[real_index].valid) + index++; + if(strcasecmp(codec_4cc, listSupCodecs[real_index].compressor) == 0) + return index; + } + + return -1; +} diff -Nru guvcview-1.7.3/gview_render/gviewrender.h guvcview-2.0.1+ubuntu1~ppa1/gview_render/gviewrender.h --- guvcview-1.7.3/gview_render/gviewrender.h 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/gview_render/gviewrender.h 2014-10-05 10:41:44.000000000 +0000 @@ -0,0 +1,284 @@ +/*******************************************************************************# +# guvcview http://guvcview.sourceforge.net # +# # +# Paulo Assis # +# Nobuhiro Iwamatsu # +# Add UYVY color support(Macbook iSight) # +# Flemming Frandsen # +# Add VU meter OSD # +# # +# This program is free software; you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation; either version 2 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program; if not, write to the Free Software # +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # +# # +********************************************************************************/ + +/*******************************************************************************# +# # +# Render library # +# # +********************************************************************************/ + +#ifndef GVIEWRENDER_H +#define GVIEWRENDER_H + +#include + +#include +#include + +/*make sure we support c++*/ +__BEGIN_DECLS + +#define RENDER_NONE (0) +#define RENDER_SDL (1) + +#define EV_QUIT (0) +#define EV_KEY_UP (1) +#define EV_KEY_DOWN (2) +#define EV_KEY_LEFT (3) +#define EV_KEY_RIGHT (4) +#define EV_KEY_SPACE (5) +#define EV_KEY_I (6) +#define EV_KEY_V (7) + +/*FX FILTER FLAGS*/ +#define REND_FX_YUV_NOFILT (0) +#define REND_FX_YUV_MIRROR (1<<0) +#define REND_FX_YUV_UPTURN (1<<1) +#define REND_FX_YUV_NEGATE (1<<2) +#define REND_FX_YUV_MONOCR (1<<3) +#define REND_FX_YUV_PIECES (1<<4) +#define REND_FX_YUV_PARTICLES (1<<5) + +/*OSD FLAGS*/ +#define REND_OSD_NONE (0) +#define REND_OSD_VUMETER_MONO (1<<0) +#define REND_OSD_VUMETER_STEREO (1<<1) + +typedef int (*render_event_callback)(void *data); + +typedef struct _render_events_t +{ + int id; + render_event_callback callback; + void *data; + +} render_events_t; +/* + * set verbosity + * args: + * value - verbosity value + * + * asserts: + * none + * + * returns: none + */ +void render_set_verbosity(int value); + +/* + * set the osd mask + * args: + * mask - osd mask (ored) + * + * asserts: + * none + * + * returns: none + */ +void render_set_osd_mask(uint32_t mask); + +/* + * get the osd mask + * args: + * none + * + * asserts: + * none + * + * returns: osd mask + */ +uint32_t render_get_osd_mask(); + +/* + * get render width + * args: + * none + * + * asserts: + * none + * + * returns: render width + */ +int render_get_width(); + +/* + * get render height + * args: + * none + * + * asserts: + * none + * + * returns: render height + */ +int render_get_height(); + +/* + * render initialization + * args: + * render - render API to use (RENDER_NONE, RENDER_SDL1, ...) + * width - render width + * height - render height + * flags - window flags: + * 0- none + * 1- fullscreen + * 2- maximized + * + * asserts: + * none + * + * returns: error code + */ +int render_init(int render, int width, int height, int flags); + +/* + * set caption + * args: + * caption - string with render window caption + * + * asserts: + * none + * + * returns: none + */ +void render_set_caption(const char* caption); + +/* + * render a frame + * args: + * frame - pointer to frame data (yuyv format) + * mask - fx filter mask (or'ed) + * + * asserts: + * frame is not null + * + * returns: error code + */ +int render_frame(uint8_t *frame, uint32_t mask); + +/* + * get event index on render_events_list + * args: + * id - event id + * + * asserts: + * none + * + * returns: event index or -1 on error + */ +int render_get_event_index(int id); + +/* + * set event callback + * args: + * id - event id + * callback_function - pointer to callback function + * data - pointer to user data (passed to callback) + * + * asserts: + * none + * + * returns: error code + */ +int render_set_event_callback(int id, render_event_callback callback_function, void *data); + +/* + * call the event callback for event id + * args: + * id - event id + * + * asserts: + * none + * + * returns: error code + */ +int render_call_event_callback(int id); + +/* + * Apply fx filters + * args: + * frame - pointer to frame buffer (yuyv format) + * width - frame width + * height - frame height + * mask - or'ed filter mask + * + * asserts: + * frame is not null + * + * returns: void + */ +void render_fx_apply(uint8_t *frame, int width, int height, uint32_t mask); + +/* + * set the vu level for the osd vu meter + * args: + * vu_level - vu level value (2 channel array) + * + * asserts: + * none + * + * returns: none + */ +void render_set_vu_level(float vu_level[2]); + +/* + * get the vu level for the osd vu meter + * args: + * vu_level - two channel array were vu_level is to be copied + * + * asserts: + * none + * + * returns array with vu meter level + */ +void render_get_vu_level(float vu_level[2]); + +/* + * clean fx filters + * args: + * none + * + * asserts: + * none + * + * returns: void + */ +void render_clean_fx(); + +/* + * clean render data + * args: + * none + * + * asserts: + * none + * + * returns: none + */ +void render_close(); + +__END_DECLS + +#endif diff -Nru guvcview-1.7.3/gview_render/Makefile.am guvcview-2.0.1+ubuntu1~ppa1/gview_render/Makefile.am --- guvcview-1.7.3/gview_render/Makefile.am 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/gview_render/Makefile.am 2014-10-05 10:41:44.000000000 +0000 @@ -0,0 +1,36 @@ +## Process this file with automake to produce Makefile.in + +# Public headers +h_sources = gviewrender.h + +c_sources = render.c \ + render_fx.c \ + render_osd_vu_meter.c + +if ENABLE_SDL2 +c_sources += render_sdl2.c +else +c_sources += render_sdl1.c +endif + +#Install the headers in a versioned directory - guvcvideo-x.x/libgviewrender: +library_includedir=$(includedir)/$(PACKAGE)-$(PACKAGE_RELEASE)/$(GVIEWRENDER_LIBRARY_NAME) +library_include_HEADERS = $(h_sources) + +#AM_CFLAGS = + +lib_LTLIBRARIES= libgviewrender.la + +libgviewrender_la_SOURCES= $(h_sources) $(c_sources) + +libgviewrender_la_CFLAGS = $(GVIEWRENDER_CFLAGS) \ + $(GSL_CFLAGS) \ + $(PTHREAD_CFLAGS) \ + -I$(top_srcdir) \ + -I$(top_srcdir)/includes + +libgviewrender_la_LIBADD= $(GVIEWRENDER_LIBS) $(GSL_LIBS) + +libgviewrender_la_LDFLAGS= -version-info $(GVIEWRENDER_LIBRARY_VERSION) -release $(GVIEWRENDER_API_VERSION) + + diff -Nru guvcview-1.7.3/gview_render/Makefile.in guvcview-2.0.1+ubuntu1~ppa1/gview_render/Makefile.in --- guvcview-1.7.3/gview_render/Makefile.in 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/gview_render/Makefile.in 2014-10-05 10:41:44.000000000 +0000 @@ -0,0 +1,797 @@ +# Makefile.in generated by automake 1.14.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + + +VPATH = @srcdir@ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +@ENABLE_SDL2_TRUE@am__append_1 = render_sdl2.c +@ENABLE_SDL2_FALSE@am__append_2 = render_sdl1.c +subdir = gview_render +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(top_srcdir)/depcomp $(library_include_HEADERS) +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/acx_pthread.m4 \ + $(top_srcdir)/m4/intltool.m4 $(top_srcdir)/m4/libtool.m4 \ + $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ + $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ + $(top_srcdir)/m4/nls.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } +am__installdirs = "$(DESTDIR)$(libdir)" \ + "$(DESTDIR)$(library_includedir)" +LTLIBRARIES = $(lib_LTLIBRARIES) +am__DEPENDENCIES_1 = +libgviewrender_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) +am__libgviewrender_la_SOURCES_DIST = gviewrender.h render.c \ + render_fx.c render_osd_vu_meter.c render_sdl2.c render_sdl1.c +am__objects_1 = +@ENABLE_SDL2_TRUE@am__objects_2 = libgviewrender_la-render_sdl2.lo +@ENABLE_SDL2_FALSE@am__objects_3 = libgviewrender_la-render_sdl1.lo +am__objects_4 = libgviewrender_la-render.lo \ + libgviewrender_la-render_fx.lo \ + libgviewrender_la-render_osd_vu_meter.lo $(am__objects_2) \ + $(am__objects_3) +am_libgviewrender_la_OBJECTS = $(am__objects_1) $(am__objects_4) +libgviewrender_la_OBJECTS = $(am_libgviewrender_la_OBJECTS) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = +libgviewrender_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ + $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ + $(libgviewrender_la_CFLAGS) $(CFLAGS) \ + $(libgviewrender_la_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) +depcomp = $(SHELL) $(top_srcdir)/depcomp +am__depfiles_maybe = depfiles +am__mv = mv -f +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = +CCLD = $(CC) +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = +SOURCES = $(libgviewrender_la_SOURCES) +DIST_SOURCES = $(am__libgviewrender_la_SOURCES_DIST) +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +HEADERS = $(library_include_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` +ETAGS = etags +CTAGS = ctags +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +ALL_LINGUAS = @ALL_LINGUAS@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CATALOGS = @CATALOGS@ +CATOBJEXT = @CATOBJEXT@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DATADIRNAME = @DATADIRNAME@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GETTEXT_PACKAGE_V4L2CORE = @GETTEXT_PACKAGE_V4L2CORE@ +GMOFILES = @GMOFILES@ +GMSGFMT = @GMSGFMT@ +GREP = @GREP@ +GSL_CFLAGS = @GSL_CFLAGS@ +GSL_LIBS = @GSL_LIBS@ +GUVCVIEW_CFLAGS = @GUVCVIEW_CFLAGS@ +GUVCVIEW_LIBS = @GUVCVIEW_LIBS@ +GVIEWAUDIO_API_VERSION = @GVIEWAUDIO_API_VERSION@ +GVIEWAUDIO_CFLAGS = @GVIEWAUDIO_CFLAGS@ +GVIEWAUDIO_LD_NAME = @GVIEWAUDIO_LD_NAME@ +GVIEWAUDIO_LIBRARY_NAME = @GVIEWAUDIO_LIBRARY_NAME@ +GVIEWAUDIO_LIBRARY_VERSION = @GVIEWAUDIO_LIBRARY_VERSION@ +GVIEWAUDIO_LIBS = @GVIEWAUDIO_LIBS@ +GVIEWENCODER_API_VERSION = @GVIEWENCODER_API_VERSION@ +GVIEWENCODER_CFLAGS = @GVIEWENCODER_CFLAGS@ +GVIEWENCODER_LD_NAME = @GVIEWENCODER_LD_NAME@ +GVIEWENCODER_LIBRARY_NAME = @GVIEWENCODER_LIBRARY_NAME@ +GVIEWENCODER_LIBRARY_VERSION = @GVIEWENCODER_LIBRARY_VERSION@ +GVIEWENCODER_LIBS = @GVIEWENCODER_LIBS@ +GVIEWRENDER_API_VERSION = @GVIEWRENDER_API_VERSION@ +GVIEWRENDER_CFLAGS = @GVIEWRENDER_CFLAGS@ +GVIEWRENDER_LD_NAME = @GVIEWRENDER_LD_NAME@ +GVIEWRENDER_LIBRARY_NAME = @GVIEWRENDER_LIBRARY_NAME@ +GVIEWRENDER_LIBRARY_VERSION = @GVIEWRENDER_LIBRARY_VERSION@ +GVIEWRENDER_LIBS = @GVIEWRENDER_LIBS@ +GVIEWV4L2CORE_API_VERSION = @GVIEWV4L2CORE_API_VERSION@ +GVIEWV4L2CORE_CFLAGS = @GVIEWV4L2CORE_CFLAGS@ +GVIEWV4L2CORE_LD_NAME = @GVIEWV4L2CORE_LD_NAME@ +GVIEWV4L2CORE_LIBRARY_NAME = @GVIEWV4L2CORE_LIBRARY_NAME@ +GVIEWV4L2CORE_LIBRARY_VERSION = @GVIEWV4L2CORE_LIBRARY_VERSION@ +GVIEWV4L2CORE_LIBS = @GVIEWV4L2CORE_LIBS@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +INSTOBJEXT = @INSTOBJEXT@ +INTLLIBS = @INTLLIBS@ +INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ +INTLTOOL_MERGE = @INTLTOOL_MERGE@ +INTLTOOL_PERL = @INTLTOOL_PERL@ +INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ +INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ +INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ +INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ +INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +MKINSTALLDIRS = @MKINSTALLDIRS@ +MSGFMT = @MSGFMT@ +MSGFMT_OPTS = @MSGFMT_OPTS@ +MSGMERGE = @MSGMERGE@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_RELEASE = @PACKAGE_RELEASE@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +POFILES = @POFILES@ +POSUB = @POSUB@ +PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ +PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ +PTHREAD_CC = @PTHREAD_CC@ +PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ +PTHREAD_LIBS = @PTHREAD_LIBS@ +PULSE_CFLAGS = @PULSE_CFLAGS@ +PULSE_LIBS = @PULSE_LIBS@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +USE_NLS = @USE_NLS@ +VERSION = @VERSION@ +XGETTEXT = @XGETTEXT@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +acx_pthread_config = @acx_pthread_config@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +intltool__v_merge_options_ = @intltool__v_merge_options_@ +intltool__v_merge_options_0 = @intltool__v_merge_options_0@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ + +# Public headers +h_sources = gviewrender.h +c_sources = render.c render_fx.c render_osd_vu_meter.c $(am__append_1) \ + $(am__append_2) + +#Install the headers in a versioned directory - guvcvideo-x.x/libgviewrender: +library_includedir = $(includedir)/$(PACKAGE)-$(PACKAGE_RELEASE)/$(GVIEWRENDER_LIBRARY_NAME) +library_include_HEADERS = $(h_sources) + +#AM_CFLAGS = +lib_LTLIBRARIES = libgviewrender.la +libgviewrender_la_SOURCES = $(h_sources) $(c_sources) +libgviewrender_la_CFLAGS = $(GVIEWRENDER_CFLAGS) \ + $(GSL_CFLAGS) \ + $(PTHREAD_CFLAGS) \ + -I$(top_srcdir) \ + -I$(top_srcdir)/includes + +libgviewrender_la_LIBADD = $(GVIEWRENDER_LIBS) $(GSL_LIBS) +libgviewrender_la_LDFLAGS = -version-info $(GVIEWRENDER_LIBRARY_VERSION) -release $(GVIEWRENDER_API_VERSION) +all: all-am + +.SUFFIXES: +.SUFFIXES: .c .lo .o .obj +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign gview_render/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign gview_render/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +install-libLTLIBRARIES: $(lib_LTLIBRARIES) + @$(NORMAL_INSTALL) + @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ + list2=; for p in $$list; do \ + if test -f $$p; then \ + list2="$$list2 $$p"; \ + else :; fi; \ + done; \ + test -z "$$list2" || { \ + echo " $(MKDIR_P) '$(DESTDIR)$(libdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(libdir)" || exit 1; \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \ + } + +uninstall-libLTLIBRARIES: + @$(NORMAL_UNINSTALL) + @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ + for p in $$list; do \ + $(am__strip_dir) \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \ + done + +clean-libLTLIBRARIES: + -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) + @list='$(lib_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + +libgviewrender.la: $(libgviewrender_la_OBJECTS) $(libgviewrender_la_DEPENDENCIES) $(EXTRA_libgviewrender_la_DEPENDENCIES) + $(AM_V_CCLD)$(libgviewrender_la_LINK) -rpath $(libdir) $(libgviewrender_la_OBJECTS) $(libgviewrender_la_LIBADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgviewrender_la-render.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgviewrender_la-render_fx.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgviewrender_la-render_osd_vu_meter.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgviewrender_la-render_sdl1.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgviewrender_la-render_sdl2.Plo@am__quote@ + +.c.o: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< + +.c.obj: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` + +.c.lo: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< + +libgviewrender_la-render.lo: render.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgviewrender_la_CFLAGS) $(CFLAGS) -MT libgviewrender_la-render.lo -MD -MP -MF $(DEPDIR)/libgviewrender_la-render.Tpo -c -o libgviewrender_la-render.lo `test -f 'render.c' || echo '$(srcdir)/'`render.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgviewrender_la-render.Tpo $(DEPDIR)/libgviewrender_la-render.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='render.c' object='libgviewrender_la-render.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgviewrender_la_CFLAGS) $(CFLAGS) -c -o libgviewrender_la-render.lo `test -f 'render.c' || echo '$(srcdir)/'`render.c + +libgviewrender_la-render_fx.lo: render_fx.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgviewrender_la_CFLAGS) $(CFLAGS) -MT libgviewrender_la-render_fx.lo -MD -MP -MF $(DEPDIR)/libgviewrender_la-render_fx.Tpo -c -o libgviewrender_la-render_fx.lo `test -f 'render_fx.c' || echo '$(srcdir)/'`render_fx.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgviewrender_la-render_fx.Tpo $(DEPDIR)/libgviewrender_la-render_fx.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='render_fx.c' object='libgviewrender_la-render_fx.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgviewrender_la_CFLAGS) $(CFLAGS) -c -o libgviewrender_la-render_fx.lo `test -f 'render_fx.c' || echo '$(srcdir)/'`render_fx.c + +libgviewrender_la-render_osd_vu_meter.lo: render_osd_vu_meter.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgviewrender_la_CFLAGS) $(CFLAGS) -MT libgviewrender_la-render_osd_vu_meter.lo -MD -MP -MF $(DEPDIR)/libgviewrender_la-render_osd_vu_meter.Tpo -c -o libgviewrender_la-render_osd_vu_meter.lo `test -f 'render_osd_vu_meter.c' || echo '$(srcdir)/'`render_osd_vu_meter.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgviewrender_la-render_osd_vu_meter.Tpo $(DEPDIR)/libgviewrender_la-render_osd_vu_meter.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='render_osd_vu_meter.c' object='libgviewrender_la-render_osd_vu_meter.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgviewrender_la_CFLAGS) $(CFLAGS) -c -o libgviewrender_la-render_osd_vu_meter.lo `test -f 'render_osd_vu_meter.c' || echo '$(srcdir)/'`render_osd_vu_meter.c + +libgviewrender_la-render_sdl2.lo: render_sdl2.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgviewrender_la_CFLAGS) $(CFLAGS) -MT libgviewrender_la-render_sdl2.lo -MD -MP -MF $(DEPDIR)/libgviewrender_la-render_sdl2.Tpo -c -o libgviewrender_la-render_sdl2.lo `test -f 'render_sdl2.c' || echo '$(srcdir)/'`render_sdl2.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgviewrender_la-render_sdl2.Tpo $(DEPDIR)/libgviewrender_la-render_sdl2.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='render_sdl2.c' object='libgviewrender_la-render_sdl2.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgviewrender_la_CFLAGS) $(CFLAGS) -c -o libgviewrender_la-render_sdl2.lo `test -f 'render_sdl2.c' || echo '$(srcdir)/'`render_sdl2.c + +libgviewrender_la-render_sdl1.lo: render_sdl1.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgviewrender_la_CFLAGS) $(CFLAGS) -MT libgviewrender_la-render_sdl1.lo -MD -MP -MF $(DEPDIR)/libgviewrender_la-render_sdl1.Tpo -c -o libgviewrender_la-render_sdl1.lo `test -f 'render_sdl1.c' || echo '$(srcdir)/'`render_sdl1.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgviewrender_la-render_sdl1.Tpo $(DEPDIR)/libgviewrender_la-render_sdl1.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='render_sdl1.c' object='libgviewrender_la-render_sdl1.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgviewrender_la_CFLAGS) $(CFLAGS) -c -o libgviewrender_la-render_sdl1.lo `test -f 'render_sdl1.c' || echo '$(srcdir)/'`render_sdl1.c + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +install-library_includeHEADERS: $(library_include_HEADERS) + @$(NORMAL_INSTALL) + @list='$(library_include_HEADERS)'; test -n "$(library_includedir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(library_includedir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(library_includedir)" || exit 1; \ + fi; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(library_includedir)'"; \ + $(INSTALL_HEADER) $$files "$(DESTDIR)$(library_includedir)" || exit $$?; \ + done + +uninstall-library_includeHEADERS: + @$(NORMAL_UNINSTALL) + @list='$(library_include_HEADERS)'; test -n "$(library_includedir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(library_includedir)'; $(am__uninstall_files_from_dir) + +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + set x; \ + here=`pwd`; \ + $(am__define_uniq_tagged_files); \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(LTLIBRARIES) $(HEADERS) +installdirs: + for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(library_includedir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \ + mostlyclean-am + +distclean: distclean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: install-library_includeHEADERS + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: install-libLTLIBRARIES + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-libLTLIBRARIES \ + uninstall-library_includeHEADERS + +.MAKE: install-am install-strip + +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libLTLIBRARIES clean-libtool cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-libLTLIBRARIES \ + install-library_includeHEADERS install-man install-pdf \ + install-pdf-am install-ps install-ps-am install-strip \ + installcheck installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags tags-am uninstall uninstall-am uninstall-libLTLIBRARIES \ + uninstall-library_includeHEADERS + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff -Nru guvcview-1.7.3/gview_render/render.c guvcview-2.0.1+ubuntu1~ppa1/gview_render/render.c --- guvcview-1.7.3/gview_render/render.c 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/gview_render/render.c 2014-10-05 10:41:44.000000000 +0000 @@ -0,0 +1,444 @@ +/*******************************************************************************# +# guvcview http://guvcview.sourceforge.net # +# # +# Paulo Assis # +# Nobuhiro Iwamatsu # +# Add UYVY color support(Macbook iSight) # +# Flemming Frandsen # +# Add VU meter OSD # +# # +# This program is free software; you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation; either version 2 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program; if not, write to the Free Software # +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # +# # +********************************************************************************/ + +/*******************************************************************************# +# # +# Render library # +# # +********************************************************************************/ + +#include +#include +#include +#include +#include +#include +#include +#include +/* support for internationalization - i18n */ +#include +#include + +#include "gviewrender.h" +#include "../config.h" + +#if ENABLE_SDL2 + #include "render_sdl2.h" +#else + #include "render_sdl1.h" +#endif + + +int verbosity = 0; + +static int render_api = RENDER_SDL; + +static int my_width = 0; +static int my_height = 0; + +static uint32_t my_osd_mask = REND_OSD_NONE; + +static float osd_vu_level[2] = {0, 0}; + +static render_events_t render_events_list[] = +{ + { + .id = EV_QUIT, + .callback = NULL, + .data = NULL + + }, + { + .id = EV_KEY_UP, + .callback = NULL, + .data = NULL + }, + { + .id = EV_KEY_DOWN, + .callback = NULL, + .data = NULL + }, + { + .id = EV_KEY_LEFT, + .callback = NULL, + .data = NULL + }, + { + .id = EV_KEY_RIGHT, + .callback = NULL, + .data = NULL + }, + { + .id = EV_KEY_SPACE, + .callback = NULL, + .data = NULL + }, + { + .id = EV_KEY_I, + .callback = NULL, + .data = NULL + }, + { + .id = EV_KEY_V, + .callback = NULL, + .data = NULL + }, + { + .id = -1, /*end of list*/ + .callback = NULL, + .data = NULL + } +}; + +/* + * set verbosity + * args: + * value - verbosity value + * + * asserts: + * none + * + * returns: none + */ +void render_set_verbosity(int value) +{ + verbosity = value; +} + +/* + * set the osd mask + * args: + * mask - osd mask (ored) + * + * asserts: + * none + * + * returns: none + */ +void render_set_osd_mask(uint32_t mask) +{ + my_osd_mask = mask; +} + +/* + * get the osd mask + * args: + * none + * + * asserts: + * none + * + * returns: osd mask + */ +uint32_t render_get_osd_mask() +{ + return (my_osd_mask); +} + +/* + * set the vu level for the osd vu meter + * args: + * vu_level - vu level value (2 channel array) + * + * asserts: + * none + * + * returns: none + */ +void render_set_vu_level(float vu_level[2]) +{ + osd_vu_level[0] = vu_level[0]; + osd_vu_level[1] = vu_level[1]; +} + +/* + * get the vu level for the osd vu meter + * args: + * vu_level - two channel array were vu_level is to be copied + * + * asserts: + * none + * + * returns array with vu meter level + */ +void render_get_vu_level(float vu_level[2]) +{ + vu_level[0] = osd_vu_level[0]; + vu_level[1] = osd_vu_level[1]; +} + +/* + * get render width + * args: + * none + * + * asserts: + * none + * + * returns: render width + */ +int render_get_width() +{ + return my_width; +} + +/* + * get render height + * args: + * none + * + * asserts: + * none + * + * returns: render height + */ +int render_get_height() +{ + return my_height; +} + +/* + * render initialization + * args: + * render - render API to use (RENDER_NONE, RENDER_SDL1, ...) + * width - render width + * height - render height + * flags - window flags: + * 0- none + * 1- fullscreen + * 2- maximized + * + * asserts: + * none + * + * returns: error code + */ +int render_init(int render, int width, int height, int flags) +{ + + int ret = 0; + + render_api = render; + my_width = width; + my_height = height; + + switch(render_api) + { + case RENDER_NONE: + break; + + case RENDER_SDL: + default: + #if ENABLE_SDL2 + ret = init_render_sdl2(my_width, my_height, flags); + #else + ret = init_render_sdl1(my_width, my_height, flags); + #endif + break; + } + + if(ret) + render_api = RENDER_NONE; + + return ret; +} + +/* + * render a frame + * args: + * frame - pointer to frame data (yuyv format) + * mask - fx filter mask (or'ed) + * + * asserts: + * frame is not null + * + * returns: error code + */ +int render_frame(uint8_t *frame, uint32_t mask) +{ + /*asserts*/ + assert(frame != NULL); + + /*apply fx filters to frame*/ + render_fx_apply(frame, my_width, my_height, mask); + + int ret = 0; + switch(render_api) + { + case RENDER_NONE: + break; + + case RENDER_SDL: + default: + #if ENABLE_SDL2 + ret = render_sdl2_frame(frame, my_width, my_height); + render_sdl2_dispatch_events(); + #else + ret = render_sdl1_frame(frame, my_width, my_height); + render_sdl1_dispatch_events(); + #endif + break; + } + + return ret; +} + +/* + * set caption + * args: + * caption - string with render window caption + * + * asserts: + * none + * + * returns: none + */ +void render_set_caption(const char* caption) +{ + switch(render_api) + { + case RENDER_NONE: + break; + + case RENDER_SDL: + default: + #if ENABLE_SDL2 + set_render_sdl2_caption(caption); + #else + set_render_sdl1_caption(caption); + #endif + break; + } +} + +/* + * clean render data + * args: + * none + * + * asserts: + * none + * + * returns: none + */ +void render_close() +{ + switch(render_api) + { + case RENDER_NONE: + break; + + case RENDER_SDL: + default: + #if ENABLE_SDL2 + render_sdl2_clean(); + #else + render_sdl1_clean(); + #endif + break; + } + + /*clean fx data*/ + render_clean_fx(); + + my_width = 0; + my_height = 0; +} + +/* + * get event index on render_events_list + * args: + * id - event id + * + * asserts: + * none + * + * returns: event index or -1 on error + */ +int render_get_event_index(int id) +{ + int i = 0; + while(render_events_list[i].id >= 0) + { + if(render_events_list[i].id == id) + return i; + + i++; + } + return -1; +} + +/* + * set event callback + * args: + * id - event id + * callback_function - pointer to callback function + * data - pointer to user data (passed to callback) + * + * asserts: + * none + * + * returns: error code + */ +int render_set_event_callback(int id, render_event_callback callback_function, void *data) +{ + int index = render_get_event_index(id); + if(index < 0) + return index; + + render_events_list[index].callback = callback_function; + render_events_list[index].data = data; + + return 0; +} + +/* + * call the event callback for event id + * args: + * id - event id + * + * asserts: + * none + * + * returns: error code + */ +int render_call_event_callback(int id) +{ + int index = render_get_event_index(id); + + if(verbosity > 1) + printf("RENDER: event %i -> callback %i\n", id, index); + + if(index < 0) + return index; + + if(render_events_list[index].callback == NULL) + return -1; + + int ret = render_events_list[index].callback(render_events_list[index].data); + + return ret; +} + diff -Nru guvcview-1.7.3/gview_render/render_fx.c guvcview-2.0.1+ubuntu1~ppa1/gview_render/render_fx.c --- guvcview-1.7.3/gview_render/render_fx.c 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/gview_render/render_fx.c 2014-10-05 10:41:44.000000000 +0000 @@ -0,0 +1,794 @@ +/*******************************************************************************# +# guvcview http://guvcview.sourceforge.net # +# # +# Paulo Assis # +# # +# This program is free software; you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation; either version 2 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program; if not, write to the Free Software # +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # +# # +********************************************************************************/ + +#include +#include +#include +#include +#include +#include +#include + +#include "gviewrender.h" +#include "gview.h" +#include "../config.h" + +/*random generator (HAS_GSL is set in ../config.h)*/ +#ifdef HAS_GSL + #include +#endif + + +typedef struct _particle_t +{ + int PX; + int PY; + uint8_t Y; + uint8_t U; + uint8_t V; + int size; + float decay; +} particle_t; + +static particle_t *particles = NULL; + +/* + * Flip YUYV frame - horizontal + * args: + * frame - pointer to frame buffer (yuyv format) + * width - frame width + * height- frame height + * + * asserts: + * frame is not null + * + * returns: void + */ +static void fx_yuyv_mirror (uint8_t *frame, int width, int height) +{ + /*asserts*/ + assert(frame != NULL); + + int h=0; + int w=0; + int sizeline = width*2; /* 2 bytes per pixel*/ + uint8_t *pframe; + pframe=frame; + uint8_t line[sizeline-1]; /*line buffer*/ + for (h=0; h < height; h++) + { /*line iterator*/ + for(w=sizeline-1; w > 0; w = w - 4) + { /* pixel iterator */ + line[w-1]=*pframe++; + line[w-2]=*pframe++; + line[w-3]=*pframe++; + line[w]=*pframe++; + } + memcpy(frame+(h*sizeline), line, sizeline); /*copy reversed line to frame buffer*/ + } +} + +/* + * Flip yu12 frame - horizontal + * args: + * frame - pointer to frame buffer (yu12=iyuv format) + * width - frame width + * height- frame height + * + * asserts: + * frame is not null + * + * returns: void + */ +static void fx_yu12_mirror (uint8_t *frame, int width, int height) +{ + /*asserts*/ + assert(frame != NULL); + + int h=0; + int w=0; + int y_sizeline = width; + int c_sizeline = width/2; + + uint8_t *end = NULL; + uint8_t *end2 = NULL; + + uint8_t *py = frame; + uint8_t *pu = frame + (width * height); + uint8_t *pv = pu + ((width * height) / 4); + + uint8_t pixel =0; + uint8_t pixel2=0; + + /*mirror y*/ + for(h = 0; h < height; h++) + { + py = frame + (h * width); + end = py + width - 1; + for(w = 0; w < width/2; w++) + { + pixel = *py; + *py++ = *end; + *end-- = pixel; + } + } + + /*mirror u v*/ + for(h = 0; h < height; h+=2) + { + pu = frame + (width * height) + ((h * width) / 4); + pv = pu + ((width * height) / 4); + end = pu + (width / 2) - 1; + end2 = pv + (width / 2) -1; + for(w = 0; w < width/2; w+=2) + { + pixel = *pu; + pixel2 = *pv; + *pu++ = *end; + *pv++ = *end2; + *end-- = pixel; + *end2-- = pixel2; + } + } +} + +/* + * Invert YUV frame + * args: + * frame - pointer to frame buffer (any yuv format) + * width - frame width + * height- frame height + * + * asserts: + * frame is not null + * + * returns: void + */ +static void fx_yuv_negative(uint8_t *frame, int width, int height) +{ + /*asserts*/ + assert(frame != NULL); + +#ifdef USE_PLANAR_YUV + int size = (width * height * 5) / 4; +#else + int size= width * height * 2; +#endif + int i=0; + for(i=0; i < size; i++) + frame[i] = ~frame[i]; +} + +/* + * Flip YUV frame - vertical + * args: + * frame - pointer to frame buffer (yuyv format) + * width - frame width + * height- frame height + * + * asserts: + * frame is not null + * + * returns: void + */ +static void fx_yuyv_upturn(uint8_t *frame, int width, int height) +{ + /*asserts*/ + assert(frame != NULL); + + int h = 0; + int sizeline = width * 2; /* 2 bytes per pixel*/ + uint8_t line1[sizeline-1]; /*line1 buffer*/ + uint8_t line2[sizeline-1]; /*line2 buffer*/ + for ( h = 0; h < height/2; ++h) + { /*line iterator*/ + memcpy(line1, frame + h * sizeline, sizeline); + memcpy(line2, frame + (height - 1 - h) * sizeline, sizeline); + + memcpy(frame + h * sizeline, line2, sizeline); + memcpy(frame + (height - 1 - h) * sizeline, line1, sizeline); + } +} + +/* + * Flip yu12 frame - vertical + * args: + * frame - pointer to frame buffer (yu12 format) + * width - frame width + * height- frame height + * + * asserts: + * frame is not null + * + * returns: void + */ +static void fx_yu12_upturn(uint8_t *frame, int width, int height) +{ + /*asserts*/ + assert(frame != NULL); + + int h = 0; + + uint8_t line[width]; /*line1 buffer*/ + + uint8_t *pi = frame; //begin of first y line + uint8_t *pf = pi + (width * (height - 1)); //begin of last y line + + /*upturn y*/ + for ( h = 0; h < height / 2; ++h) + { /*line iterator*/ + memcpy(line, pi, width); + memcpy(pi, pf, width); + memcpy(pf, line, width); + + pi+=width; + pf-=width; + + } + + /*upturn u*/ + pi = frame + (width * height); //begin of first u line + pf = pi + ((width * height) / 4) - (width / 2); //begin of last u line + for ( h = 0; h < height / 2; h += 2) //every two lines = height / 4 + { /*line iterator*/ + memcpy(line, pi, width / 2); + memcpy(pi, pf, width / 2); + memcpy(pf, line, width / 2); + + pi+=width/2; + pf-=width/2; + } + + /*upturn v*/ + pi = frame + ((width * height * 5) / 4); //begin of first v line + pf = pi + ((width * height) / 4) - (width / 2); //begin of last v line + for ( h = 0; h < height / 2; h += 2) //every two lines = height / 4 + { /*line iterator*/ + memcpy(line, pi, width / 2); + memcpy(pi, pf, width / 2); + memcpy(pf, line, width / 2); + + pi+=width/2; + pf-=width/2; + } + +} + +/* + * Monochromatic effect for YUYV frame + * args: + * frame - pointer to frame buffer (yuyv format) + * width - frame width + * height- frame height + * + * asserts: + * frame is not null + * + * returns: void + */ +static void fx_yuyv_monochrome(uint8_t* frame, int width, int height) +{ + int size = width * height * 2; + int i = 0; + + for(i=0; i < size; i = i + 4) + { /* keep Y - luma */ + frame[i+1]=0x80;/*U - median (half the max value)=128*/ + frame[i+3]=0x80;/*V - median (half the max value)=128*/ + } +} + +/* + * Monochromatic effect for yu12 frame + * args: + * frame - pointer to frame buffer (yu12 format) + * width - frame width + * height- frame height + * + * asserts: + * frame is not null + * + * returns: void + */ +static void fx_yu12_monochrome(uint8_t* frame, int width, int height) +{ + + uint8_t *puv = frame + (width * height); //skip luma + + int i = 0; + + for(i=0; i < (width * height) / 2; ++i) + { /* keep Y - luma */ + *puv++=0x80;/*median (half the max value)=128*/ + } +} + + +#ifdef HAS_GSL +/* + * Break yuyv image in little square pieces + * args: + * frame - pointer to frame buffer (yuyv format) + * width - frame width + * height - frame height + * piece_size - multiple of 2 (we need at least 2 pixels to get the entire pixel information) + * + * asserts: + * frame is not null + */ +static void fx_yuyv_pieces(uint8_t* frame, int width, int height, int piece_size ) +{ + int numx = width / piece_size; //number of pieces in x axis + int numy = height / piece_size; //number of pieces in y axis + uint8_t *piece = calloc (piece_size * piece_size * 2, sizeof(uint8_t)); + if(piece == NULL) + { + fprintf(stderr,"RENDER: FATAL memory allocation failure (fx_pieces): %s\n", strerror(errno)); + exit(-1); + } + int i = 0, j = 0, line = 0, column = 0, linep = 0, px = 0, py = 0; + + /*random generator setup*/ + gsl_rng_env_setup(); + const gsl_rng_type *T = gsl_rng_default; + gsl_rng *r = gsl_rng_alloc (T); + + int rot = 0; + + for(j = 0; j < numy; j++) + { + int row = j * piece_size; + for(i = 0; i < numx; i++) + { + column = i * piece_size * 2; + //get piece + for(py = 0; py < piece_size; py++) + { + linep = py * piece_size * 2; + line = (py + row) * width * 2; + for(px=0 ; px < piece_size * 2; px++) + { + piece[px + linep] = frame[(px + column) + line]; + } + } + /*rotate piece and copy it to frame*/ + //rotation is random + rot = (int) lround(8 * gsl_rng_uniform (r)); /*0 to 8*/ + + switch(rot) + { + case 0: // do nothing + break; + case 5: + case 1: //mirror + fx_yuyv_mirror(piece, piece_size, piece_size); + break; + case 6: + case 2: //upturn + fx_yuyv_upturn(piece, piece_size, piece_size); + break; + case 4: + case 3://mirror upturn + fx_yuyv_upturn(piece, piece_size, piece_size); + fx_yuyv_mirror(piece, piece_size, piece_size); + break; + default: //do nothing + break; + } + //write piece + for(py = 0; py < piece_size; py++) + { + linep = py * piece_size * 2; + line = (py + row) * width * 2; + for(px=0 ; px < piece_size * 2; px++) + { + frame[(px + column) + line] = piece[px + linep]; + } + } + } + } + + /*free the random seed generator*/ + gsl_rng_free (r); + /*free the piece buffer*/ + free(piece); +} + +/* + * Break yu12 image in little square pieces + * args: + * frame - pointer to frame buffer (yu12 format) + * width - frame width + * height - frame height + * piece_size - multiple of 2 (we need at least 2 pixels to get the entire pixel information) + * + * asserts: + * frame is not null + */ +static void fx_yu12_pieces(uint8_t* frame, int width, int height, int piece_size ) +{ + int numx = width / piece_size; //number of pieces in x axis + int numy = height / piece_size; //number of pieces in y axis + + uint8_t piece[(piece_size * piece_size * 3) / 2]; + uint8_t *ppiece = piece; + + int i = 0, j = 0, w = 0, h = 0; + + /*random generator setup*/ + gsl_rng_env_setup(); + const gsl_rng_type *T = gsl_rng_default; + gsl_rng *r = gsl_rng_alloc (T); + + int rot = 0; + + uint8_t *py = NULL; + uint8_t *pu = NULL; + uint8_t *pv = NULL; + + for(h = 0; h < height; h += piece_size) + { + for(w = 0; w < width; w += piece_size) + { + uint8_t *ppy = piece; + uint8_t *ppu = piece + (piece_size * piece_size); + uint8_t *ppv = ppu + ((piece_size * piece_size) / 4); + + for(i = 0; i < piece_size; ++i) + { + py = frame + ((h + i) * width) + w; + for (j=0; j < piece_size; ++j) + { + *ppy++ = *py++; + } + } + + for(i = 0; i < piece_size; i += 2) + { + uint8_t *pu = frame + (width * height) + (((h + i) * width) / 4) + (w / 2); + uint8_t *pv = pu + ((width * height) / 4); + + for(j = 0; j < piece_size; j += 2) + { + *ppu++ = *pu++; + *ppv++ = *pv++; + } + } + + ppy = piece; + ppu = piece + (piece_size * piece_size); + ppv = ppu + ((piece_size * piece_size) / 4); + + /*rotate piece and copy it to frame*/ + //rotation is random + rot = (int) lround(8 * gsl_rng_uniform (r)); /*0 to 8*/ + + switch(rot) + { + case 0: // do nothing + break; + case 5: + case 1: //mirror + fx_yu12_mirror(piece, piece_size, piece_size); + break; + case 6: + case 2: //upturn + fx_yu12_upturn(piece, piece_size, piece_size); + break; + case 4: + case 3://mirror upturn + fx_yu12_upturn(piece, piece_size, piece_size); + fx_yu12_mirror(piece, piece_size, piece_size); + break; + default: //do nothing + break; + } + + ppy = piece; + ppu = piece + (piece_size * piece_size); + ppv = ppu + ((piece_size * piece_size) / 4); + + for(i = 0; i < piece_size; ++i) + { + py = frame + ((h + i) * width) + w; + for (j=0; j < piece_size; ++j) + { + *py++ = *ppy++; + } + } + + for(i = 0; i < piece_size; i += 2) + { + uint8_t *pu = frame + (width * height) + (((h + i) * width) / 4) + (w / 2); + uint8_t *pv = pu + ((width * height) / 4); + + for(j = 0; j < piece_size; j += 2) + { + *pu++ = *ppu++; + *pv++ = *ppv++; + } + } + } + } + + /*free the random seed generator*/ + gsl_rng_free (r); +} + +/* + * Trail of particles obtained from the image frame + * args: + * frame - pointer to frame buffer (yuyv format) + * width - frame width + * height - frame height + * trail_size - trail size (in frames) + * particle_size - maximum size in pixels - should be even (square - size x size) + * + * asserts: + * frame is not null + * + * returns: void + */ +static void fx_particles(uint8_t* frame, int width, int height, int trail_size, int particle_size) +{ + /*asserts*/ + assert(frame != NULL); + + int i,j,w,h = 0; + int part_w = width>>7; + int part_h = height>>6; + + /*random generator setup*/ + gsl_rng_env_setup(); + const gsl_rng_type *T = gsl_rng_default; + gsl_rng *r = gsl_rng_alloc (T); + + /*allocation*/ + if (particles == NULL) + { + particles = calloc(trail_size * part_w * part_h, sizeof(particle_t)); + if(particles == NULL) + { + fprintf(stderr,"RENDER: FATAL memory allocation failure (fx_particles): %s\n", strerror(errno)); + exit(-1); + } + } + + particle_t *part = particles; + particle_t *part1 = part; + + /*move particles in trail*/ + for (i = trail_size; i > 1; --i) + { + part += (i - 1) * part_w * part_h; + part1 += (i - 2) * part_w * part_h; + + for (j= 0; j < part_w * part_h; ++j) + { + if(part1->decay > 0) + { + part->PX = part1->PX + (int) lround(3 * gsl_rng_uniform (r)); /*0 to 3*/ + part->PY = part1->PY -4 + (int) lround(5 * gsl_rng_uniform (r));/*-4 to 1*/ + + if(ODD(part->PX)) part->PX++; /*make sure PX is allways even*/ + + if((part->PX > (width-particle_size)) || (part->PY > (height-particle_size)) || (part->PX < 0) || (part->PY < 0)) + { + part->PX = 0; + part->PY = 0; + part->decay = 0; + } + else + { + part->decay = part1->decay - 1; + } + + part->Y = part1->Y; + part->U = part1->U; + part->V = part1->V; + part->size = part1->size; + } + else + { + part->decay = 0; + } + part++; + part1++; + } + part = particles; /*reset*/ + part1 = part; + } + + part = particles; /*reset*/ + + /*get particles from frame (one pixel per particle - make PX allways even)*/ + for(i =0; i < part_w * part_h; i++) + { + /* (2 * particle_size) to (width - 4 * particle_size)*/ + part->PX = 2 * particle_size + (int) lround( (width - 6 * particle_size) * gsl_rng_uniform (r)); + /* (2 * particle_size) to (height - 4 * particle_size)*/ + part->PY = 2 * particle_size + (int) lround( (height - 6 * particle_size) * gsl_rng_uniform (r)); + + if(ODD(part->PX)) part->PX++; + +#ifdef USE_PLANAR_YUV + int y_pos = part->PX + (part->PY * width); + int u_pos = (part->PX + (part->PY * width / 2)) / 2; + int v_pos = u_pos + ((width * height) / 4); + + part->Y = frame[y_pos]; + part->U = frame[u_pos]; + part->V = frame[v_pos]; +#else + int y_pos = part->PX * 2 + (part->PY * width * 2); + + part->Y = frame[y_pos]; + part->U = frame[y_pos +1]; + part->V = frame[y_pos +3]; +#endif + part->size = 1 + (int) lround((particle_size -1) * gsl_rng_uniform (r)); + if(ODD(part->size)) part->size++; + + part->decay = (float) trail_size; + + part++; /*next particle*/ + } + + part = particles; /*reset*/ + int line = 0; + float blend =0; + float blend1 =0; + /*render particles to frame (expand pixel to particle size)*/ + for (i = 0; i < trail_size * part_w * part_h; i++) + { + if(part->decay > 0) + { +#ifdef USE_PLANAR_YUV + int y_pos = part->PX + (part->PY * width); + int u_pos = (part->PX + (part->PY * width / 2)) / 2; + int v_pos = u_pos + ((width * height) / 4); + + blend = part->decay/trail_size; + blend1= 1 - blend; + + //y + for(h = 0; h <(part->size); h++) + { + line = h * width; + for (w = 0; w <(part->size); w++) + { + frame[y_pos + line + w] = CLIP((part->Y * blend) + (frame[y_pos + line + w] * blend1)); + } + } + + //u v + for(h = 0; h <(part->size); h+=2) + { + line = (h * width) / 4; + for (w = 0; w <(part->size); w+=2) + { + frame[u_pos + line + (w / 2)] = CLIP((part->U * blend) + (frame[u_pos + line + (w / 2)] * blend1)); + frame[v_pos + line + (w / 2)] = CLIP((part->V * blend) + (frame[v_pos + line + (w / 2)] * blend1)); + } + } +#else + int y_pos = part->PX * 2 + (part->PY * width * 2); + + blend = part->decay/trail_size; + blend1= 1 -blend; + for(h=0; h<(part->size); h++) + { + line = h * width * 2; + for (w=0; w<(part->size)*2; w+=4) + { + frame[y_pos + w + line] = CLIP(part->Y*blend + frame[y_pos + w + line]*blend1); + frame[(y_pos + w + 1) + line] = CLIP(part->U*blend + frame[(y_pos + w + 1) + line]*blend1); + frame[(y_pos + w + 2) + line] = CLIP(part->Y*blend + frame[(y_pos + w + 2) + line]*blend1); + frame[(y_pos + w + 3) + line] = CLIP(part->V*blend + frame[(y_pos + w + 3) + line]*blend1); + } + } +#endif + } + part++; + } + + /*free the random seed generator*/ + gsl_rng_free (r); +} + +#endif + +/* + * Apply fx filters + * args: + * frame - pointer to frame buffer (yuyv format) + * width - frame width + * height - frame height + * mask - or'ed filter mask + * + * asserts: + * frame is not null + * + * returns: void + */ +void render_fx_apply(uint8_t *frame, int width, int height, uint32_t mask) +{ + if(mask != REND_FX_YUV_NOFILT) + { + #ifdef HAS_GSL + if(mask & REND_FX_YUV_PARTICLES) + fx_particles (frame, width, height, 20, 4); + #endif + + if(mask & REND_FX_YUV_MIRROR) +#ifdef USE_PLANAR_YUV + fx_yu12_mirror(frame, width, height); +#else + fx_yuyv_mirror(frame, width, height); +#endif + if(mask & REND_FX_YUV_UPTURN) +#ifdef USE_PLANAR_YUV + fx_yu12_upturn(frame, width, height); +#else + fx_yuyv_upturn(frame, width, height); +#endif + + if(mask & REND_FX_YUV_NEGATE) + fx_yuv_negative (frame, width, height); + + if(mask & REND_FX_YUV_MONOCR) +#ifdef USE_PLANAR_YUV + fx_yu12_monochrome (frame, width, height); +#else + fx_yuyv_monochrome (frame, width, height); +#endif + +#ifdef HAS_GSL + if(mask & REND_FX_YUV_PIECES) + #ifdef USE_PLANAR_YUV + fx_yu12_pieces(frame, width, height, 16 ); + #else + fx_yuyv_pieces(frame, width, height, 16 ); + #endif +#endif + } + else + render_clean_fx(); +} + +/* + * clean fx filters + * args: + * none + * + * asserts: + * none + * + * returns: void + */ +void render_clean_fx() +{ + if(particles != NULL) + { + free(particles); + particles = NULL; + } +} diff -Nru guvcview-1.7.3/gview_render/render.h guvcview-2.0.1+ubuntu1~ppa1/gview_render/render.h --- guvcview-1.7.3/gview_render/render.h 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/gview_render/render.h 2014-10-05 10:41:44.000000000 +0000 @@ -0,0 +1,39 @@ +/*******************************************************************************# +# guvcview http://guvcview.sourceforge.net # +# # +# Paulo Assis # +# Nobuhiro Iwamatsu # +# Add UYVY color support(Macbook iSight) # +# Flemming Frandsen # +# Add VU meter OSD # +# # +# This program is free software; you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation; either version 2 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program; if not, write to the Free Software # +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # +# # +********************************************************************************/ + +/* + * render a vu meter + * args: + * frame - pointer to yuyv frame data + * width - frame width + * height - frame height + * vu_level - vu level values (array with 2 channels) + * + * asserts: + * none + * + * returns: none + */ +void render_osd_vu_meter(uint8_t *frame, int width, int height, float vu_level[2]); diff -Nru guvcview-1.7.3/gview_render/render_osd_vu_meter.c guvcview-2.0.1+ubuntu1~ppa1/gview_render/render_osd_vu_meter.c --- guvcview-1.7.3/gview_render/render_osd_vu_meter.c 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/gview_render/render_osd_vu_meter.c 2014-10-05 10:41:44.000000000 +0000 @@ -0,0 +1,232 @@ +/*******************************************************************************# +# guvcview http://guvcview.sourceforge.net # +# # +# Paulo Assis # +# Nobuhiro Iwamatsu # +# Add UYVY color support(Macbook iSight) # +# Flemming Frandsen # +# Add VU meter OSD # +# # +# This program is free software; you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation; either version 2 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program; if not, write to the Free Software # +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # +# # +********************************************************************************/ + +#include +#include + +#include "gview.h" +#include "gviewrender.h" + +extern int verbosity; + +#define REFERENCE_LEVEL 0.8 +#define VU_BARS 20 + +static float vu_peak[2] = {0.0, 0.0}; +static float vu_peak_freeze[2]= {0.0 ,0.0}; + +/* + * render a vu meter + * args: + * frame - pointer to yuyv frame data + * width - frame width + * height - frame height + * vu_level - vu level values (array with 2 channels) + * + * asserts: + * none + * + * returns: none + */ +void render_osd_vu_meter(uint8_t *frame, int width, int height, float vu_level[2]) +{ + int bw = 2 * (width / (VU_BARS * 8)); /*make it at least two pixels*/ + int bh = height / 24; + + int channel; + for (channel = 0; channel < 2; ++channel) + { + if((render_get_osd_mask() & REND_OSD_VUMETER_MONO) != 0 && channel > 0) + continue; /*if mono mode only render first channel*/ + + /*make sure we have a positive value (required by log10)*/ + if(vu_level[channel] < 0) + vu_level[channel] = -vu_level[channel]; + + /* Handle peak calculation and falloff */ + if (vu_peak[channel] < vu_level[channel]) + { + vu_peak[channel] = vu_level[channel]; + vu_peak_freeze[channel] = 30; + } + else if (vu_peak_freeze[channel] > 0) + { + vu_peak_freeze[channel]--; + } + else if (vu_peak[channel] > vu_level[channel]) + { + vu_peak[channel] -= (vu_peak[channel] - vu_level[channel]) / 10; + } + + /*by default no bar is light */ + float dBuLevel = - 4 * (VU_BARS - 1); + float dBuPeak = - 4 * (VU_BARS - 1); + + if(vu_level[channel] > 0) + dBuLevel = 10 * log10(vu_level[channel] / REFERENCE_LEVEL); + + if(vu_peak[channel] > 0) + dBuPeak = 10 * log10(vu_peak[channel] / REFERENCE_LEVEL); + + /* draw the bars */ + int peaked = 0; + int box = 0; + for (box = 0; box <= (VU_BARS - 1); ++box) + { + /* + * The dB it takes to light the current box + * step of 2 db between boxes + */ + float db = 2 * (box - (VU_BARS - 1)); + + /* start x coordinate for box */ + int bx = box * (bw + 4) + (16); + /* Start y coordinate for box (box top)*/ + int by = channel * (bh + 4) + bh; + + uint8_t y = 127; + uint8_t u = 127; + uint8_t v = 127; + + /*green bar*/ + if (db < -10) + { + y = 154; + u = 72; + v = 57; + } + else if (db < -2) /*yellow bar*/ + { + y = 203; + u = 44; + v = 142; + } + else /*red bar*/ + { + y = 107; + u = 100; + v = 212; + } + + int light = dBuLevel > db; + if (dBuPeak < db+1 && !peaked) + { + peaked = 1; + light = 1; + } + + if (light) + { +#ifdef USE_PLANAR_YUV + uint8_t *py = frame; + uint8_t *pu = frame + (width * height); + uint8_t *pv = pu + ((width * height) / 4); + + /*y*/ + int h = 0; + for(h = 0; h < bh; ++h) + { + py = frame + bx + ((by + h) * width); + int w = 0; + for(w = 0; w < bw; ++w) + { + *py++ = y; + } + } + + /*u v*/ + for(h = 0; h < bh; h += 2) /*every two lines*/ + { + pu = frame + (width * height) + (bx/2) + (((by + h) * width) /4); + pv = pu + ((width * height) / 4); + + int w = 0; + for(w = 0; w < bw; w += 2) /*every two rows*/ + { + *pu++ = u; + *pv++ = v; + } + } +#else + int i = 0; + for (i = 0; i < bh; ++i) + { + int bi = 2 * (bx + by * width); /*2 bytes per pixel*/ + by++; /*next row*/ + + int j = 0; + for (j = 0; j < bw/2; ++j) /*packed yuyv*/ + { + /*we set two pixels in each loop*/ + frame[bi] = y; + frame[bi+1] = u; + frame[bi+2] = y; + frame[bi+3] = v; + bi += 4; /*next two pixels*/ + } + } +#endif + } + else if (bw > 0) /*draw single line*/ + { +#ifdef USE_PLANAR_YUV + uint8_t *py = frame; + uint8_t *pu = frame + (width * height); + uint8_t *pv = pu + ((width * height) / 4); + + int w = 0; + + /*y*/ + py = frame + bx + ((by + bh/2) * width); + for(w = 0; w < bw; ++w) + { + *py++ = y; + } + + /*u v*/ + pu = frame + (width * height) + (bx/2) + (((by + bh/2) * width) /4); + pv = pu + ((width * height) / 4); + for(w = 0; w < bw; w += 2) /*every two rows*/ + { + *pu++ = u; + *pv++ = v; + } +#else + int bi = 2 * (bx + (by + bh/2) * width); + + int j = 0; + for (j = 0; j < bw/2; j++) + { + frame[bi] = y; + frame[bi+1] = u; + frame[bi+2] = y; + frame[bi+3] = v; + bi += 4; + } +#endif + } + } + } +} diff -Nru guvcview-1.7.3/gview_render/render_sdl1.c guvcview-2.0.1+ubuntu1~ppa1/gview_render/render_sdl1.c --- guvcview-1.7.3/gview_render/render_sdl1.c 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/gview_render/render_sdl1.c 2014-10-05 10:41:44.000000000 +0000 @@ -0,0 +1,414 @@ +/*******************************************************************************# +# guvcview http://guvcview.sourceforge.net # +# # +# Paulo Assis # +# Nobuhiro Iwamatsu # +# Add UYVY color support(Macbook iSight) # +# Flemming Frandsen # +# Add VU meter OSD # +# # +# This program is free software; you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation; either version 2 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program; if not, write to the Free Software # +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # +# # +********************************************************************************/ + +#include +#include + +#include "gview.h" +#include "gviewrender.h" +#include "render.h" + +extern int verbosity; + +static int desktop_w = 0; +static int desktop_h = 0; + +static int bpp = 0; + +static SDL_Surface *pscreen = NULL; +static SDL_Overlay *poverlay = NULL; + +static SDL_Rect drect; + +static Uint32 SDL_VIDEO_Flags = + SDL_ANYFORMAT | SDL_RESIZABLE; + +static const SDL_VideoInfo *info; + +/* + * initialize sdl video + * args: + * width - video width + * height - video height + * flags - window flags: + * 0- none + * 1- fullscreen + * 2- maximized + * + * asserts: + * none + * + * returns: pointer to SDL_Overlay + */ +static SDL_Overlay * video_init(int width, int height, int flags) +{ + if(verbosity > 0) + printf("RENDER: Initializing SDL1 render\n"); + + int video_w = width; + int video_h = height; + + if (pscreen == NULL) //init SDL + { + char driver[128]; + /*----------------------------- Test SDL capabilities ---------------------*/ + if (SDL_Init(SDL_INIT_VIDEO|SDL_INIT_TIMER) < 0) + { + fprintf(stderr, "RENDER: Couldn't initialize SDL: %s\n", SDL_GetError()); + return NULL; + } + + /*use hardware acceleration as default*/ + if ( ! getenv("SDL_VIDEO_YUV_HWACCEL") ) putenv("SDL_VIDEO_YUV_HWACCEL=1"); + if ( ! getenv("SDL_VIDEO_YUV_DIRECT") ) putenv("SDL_VIDEO_YUV_DIRECT=1"); + + + if (SDL_VideoDriverName(driver, sizeof(driver)) && verbosity > 0) + { + printf("RENDER: Video driver: %s\n", driver); + } + + info = SDL_GetVideoInfo(); + + if (info->wm_available && verbosity > 0) printf("RENDER: A window manager is available\n"); + + if (info->hw_available) + { + if (verbosity > 0) + printf("RENDER: Hardware surfaces are available (%dK video memory)\n", info->video_mem); + + SDL_VIDEO_Flags |= SDL_HWSURFACE; + SDL_VIDEO_Flags |= SDL_DOUBLEBUF; + } + else + { + SDL_VIDEO_Flags |= SDL_SWSURFACE; + } + + if (info->blit_hw) + { + if (verbosity > 0) printf("RENDER: Copy blits between hardware surfaces are accelerated\n"); + + SDL_VIDEO_Flags |= SDL_ASYNCBLIT; + } + + desktop_w = info->current_w; //get desktop width + desktop_h = info->current_h; //get desktop height + + if(!desktop_w) desktop_w = 800; + if(!desktop_h) desktop_h = 600; + + switch(flags) + { + case 2: /*maximize*/ + video_w = desktop_w; + video_h = desktop_h; + break; + case 1: /*fullscreen*/ + SDL_VIDEO_Flags |= SDL_FULLSCREEN; + break; + case 0: + default: + break; + } + + if (verbosity > 0) + { + if (info->blit_hw_CC) printf("Colorkey blits between hardware surfaces are accelerated\n"); + if (info->blit_hw_A) printf("Alpha blits between hardware surfaces are accelerated\n"); + if (info->blit_sw) printf("Copy blits from software surfaces to hardware surfaces are accelerated\n"); + if (info->blit_sw_CC) printf("Colorkey blits from software surfaces to hardware surfaces are accelerated\n"); + if (info->blit_sw_A) printf("Alpha blits from software surfaces to hardware surfaces are accelerated\n"); + if (info->blit_fill) printf("Color fills on hardware surfaces are accelerated\n"); + } + + SDL_WM_SetCaption("Guvcview Video", NULL); + + /* enable key repeat */ + SDL_EnableKeyRepeat(SDL_DEFAULT_REPEAT_DELAY,SDL_DEFAULT_REPEAT_INTERVAL); + } + + /*------------------------------ SDL init video ---------------------*/ + if(verbosity > 0) + { + printf("RENDER: Desktop resolution = %ix%i\n", desktop_w, desktop_h); + printf("RENDER: Checking video mode %ix%i@32bpp\n", video_w, video_h); + } + + bpp = SDL_VideoModeOK( + video_w, + video_h, + 32, + SDL_VIDEO_Flags); + + if(!bpp) + { + fprintf(stderr, "RENDER: resolution not available\n"); + /*resize video mode*/ + if ((video_w > desktop_w) || (video_h > desktop_h)) + { + video_w = desktop_w; /*use desktop video resolution*/ + video_h = desktop_h; + } + else + { + video_w = 800; + video_h = 600; + } + fprintf(stderr, "RENDER: resizing to %ix%i\n", video_w, video_h); + + } + else + { + if ((bpp != 32) && verbosity > 0) printf("RENDER: recomended color depth = %i\n", bpp); + } + + if(verbosity > 0) + printf("RENDER: setting video mode %ix%i@%ibpp\n", width, height, bpp); + + pscreen = SDL_SetVideoMode( + video_w, + video_h, + bpp, + SDL_VIDEO_Flags); + + if(pscreen == NULL) + { + return (NULL); + } + if(verbosity > 0) + printf("RENDER: creating an overlay\n"); + /*use requested resolution for overlay even if not available as video mode*/ + SDL_Overlay* overlay=NULL; + overlay = SDL_CreateYUVOverlay(width, height, +#ifdef USE_PLANAR_YUV + SDL_IYUV_OVERLAY, /*yuv420p*/ +#else + SDL_YUY2_OVERLAY, /*yuv422*/ +#endif + pscreen); + + SDL_ShowCursor(SDL_DISABLE); + return (overlay); +} + +/* + * init sdl1 render + * args: + * width - overlay width + * height - overlay height + * flags - window flags: + * 0- none + * 1- fullscreen + * 2- maximized + * + * asserts: + * + * returns: error code (0 ok) + */ + int init_render_sdl1(int width, int height, int flags) + { + poverlay = video_init(width, height, flags); + + if(poverlay == NULL) + { + fprintf(stderr, "RENDER: Couldn't create yuv overlay (try disabling hardware accelaration)\n"); + return -1; + } + + assert(pscreen != NULL); + + drect.x = 0; + drect.y = 0; + drect.w = pscreen->w; + drect.h = pscreen->h; + + return 0; + } + +/* + * render a frame + * args: + * frame - pointer to frame data (yuyv format) + * width - frame width + * height - frame height + * + * asserts: + * poverlay is not nul + * frame is not null + * + * returns: error code + */ +int render_sdl1_frame(uint8_t *frame, int width, int height) +{ + /*asserts*/ + assert(poverlay != NULL); + assert(frame != NULL); + + float vu_level[2]; + render_get_vu_level(vu_level); + + uint8_t *p = (uint8_t *) poverlay->pixels[0]; +#ifdef USE_PLANAR_YUV + int size = width * height * 3/2; /* for IYUV */ +#else + int size = width * height * 2; /* 2 bytes per pixel for yuyv*/ +#endif + SDL_LockYUVOverlay(poverlay); + memcpy(p, frame, size); + + /*osd vu meter*/ + if(((render_get_osd_mask() & + (REND_OSD_VUMETER_MONO | REND_OSD_VUMETER_STEREO))) != 0) + render_osd_vu_meter(p, width, height, vu_level); + + SDL_UnlockYUVOverlay(poverlay); + SDL_DisplayYUVOverlay(poverlay, &drect); +} + +/* + * set sdl1 render caption + * args: + * caption - string with render window caption + * + * asserts: + * none + * + * returns: none + */ +void set_render_sdl1_caption(const char* caption) +{ + SDL_WM_SetCaption(caption, NULL); +} + +/* + * dispatch sdl1 render events + * args: + * none + * + * asserts: + * none + * + * returns: none + */ +void render_sdl1_dispatch_events() +{ + SDL_Event event; + + /* Poll for events */ + while( SDL_PollEvent(&event) ) + { + if(event.type==SDL_KEYDOWN) + { + switch( event.key.keysym.sym ) + { + /* Keyboard event */ + /* Pass the event data onto PrintKeyInfo() */ + case SDLK_ESCAPE: + render_call_event_callback(EV_QUIT); + break; + + case SDLK_UP: + render_call_event_callback(EV_KEY_UP); + break; + + case SDLK_DOWN: + render_call_event_callback(EV_KEY_DOWN); + break; + + case SDLK_RIGHT: + render_call_event_callback(EV_KEY_RIGHT); + break; + + case SDLK_LEFT: + render_call_event_callback(EV_KEY_LEFT); + break; + + case SDLK_SPACE: + render_call_event_callback(EV_KEY_SPACE); + break; + + case SDLK_i: + render_call_event_callback(EV_KEY_I); + break; + + case SDLK_v: + render_call_event_callback(EV_KEY_V); + break; + + default: + break; + + } + + switch( event.key.keysym.scancode ) + { + case 220: /*webcam button*/ + break; + } + } + + if(event.type==SDL_VIDEORESIZE) + { + pscreen = + SDL_SetVideoMode( + event.resize.w, + event.resize.h, + bpp, + SDL_VIDEO_Flags); + + drect.w = event.resize.w; + drect.h = event.resize.h; + } + + if(event.type==SDL_QUIT) + { + if(verbosity > 0) + printf("RENDER: (event) quit\n"); + render_call_event_callback(EV_QUIT); + } + } +} +/* + * clean sdl1 render data + * args: + * none + * + * asserts: + * none + * + * returns: none + */ +void render_sdl1_clean() +{ + if(poverlay) + SDL_FreeYUVOverlay(poverlay); + poverlay = NULL; + + SDL_Quit(); + + pscreen = NULL; +} + diff -Nru guvcview-1.7.3/gview_render/render_sdl1.h guvcview-2.0.1+ubuntu1~ppa1/gview_render/render_sdl1.h --- guvcview-1.7.3/gview_render/render_sdl1.h 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/gview_render/render_sdl1.h 2014-10-05 10:41:44.000000000 +0000 @@ -0,0 +1,91 @@ +/*******************************************************************************# +# guvcview http://guvcview.sourceforge.net # +# # +# Paulo Assis # +# Nobuhiro Iwamatsu # +# Add UYVY color support(Macbook iSight) # +# Flemming Frandsen # +# Add VU meter OSD # +# # +# This program is free software; you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation; either version 2 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program; if not, write to the Free Software # +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # +# # +********************************************************************************/ + +/* + * init sdl1 render + * args: + * width - overlay width + * height - overlay height + * flags - window flags: + * 0- none + * 1- fullscreen + * 2- maximized + * + * asserts: + * + * returns: error code (0 ok) + */ +int init_render_sdl1(int width, int height, int flags); + +/* + * render a frame + * args: + * frame - pointer to frame data (yuyv format) + * width - frame width + * height - frame height + * + * asserts: + * poverlay is not nul + * frame is not null + * + * returns: error code + */ +int render_sdl1_frame(uint8_t *frame, int width, int height); + +/* + * set sdl1 render caption + * args: + * caption - string with render window caption + * + * asserts: + * none + * + * returns: none + */ +void set_render_sdl1_caption(const char* caption); + +/* + * dispatch sdl1 render events + * args: + * none + * + * asserts: + * none + * + * returns: none + */ +void render_sdl1_dispatch_events(); + +/* + * clean sdl1 render data + * args: + * none + * + * asserts: + * none + * + * returns: none + */ +void render_sdl1_clean(); diff -Nru guvcview-1.7.3/gview_render/render_sdl2.c guvcview-2.0.1+ubuntu1~ppa1/gview_render/render_sdl2.c --- guvcview-1.7.3/gview_render/render_sdl2.c 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/gview_render/render_sdl2.c 2014-10-05 10:41:44.000000000 +0000 @@ -0,0 +1,437 @@ +/*******************************************************************************# +# guvcview http://guvcview.sourceforge.net # +# # +# Paulo Assis # +# Nobuhiro Iwamatsu # +# Add UYVY color support(Macbook iSight) # +# Flemming Frandsen # +# Add VU meter OSD # +# # +# This program is free software; you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation; either version 2 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program; if not, write to the Free Software # +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # +# # +********************************************************************************/ + +#include +#include + +#include "gview.h" +#include "gviewrender.h" +#include "render.h" +#include "render_sdl2.h" +#include "../config.h" + +extern int verbosity; + +SDL_DisplayMode display_mode; + +static SDL_Window* sdl_window = NULL; +static SDL_Texture* rending_texture = NULL; +static SDL_Renderer* main_renderer = NULL; + +/* + * initialize sdl video + * args: + * width - video width + * height - video height + * flags - window flags: + * 0- none + * 1- fullscreen + * 2- maximized + * + * asserts: + * none + * + * returns: error code + */ +static int video_init(int width, int height, int flags) +{ + int w = width; + int h = height; + int32_t my_flags = SDL_WINDOW_SHOWN | SDL_WINDOW_RESIZABLE; + + switch(flags) + { + case 2: + my_flags |= SDL_WINDOW_MAXIMIZED; + break; + case 1: + my_flags |= SDL_WINDOW_FULLSCREEN_DESKTOP; + break; + case 0: + default: + break; + } + + if(verbosity > 0) + printf("RENDER: Initializing SDL2 render\n"); + + if (sdl_window == NULL) /*init SDL*/ + { + if (SDL_Init(SDL_INIT_VIDEO|SDL_INIT_TIMER) < 0) + { + fprintf(stderr, "RENDER: Couldn't initialize SDL2: %s\n", SDL_GetError()); + return -1; + } + + SDL_SetHint("SDL_HINT_RENDER_SCALE_QUALITY", "1"); + + sdl_window = SDL_CreateWindow( + "Guvcview Video", // window title + SDL_WINDOWPOS_UNDEFINED, // initial x position + SDL_WINDOWPOS_UNDEFINED, // initial y position + w, // width, in pixels + h, // height, in pixels + my_flags + ); + + if(sdl_window == NULL) + { + fprintf(stderr, "RENDER: (SDL2) Couldn't open window: %s\n", SDL_GetError()); + render_sdl2_clean(); + return -2; + } + + int display_index = SDL_GetWindowDisplayIndex(sdl_window); + + int err = SDL_GetDesktopDisplayMode(display_index, &display_mode); + if(!err) + { + if(verbosity > 0) + printf("RENDER: video display %i -> %dx%dpx @ %dhz\n", + display_index, + display_mode.w, + display_mode.h, + display_mode.refresh_rate); + } + else + fprintf(stderr, "RENDER: Couldn't determine display mode for video display %i\n", display_index); + + if(w > display_mode.w) + w = display_mode.w; + if(h > display_mode.h) + h = display_mode.h; + + if(verbosity > 0) + printf("RENDER: setting window size to %ix%i\n", w, h); + + SDL_SetWindowSize(sdl_window, w, h); + } + + if(verbosity > 2) + { + /* Allocate a renderer info struct*/ + SDL_RendererInfo *rend_info = (SDL_RendererInfo *) malloc(sizeof(SDL_RendererInfo)); + if (!rend_info) + { + fprintf(stderr, "RENDER: Couldn't allocate memory for the renderer info data structure\n"); + render_sdl2_clean(); + return -5; + } + /* Print the list of the available renderers*/ + printf("\nRENDER: Available SDL2 rendering drivers:\n"); + int i = 0; + for (i = 0; i < SDL_GetNumRenderDrivers(); i++) + { + if (SDL_GetRenderDriverInfo(i, rend_info) < 0) + { + fprintf(stderr, " Couldn't get SDL2 render driver information: %s\n", SDL_GetError()); + } + else + { + printf(" %2d: %s\n", i, rend_info->name); + printf(" SDL_RENDERER_TARGETTEXTURE [%c]\n", (rend_info->flags & SDL_RENDERER_TARGETTEXTURE) ? 'X' : ' '); + printf(" SDL_RENDERER_SOFTWARE [%c]\n", (rend_info->flags & SDL_RENDERER_SOFTWARE) ? 'X' : ' '); + printf(" SDL_RENDERER_ACCELERATED [%c]\n", (rend_info->flags & SDL_RENDERER_ACCELERATED) ? 'X' : ' '); + printf(" SDL_RENDERER_PRESENTVSYNC [%c]\n", (rend_info->flags & SDL_RENDERER_PRESENTVSYNC) ? 'X' : ' '); + } + } + + free(rend_info); + } + + main_renderer = SDL_CreateRenderer(sdl_window, -1, + SDL_RENDERER_TARGETTEXTURE | + SDL_RENDERER_PRESENTVSYNC | + SDL_RENDERER_ACCELERATED); + + if(main_renderer == NULL) + { + fprintf(stderr, "RENDER: (SDL2) Couldn't get a accelerated renderer: %s\n", SDL_GetError()); + fprintf(stderr, "RENDER: (SDL2) trying with a software renderer\n"); + + main_renderer = SDL_CreateRenderer(sdl_window, -1, + SDL_RENDERER_TARGETTEXTURE | + SDL_RENDERER_SOFTWARE); + + + if(main_renderer == NULL) + { + fprintf(stderr, "RENDER: (SDL2) Couldn't get a software renderer: %s\n", SDL_GetError()); + fprintf(stderr, "RENDER: (SDL2) giving up...\n"); + render_sdl2_clean(); + return -3; + } + } + + if(verbosity > 2) + { + /* Allocate a renderer info struct*/ + SDL_RendererInfo *rend_info = (SDL_RendererInfo *) malloc(sizeof(SDL_RendererInfo)); + if (!rend_info) + { + fprintf(stderr, "RENDER: Couldn't allocate memory for the renderer info data structure\n"); + render_sdl2_clean(); + return -5; + } + + /* Print the name of the current rendering driver */ + if (SDL_GetRendererInfo(main_renderer, rend_info) < 0) + { + fprintf(stderr, "Couldn't get SDL2 rendering driver information: %s\n", SDL_GetError()); + } + printf("RENDER: rendering driver in use: %s\n", rend_info->name); + printf(" SDL_RENDERER_TARGETTEXTURE [%c]\n", (rend_info->flags & SDL_RENDERER_TARGETTEXTURE) ? 'X' : ' '); + printf(" SDL_RENDERER_SOFTWARE [%c]\n", (rend_info->flags & SDL_RENDERER_SOFTWARE) ? 'X' : ' '); + printf(" SDL_RENDERER_ACCELERATED [%c]\n", (rend_info->flags & SDL_RENDERER_ACCELERATED) ? 'X' : ' '); + printf(" SDL_RENDERER_PRESENTVSYNC [%c]\n", (rend_info->flags & SDL_RENDERER_PRESENTVSYNC) ? 'X' : ' '); + + free(rend_info); + } + + SDL_RenderSetLogicalSize(main_renderer, width, height); + SDL_SetRenderDrawBlendMode(main_renderer, SDL_BLENDMODE_NONE); + + rending_texture = SDL_CreateTexture(main_renderer, +#ifdef USE_PLANAR_YUV + SDL_PIXELFORMAT_IYUV, /*yuv420p*/ +#else + SDL_PIXELFORMAT_YUY2, /*yuv422*/ +#endif + SDL_TEXTUREACCESS_STREAMING, + width, + height); + + if(rending_texture == NULL) + { + fprintf(stderr, "RENDER: (SDL2) Couldn't get a texture for rending: %s\n", SDL_GetError()); + render_sdl2_clean(); + return -4; + } + + return 0; +} + +/* + * init sdl2 render + * args: + * width - overlay width + * height - overlay height + * flags - window flags: + * 0- none + * 1- fullscreen + * 2- maximized + * + * asserts: + * + * returns: error code (0 ok) + */ + int init_render_sdl2(int width, int height, int flags) + { + int err = video_init(width, height, flags); + + if(err) + { + fprintf(stderr, "RENDER: Couldn't init the SDL2 rendering engine\n"); + return -1; + } + + assert(rending_texture != NULL); + + return 0; + } + +/* + * render a frame + * args: + * frame - pointer to frame data (yuyv format) + * width - frame width + * height - frame height + * + * asserts: + * poverlay is not nul + * frame is not null + * + * returns: error code + */ +int render_sdl2_frame(uint8_t *frame, int width, int height) +{ + /*asserts*/ + assert(rending_texture != NULL); + assert(frame != NULL); + + float vu_level[2]; + render_get_vu_level(vu_level); + +#ifdef USE_PLANAR_YUV + int size = width * height * 3/2; /* for IYUV */ +#else + int size = width * height * 2; /* 2 bytes per pixel for YUYV */ +#endif + + void* texture_pixels; + int pitch; + + SDL_SetRenderDrawColor(main_renderer, 0, 0, 0, 255); /*black*/ + SDL_RenderClear(main_renderer); + + + if (SDL_LockTexture(rending_texture, NULL, &texture_pixels, &pitch)) + { + fprintf(stderr, "RENDER: couldn't lock texture to write\n"); + return -1; + } + + memcpy(texture_pixels, frame, size); + + /*osd vu meter*/ + if(((render_get_osd_mask() & + (REND_OSD_VUMETER_MONO | REND_OSD_VUMETER_STEREO))) != 0) + render_osd_vu_meter(texture_pixels, width, height, vu_level); + + SDL_UnlockTexture(rending_texture); + + SDL_RenderCopy(main_renderer, rending_texture, NULL, NULL); + + SDL_RenderPresent(main_renderer); +} + +/* + * set sdl2 render caption + * args: + * caption - string with render window caption + * + * asserts: + * none + * + * returns: none + */ +void set_render_sdl2_caption(const char* caption) +{ + SDL_SetWindowTitle(sdl_window, caption); +} + +/* + * dispatch sdl2 render events + * args: + * none + * + * asserts: + * none + * + * returns: none + */ +void render_sdl2_dispatch_events() +{ + + SDL_Event event; + + while( SDL_PollEvent(&event) ) + { + if(event.type==SDL_KEYDOWN) + { + switch( event.key.keysym.sym ) + { + case SDLK_ESCAPE: + render_call_event_callback(EV_QUIT); + break; + + case SDLK_UP: + render_call_event_callback(EV_KEY_UP); + break; + + case SDLK_DOWN: + render_call_event_callback(EV_KEY_DOWN); + break; + + case SDLK_RIGHT: + render_call_event_callback(EV_KEY_RIGHT); + break; + + case SDLK_LEFT: + render_call_event_callback(EV_KEY_LEFT); + break; + + case SDLK_SPACE: + render_call_event_callback(EV_KEY_SPACE); + break; + + case SDLK_i: + render_call_event_callback(EV_KEY_I); + break; + + case SDLK_v: + render_call_event_callback(EV_KEY_V); + break; + + default: + break; + + } + + switch( event.key.keysym.scancode ) + { + case 220: + break; + } + } + + if(event.type==SDL_QUIT) + { + if(verbosity > 0) + printf("RENDER: (event) quit\n"); + render_call_event_callback(EV_QUIT); + } + } +} +/* + * clean sdl2 render data + * args: + * none + * + * asserts: + * none + * + * returns: none + */ +void render_sdl2_clean() +{ + if(rending_texture) + SDL_DestroyTexture(rending_texture); + + rending_texture = NULL; + + if(main_renderer) + SDL_DestroyRenderer(main_renderer); + + main_renderer = NULL; + + if(sdl_window) + SDL_DestroyWindow(sdl_window); + + sdl_window = NULL; + + SDL_Quit(); +} + diff -Nru guvcview-1.7.3/gview_render/render_sdl2.h guvcview-2.0.1+ubuntu1~ppa1/gview_render/render_sdl2.h --- guvcview-1.7.3/gview_render/render_sdl2.h 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/gview_render/render_sdl2.h 2014-10-05 10:41:44.000000000 +0000 @@ -0,0 +1,91 @@ +/*******************************************************************************# +# guvcview http://guvcview.sourceforge.net # +# # +# Paulo Assis # +# Nobuhiro Iwamatsu # +# Add UYVY color support(Macbook iSight) # +# Flemming Frandsen # +# Add VU meter OSD # +# # +# This program is free software; you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation; either version 2 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program; if not, write to the Free Software # +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # +# # +********************************************************************************/ + +/* + * init sdl2 render + * args: + * width - overlay width + * height - overlay height + * flags - window flags: + * 0- none + * 1- fullscreen + * 2- maximized + * + * asserts: + * + * returns: error code (0 ok) + */ +int init_render_sdl2(int width, int height, int flags); + +/* + * render a frame + * args: + * frame - pointer to frame data (yuyv format) + * width - frame width + * height - frame height + * + * asserts: + * poverlay is not nul + * frame is not null + * + * returns: error code + */ +int render_sdl2_frame(uint8_t *frame, int width, int height); + +/* + * set sdl1 render caption + * args: + * caption - string with render window caption + * + * asserts: + * none + * + * returns: none + */ +void set_render_sdl2_caption(const char* caption); + +/* + * dispatch sdl1 render events + * args: + * none + * + * asserts: + * none + * + * returns: none + */ +void render_sdl2_dispatch_events(); + +/* + * clean sdl1 render data + * args: + * none + * + * asserts: + * none + * + * returns: none + */ +void render_sdl2_clean(); diff -Nru guvcview-1.7.3/gview_v4l2core/colorspaces.c guvcview-2.0.1+ubuntu1~ppa1/gview_v4l2core/colorspaces.c --- guvcview-1.7.3/gview_v4l2core/colorspaces.c 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/gview_v4l2core/colorspaces.c 2014-10-05 10:41:44.000000000 +0000 @@ -0,0 +1,2822 @@ +/*******************************************************************************# +# guvcview http://guvcview.sourceforge.net # +# # +# Paulo Assis # +# Nobuhiro Iwamatsu # +# # +# This program is free software; you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation; either version 2 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program; if not, write to the Free Software # +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # +# # +********************************************************************************/ + +#include +#include +#include +#include +#include + +#include "gview.h" +#include "../config.h" + +extern int verbosity; + +/*------------------------------- Color space conversions --------------------*/ + +/*---------------- raw bayer -------------*/ + +/* raw bayer functions + * from libv4l bayer.c, (C) 2008 Hans de Goede + * Note: original bayer_to_bgr24 code from : + * 1394-Based Digital Camera Control Library + * + * Bayer pattern decoding functions + * Written by Damien Douxchamps and Frederic Devernay + * + */ +static void convert_border_bayer_line_to_bgr24( uint8_t* bayer, uint8_t* adjacent_bayer, + uint8_t *bgr, int width, uint8_t start_with_green, uint8_t blue_line) +{ + int t0, t1; + + if (start_with_green) + { + /* First pixel */ + if (blue_line) + { + *bgr++ = bayer[1]; + *bgr++ = bayer[0]; + *bgr++ = adjacent_bayer[0]; + } + else + { + *bgr++ = adjacent_bayer[0]; + *bgr++ = bayer[0]; + *bgr++ = bayer[1]; + } + /* Second pixel */ + t0 = (bayer[0] + bayer[2] + adjacent_bayer[1] + 1) / 3; + t1 = (adjacent_bayer[0] + adjacent_bayer[2] + 1) >> 1; + if (blue_line) + { + *bgr++ = bayer[1]; + *bgr++ = t0; + *bgr++ = t1; + } + else + { + *bgr++ = t1; + *bgr++ = t0; + *bgr++ = bayer[1]; + } + bayer++; + adjacent_bayer++; + width -= 2; + } + else + { + /* First pixel */ + t0 = (bayer[1] + adjacent_bayer[0] + 1) >> 1; + if (blue_line) + { + *bgr++ = bayer[0]; + *bgr++ = t0; + *bgr++ = adjacent_bayer[1]; + } + else + { + *bgr++ = adjacent_bayer[1]; + *bgr++ = t0; + *bgr++ = bayer[0]; + } + width--; + } + + if (blue_line) + { + for ( ; width > 2; width -= 2) + { + t0 = (bayer[0] + bayer[2] + 1) >> 1; + *bgr++ = t0; + *bgr++ = bayer[1]; + *bgr++ = adjacent_bayer[1]; + bayer++; + adjacent_bayer++; + + t0 = (bayer[0] + bayer[2] + adjacent_bayer[1] + 1) / 3; + t1 = (adjacent_bayer[0] + adjacent_bayer[2] + 1) >> 1; + *bgr++ = bayer[1]; + *bgr++ = t0; + *bgr++ = t1; + bayer++; + adjacent_bayer++; + } + } + else + { + for ( ; width > 2; width -= 2) + { + t0 = (bayer[0] + bayer[2] + 1) >> 1; + *bgr++ = adjacent_bayer[1]; + *bgr++ = bayer[1]; + *bgr++ = t0; + bayer++; + adjacent_bayer++; + + t0 = (bayer[0] + bayer[2] + adjacent_bayer[1] + 1) / 3; + t1 = (adjacent_bayer[0] + adjacent_bayer[2] + 1) >> 1; + *bgr++ = t1; + *bgr++ = t0; + *bgr++ = bayer[1]; + bayer++; + adjacent_bayer++; + } + } + + if (width == 2) + { + /* Second to last pixel */ + t0 = (bayer[0] + bayer[2] + 1) >> 1; + if (blue_line) + { + *bgr++ = t0; + *bgr++ = bayer[1]; + *bgr++ = adjacent_bayer[1]; + } + else + { + *bgr++ = adjacent_bayer[1]; + *bgr++ = bayer[1]; + *bgr++ = t0; + } + /* Last pixel */ + t0 = (bayer[1] + adjacent_bayer[2] + 1) >> 1; + if (blue_line) + { + *bgr++ = bayer[2]; + *bgr++ = t0; + *bgr++ = adjacent_bayer[1]; + } + else + { + *bgr++ = adjacent_bayer[1]; + *bgr++ = t0; + *bgr++ = bayer[2]; + } + } + else + { + /* Last pixel */ + if (blue_line) + { + *bgr++ = bayer[0]; + *bgr++ = bayer[1]; + *bgr++ = adjacent_bayer[1]; + } + else + { + *bgr++ = adjacent_bayer[1]; + *bgr++ = bayer[1]; + *bgr++ = bayer[0]; + } + } +} + +/* + * From libdc1394, which on turn was based on OpenCV's Bayer decoding + */ +static void bayer_to_rgbbgr24(uint8_t *bayer, + uint8_t *bgr, int width, int height, + uint8_t start_with_green, uint8_t blue_line) +{ + /* render the first line */ + convert_border_bayer_line_to_bgr24(bayer, bayer + width, bgr, width, + start_with_green, blue_line); + bgr += width * 3; + + /* reduce height by 2 because of the special case top/bottom line */ + for (height -= 2; height; height--) + { + int t0, t1; + /* (width - 2) because of the border */ + uint8_t *bayerEnd = bayer + (width - 2); + + if (start_with_green) + { + /* OpenCV has a bug in the next line, which was + t0 = (bayer[0] + bayer[width * 2] + 1) >> 1; */ + t0 = (bayer[1] + bayer[width * 2 + 1] + 1) >> 1; + /* Write first pixel */ + t1 = (bayer[0] + bayer[width * 2] + bayer[width + 1] + 1) / 3; + if (blue_line) + { + *bgr++ = t0; + *bgr++ = t1; + *bgr++ = bayer[width]; + } + else + { + *bgr++ = bayer[width]; + *bgr++ = t1; + *bgr++ = t0; + } + + /* Write second pixel */ + t1 = (bayer[width] + bayer[width + 2] + 1) >> 1; + if (blue_line) + { + *bgr++ = t0; + *bgr++ = bayer[width + 1]; + *bgr++ = t1; + } + else + { + *bgr++ = t1; + *bgr++ = bayer[width + 1]; + *bgr++ = t0; + } + bayer++; + } + else + { + /* Write first pixel */ + t0 = (bayer[0] + bayer[width * 2] + 1) >> 1; + if (blue_line) + { + *bgr++ = t0; + *bgr++ = bayer[width]; + *bgr++ = bayer[width + 1]; + } + else + { + *bgr++ = bayer[width + 1]; + *bgr++ = bayer[width]; + *bgr++ = t0; + } + } + + if (blue_line) + { + for (; bayer <= bayerEnd - 2; bayer += 2) + { + t0 = (bayer[0] + bayer[2] + bayer[width * 2] + + bayer[width * 2 + 2] + 2) >> 2; + t1 = (bayer[1] + bayer[width] + + bayer[width + 2] + bayer[width * 2 + 1] + + 2) >> 2; + *bgr++ = t0; + *bgr++ = t1; + *bgr++ = bayer[width + 1]; + + t0 = (bayer[2] + bayer[width * 2 + 2] + 1) >> 1; + t1 = (bayer[width + 1] + bayer[width + 3] + + 1) >> 1; + *bgr++ = t0; + *bgr++ = bayer[width + 2]; + *bgr++ = t1; + } + } + else + { + for (; bayer <= bayerEnd - 2; bayer += 2) + { + t0 = (bayer[0] + bayer[2] + bayer[width * 2] + + bayer[width * 2 + 2] + 2) >> 2; + t1 = (bayer[1] + bayer[width] + + bayer[width + 2] + bayer[width * 2 + 1] + + 2) >> 2; + *bgr++ = bayer[width + 1]; + *bgr++ = t1; + *bgr++ = t0; + + t0 = (bayer[2] + bayer[width * 2 + 2] + 1) >> 1; + t1 = (bayer[width + 1] + bayer[width + 3] + + 1) >> 1; + *bgr++ = t1; + *bgr++ = bayer[width + 2]; + *bgr++ = t0; + } + } + + if (bayer < bayerEnd) + { + /* write second to last pixel */ + t0 = (bayer[0] + bayer[2] + bayer[width * 2] + + bayer[width * 2 + 2] + 2) >> 2; + t1 = (bayer[1] + bayer[width] + + bayer[width + 2] + bayer[width * 2 + 1] + + 2) >> 2; + if (blue_line) + { + *bgr++ = t0; + *bgr++ = t1; + *bgr++ = bayer[width + 1]; + } + else + { + *bgr++ = bayer[width + 1]; + *bgr++ = t1; + *bgr++ = t0; + } + /* write last pixel */ + t0 = (bayer[2] + bayer[width * 2 + 2] + 1) >> 1; + if (blue_line) + { + *bgr++ = t0; + *bgr++ = bayer[width + 2]; + *bgr++ = bayer[width + 1]; + } + else + { + *bgr++ = bayer[width + 1]; + *bgr++ = bayer[width + 2]; + *bgr++ = t0; + } + bayer++; + } + else + { + /* write last pixel */ + t0 = (bayer[0] + bayer[width * 2] + 1) >> 1; + t1 = (bayer[1] + bayer[width * 2 + 1] + bayer[width] + 1) / 3; + if (blue_line) + { + *bgr++ = t0; + *bgr++ = t1; + *bgr++ = bayer[width + 1]; + } + else + { + *bgr++ = bayer[width + 1]; + *bgr++ = t1; + *bgr++ = t0; + } + } + + /* skip 2 border pixels */ + bayer += 2; + + blue_line = !blue_line; + start_with_green = !start_with_green; + } + + /* render the last line */ + convert_border_bayer_line_to_bgr24(bayer + width, bayer, bgr, width, + !start_with_green, !blue_line); +} + +/* + * convert bayer raw data to rgb24 + * args: + * pBay: pointer to buffer containing Raw bayer data + * pRGB24: pointer to buffer containing rgb24 data + * width: picture width + * height: picture height + * pix_order: bayer pixel order (0=gb/rg 1=gr/bg 2=bg/gr 3=rg/bg) + * + * asserts: + * none + * + * returns: none + */ +void bayer_to_rgb24(uint8_t *pBay, uint8_t *pRGB24, int width, int height, int pix_order) +{ + switch (pix_order) + { + //conversion functions are build for bgr, by switching b and r lines we get rgb + case 0: /* gbgbgb... | rgrgrg... (V4L2_PIX_FMT_SGBRG8)*/ + bayer_to_rgbbgr24(pBay, pRGB24, width, height, TRUE, FALSE); + break; + + case 1: /* grgrgr... | bgbgbg... (V4L2_PIX_FMT_SGRBG8)*/ + bayer_to_rgbbgr24(pBay, pRGB24, width, height, TRUE, TRUE); + break; + + case 2: /* bgbgbg... | grgrgr... (V4L2_PIX_FMT_SBGGR8)*/ + bayer_to_rgbbgr24(pBay, pRGB24, width, height, FALSE, FALSE); + break; + + case 3: /* rgrgrg... ! gbgbgb... (V4L2_PIX_FMT_SRGGB8)*/ + bayer_to_rgbbgr24(pBay, pRGB24, width, height, FALSE, TRUE); + break; + + default: /* default is 0*/ + bayer_to_rgbbgr24(pBay, pRGB24, width, height, TRUE, FALSE); + break; + } +} + +/*------------------ YU12 ----------------------*/ + +/* + *convert from packed 422 yuv (yuyv) to 420 planar (yu12) + * args: + * out - pointer to output yu12 planar data buffer + * in - pointer to input yuyv packed data buffer + * width - frame width + * height - frame height + * + * asserts: + * in is not null + * out is not null + * + * returns: none + */ +void yuyv_to_yu12(uint8_t *out, uint8_t *in, int width, int height) +{ + /*assertions*/ + assert(in); + assert(out); + + int w = 0, h = 0; + int y_sizeline = width; + int c_sizeline = width/2; + + uint8_t *in1 = in; //first line + uint8_t *in2 = in1 + (width * 2); //second line in yuyv buffer + + uint8_t *py1 = out; // first line + uint8_t *py2 = py1 + y_sizeline; //second line + uint8_t *pu = py1 + (width * height); + uint8_t *pv = pu + ((width * height) / 4); + + for(h = 0; h < height; h+=2) + { + for(w = 0; w < width; w+=2) //yuyv 2 bytes per sample + { + //printf("decoding: h:%i w:%i\n", h, w); + *py1++ = *in1++; + *py2++ = *in2++; + *pu++ = ((*in1++) + (*in2++)) /2; //average u samples + *py1++ = *in1++; + *py2++ = *in2++; + *pv++ = ((*in1++) + (*in2++)) /2; //average v samples + } + in1 = in + (h * width * 2); + in2 = in + ((h+1) * width * 2); + py1 = out + (h * width); + py2 = out + ((h+1) * width); + } + +} + +/* + *convert from packed 422 yuv (yvyu) to 420 planar (yu12) + * args: + * out - pointer to output yu12 planar data buffer + * in - pointer to input yvyu packed data buffer + * width - frame width + * height - frame height + * + * asserts: + * in is not null + * out is not null + * + * returns: none + */ +void yvyu_to_yu12(uint8_t *out, uint8_t *in, int width, int height) +{ + /*assertions*/ + assert(in); + assert(out); + + int w = 0, h = 0; + int y_sizeline = width; + int c_sizeline = width/2; + + uint8_t *in1 = in; //first line + uint8_t *in2 = in1 + (width * 2); //second line in yuyv buffer + + uint8_t *py1 = out; // first line + uint8_t *py2 = py1 + y_sizeline; //second line + uint8_t *pu = py1 + (width * height); + uint8_t *pv = pu + ((width * height) / 4); + + for(h = 0; h < height; h+=2) + { + for(w = 0; w < width*2; w++) //yuyv 2 bytes per sample + { + *py1++ = *in1++; + *py2++ = *in2++; + *pv++ = ((*in1++) + (*in2++)) /2; //average v samples + *py1++ = *in1++; + *py2++ = *in2++; + *pu++ = ((*in1++) + (*in2++)) /2; //average u samples + } + in1 = in + (h * width * 2); + in2 = in + ((h+1) * width * 2); + py1 = out + (h * width); + py2 = out + ((h+1) * width); + } + +} + +/* + *convert from packed 422 yuv (uyvy) to 420 planar (yu12) + * args: + * out - pointer to output yu12 planar data buffer + * in - pointer to input uyvy packed data buffer + * width - frame width + * height - frame height + * + * asserts: + * in is not null + * out is not null + * + * returns: none + */ +void uyvy_to_yu12(uint8_t *out, uint8_t *in, int width, int height) +{ + /*assertions*/ + assert(in); + assert(out); + + int w = 0, h = 0; + int y_sizeline = width; + int c_sizeline = width/2; + + uint8_t *in1 = in; //first line + uint8_t *in2 = in1 + (width * 2); //second line in yuyv buffer + + uint8_t *py1 = out; // first line + uint8_t *py2 = py1 + y_sizeline; //second line + uint8_t *pu = py1 + (width * height); + uint8_t *pv = pu + ((width * height) / 4); + + for(h = 0; h < height; h+=2) + { + for(w = 0; w < width; w+=2) //yuyv 2 bytes per sample + { + *pu++ = ((*in1++) + (*in2++)) /2; //average u samples + *py1++ = *in1++; + *py2++ = *in2++; + *pv++ = ((*in1++) + (*in2++)) /2; //average v samples + *py1++ = *in1++; + *py2++ = *in2++; + } + in1 = in + (h * width * 2); + in2 = in + ((h+1) * width * 2); + py1 = out + (h * width); + py2 = out + ((h+1) * width); + } + +} + +/* + *convert from 422 planar yuv to 420 planar (yu12) + * args: + * out - pointer to output yu12 planar data buffer + * in - pointer to input 422 planar data buffer + * width - frame width + * height - frame height + * + * asserts: + * in is not null + * out is not null + * + * returns: none + */ +void yuv422p_to_yu12(uint8_t *out, uint8_t *in, int width, int height) +{ + /*assertions*/ + assert(in); + assert(out); + + /*copy y data*/ + memcpy(out, in, width*height); + + int w = 0, h = 0; + int c_sizeline = width/2; + + uint8_t *pu = out + (width * height); + uint8_t *inu1 = in + (width * height); + uint8_t *inu2 = inu1 + (width/2); + + uint8_t *pv = pu + ((width * height) / 4); + uint8_t *inv1 = inu1 + ((width * height) / 2); + uint8_t *inv2 = inv1 + (width / 2); + + for(h = 0; h < height; h+=2) + { + for(w = 0; w < width/2; w++) + { + *pu++ = ((*inu1++) + (*inu2++)) /2; //average u sample + *pv++ = ((*inv1++) + (*inv2++)) /2; //average v samples + } + inu1 = in + (width * height) + (h * c_sizeline); + inu2 = in + (width * height) + ((h+1) * c_sizeline); + inv1 = inu1 + ((width * height) / 2); + inv2 = inv1 + (width / 2); + } + +} + +/* + * convert yyuv (packed) to yuv420 planar (yu12) + * args: + * out: pointer to output buffer (yu12) + * in: pointer to input buffer containing yyuv packed data frame + * width: picture width + * height: picture height + * + * asserts: + * out is not null + * in is not null + * + * returns: none + */ +void yyuv_to_yu12(uint8_t *out, uint8_t *in, int width, int height) +{ + /*assertions*/ + assert(in); + assert(out); + + int w = 0, h = 0; + int y_sizeline = width; + int c_sizeline = width/2; + + uint8_t *in1 = in; //first line + uint8_t *in2 = in1 + (width * 2); //second line in yyuv buffer + + uint8_t *py1 = out; // first line + uint8_t *py2 = py1 + y_sizeline; //second line + uint8_t *pu = py1 + (width * height); + uint8_t *pv = pu + ((width * height) / 4); + + for(h = 0; h < height; h+=2) + { + for(w = 0; w < width; w+=2) //yyuv 2 bytes per sample + { + *py1++ = *in1++; + *py1++ = *in1++; + *py2++ = *in2++; + *py2++ = *in2++; + *pu++ = ((*in1++) + (*in2++)) /2; //average v samples + *pv++ = ((*in1++) + (*in2++)) /2; //average u samples + } + in1 = in + (h * width * 2); + in2 = in + ((h+1) * width * 2); + py1 = out + (h * width); + py2 = out + ((h+1) * width); + } + +} + +/* + *convert from 420 planar (yv12) to 420 planar (yu12) + * args: + * out - pointer to output yu12 planar data buffer + * in - pointer to input yv12 planar data buffer + * width - frame width + * height - frame height + * + * asserts: + * in is not null + * out is not null + * + * returns: none + */ +void yv12_to_yu12(uint8_t *out, uint8_t *in, int width, int height) +{ + /*assertions*/ + assert(in); + assert(out); + + /*copy y data*/ + memcpy(out, in, width*height); + /*copy u data*/ + memcpy(out+(width*height), in+((width * height * 5) / 4), width * height / 4); + /*copy v data*/ + memcpy(out+((width * height * 5) / 4), in+(width * height), width * height / 4); +} + +/* + * convert nv12 planar (uv interleaved) to yuv420 planar (yu12) + * args: + * out: pointer to output buffer (yu12) + * in: pointer to input buffer containing nv12 planar data frame + * width: picture width + * height: picture height + * + * asserts: + * out is not null + * in is not null + * + * returns: none + */ +void nv12_to_yu12(uint8_t *out, uint8_t *in, int width, int height) +{ + /*assertions*/ + assert(in); + assert(out); + + /*copy y data*/ + memcpy(out, in, width*height); + + uint8_t *puv = in + (width * height); + uint8_t *pu = out + (width * height); + uint8_t *pv = pu + ((width * height) / 4); + + /*uv plane*/ + int i = 0; + for(i=0; i< width * height /2; i+=2) + { + *pu++ = *puv++; + *pv++ = *puv++; + } +} + +/* + * convert nv21 planar (vu interleaved) to yuv420 planar (yu12) + * args: + * out: pointer to output buffer (yu12) + * in: pointer to input buffer containing nv21 planar data frame + * width: picture width + * height: picture height + * + * asserts: + * out is not null + * in is not null + * + * returns: none + */ +void nv21_to_yu12(uint8_t *out, uint8_t *in, int width, int height) +{ + /*assertions*/ + assert(in); + assert(out); + + /*copy y data*/ + memcpy(out, in, width*height); + + uint8_t *puv = in + (width * height); + uint8_t *pu = out + (width * height); + uint8_t *pv = pu + ((width * height) / 4); + + /*uv plane*/ + int i = 0; + for(i=0; i< width * height /2; i+=2) + { + *pv++ = *puv++; + *pu++ = *puv++; + } + +} + +/* + * convert yuv 422 planar (uv interleaved) (nv16) to yuv420 planar (yu12) + * args: + * out: pointer to output buffer (yu12) + * in: pointer to input buffer containing yuv422 (nv16) planar data frame + * width: picture width + * height: picture height + * + * asserts: + * out is not null + * in is not null + * + * returns: none + */ +void nv16_to_yu12 (uint8_t *out, uint8_t *in, int width, int height) +{ + /*assertions*/ + assert(in); + assert(out); + + /*copy y data*/ + memcpy(out, in, width*height); + + /*uv plane*/ + uint8_t *puv1 = in + (width * height); //first line + uint8_t *puv2 = puv1 + width; //second line + uint8_t *pu = out + (width * height); + uint8_t *pv = pu + ((width * height) / 4); + + int h = 0; + int w = 0; + for(h=0; h < height; h+=2) + { + for(w=0; w < width; w+=2) + { + *pu++ = ((*puv1++) + (*puv2++)) / 2; //average + *pv++ = ((*puv1++) + (*puv2++)) / 2; //average + } + puv1 = in + (width + height) + (h * width); + puv2 = puv1 + width; + } +} + +/* + * convert yuv 422 planar (vu interleaved) (nv61) to yuv420 planar (yu12) + * args: + * out: pointer to output buffer (yu12) + * in: pointer to input buffer containing yuv422 (nv61) planar data frame + * width: picture width + * height: picture height + * + * asserts: + * out is not null + * in is not null + * + * returns: none + */ +void nv61_to_yu12 (uint8_t *out, uint8_t *in, int width, int height) +{ + /*assertions*/ + assert(in); + assert(out); + + /*copy y data*/ + memcpy(out, in, width*height); + + /*uv plane*/ + uint8_t *puv1 = in + (width * height); //first line + uint8_t *puv2 = puv1 + width; //second line + uint8_t *pu = out + (width * height); + uint8_t *pv = pu + ((width * height) / 4); + + int h = 0; + int w = 0; + for(h=0; h < height; h+=2) + { + for(w=0; w < width; w+=2) + { + *pv++ = ((*puv1++) + (*puv2++)) / 2; //average + *pu++ = ((*puv1++) + (*puv2++)) / 2; //average + } + puv1 = in + (width + height) + (h * width); + puv2 = puv1 + width; + } +} + +/* + * Unpack buffer of (vw bit) data into padded 16bit buffer. + * args: + * raw - pointer to input raw packed data buffer + * unpacked - pointer to unpacked output data buffer + * vw - vw bit + * unpacked_len - length + * + * asserts: + * none + * + * returns: none + */ +static inline void convert_packed_to_16bit(uint8_t *raw, uint16_t *unpacked, int vw, int unpacked_len) +{ + int mask = (1 << vw) - 1; + uint32_t buffer = 0; + int bitsIn = 0; + while (unpacked_len--) { + while (bitsIn < vw) { + buffer = (buffer << 8) | *(raw++); + bitsIn += 8; + } + bitsIn -= vw; + *(unpacked++) = (buffer >> bitsIn) & mask; + } +} + +/* + * convert y10b (bit-packed array greyscale format) to yu12 + * args: + * out: pointer to output buffer (yu12) + * in: pointer to input buffer containing y10b (bit-packed array) data frame + * width: picture width + * height: picture height + * + * asserts: + * out is not null + * in is not null + * + * returns: none + */ +void y10b_to_yu12(uint8_t *out, uint8_t *in, int width, int height) +{ + /*assertions*/ + assert(in); + assert(out); + + uint16_t *unpacked_buffer = NULL; + uint16_t *ptmp; + uint8_t *py = out; + uint8_t *pu = out + (width * height); + uint8_t *pv = pu + ((width * height) / 4); + + int h = 0; + + unpacked_buffer = malloc(width * height * sizeof(uint16_t)); + + if (unpacked_buffer == NULL) + { + fprintf(stderr, "V4L2_CORE: FATAL memory allocation failure (y10b_to_yu12): %s\n", strerror(errno)); + exit(-1); + } + + convert_packed_to_16bit(in, unpacked_buffer, 10, width * height); + + ptmp = unpacked_buffer; + + for (h = 0; h < height; h++) + { + int w=0; + for (w = 0; w < width; w++) + { + /* Y */ + *py++ = (uint8_t) ((*ptmp++ & 0x3FF) >> 2); + } + } + + for(h=0; h < (width * height / 4); h++) + { + /* U */ + *pu++ = 0x80; + /* V */ + *pv++ = 0x80; + } + + + free(unpacked_buffer); +} + +/* + * convert yuv 411 packed (y41p) to planar yuv 420 (yu12) + * args: + * out: pointer to output buffer (yu12) + * in: pointer to input buffer containing y41p data frame + * width: picture width + * height: picture height + * + * asserts: + * out is not null + * in is not null + * + * returns: none + */ +void y41p_to_yu12(uint8_t *out, uint8_t *in, int width, int height) +{ + /*assertions*/ + assert(in); + assert(out); + + uint8_t *py1 = out; + uint8_t *py2 = out + width; + uint8_t *pu = out + (width * height); + uint8_t *pv = pu + ((width * height) / 4); + + int h=0; + int linesize = width * 3 /2; + + + for(h = 0; h < height; h += 2) + { + py1 = out + (h * width); // first line + py2 = out + ((h + 1) * width); // second line + int offset1 = linesize * h; //line 1 + int offset2 = linesize * (h + 1); //line 2 + int w = 0; + for(w = 0; w < linesize; w += 12) + { + /* y first line */ + *py1++ = in[w + 1 + offset1]; //Y00 + *py1++ = in[w + 3 + offset1]; //Y01 + *py1++ = in[w + 5 + offset1]; //Y02 + *py1++ = in[w + 7 + offset1]; //Y03 + *py1++ = in[w + 8 + offset1]; //Y04 + *py1++ = in[w + 9 + offset1]; //Y05 + *py1++ = in[w + 10 + offset1]; //Y06 + *py1++ = in[w + 11 + offset1]; //Y07 + /* y second line */ + *py2++ = in[w + 1 + offset2]; //Y10 + *py2++ = in[w + 3 + offset2]; //Y11 + *py2++ = in[w + 5 + offset2]; //Y12 + *py2++ = in[w + 7 + offset2]; //Y13 + *py2++ = in[w + 8 + offset2]; //Y14 + *py2++ = in[w + 9 + offset2]; //Y15 + *py2++ = in[w + 10 + offset2]; //Y16 + *py2++ = in[w + 11 + offset2]; //Y17 + + /*U0 and U1 average first and second lines*/ + *pu++ = (in[w + offset1] + in[w + offset2]) / 2; //U00 + U10 /2 + *pu++ = (in[w + offset1] + in[w + offset2]) / 2; //U00 + U10 /2 + /*U2 and U3 average first and second lines*/ + *pu++ = (in[w + 4 + offset1] + in[w + 4 + offset2]) / 2; //U01 + U11 /2 + *pu++ = (in[w + 4 + offset1] + in[w + 4 + offset2]) / 2; //U01 + U11 /2 + /*V0 and V1 average first and second lines*/ + *pv++ = (in[w + 2 + offset1] + in[w + 2 + offset2]) / 2; //V00 + V10 /2 + *pv++ = (in[w + 2 + offset1] + in[w + 2 + offset2]) / 2; //V00 + V10 /2 + /*V2 and V3 average first and second lines*/ + *pv++ = (in[w + 6 + offset1] + in[w + 6 + offset2]) / 2; //V01 + V11 /2 + *pv++ = (in[w + 6 + offset1] + in[w + 6 + offset2]) / 2; //V01 + V11 /2 + } + } +} + +/* + * convert yuv mono (grey) to yuv 420 planar (yu12) + * args: + * out: pointer to output buffer (yu12) + * in: pointer to input buffer containing grey (y only) data frame + * width: picture width + * height: picture height + * + * asserts: + * out is not null + * in is not null + * + * returns: none + */ +void grey_to_yu12(uint8_t *out, uint8_t *in, int width, int height) +{ + /*assertions*/ + assert(in); + assert(out); + + uint8_t *pu = out + (width * height); + uint8_t *pv = pu + ((width * height) / 4); + + int h=0; + + /* Y */ + memcpy(out, in, width * height); + + /* U and V */ + for (h=0; h < (width * height / 4); h++) + { + *pu++ = 0x80; + *pv++ = 0x80; + } +} + +/* + * convert y16 (16 bit greyscale format) to yu12 + * args: + * out: pointer to output buffer (yu12) + * in: pointer to input buffer containing y16 (16 bit greyscale) data frame + * width: picture width + * height: picture height + * + * asserts: + * out is not null + * in is not null + * + * returns: none + */ +void y16_to_yu12(uint8_t *out, uint8_t *in, int width, int height) +{ + /*assertions*/ + assert(in); + assert(out); + + uint16_t *ptmp = (uint16_t *) in; + uint8_t *py = out; + uint8_t *pu = out + (width * height); + uint8_t *pv = pu + ((width * height) / 4); + + int h = 0; + + for (h = 0; h < height; h++) + { + int w=0; + for (w = 0; w < width; w++) + { + /* Y */ + *py++ = (uint8_t) ((*ptmp++ & 0xFF00) >> 8); + } + } + + for(h=0; h < (width * height / 4); h++) + { + /* U */ + *pu++ = 0x80; + /* V */ + *pv++ = 0x80; + } + +} + +/* + * convert SPCA501 (s501) to yuv 420 planar (yu12) + * s501 |Y0..width..Y0|U..width/2..U|Y1..width..Y1|V..width/2..V| + * signed values (-128;+127) must be converted to unsigned (0; 255) + * args: + * out: pointer to output buffer (yu12) + * in: pointer to input buffer containing s501 data frame + * width: picture width + * height: picture height + * + * asserts: + * out is not null + * in is not null + * + * returns: none + */ +void s501_to_yu12(uint8_t *out, uint8_t *in, int width, int height) +{ + /*assertions*/ + assert(in); + assert(out); + + /*assertions*/ + assert(in); + assert(out); + + int h = 0; + + int8_t *pin = (int8_t *) in; + + uint8_t *py = out; + uint8_t *pu = out + (width * height); + uint8_t *pv = pu + ((width * height ) / 4); + + for (h = 0; h < height; h += 2 ) + { + int w = 0; + /* Y */ + for (w = 0; w < width; w++) + { + *py++ = (uint8_t) 0x80 + *pin++; + } + + /* U */ + for (w = 0; w < width /2; w++) + { + *pu++ = (uint8_t) 0x80 + *pin++; + } + + /* Y */ + for (w = 0; w < width; w++) + { + *py++ = (uint8_t) 0x80 + *pin++; + } + + /* V */ + for (w = 0; w < width /2; w++) + { + *pv++ = (uint8_t) 0x80 + *pin++; + } + } +} + +/* + * convert SPCA505 (s505) to yuv 420 planar (yu12) + * s505 |Y0..width..Y0|Y1..width..Y1|U..width/2..U|V..width/2..V| + * signed values (-128;+127) must be converted to unsigned (0; 255) + * args: + * out: pointer to output buffer (yu12) + * in: pointer to input buffer containing s501 data frame + * width: picture width + * height: picture height + * + * asserts: + * out is not null + * in is not null + * + * returns: none + */ +void s505_to_yu12(uint8_t *out, uint8_t *in, int width, int height) +{ + /*assertions*/ + assert(in); + assert(out); + + int h = 0; + + int8_t *pin = (int8_t *) in; + + uint8_t *py = out; + uint8_t *pu = out + (width * height); + uint8_t *pv = pu + ((width * height ) / 4); + + for (h = 0; h < height; h += 2 ) + { + int w = 0; + /* Y */ + for (w = 0; w < width * 2; w++) // 2 lines + { + *py++ = (uint8_t) 0x80 + *pin++; + } + + /* U */ + for (w = 0; w < width /2; w++) + { + *pu++ = (uint8_t) 0x80 + *pin++; + } + + /* V */ + for (w = 0; w < width /2; w++) + { + *pv++ = (uint8_t) 0x80 + *pin++; + } + } +} + +/* + * convert SPCA508 (s508) to yuv 420 planar (yu12) + * s508 |Y0..width..Y0|U..width/2..U|V..width/2..V|Y1..width..Y1| + * signed values (-128;+127) must be converted to unsigned (0; 255) + * args: + * out: pointer to output buffer (yu12) + * in: pointer to input buffer containing s501 data frame + * width: picture width + * height: picture height + * + * asserts: + * out is not null + * in is not null + * + * returns: none + */ +void s508_to_yu12(uint8_t *out, uint8_t *in, int width, int height) +{ + /*assertions*/ + assert(in); + assert(out); + + int h = 0; + + int8_t *pin = (int8_t *) in; + + uint8_t *py = out; + uint8_t *pu = out + (width * height); + uint8_t *pv = pu + ((width * height ) / 4); + + for (h = 0; h < height; h += 2 ) + { + int w = 0; + /* Y */ + for (w = 0; w < width; w++) + { + *py++ = (uint8_t) 0x80 + *pin++; + } + + /* U */ + for (w = 0; w < width /2; w++) + { + *pu++ = (uint8_t) 0x80 + *pin++; + } + + /* V */ + for (w = 0; w < width /2; w++) + { + *pv++ = (uint8_t) 0x80 + *pin++; + } + + /* Y */ + for (w = 0; w < width; w++) + { + *py++ = (uint8_t) 0x80 + *pin++; + } + } +} + +/* + * convert rgb24 to yu12 + * args: + * out: pointer to output buffer containing yu12 data + * in: pointer to input buffer containing rgb24 data + * width: picture width + * height: picture height + * + * asserts: + * out is not null + * in is not null + * + * returns: none + */ +void rgb24_to_yu12(uint8_t *out, uint8_t *in, int width, int height) +{ + /*assertions*/ + assert(out); + assert(in); + + uint8_t *py = out; + uint8_t *pu = out + (width * height); + uint8_t *pv = pu + ((width * height) / 4); + + uint8_t *in1 = in; //first line + uint8_t *in2 = in + (width * 3); //second line + + int i=0; + for(i = 0; i < (width * height * 3); i += 3) + { + /* y */ + *py++ =CLIP(0.299 * (in1[i] - 128) + 0.587 * (in1[i+1] - 128) + 0.114 * (in1[i+2] - 128) + 128); + } + + int h = 0; + for(h = 0; h < height; h += 2) + { + in1 = in + (h * width * 3); + in2 = in1 + (width * 3); + + for(i = 0; i < (width * 3); i += 6) + { + /* u v */ + uint8_t u1 = CLIP(((- 0.147 * (in1[i] - 128) - 0.289 * (in1[i+1] - 128) + 0.436 * (in1[i+2] - 128) + 128) + + (- 0.147 * (in1[i+3] - 128) - 0.289 * (in1[i+4] - 128) + 0.436 * (in1[i+5] - 128) + 128))/2); + uint8_t v1 =CLIP(((0.615 * (in1[i] - 128) - 0.515 * (in1[i+1] - 128) - 0.100 * (in1[i+2] - 128) + 128) + + (0.615 * (in1[i+3] - 128) - 0.515 * (in1[i+4] - 128) - 0.100 * (in1[i+5] - 128) + 128))/2); + + uint8_t u2 = CLIP(((- 0.147 * (in2[i] - 128) - 0.289 * (in2[i+1] - 128) + 0.436 * (in2[i+2] - 128) + 128) + + (- 0.147 * (in2[i+3] - 128) - 0.289 * (in2[i+4] - 128) + 0.436 * (in2[i+5] - 128) + 128))/2); + uint8_t v2 =CLIP(((0.615 * (in2[i] - 128) - 0.515 * (in2[i+1] - 128) - 0.100 * (in2[i+2] - 128) + 128) + + (0.615 * (in2[i+3] - 128) - 0.515 * (in2[i+4] - 128) - 0.100 * (in2[i+5] - 128) + 128))/2); + + *pu++ = (u1 + u2) / 2; + *pv++ = (v1 + v2) / 2; + } + } +} + +/* + * convert bgr24 to yu12 + * args: + * out: pointer to output buffer containing yu12 data + * in: pointer to input buffer containing bgr24 data + * width: picture width + * height: picture height + * + * asserts: + * out is not null + * in is not null + * + * returns: none + */ +void bgr24_to_yu12(uint8_t *out, uint8_t *in, int width, int height) +{ + /*assertions*/ + assert(out); + assert(in); + + uint8_t *py = out; + uint8_t *pu = out + (width * height); + uint8_t *pv = pu + ((width * height) / 4); + + uint8_t *in1 = in; //first line + uint8_t *in2 = in + (width * 3); //second line + + int i = 0; + for(i = 0; i < (width * height * 3); i += 3) + { + /* y */ + *py++ =CLIP(0.299 * (in1[i+2] - 128) + 0.587 * (in1[i+1] - 128) + 0.114 * (in1[i] - 128) + 128); + } + + int h = 0; + for(h = 0; h < height; h += 2) + { + in1 = in + (h * width * 3); + in2 = in1 + (width * 3); + + for(i = 0; i < (width * 3); i += 6) + { + /* u */ + uint8_t u1 = CLIP(((- 0.147 * (in1[i+2] - 128) - 0.289 * (in1[i+1] - 128) + 0.436 * (in1[i] - 128) + 128) + + (- 0.147 * (in1[i+5] - 128) - 0.289 * (in1[i+4] - 128) + 0.436 * (in1[i+3] - 128) + 128))/2); + uint8_t u2 = CLIP(((- 0.147 * (in2[i+2] - 128) - 0.289 * (in2[i+1] - 128) + 0.436 * (in2[i] - 128) + 128) + + (- 0.147 * (in2[i+5] - 128) - 0.289 * (in2[i+4] - 128) + 0.436 * (in2[i+3] - 128) + 128))/2); + + /* v*/ + uint8_t v1 =CLIP(((0.615 * (in1[i+2] - 128) - 0.515 * (in1[i+1] - 128) - 0.100 * (in1[i] - 128) + 128) + + (0.615 * (in1[i+5] - 128) - 0.515 * (in1[i+4] - 128) - 0.100 * (in1[i+3] - 128) + 128))/2); + uint8_t v2 =CLIP(((0.615 * (in2[i+2] - 128) - 0.515 * (in2[i+1] - 128) - 0.100 * (in2[i] - 128) + 128) + + (0.615 * (in2[i+5] - 128) - 0.515 * (in2[i+4] - 128) - 0.100 * (in2[i+3] - 128) + 128))/2); + + *pu++ = (u1 + u2) / 2; + *pv++ = (v1 + v2) / 2; + } + } + + +} + +/* + * yu12 to rgb24 + * args: + * out - pointer to output rgb data buffer + * in - pointer to input yu12 data buffer + * width - buffer width (in pixels) + * height - buffer height (in pixels) + * + * asserts: + * none + * + * returns: none + */ +void yu12_to_rgb24 (uint8_t *out, uint8_t *in, int width, int height) +{ + /*assertions*/ + assert(out); + assert(in); + + uint8_t *py1 = in; //line 1 + uint8_t *py2 = py1 + width; //line 2 + uint8_t *pu = in + (width * height); + uint8_t *pv = pu + ((width * height) / 4); + + uint8_t *pout1 = out; //first line + uint8_t *pout2 = out + (width * 3); //second line + + int h=0, w=0; + + for(h=0; h < height; h+=2) //every two lines + { + py1 = in + (h * width); + py2 = py1 + width; + + pout1 = out + (h * width * 3); + pout2 = pout1 + (width * 3); + + for(w=0; w0 ; h-=2) //every two lines + { + uvline--; //begin of uv line + + py1 = in + ((h-1) * width); + py2 = py1 - width; + + pu = in + (width * height) + ((uvline * width)/2); + pv = pu + ((width * height) / 4); + + pout1 = out + ((height-h) * width * 3); + pout2 = pout1 + (width * 3); + + for(w=0; w> 2); + /* U */ + *framebuffer++ = 0x80; + /* Y1 */ + *framebuffer++ = (uint8_t) ((ptmp[1] & 0x3FF) >> 2); + /* V */ + *framebuffer++ = 0x80; + + ptmp += 2; + } + } + + free(unpacked_buffer); +} + +/* + * convert y16 (grey) to yuyv (packed) + * args: + * framebuffer: pointer to frame buffer (yuyv) + * tmpbuffer: pointer to temp buffer containing y16 (grey) data frame + * width: picture width + * height: picture height + * + * asserts: + * none + * + * returns: none + */ +void y16_to_yuyv (uint8_t *framebuffer, uint8_t *tmpbuffer, int width, int height) +{ + uint16_t *ptmp= (uint16_t *) tmpbuffer; + + int h=0; + + for(h=0;h> 8); + /* U */ + *framebuffer++ = 0x80; + /* Y1 */ + *framebuffer++ = (uint8_t) ((ptmp[1] & 0xFF00) >> 8); + /* V */ + *framebuffer++ = 0x80; + + ptmp += 2; + } + } +} + +/* + * convert yyuv (packed) to yuyv (packed) + * args: + * framebuffer: pointer to frame buffer (yuyv) + * tmpbuffer: pointer to temp buffer containing yyuv packed data frame + * width: picture width + * height: picture height + * + * asserts: + * none + * + * returns: none + */ +void yyuv_to_yuyv (uint8_t *framebuffer, uint8_t *tmpbuffer, int width, int height) +{ + uint8_t *ptmp=NULL; + uint8_t *pfmb=NULL; + ptmp = tmpbuffer; + pfmb = framebuffer; + + int h=0; + + for(h=0;h= 0; ) + { + *framebuffer++ = 0x80 + *Y0++; + *framebuffer++ = 0x80 + *U; + *framebuffer++ = 0x80 + *Y0++; + *framebuffer++ = 0x80 + *V; + + *line2++ = 0x80 + *Y1++; + *line2++ = 0x80 + *U++; + *line2++ = 0x80 + *Y1++; + *line2++ = 0x80 + *V++; + } + Y0 += width * 2; /* next block of lines */ + framebuffer = line2; + } +} + +/* + * convert SPCA505 (s505) to yuv 422 + * s505 |Y0..width..Y0|Y1..width..Y1|U..width/2..U|V..width/2..V| + * signed values (-128;+127) must be converted to unsigned (0; 255) + * args: + * framebuffer: pointer to frame buffer (yuyv) + * tmpbuffer: pointer to temp buffer containing s501 data frame + * width: picture width + * height: picture height + * + * asserts: + * none + * + * returns: none + */ +void s505_to_yuyv(uint8_t *framebuffer, uint8_t *tmpbuffer, int width, int height) +{ + int h = 0; + uint8_t *Y0 = tmpbuffer; /*fisrt line*/ + + for (h = 0; h < height/2; h++ ) + { + uint8_t *line2 = framebuffer + width * 2; /* next line */ + uint8_t *Y1 = Y0 + width; + uint8_t *U = Y1 + width; + uint8_t *V = U + width/2; + int w = 0; + + for (w = width / 2; --w >= 0; ) + { + *framebuffer++ = 0x80 + *Y0++; + *framebuffer++ = 0x80 + *U; + *framebuffer++ = 0x80 + *Y0++; + *framebuffer++ = 0x80 + *V; + + *line2++ = 0x80 + *Y1++; + *line2++ = 0x80 + *U++; + *line2++ = 0x80 + *Y1++; + *line2++ = 0x80 + *V++; + } + Y0 += width * 2; /* next block of lines */ + framebuffer = line2; + } +} + +/* + * convert SPCA508 (s508) to yuv 422 + * s508 |Y0..width..Y0|U..width/2..U|V..width/2..V|Y1..width..Y1| + * signed values (-128;+127) must be converted to unsigned (0; 255) + * args: + * framebuffer: pointer to frame buffer (yuyv) + * tmpbuffer: pointer to temp buffer containing s501 data frame + * width: picture width + * height: picture height + * + * asserts: + * none + * + * returns: none + */ +void s508_to_yuyv(uint8_t *framebuffer, uint8_t *tmpbuffer, int width, int height) +{ + int h = 0; + uint8_t *Y0 = tmpbuffer; /*fisrt line*/ + + for (h = 0; h < height/2; h++ ) + { + uint8_t *line2 = framebuffer + width * 2; /* next line */ + uint8_t *U = Y0 + width; + uint8_t *V = U + width/2; + uint8_t *Y1= V + width/2; + int w = 0; + + for (w = width / 2; --w >= 0; ) + { + *framebuffer++ = 0x80 + *Y0++; + *framebuffer++ = 0x80 + *U; + *framebuffer++ = 0x80 + *Y0++; + *framebuffer++ = 0x80 + *V; + + *line2++ = 0x80 + *Y1++; + *line2++ = 0x80 + *U++; + *line2++ = 0x80 + *Y1++; + *line2++ = 0x80 + *V++; + } + Y0 += width * 2; /* next block of lines */ + framebuffer = line2; + } +} + +/* + * convert rgb24 to yuyv + * args: + * prgb: pointer to input buffer containing rgb data + * pyuv: pointer to output buffer containing converted yuyv data + * width: picture width + * height: picture height + * + * asserts: + * none + * + * returns: none + */ +void rgb2yuyv(uint8_t *prgb, uint8_t *pyuv, int width, int height) +{ + + int i=0; + for(i=0;i<(width*height*3);i=i+6) + { + /* y */ + *pyuv++ =CLIP(0.299 * (prgb[i] - 128) + 0.587 * (prgb[i+1] - 128) + 0.114 * (prgb[i+2] - 128) + 128); + /* u */ + *pyuv++ =CLIP(((- 0.147 * (prgb[i] - 128) - 0.289 * (prgb[i+1] - 128) + 0.436 * (prgb[i+2] - 128) + 128) + + (- 0.147 * (prgb[i+3] - 128) - 0.289 * (prgb[i+4] - 128) + 0.436 * (prgb[i+5] - 128) + 128))/2); + /* y1 */ + *pyuv++ =CLIP(0.299 * (prgb[i+3] - 128) + 0.587 * (prgb[i+4] - 128) + 0.114 * (prgb[i+5] - 128) + 128); + /* v*/ + *pyuv++ =CLIP(((0.615 * (prgb[i] - 128) - 0.515 * (prgb[i+1] - 128) - 0.100 * (prgb[i+2] - 128) + 128) + + (0.615 * (prgb[i+3] - 128) - 0.515 * (prgb[i+4] - 128) - 0.100 * (prgb[i+5] - 128) + 128))/2); + } +} + +/* + * convert bgr24 to yuyv + * args: + * pbgr: pointer to input buffer containing bgr data + * pyuv: pointer to output buffer containing converted yuyv data + * width: picture width + * height: picture height + * + * asserts: + * none + * + * returns: none + */ +void bgr2yuyv(uint8_t *pbgr, uint8_t *pyuv, int width, int height) +{ + + int i=0; + for(i=0;i<(width*height*3);i=i+6) + { + /* y */ + *pyuv++ =CLIP(0.299 * (pbgr[i+2] - 128) + 0.587 * (pbgr[i+1] - 128) + 0.114 * (pbgr[i] - 128) + 128); + /* u */ + *pyuv++ =CLIP(((- 0.147 * (pbgr[i+2] - 128) - 0.289 * (pbgr[i+1] - 128) + 0.436 * (pbgr[i] - 128) + 128) + + (- 0.147 * (pbgr[i+5] - 128) - 0.289 * (pbgr[i+4] - 128) + 0.436 * (pbgr[i+3] - 128) + 128))/2); + /* y1 */ + *pyuv++ =CLIP(0.299 * (pbgr[i+5] - 128) + 0.587 * (pbgr[i+4] - 128) + 0.114 * (pbgr[i+3] - 128) + 128); + /* v*/ + *pyuv++ =CLIP(((0.615 * (pbgr[i+2] - 128) - 0.515 * (pbgr[i+1] - 128) - 0.100 * (pbgr[i] - 128) + 128) + + (0.615 * (pbgr[i+5] - 128) - 0.515 * (pbgr[i+4] - 128) - 0.100 * (pbgr[i+3] - 128) + 128))/2); + } +} + +#if MJPG_BUILTIN //use internal jpeg decoder +/* + * used for internal jpeg decoding 420 planar to 422 + * args: + * out: pointer to data output of idct (macroblocks yyyy u v) + * pic: pointer to picture buffer (yuyv) + * width: picture width + * + * asserts: + * none + * + * returns: none + */ +void yuv420pto422(int *out, uint8_t *pic, int width) +{ + int j = 0; + int outy1 = 0; + int outy2 = 8; + //yyyyuv + uint8_t *pic0 = pic; + uint8_t *pic1 = pic + width; + int *outy = out; + int *outu = out + 64 * 4; + int *outv = out + 64 * 5; + + for (j = 0; j < 8; j++) + { + int k = 0; + for (k = 0; k < 8; k++) + { + if( k == 4) + { + outy1 += 56; + outy2 += 56; + } + *pic0++ = CLIP(outy[outy1]); //y1 line 1 + *pic0++ = CLIP(128 + *outu); //u line 1-2 + *pic0++ = CLIP(outy[outy1+1]); //y2 line 1 + *pic0++ = CLIP(128 + *outv); //v line 1-2 + *pic1++ = CLIP(outy[outy2]); //y1 line 2 + *pic1++ = CLIP(128 + *outu); //u line 1-2 + *pic1++ = CLIP(outy[outy2+1]); //y2 line 2 + *pic1++ = CLIP(128 + *outv); //v line 1-2 + outy1 +=2; outy2 += 2; outu++; outv++; + } + if(j==3) + { + outy = out + 128; + } + else + { + outy += 16; + } + outy1 = 0; + outy2 = 8; + pic0 += 2 * (width -16); + pic1 += 2 * (width -16); + } +} + +/* + * used for internal jpeg decoding 422 planar to 422 + * args: + * out: pointer to data output of idct (macroblocks yyyy u v) + * pic: pointer to picture buffer (yuyv) + * width: picture width + * + * asserts: + * none + * + * returns: none + */ +void yuv422pto422(int *out, uint8_t *pic, int width) +{ + int j = 0; + int outy1 = 0; + int outy2 = 8; + int outu1 = 0; + int outv1 = 0; + //yyyyuv + uint8_t *pic0 = pic; + uint8_t *pic1 = pic + width; + int *outy = out; + int *outu = out + 64 * 4; + int *outv = out + 64 * 5; + + for (j = 0; j < 4; j++) + { + int k = 0; + for (k = 0; k < 8; k++) + { + if( k == 4) + { + outy1 += 56; + outy2 += 56; + } + *pic0++ = CLIP(outy[outy1]); //y1 line 1 + *pic0++ = CLIP(128 + outu[outu1]); //u line 1 + *pic0++ = CLIP(outy[outy1+1]); //y2 line 1 + *pic0++ = CLIP(128 + outv[outv1]); //v line 1 + *pic1++ = CLIP(outy[outy2]); //y1 line 2 + *pic1++ = CLIP(128 + outu[outu1+8]);//u line 2 + *pic1++ = CLIP(outy[outy2+1]); //y2 line 2 + *pic1++ = CLIP(128 + outv[outv1+8]);//v line 2 + outv1 += 1; outu1 += 1; + outy1 +=2; outy2 +=2; + } + outy += 16;outu +=8; outv +=8; + outv1 = 0; outu1=0; + outy1 = 0; + outy2 = 8; + pic0 += 2 * (width -16); + pic1 += 2 * (width -16); + } +} + +/* + * used for internal jpeg decoding 444 planar to 422 + * args: + * out: pointer to data output of idct (macroblocks yyyy u v) + * pic: pointer to picture buffer (yuyv) + * width: picture width + * + * asserts: + * none + * + * returns: none + */ +void yuv444pto422(int *out, uint8_t *pic, int width) +{ + int j = 0; + int outy1 = 0; + int outy2 = 8; + int outu1 = 0; + int outv1 = 0; + //yyyyuv + uint8_t *pic0 = pic; + uint8_t *pic1 = pic + width; + int *outy = out; + int *outu = out + 64 * 4; // Ooops where did i invert ?? + int *outv = out + 64 * 5; + + for (j = 0; j < 4; j++) + { + int k = 0; + for (k = 0; k < 4; k++) + { + *pic0++ =CLIP( outy[outy1]); //y1 line 1 + *pic0++ =CLIP( 128 + outu[outu1]); //u line 1 + *pic0++ =CLIP( outy[outy1+1]); //y2 line 1 + *pic0++ =CLIP( 128 + outv[outv1]); //v line 1 + *pic1++ =CLIP( outy[outy2]); //y1 line 2 + *pic1++ =CLIP( 128 + outu[outu1+8]);//u line 2 + *pic1++ =CLIP( outy[outy2+1]); //y2 line 2 + *pic1++ =CLIP( 128 + outv[outv1+8]);//v line 2 + outv1 += 2; outu1 += 2; + outy1 +=2; outy2 +=2; + } + outy += 16;outu +=16; outv +=16; + outv1 = 0; outu1=0; + outy1 = 0; + outy2 = 8; + pic0 += 2 * (width -8); + pic1 += 2 * (width -8); + } +} + +/* + * used for internal jpeg decoding 400 planar to 422 + * args: + * out: pointer to data output of idct (macroblocks yyyy ) + * pic: pointer to picture buffer (yuyv) + * width: picture width + * + * asserts: + * none + * + * returns: none + */ +void yuv400pto422(int *out, uint8_t *pic, int width) +{ + int j = 0; + int outy1 = 0; + int outy2 = 8; + uint8_t *pic0 = pic; + uint8_t *pic1 = pic + width; + int *outy = out; + + //yyyy + for (j = 0; j < 4; j++) + { + int k = 0; + for (k = 0; k < 4; k++) + { + *pic0++ = CLIP(outy[outy1]); //y1 line 1 + *pic0++ = 128 ; //u + *pic0++ = CLIP(outy[outy1+1]);//y2 line 1 + *pic0++ = 128 ; //v + *pic1++ = CLIP(outy[outy2]); //y1 line 2 + *pic1++ = 128 ; //u + *pic1++ = CLIP(outy[outy2+1]);//y2 line 2 + *pic1++ = 128 ; //v + outy1 +=2; outy2 +=2; + } + outy += 16; + outy1 = 0; + outy2 = 8; + pic0 += 2 * (width -8); + pic1 += 2 * (width -8); + } +} + +#endif diff -Nru guvcview-1.7.3/gview_v4l2core/colorspaces.h guvcview-2.0.1+ubuntu1~ppa1/gview_v4l2core/colorspaces.h --- guvcview-1.7.3/gview_v4l2core/colorspaces.h 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/gview_v4l2core/colorspaces.h 2014-10-05 10:41:44.000000000 +0000 @@ -0,0 +1,764 @@ +/*******************************************************************************# +# guvcview http://guvcview.sourceforge.net # +# # +# Paulo Assis # +# # +# This program is free software; you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation; either version 2 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program; if not, write to the Free Software # +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # +# # +********************************************************************************/ + +#ifndef COLORSPACES_H +#define COLORSPACES_H + +#include "gview.h" + +/* + *convert from packed 422 yuv (yuyv) to 420 planar (yu12) + * args: + * out - pointer to output yu12 planar data buffer + * in - pointer to input yuyv packed data buffer + * width - frame width + * height - frame height + * + * asserts: + * in is not null + * out is not null + * + * returns: none + */ +void yuyv_to_yu12(uint8_t *out, uint8_t *in, int width, int height); + +/* + *convert from packed 422 yuv (yvyu) to 420 planar (yu12) + * args: + * out - pointer to output yu12 planar data buffer + * in - pointer to input yvyu packed data buffer + * width - frame width + * height - frame height + * + * asserts: + * in is not null + * out is not null + * + * returns: none + */ +void yvyu_to_yu12(uint8_t *out, uint8_t *in, int width, int height); + +/* + *convert from packed 422 yuv (uyvy) to 420 planar (yu12) + * args: + * out - pointer to output yu12 planar data buffer + * in - pointer to input uyvy packed data buffer + * width - frame width + * height - frame height + * + * asserts: + * in is not null + * out is not null + * + * returns: none + */ +void uyvy_to_yu12(uint8_t *out, uint8_t *in, int width, int height); + +/* + *convert from 422 planar yuv to 420 planar (yu12) + * args: + * out - pointer to output yu12 planar data buffer + * in - pointer to input 422 planar data buffer + * width - frame width + * height - frame height + * + * asserts: + * in is not null + * out is not null + * + * returns: none + */ +void yuv422p_to_yu12(uint8_t *out, uint8_t *in, int width, int height); + +/* + * convert yyuv (packed) to yuv420 planar (yu12) + * args: + * out: pointer to output buffer (yu12) + * in: pointer to input buffer containing yyuv packed data frame + * width: picture width + * height: picture height + * + * asserts: + * out is not null + * in is not null + * + * returns: none + */ +void yyuv_to_yu12(uint8_t *out, uint8_t *in, int width, int height); + +/* + *convert from 420 planar (yv12) to 420 planar (yu12) + * args: + * out - pointer to output yu12 planar data buffer + * in - pointer to input yv12 planar data buffer + * width - frame width + * height - frame height + * + * asserts: + * in is not null + * out is not null + * + * returns: none + */ +void yv12_to_yu12(uint8_t *out, uint8_t *in, int width, int height); + +/* + * convert nv12 planar (uv interleaved) to yuv420 planar (yu12) + * args: + * out: pointer to output buffer (yu12) + * in: pointer to input buffer containing nv12 planar data frame + * width: picture width + * height: picture height + * + * asserts: + * out is not null + * in is not null + * + * returns: none + */ +void nv12_to_yu12(uint8_t *out, uint8_t *in, int width, int height); + +/* + * convert nv21 planar (vu interleaved) to yuv420 planar (yu12) + * args: + * out: pointer to output buffer (yu12) + * in: pointer to input buffer containing nv21 planar data frame + * width: picture width + * height: picture height + * + * asserts: + * out is not null + * in is not null + * + * returns: none + */ +void nv21_to_yu12(uint8_t *out, uint8_t *in, int width, int height); + +/* + * convert yuv 422 planar (uv interleaved) (nv16) to yuv420 planar (yu12) + * args: + * out: pointer to output buffer (yu12) + * in: pointer to input buffer containing yuv422 (nv16) planar data frame + * width: picture width + * height: picture height + * + * asserts: + * out is not null + * in is not null + * + * returns: none + */ +void nv16_to_yu12 (uint8_t *out, uint8_t *in, int width, int height); + +/* + * convert yuv 422 planar (vu interleaved) (nv61) to yuv420 planar (yu12) + * args: + * out: pointer to output buffer (yu12) + * in: pointer to input buffer containing yuv422 (nv61) planar data frame + * width: picture width + * height: picture height + * + * asserts: + * out is not null + * in is not null + * + * returns: none + */ +void nv61_to_yu12 (uint8_t *out, uint8_t *in, int width, int height); + +/* + * convert y10b (bit-packed array greyscale format) to yu12 + * args: + * out: pointer to output buffer (yu12) + * in: pointer to input buffer containing y10b (bit-packed array) data frame + * width: picture width + * height: picture height + * + * asserts: + * out is not null + * in is not null + * + * returns: none + */ +void y10b_to_yu12(uint8_t *out, uint8_t *in, int width, int height); + +/* + * convert yuv 411 packed (y41p) to planar yuv 420 (yu12) + * args: + * out: pointer to output buffer (yu12) + * in: pointer to input buffer containing y41p data frame + * width: picture width + * height: picture height + * + * asserts: + * out is not null + * in is not null + * + * returns: none + */ +void y41p_to_yu12(uint8_t *out, uint8_t *in, int width, int height); + +/* + * convert yuv mono (grey) to yuv 420 planar (yu12) + * args: + * out: pointer to output buffer (yu12) + * in: pointer to input buffer containing grey (y only) data frame + * width: picture width + * height: picture height + * + * asserts: + * out is not null + * in is not null + * + * returns: none + */ +void grey_to_yu12(uint8_t *out, uint8_t *in, int width, int height); + +/* + * convert y16 (16 bit greyscale format) to yu12 + * args: + * out: pointer to output buffer (yu12) + * in: pointer to input buffer containing y16 (16 bit greyscale) data frame + * width: picture width + * height: picture height + * + * asserts: + * out is not null + * in is not null + * + * returns: none + */ +void y16_to_yu12(uint8_t *out, uint8_t *in, int width, int height); + +/* + * convert SPCA501 (s501) to yuv 420 planar (yu12) + * s501 |Y0..width..Y0|U..width/2..U|Y1..width..Y1|V..width/2..V| + * signed values (-128;+127) must be converted to unsigned (0; 255) + * args: + * out: pointer to output buffer (yu12) + * in: pointer to input buffer containing s501 data frame + * width: picture width + * height: picture height + * + * asserts: + * none + * + * returns: none + */ +void s501_to_yu12(uint8_t *out, uint8_t *in, int width, int height); + +/* + * convert SPCA505 (s505) to yuv 420 planar (yu12) + * s505 |Y0..width..Y0|Y1..width..Y1|U..width/2..U|V..width/2..V| + * signed values (-128;+127) must be converted to unsigned (0; 255) + * args: + * out: pointer to output buffer (yu12) + * in: pointer to input buffer containing s501 data frame + * width: picture width + * height: picture height + * + * asserts: + * out is not null + * in is not null + * + * returns: none + */ +void s505_to_yu12(uint8_t *out, uint8_t *in, int width, int height); + +/* + * convert SPCA508 (s508) to yuv 420 planar (yu12) + * s508 |Y0..width..Y0|U..width/2..U|V..width/2..V|Y1..width..Y1| + * signed values (-128;+127) must be converted to unsigned (0; 255) + * args: + * out: pointer to output buffer (yu12) + * in: pointer to input buffer containing s501 data frame + * width: picture width + * height: picture height + * + * asserts: + * out is not null + * in is not null + * + * returns: none + */ +void s508_to_yu12(uint8_t *out, uint8_t *in, int width, int height); + +/* + * convert rgb24 to yu12 + * args: + * out: pointer to output buffer containing yu12 data + * in: pointer to input buffer containing rgb24 data + * width: picture width + * height: picture height + * + * asserts: + * out is not null + * in is not null + * + * returns: none + */ +void rgb24_to_yu12(uint8_t *out, uint8_t *in, int width, int height); + +/* + * convert bgr24 to yu12 + * args: + * out: pointer to output buffer containing yu12 data + * in: pointer to input buffer containing bgr24 data + * width: picture width + * height: picture height + * + * asserts: + * out is not null + * in is not null + * + * returns: none + */ +void bgr24_to_yu12(uint8_t *out, uint8_t *in, int width, int height); + +/* + * yu12 to rgb24 + * args: + * out - pointer to output rgb data buffer + * in - pointer to input yu12 data buffer + * width - buffer width (in pixels) + * height - buffer height (in pixels) + * + * asserts: + * none + * + * returns: none + */ +void yu12_to_rgb24 (uint8_t *out, uint8_t *in, int width, int height); + +/* + * FIXME: yu12 to bgr24 with lines upsidedown + * used for bitmap files (DIB24) + * args: + * out - pointer to output bgr data buffer + * in - pointer to input yu12 data buffer + * width - buffer width (in pixels) + * height - buffer height (in pixels) + * + * asserts: + * none + * + * returns: none + */ +void yu12_to_dib24 (uint8_t *out, uint8_t *in, int width, int height); + +/* + * convert yuv 420 planar (yu12) to yuv 422 + * args: + * out- pointer to output buffer (yuyv) + * in- pointer to input buffer (yuv420 planar data frame (yu12)) + * width- picture width + * height- picture height + * + * asserts: + * out is not null + * in is not null + * + * returns: none + */ +void yu12_to_yuyv (uint8_t *out, uint8_t *in, int width, int height); + +/* + * regular yuv (YUYV) to rgb24 + * args: + * pyuv - pointer to input yuyv data buffer + * prgb - pointer to converted output rgb data buffer + * width - buffer width (in pixels) + * height - buffer height (in pixels) + * + * asserts: + * none + * + * returns: none + */ +void yuyv2rgb (uint8_t *pyuv, uint8_t *prgb, int width, int height); + +/* + * used for rgb video (fourcc="RGB ") + * lines are on correct order + * args: + * pyuv - pointer to input yuyv data buffer + * prgb - pointer to converted output bgr data buffer + * width - buffer width (in pixels) + * height - buffer height (in pixels) + * + * asserts: + * none + * + * returns: none + */ +//void yuyv2bgr1 (uint8_t *pyuv, uint8_t *pbgr, int width, int height); + +/* + * yuv (YUYV) to bgr with lines upsidedown + * used for bitmap files (DIB24) + * args: + * pyuv - pointer to input yuyv data buffer + * prgb - pointer to converted output bgr data buffer + * width - buffer width (in pixels) + * height - buffer height (in pixels) + * + * asserts: + * none + * + * returns: none + */ +void yuyv2bgr (uint8_t *pyuv, uint8_t *pbgr, int width, int height); + +/* + * convert y10b (bit-packed array greyscale format) to yuyv (packed) + * args: + * framebuffer: pointer to frame buffer (yuyv) + * tmpbuffer: pointer to temp buffer containing y10b (bit-packed array) data frame + * width: picture width + * height: picture height + * + * asserts: + * none + * + * returns: none + */ +void y10b_to_yuyv (uint8_t *framebuffer, uint8_t *tmpbuffer, int width, int height); + +/* + * convert y16 (grey) to yuyv (packed) + * args: + * framebuffer: pointer to frame buffer (yuyv) + * tmpbuffer: pointer to temp buffer containing y16 (grey) data frame + * width: picture width + * height: picture height + * + * asserts: + * none + * + * returns: none + */ +void y16_to_yuyv (uint8_t *framebuffer, uint8_t *tmpbuffer, int width, int height); + +/* + * convert yyuv (packed) to yuyv (packed) + * args: + * framebuffer: pointer to frame buffer (yuyv) + * tmpbuffer: pointer to temp buffer containing yyuv packed data frame + * width: picture width + * height: picture height + * + * asserts: + * none + * + * returns: none + */ +void yyuv_to_yuyv (uint8_t *framebuffer, uint8_t *tmpbuffer, int width, int height); + +/* + * convert uyvy (packed) to yuyv (packed) + * args: + * framebuffer: pointer to frame buffer (yuyv) + * tmpbuffer: pointer to temp buffer containing uyvy packed data frame + * width: picture width + * height: picture height + * + * asserts: + * none + * + * returns: none + */ +void uyvy_to_yuyv (uint8_t *framebuffer, uint8_t *tmpbuffer, int width, int height); + +/* + * convert yvyu (packed) to yuyv (packed) + * args: + * framebuffer: pointer to frame buffer (yuyv) + * tmpbuffer: pointer to temp buffer containing yvyu packed data frame + * width: picture width + * height: picture height + * + * asserts: + * none + * + * returns: none + */ +void yvyu_to_yuyv (uint8_t *framebuffer, uint8_t *tmpbuffer, int width, int height); + +/* + * convert yvu 420 planar (yv12) to yuv 422 + * args: + * framebuffer: pointer to frame buffer (yuyv) + * tmpbuffer: pointer to temp buffer containing yuv420 planar data frame + * width: picture width + * height: picture height + * + * asserts: + * none + * + * returns: none + */ +void yvu420_to_yuyv (uint8_t *framebuffer, uint8_t *tmpbuffer, int width, int height); + +/* + * convert yuv 420 planar (uv interleaved) (nv12) to yuv 422 + * args: + * framebuffer: pointer to frame buffer (yuyv) + * tmpbuffer: pointer to temp buffer containing yuv420 (nv12) planar data frame + * width: picture width + * height: picture height + * + * asserts: + * none + * + * returns: none + */ +void nv12_to_yuyv (uint8_t *framebuffer, uint8_t *tmpbuffer, int width, int height); + +/* + * convert yuv 420 planar (vu interleaved) (nv21) to yuv 422 + * args: + * framebuffer: pointer to frame buffer (yuyv) + * tmpbuffer: pointer to temp buffer containing yuv420 (nv21) planar data frame + * width: picture width + * height: picture height + * + * asserts: + * none + * + * returns: none + */ +void nv21_to_yuyv (uint8_t *framebuffer, uint8_t *tmpbuffer, int width, int height); + +/* + * convert yuv 422 planar (uv interleaved) (nv16) to yuv 422 + * args: + * framebuffer: pointer to frame buffer (yuyv) + * tmpbuffer: pointer to temp buffer containing yuv422 (nv16) planar data frame + * width: picture width + * height: picture height + * + * asserts: + * none + * + * returns: none + */ +void nv16_to_yuyv (uint8_t *framebuffer, uint8_t *tmpbuffer, int width, int height); + +/* + * convert yuv 422 planar (vu interleaved) (nv61) to yuv 422 + * args: + * framebuffer: pointer to frame buffer (yuyv) + * tmpbuffer: pointer to temp buffer containing yuv422 (nv61) planar data frame + * width: picture width + * height: picture height + * + * asserts: + * none + * + * returns: none + */ +void nv61_to_yuyv (uint8_t *framebuffer, uint8_t *tmpbuffer, int width, int height); + +/* + * convert yuv 411 packed (y41p) to yuv 422 + * args: + * framebuffer: pointer to frame buffer (yuyv) + * tmpbuffer: pointer to temp buffer containing y41p data frame + * width: picture width + * height: picture height + * + * asserts: + * none + * + * returns: none + */ +void y41p_to_yuyv (uint8_t *framebuffer, uint8_t *tmpbuffer, int width, int height); + +/* + * convert yuv mono (grey) to yuv 422 + * args: + * framebuffer: pointer to frame buffer (yuyv) + * tmpbuffer: pointer to temp buffer containing grey (y only) data frame + * width: picture width + * height: picture height + * + * asserts: + * none + * + * returns: none + */ +void grey_to_yuyv (uint8_t *framebuffer, uint8_t *tmpbuffer, int width, int height); + +/* + * convert SPCA501 (s501) to yuv 422 + * s501 |Y0..width..Y0|U..width/2..U|Y1..width..Y1|V..width/2..V| + * signed values (-128;+127) must be converted to unsigned (0; 255) + * args: + * framebuffer: pointer to frame buffer (yuyv) + * tmpbuffer: pointer to temp buffer containing s501 data frame + * width: picture width + * height: picture height + * + * asserts: + * none + * + * returns: none + */ +void s501_to_yuyv(uint8_t *framebuffer, uint8_t *tmpbuffer, int width, int height); + +/* + * convert SPCA505 (s505) to yuv 422 + * s505 |Y0..width..Y0|Y1..width..Y1|U..width/2..U|V..width/2..V| + * signed values (-128;+127) must be converted to unsigned (0; 255) + * args: + * framebuffer: pointer to frame buffer (yuyv) + * tmpbuffer: pointer to temp buffer containing s501 data frame + * width: picture width + * height: picture height + * + * asserts: + * none + * + * returns: none + */ +void s505_to_yuyv(uint8_t *framebuffer, uint8_t *tmpbuffer, int width, int height); + +/* + * convert SPCA508 (s508) to yuv 422 + * s508 |Y0..width..Y0|U..width/2..U|V..width/2..V|Y1..width..Y1| + * signed values (-128;+127) must be converted to unsigned (0; 255) + * args: + * framebuffer: pointer to frame buffer (yuyv) + * tmpbuffer: pointer to temp buffer containing s501 data frame + * width: picture width + * height: picture height + * + * asserts: + * none + * + * returns: none + */ +void s508_to_yuyv(uint8_t *framebuffer, uint8_t *tmpbuffer, int width, int height); + +/* + * convert bayer raw data to rgb24 + * args: + * pBay: pointer to buffer containing Raw bayer data + * pRGB24: pointer to buffer containing rgb24 data + * width: picture width + * height: picture height + * pix_order: bayer pixel order (0=gb/rg 1=gr/bg 2=bg/gr 3=rg/bg) + * + * asserts: + * none + * + * returns: none + */ +void bayer_to_rgb24(uint8_t *pBay, uint8_t *pRGB24, int width, int height, int pix_order); + +/* + * convert rgb24 to yuyv + * args: + * prgb: pointer to input buffer containing rgb data + * pyuv: pointer to output buffer containing converted yuyv data + * width: picture width + * height: picture height + * + * asserts: + * none + * + * returns: none + */ +void rgb2yuyv(uint8_t *prgb, uint8_t *pyuv, int width, int height); + +/* + * convert bgr24 to yuyv + * args: + * pbgr: pointer to input buffer containing bgr data + * pyuv: pointer to output buffer containing converted yuyv data + * width: picture width + * height: picture height + * + * asserts: + * none + * + * returns: none + */ +void bgr2yuyv(uint8_t *pbgr, uint8_t *pyuv, int width, int height); + +/* + * used for internal jpeg decoding 420 planar to 422 + * args: + * out: pointer to data output of idct (macroblocks yyyy u v) + * pic: pointer to picture buffer (yuyv) + * width: picture width + * + * asserts: + * none + * + * returns: none + */ +void yuv420pto422(int *out, uint8_t *pic, int width); + +/* + * used for internal jpeg decoding 422 planar to 422 + * args: + * out: pointer to data output of idct (macroblocks yyyy u v) + * pic: pointer to picture buffer (yuyv) + * width: picture width + * + * asserts: + * none + * + * returns: none + */ +void yuv422pto422(int *out, uint8_t *pic, int width); + +/* + * used for internal jpeg decoding 444 planar to 422 + * args: + * out: pointer to data output of idct (macroblocks yyyy u v) + * pic: pointer to picture buffer (yuyv) + * width: picture width + * + * asserts: + * none + * + * returns: none + */ +void yuv444pto422(int *out, uint8_t *pic, int width); + +/* + * used for internal jpeg decoding 400 planar to 422 + * args: + * out: pointer to data output of idct (macroblocks yyyy ) + * pic: pointer to picture buffer (yuyv) + * width: picture width + * + * asserts: + * none + * + * returns: none + */ +void yuv400pto422(int *out, uint8_t *pic, int width); + +#endif + diff -Nru guvcview-1.7.3/gview_v4l2core/control_profile.c guvcview-2.0.1+ubuntu1~ppa1/gview_v4l2core/control_profile.c --- guvcview-1.7.3/gview_v4l2core/control_profile.c 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/gview_v4l2core/control_profile.c 2014-10-05 10:41:44.000000000 +0000 @@ -0,0 +1,256 @@ +/*******************************************************************************# +# guvcview http://guvcview.sourceforge.net # +# # +# Paulo Assis # +# # +# This program is free software; you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation; either version 2 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program; if not, write to the Free Software # +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # +# # +********************************************************************************/ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "gviewv4l2core.h" +#include "v4l2_controls.h" +#include "../config.h" + +extern int verbosity; + +/* + * save the device control values into a profile file + * args: + * vd - pointer to video device data + * filename - profile filename + * + * asserts: + * vd is not null + * + * returns: error code (0 -E_OK) + */ +int v4l2core_save_control_profile(v4l2_dev_t *vd, const char *filename) +{ + /*assertions*/ + assert(vd != NULL); + + FILE *fp; + + fp = fopen(filename, "w"); + if( fp == NULL ) + { + fprintf(stderr, "V4L2_CORE: (save_control_profile) Could not open %s for write: %s\n", + filename, strerror(errno)); + return (E_FILE_IO_ERR); + } + else + { + if (vd->list_device_controls) + { + v4l2_ctrl_t *current = vd->list_device_controls; + + /*write header*/ + fprintf(fp, "#V4L2/CTRL/0.0.2\n"); + fprintf(fp, "APP{\"%s\"}\n", PACKAGE_STRING); + /*write control data*/ + fprintf(fp, "# control data\n"); + for( ; current != NULL; current = current->next) + { + if((current->control.flags & V4L2_CTRL_FLAG_WRITE_ONLY) || + (current->control.flags & V4L2_CTRL_FLAG_READ_ONLY) || + (current->control.flags & V4L2_CTRL_FLAG_GRABBED)) + { + if(verbosity > 0) + printf("V4L2_CORE: (save_control_profile) skiping control 0x%08x\n", current->control.id); + continue; + } + fprintf(fp, "#%s\n", current->control.name); + switch(current->control.type) + { +#ifdef V4L2_CTRL_TYPE_STRING + case V4L2_CTRL_TYPE_STRING : + fprintf(fp, "ID{0x%08x};CHK{%i:%i:%i:0}=STR{\"%s\"}\n", + current->control.id, + current->control.minimum, + current->control.maximum, + current->control.step, + current->string); + break; +#endif +#ifdef V4L2_CTRL_TYPE_INTEGER64 + case V4L2_CTRL_TYPE_INTEGER64 : + fprintf(fp, "ID{0x%08x};CHK{0:0:0:0}=VAL64{%" PRId64 "}\n", + current->control.id, + current->value64); + break; +#endif + default : + fprintf(fp, "ID{0x%08x};CHK{%i:%i:%i:%i}=VAL{%i}\n", + current->control.id, + current->control.minimum, + current->control.maximum, + current->control.step, + current->control.default_value, + current->value); + break; + } + } + } + } + + fflush(fp); /*flush stream buffers to filesystem*/ + if(fsync(fileno(fp)) || fclose(fp)) + { + fprintf(stderr, "V4L2_CORE: (save_control_profile) write to file failed: %s\n", strerror(errno)); + return(E_FILE_IO_ERR); + } + + return (E_OK); +} + +/* + * load the device control values from a profile file + * args: + * vd - pointer to video device data + * filename - profile filename + * + * asserts: + * vd is not null + * + * returns: error code (0 -E_OK) + */ +int v4l2core_load_control_profile(v4l2_dev_t *vd, const char *filename) +{ + /*assertions*/ + assert(vd != NULL); + + FILE *fp; + int major=0, minor=0, rev=0; + + if((fp = fopen(filename,"r"))!=NULL) + { + char line[200]; + if(fgets(line, sizeof(line), fp) != NULL) + { + if(sscanf(line,"#V4L2/CTRL/%3i.%3i.%3i", &major, &minor, &rev) == 3) + { + //check standard version if needed + } + else + { + fprintf(stderr, "V4L2_CORE: (load_control_profile) no valid header found\n"); + fclose(fp); + return(E_NO_DATA); + } + } + else + { + fprintf(stderr, "V4L2_CORE: (load_control_profile) no valid header found\n"); + fclose(fp); + return(E_NO_DATA); + } + + while (fgets(line, sizeof(line), fp) != NULL) + { + int id = 0; + int min = 0, max = 0, step = 0, def = 0; + int32_t val = 0; + int64_t val64 = 0; + + if ((line[0]!='#') && (line[0]!='\n')) + { + if(sscanf(line,"ID{0x%08x};CHK{%5i:%5i:%5i:%5i}=VAL{%5i}", + &id, &min, &max, &step, &def, &val) == 6) + { + v4l2_ctrl_t *current = v4l2core_get_control_by_id(vd, id); + + if(current) + { + /*check values*/ + if(current->control.minimum == min && + current->control.maximum == max && + current->control.step == step && + current->control.default_value == def) + { + current->value = val; + } + } + } + else if(sscanf(line,"ID{0x%08x};CHK{0:0:0:0}=VAL64{%" PRId64 "}", + &id, &val64) == 2) + { + v4l2_ctrl_t *current = v4l2core_get_control_by_id(vd, id); + + if(current) + { + current->value64 = val64; + } + } + else if(sscanf(line,"ID{0x%08x};CHK{%5i:%5i:%5i:0}=STR{\"%*s\"}", + &id, &min, &max, &step) == 5) + { + v4l2_ctrl_t *current = v4l2core_get_control_by_id(vd, id); + + if(current) + { + /*check values*/ + if(current->control.minimum == min && + current->control.maximum == max && + current->control.step == step) + { + char str[max+1]; + char fmt[48]; + sprintf(fmt,"ID{0x%%*x};CHK{%%*i:%%*i:%%*i:0}==STR{\"%%%is\"}", max); + sscanf(line, fmt, str); + + /*we are only scannig for max chars so this should never happen*/ + if(strlen(str) > max) /*FIXME: should also check (minimum +N*step)*/ + { + fprintf(stderr, "V4L2_CORE: (load_control_profile) string bigger than maximum buffer size (%i > %i)\n", + (int) strlen(str), max); + if(current->string) + free(current->string); + current->string = strndup(str, max); /*FIXME: does max includes '\0' ?*/ + } + else + { + if(current->string) + free(current->string); + current->string = strndup(str, strlen(str)+1); + } + } + } + } + } + } + + set_v4l2_control_values(vd); + get_v4l2_control_values(vd); + } + else + { + fprintf(stderr, "V4L2_CORE: (load_control_profile) Could not open for %s read: %s\n", + filename, strerror(errno)); + return (E_FILE_IO_ERR); + } + + fclose(fp); + return (E_OK); +} diff -Nru guvcview-1.7.3/gview_v4l2core/core_time.c guvcview-2.0.1+ubuntu1~ppa1/gview_v4l2core/core_time.c --- guvcview-1.7.3/gview_v4l2core/core_time.c 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/gview_v4l2core/core_time.c 2014-10-05 10:41:44.000000000 +0000 @@ -0,0 +1,168 @@ +/*******************************************************************************# +# guvcview http://guvcview.sourceforge.net # +# # +# Paulo Assis # +# # +# This program is free software; you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation; either version 2 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program; if not, write to the Free Software # +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # +# # +********************************************************************************/ + +#include +#include +#include +#include +#include +#include +#include +#include + +#include "core_time.h" +#include "gview.h" + +/* + * time in miliseconds + * args: + * none + * + * asserts: + * none + * + * returns: time of day in miliseconds + */ +//uint32_t ms_time () +//{ +// struct timeval now; +// +// if(gettimeofday(&now, NULL) != 0) +// { +// fprintf(stderr, "V4L2_CORE: ms_time (gettimeofday) error: %s\n", strerror(errno)); +// return 0; +// } +// +// uint32_t mst = (uint32_t) now.tv_sec * 1000 + (uint32_t) now.tv_usec / 1000; +// +// return (mst); +//} + +/* + * time in microseconds + * args: + * none + * + * asserts: + * none + * + * returns: time of day in microseconds + */ +//uint64_t us_time(void) +//{ +// struct timeval now; +// +// if(gettimeofday(&now, NULL) != 0) +// { +// fprintf(stderr, "V4L2_CORE: us_time (gettimeofday) error: %s\n", strerror(errno)); +// return 0; +// } +// +// uint64_t ust = (uint64_t) now.tv_sec * USEC_PER_SEC + (uint64_t) now.tv_usec; +// +// return (ust); +//} + +/* + * time in nanoseconds + * args: + * none + * + * asserts: + * none + * + * returns: time in nanoseconds + */ +//uint64_t ns_time (void) +//{ +// struct timespec now; +// +// if(clock_gettime(CLOCK_REALTIME, &now) != 0) +// { +// fprintf(stderr, "V4L2_CORE: ns_time (clock_gettime) error: %s\n", strerror(errno)); +// return 0; +// } +// +// return ((uint64_t) now.tv_sec * NSEC_PER_SEC + (uint64_t) now.tv_nsec); +//} + +/* + * monotonic time in nanoseconds + * args: + * none + * + * asserts: + * none + * + * returns: monotonic time in nanoseconds + */ +uint64_t ns_time_monotonic() +{ + struct timespec now; + + if(clock_gettime(CLOCK_MONOTONIC, &now) != 0) + { + fprintf(stderr, "V4L2_CORE: ns_time_monotonic (clock_gettime) error: %s\n", strerror(errno)); + return 0; + } + + return ((uint64_t)now.tv_sec * NSEC_PER_SEC + (uint64_t) now.tv_nsec); +} + +/* + * get current timestamp + * args: + * none + * + * asserts: + * none + * + * returns: monotonic time in nanoseconds + */ +uint64_t v4l2core_time_get_timestamp() +{ + return ns_time_monotonic(); +} + + +/* +void sleep_ms(int ms_time) +{ + gulong sleep_us = ms_time *1000; + g_usleep( sleep_us ); +} + + +int wait_ms(gboolean* var, gboolean val, __MUTEX_TYPE *mutex, int ms_time, int n_loops) +{ + int n=n_loops; + __LOCK_MUTEX(mutex); + while( (*var!=val) && ( n > 0 ) ) + { + __UNLOCK_MUTEX(mutex); + n--; + sleep_ms( ms_time ); + __LOCK_MUTEX(mutex); + }; + __UNLOCK_MUTEX(mutex); + return (n); +} +*/ diff -Nru guvcview-1.7.3/gview_v4l2core/core_time.h guvcview-2.0.1+ubuntu1~ppa1/gview_v4l2core/core_time.h --- guvcview-1.7.3/gview_v4l2core/core_time.h 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/gview_v4l2core/core_time.h 2014-10-05 10:41:44.000000000 +0000 @@ -0,0 +1,76 @@ +/*******************************************************************************# +# guvcview http://guvcview.sourceforge.net # +# # +# Paulo Assis # +# # +# This program is free software; you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation; either version 2 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program; if not, write to the Free Software # +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # +# # +********************************************************************************/ +#ifndef CORE_TIME_H +#define CORE_TIME_H + +#include +#include + +/* + * time in miliseconds + * args: + * none + * + * asserts: + * none + * + * returns: time of day in miliseconds + */ +//uint32_t ms_time (); + +/* + * time in microseconds + * args: + * none + * + * asserts: + * none + * + * returns: time of day in microseconds + */ +//uint64_t us_time(); + +/* + * time in nanoseconds + * args: + * none + * + * asserts: + * none + * + * returns: time in nanoseconds + */ +//uint64_t ns_time (); + +/* + * monotonic time in nanoseconds + * args: + * none + * + * asserts: + * none + * + * returns: monotonic time in nanoseconds + */ +uint64_t ns_time_monotonic(); + +#endif + diff -Nru guvcview-1.7.3/gview_v4l2core/dct.c guvcview-2.0.1+ubuntu1~ppa1/gview_v4l2core/dct.c --- guvcview-1.7.3/gview_v4l2core/dct.c 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/gview_v4l2core/dct.c 2014-10-05 10:41:44.000000000 +0000 @@ -0,0 +1,165 @@ +/*******************************************************************************# +# guvcview http://guvcview.sourceforge.net # +# # +# Paulo Assis # +# # +# This program is free software; you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation; either version 2 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program; if not, write to the Free Software # +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # +# # +********************************************************************************/ + +/*******************************************************************************# +# # +# dct for Jpeg encoder # +# # +# Adapted for linux, Paulo Assis, 2007 # +********************************************************************************/ + +#include +#include +#include +#include +#include +#include +#include + +#include "gviewv4l2core.h" +#include "dct.h" +#include "gview.h" + + +/* + * Level shifting to get 8 bit SIGNED values for the data + * args: + * data - pointer to data + * + * asserts: + * none + * + * returns: none + */ +void levelshift (int16_t * const data) +{ + int16_t i; + + for (i = 63; i >= 0; --i) + data [i] -= 128; +} + +/* + * DCT for One block(8x8) + * args: + * data- pointer to data + * + * asserts: + * none + * + * returns: none + */ +void DCT (int16_t *data) +{ + uint16_t i; + int32_t x0, x1, x2, x3, x4, x5, x6, x7, x8; + int16_t *tmp_ptr; + tmp_ptr=data; + /* All values are shifted left by 10 */ + /* and rounded off to nearest integer */ + + /* scale[0] = 1 + * scale[k] = cos(k*PI/16)*root(2) + */ + static const uint16_t c1=1420; /* cos PI/16 * root(2) */ + static const uint16_t c2=1338; /* cos PI/8 * root(2) */ + static const uint16_t c3=1204; /* cos 3PI/16 * root(2) */ + static const uint16_t c5=805; /* cos 5PI/16 * root(2) */ + static const uint16_t c6=554; /* cos 3PI/8 * root(2) */ + static const uint16_t c7=283; /* cos 7PI/16 * root(2) */ + + static const uint16_t s1=3; + static const uint16_t s2=10; + static const uint16_t s3=13; + + + /* row pass */ + for (i = 8; i > 0; --i) + { + x8 = data [0] + data [7]; + x0 = data [0] - data [7]; + + x7 = data [1] + data [6]; + x1 = data [1] - data [6]; + + x6 = data [2] + data [5]; + x2 = data [2] - data [5]; + + x5 = data [3] + data [4]; + x3 = data [3] - data [4]; + + x4 = x8 + x5; + x8 -= x5; + + x5 = x7 + x6; + x7 -= x6; + + data [0] = (int16_t) (x4 + x5); + data [4] = (int16_t) (x4 - x5); + + data [2] = (int16_t) ((x8*c2 + x7*c6) >> s2); + data [6] = (int16_t) ((x8*c6 - x7*c2) >> s2); + + data [7] = (int16_t) ((x0*c7 - x1*c5 + x2*c3 - x3*c1) >> s2); + data [5] = (int16_t) ((x0*c5 - x1*c1 + x2*c7 + x3*c3) >> s2); + data [3] = (int16_t) ((x0*c3 - x1*c7 - x2*c1 - x3*c5) >> s2); + data [1] = (int16_t) ((x0*c1 + x1*c3 + x2*c5 + x3*c7) >> s2); + + data += 8; + } + + data = tmp_ptr;/* return to start of mcu */ + + /* column pass */ + for (i=8; i>0; i--) + { + x8 = data [0] + data [56]; + x0 = data [0] - data [56]; + + x7 = data [8] + data [48]; + x1 = data [8] - data [48]; + + x6 = data [16] + data [40]; + x2 = data [16] - data [40]; + + x5 = data [24] + data [32]; + x3 = data [24] - data [32]; + + x4 = x8 + x5; + x8 -= x5; + + x5 = x7 + x6; + x7 -= x6; + + data [0] = (int16_t) ((x4 + x5) >> s1); + data [32] = (int16_t) ((x4 - x5) >> s1); + + data [16] = (int16_t) ((x8*c2 + x7*c6) >> s3); + data [48] = (int16_t) ((x8*c6 - x7*c2) >> s3); + + data [56] = (int16_t) ((x0*c7 - x1*c5 + x2*c3 - x3*c1) >> s3); + data [40] = (int16_t) ((x0*c5 - x1*c1 + x2*c7 + x3*c3) >> s3); + data [24] = (int16_t) ((x0*c3 - x1*c7 - x2*c1 - x3*c5) >> s3); + data [8] = (int16_t) ((x0*c1 + x1*c3 + x2*c5 + x3*c7) >> s3); + + data++; + } +} \ No newline at end of file diff -Nru guvcview-1.7.3/gview_v4l2core/dct.h guvcview-2.0.1+ubuntu1~ppa1/gview_v4l2core/dct.h --- guvcview-1.7.3/gview_v4l2core/dct.h 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/gview_v4l2core/dct.h 2014-10-05 10:41:44.000000000 +0000 @@ -0,0 +1,59 @@ +/*******************************************************************************# +# guvcview http://guvcview.sourceforge.net # +# # +# Paulo Assis # +# # +# This program is free software; you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation; either version 2 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program; if not, write to the Free Software # +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # +# # +********************************************************************************/ + +/*******************************************************************************# +# # +# dct for Jpeg encoder # +# # +# Adapted for linux, Paulo Assis, 2007 # +********************************************************************************/ + +#ifndef DCT_H +#define DCT_H + +#include +#include + +/* + * Level shifting to get 8 bit SIGNED values for the data + * args: + * data - pointer to data + * + * asserts: + * none + * + * returns: none + */ +void levelshift (int16_t * const data); + +/* + * DCT for One block(8x8) + * args: + * data- pointer to data + * + * asserts: + * none + * + * returns: none + */ +void DCT (int16_t *data); + +#endif \ No newline at end of file diff -Nru guvcview-1.7.3/gview_v4l2core/frame_decoder.c guvcview-2.0.1+ubuntu1~ppa1/gview_v4l2core/frame_decoder.c --- guvcview-1.7.3/gview_v4l2core/frame_decoder.c 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/gview_v4l2core/frame_decoder.c 2014-10-05 10:41:44.000000000 +0000 @@ -0,0 +1,1221 @@ +/*******************************************************************************# +# guvcview http://guvcview.sourceforge.net # +# # +# Paulo Assis # +# Nobuhiro Iwamatsu # +# Add UYVY color support(Macbook iSight) # +# # +# This program is free software; you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation; either version 2 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program; if not, write to the Free Software # +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # +# # +********************************************************************************/ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "gviewv4l2core.h" +#include "uvc_h264.h" +#include "frame_decoder.h" +#include "jpeg_decoder.h" +#include "colorspaces.h" +#include "../config.h" + +extern int verbosity; + +/* + * Alloc image buffers for decoding video stream + * args: + * vd - pointer to video device data + * + * asserts: + * vd is not null + * + * returns: error code (0- E_OK) + */ +int alloc_v4l2_frames(v4l2_dev_t *vd) +{ + /*assertions*/ + assert(vd != NULL); + + if(verbosity > 2) + printf("V4L2_CORE: allocating frame buffers\n"); + /*clean any previous frame buffers*/ + clean_v4l2_frames(vd); + + int ret = E_OK; + + size_t framebuf_size = 0; + + int width = vd->format.fmt.pix.width; + int height = vd->format.fmt.pix.height; + + if(width <= 0 || height <= 0) + return E_ALLOC_ERR; +#ifdef USE_PLANAR_YUV + int framesizeIn = (width * height * 3/2); /* 3/2 bytes per pixel*/ +#else + int framesizeIn = (width * height * 2); /*2 bytes per pixel*/ +#endif + switch (vd->requested_fmt) + { + case V4L2_PIX_FMT_H264: + /*init h264 context*/ + ret = h264_init_decoder(width, height); + + if(ret) + { + fprintf(stderr, "V4L2_CORE: couldn't init h264 decoder\n"); + return ret; + } + + vd->h264_frame_max_size = width * height; /*1 byte per pixel*/ + + vd->h264_last_IDR = calloc(vd->h264_frame_max_size, sizeof(uint8_t)); + if(vd->h264_last_IDR == NULL) + { + fprintf(stderr, "V4L2_CORE: FATAL memory allocation failure (alloc_v4l2_frames): %s\n", strerror(errno)); + exit(-1); + } + + vd->h264_last_IDR_size = 0; /*reset (no frame stored)*/ + + vd->h264_frame = calloc(vd->h264_frame_max_size, sizeof(uint8_t)); + + if(vd->h264_frame == NULL) + { + fprintf(stderr, "V4L2_CORE: FATAL memory allocation failure (alloc_v4l2_frames): %s\n", strerror(errno)); + exit(-1); + } + + vd->yuv_frame = calloc(framesizeIn, sizeof(uint8_t)); + if(vd->yuv_frame == NULL) + { + fprintf(stderr, "V4L2_CORE: FATAL memory allocation failure (alloc_v4l2_frames): %s\n", strerror(errno)); + exit(-1); + } + +#ifdef USE_PLANAR_YUV + /*no need for a temp buffer*/ +#else + /* alloc a temp buffer for colorspace conversion*/ + vd->tmp_buffer_max_size = width * height * 2; + vd->tmp_buffer = calloc(vd->tmp_buffer_max_size, sizeof(uint8_t)); + if(vd->tmp_buffer == NULL) + { + fprintf(stderr, "V4L2_CORE: FATAL memory allocation failure (alloc_v4l2_frames): %s\n", strerror(errno)); + exit(-1); + } +#endif + break; + + case V4L2_PIX_FMT_JPEG: + case V4L2_PIX_FMT_MJPEG: + /*init jpeg decoder*/ + ret = jpeg_init_decoder(width, height); + + if(ret) + { + fprintf(stderr, "V4L2_CORE: couldn't init jpeg decoder\n"); + return ret; + } + + vd->yuv_frame = calloc(framesizeIn, sizeof(uint8_t)); + if(vd->yuv_frame == NULL) + { + fprintf(stderr, "V4L2_CORE: FATAL memory allocation failure (alloc_v4l2_frames): %s\n", strerror(errno)); + exit(-1); + } + break; + + case V4L2_PIX_FMT_UYVY: + case V4L2_PIX_FMT_YVYU: + case V4L2_PIX_FMT_YYUV: + case V4L2_PIX_FMT_YUV420: /* only needs 3/2 bytes per pixel but we alloc 2 bytes per pixel*/ + case V4L2_PIX_FMT_YVU420: /* only needs 3/2 bytes per pixel but we alloc 2 bytes per pixel*/ + case V4L2_PIX_FMT_Y41P: /* only needs 3/2 bytes per pixel but we alloc 2 bytes per pixel*/ + case V4L2_PIX_FMT_NV12: + case V4L2_PIX_FMT_NV21: + case V4L2_PIX_FMT_NV16: + case V4L2_PIX_FMT_NV61: + case V4L2_PIX_FMT_SPCA501: + case V4L2_PIX_FMT_SPCA505: + case V4L2_PIX_FMT_SPCA508: + /*FIXME: do we need the temp buffer ?*/ + /* alloc a temp buffer for colorspace conversion*/ + vd->tmp_buffer_max_size = width * height * 2; + vd->tmp_buffer = calloc(vd->tmp_buffer_max_size, sizeof(uint8_t)); + if(vd->tmp_buffer == NULL) + { + fprintf(stderr, "V4L2_CORE: FATAL memory allocation failure (alloc_v4l2_frames): %s\n", strerror(errno)); + exit(-1); + } + framebuf_size = framesizeIn; + vd->yuv_frame = calloc(framebuf_size, sizeof(uint8_t)); + if(vd->yuv_frame == NULL) + { + fprintf(stderr, "V4L2_CORE: FATAL memory allocation failure (alloc_v4l2_frames): %s\n", strerror(errno)); + exit(-1); + } + break; + + case V4L2_PIX_FMT_GREY: + /* alloc a temp buffer for colorspace conversion*/ + vd->tmp_buffer_max_size = width * height; /* 1 byte per pixel*/ + vd->tmp_buffer = calloc(vd->tmp_buffer_max_size, sizeof(uint8_t)); + if(vd->tmp_buffer == NULL) + { + fprintf(stderr, "V4L2_CORE: FATAL memory allocation failure (alloc_v4l2_frames): %s\n", strerror(errno)); + exit(-1); + } + framebuf_size = framesizeIn; + vd->yuv_frame = calloc(framebuf_size, sizeof(uint8_t)); + if(vd->yuv_frame == NULL) + { + fprintf(stderr, "V4L2_CORE: FATAL memory allocation failure (alloc_v4l2_frames): %s\n", strerror(errno)); + exit(-1); + } + break; + + case V4L2_PIX_FMT_Y10BPACK: + case V4L2_PIX_FMT_Y16: + /* alloc a temp buffer for colorspace conversion*/ + vd->tmp_buffer_max_size = framesizeIn; /* 2 byte per pixel*/ + vd->tmp_buffer = calloc(vd->tmp_buffer_max_size, sizeof(uint8_t)); + if(vd->tmp_buffer == NULL) + { + fprintf(stderr, "V4L2_CORE: FATAL memory allocation failure (alloc_v4l2_frames): %s\n", strerror(errno)); + exit(-1); + } + framebuf_size = framesizeIn; + vd->yuv_frame = calloc(framebuf_size, sizeof(uint8_t)); + if(vd->yuv_frame == NULL) + { + fprintf(stderr, "V4L2_CORE: FATAL memory allocation failure (alloc_v4l2_frames): %s\n", strerror(errno)); + exit(-1); + } + break; + + case V4L2_PIX_FMT_YUYV: + /* + * YUYV doesn't need a temp buffer but we will set it if/when + * video processing disable is set (bayer processing). + * (logitech cameras only) + */ + framebuf_size = framesizeIn; + vd->yuv_frame = calloc(framebuf_size, sizeof(uint8_t)); + if(vd->yuv_frame == NULL) + { + fprintf(stderr, "V4L2_CORE: FATAL memory allocation failure (alloc_v4l2_frames): %s\n", strerror(errno)); + exit(-1); + } + break; + + case V4L2_PIX_FMT_SGBRG8: /*0*/ + case V4L2_PIX_FMT_SGRBG8: /*1*/ + case V4L2_PIX_FMT_SBGGR8: /*2*/ + case V4L2_PIX_FMT_SRGGB8: /*3*/ + /* + * Raw 8 bit bayer + * when grabbing use: + * bayer_to_rgb24(bayer_data, RGB24_data, width, height, 0..3) + * rgb2yuyv(RGB24_data, vd->framebuffer, width, height) + */ + + /* alloc a temp buffer for converting to YUYV*/ + /* rgb buffer for decoding bayer data*/ + vd->tmp_buffer_max_size = width * height * 3; + vd->tmp_buffer = calloc(vd->tmp_buffer_max_size, sizeof(uint8_t)); + if(vd->tmp_buffer == NULL) + { + fprintf(stderr, "V4L2_CORE: FATAL memory allocation failure (alloc_v4l2_frames): %s\n", strerror(errno)); + exit(-1); + } + framebuf_size = framesizeIn; + vd->yuv_frame = calloc(framebuf_size, sizeof(uint8_t)); + if(vd->yuv_frame == NULL) + { + fprintf(stderr, "V4L2_CORE: FATAL memory allocation failure (alloc_v4l2_frames): %s\n", strerror(errno)); + exit(-1); + } + break; + case V4L2_PIX_FMT_RGB24: + case V4L2_PIX_FMT_BGR24: + /*convert directly from raw_frame*/ + framebuf_size = framesizeIn; + vd->yuv_frame = calloc(framebuf_size, sizeof(uint8_t)); + if(vd->yuv_frame == NULL) + { + fprintf(stderr, "V4L2_CORE: FATAL memory allocation failure (alloc_v4l2_frames): %s\n", strerror(errno)); + exit(-1); + } + break; + + default: + /* + * we check formats against a support formats list + * so we should never have to alloc for a unknown format + */ + fprintf(stderr, "V4L2_CORE: (v4l2uvc.c) should never arrive (1)- exit fatal !!\n"); + ret = E_UNKNOWN_ERR; + vd->raw_frame = NULL; + if(vd->h264_last_IDR) + free(vd->h264_last_IDR); + vd->h264_last_IDR = NULL; + if(vd->yuv_frame) + free(vd->yuv_frame); + vd->yuv_frame = NULL; + if(vd->tmp_buffer) + free(vd->tmp_buffer); + vd->tmp_buffer = NULL; + if(vd->h264_frame) + free(vd->h264_frame); + vd->h264_frame = NULL; + return (ret); + } + + /*assertions*/ + assert(vd->yuv_frame != NULL); + + + int i = 0; + /* set framebuffer to black (y=0x00 u=0x80 v=0x80) by default*/ +#ifdef USE_PLANAR_YUV + uint8_t *pframe = vd->yuv_frame; + for (i=0; iyuv_frame[i]=0x00; //Y + vd->yuv_frame[i+1]=0x80;//U + vd->yuv_frame[i+2]=0x00;//Y + vd->yuv_frame[i+3]=0x80;//V + } +#endif + return (ret); +} + +/* + * free image buffers for decoding video stream + * args: + * vd - pointer to video device data + * + * asserts: + * vd is not null + * + * returns: none + */ +void clean_v4l2_frames(v4l2_dev_t *vd) +{ + /*assertions*/ + assert(vd != NULL); + + vd->raw_frame = NULL; + + if(vd->tmp_buffer) + { + free(vd->tmp_buffer); + vd->tmp_buffer = NULL; + } + + if(vd->h264_frame) + { + free(vd->h264_frame); + vd->h264_frame = NULL; + } + + if(vd->yuv_frame) + { + free(vd->yuv_frame); + vd->yuv_frame = NULL; + } + + if(vd->h264_last_IDR) + { + free(vd->h264_last_IDR); + vd->h264_last_IDR = NULL; + } + + if(vd->h264_SPS) + { + free(vd->h264_SPS); + vd->h264_SPS = NULL; + } + + if(vd->h264_PPS) + { + free(vd->h264_PPS); + vd->h264_PPS = NULL; + } + + if(vd->requested_fmt == V4L2_PIX_FMT_H264) + h264_close_decoder(); + + if(vd->requested_fmt == V4L2_PIX_FMT_JPEG || + vd->requested_fmt == V4L2_PIX_FMT_MJPEG) + jpeg_close_decoder(); +} + +/* + * check buff (*buff) of size (size) for NALU type (type) + * args: + * type - NALU type + * buff - buffer with MJPG uvc frame containing h264 data + * size - buffer size + * + * asserts: + * buff is not null + * + * returns: buffer pointer to NALU type data if found + * NULL if not found + */ +static uint8_t* check_NALU(uint8_t type, uint8_t *buff, int size) +{ + /*asserts*/ + assert(buff != NULL); + + uint8_t *sp = buff; + uint8_t *nal = NULL; + //search for NALU of type + for(sp = buff; sp < buff + size - 5; ++sp) + { + if(sp[0] == 0x00 && + sp[1] == 0x00 && + sp[2] == 0x00 && + sp[3] == 0x01 && + (sp[4] & 0x1F) == type) + { + /*found it*/ + nal = sp + 4; + break; + } + } + + return nal; +} + +/* + * parses a buff (*buff) of size (size) for NALU type (type) + * args: + * type - NALU type + * NALU - pointer to pointer to NALU data + * buff - pointer to buffer containing h264 data muxed in MJPG container + * size - buff size + * + * asserts: + * buff is not null + * + * returns: NALU size and sets pointer (NALU) to NALU data + * -1 if no NALU found + */ +static int parse_NALU(uint8_t type, uint8_t **NALU, uint8_t *buff, int size) +{ + /*asserts*/ + assert(buff != NULL); + + int nal_size = 0; + uint8_t *sp = NULL; + + //search for NALU of type + uint8_t *nal = check_NALU(type, buff, size); + if(nal == NULL) + { + fprintf(stderr, "V4L2_CORE: (uvc H264) could not find NALU of type %i in buffer\n", type); + return -1; + } + + //search for end of NALU + for(sp = nal; sp < buff + size - 4; ++sp) + { + if(sp[0] == 0x00 && + sp[1] == 0x00 && + sp[2] == 0x00 && + sp[3] == 0x01) + { + nal_size = sp - nal; + break; + } + } + + if(!nal_size) + nal_size = buff + size - nal; + + *NALU = calloc(nal_size, sizeof(uint8_t)); + if(*NALU == NULL) + { + fprintf(stderr, "V4L2_CORE: FATAL memory allocation failure (parse_NALU): %s\n", strerror(errno)); + exit(-1); + } + memcpy(*NALU, nal, nal_size); + + //char test_filename2[20]; + //snprintf(test_filename2, 20, "frame_nalu-%i.raw", type); + //SaveBuff (test_filename2, nal_size, *NALU); + + return nal_size; +} + +/* + * demux a buff (*buff) of size (size) for NALU data + * args: + * h264_data - pointer to h264 data + * buff pointer to buffer with h264 muxed in MJPG container + * size - buff size + * h264_max_size - maximum size allowed by h264_data buffer + * + * asserts: + * h264_data is not null + * buff is not null + * + * returns: data size and copies NALU data to h264 buffer + */ +static int demux_NALU(uint8_t *h264_data, uint8_t *buff, int size, int h264_max_size) +{ + /*asserts*/ + assert(h264_data != NULL); + assert(buff != NULL); + + uint8_t *sp = NULL; + uint8_t *pl = NULL; + uint8_t *spl = NULL; + uint8_t *epl = NULL; + uint8_t *ph264 = h264_data; + int total_size = 0; + //segments have a maximum of 64Kb + int seg_size = 64*1024; + + //search for first APP4 marker + for(sp = buff; sp < buff + size - 2; ++sp) + { + if(sp[0] == 0xFF && + sp[1] == 0xE4) + { + spl = sp; //payload start + break; + } + } + + if(spl == buff) + { + fprintf(stderr, "V4L2_CORE: (uvc H264) could not find a APP4 marker in buffer\n"); + return -1; + } + + pl = spl + 4; //marker(2) + length(2) + + //uint32_t frame_PTS = 0; + //frame_PTS = ((uint32_t) pl[18]) << 0; + //frame_PTS |= ((uint32_t) pl[19]) << 8; + //frame_PTS |= ((uint32_t) pl[20]) << 16; + //frame_PTS |= ((uint32_t) pl[21]) << 24; + + pl += 22; //header(22) + + //get payload size + uint32_t payload_size = 0; + payload_size = ((uint32_t) pl[0]) << 0; + payload_size |= ((uint32_t) pl[1]) << 8; + payload_size |= ((uint32_t) pl[2]) << 16; + payload_size |= ((uint32_t) pl[3]) << 24; + + pl +=4; //start of the payload data + epl = pl + payload_size; //end of payload data + if(epl > buff + size) + epl = buff + size; + + //for the first segment remove header size + //marker(2) + length(2) + header(22) + payload size(4) + seg_size = 64*1024 - (pl-spl); + + while(pl + seg_size <= epl) + { + total_size += seg_size; + if(total_size > h264_max_size) + { + fprintf(stderr, "V4L2_CORE: (uvc H264) h264 data exceeds max of %i\n", + h264_max_size); + return (total_size - seg_size); /*revert to last size*/ + } + //copy segment to h264 data buffer + memcpy(ph264, pl, seg_size); + ph264 += seg_size; + + pl += seg_size; //reset to the next segment data + + if(pl[0] != 0xFF || + pl[1] != 0xE4) + { + fprintf(stderr, "V4L2_CORE: (uvc H264) no APP4 marker at end of 64K segment\n"); + break; + } + else + pl += 4; //skip marker(2) + length(2) + + seg_size = 64*1024 - 4; //skip marker + length + } + + seg_size = epl - pl; //last segment + if(seg_size > 0) + { + //copy segment to h264 data buffer + memcpy(ph264, pl, seg_size); + //ph264 += seg_size; + total_size += seg_size; + } + + //char test_filename2[22]; + //snprintf(test_filename2, 22, "frame-%u.raw", frame_PTS); + //SaveBuff (test_filename2, total_size, h264_data); + + //printf("V4L2_CORE: (uvc H264) PTS: %u; payload size: %u, total size: %u\n", + //frame_PTS, payload_size, total_size); + return total_size; +} + +/* + * Store the SPS and PPS NALUs of uvc H264 stream + * args: + * vd - pointer to device data + * + * asserts: + * vd is not null + * + * returns: error code (0 - E_OK) + */ +static int store_extra_data(v4l2_dev_t *vd) +{ + /*asserts*/ + assert(vd != NULL); + + if(vd->h264_SPS == NULL) + { + vd->h264_SPS_size = parse_NALU( 7, &vd->h264_SPS, + vd->h264_frame, + (int) vd->h264_frame_size); + + if(vd->h264_SPS_size <= 0 || vd->h264_SPS == NULL) + { + fprintf(stderr, "V4L2_CORE: (uvc H264) Could not find SPS (NALU type: 7)\n"); + return E_NO_DATA; + } + else if(verbosity > 0) + printf("V4L2_CORE: (uvc H264) stored SPS %i bytes of data\n", + vd->h264_SPS_size); + } + + if(vd->h264_PPS == NULL) + { + vd->h264_PPS_size = parse_NALU( 8, &vd->h264_PPS, + vd->h264_frame, + (int) vd->h264_frame_size); + + if(vd->h264_PPS_size <= 0 || vd->h264_PPS == NULL) + { + fprintf(stderr, "Could not find PPS (NALU type: 8)\n"); + return E_NO_DATA; + } + else if(verbosity > 0) + printf("V4L2_CORE: (uvc H264) stored PPS %i bytes of data\n", + vd->h264_PPS_size); + } + + return E_OK; +} + +/* + * check/store the last IDR frame + * args: + * vd - pointer to device data + * + * asserts: + * vd is not NULL + * + * return: TRUE (1) if IDR frame + * FALSE(0) if non IDR frame + */ +static uint8_t is_h264_keyframe (v4l2_dev_t *vd) +{ + //check for a IDR frame type + if(check_NALU(5, vd->h264_frame, vd->h264_frame_size) != NULL) + { + memcpy(vd->h264_last_IDR, vd->h264_frame, vd->h264_frame_size); + vd->h264_last_IDR_size = vd->h264_frame_size; + if(verbosity > 1) + printf("V4L2_CORE: (uvc H264) IDR frame found in frame %" PRIu64 "\n", + vd->frame_index); + return TRUE; + } + + return FALSE; +} + +/* + * demux h264 data from muxed frame + * args: + * h264_data - pointer to demuxed h264 data + * buffer - pointer to muxed h264 data + * size - buffer size + * h264_max_size - maximum size allowed by h264_data buffer + * + * asserts: + * h264_data is not null + * buffer is not null + * + * return: demuxed h264 frame data size + */ +static int demux_h264(uint8_t* h264_data, uint8_t* buffer, int size, int h264_max_size) +{ + /*asserts*/ + assert(h264_data != NULL); + assert(buffer != NULL); + + /* + * if h264 is not supported return 0 (empty frame) + */ + if(h264_get_support() == H264_NONE) + return 0; + + /* + * if it's a muxed stream we must demux it first + */ + if(h264_get_support() == H264_MUXED) + { + return demux_NALU(h264_data, buffer, size, h264_max_size); + } + + /* + * (H264_FRAME) store the raw frame in h264 frame buffer + */ + if(size > h264_max_size) + { + fprintf(stderr, "V4L2_CORE: (uvc H264) h264 data exceeds max of %i cliping\n", + h264_max_size); + size = h264_max_size; + } + memcpy(h264_data, buffer, size); + return size; + +} + +/* + * decode video stream ( from raw_frame to frame buffer (yuyv format)) + * args: + * vd - pointer to device data + * + * asserts: + * vd is not null + * + * returns: error code ( 0 - E_OK) +*/ +int v4l2core_frame_decode(v4l2_dev_t *vd) +{ + /*asserts*/ + assert(vd != NULL); + + if(!vd->raw_frame || vd->raw_frame_size == 0) + { + fprintf(stderr, "V4L2_CORE: not decoding empty raw frame (frame of size %i at 0x%p)\n", (int) vd->raw_frame_size, vd->raw_frame); + return E_DECODE_ERR; + } + + if(verbosity > 3) + printf("V4L2_CORE: decoding raw frame of size %i at 0x%p\n", + (int) vd->raw_frame_size, vd->raw_frame ); + + int ret = E_OK; + + int width = vd->format.fmt.pix.width; + int height = vd->format.fmt.pix.height; + + vd->isKeyframe = 0; /*reset*/ + + /* + * use the requested format since it may differ + * from format.fmt.pix.pixelformat (muxed H264) + */ + int format = vd->requested_fmt; + + int framesizeIn =(width * height << 1);//2 bytes per pixel + switch (format) + { + case V4L2_PIX_FMT_H264: + /* + * get the h264 frame in the tmp_buffer + */ + vd->h264_frame_size = demux_h264( + vd->h264_frame, + vd->raw_frame, + vd->raw_frame_size, + vd->h264_frame_max_size); + + /* + * store SPS and PPS info (usually the first two NALU) + * and check/store the last IDR frame + */ + store_extra_data(vd); + + /* + * check for keyframe and store it + */ + vd->isKeyframe = is_h264_keyframe(vd); + + //decode if we already have a IDR frame + if(vd->h264_last_IDR_size > 0) + { +#ifdef USE_PLANAR_YUV + /*no need to convert output*/ + h264_decode(vd->yuv_frame, vd->h264_frame, vd->h264_frame_size); +#else + /* decode (h264) to vd->tmp_buffer (yuv420p)*/ + h264_decode(vd->tmp_buffer, vd->h264_frame, vd->h264_frame_size); + /* convert to yuyv*/ + yu12_to_yuyv (vd->yuv_frame, vd->tmp_buffer, width, height); +#endif + } + break; + + case V4L2_PIX_FMT_JPEG: + case V4L2_PIX_FMT_MJPEG: + if(vd->raw_frame_size <= HEADERFRAME1) + { + // Prevent crash on empty image + fprintf(stderr, "V4L2_CORE: (jpeg decoder) Ignoring empty buffer\n"); + ret = E_DECODE_ERR; + return (ret); + } + + + ret = jpeg_decode(vd->yuv_frame, vd->raw_frame, vd->raw_frame_size); + + //memcpy(vd->tmp_buffer, vd->raw_frame, vd->raw_frame_size); + //ret = jpeg_decode(&vd->yuv_frame, vd->tmp_buffer, width, height); + //if ( ret < 0) + //{ + // fprintf(stderr, "V4L2_CORE: jpeg decoder exit with error (%i) (res: %ix%i - %x)\n", ret, width, height, vd->format.fmt.pix.pixelformat); + // return E_DECODE_ERR; + //} + if(verbosity > 3) + fprintf(stderr, "V4L2_CORE: (jpeg decoder) decode frame of size %i\n", ret); + ret = E_OK; + break; + + case V4L2_PIX_FMT_UYVY: +#ifdef USE_PLANAR_YUV + uyvy_to_yu12(vd->yuv_frame, vd->raw_frame, width, height); +#else + /*FIXME: do we need the tmp_buffer or can we just use the raw_frame?*/ + if(vd->raw_frame_size > vd->tmp_buffer_max_size) + { + // Prevent crash on very large image + fprintf(stderr, "V4L2_CORE: (uyvy decoder) cliping unexpected large buffer (%i bytes)\n", + (int) vd->raw_frame_size); + memcpy(vd->tmp_buffer, vd->raw_frame, vd->tmp_buffer_max_size); + } + else + memcpy(vd->tmp_buffer, vd->raw_frame, vd->raw_frame_size); + uyvy_to_yuyv(vd->yuv_frame, vd->tmp_buffer, width, height); +#endif + break; + + case V4L2_PIX_FMT_YVYU: +#ifdef USE_PLANAR_YUV + yvyu_to_yu12(vd->yuv_frame, vd->raw_frame, width, height); +#else + /*FIXME: do we need the tmp_buffer or can we just use the raw_frame?*/ + if(vd->raw_frame_size > vd->tmp_buffer_max_size) + { + // Prevent crash on very large image + fprintf(stderr, "V4L2_CORE: (yvyu decoder) cliping unexpected large buffer (%i bytes)\n", + (int) vd->raw_frame_size); + memcpy(vd->tmp_buffer, vd->raw_frame, vd->tmp_buffer_max_size); + } + else + memcpy(vd->tmp_buffer, vd->raw_frame, vd->raw_frame_size); + yvyu_to_yuyv(vd->yuv_frame, vd->tmp_buffer, width, height); +#endif + break; + + case V4L2_PIX_FMT_YYUV: +#ifdef USE_PLANAR_YUV + yyuv_to_yu12(vd->yuv_frame, vd->raw_frame, width, height); +#else + /*FIXME: do we need the tmp_buffer or can we just use the raw_frame?*/ + if(vd->raw_frame_size > vd->tmp_buffer_max_size) + { + // Prevent crash on very large image + fprintf(stderr, "V4L2_CORE: (yyuv decoder) cliping unexpected large buffer (%i bytes)\n", + (int) vd->raw_frame_size); + memcpy(vd->tmp_buffer, vd->raw_frame, vd->tmp_buffer_max_size); + } + else + memcpy(vd->tmp_buffer, vd->raw_frame, vd->raw_frame_size); + yyuv_to_yuyv(vd->yuv_frame, vd->tmp_buffer, width, height); +#endif + break; + + case V4L2_PIX_FMT_YUV420: +#ifdef USE_PLANAR_YUV + if(vd->raw_frame_size > (width * height * 3/2)) + vd->raw_frame_size = width * height * 3/2; + memcpy(vd->yuv_frame, vd->raw_frame, vd->raw_frame_size); +#else + /*FIXME: do we need the tmp_buffer or can we just use the raw_frame?*/ + if(vd->raw_frame_size > vd->tmp_buffer_max_size) + { + // Prevent crash on very large image + fprintf(stderr, "V4L2_CORE: (yuv420 decoder) cliping unexpected large buffer (%i bytes)\n", + (int) vd->raw_frame_size); + memcpy(vd->tmp_buffer, vd->raw_frame, vd->tmp_buffer_max_size); + } + else + memcpy(vd->tmp_buffer, vd->raw_frame, vd->raw_frame_size); + yu12_to_yuyv(vd->yuv_frame, vd->tmp_buffer, width, height); +#endif + break; + + case V4L2_PIX_FMT_YVU420: +#ifdef USE_PLANAR_YUV + yv12_to_yu12(vd->yuv_frame, vd->raw_frame, width, height); +#else + /*FIXME: do we need the tmp_buffer or can we just use the raw_frame?*/ + if(vd->raw_frame_size > vd->tmp_buffer_max_size) + { + // Prevent crash on very large image + fprintf(stderr, "V4L2_CORE: (yvu420 decoder) cliping unexpected large buffer (%i bytes)\n", + (int) vd->raw_frame_size); + memcpy(vd->tmp_buffer, vd->raw_frame, vd->tmp_buffer_max_size); + } + else + memcpy(vd->tmp_buffer, vd->raw_frame, vd->raw_frame_size); + yvu420_to_yuyv(vd->yuv_frame, vd->tmp_buffer, width, height); +#endif + break; + + case V4L2_PIX_FMT_NV12: +#ifdef USE_PLANAR_YUV + nv12_to_yu12(vd->yuv_frame, vd->raw_frame, width, height); +#else + /*FIXME: do we need the tmp_buffer or can we just use the raw_frame?*/ + if(vd->raw_frame_size > vd->tmp_buffer_max_size) + { + // Prevent crash on very large image + fprintf(stderr, "V4L2_CORE: (nv12 decoder) cliping unexpected large buffer (%i bytes)\n", + (int) vd->raw_frame_size); + memcpy(vd->tmp_buffer, vd->raw_frame, vd->tmp_buffer_max_size); + } + else + memcpy(vd->tmp_buffer, vd->raw_frame, vd->raw_frame_size); + nv12_to_yuyv(vd->yuv_frame, vd->tmp_buffer, width, height); +#endif + break; + + case V4L2_PIX_FMT_NV21: +#ifdef USE_PLANAR_YUV + nv21_to_yu12(vd->yuv_frame, vd->raw_frame, width, height); +#else + /*FIXME: do we need the tmp_buffer or can we just use the raw_frame?*/ + if(vd->raw_frame_size > vd->tmp_buffer_max_size) + { + // Prevent crash on very large image + fprintf(stderr, "V4L2_CORE: (nv21 decoder) cliping unexpected large buffer (%i bytes).\n", + (int) vd->raw_frame_size); + memcpy(vd->tmp_buffer, vd->raw_frame, vd->tmp_buffer_max_size); + } + else + memcpy(vd->tmp_buffer, vd->raw_frame, vd->raw_frame_size); + nv21_to_yuyv(vd->yuv_frame, vd->tmp_buffer, width, height); +#endif + break; + + case V4L2_PIX_FMT_NV16: +#ifdef USE_PLANAR_YUV + nv16_to_yu12(vd->yuv_frame, vd->raw_frame, width, height); +#else + /*FIXME: do we need the tmp_buffer or can we just use the raw_frame?*/ + if(vd->raw_frame_size > vd->tmp_buffer_max_size) + { + // Prevent crash on very large image + fprintf(stderr, "V4L2_CORE: (nv16 decoder) cliping unexpected large buffer (%i bytes)\n", + (int) vd->raw_frame_size); + memcpy(vd->tmp_buffer, vd->raw_frame, vd->tmp_buffer_max_size); + } + else + memcpy(vd->tmp_buffer, vd->raw_frame, vd->raw_frame_size); + nv16_to_yuyv(vd->yuv_frame, vd->tmp_buffer, width, height); +#endif + break; + + case V4L2_PIX_FMT_NV61: +#ifdef USE_PLANAR_YUV + nv61_to_yu12(vd->yuv_frame, vd->raw_frame, width, height); +#else + /*FIXME: do we need the tmp_buffer or can we just use the raw_frame?*/ + if(vd->raw_frame_size > vd->tmp_buffer_max_size) + { + // Prevent crash on very large image + fprintf(stderr, "V4L2_CORE: (nv61 decoder) cliping unexpected large buffer (%i bytes)\n", + (int) vd->raw_frame_size); + memcpy(vd->tmp_buffer, vd->raw_frame, vd->tmp_buffer_max_size); + } + else + memcpy(vd->tmp_buffer, vd->raw_frame, vd->raw_frame_size); + nv61_to_yuyv(vd->yuv_frame, vd->tmp_buffer, width, height); +#endif + break; + + case V4L2_PIX_FMT_Y41P: +#ifdef USE_PLANAR_YUV + y41p_to_yu12(vd->yuv_frame, vd->raw_frame, width, height); +#else + /*FIXME: do we need the tmp_buffer or can we just use the raw_frame?*/ + if(vd->raw_frame_size > vd->tmp_buffer_max_size) + { + // Prevent crash on very large image + fprintf(stderr, "V4L2_CORE: (y41p decoder) cliping unexpected large buffer (%i bytes)\n", + (int) vd->raw_frame_size); + memcpy(vd->tmp_buffer, vd->raw_frame, vd->tmp_buffer_max_size); + } + else + memcpy(vd->tmp_buffer, vd->raw_frame, vd->raw_frame_size); + y41p_to_yuyv(vd->yuv_frame, vd->tmp_buffer, width, height); +#endif + break; + + case V4L2_PIX_FMT_GREY: +#ifdef USE_PLANAR_YUV + grey_to_yu12(vd->yuv_frame, vd->raw_frame, width, height); +#else + /*FIXME: do we need the tmp_buffer or can we just use the raw_frame?*/ + if(vd->raw_frame_size > vd->tmp_buffer_max_size) + { + // Prevent crash on very large image + fprintf(stderr, "V4L2_CORE: (grey decoder) cliping unexpected large buffer (%i bytes)\n", + (int) vd->raw_frame_size); + memcpy(vd->tmp_buffer, vd->raw_frame, vd->tmp_buffer_max_size); + } + else + memcpy(vd->tmp_buffer, vd->raw_frame, vd->raw_frame_size); + grey_to_yuyv(vd->yuv_frame, vd->tmp_buffer, width, height); +#endif + break; + + case V4L2_PIX_FMT_Y10BPACK: +#ifdef USE_PLANAR_YUV + y10b_to_yu12(vd->yuv_frame, vd->raw_frame, width, height); +#else + /*FIXME: do we need the tmp_buffer or can we just use the raw_frame?*/ + if(vd->raw_frame_size > vd->tmp_buffer_max_size) + { + // Prevent crash on very large image + fprintf(stderr, "V4L2_CORE: (y10b decoder) cliping unexpected large buffer (%i bytes)\n", + (int) vd->raw_frame_size); + memcpy(vd->tmp_buffer, vd->raw_frame, vd->tmp_buffer_max_size); + } + else + memcpy(vd->tmp_buffer, vd->raw_frame, vd->raw_frame_size); + y10b_to_yuyv(vd->yuv_frame, vd->tmp_buffer, width, height); +#endif + break; + + case V4L2_PIX_FMT_Y16: +#ifdef USE_PLANAR_YUV + y16_to_yu12(vd->yuv_frame, vd->raw_frame, width, height); +#else + /*FIXME: do we need the tmp_buffer or can we just use the raw_frame?*/ + if(vd->raw_frame_size > vd->tmp_buffer_max_size) + { + // Prevent crash on very large image + fprintf(stderr, "V4L2_CORE: (y16 decoder) cliping unexpected large buffer (%i bytes)\n", + (int) vd->raw_frame_size); + memcpy(vd->tmp_buffer, vd->raw_frame, vd->tmp_buffer_max_size); + } + else + memcpy(vd->tmp_buffer, vd->raw_frame, vd->raw_frame_size); + y16_to_yuyv(vd->yuv_frame, vd->tmp_buffer, width, height); +#endif + break; + + case V4L2_PIX_FMT_SPCA501: +#ifdef USE_PLANAR_YUV + s501_to_yu12(vd->yuv_frame, vd->raw_frame, width, height); +#else + /*FIXME: do we need the tmp_buffer or can we just use the raw_frame?*/ + if(vd->raw_frame_size > vd->tmp_buffer_max_size) + { + // Prevent crash on very large image + fprintf(stderr, "V4L2_CORE: (spca501 decoder) cliping unexpected large buffer (%i bytes)\n", + (int) vd->raw_frame_size); + memcpy(vd->tmp_buffer, vd->raw_frame, vd->tmp_buffer_max_size); + } + else + memcpy(vd->tmp_buffer, vd->raw_frame, vd->raw_frame_size); + s501_to_yuyv(vd->yuv_frame, vd->tmp_buffer, width, height); +#endif + break; + + case V4L2_PIX_FMT_SPCA505: +#ifdef USE_PLANAR_YUV + s505_to_yu12(vd->yuv_frame, vd->raw_frame, width, height); +#else + /*FIXME: do we need the tmp_buffer or can we just use the raw_frame?*/ + if(vd->raw_frame_size > vd->tmp_buffer_max_size) + { + // Prevent crash on very large image + fprintf(stderr, "V4L2_CORE: (spca505 decoder) cliping unexpected large buffer (%i bytes)\n", + (int) vd->raw_frame_size); + memcpy(vd->tmp_buffer, vd->raw_frame, vd->tmp_buffer_max_size); + } + else + memcpy(vd->tmp_buffer, vd->raw_frame, vd->raw_frame_size); + s505_to_yuyv(vd->yuv_frame, vd->tmp_buffer, width, height); +#endif + break; + + case V4L2_PIX_FMT_SPCA508: +#ifdef USE_PLANAR_YUV + s508_to_yu12(vd->yuv_frame, vd->raw_frame, width, height); +#else + /*FIXME: do we need the tmp_buffer or can we just use the raw_frame?*/ + if(vd->raw_frame_size > vd->tmp_buffer_max_size) + { + // Prevent crash on very large image + fprintf(stderr, "V4L2_CORE: (spca508 decoder) cliping unexpected large buffer (%i bytes)\n", + (int) vd->raw_frame_size); + memcpy(vd->tmp_buffer, vd->raw_frame, vd->tmp_buffer_max_size); + } + else + memcpy(vd->tmp_buffer, vd->raw_frame, vd->raw_frame_size); + s508_to_yuyv(vd->yuv_frame, vd->tmp_buffer, width, height); +#endif + break; + + case V4L2_PIX_FMT_YUYV: +#ifdef USE_PLANAR_YUV + if(vd->isbayer>0) + { + if (!(vd->tmp_buffer)) + { + /* rgb buffer for decoding bayer data*/ + vd->tmp_buffer_max_size = width * height * 3; + vd->tmp_buffer = calloc(vd->tmp_buffer_max_size, sizeof(uint8_t)); + if(vd->tmp_buffer == NULL) + { + fprintf(stderr, "V4L2_CORE: FATAL memory allocation failure (v4l2core_frame_decode): %s\n", strerror(errno)); + exit(-1); + } + } + /*convert raw bayer to iyuv*/ + bayer_to_rgb24 (vd->raw_frame, vd->tmp_buffer, width, height, vd->bayer_pix_order); + rgb24_to_yu12(vd->yuv_frame, vd->tmp_buffer, width, height); + } + else + yuyv_to_yu12(vd->yuv_frame, vd->raw_frame, width, height); +#else + if(vd->isbayer>0) + { + if (!(vd->tmp_buffer)) + { + /* rgb buffer for decoding bayer data*/ + vd->tmp_buffer_max_size = width * height * 3; + vd->tmp_buffer = calloc(vd->tmp_buffer_max_size, sizeof(uint8_t)); + if(vd->tmp_buffer == NULL) + { + fprintf(stderr, "V4L2_CORE: FATAL memory allocation failure (v4l2core_frame_decode): %s\n", strerror(errno)); + exit(-1); + } + } + bayer_to_rgb24 (vd->raw_frame, vd->tmp_buffer, width, height, vd->bayer_pix_order); + // raw bayer is only available in logitech cameras in yuyv mode + rgb2yuyv (vd->tmp_buffer, vd->yuv_frame, width, height); + } + else + { + if (vd->raw_frame_size > framesizeIn) + memcpy(vd->yuv_frame, vd->raw_frame, + (size_t) framesizeIn); + else + memcpy(vd->yuv_frame, vd->raw_frame, vd->raw_frame_size); + } +#endif + break; + + case V4L2_PIX_FMT_SGBRG8: //0 + bayer_to_rgb24 (vd->raw_frame, vd->tmp_buffer, width, height, 0); +#ifdef USE_PLANAR_YUV + rgb24_to_yu12(vd->yuv_frame, vd->tmp_buffer, width, height); +#else + rgb2yuyv (vd->tmp_buffer, vd->yuv_frame, width, height); +#endif + break; + + case V4L2_PIX_FMT_SGRBG8: //1 + bayer_to_rgb24 (vd->raw_frame, vd->tmp_buffer, width, height, 1); +#ifdef USE_PLANAR_YUV + rgb24_to_yu12(vd->yuv_frame, vd->tmp_buffer, width, height); +#else + rgb2yuyv (vd->tmp_buffer, vd->yuv_frame, width, height); +#endif + break; + + case V4L2_PIX_FMT_SBGGR8: //2 + bayer_to_rgb24 (vd->raw_frame, vd->tmp_buffer, width, height, 2); +#ifdef USE_PLANAR_YUV + rgb24_to_yu12(vd->yuv_frame, vd->tmp_buffer, width, height); +#else + rgb2yuyv (vd->tmp_buffer, vd->yuv_frame, width, height); +#endif + break; + case V4L2_PIX_FMT_SRGGB8: //3 + bayer_to_rgb24 (vd->raw_frame, vd->tmp_buffer, width, height, 3); +#ifdef USE_PLANAR_YUV + rgb24_to_yu12(vd->yuv_frame, vd->tmp_buffer, width, height); +#else + rgb2yuyv (vd->tmp_buffer, vd->yuv_frame, width, height); +#endif + break; + + case V4L2_PIX_FMT_RGB24: +#ifdef USE_PLANAR_YUV + rgb24_to_yu12(vd->yuv_frame, vd->raw_frame, width, height); +#else + rgb2yuyv(vd->raw_frame, vd->yuv_frame, width, height); +#endif + break; + case V4L2_PIX_FMT_BGR24: +#ifdef USE_PLANAR_YUV + bgr24_to_yu12(vd->yuv_frame, vd->raw_frame, width, height); +#else + bgr2yuyv(vd->raw_frame, vd->yuv_frame, width, height); +#endif + break; + + default: + fprintf(stderr, "V4L2_CORE: error decoding frame: unknown format: %i\n", format); + ret = E_UNKNOWN_ERR; + break; + } + + return ret; +} diff -Nru guvcview-1.7.3/gview_v4l2core/frame_decoder.h guvcview-2.0.1+ubuntu1~ppa1/gview_v4l2core/frame_decoder.h --- guvcview-1.7.3/gview_v4l2core/frame_decoder.h 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/gview_v4l2core/frame_decoder.h 2014-10-05 10:41:44.000000000 +0000 @@ -0,0 +1,55 @@ +/*******************************************************************************# +# guvcview http://guvcview.sourceforge.net # +# # +# Paulo Assis # +# Nobuhiro Iwamatsu # +# Add UYVY color support(Macbook iSight) # +# # +# This program is free software; you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation; either version 2 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program; if not, write to the Free Software # +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # +# # +********************************************************************************/ + +#ifndef FRAME_DECODER_H +#define FRAME_DECODER_H + +#include "gviewv4l2core.h" + +extern int verbosity; + +/* + * Alloc image buffers for decoding video stream + * args: + * vd - pointer to video device data + * + * asserts: + * vd is not null + * + * returns: error code (0- E_OK) + */ +int alloc_v4l2_frames(v4l2_dev_t *vd); + +/* + * free image buffers for decoding video stream + * args: + * vd - pointer to video device data + * + * asserts: + * vd is not null + * + * returns: none + */ +void clean_v4l2_frames(v4l2_dev_t *vd); + +#endif \ No newline at end of file diff -Nru guvcview-1.7.3/gview_v4l2core/gviewv4l2core.h guvcview-2.0.1+ubuntu1~ppa1/gview_v4l2core/gviewv4l2core.h --- guvcview-1.7.3/gview_v4l2core/gviewv4l2core.h 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/gview_v4l2core/gviewv4l2core.h 2014-10-05 10:41:44.000000000 +0000 @@ -0,0 +1,1118 @@ +/*******************************************************************************# +# guvcview http://guvcview.sourceforge.net # +# # +# Paulo Assis # +# # +# This program is free software; you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation; either version 2 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program; if not, write to the Free Software # +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # +# # +********************************************************************************/ + +#ifndef GVIEWV4L2CORE_H +#define GVIEWV4L2CORE_H + +#include + +#include +#include +#include +#include +#include +#include +#include + +/*make sure we support c++*/ +__BEGIN_DECLS + +/* + * LOGITECH Dynamic controls defs + */ + +#define V4L2_CID_BASE_EXTCTR 0x0A046D01 +#define V4L2_CID_BASE_LOGITECH V4L2_CID_BASE_EXTCTR +//#define V4L2_CID_PAN_RELATIVE_LOGITECH V4L2_CID_BASE_LOGITECH +//#define V4L2_CID_TILT_RELATIVE_LOGITECH V4L2_CID_BASE_LOGITECH+1 +#define V4L2_CID_PANTILT_RESET_LOGITECH V4L2_CID_BASE_LOGITECH+2 + +/*this should realy be replaced by V4L2_CID_FOCUS_ABSOLUTE in libwebcam*/ +#define V4L2_CID_FOCUS_LOGITECH V4L2_CID_BASE_LOGITECH+3 +#define V4L2_CID_LED1_MODE_LOGITECH V4L2_CID_BASE_LOGITECH+4 +#define V4L2_CID_LED1_FREQUENCY_LOGITECH V4L2_CID_BASE_LOGITECH+5 +#define V4L2_CID_DISABLE_PROCESSING_LOGITECH V4L2_CID_BASE_LOGITECH+0x70 +#define V4L2_CID_RAW_BITS_PER_PIXEL_LOGITECH V4L2_CID_BASE_LOGITECH+0x71 +#define V4L2_CID_LAST_EXTCTR V4L2_CID_RAW_BITS_PER_PIXEL_LOGITECH + +/* + * Error Codes + */ +#define E_OK (0) +#define E_ALLOC_ERR (-1) +#define E_QUERYCAP_ERR (-2) +#define E_READ_ERR (-3) +#define E_MMAP_ERR (-4) +#define E_QUERYBUF_ERR (-5) +#define E_QBUF_ERR (-6) +#define E_DQBUF_ERR (-7) +#define E_STREAMON_ERR (-8) +#define E_STREAMOFF_ERR (-9) +#define E_FORMAT_ERR (-10) +#define E_REQBUFS_ERR (-11) +#define E_DEVICE_ERR (-12) +#define E_SELECT_ERR (-13) +#define E_SELECT_TIMEOUT_ERR (-14) +#define E_FBALLOC_ERR (-15) +#define E_NO_STREAM_ERR (-16) +#define E_NO_DATA (-17) +#define E_NO_CODEC (-18) +#define E_DECODE_ERR (-19) +#define E_BAD_TABLES_ERR (-20) +#define E_NO_SOI_ERR (-21) +#define E_NOT_8BIT_ERR (-22) +#define E_BAD_WIDTH_OR_HEIGHT_ERR (-23) +#define E_TOO_MANY_COMPPS_ERR (-24) +#define E_ILLEGAL_HV_ERR (-25) +#define E_QUANT_TBL_SEL_ERR (-26) +#define E_NOT_YCBCR_ERR (-27) +#define E_UNKNOWN_CID_ERR (-28) +#define E_WRONG_MARKER_ERR (-29) +#define E_NO_EOI_ERR (-30) +#define E_FILE_IO_ERR (-31) +#define E_UNKNOWN_ERR (-40) + +/* + * stream status codes + */ +#define STRM_STOP (0) +#define STRM_REQ_STOP (1) +#define STRM_OK (2) + +/* + * IO methods + */ +#define IO_MMAP 1 +#define IO_READ 2 + +/* + * software autofocus sort method + * quick sort + * shell sort + * insert sort + * bubble sort + */ +#define AUTOF_SORT_QUICK 1 +#define AUTOF_SORT_SHELL 2 +#define AUTOF_SORT_INSERT 3 +#define AUTOF_SORT_BUBBLE 4 + +/* + * Image Formats + */ +#define IMG_FMT_RAW (0) +#define IMG_FMT_JPG (1) +#define IMG_FMT_PNG (2) +#define IMG_FMT_BMP (3) + + +/* + * buffer number (for driver mmap ops) + */ +#define NB_BUFFER 4 + +/*jpeg header def*/ +#define HEADERFRAME1 0xaf + +/* + * set ioctl retries to 4 + */ +#define IOCTL_RETRY 4 + +/* A.8. Video Class-Specific Request Codes */ +#define UVC_RC_UNDEFINED 0x00 +#define UVC_SET_CUR 0x01 +#define UVC_GET_CUR 0x81 +#define UVC_GET_MIN 0x82 +#define UVC_GET_MAX 0x83 +#define UVC_GET_RES 0x84 +#define UVC_GET_LEN 0x85 +#define UVC_GET_INFO 0x86 +#define UVC_GET_DEF 0x87 + +/* + * h264 probe commit struct (uvc 1.1) + */ +typedef struct _uvcx_video_config_probe_commit_t +{ + uint32_t dwFrameInterval; + uint32_t dwBitRate; + uint16_t bmHints; + uint16_t wConfigurationIndex; + uint16_t wWidth; + uint16_t wHeight; + uint16_t wSliceUnits; + uint16_t wSliceMode; + uint16_t wProfile; + uint16_t wIFramePeriod; + uint16_t wEstimatedVideoDelay; + uint16_t wEstimatedMaxConfigDelay; + uint8_t bUsageType; + uint8_t bRateControlMode; + uint8_t bTemporalScaleMode; + uint8_t bSpatialScaleMode; + uint8_t bSNRScaleMode; + uint8_t bStreamMuxOption; + uint8_t bStreamFormat; + uint8_t bEntropyCABAC; + uint8_t bTimestamp; + uint8_t bNumOfReorderFrames; + uint8_t bPreviewFlipped; + uint8_t bView; + uint8_t bReserved1; + uint8_t bReserved2; + uint8_t bStreamID; + uint8_t bSpatialLayerRatio; + uint16_t wLeakyBucketSize; +} __attribute__((__packed__)) uvcx_video_config_probe_commit_t; + +/* + * v4l2 stream capability data + */ +typedef struct _v4l2_stream_cap_t +{ + int width; //width + int height; //height + int *framerate_num; //list of numerator values - should be 1 in almost all cases + int *framerate_denom; //list of denominator values - gives fps + int numb_frates; //number of frame rates (numerator and denominator lists size) +} v4l2_stream_cap_t; + +/* + * v4l2 stream format data + */ +typedef struct _v4l2_stream_format_t +{ + uint8_t dec_support; //decoder support (1-supported; 0-not supported) + int format; //v4l2 pixel format + char fourcc[5]; //corresponding fourcc (mode) + int numb_res; //available number of resolutions for format (v4l2_stream_cap_t list size) + v4l2_stream_cap_t *list_stream_cap; //list of stream capabilities for format +} v4l2_stream_formats_t; + +/* + * v4l2 control data + */ +typedef struct _v4l2_ctrl_t +{ + struct v4l2_queryctrl control; + struct v4l2_querymenu *menu; + int32_t class; + int32_t value; //also used for string max size + int64_t value64; + char *string; + + /*localization*/ + char *name; /*gettext translated name*/ + int menu_entries; + char **menu_entry; /*gettext translated menu entry name*/ + + //next control in the list + struct _v4l2_ctrl_t *next; +} v4l2_ctrl_t; + +/* + * v4l2 device system data + */ +typedef struct _v4l2_dev_sys_data_t +{ + char *device; + char *name; + char *driver; + char *location; + uint32_t vendor; + uint32_t product; + int valid; + int current; + uint64_t busnum; + uint64_t devnum; +} v4l2_dev_sys_data_t; + +/* + * v4l2 devices list data + */ +typedef struct _v4l2_device_list_t +{ + struct udev *udev; // pointer to a udev struct (lib udev) + struct udev_monitor *udev_mon; // udev monitor + int udev_fd; // udev monitor file descriptor + v4l2_dev_sys_data_t* list_devices; // list of available v4l2 devices + int num_devices; // number of available v4l2 devices +} v4l2_device_list; + +/* + * video device data + */ +typedef struct _v4l2_dev_t +{ + int fd; // device file descriptor + char *videodevice; // video device string (default "/dev/video0)" + + int cap_meth; // capture method: IO_READ or IO_MMAP + v4l2_stream_formats_t* list_stream_formats; //list of available stream formats + int numb_formats; //list size + //int current_format_index; //index of current stream format + //int current_resolution_index; //index of current resolution for current format + + struct v4l2_capability cap; // v4l2 capability struct + struct v4l2_format format; // v4l2 format struct + struct v4l2_buffer buf; // v4l2 buffer struct + struct v4l2_requestbuffers rb; // v4l2 request buffers struct + struct v4l2_streamparm streamparm; // v4l2 stream parameters struct + + int requested_fmt; //requested format (may differ from format.fmt.pix.pixelformat) + + int fps_num; //fps numerator + int fps_denom; //fps denominator + + uint8_t streaming; // flag device stream : STRM_STOP ; STRM_REQ_STOP; STRM_OK + uint64_t frame_index; // captured frame index from 0 to max(uint64_t) + uint64_t timestamp; // captured frame timestamp + void *mem[NB_BUFFER]; // memory buffers for mmap driver frames + uint32_t buff_length[NB_BUFFER]; // memory buffers length as set by VIDIOC_QUERYBUF + uint32_t buff_offset[NB_BUFFER]; // memory buffers offset as set by VIDIOC_QUERYBUF + + /* + * raw_frame is a pointer to the + * current frame buffer + * (DO NOT FREE) + */ + uint8_t *raw_frame; // pointer to raw frame (as captured from device) + size_t raw_frame_size; // size of raw frame (in bytes) + size_t raw_frame_max_size; // maximum size for raw frame + + uint8_t *tmp_buffer; // temp buffer for decoding compressed data + size_t tmp_buffer_max_size; // max size (allocated size) for temp buffer + uint8_t *yuv_frame; // frame buffer (YUYV), for rendering + uint8_t *h264_frame; // h264 frame data (after demuxing) can be a copy of raw_frame + size_t h264_frame_size; // h264 frame data size (in bytes) + size_t h264_frame_max_size; // h264 frame max size (allocated size) + + uint8_t h264_unit_id; // uvc h264 unit id, if <= 0 then uvc h264 is not supported + uint8_t h264_no_probe_default; // flag core to use the preset h264_config_probe_req data (don't reset to default before commit) + uvcx_video_config_probe_commit_t h264_config_probe_req; //probe commit struct for h264 streams + uint8_t *h264_last_IDR; // last IDR frame retrieved from uvc h264 stream + int h264_last_IDR_size; // last IDR frame size + uint8_t *h264_SPS; // h264 SPS info + uint16_t h264_SPS_size; // SPS size + uint8_t *h264_PPS; // h264 PPS info + uint16_t h264_PPS_size; // PPS size + uint8_t isKeyframe; // current buffer contains a keyframe (h264 IDR) + + int this_device; // index of this device in device list + + v4l2_ctrl_t* list_device_controls; //null terminated linked list of available device controls + int num_controls; //number of controls in list + + uint8_t isbayer; //flag if we are streaming bayer data in yuyv frame (logitech only) + uint8_t bayer_pix_order; //bayer pixel order + + int pan_step; //pan step for relative pan tilt controls (logitech sphere/orbit/BCC950) + int tilt_step; //tilt step for relative pan tilt controls (logitech sphere/orbit/BCC950) + + int has_focus_control_id; //it's set to control id if a focus control is available (enables software autofocus) + int has_pantilt_control_id; //it's set to 1 if a pan/tilt control is available +} v4l2_dev_t; + +/* + * ioctl with a number of retries in the case of I/O failure + * args: + * fd - device descriptor + * IOCTL_X - ioctl reference + * arg - pointer to ioctl data + * + * asserts: + * none + * + * returns - ioctl result + */ +int xioctl(int fd, int IOCTL_X, void *arg); + +/* + * set verbosity level + * args: + * level - verbosity level (def = 0) + * + * asserts: + * none + * + * returns - void + */ +void v4l2core_set_verbosity(int level); + +/* + * disable libv4l2 calls + * args: + * none + * + * asserts: + * none + * + * returns void + */ +void v4l2core_disable_libv4l2(); + +/* + * enable libv4l2 calls (default) + * args: + * none + * + * asserts: + * none + * + * returns void + */ +void v4l2core_enable_libv4l2(); + +/* + * get pixelformat from fourcc + * args: + * fourcc - fourcc code for format + * + * asserts: + * none + * + * returns: v4l2 pixel format + */ +int v4l2core_fourcc_2_v4l2_pixelformat(const char *fourcc); + +/* + * get real fps + * args: + * none + * + * asserts: + * none + * + * returns: double with real fps value + */ +double v4l2core_get_realfps(); + +/* + * Set v4l2 capture method + * args: + * vd - pointer to video device data + * method - capture method (IO_READ or IO_MMAP) + * + * asserts: + * vd is not null + * + * returns: VIDIOC_STREAMON ioctl result (E_OK or E_STREAMON_ERR) +*/ +void v4l2core_set_capture_method(v4l2_dev_t *vd, int method); + +/* + * Initiate video device data with default values + * args: + * device - device name (e.g: "/dev/video0") + * + * asserts: + * device is not null + * + * returns: pointer to newly allocated video device data ( NULL on error) + */ +v4l2_dev_t *v4l2core_init_dev(const char *device); + +/* + * Initiate the device list (with udev monitoring) + * args: + * none + * + * asserts: + * none + * + * returns: none + */ +void v4l2core_init_device_list(); + +/* + * get the device list data + * args: + * none + * + * asserts: + * none + * + * returns: pointer to device list data + */ +v4l2_device_list *v4l2core_get_device_list(); + +/* + * get the device index in device list + * args: + * videodevice - string with videodevice node (e.g: /dev/video0) + * + * asserts: + * none + * + * returns: + * videodevice index in device list [0 - num_devices[ or -1 on error + */ +int v4l2core_get_device_index(const char *videodevice); + +/* + * check for new devices + * args: + * vd - pointer to device data (can be null) + * + * asserts: + * my_device_list.udev is not null + * my_device_list.udev_fd is valid (> 0) + * my_device_list.udev_mon is not null + * + * returns: true(1) if device list was updated, false(0) otherwise + */ +int v4l2core_check_device_list_events(v4l2_dev_t *vd); + +/* + * free v4l2 devices list + * args: + * none + * + * asserts: + * my_device_list.list_devices is not null + * + * returns: void + */ +void v4l2core_close_v4l2_device_list(); + +/* get frame format index from format list + * args: + * vd - pointer to video device data + * format - v4l2 pixel format + * + * asserts: + * vd is not null + * vd->list_stream_formats is not null + * + * returns: format list index or -1 if not available + */ +int v4l2core_get_frame_format_index(v4l2_dev_t *vd, int format); + +/* get resolution index for format index from format list + * args: + * vd - pointer to video device data + * format - format index from format list + * width - requested width + * height - requested height + * + * asserts: + * vd is not null + * vd->list_stream_formats is not null + * + * returns: resolution list index for format index or -1 if not available + */ +int v4l2core_get_format_resolution_index(v4l2_dev_t *vd, int format, int width, int height); + +/* + * prepare a valid format (first in the format list) + * args: + * vd - pointer to device data + * + * asserts: + * vd is not null + * + * returns: none + */ +void v4l2core_prepare_valid_format(v4l2_dev_t *vd); + +/* + * prepare new format + * args: + * vd - pointer to device data + * new_format - new format + * + * asserts: + * vd is not null + * + * returns: none + */ +void v4l2core_prepare_new_format(v4l2_dev_t *vd, int new_format); + +/* + * prepare valid resolution (first in the resolution list for the format) + * args: + * vd - pointer to device data + * + * asserts: + * vd is not null + * + * returns: none + */ +void v4l2core_prepare_valid_resolution(v4l2_dev_t *vd); + +/* + * prepare new resolution + * args: + * vd - pointer to device data + * new_width - new width + * new_height - new height + * + * asserts: + * vd is not null + * + * returns: none + */ +void v4l2core_prepare_new_resolution(v4l2_dev_t *vd, int new_width, int new_height); + +/* + * update the current format (pixelformat, width and height) + * args: + * device - pointer to device data + * + * asserts: + * device is not null + * + * returns: + * error code + */ +int v4l2core_update_current_format(v4l2_dev_t *vd); + +/* + * gets the next video frame and decodes it if necessary + * args: + * vd: pointer to video device data + * + * asserts: + * vd is not null + * + * returns: error code (E_OK) + */ +int v4l2core_get_frame(v4l2_dev_t *vd); + +/* + * releases the current video frame (so that it can be reused by the driver) + * args: + * vd: pointer to video device data + * + * asserts: + * vd is not null + * + * returns: error code (E_OK) + */ +int v4l2core_release_frame(v4l2_dev_t *vd); + +/* + * decode video stream ( from raw_frame to frame buffer (yuyv format)) + * args: + * vd - pointer to device data + * + * asserts: + * vd is not null + * + * returns: error code ( 0 - E_OK) +*/ +int v4l2core_frame_decode(v4l2_dev_t *vd); + +/* + * clean v4l2 buffers + * args: + * vd -pointer to video device data + * + * asserts: + * vd is not null + * + * return: none + */ +void v4l2core_clean_buffers(v4l2_dev_t *vd); + +/* + * cleans video device data and allocations + * args: + * vd: pointer to video device data + * + * asserts: + * vd is not null + * + * returns: void + */ +void v4l2core_close_dev(v4l2_dev_t *vd); + +/* + * request a fps update + * args: + * vd - pointer to video device data + * + * asserts: + * vd is not null + * + * returns: none + */ +void v4l2core_request_framerate_update(v4l2_dev_t *vd); + +/* + * gets video device defined frame rate (not real - consider it a maximum value) + * args: + * vd: pointer to video device data + * + * asserts: + * vd is not null + * + * returns: VIDIOC_G_PARM ioctl result value + * (sets vd->fps_denom and vd->fps_num to device value) + */ +int v4l2core_get_framerate (v4l2_dev_t *vd); + +/* + * Starts the video stream + * args: + * vd: pointer to video device data + * + * asserts: + * vd is not null + * + * returns: VIDIOC_STREAMON ioctl result (0- E_OK) + */ +int v4l2core_start_stream(v4l2_dev_t *vd); + +/* + * request video stream to stop + * args: + * vd - pointer to video device data + * + * asserts: + * vd is not null + * + * returns: error code (0 -OK) +*/ +int v4l2core_request_stop_stream(v4l2_dev_t *vd); + +/* + * Stops the video stream + * args: + * vd: pointer to video device data + * + * asserts: + * vd is not null + * + * returns: VIDIOC_STREAMOFF ioctl result (0- E_OK) + */ +int v4l2core_stop_stream(v4l2_dev_t *vd); + +/* + * ######### CONTROLS ########## + */ + +/* + * return the control associated to id from device list + * args: + * vd - pointer to video device data + * + * asserts: + * vd is not null + * vd->list_device_controls is not null + * + * returns: pointer to v4l2_control if succeded or null otherwise + */ +v4l2_ctrl_t* v4l2core_get_control_by_id(v4l2_dev_t *vd, int id); + +/* + * sets the value of control id in device + * args: + * vd - pointer to video device data + * + * asserts: + * vd is not null + * vd->fd is valid + * + * returns: ioctl result + */ +int v4l2core_set_control_value_by_id(v4l2_dev_t *vd, int id); + +/* + * updates the value for control id from the device + * also updates control flags + * args: + * vd - pointer to video device data + * vd->fd is valid + * + * asserts: + * vd is not null + * + * returns: ioctl result + */ +int v4l2core_get_control_value_by_id(v4l2_dev_t *vd, int id); + +/* + * goes trough the control list and sets values in device to default + * args: + * vd - pointer to video device data + * + * asserts: + * vd is not null + * vd->list_device_controls is not null + * + * returns: void + */ +void v4l2core_set_control_defaults(v4l2_dev_t *vd); + +/* + * set autofocus sort method + * args: + * method - sort method + * + * asserts: + * none + * + * returns: none + */ +void v4l2core_soft_autofocus_set_sort(int method); + +/* + * initiate software autofocus + * args: + * vd - pointer to device data + * + * asserts: + * vd is not null + * + * returns: error code (0 - E_OK) + */ +int v4l2core_soft_autofocus_init (v4l2_dev_t *vd); + +/* + * run the software autofocus + * args: + * vd - pointer to device data + * + * asserts: + * vd is not null + * + * returns: 1 - running 0- focused + * (only matters for non-continue focus) + */ +int v4l2core_soft_autofocus_run(v4l2_dev_t *vd); + +/* + * sets a focus loop while autofocus is on + * args: + * none + * + * asserts: + * focus_ctx is not null + * + * returns: none + */ +void v4l2core_soft_autofocus_set_focus(); + +/* + * close and clean software autofocus + * args: + * none + * + * asserts: + * none + * + * returns: none + */ +void v4l2core_soft_autofocus_close(); + +/* + * save the device control values into a profile file + * args: + * vd - pointer to video device data + * filename - profile filename + * + * asserts: + * vd is not null + * + * returns: error code (0 -E_OK) + */ +int v4l2core_save_control_profile(v4l2_dev_t *vd, const char *filename); + +/* + * load the device control values from a profile file + * args: + * vd - pointer to video device data + * filename - profile filename + * + * asserts: + * vd is not null + * + * returns: error code (0 -E_OK) + */ +int v4l2core_load_control_profile(v4l2_dev_t *vd, const char *filename); + +/* + * ########### H264 controls ########### + */ + +/* + * resets the h264 encoder + * args: + * vd - pointer to video device data + * + * asserts: + * vd is not null + * + * returns: 0 on success or error code on fail + */ +int v4l2core_reset_h264_encoder(v4l2_dev_t *vd); + +/* + * request a IDR frame from the H264 encoder + * args: + * vd - pointer to video device data + * + * asserts: + * vd is not null + * + * returns: none + */ +void v4l2core_h264_request_idr(v4l2_dev_t *vd); + +/* + * query the frame rate config + * args: + * vd - pointer to video device data + * query - query type + * + * asserts: + * vd is not null + * + * returns: frame rate config (FIXME: 0xffffffff on error) + */ +uint32_t v4l2core_query_h264_frame_rate_config(v4l2_dev_t *vd, uint8_t query); + +/* + * get the frame rate config + * args: + * vd - pointer to video device data + * + * asserts: + * vd is not null + * + * returns: frame rate config (FIXME: 0xffffffff on error) + */ +uint32_t v4l2core_get_h264_frame_rate_config(v4l2_dev_t *vd); + +/* + * set the frame rate config + * args: + * vd - pointer to video device data + * framerate - framerate + * + * asserts: + * vd is not null + * + * returns: error code ( 0 -OK) + */ +int v4l2core_set_h264_frame_rate_config(v4l2_dev_t *vd, uint32_t framerate); + +/* + * updates the h264_probe_commit_req field + * args: + * vd - pointer to video device data + * query - (UVC_GET_CUR; UVC_GET_MAX; UVC_GET_MIN) + * config_probe_req - pointer to uvcx_video_config_probe_commit_t: + * if null vd->h264_config_probe_req will be used + * + * asserts: + * vd is not null + * + * returns: error code ( 0 -OK) + */ +int v4l2core_probe_h264_config_probe_req( + v4l2_dev_t *vd, + uint8_t query, + uvcx_video_config_probe_commit_t *config_probe_req); + +/* + * get the video rate control mode + * args: + * vd - pointer to video device data + * query - query type + * + * asserts: + * vd is not null + * + * returns: video rate control mode (FIXME: 0xff on error) + */ +uint8_t v4l2core_get_h264_video_rate_control_mode(v4l2_dev_t *vd, uint8_t query); + +/* + * set the video rate control mode + * args: + * vd - pointer to video device data + * mode - rate mode + * + * asserts: + * vd is not null + * + * returns: error code ( 0 -OK) + */ +int v4l2core_set_h264_video_rate_control_mode(v4l2_dev_t *vd, uint8_t mode); + +/* + * get the temporal scale mode + * args: + * vd - pointer to video device data + * query - query type + * + * asserts: + * vd is not null + * + * returns: temporal scale mode (FIXME: 0xff on error) + */ +uint8_t v4l2core_get_h264_temporal_scale_mode(v4l2_dev_t *vd, uint8_t query); + +/* + * set the temporal scale mode + * args: + * vd - pointer to video device data + * mode - temporal scale mode + * + * asserts: + * vd is not null + * + * returns: error code ( 0 -OK) + */ +int v4l2core_set_h264_temporal_scale_mode(v4l2_dev_t *vd, uint8_t mode); + +/* + * get the spatial scale mode + * args: + * vd - pointer to video device data + * query - query type + * + * asserts: + * vd is not null + * + * returns: temporal scale mode (FIXME: 0xff on error) + */ +uint8_t v4l2core_get_h264_spatial_scale_mode(v4l2_dev_t *vd, uint8_t query); + +/* + * set the spatial scale mode + * args: + * vd - pointer to video device data + * mode - spatial scale mode + * + * asserts: + * vd is not null + * + * returns: error code ( 0 -OK) + */ +int v4l2core_set_h264_spatial_scale_mode(v4l2_dev_t *vd, uint8_t mode); + +/* + * ######### XU CONTROLS ########## + */ + +/* + * get lenght of xu control defined by unit id and selector + * args: + * vd - pointer to video device data + * unit - unit id of xu control + * selector - selector for control + * + * asserts: + * vd is not null + * vd->fd is valid ( > 0 ) + * + * returns: length of xu control + */ +uint16_t v4l2core_get_length_xu_control(v4l2_dev_t *vd, uint8_t unit, uint8_t selector); + +/* + * get uvc info for xu control defined by unit id and selector + * args: + * vd - pointer to video device data + * unit - unit id of xu control + * selector - selector for control + * + * asserts: + * vd is not null + * vd->fd is valid ( > 0 ) + * + * returns: info of xu control + */ +uint8_t v4l2core_get_info_xu_control(v4l2_dev_t *vd, uint8_t unit, uint8_t selector); + +/* + * runs a query on xu control defined by unit id and selector + * args: + * vd - pointer to video device data + * unit - unit id of xu control + * selector - selector for control + * query - query type + * data - pointer to query data + * + * asserts: + * vd is not null + * vd->fd is valid ( > 0 ) + * + * returns: 0 if query succeded or errno otherwise + */ +int v4l2core_query_xu_control(v4l2_dev_t *vd, uint8_t unit, uint8_t selector, uint8_t query, void *data); + +/* + * ########### FILE IO ############### + */ +/* + * save data to file + * args: + * filename - string with filename + * data - pointer to data + * size - data size in bytes = sizeof(uint8_t) + * + * asserts: + * none + * + * returns: error code + */ +int v4l2core_save_data_to_file(const char *filename, uint8_t *data, int size); + +/* + * save the current frame to file + * args: + * vd - pointer to device data + * filename - output file name + * format - image type + * (IMG_FMT_RAW, IMG_FMT_JPG, IMG_FMT_PNG, IMG_FMT_BMP) + * + * asserts: + * vd is not null + * + * returns: error code + */ +int v4l2core_save_image(v4l2_dev_t *vd, const char *filename, int format); + +/* + * ############### TIME DATA ############## + */ + +/* + * get current timestamp + * args: + * none + * + * asserts: + * none + * + * returns: monotonic time in nanoseconds + */ +uint64_t v4l2core_time_get_timestamp(); + +__END_DECLS + +#endif + diff -Nru guvcview-1.7.3/gview_v4l2core/jpeg_decoder.c guvcview-2.0.1+ubuntu1~ppa1/gview_v4l2core/jpeg_decoder.c --- guvcview-1.7.3/gview_v4l2core/jpeg_decoder.c 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/gview_v4l2core/jpeg_decoder.c 2014-10-05 10:41:44.000000000 +0000 @@ -0,0 +1,1584 @@ +/*******************************************************************************# +# guvcview http://guvcview.sourceforge.net # +# # +# Paulo Assis # +# Nobuhiro Iwamatsu # +# Add UYVY color support(Macbook iSight) # +# # +# This program is free software; you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation; either version 2 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program; if not, write to the Free Software # +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # +# # +********************************************************************************/ + +/*******************************************************************************# +# # +# M/Jpeg decoding and frame capture taken from luvcview # +# # +********************************************************************************/ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "gviewv4l2core.h" +#include "colorspaces.h" +#include "jpeg_decoder.h" +#include "gview.h" +#include "../config.h" + +extern int verbosity; + +/* default Huffman table*/ +#define JPG_HUFFMAN_TABLE_LENGTH 0x01A0 + +const uint8_t jpeg_huffman_table[JPG_HUFFMAN_TABLE_LENGTH] = +{ + // luminance dc - length bits + 0x00, + 0x00, 0x01, 0x05, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + // luminance dc - code + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, + 0x0A, 0x0B, + // chrominance dc - length bits + 0x01, + 0x00, 0x03, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + // chrominance dc - code + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, + 0x0A, 0x0B, + // luminance ac - number of codes with # bits (ordered by code length 1-16) + 0x10, + 0x00, 0x02, 0x01, 0x03, 0x03, 0x02, 0x04, 0x03, 0x05, 0x05, + 0x04, 0x04, 0x00, 0x00, 0x01, 0x7D, + // luminance ac - run size (ordered by code length) + 0x01, 0x02, 0x03, 0x00, 0x04, 0x11, 0x05, 0x12, 0x21, 0x31, + 0x41, 0x06, 0x13, 0x51, 0x61, 0x07, 0x22, 0x71, 0x14, 0x32, + 0x81, 0x91, 0xA1, 0x08, 0x23, 0x42, 0xB1, 0xC1, 0x15, 0x52, + 0xD1, 0xF0, 0x24, 0x33, 0x62, 0x72, 0x82, 0x09, 0x0A, 0x16, + 0x17, 0x18, 0x19, 0x1A, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, + 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3A, 0x43, 0x44, 0x45, + 0x46, 0x47, 0x48, 0x49, 0x4A, 0x53, 0x54, 0x55, 0x56, 0x57, + 0x58, 0x59, 0x5A, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, + 0x6A, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7A, 0x83, + 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8A, 0x92, 0x93, 0x94, + 0x95, 0x96, 0x97, 0x98, 0x99, 0x9A, 0xA2, 0xA3, 0xA4, 0xA5, + 0xA6, 0xA7, 0xA8, 0xA9, 0xAA, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, + 0xB7, 0xB8, 0xB9, 0xBA, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, + 0xC8, 0xC9, 0xCA, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, 0xD8, + 0xD9, 0xDA, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, 0xE8, + 0xE9, 0xEA, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, 0xF8, + 0xF9, 0xFA, + // chrominance ac -number of codes with # bits (ordered by code length 1-16) + 0x11, + 0x00, 0x02, 0x01, 0x02, 0x04, 0x04, 0x03, 0x04, 0x07, 0x05, + 0x04, 0x04, 0x00, 0x01, 0x02, 0x77, + // chrominance ac - run size (ordered by code length) + 0x00, 0x01, 0x02, 0x03, 0x11, 0x04, 0x05, 0x21, 0x31, 0x06, + 0x12, 0x41, 0x51, 0x07, 0x61, 0x71, 0x13, 0x22, 0x32, 0x81, + 0x08, 0x14, 0x42, 0x91, 0xA1, 0xB1, 0xC1, 0x09, 0x23, 0x33, + 0x52, 0xF0, 0x15, 0x62, 0x72, 0xD1, 0x0A, 0x16, 0x24, 0x34, + 0xE1, 0x25, 0xF1, 0x17, 0x18, 0x19, 0x1A, 0x26, 0x27, 0x28, + 0x29, 0x2A, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3A, 0x43, 0x44, + 0x45, 0x46, 0x47, 0x48, 0x49, 0x4A, 0x53, 0x54, 0x55, 0x56, + 0x57, 0x58, 0x59, 0x5A, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, + 0x69, 0x6A, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7A, + 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8A, 0x92, + 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9A, 0xA2, 0xA3, + 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xAA, 0xB2, 0xB3, 0xB4, + 0xB5, 0xB6, 0xB7, 0xB8, 0xB9, 0xBA, 0xC2, 0xC3, 0xC4, 0xC5, + 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, + 0xD7, 0xD8, 0xD9, 0xDA, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, + 0xE8, 0xE9, 0xEA, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, 0xF8, + 0xF9, 0xFA +}; + +typedef struct _jpeg_decoder_context_t +{ + void *codec_data; + + int width; + int height; + int pic_size; + + uint8_t *tmp_frame; //temp frame buffer + +} jpeg_decoder_context_t; + +static jpeg_decoder_context_t *jpeg_ctx = NULL; + +#if MJPG_BUILTIN //use internal jpeg decoder + +#define ISHIFT 11 + +#define IFIX(a) ((int)((a) * (1 << ISHIFT) + .5)) + +#ifndef __P +# define __P(x) x +#endif + +/* special markers */ +#define M_BADHUFF -1 +#define M_EOF 0x80 + +#undef PREC +#define PREC int + +/******** Markers *********/ +#define M_SOI 0xd8 +#define M_APP0 0xe0 +#define M_DQT 0xdb +#define M_SOF0 0xc0 +#define M_DHT 0xc4 +#define M_DRI 0xdd +#define M_SOS 0xda +#define M_RST0 0xd0 +#define M_EOI 0xd9 +#define M_COM 0xfe + +/* + * IDCT data + */ +#define IMULT(a, b) (((a) * (b)) >> ISHIFT) +#define ITOINT(a) ((a) >> ISHIFT) + +#define S22 ((PREC)IFIX(2 * 0.382683432)) +#define C22 ((PREC)IFIX(2 * 0.923879532)) +#define IC4 ((PREC)IFIX(1 / 0.707106781)) + +/*zigzag order used by idct*/ +static unsigned char zig2[64] = { + 0, 2, 3, 9, 10, 20, 21, 35, + 14, 16, 25, 31, 39, 46, 50, 57, + 5, 7, 12, 18, 23, 33, 37, 48, + 27, 29, 41, 44, 52, 55, 59, 62, + 15, 26, 30, 40, 45, 51, 56, 58, + 1, 4, 8, 11, 19, 22, 34, 36, + 28, 42, 43, 53, 54, 60, 61, 63, + 6, 13, 17, 24, 32, 38, 47, 49 +}; + +static uint8_t zig[64] = { + 0, 1, 5, 6, 14, 15, 27, 28, + 2, 4, 7, 13, 16, 26, 29, 42, + 3, 8, 12, 17, 25, 30, 41, 43, + 9, 11, 18, 24, 31, 40, 44, 53, + 10, 19, 23, 32, 39, 45, 52, 54, + 20, 22, 33, 38, 46, 51, 55, 60, + 21, 34, 37, 47, 50, 56, 59, 61, + 35, 36, 48, 49, 57, 58, 62, 63 +}; + +/*coef used in idct*/ +static PREC aaidct[8] = { + IFIX(0.3535533906), IFIX(0.4903926402), + IFIX(0.4619397663), IFIX(0.4157348062), + IFIX(0.3535533906), IFIX(0.2777851165), + IFIX(0.1913417162), IFIX(0.0975451610) +}; + +/* + * decoder structs + */ +struct jpeg_decdata +{ + int dcts[6 * 64 + 16]; + int out[64 * 6]; + int dquant[3][64]; +}; + +struct in +{ + uint8_t *p; + uint32_t bits; + int left; + int marker; + int (*func) __P((void *)); + void *data; +}; + +#define LEBI_DCL int le, bi +#define LEBI_GET(in) (le = in->left, bi = in->bits) +#define LEBI_PUT(in) (in->left = le, in->bits = bi) + +/*********************************/ +#define DECBITS 10 /* seems to be the optimum */ + +struct dec_hufftbl +{ + int maxcode[17]; + int valptr[16]; + uint8_t vals[256]; + uint32_t llvals[1 << DECBITS]; +}; + +//struct enc_hufftbl; + +union hufftblp +{ + struct dec_hufftbl *dhuff; + //struct enc_hufftbl *ehuff; +}; + +struct scan +{ + int dc; /* old dc value */ + + union hufftblp hudc; + union hufftblp huac; + int next; /* when to switch to next scan */ + + int cid; /* component id */ + int hv; /* horiz/vert, copied from comp */ + int tq; /* quant tbl, copied from comp */ +}; + +#define MAXCOMP 4 + +struct comp +{ + int cid; + int hv; + int tq; +}; + +struct jpginfo +{ + int nc; /* number of components */ + int ns; /* number of scans */ + int dri; /* restart interval */ + int nm; /* mcus til next marker */ + int rm; /* next restart marker */ +}; + +static struct jpginfo info; +static struct comp comps[MAXCOMP]; + +static struct scan dscans[MAXCOMP]; + +static uint8_t quant[4][64]; + +static struct dec_hufftbl dhuff[4]; + +#define dec_huffdc (dhuff + 0) +#define dec_huffac (dhuff + 2) + +/* + * build huffman data + * args: + * hu - pointer to dec_hufftbl struct + * hufflen - pointer to int with code size + * huffvals - pointer to uint8_t with huffman values + * + * asserts: + * hu not null + * hufflen not null + * huffvals not null + * + * returns: error code (0 - OK) + */ +static void dec_makehuff(struct dec_hufftbl *hu, int *hufflen, uint8_t *huffvals) +{ + /*assertions*/ + assert(hu != NULL); + assert(hufflen != NULL); + assert(huffvals != NULL); + + int code, k, i, j, d, x, c, v; + for (i = 0; i < (1 << DECBITS); i++) + hu->llvals[i] = 0; + + /* + * llvals layout: + * + * value v already known, run r, backup u bits: + * vvvvvvvvvvvvvvvv 0000 rrrr 1 uuuuuuu + * value unknown, size b bits, run r, backup u bits: + * 000000000000bbbb 0000 rrrr 0 uuuuuuu + * value and size unknown: + * 0000000000000000 0000 0000 0 0000000 + */ + code = 0; + k = 0; + for (i = 0; i < 16; i++, code <<= 1) + { /* sizes */ + hu->valptr[i] = k; + for (j = 0; j < hufflen[i]; j++) + { + hu->vals[k] = *huffvals++; + if (i < DECBITS) + { + c = code << (DECBITS - 1 - i); + v = hu->vals[k] & 0x0f; /* size */ + for (d = 1 << (DECBITS - 1 - i); --d >= 0;) + { + if (v + i < DECBITS) + { /* both fit in table */ + x = d >> (DECBITS - 1 - v - i); + if (v && x < (1 << (v - 1))) + x += (-1 << v) + 1; + x = x << 16 | (hu->vals[k] & 0xf0) << 4 | + (DECBITS - (i + 1 + v)) | 128; + } + else + x = v << 16 | (hu->vals[k] & 0xf0) << 4 | + (DECBITS - (i + 1)); + hu->llvals[c | d] = x; + } + } + code++; + k++; + } + hu->maxcode[i] = code; + } + hu->maxcode[16] = 0x20000; /* always terminate decode */ +} + +/* + * huffman decoder initialization + * args: + * none + * + * asserts: + * none + * + * returns: error code (0 - OK) + */ +static int huffman_init(void) +{ + uint8_t *ptr= (uint8_t *) jpeg_huffman_table ; + int i, j, l; + l = JPG_HUFFMAN_TABLE_LENGTH ; + while (l > 0) + { + int hufflen[16], k; + uint8_t huffvals[256]; + + int tc = *ptr++; + int th = tc & 15; + tc >>= 4; + int tt = tc * 2 + th; + if (tc > 1 || th > 1) + return E_BAD_TABLES_ERR; + for (i = 0; i < 16; i++) + hufflen[i] = *ptr++; + l -= 1 + 16; + k = 0; + for (i = 0; i < 16; i++) + { + for (j = 0; j < hufflen[i]; j++) + huffvals[k++] = *ptr++; + l -= hufflen[i]; + } + dec_makehuff(dhuff + tt, hufflen, huffvals); + } + return 0; +} + +/* + * fillbits + * args: + * inp - pointer to struct in + * le - left + * bi - bits + * + * asserts: + * inp not null + * + * returns: error code (0 - OK) + */ +static int fillbits(struct in *inp, int le, unsigned int bi) +{ + /*asserts*/ + assert(inp != NULL); + + if (inp->marker) + { + if (le <= 16) + inp->bits = bi << 16, le += 16; + return le; + } + while (le <= 24) + { + int b = *inp->p++; + int m = 0; + + if (b == 0xff && (m = *inp->p++) != 0) + { + if (m == M_EOF) + { + if (inp->func && (m = inp->func(inp->data)) == 0) + continue; + } + inp->marker = m; + if (le <= 16) + bi = bi << 16, le += 16; + break; + } + bi = bi << 8 | b; + le += 8; + } + inp->bits = bi; /* tmp... 2 return values needed */ + return le; +} + +static int dec_rec2 +__P((struct in *, struct dec_hufftbl *, int *, int, int)); + +#define GETBITS(in, n) ( \ + (le < (n) ? le = fillbits(in, le, bi), bi = in->bits : 0), \ + (le -= (n)), \ + bi >> le & ((1 << (n)) - 1) \ +) + +#define UNGETBITS(in, n) ( \ + le += (n) \ +) + +#define DEC_REC(in, hu, r, i) ( \ + r = GETBITS(in, DECBITS), \ + i = hu->llvals[r], \ + i & 128 ? \ + ( \ + UNGETBITS(in, i & 127), \ + r = i >> 8 & 15, \ + i >> 16 \ + ) \ + : \ + ( \ + LEBI_PUT(in), \ + i = dec_rec2(in, hu, &r, r, i), \ + LEBI_GET(in), \ + i \ + ) \ +) + +/* + * mcus decoder + * args: + * inp - pointer to struct in + * dct - pointer to int with dct values + * n - number of dct values + * sc - pointer to struct scan + * maxp - pointer to int + * + * asserts: + * none + * + * returns: error code (0 - OK) + */ +static void decode_mcus(struct in *inp, int *dct, int n, struct scan *sc, int *maxp) +{ + struct dec_hufftbl *hu; + int r = 0, t = 0; + LEBI_DCL; + + memset(dct, 0, n * 64 * sizeof(*dct)); + LEBI_GET(inp); + while (n-- > 0) + { + hu = sc->hudc.dhuff; + *dct++ = (sc->dc += DEC_REC(inp, hu, r, t)); + + hu = sc->huac.dhuff; + int i = 63; + + while (i > 0) + { + t = DEC_REC(inp, hu, r, t); + if (t == 0 && r == 0) + { + dct += i; + break; + } + dct += r; + *dct++ = t; + i -= r + 1; + } + *maxp++ = 64 - i; + if (n == sc->next) + sc++; + } + LEBI_PUT(inp); +} + +/* + * readmarker decoder + * args: + * inp - pointer to struct in + * + * asserts: + * inp not null + * + * returns: error code (0 - OK) + */ +static int dec_readmarker(struct in *inp) +{ + /*asserts*/ + assert(inp != NULL); + + int m; + + inp->left = fillbits(inp, inp->left, inp->bits); + if ((m = inp->marker) == 0) + return 0; + inp->left = 0; + inp->marker = 0; + return m; +} + +/* + * set input + * args: + * inp - pointer to struct in + * p - pointer to pixel data + * + * asserts: + * inp not null + * + * returns: error code (0 - OK) + */ +static void setinput(struct in *inp, uint8_t *p) +{ + /*asserts*/ + assert(inp != NULL); + + inp->p = p; + inp->left = 0; + inp->bits = 0; + inp->marker = 0; +} + +/* + * IDCT quantization table + */ +static void idctqtab(uint8_t *qin, PREC *qout) +{ + int i, j; + + for (i = 0; i < 8; i++) + for (j = 0; j < 8; j++) + qout[zig[i * 8 + j]] = qin[zig[i * 8 + j]] * + IMULT(aaidct[i], aaidct[j]); +} + +/****************************************************************/ +/************** idct ***************/ +/****************************************************************/ + +/* + * inverse dct for jpeg decoding + * args: + * in - pointer to input data ( mcu - after huffman decoding) + * out - pointer to data with output of idct (to be filled) + * quant - pointer to quantization data tables + * off - offset value (128.5 or 0.5) + * max - maximum input mcu index? + * + * asserts: + * none + * + * returns: none + */ +inline static void idct(int *inp, int *out, int *quant, long off, int max) +{ + long t0, t1, t2, t3, t4, t5, t6, t7; // t ; + long tmp0, tmp1, tmp2, tmp3, tmp4, tmp5, tmp6; + long tmp[64], *tmpp; + int i, j, te; + uint8_t *zig2p; + + t0 = off; + if (max == 1) //single color mcu + { + t0 += inp[0] * quant[0]; //only DC available + for (i = 0; i < 64; i++) // fill mcu with DC value + out[i] = ITOINT(t0); + return; + } + zig2p = zig2; + tmpp = tmp; + for (i = 0; i < 8; i++) //apply quantization table in zigzag order + { + j = *zig2p++; + t0 += inp[j] * (long) quant[j]; + j = *zig2p++; + t5 = inp[j] * (long) quant[j]; + j = *zig2p++; + t2 = inp[j] * (long) quant[j]; + j = *zig2p++; + t7 = inp[j] * (long) quant[j]; + j = *zig2p++; + t1 = inp[j] * (long) quant[j]; + j = *zig2p++; + t4 = inp[j] * (long) quant[j]; + j = *zig2p++; + t3 = inp[j] * (long) quant[j]; + j = *zig2p++; + t6 = inp[j] * (long) quant[j]; + + + if ((t1 | t2 | t3 | t4 | t5 | t6 | t7) == 0) + { + tmpp[0 * 8] = t0; //DC + tmpp[1 * 8] = t0; + tmpp[2 * 8] = t0; + tmpp[3 * 8] = t0; + tmpp[4 * 8] = t0; + tmpp[5 * 8] = t0; + tmpp[6 * 8] = t0; + tmpp[7 * 8] = t0; + + tmpp++; + t0 = 0; + continue; + } + //IDCT; + tmp0 = t0 + t1; + t1 = t0 - t1; + tmp2 = t2 - t3; + t3 = t2 + t3; + tmp2 = IMULT(tmp2, IC4) - t3; + tmp3 = tmp0 + t3; + t3 = tmp0 - t3; + tmp1 = t1 + tmp2; + tmp2 = t1 - tmp2; + tmp4 = t4 - t7; + t7 = t4 + t7; + tmp5 = t5 + t6; + t6 = t5 - t6; + tmp6 = tmp5 - t7; + t7 = tmp5 + t7; + tmp5 = IMULT(tmp6, IC4); + tmp6 = IMULT((tmp4 + t6), S22); + tmp4 = IMULT(tmp4, (C22 - S22)) + tmp6; + t6 = IMULT(t6, (C22 + S22)) - tmp6; + t6 = t6 - t7; + t5 = tmp5 - t6; + t4 = tmp4 - t5; + + tmpp[0 * 8] = tmp3 + t7; //t0; + tmpp[1 * 8] = tmp1 + t6; //t1; + tmpp[2 * 8] = tmp2 + t5; //t2; + tmpp[3 * 8] = t3 + t4; //t3; + tmpp[4 * 8] = t3 - t4; //t4; + tmpp[5 * 8] = tmp2 - t5; //t5; + tmpp[6 * 8] = tmp1 - t6; //t6; + tmpp[7 * 8] = tmp3 - t7; //t7; + tmpp++; + t0 = 0; + } + for (i = 0, j = 0; i < 8; i++) + { + t0 = tmp[j + 0]; + t1 = tmp[j + 1]; + t2 = tmp[j + 2]; + t3 = tmp[j + 3]; + t4 = tmp[j + 4]; + t5 = tmp[j + 5]; + t6 = tmp[j + 6]; + t7 = tmp[j + 7]; + if ((t1 | t2 | t3 | t4 | t5 | t6 | t7) == 0) + { + te = ITOINT(t0); + out[j + 0] = te; + out[j + 1] = te; + out[j + 2] = te; + out[j + 3] = te; + out[j + 4] = te; + out[j + 5] = te; + out[j + 6] = te; + out[j + 7] = te; + j += 8; + continue; + } + //IDCT; + tmp0 = t0 + t1; + t1 = t0 - t1; + tmp2 = t2 - t3; + t3 = t2 + t3; + tmp2 = IMULT(tmp2, IC4) - t3; + tmp3 = tmp0 + t3; + t3 = tmp0 - t3; + tmp1 = t1 + tmp2; + tmp2 = t1 - tmp2; + tmp4 = t4 - t7; + t7 = t4 + t7; + tmp5 = t5 + t6; + t6 = t5 - t6; + tmp6 = tmp5 - t7; + t7 = tmp5 + t7; + tmp5 = IMULT(tmp6, IC4); + tmp6 = IMULT((tmp4 + t6), S22); + tmp4 = IMULT(tmp4, (C22 - S22)) + tmp6; + t6 = IMULT(t6, (C22 + S22)) - tmp6; + t6 = t6 - t7; + t5 = tmp5 - t6; + t4 = tmp4 - t5; + + out[j + 0] = ITOINT(tmp3 + t7); + out[j + 1] = ITOINT(tmp1 + t6); + out[j + 2] = ITOINT(tmp2 + t5); + out[j + 3] = ITOINT(t3 + t4); + out[j + 4] = ITOINT(t3 - t4); + out[j + 5] = ITOINT(tmp2 - t5); + out[j + 6] = ITOINT(tmp1 - t6); + out[j + 7] = ITOINT(tmp3 - t7); + j += 8; + } +} + +/*********************************/ +//static void col221111 __P((int *, unsigned char *, int)); + +typedef void (*ftopict) (int * out, uint8_t *pic, int width) ; + +/*********************************/ +/* + * pointer to pixel data + */ +static uint8_t *datap; + +/* + * input structure (in) + */ +static struct in inp; + + +/* + * get byte (8 bit) from datap + */ +static int getbyte(void) +{ + return *datap++; +} + +/* + * get word (16 bit) from datap + */ +static int getword(void) +{ + int c1, c2; + c1 = *datap++; + c2 = *datap++; + return c1 << 8 | c2; +} + +/* + * read jpeg tables (huffman and quantization) + * args: + * till - Marker (frame - SOF0 scan - SOS) + * isDHT - flag indicating the presence of huffman tables (if 0 must use default ones - MJPG frame) + * asserts: + * none + * + * returns: error code (0 - OK) + */ +static int readtables(int till, int *isDHT) +{ + int l, i, j, lq, pq, tq; + int tc, th, tt; + + for (;;) + { + if (getbyte() != 0xff) + return -1; + + int m = 0; + + if ((m = getbyte()) == till) + break; + + switch (m) + { + case 0xc2: + return 0; + /*read quantization tables (Lqt and Cqt)*/ + case M_DQT: + lq = getword(); + while (lq > 2) + { + pq = getbyte(); + /*Lqt=0x00 Cqt=0x01*/ + tq = pq & 15; + if (tq > 3) + return -1; + pq >>= 4; + if (pq != 0) + return -1; + for (i = 0; i < 64; i++) + quant[tq][i] = getbyte(); + lq -= 64 + 1; + } + break; + /*read huffman table*/ + case M_DHT: + l = getword(); + while (l > 2) + { + int hufflen[16], k; + uint8_t huffvals[256]; + + tc = getbyte(); + th = tc & 15; + tc >>= 4; + tt = tc * 2 + th; + if (tc > 1 || th > 1) + return -1; + + for (i = 0; i < 16; i++) + hufflen[i] = getbyte(); + l -= 1 + 16; + k = 0; + for (i = 0; i < 16; i++) + { + for (j = 0; j < hufflen[i]; j++) + huffvals[k++] = getbyte(); + l -= hufflen[i]; + } + dec_makehuff(dhuff + tt, hufflen, huffvals); + } + /* has huffman tables defined (JPEG)*/ + *isDHT= 1; + break; + /*restart interval*/ + case M_DRI: + l = getword(); + info.dri = getword(); + break; + + default: + l = getword(); + while (l-- > 2) + getbyte(); + break; + } + } + return 0; +} + +/* + * init dscans + * args: + * none + * + * asserts: + * none + * + * returns: none + */ +static void dec_initscans(void) +{ + int i; + + info.nm = info.dri + 1; + info.rm = M_RST0; + for (i = 0; i < info.ns; i++) + dscans[i].dc = 0; +} + +/* + * check markers + * args: + * none + * + * asserts: + * none + * + * returns: error code (0 - OK) + */ +static int dec_checkmarker(void) +{ + int i; + + if (dec_readmarker(&inp) != info.rm) + return -1; + info.nm = info.dri; + info.rm = (info.rm + 1) & ~0x08; + for (i = 0; i < info.ns; i++) + dscans[i].dc = 0; + return 0; +} + +/* + * check markers + * args: + * none + * + * asserts: + * none + * + * returns: error code (0 - OK) + */ +static int dec_rec2(struct in *inp, struct dec_hufftbl *hu, int *runp, int c, int i) +{ + LEBI_DCL; + + LEBI_GET(inp); + if (i) + { + UNGETBITS(inp, i & 127); + *runp = i >> 8 & 15; + i >>= 16; + } + else + { + for (i = DECBITS; + (c = ((c << 1) | GETBITS(inp, 1))) >= (hu->maxcode[i]); i++); + if (i >= 16) + { + inp->marker = M_BADHUFF; + return 0; + } + i = hu->vals[hu->valptr[i] + c - hu->maxcode[i - 1] * 2]; + *runp = i >> 4; + i &= 15; + } + if (i == 0) + { /* sigh, 0xf0 is 11 bit */ + LEBI_PUT(inp); + return 0; + } + /* receive part */ + c = GETBITS(inp, i); + if (c < (1 << (i - 1))) + c += (-1 << i) + 1; + LEBI_PUT(inp); + return c; +} + +/* + * init (m)jpeg decoder context + * args: + * width - image width + * height - image height + * + * asserts: + * none + * + * returns: error code (0 - E_OK) + */ +int jpeg_init_decoder(int width, int height) +{ + if(jpeg_ctx != NULL) + jpeg_close_decoder(); + + jpeg_ctx = calloc(1, sizeof(jpeg_decoder_context_t)); + if(jpeg_ctx == NULL) + { + fprintf(stderr, "V4L2_CORE: FATAL memory allocation failure (jpeg_init_decoder): %s\n", strerror(errno)); + exit(-1); + } + + jpeg_ctx->width = width; + jpeg_ctx->height = height; + jpeg_ctx->pic_size = width * height * 2; //yuyv + jpeg_ctx->codec_data = NULL; + + jpeg_ctx->tmp_frame = calloc(jpeg_ctx->pic_size, sizeof(uint8_t)); + if(jpeg_ctx->tmp_frame == NULL) + { + fprintf(stderr, "V4L2_CORE: FATAL memory allocation failure (jpeg_init_decoder): %s\n", strerror(errno)); + exit(-1); + } + + return E_OK; +} + +/* + * jpeg decode + * args: + * out_buf - pointer to picture data ( decoded image - yuyv format) + * in_buf - pointer to input data ( compressed jpeg ) + * size - picture size + * + * asserts: + * out_buf not null + * in_buf not null + * + * returns: error code (0 - OK) + */ +//int jpeg_decode(uint8_t **pic, uint8_t *buf, int width, int height) +int jpeg_decode(uint8_t *out_buf, uint8_t *in_buf, int size) +{ + /*asserts*/ + assert(in_buf != NULL); + assert(out_buf != NULL); + + memcpy(jpeg_ctx->tmp_frame, in_buf, size); + + struct jpeg_decdata *decdata; + int i=0, j=0, m=0, tac=0, tdc=0; + int intwidth=0, intheight=0; + int mcusx=0, mcusy=0, mx=0, my=0; + int ypitch=0 ,xpitch=0,bpp=0,pitch=0,x=0,y=0; + int mb=0; + int max[6]; + ftopict convert; + int err = 0; + int isInitHuffman = 0; + decdata = calloc(1, sizeof(struct jpeg_decdata)); + if(decdata == NULL) + { + fprintf(stderr, "V4L2_CORE: FATAL memory allocation failure (jpeg_decode): %s\n", strerror(errno)); + exit(-1); + } + + for(i=0;i<6;i++) + max[i]=0; + + if (!decdata) + { + err = E_ALLOC_ERR; + goto error; + } + + datap = jpeg_ctx->tmp_frame; + /*check SOI (0xFFD8)*/ + if (getbyte() != 0xff) + { + err = E_NO_SOI_ERR; + goto error; + } + if (getbyte() != M_SOI) + { + err = E_NO_SOI_ERR; + goto error; + } + /*read tables - if exist, up to start frame marker (0xFFC0)*/ + if (readtables(M_SOF0, &isInitHuffman)) + { + err = E_BAD_TABLES_ERR; + goto error; + } + getword(); /*header lenght*/ + i = getbyte(); /*precision (8 bit)*/ + if (i != 8) + { + err = E_NOT_8BIT_ERR; + goto error; + } + intheight = getword(); /*height*/ + intwidth = getword(); /*width */ + + if ((intheight & 7) || (intwidth & 7)) /*must be even*/ + { + err = E_BAD_WIDTH_OR_HEIGHT_ERR; + goto error; + } + info.nc = getbyte(); /*number of components*/ + if (info.nc > MAXCOMP) + { + err = E_TOO_MANY_COMPPS_ERR; + goto error; + } + /*for each component*/ + for (i = 0; i < info.nc; i++) + { + int h, v; + comps[i].cid = getbyte(); /*component id*/ + comps[i].hv = getbyte(); + v = comps[i].hv & 15; /*vertical sampling */ + h = comps[i].hv >> 4; /*horizontal sampling */ + comps[i].tq = getbyte(); /*quantization table used*/ + if (h > 3 || v > 3) + { + err = E_ILLEGAL_HV_ERR; + goto error; + } + if (comps[i].tq > 3) + { + err = E_QUANT_TBL_SEL_ERR; + goto error; + } + } + /*read tables - if exist, up to start of scan marker (0xFFDA)*/ + if (readtables(M_SOS,&isInitHuffman)) + { + err = E_BAD_TABLES_ERR; + goto error; + } + getword(); /* header lenght */ + info.ns = getbyte(); /* number of scans */ + if (!info.ns) + { + printf("V4L2_CORE: (jpeg decoder) info ns %d/n",info.ns); + err = E_NOT_YCBCR_ERR; + goto error; + } + /*for each scan*/ + for (i = 0; i < info.ns; i++) + { + dscans[i].cid = getbyte(); /*component id*/ + tdc = getbyte(); + tac = tdc & 15; /*ac table*/ + tdc >>= 4; /*dc table*/ + if (tdc > 1 || tac > 1) + { + err = E_QUANT_TBL_SEL_ERR; + goto error; + } + for (j = 0; j < info.nc; j++) + if (comps[j].cid == dscans[i].cid) + break; + if (j == info.nc) + { + err = E_UNKNOWN_CID_ERR; + goto error; + } + dscans[i].hv = comps[j].hv; + dscans[i].tq = comps[j].tq; + dscans[i].hudc.dhuff = dec_huffdc + tdc; + dscans[i].huac.dhuff = dec_huffac + tac; + } + + i = getbyte(); /*0 */ + j = getbyte(); /*63*/ + m = getbyte(); /*0 */ + + if (i != 0 || j != 63 || m != 0) + { + fprintf(stderr, "V4L2_CORE: (jpeg decoder) FW error,not seq DCT ??\n"); + } + + /*build huffman tables*/ + if(!isInitHuffman) + { + if(huffman_init() < 0) + return E_BAD_TABLES_ERR; + } + /* + if (dscans[0].cid != 1 || dscans[1].cid != 2 || dscans[2].cid != 3) + { + err = ERR_NOT_YCBCR_221111; + goto error; + } + + if (dscans[1].hv != 0x11 || dscans[2].hv != 0x11) + { + err = ERR_NOT_YCBCR_221111; + goto error; + } + */ + + /* + * if internal width and external are not the same or heigth too + * and pic not allocated realloc the good size and mark the change + * need 1 macroblock line more ?? + */ + //if (intwidth != width || intheight != height || pic == NULL) + //{ + // width = intwidth; + // height = intheight; + // // BytesperPixel 2 yuyv , 3 rgb24 + // *pic = calloc( intwidth * (intheight + 8) * 2, sizeof(uint8_t)); + // if(*pic == NULL) + // { + // fprintf(stderr, "V4L2_CORE: FATAL memory allocation failure (alloc_v4l2_frames): %s\n", strerror(errno)); + // exit(-1); + // } + //} + + switch (dscans[0].hv) + { + case 0x22: // 411 + mb=6; + mcusx = jpeg_ctx->width >> 4; + mcusy = jpeg_ctx->height >> 4; + bpp=2; + xpitch = 16 * bpp; + pitch = jpeg_ctx->width * bpp; // YUYV out + ypitch = 16 * pitch; + convert = yuv420pto422; //choose the right conversion function + break; + case 0x21: //422 + mb=4; + mcusx = jpeg_ctx->width >> 4; + mcusy = jpeg_ctx->height >> 3; + bpp=2; + xpitch = 16 * bpp; + pitch = jpeg_ctx->width * bpp; // YUYV out + ypitch = 8 * pitch; + convert = yuv422pto422; //choose the right conversion function + break; + case 0x11: //444 + mcusx = jpeg_ctx->width >> 3; + mcusy = jpeg_ctx->height >> 3; + bpp=2; + xpitch = 8 * bpp; + pitch = jpeg_ctx->width * bpp; // YUYV out + ypitch = 8 * pitch; + if (info.ns==1) + { + mb = 1; + convert = yuv400pto422; //choose the right conversion function + } + else + { + mb=3; + convert = yuv444pto422; //choose the right conversion function + } + break; + default: + err = E_NOT_YCBCR_ERR; + goto error; + break; + } + + idctqtab(quant[dscans[0].tq], decdata->dquant[0]); + idctqtab(quant[dscans[1].tq], decdata->dquant[1]); + idctqtab(quant[dscans[2].tq], decdata->dquant[2]); + setinput(&inp, datap); + dec_initscans(); + + dscans[0].next = 2; + dscans[1].next = 1; + dscans[2].next = 0; /* 4xx encoding */ + for (my = 0,y=0; my < mcusy; my++,y+=ypitch) + { + for (mx = 0,x=0; mx < mcusx; mx++,x+=xpitch) + { + if (info.dri && !--info.nm) + if (dec_checkmarker()) + { + err = E_WRONG_MARKER_ERR; + goto error; + } + switch (mb) + { + case 6: + decode_mcus(&inp, decdata->dcts, mb, dscans, max); + idct(decdata->dcts, decdata->out, decdata->dquant[0], + IFIX(128.5), max[0]); + idct(decdata->dcts + 64, decdata->out + 64, + decdata->dquant[0], IFIX(128.5), max[1]); + idct(decdata->dcts + 128, decdata->out + 128, + decdata->dquant[0], IFIX(128.5), max[2]); + idct(decdata->dcts + 192, decdata->out + 192, + decdata->dquant[0], IFIX(128.5), max[3]); + idct(decdata->dcts + 256, decdata->out + 256, + decdata->dquant[1], IFIX(0.5), max[4]); + idct(decdata->dcts + 320, decdata->out + 320, + decdata->dquant[2], IFIX(0.5), max[5]); + break; + + case 4: + decode_mcus(&inp, decdata->dcts, mb, dscans, max); + idct(decdata->dcts, decdata->out, decdata->dquant[0], + IFIX(128.5), max[0]); + idct(decdata->dcts + 64, decdata->out + 64, + decdata->dquant[0], IFIX(128.5), max[1]); + idct(decdata->dcts + 128, decdata->out + 256, + decdata->dquant[1], IFIX(0.5), max[4]); + idct(decdata->dcts + 192, decdata->out + 320, + decdata->dquant[2], IFIX(0.5), max[5]); + break; + + case 3: + decode_mcus(&inp, decdata->dcts, mb, dscans, max); + idct(decdata->dcts, decdata->out, decdata->dquant[0], + IFIX(128.5), max[0]); + idct(decdata->dcts + 64, decdata->out + 256, + decdata->dquant[1], IFIX(0.5), max[4]); + idct(decdata->dcts + 128, decdata->out + 320, + decdata->dquant[2], IFIX(0.5), max[5]); + break; + + case 1: + decode_mcus(&inp, decdata->dcts, mb, dscans, max); + idct(decdata->dcts, decdata->out, decdata->dquant[0], + IFIX(128.5), max[0]); + break; + } // switch enc411 + convert(decdata->out, out_buf+y+x, pitch); //convert to 422 + } + } + + m = dec_readmarker(&inp); + if (m != M_EOI) + { + err = E_NO_EOI_ERR; + goto error; + } + free(decdata); + return 0; +error: + free(decdata); + return err; +} + +/* + * close (m)jpeg decoder context + * args: + * none + * + * asserts: + * none + * + * returns: none + */ +void jpeg_close_decoder() +{ + if(jpeg_ctx == NULL) + return; + + free(jpeg_ctx->tmp_frame); + free(jpeg_ctx); + + jpeg_ctx = NULL; +} + +#else //use libavcodec to decode mjpeg data + +/*h264 decoder (libavcodec)*/ +#ifdef HAVE_AVCODEC_H + #include +#else + #ifdef HAVE_LIBAVCODEC_AVCODEC_H + #include + #else + #ifdef HAVE_FFMPEG_AVCODEC_H + #include + #else + #include + #endif + #endif +#endif + +#define LIBAVCODEC_VER_AT_LEAST(major,minor) (LIBAVCODEC_VERSION_MAJOR > major || \ + (LIBAVCODEC_VERSION_MAJOR == major && \ + LIBAVCODEC_VERSION_MINOR >= minor)) + +#if !LIBAVCODEC_VER_AT_LEAST(54,25) + #define AV_CODEC_ID_H264 CODEC_ID_H264 +#endif +typedef struct _codec_data_t +{ + AVCodec *codec; + AVCodecContext *context; + AVFrame *picture; +} codec_data_t; + +/* + * init (m)jpeg decoder context + * args: + * width - image width + * height - image height + * + * asserts: + * none + * + * returns: error code (0 - E_OK) + */ +int jpeg_init_decoder(int width, int height) +{ +#if !LIBAVCODEC_VER_AT_LEAST(53,34) + avcodec_init(); +#endif + /* + * register all the codecs (we can also register only the codec + * we wish to have smaller code) + */ + avcodec_register_all(); + av_log_set_level(AV_LOG_PANIC); + + if(jpeg_ctx != NULL) + jpeg_close_decoder(); + + jpeg_ctx = calloc(1, sizeof(jpeg_decoder_context_t)); + if(jpeg_ctx == NULL) + { + fprintf(stderr, "V4L2_CORE: FATAL memory allocation failure (jpeg_init_decoder): %s\n", strerror(errno)); + exit(-1); + } + + codec_data_t *codec_data = calloc(1, sizeof(codec_data_t)); + if(codec_data == NULL) + { + fprintf(stderr, "V4L2_CORE: FATAL memory allocation failure (jpeg_init_decoder): %s\n", strerror(errno)); + exit(-1); + } + + codec_data->codec = avcodec_find_decoder(AV_CODEC_ID_MJPEG); + if(!codec_data->codec) + { + fprintf(stderr, "V4L2_CORE: (mjpeg decoder) codec not found\n"); + free(jpeg_ctx); + free(codec_data); + jpeg_ctx = NULL; + return E_NO_CODEC; + } + +#if LIBAVCODEC_VER_AT_LEAST(53,6) + codec_data->context = avcodec_alloc_context3(codec_data->codec); + avcodec_get_context_defaults3 (codec_data->context, codec_data->codec); +#else + codec_data->context = avcodec_alloc_context(); + avcodec_get_context_defaults(codec_data->context); +#endif + if(codec_data->context == NULL) + { + fprintf(stderr, "V4L2_CORE: FATAL memory allocation failure (h264_init_decoder): %s\n", strerror(errno)); + exit(-1); + } + + codec_data->context->pix_fmt = PIX_FMT_YUV422P; + codec_data->context->width = width; + codec_data->context->height = height; + //jpeg_ctx->context->dsp_mask = (FF_MM_MMX | FF_MM_MMXEXT | FF_MM_SSE); + +#if LIBAVCODEC_VER_AT_LEAST(53,6) + if (avcodec_open2(codec_data->context, codec_data->codec, NULL) < 0) +#else + if (avcodec_open(codec_data->context, codec_data->codec) < 0) +#endif + { + fprintf(stderr, "V4L2_CORE: (mjpeg decoder) couldn't open codec\n"); + avcodec_close(codec_data->context); + free(codec_data->context); + free(codec_data); + free(jpeg_ctx); + jpeg_ctx = NULL; + return E_NO_CODEC; + } + +#if LIBAVCODEC_VER_AT_LEAST(55,28) + codec_data->picture = av_frame_alloc(); + av_frame_unref(codec_data->picture); +#else + codec_data->picture = avcodec_alloc_frame(); + avcodec_get_frame_defaults(codec_data->picture); +#endif + + /*alloc temp buffer*/ + jpeg_ctx->tmp_frame = calloc(width*height*2, sizeof(uint8_t)); + if(jpeg_ctx->tmp_frame == NULL) + { + fprintf(stderr, "V4L2_CORE: FATAL memory allocation failure (jpeg_init_decoder): %s\n", strerror(errno)); + exit(-1); + } + + jpeg_ctx->pic_size = avpicture_get_size(codec_data->context->pix_fmt, width, height); + jpeg_ctx->width = width; + jpeg_ctx->height = height; + jpeg_ctx->codec_data = codec_data; + + return E_OK; +} + +/* + * decode (m)jpeg frame + * args: + * out_buf - pointer to decoded data + * in_buf - pointer to h264 data + * size - in_buf size + * + * asserts: + * jpeg_ctx is not null + * in_buf is not null + * out_buf is not null + * + * returns: decoded data size + */ +int jpeg_decode(uint8_t *out_buf, uint8_t *in_buf, int size) +{ + /*asserts*/ + assert(jpeg_ctx != NULL); + assert(in_buf != NULL); + assert(out_buf != NULL); + + AVPacket avpkt; + + av_init_packet(&avpkt); + + avpkt.size = size; + avpkt.data = in_buf; + + codec_data_t *codec_data = (codec_data_t *) jpeg_ctx->codec_data; + + int got_picture = 0; + int len = avcodec_decode_video2(codec_data->context, codec_data->picture, &got_picture, &avpkt); + + if(len < 0) + { + fprintf(stderr, "V4L2_CORE: (jpeg decoder) error while decoding frame\n"); + return len; + } + + if(got_picture) + { + avpicture_layout((AVPicture *) codec_data->picture, codec_data->context->pix_fmt, + jpeg_ctx->width, jpeg_ctx->height, jpeg_ctx->tmp_frame, jpeg_ctx->pic_size); + /* libavcodec output is in yuv422p */ +#ifdef USE_PLANAR_YUV + yuv422p_to_yu12(out_buf, jpeg_ctx->tmp_frame, jpeg_ctx->width, jpeg_ctx->height); +#else + yuv422_to_yuyv(out_buf, jpeg_ctx->tmp_frame, jpeg_ctx->width, jpeg_ctx->height); +#endif + return jpeg_ctx->pic_size; + } + else + return 0; + +} + +/* + * close (m)jpeg decoder context + * args: + * none + * + * asserts: + * none + * + * returns: none + */ +void jpeg_close_decoder() +{ + if(jpeg_ctx == NULL) + return; + + codec_data_t *codec_data = (codec_data_t *) jpeg_ctx->codec_data; + + avcodec_close(codec_data->context); + + free(codec_data->context); + +#if LIBAVCODEC_VER_AT_LEAST(55,28) + av_frame_free(&codec_data->picture); +#else + #if LIBAVCODEC_VER_AT_LEAST(54,28) + avcodec_free_frame(&codec_data->picture); + #else + av_freep(&codec_data->picture); + #endif +#endif + + if(jpeg_ctx->tmp_frame) + free(jpeg_ctx->tmp_frame); + + free(codec_data); + free(jpeg_ctx); + + jpeg_ctx = NULL; +} + +#endif + + diff -Nru guvcview-1.7.3/gview_v4l2core/jpeg_decoder.h guvcview-2.0.1+ubuntu1~ppa1/gview_v4l2core/jpeg_decoder.h --- guvcview-1.7.3/gview_v4l2core/jpeg_decoder.h 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/gview_v4l2core/jpeg_decoder.h 2014-10-05 10:41:44.000000000 +0000 @@ -0,0 +1,91 @@ +/*******************************************************************************# +# guvcview http://guvcview.sourceforge.net # +# # +# Paulo Assis # +# # +# This program is free software; you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation; either version 2 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program; if not, write to the Free Software # +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # +# # +********************************************************************************/ + +/*******************************************************************************# +# # +# M/Jpeg decoding and frame capture taken from luvcview # +# # +********************************************************************************/ + +#ifndef JPEG_DECODER_H +#define JPEG_DECODER_H + +#define HEADERFRAME1 0xaf + +/*******Error codes *******/ +#define ERR_NO_SOI 1 +#define ERR_NOT_8BIT 2 +#define ERR_HEIGHT_MISMATCH 3 +#define ERR_WIDTH_MISMATCH 4 +#define ERR_BAD_WIDTH_OR_HEIGHT 5 +#define ERR_TOO_MANY_COMPPS 6 +#define ERR_ILLEGAL_HV 7 +#define ERR_QUANT_TABLE_SELECTOR 8 +#define ERR_NOT_YCBCR_221111 9 +#define ERR_UNKNOWN_CID_IN_SCAN 10 +#define ERR_NOT_SEQUENTIAL_DCT 11 +#define ERR_WRONG_MARKER 12 +#define ERR_NO_EOI 13 +#define ERR_BAD_TABLES 14 +#define ERR_DEPTH_MISMATCH 15 + +/* + * init (m)jpeg decoder context + * args: + * width - image width + * height - image height + * + * asserts: + * none + * + * returns: error code (0 - E_OK) + */ +int jpeg_init_decoder(int width, int height); + +/* + * jpeg decode + * args: + * out_buf - pointer to picture data ( decoded image - yuyv format) + * in_buf - pointer to input data ( compressed jpeg ) + * size - picture size + * + * asserts: + * out_buf not null + * in_buf not null + * + * returns: error code (0 - OK) + */ +int jpeg_decode(uint8_t *out_buf, uint8_t *in_buf, int size); + +/* + * close (m)jpeg decoder context + * args: + * none + * + * asserts: + * none + * + * returns: none + */ +void jpeg_close_decoder(); + +#endif + diff -Nru guvcview-1.7.3/gview_v4l2core/Makefile.am guvcview-2.0.1+ubuntu1~ppa1/gview_v4l2core/Makefile.am --- guvcview-1.7.3/gview_v4l2core/Makefile.am 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/gview_v4l2core/Makefile.am 2014-10-05 10:41:44.000000000 +0000 @@ -0,0 +1,46 @@ +## Process this file with automake to produce Makefile.in + +# Public headers +h_sources = gviewv4l2core.h \ + $(top_srcdir)/includes/gview.h + +c_sources = v4l2_core.c \ + v4l2_formats.c \ + v4l2_controls.c \ + v4l2_devices.c \ + v4l2_xu_ctrls.c \ + uvc_h264.c \ + core_time.c \ + frame_decoder.c \ + colorspaces.c \ + jpeg_decoder.c \ + soft_autofocus.c \ + dct.c \ + control_profile.c \ + save_image.c \ + save_image_jpeg.c \ + save_image_bmp.c \ + save_image_png.c + + +#Install the headers in a versioned directory - guvcvideo-x/libgviewv4l2core: +library_includedir=$(includedir)/$(PACKAGE)-$(PACKAGE_RELEASE)/$(GVIEWV4L2CORE_LIBRARY_NAME) +library_include_HEADERS = $(h_sources) + +#AM_CFLAGS = + +lib_LTLIBRARIES= libgviewv4l2core.la + +libgviewv4l2core_la_SOURCES= $(h_sources) $(c_sources) + +libgviewv4l2core_la_CFLAGS = $(GVIEWV4L2CORE_CFLAGS) \ + $(PTHREAD_CFLAGS) \ + -DPACKAGE_LOCALE_DIR=\""$(prefix)/$(DATADIRNAME)/locale"\" \ + -I$(top_srcdir) \ + -I$(top_srcdir)/includes + +libgviewv4l2core_la_LIBADD= $(GVIEWV4L2CORE_LIBS) $(PTHREAD_LIBS) -lm + +libgviewv4l2core_la_LDFLAGS= -version-info $(GVIEWV4L2CORE_LIBRARY_VERSION) -release $(GVIEWV4L2CORE_API_VERSION) + + diff -Nru guvcview-1.7.3/gview_v4l2core/Makefile.in guvcview-2.0.1+ubuntu1~ppa1/gview_v4l2core/Makefile.in --- guvcview-1.7.3/gview_v4l2core/Makefile.in 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/gview_v4l2core/Makefile.in 2014-10-05 10:41:44.000000000 +0000 @@ -0,0 +1,918 @@ +# Makefile.in generated by automake 1.14.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + + +VPATH = @srcdir@ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = gview_v4l2core +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(top_srcdir)/depcomp $(library_include_HEADERS) +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/acx_pthread.m4 \ + $(top_srcdir)/m4/intltool.m4 $(top_srcdir)/m4/libtool.m4 \ + $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ + $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ + $(top_srcdir)/m4/nls.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } +am__installdirs = "$(DESTDIR)$(libdir)" \ + "$(DESTDIR)$(library_includedir)" +LTLIBRARIES = $(lib_LTLIBRARIES) +am__DEPENDENCIES_1 = +libgviewv4l2core_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) +am__objects_1 = +am__objects_2 = libgviewv4l2core_la-v4l2_core.lo \ + libgviewv4l2core_la-v4l2_formats.lo \ + libgviewv4l2core_la-v4l2_controls.lo \ + libgviewv4l2core_la-v4l2_devices.lo \ + libgviewv4l2core_la-v4l2_xu_ctrls.lo \ + libgviewv4l2core_la-uvc_h264.lo \ + libgviewv4l2core_la-core_time.lo \ + libgviewv4l2core_la-frame_decoder.lo \ + libgviewv4l2core_la-colorspaces.lo \ + libgviewv4l2core_la-jpeg_decoder.lo \ + libgviewv4l2core_la-soft_autofocus.lo \ + libgviewv4l2core_la-dct.lo \ + libgviewv4l2core_la-control_profile.lo \ + libgviewv4l2core_la-save_image.lo \ + libgviewv4l2core_la-save_image_jpeg.lo \ + libgviewv4l2core_la-save_image_bmp.lo \ + libgviewv4l2core_la-save_image_png.lo +am_libgviewv4l2core_la_OBJECTS = $(am__objects_1) $(am__objects_2) +libgviewv4l2core_la_OBJECTS = $(am_libgviewv4l2core_la_OBJECTS) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = +libgviewv4l2core_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ + $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ + $(libgviewv4l2core_la_CFLAGS) $(CFLAGS) \ + $(libgviewv4l2core_la_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) +depcomp = $(SHELL) $(top_srcdir)/depcomp +am__depfiles_maybe = depfiles +am__mv = mv -f +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = +CCLD = $(CC) +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = +SOURCES = $(libgviewv4l2core_la_SOURCES) +DIST_SOURCES = $(libgviewv4l2core_la_SOURCES) +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +HEADERS = $(library_include_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` +ETAGS = etags +CTAGS = ctags +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +ALL_LINGUAS = @ALL_LINGUAS@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CATALOGS = @CATALOGS@ +CATOBJEXT = @CATOBJEXT@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DATADIRNAME = @DATADIRNAME@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GETTEXT_PACKAGE_V4L2CORE = @GETTEXT_PACKAGE_V4L2CORE@ +GMOFILES = @GMOFILES@ +GMSGFMT = @GMSGFMT@ +GREP = @GREP@ +GSL_CFLAGS = @GSL_CFLAGS@ +GSL_LIBS = @GSL_LIBS@ +GUVCVIEW_CFLAGS = @GUVCVIEW_CFLAGS@ +GUVCVIEW_LIBS = @GUVCVIEW_LIBS@ +GVIEWAUDIO_API_VERSION = @GVIEWAUDIO_API_VERSION@ +GVIEWAUDIO_CFLAGS = @GVIEWAUDIO_CFLAGS@ +GVIEWAUDIO_LD_NAME = @GVIEWAUDIO_LD_NAME@ +GVIEWAUDIO_LIBRARY_NAME = @GVIEWAUDIO_LIBRARY_NAME@ +GVIEWAUDIO_LIBRARY_VERSION = @GVIEWAUDIO_LIBRARY_VERSION@ +GVIEWAUDIO_LIBS = @GVIEWAUDIO_LIBS@ +GVIEWENCODER_API_VERSION = @GVIEWENCODER_API_VERSION@ +GVIEWENCODER_CFLAGS = @GVIEWENCODER_CFLAGS@ +GVIEWENCODER_LD_NAME = @GVIEWENCODER_LD_NAME@ +GVIEWENCODER_LIBRARY_NAME = @GVIEWENCODER_LIBRARY_NAME@ +GVIEWENCODER_LIBRARY_VERSION = @GVIEWENCODER_LIBRARY_VERSION@ +GVIEWENCODER_LIBS = @GVIEWENCODER_LIBS@ +GVIEWRENDER_API_VERSION = @GVIEWRENDER_API_VERSION@ +GVIEWRENDER_CFLAGS = @GVIEWRENDER_CFLAGS@ +GVIEWRENDER_LD_NAME = @GVIEWRENDER_LD_NAME@ +GVIEWRENDER_LIBRARY_NAME = @GVIEWRENDER_LIBRARY_NAME@ +GVIEWRENDER_LIBRARY_VERSION = @GVIEWRENDER_LIBRARY_VERSION@ +GVIEWRENDER_LIBS = @GVIEWRENDER_LIBS@ +GVIEWV4L2CORE_API_VERSION = @GVIEWV4L2CORE_API_VERSION@ +GVIEWV4L2CORE_CFLAGS = @GVIEWV4L2CORE_CFLAGS@ +GVIEWV4L2CORE_LD_NAME = @GVIEWV4L2CORE_LD_NAME@ +GVIEWV4L2CORE_LIBRARY_NAME = @GVIEWV4L2CORE_LIBRARY_NAME@ +GVIEWV4L2CORE_LIBRARY_VERSION = @GVIEWV4L2CORE_LIBRARY_VERSION@ +GVIEWV4L2CORE_LIBS = @GVIEWV4L2CORE_LIBS@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +INSTOBJEXT = @INSTOBJEXT@ +INTLLIBS = @INTLLIBS@ +INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ +INTLTOOL_MERGE = @INTLTOOL_MERGE@ +INTLTOOL_PERL = @INTLTOOL_PERL@ +INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ +INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ +INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ +INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ +INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +MKINSTALLDIRS = @MKINSTALLDIRS@ +MSGFMT = @MSGFMT@ +MSGFMT_OPTS = @MSGFMT_OPTS@ +MSGMERGE = @MSGMERGE@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_RELEASE = @PACKAGE_RELEASE@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +POFILES = @POFILES@ +POSUB = @POSUB@ +PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ +PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ +PTHREAD_CC = @PTHREAD_CC@ +PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ +PTHREAD_LIBS = @PTHREAD_LIBS@ +PULSE_CFLAGS = @PULSE_CFLAGS@ +PULSE_LIBS = @PULSE_LIBS@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +USE_NLS = @USE_NLS@ +VERSION = @VERSION@ +XGETTEXT = @XGETTEXT@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +acx_pthread_config = @acx_pthread_config@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +intltool__v_merge_options_ = @intltool__v_merge_options_@ +intltool__v_merge_options_0 = @intltool__v_merge_options_0@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ + +# Public headers +h_sources = gviewv4l2core.h \ + $(top_srcdir)/includes/gview.h + +c_sources = v4l2_core.c \ + v4l2_formats.c \ + v4l2_controls.c \ + v4l2_devices.c \ + v4l2_xu_ctrls.c \ + uvc_h264.c \ + core_time.c \ + frame_decoder.c \ + colorspaces.c \ + jpeg_decoder.c \ + soft_autofocus.c \ + dct.c \ + control_profile.c \ + save_image.c \ + save_image_jpeg.c \ + save_image_bmp.c \ + save_image_png.c + + +#Install the headers in a versioned directory - guvcvideo-x/libgviewv4l2core: +library_includedir = $(includedir)/$(PACKAGE)-$(PACKAGE_RELEASE)/$(GVIEWV4L2CORE_LIBRARY_NAME) +library_include_HEADERS = $(h_sources) + +#AM_CFLAGS = +lib_LTLIBRARIES = libgviewv4l2core.la +libgviewv4l2core_la_SOURCES = $(h_sources) $(c_sources) +libgviewv4l2core_la_CFLAGS = $(GVIEWV4L2CORE_CFLAGS) \ + $(PTHREAD_CFLAGS) \ + -DPACKAGE_LOCALE_DIR=\""$(prefix)/$(DATADIRNAME)/locale"\" \ + -I$(top_srcdir) \ + -I$(top_srcdir)/includes + +libgviewv4l2core_la_LIBADD = $(GVIEWV4L2CORE_LIBS) $(PTHREAD_LIBS) -lm +libgviewv4l2core_la_LDFLAGS = -version-info $(GVIEWV4L2CORE_LIBRARY_VERSION) -release $(GVIEWV4L2CORE_API_VERSION) +all: all-am + +.SUFFIXES: +.SUFFIXES: .c .lo .o .obj +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign gview_v4l2core/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign gview_v4l2core/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +install-libLTLIBRARIES: $(lib_LTLIBRARIES) + @$(NORMAL_INSTALL) + @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ + list2=; for p in $$list; do \ + if test -f $$p; then \ + list2="$$list2 $$p"; \ + else :; fi; \ + done; \ + test -z "$$list2" || { \ + echo " $(MKDIR_P) '$(DESTDIR)$(libdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(libdir)" || exit 1; \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \ + } + +uninstall-libLTLIBRARIES: + @$(NORMAL_UNINSTALL) + @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ + for p in $$list; do \ + $(am__strip_dir) \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \ + done + +clean-libLTLIBRARIES: + -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) + @list='$(lib_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + +libgviewv4l2core.la: $(libgviewv4l2core_la_OBJECTS) $(libgviewv4l2core_la_DEPENDENCIES) $(EXTRA_libgviewv4l2core_la_DEPENDENCIES) + $(AM_V_CCLD)$(libgviewv4l2core_la_LINK) -rpath $(libdir) $(libgviewv4l2core_la_OBJECTS) $(libgviewv4l2core_la_LIBADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgviewv4l2core_la-colorspaces.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgviewv4l2core_la-control_profile.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgviewv4l2core_la-core_time.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgviewv4l2core_la-dct.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgviewv4l2core_la-frame_decoder.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgviewv4l2core_la-jpeg_decoder.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgviewv4l2core_la-save_image.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgviewv4l2core_la-save_image_bmp.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgviewv4l2core_la-save_image_jpeg.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgviewv4l2core_la-save_image_png.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgviewv4l2core_la-soft_autofocus.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgviewv4l2core_la-uvc_h264.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgviewv4l2core_la-v4l2_controls.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgviewv4l2core_la-v4l2_core.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgviewv4l2core_la-v4l2_devices.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgviewv4l2core_la-v4l2_formats.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgviewv4l2core_la-v4l2_xu_ctrls.Plo@am__quote@ + +.c.o: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< + +.c.obj: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` + +.c.lo: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< + +libgviewv4l2core_la-v4l2_core.lo: v4l2_core.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgviewv4l2core_la_CFLAGS) $(CFLAGS) -MT libgviewv4l2core_la-v4l2_core.lo -MD -MP -MF $(DEPDIR)/libgviewv4l2core_la-v4l2_core.Tpo -c -o libgviewv4l2core_la-v4l2_core.lo `test -f 'v4l2_core.c' || echo '$(srcdir)/'`v4l2_core.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgviewv4l2core_la-v4l2_core.Tpo $(DEPDIR)/libgviewv4l2core_la-v4l2_core.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='v4l2_core.c' object='libgviewv4l2core_la-v4l2_core.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgviewv4l2core_la_CFLAGS) $(CFLAGS) -c -o libgviewv4l2core_la-v4l2_core.lo `test -f 'v4l2_core.c' || echo '$(srcdir)/'`v4l2_core.c + +libgviewv4l2core_la-v4l2_formats.lo: v4l2_formats.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgviewv4l2core_la_CFLAGS) $(CFLAGS) -MT libgviewv4l2core_la-v4l2_formats.lo -MD -MP -MF $(DEPDIR)/libgviewv4l2core_la-v4l2_formats.Tpo -c -o libgviewv4l2core_la-v4l2_formats.lo `test -f 'v4l2_formats.c' || echo '$(srcdir)/'`v4l2_formats.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgviewv4l2core_la-v4l2_formats.Tpo $(DEPDIR)/libgviewv4l2core_la-v4l2_formats.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='v4l2_formats.c' object='libgviewv4l2core_la-v4l2_formats.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgviewv4l2core_la_CFLAGS) $(CFLAGS) -c -o libgviewv4l2core_la-v4l2_formats.lo `test -f 'v4l2_formats.c' || echo '$(srcdir)/'`v4l2_formats.c + +libgviewv4l2core_la-v4l2_controls.lo: v4l2_controls.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgviewv4l2core_la_CFLAGS) $(CFLAGS) -MT libgviewv4l2core_la-v4l2_controls.lo -MD -MP -MF $(DEPDIR)/libgviewv4l2core_la-v4l2_controls.Tpo -c -o libgviewv4l2core_la-v4l2_controls.lo `test -f 'v4l2_controls.c' || echo '$(srcdir)/'`v4l2_controls.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgviewv4l2core_la-v4l2_controls.Tpo $(DEPDIR)/libgviewv4l2core_la-v4l2_controls.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='v4l2_controls.c' object='libgviewv4l2core_la-v4l2_controls.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgviewv4l2core_la_CFLAGS) $(CFLAGS) -c -o libgviewv4l2core_la-v4l2_controls.lo `test -f 'v4l2_controls.c' || echo '$(srcdir)/'`v4l2_controls.c + +libgviewv4l2core_la-v4l2_devices.lo: v4l2_devices.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgviewv4l2core_la_CFLAGS) $(CFLAGS) -MT libgviewv4l2core_la-v4l2_devices.lo -MD -MP -MF $(DEPDIR)/libgviewv4l2core_la-v4l2_devices.Tpo -c -o libgviewv4l2core_la-v4l2_devices.lo `test -f 'v4l2_devices.c' || echo '$(srcdir)/'`v4l2_devices.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgviewv4l2core_la-v4l2_devices.Tpo $(DEPDIR)/libgviewv4l2core_la-v4l2_devices.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='v4l2_devices.c' object='libgviewv4l2core_la-v4l2_devices.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgviewv4l2core_la_CFLAGS) $(CFLAGS) -c -o libgviewv4l2core_la-v4l2_devices.lo `test -f 'v4l2_devices.c' || echo '$(srcdir)/'`v4l2_devices.c + +libgviewv4l2core_la-v4l2_xu_ctrls.lo: v4l2_xu_ctrls.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgviewv4l2core_la_CFLAGS) $(CFLAGS) -MT libgviewv4l2core_la-v4l2_xu_ctrls.lo -MD -MP -MF $(DEPDIR)/libgviewv4l2core_la-v4l2_xu_ctrls.Tpo -c -o libgviewv4l2core_la-v4l2_xu_ctrls.lo `test -f 'v4l2_xu_ctrls.c' || echo '$(srcdir)/'`v4l2_xu_ctrls.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgviewv4l2core_la-v4l2_xu_ctrls.Tpo $(DEPDIR)/libgviewv4l2core_la-v4l2_xu_ctrls.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='v4l2_xu_ctrls.c' object='libgviewv4l2core_la-v4l2_xu_ctrls.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgviewv4l2core_la_CFLAGS) $(CFLAGS) -c -o libgviewv4l2core_la-v4l2_xu_ctrls.lo `test -f 'v4l2_xu_ctrls.c' || echo '$(srcdir)/'`v4l2_xu_ctrls.c + +libgviewv4l2core_la-uvc_h264.lo: uvc_h264.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgviewv4l2core_la_CFLAGS) $(CFLAGS) -MT libgviewv4l2core_la-uvc_h264.lo -MD -MP -MF $(DEPDIR)/libgviewv4l2core_la-uvc_h264.Tpo -c -o libgviewv4l2core_la-uvc_h264.lo `test -f 'uvc_h264.c' || echo '$(srcdir)/'`uvc_h264.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgviewv4l2core_la-uvc_h264.Tpo $(DEPDIR)/libgviewv4l2core_la-uvc_h264.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='uvc_h264.c' object='libgviewv4l2core_la-uvc_h264.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgviewv4l2core_la_CFLAGS) $(CFLAGS) -c -o libgviewv4l2core_la-uvc_h264.lo `test -f 'uvc_h264.c' || echo '$(srcdir)/'`uvc_h264.c + +libgviewv4l2core_la-core_time.lo: core_time.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgviewv4l2core_la_CFLAGS) $(CFLAGS) -MT libgviewv4l2core_la-core_time.lo -MD -MP -MF $(DEPDIR)/libgviewv4l2core_la-core_time.Tpo -c -o libgviewv4l2core_la-core_time.lo `test -f 'core_time.c' || echo '$(srcdir)/'`core_time.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgviewv4l2core_la-core_time.Tpo $(DEPDIR)/libgviewv4l2core_la-core_time.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='core_time.c' object='libgviewv4l2core_la-core_time.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgviewv4l2core_la_CFLAGS) $(CFLAGS) -c -o libgviewv4l2core_la-core_time.lo `test -f 'core_time.c' || echo '$(srcdir)/'`core_time.c + +libgviewv4l2core_la-frame_decoder.lo: frame_decoder.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgviewv4l2core_la_CFLAGS) $(CFLAGS) -MT libgviewv4l2core_la-frame_decoder.lo -MD -MP -MF $(DEPDIR)/libgviewv4l2core_la-frame_decoder.Tpo -c -o libgviewv4l2core_la-frame_decoder.lo `test -f 'frame_decoder.c' || echo '$(srcdir)/'`frame_decoder.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgviewv4l2core_la-frame_decoder.Tpo $(DEPDIR)/libgviewv4l2core_la-frame_decoder.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='frame_decoder.c' object='libgviewv4l2core_la-frame_decoder.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgviewv4l2core_la_CFLAGS) $(CFLAGS) -c -o libgviewv4l2core_la-frame_decoder.lo `test -f 'frame_decoder.c' || echo '$(srcdir)/'`frame_decoder.c + +libgviewv4l2core_la-colorspaces.lo: colorspaces.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgviewv4l2core_la_CFLAGS) $(CFLAGS) -MT libgviewv4l2core_la-colorspaces.lo -MD -MP -MF $(DEPDIR)/libgviewv4l2core_la-colorspaces.Tpo -c -o libgviewv4l2core_la-colorspaces.lo `test -f 'colorspaces.c' || echo '$(srcdir)/'`colorspaces.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgviewv4l2core_la-colorspaces.Tpo $(DEPDIR)/libgviewv4l2core_la-colorspaces.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='colorspaces.c' object='libgviewv4l2core_la-colorspaces.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgviewv4l2core_la_CFLAGS) $(CFLAGS) -c -o libgviewv4l2core_la-colorspaces.lo `test -f 'colorspaces.c' || echo '$(srcdir)/'`colorspaces.c + +libgviewv4l2core_la-jpeg_decoder.lo: jpeg_decoder.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgviewv4l2core_la_CFLAGS) $(CFLAGS) -MT libgviewv4l2core_la-jpeg_decoder.lo -MD -MP -MF $(DEPDIR)/libgviewv4l2core_la-jpeg_decoder.Tpo -c -o libgviewv4l2core_la-jpeg_decoder.lo `test -f 'jpeg_decoder.c' || echo '$(srcdir)/'`jpeg_decoder.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgviewv4l2core_la-jpeg_decoder.Tpo $(DEPDIR)/libgviewv4l2core_la-jpeg_decoder.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='jpeg_decoder.c' object='libgviewv4l2core_la-jpeg_decoder.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgviewv4l2core_la_CFLAGS) $(CFLAGS) -c -o libgviewv4l2core_la-jpeg_decoder.lo `test -f 'jpeg_decoder.c' || echo '$(srcdir)/'`jpeg_decoder.c + +libgviewv4l2core_la-soft_autofocus.lo: soft_autofocus.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgviewv4l2core_la_CFLAGS) $(CFLAGS) -MT libgviewv4l2core_la-soft_autofocus.lo -MD -MP -MF $(DEPDIR)/libgviewv4l2core_la-soft_autofocus.Tpo -c -o libgviewv4l2core_la-soft_autofocus.lo `test -f 'soft_autofocus.c' || echo '$(srcdir)/'`soft_autofocus.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgviewv4l2core_la-soft_autofocus.Tpo $(DEPDIR)/libgviewv4l2core_la-soft_autofocus.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='soft_autofocus.c' object='libgviewv4l2core_la-soft_autofocus.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgviewv4l2core_la_CFLAGS) $(CFLAGS) -c -o libgviewv4l2core_la-soft_autofocus.lo `test -f 'soft_autofocus.c' || echo '$(srcdir)/'`soft_autofocus.c + +libgviewv4l2core_la-dct.lo: dct.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgviewv4l2core_la_CFLAGS) $(CFLAGS) -MT libgviewv4l2core_la-dct.lo -MD -MP -MF $(DEPDIR)/libgviewv4l2core_la-dct.Tpo -c -o libgviewv4l2core_la-dct.lo `test -f 'dct.c' || echo '$(srcdir)/'`dct.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgviewv4l2core_la-dct.Tpo $(DEPDIR)/libgviewv4l2core_la-dct.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='dct.c' object='libgviewv4l2core_la-dct.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgviewv4l2core_la_CFLAGS) $(CFLAGS) -c -o libgviewv4l2core_la-dct.lo `test -f 'dct.c' || echo '$(srcdir)/'`dct.c + +libgviewv4l2core_la-control_profile.lo: control_profile.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgviewv4l2core_la_CFLAGS) $(CFLAGS) -MT libgviewv4l2core_la-control_profile.lo -MD -MP -MF $(DEPDIR)/libgviewv4l2core_la-control_profile.Tpo -c -o libgviewv4l2core_la-control_profile.lo `test -f 'control_profile.c' || echo '$(srcdir)/'`control_profile.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgviewv4l2core_la-control_profile.Tpo $(DEPDIR)/libgviewv4l2core_la-control_profile.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='control_profile.c' object='libgviewv4l2core_la-control_profile.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgviewv4l2core_la_CFLAGS) $(CFLAGS) -c -o libgviewv4l2core_la-control_profile.lo `test -f 'control_profile.c' || echo '$(srcdir)/'`control_profile.c + +libgviewv4l2core_la-save_image.lo: save_image.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgviewv4l2core_la_CFLAGS) $(CFLAGS) -MT libgviewv4l2core_la-save_image.lo -MD -MP -MF $(DEPDIR)/libgviewv4l2core_la-save_image.Tpo -c -o libgviewv4l2core_la-save_image.lo `test -f 'save_image.c' || echo '$(srcdir)/'`save_image.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgviewv4l2core_la-save_image.Tpo $(DEPDIR)/libgviewv4l2core_la-save_image.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='save_image.c' object='libgviewv4l2core_la-save_image.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgviewv4l2core_la_CFLAGS) $(CFLAGS) -c -o libgviewv4l2core_la-save_image.lo `test -f 'save_image.c' || echo '$(srcdir)/'`save_image.c + +libgviewv4l2core_la-save_image_jpeg.lo: save_image_jpeg.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgviewv4l2core_la_CFLAGS) $(CFLAGS) -MT libgviewv4l2core_la-save_image_jpeg.lo -MD -MP -MF $(DEPDIR)/libgviewv4l2core_la-save_image_jpeg.Tpo -c -o libgviewv4l2core_la-save_image_jpeg.lo `test -f 'save_image_jpeg.c' || echo '$(srcdir)/'`save_image_jpeg.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgviewv4l2core_la-save_image_jpeg.Tpo $(DEPDIR)/libgviewv4l2core_la-save_image_jpeg.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='save_image_jpeg.c' object='libgviewv4l2core_la-save_image_jpeg.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgviewv4l2core_la_CFLAGS) $(CFLAGS) -c -o libgviewv4l2core_la-save_image_jpeg.lo `test -f 'save_image_jpeg.c' || echo '$(srcdir)/'`save_image_jpeg.c + +libgviewv4l2core_la-save_image_bmp.lo: save_image_bmp.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgviewv4l2core_la_CFLAGS) $(CFLAGS) -MT libgviewv4l2core_la-save_image_bmp.lo -MD -MP -MF $(DEPDIR)/libgviewv4l2core_la-save_image_bmp.Tpo -c -o libgviewv4l2core_la-save_image_bmp.lo `test -f 'save_image_bmp.c' || echo '$(srcdir)/'`save_image_bmp.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgviewv4l2core_la-save_image_bmp.Tpo $(DEPDIR)/libgviewv4l2core_la-save_image_bmp.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='save_image_bmp.c' object='libgviewv4l2core_la-save_image_bmp.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgviewv4l2core_la_CFLAGS) $(CFLAGS) -c -o libgviewv4l2core_la-save_image_bmp.lo `test -f 'save_image_bmp.c' || echo '$(srcdir)/'`save_image_bmp.c + +libgviewv4l2core_la-save_image_png.lo: save_image_png.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgviewv4l2core_la_CFLAGS) $(CFLAGS) -MT libgviewv4l2core_la-save_image_png.lo -MD -MP -MF $(DEPDIR)/libgviewv4l2core_la-save_image_png.Tpo -c -o libgviewv4l2core_la-save_image_png.lo `test -f 'save_image_png.c' || echo '$(srcdir)/'`save_image_png.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgviewv4l2core_la-save_image_png.Tpo $(DEPDIR)/libgviewv4l2core_la-save_image_png.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='save_image_png.c' object='libgviewv4l2core_la-save_image_png.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgviewv4l2core_la_CFLAGS) $(CFLAGS) -c -o libgviewv4l2core_la-save_image_png.lo `test -f 'save_image_png.c' || echo '$(srcdir)/'`save_image_png.c + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +install-library_includeHEADERS: $(library_include_HEADERS) + @$(NORMAL_INSTALL) + @list='$(library_include_HEADERS)'; test -n "$(library_includedir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(library_includedir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(library_includedir)" || exit 1; \ + fi; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(library_includedir)'"; \ + $(INSTALL_HEADER) $$files "$(DESTDIR)$(library_includedir)" || exit $$?; \ + done + +uninstall-library_includeHEADERS: + @$(NORMAL_UNINSTALL) + @list='$(library_include_HEADERS)'; test -n "$(library_includedir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(library_includedir)'; $(am__uninstall_files_from_dir) + +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + set x; \ + here=`pwd`; \ + $(am__define_uniq_tagged_files); \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(LTLIBRARIES) $(HEADERS) +installdirs: + for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(library_includedir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \ + mostlyclean-am + +distclean: distclean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: install-library_includeHEADERS + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: install-libLTLIBRARIES + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-libLTLIBRARIES \ + uninstall-library_includeHEADERS + +.MAKE: install-am install-strip + +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libLTLIBRARIES clean-libtool cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-libLTLIBRARIES \ + install-library_includeHEADERS install-man install-pdf \ + install-pdf-am install-ps install-ps-am install-strip \ + installcheck installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags tags-am uninstall uninstall-am uninstall-libLTLIBRARIES \ + uninstall-library_includeHEADERS + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff -Nru guvcview-1.7.3/gview_v4l2core/save_image_bmp.c guvcview-2.0.1+ubuntu1~ppa1/gview_v4l2core/save_image_bmp.c --- guvcview-1.7.3/gview_v4l2core/save_image_bmp.c 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/gview_v4l2core/save_image_bmp.c 2014-10-05 10:41:44.000000000 +0000 @@ -0,0 +1,175 @@ +/*******************************************************************************# +# guvcview http://guvcview.sourceforge.net # +# # +# Paulo Assis # +# # +# This program is free software; you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation; either version 2 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program; if not, write to the Free Software # +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # +# # +********************************************************************************/ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "gviewv4l2core.h" +#include "save_image.h" +#include "colorspaces.h" +#include "../config.h" + +typedef struct _bmp_file_header_t +{ + uint16_t bfType; //Specifies the file type, must be BM + uint32_t bfSize; //Specifies the size, in bytes, of the bitmap file + uint16_t bfReserved1; //Reserved; must be zero + uint16_t bfReserved2; //Reserved; must be zero + uint32_t bfOffBits; /*Specifies the offset, in bytes, + from the beginning of the BITMAPFILEHEADER structure + to the bitmap bits= FileHeader+InfoHeader+RGBQUAD(0 for 24bit BMP)=64*/ +} __attribute__ ((packed)) bmp_file_header_t; + + +typedef struct _bmp_info_header_t +{ + uint32_t biSize; /*size of this header 40 bytes*/ + int32_t biWidth; + int32_t biHeight; + uint16_t biPlanes; /*color planes - set to 1*/ + uint16_t biBitCount; /*bits per pixel - color depth (use 24)*/ + uint32_t biCompression; /*BI_RGB = 0*/ + uint32_t biSizeImage; + uint32_t biXPelsPerMeter; + uint32_t biYPelsPerMeter; + uint32_t biClrUsed; + uint32_t biClrImportant; +} __attribute__ ((packed)) bmp_info_header_t; + + +/* + * save bmp data to file + * args: + * filename - bmp file name + * data - pixel data (rgb form) + * width - image width + * height - image height + * BitCount - bits per pixel + * + * asserts: + * data is not null + * + * returns: error code + */ +static int save_bmp(const char *filename, uint8_t *data, int width, int height, int BitCount) +{ + /*assertions*/ + assert(data != NULL); + + int ret = E_OK; + bmp_file_header_t BmpFileh; + bmp_info_header_t BmpInfoh; + FILE *fp; + + int imgsize = width * height * BitCount / 8; + + BmpFileh.bfType=0x4d42;//must be BM (x4d42) + /*Specifies the size, in bytes, of the bitmap file*/ + BmpFileh.bfSize=sizeof(bmp_file_header_t)+sizeof(bmp_info_header_t)+imgsize; + BmpFileh.bfReserved1=0; //Reserved; must be zero + BmpFileh.bfReserved2=0; //Reserved; must be zero + /*Specifies the offset, in bytes, */ + /*from the beginning of the BITMAPFILEHEADER structure */ + /* to the bitmap bits */ + BmpFileh.bfOffBits=sizeof(bmp_file_header_t)+sizeof(bmp_info_header_t); + + BmpInfoh.biSize=40; + BmpInfoh.biWidth=width; + BmpInfoh.biHeight=height; + BmpInfoh.biPlanes=1; + BmpInfoh.biBitCount=BitCount; + BmpInfoh.biCompression=0; // 0 + BmpInfoh.biSizeImage=imgsize; + BmpInfoh.biXPelsPerMeter=0; + BmpInfoh.biYPelsPerMeter=0; + BmpInfoh.biClrUsed=0; + BmpInfoh.biClrImportant=0; + + if ((fp = fopen(filename, "wb")) != NULL) + { // (wb) write in binary mode + ret=fwrite(&BmpFileh, sizeof(bmp_file_header_t), 1, fp); + ret+=fwrite(&BmpInfoh, sizeof(bmp_info_header_t),1,fp); + ret+=fwrite(data, imgsize, 1, fp); + if (ret < 3) + ret = E_FILE_IO_ERR;//write error + else + ret = E_OK; + + fflush(fp); //flush data stream to file system + if(fsync(fileno(fp)) || fclose(fp)) + { + fprintf(stderr, "V4L2_CORE: (save bmp) couldn't write to file %s: %s\n", + filename, strerror(errno)); + ret = E_FILE_IO_ERR; + } + } + else + { + ret=1; + fprintf(stderr, "V4L2_CORE: (save bmp) could not open file %s for write \n", + filename); + } + return ret; +} + +/* + * save frame data to a bmp file + * args: + * vd - pointer to device data + * filename - filename string + * + * asserts: + * vd is not null + * + * returns: error code + */ +int save_image_bmp(v4l2_dev_t *vd, const char *filename) +{ + /*assertions*/ + assert(vd != NULL); + + int ret = E_OK; + int width = vd->format.fmt.pix.width; + int height = vd->format.fmt.pix.height; + + uint8_t *bmp = calloc(width * height * 3, sizeof(uint8_t)); + if(bmp == NULL) + { + fprintf(stderr, "V4L2_CORE: FATAL memory allocation failure (save_img_bmp): %s\n", strerror(errno)); + exit(-1); + } +#ifdef USE_PLANAR_YUV + yu12_to_dib24(bmp, vd->yuv_frame, width, height); +#else + yuyv2bgr(vd->yuv_frame, bmp, width, height); +#endif + ret = save_bmp(filename, bmp, width, height, 24); + free(bmp); + + return ret; +} diff -Nru guvcview-1.7.3/gview_v4l2core/save_image.c guvcview-2.0.1+ubuntu1~ppa1/gview_v4l2core/save_image.c --- guvcview-1.7.3/gview_v4l2core/save_image.c 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/gview_v4l2core/save_image.c 2014-10-05 10:41:44.000000000 +0000 @@ -0,0 +1,125 @@ +/*******************************************************************************# +# guvcview http://guvcview.sourceforge.net # +# # +# Paulo Assis # +# # +# This program is free software; you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation; either version 2 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program; if not, write to the Free Software # +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # +# # +********************************************************************************/ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "gviewv4l2core.h" +#include "save_image.h" +#include "colorspaces.h" + +extern int verbosity; +/* + * save data to file + * args: + * filename - string with filename + * data - pointer to data + * size - data size in bytes = sizeof(uint8_t) + * + * asserts: + * none + * + * returns: error code + */ +int v4l2core_save_data_to_file(const char *filename, uint8_t *data, int size) +{ + FILE *fp; + int ret = 0; + + if ((fp = fopen(filename, "wb")) !=NULL) + { + ret = fwrite(data, size, 1, fp); + + if (ret<1) ret=1;/*write error*/ + else ret=0; + + fflush(fp); /*flush data stream to file system*/ + if(fsync(fileno(fp)) || fclose(fp)) + fprintf(stderr, "V4L2_CORE: (save_data_to_file) error - couldn't write buffer to file: %s\n", strerror(errno)); + else if(verbosity > 0) + printf("V4L2_CORE: saved data to %s\n", filename); + } + else ret = 1; + + return (ret); +} + +/* + * save the current frame to file + * args: + * vd - pointer to device data + * filename - output file name + * format - image type + * (IMG_FMT_RAW, IMG_FMT_JPG, IMG_FMT_PNG, IMG_FMT_BMP) + * + * asserts: + * vd is not null + * + * returns: error code + */ +int v4l2core_save_image(v4l2_dev_t *vd, const char *filename, int format) +{ + /*assertions*/ + assert(vd != NULL); + + int ret= E_OK; + + switch(format) + { + case IMG_FMT_RAW: + if(verbosity > 0) + printf("V4L2_CORE: saving raw data to %s\n", filename); + ret = v4l2core_save_data_to_file(filename, vd->raw_frame, vd->raw_frame_size); + break; + + case IMG_FMT_JPG: + if(verbosity > 0) + printf("V4L2_CORE: saving jpeg frame to %s\n", filename); + ret = save_image_jpeg(vd, filename); + break; + + case IMG_FMT_BMP: + if(verbosity > 0) + printf("V4L2_CORE: saving bmp frame to %s\n", filename); + ret = save_image_bmp(vd, filename); + break; + + case IMG_FMT_PNG: + if(verbosity > 0) + printf("V4L2_CORE: saving png frame to %s\n", filename); + ret = save_image_png(vd, filename); + break; + + default: + fprintf(stderr, "V4L2_CORE: (save_image) Image format %i not supported\n", format); + ret = E_FORMAT_ERR; + break; + } + + return ret; +} \ No newline at end of file diff -Nru guvcview-1.7.3/gview_v4l2core/save_image.h guvcview-2.0.1+ubuntu1~ppa1/gview_v4l2core/save_image.h --- guvcview-1.7.3/gview_v4l2core/save_image.h 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/gview_v4l2core/save_image.h 2014-10-05 10:41:44.000000000 +0000 @@ -0,0 +1,68 @@ +/*******************************************************************************# +# guvcview http://guvcview.sourceforge.net # +# # +# Paulo Assis # +# Nobuhiro Iwamatsu # +# Add UYVY color support(Macbook iSight) # +# # +# This program is free software; you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation; either version 2 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program; if not, write to the Free Software # +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # +# # +********************************************************************************/ + +#ifndef SAVE_IMAGE_H +#define SAVE_IMAGE_H + +#include "gviewv4l2core.h" + +/* + * save frame data to a jpeg file + * args: + * vd - pointer to device data + * filename - filename string + * + * asserts: + * vd is not null + * + * returns: error code + */ +int save_image_jpeg(v4l2_dev_t *vd, const char *filename); + +/* + * save frame data to a bmp file + * args: + * vd - pointer to device data + * filename - filename string + * + * asserts: + * vd is not null + * + * returns: error code + */ +int save_image_bmp(v4l2_dev_t *vd, const char *filename); + +/* + * save frame data into a png file + * args: + * vd - pointer to device data + * filename - string with png filename name + * + * asserts: + * vd is not null + * + * returns: error code + */ +int save_image_png(v4l2_dev_t *vd, const char *filename); + +#endif \ No newline at end of file diff -Nru guvcview-1.7.3/gview_v4l2core/save_image_jpeg.c guvcview-2.0.1+ubuntu1~ppa1/gview_v4l2core/save_image_jpeg.c --- guvcview-1.7.3/gview_v4l2core/save_image_jpeg.c 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/gview_v4l2core/save_image_jpeg.c 2014-10-05 10:41:44.000000000 +0000 @@ -0,0 +1,1081 @@ +/*******************************************************************************# +# guvcview http://guvcview.sourceforge.net # +# # +# Paulo Assis # +# # +# This program is free software; you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation; either version 2 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program; if not, write to the Free Software # +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # +# # +********************************************************************************/ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "gviewv4l2core.h" +#include "save_image.h" +#include "colorspaces.h" +#include "dct.h" +#include "../config.h" + +/*huffman table from jpeg decoder*/ +#define JPG_HUFFMAN_TABLE_LENGTH 0x01A0 +extern const uint8_t jpeg_huffman_table[JPG_HUFFMAN_TABLE_LENGTH]; + +typedef struct _jpeg_file_header_t +{ + uint8_t SOI[2];/*SOI Marker 0xFFD8*/ + uint8_t APP0[2];/*APP0 MARKER 0xFF0E*/ + uint8_t length[2];/*length of header without APP0 in bytes*/ + uint8_t JFIF[5];/*set to JFIF0 0x4A46494600*/ + uint8_t VERS[2];/*1-2 0x0102*/ + /* + * density: + * 0 - No units, aspect ratio only specified + * 1 - Pixels per Inch on quickcam5000pro + * 2 - Pixels per Centimetre + */ + uint8_t density; + uint8_t xdensity[2];/*120 on quickcam5000pro*/ + uint8_t ydensity[2];/*120 on quickcam5000pro*/ + uint8_t WTN;/*width Thumbnail 0*/ + uint8_t HTN;/*height Thumbnail 0*/ +} __attribute__ ((packed)) jpeg_file_header_t; + +typedef struct _jpeg_encoder_ctx_t +{ + uint16_t image_width; + uint16_t image_height; + uint16_t mcu_width; + uint16_t mcu_height; + uint16_t horizontal_mcus; + uint16_t vertical_mcus; + + uint16_t rows; + uint16_t cols; + + uint16_t length_minus_mcu_width; + uint16_t length_minus_width; + uint16_t incr; + uint16_t mcu_width_size; + uint16_t offset; + + int16_t ldc1; + int16_t ldc2; + int16_t ldc3; + + uint32_t lcode; + uint16_t bitindex; + + /* MCUs */ + int16_t Y1 [64]; + int16_t Y2 [64]; + int16_t Temp [64]; + int16_t CB [64]; + int16_t CR [64]; + + /* Quantization Tables */ + uint8_t Lqt [64]; + uint8_t Cqt [64]; + uint16_t ILqt [64]; + uint16_t ICqt [64]; + +} jpeg_encoder_ctx_t; + +#define PUTBITS \ +{ \ + bits_in_next_word = (int16_t) (jpeg_ctx->bitindex + numbits - 32); \ + if (bits_in_next_word < 0) \ + { \ + jpeg_ctx->lcode = (jpeg_ctx->lcode << numbits) | data; \ + jpeg_ctx->bitindex += numbits; \ + } \ + else \ + { \ + jpeg_ctx->lcode = (jpeg_ctx->lcode << (32 - jpeg_ctx->bitindex)) | (data >> bits_in_next_word); \ + if ((*output++ = (uint8_t)(jpeg_ctx->lcode >> 24)) == 0xff) \ + *output++ = 0; \ + if ((*output++ = (uint8_t)(jpeg_ctx->lcode >> 16)) == 0xff) \ + *output++ = 0; \ + if ((*output++ = (uint8_t)(jpeg_ctx->lcode >> 8)) == 0xff) \ + *output++ = 0; \ + if ((*output++ = (uint8_t) jpeg_ctx->lcode) == 0xff) \ + *output++ = 0; \ + jpeg_ctx->lcode = data; \ + jpeg_ctx->bitindex = bits_in_next_word; \ + } \ +} + +/* + * Encoder Tables + */ + +static uint16_t luminance_dc_code_table[12] = +{ + 0x0000, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, + 0x000E, 0x001E, 0x003E, 0x007E, 0x00FE, 0x01FE +}; + +static uint16_t luminance_dc_size_table [12] = +{ + 0x0002, 0x0003, 0x0003, 0x0003, 0x0003, 0x0003, + 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009 +}; + +static uint16_t chrominance_dc_code_table [12] = +{ + 0x0000, 0x0001, 0x0002, 0x0006, 0x000E, 0x001E, + 0x003E, 0x007E, 0x00FE, 0x01FE, 0x03FE, 0x07FE +}; + +static uint16_t chrominance_dc_size_table [12] = +{ + 0x0002, 0x0002, 0x0002, 0x0003, 0x0004, 0x0005, + 0x0006, 0x0007, 0x0008, 0x0009, 0x000A, 0x000B +}; + +static uint16_t luminance_ac_code_table [162] = +{ + 0x000A, + 0x0000, 0x0001, 0x0004, 0x000B, 0x001A, 0x0078, 0x00F8, 0x03F6, 0xFF82, 0xFF83, + 0x000C, 0x001B, 0x0079, 0x01F6, 0x07F6, 0xFF84, 0xFF85, 0xFF86, 0xFF87, 0xFF88, + 0x001C, 0x00F9, 0x03F7, 0x0FF4, 0xFF89, 0xFF8A, 0xFF8b, 0xFF8C, 0xFF8D, 0xFF8E, + 0x003A, 0x01F7, 0x0FF5, 0xFF8F, 0xFF90, 0xFF91, 0xFF92, 0xFF93, 0xFF94, 0xFF95, + 0x003B, 0x03F8, 0xFF96, 0xFF97, 0xFF98, 0xFF99, 0xFF9A, 0xFF9B, 0xFF9C, 0xFF9D, + 0x007A, 0x07F7, 0xFF9E, 0xFF9F, 0xFFA0, 0xFFA1, 0xFFA2, 0xFFA3, 0xFFA4, 0xFFA5, + 0x007B, 0x0FF6, 0xFFA6, 0xFFA7, 0xFFA8, 0xFFA9, 0xFFAA, 0xFFAB, 0xFFAC, 0xFFAD, + 0x00FA, 0x0FF7, 0xFFAE, 0xFFAF, 0xFFB0, 0xFFB1, 0xFFB2, 0xFFB3, 0xFFB4, 0xFFB5, + 0x01F8, 0x7FC0, 0xFFB6, 0xFFB7, 0xFFB8, 0xFFB9, 0xFFBA, 0xFFBB, 0xFFBC, 0xFFBD, + 0x01F9, 0xFFBE, 0xFFBF, 0xFFC0, 0xFFC1, 0xFFC2, 0xFFC3, 0xFFC4, 0xFFC5, 0xFFC6, + 0x01FA, 0xFFC7, 0xFFC8, 0xFFC9, 0xFFCA, 0xFFCB, 0xFFCC, 0xFFCD, 0xFFCE, 0xFFCF, + 0x03F9, 0xFFD0, 0xFFD1, 0xFFD2, 0xFFD3, 0xFFD4, 0xFFD5, 0xFFD6, 0xFFD7, 0xFFD8, + 0x03FA, 0xFFD9, 0xFFDA, 0xFFDB, 0xFFDC, 0xFFDD, 0xFFDE, 0xFFDF, 0xFFE0, 0xFFE1, + 0x07F8, 0xFFE2, 0xFFE3, 0xFFE4, 0xFFE5, 0xFFE6, 0xFFE7, 0xFFE8, 0xFFE9, 0xFFEA, + 0xFFEB, 0xFFEC, 0xFFED, 0xFFEE, 0xFFEF, 0xFFF0, 0xFFF1, 0xFFF2, 0xFFF3, 0xFFF4, + 0xFFF5, 0xFFF6, 0xFFF7, 0xFFF8, 0xFFF9, 0xFFFA, 0xFFFB, 0xFFFC, 0xFFFD, 0xFFFE, + 0x07F9 +}; + +static uint16_t luminance_ac_size_table [162] = +{ + 0x0004, + 0x0002, 0x0002, 0x0003, 0x0004, 0x0005, 0x0007, 0x0008, 0x000A, 0x0010, 0x0010, + 0x0004, 0x0005, 0x0007, 0x0009, 0x000B, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, + 0x0005, 0x0008, 0x000A, 0x000C, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, + 0x0006, 0x0009, 0x000C, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, + 0x0006, 0x000A, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, + 0x0007, 0x000B, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, + 0x0007, 0x000C, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, + 0x0008, 0x000C, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, + 0x0009, 0x000F, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, + 0x0009, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, + 0x0009, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, + 0x000A, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, + 0x000A, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, + 0x000B, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, + 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, + 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, + 0x000B +}; + +static uint16_t chrominance_ac_code_table [162] = +{ + 0x0000, + 0x0001, 0x0004, 0x000A, 0x0018, 0x0019, 0x0038, 0x0078, 0x01F4, 0x03F6, 0x0FF4, + 0x000B, 0x0039, 0x00F6, 0x01F5, 0x07F6, 0x0FF5, 0xFF88, 0xFF89, 0xFF8A, 0xFF8B, + 0x001A, 0x00F7, 0x03F7, 0x0FF6, 0x7FC2, 0xFF8C, 0xFF8D, 0xFF8E, 0xFF8F, 0xFF90, + 0x001B, 0x00F8, 0x03F8, 0x0FF7, 0xFF91, 0xFF92, 0xFF93, 0xFF94, 0xFF95, 0xFF96, + 0x003A, 0x01F6, 0xFF97, 0xFF98, 0xFF99, 0xFF9A, 0xFF9B, 0xFF9C, 0xFF9D, 0xFF9E, + 0x003B, 0x03F9, 0xFF9F, 0xFFA0, 0xFFA1, 0xFFA2, 0xFFA3, 0xFFA4, 0xFFA5, 0xFFA6, + 0x0079, 0x07F7, 0xFFA7, 0xFFA8, 0xFFA9, 0xFFAA, 0xFFAB, 0xFFAC, 0xFFAD, 0xFFAE, + 0x007A, 0x07F8, 0xFFAF, 0xFFB0, 0xFFB1, 0xFFB2, 0xFFB3, 0xFFB4, 0xFFB5, 0xFFB6, + 0x00F9, 0xFFB7, 0xFFB8, 0xFFB9, 0xFFBA, 0xFFBB, 0xFFBC, 0xFFBD, 0xFFBE, 0xFFBF, + 0x01F7, 0xFFC0, 0xFFC1, 0xFFC2, 0xFFC3, 0xFFC4, 0xFFC5, 0xFFC6, 0xFFC7, 0xFFC8, + 0x01F8, 0xFFC9, 0xFFCA, 0xFFCB, 0xFFCC, 0xFFCD, 0xFFCE, 0xFFCF, 0xFFD0, 0xFFD1, + 0x01F9, 0xFFD2, 0xFFD3, 0xFFD4, 0xFFD5, 0xFFD6, 0xFFD7, 0xFFD8, 0xFFD9, 0xFFDA, + 0x01FA, 0xFFDB, 0xFFDC, 0xFFDD, 0xFFDE, 0xFFDF, 0xFFE0, 0xFFE1, 0xFFE2, 0xFFE3, + 0x07F9, 0xFFE4, 0xFFE5, 0xFFE6, 0xFFE7, 0xFFE8, 0xFFE9, 0xFFEA, 0xFFEb, 0xFFEC, + 0x3FE0, 0xFFED, 0xFFEE, 0xFFEF, 0xFFF0, 0xFFF1, 0xFFF2, 0xFFF3, 0xFFF4, 0xFFF5, + 0x7FC3, 0xFFF6, 0xFFF7, 0xFFF8, 0xFFF9, 0xFFFA, 0xFFFB, 0xFFFC, 0xFFFD, 0xFFFE, + 0x03FA +}; + +static uint16_t chrominance_ac_size_table [162] = +{ + 0x0002, + 0x0002, 0x0003, 0x0004, 0x0005, 0x0005, 0x0006, 0x0007, 0x0009, 0x000A, 0x000C, + 0x0004, 0x0006, 0x0008, 0x0009, 0x000B, 0x000C, 0x0010, 0x0010, 0x0010, 0x0010, + 0x0005, 0x0008, 0x000A, 0x000C, 0x000F, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, + 0x0005, 0x0008, 0x000A, 0x000C, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, + 0x0006, 0x0009, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, + 0x0006, 0x000A, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, + 0x0007, 0x000B, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, + 0x0007, 0x000B, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, + 0x0008, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, + 0x0009, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, + 0x0009, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, + 0x0009, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, + 0x0009, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, + 0x000B, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, + 0x000E, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, + 0x000F, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, + 0x000A +}; + +static uint8_t bitsize [256] =/* bit size from 0 to 255 */ +{ + 0, 1, 2, 2, 3, 3, 3, 3, + 4, 4, 4, 4, 4, 4, 4, 4, + 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, + 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, + 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, + 8, 8, 8, 8, 8, 8, 8, 8, + 8, 8, 8, 8, 8, 8, 8, 8, + 8, 8, 8, 8, 8, 8, 8, 8, + 8, 8, 8, 8, 8, 8, 8, 8, + 8, 8, 8, 8, 8, 8, 8, 8, + 8, 8, 8, 8, 8, 8, 8, 8, + 8, 8, 8, 8, 8, 8, 8, 8, + 8, 8, 8, 8, 8, 8, 8, 8, + 8, 8, 8, 8, 8, 8, 8, 8, + 8, 8, 8, 8, 8, 8, 8, 8, + 8, 8, 8, 8, 8, 8, 8, 8, + 8, 8, 8, 8, 8, 8, 8, 8, + 8, 8, 8, 8, 8, 8, 8, 8, + 8, 8, 8, 8, 8, 8, 8, 8, + 8, 8, 8, 8, 8, 8, 8, 8, + 8, 8, 8, 8, 8, 8, 8, 8 +}; + +static uint8_t zigzag_table [] = +{ + 0, 1, 5, 6, 14, 15, 27, 28, + 2, 4, 7, 13, 16, 26, 29, 42, + 3, 8, 12, 17, 25, 30, 41, 43, + 9, 11, 18, 24, 31, 40, 44, 53, + 10, 19, 23, 32, 39, 45, 52, 54, + 20, 22, 33, 38, 46, 51, 55, 60, + 21, 34, 37, 47, 50, 56, 59, 61, + 35, 36, 48, 49, 57, 58, 62, 63 +}; + +/* quickcam 5000pro tables (very good quality) */ +static uint8_t luminance_quant_table [] = +{ + 0x04, 0x02, 0x03, 0x03, 0x03, 0x02, 0x04, 0x03, + 0x03, 0x03, 0x04, 0x04, 0x04, 0x04, 0x06, 0x0a, + 0x06, 0x06, 0x05, 0x05, 0x06, 0x0c, 0x08, 0x09, + 0x07, 0x0a, 0x0e, 0x0c, 0x0f, 0x0f, 0x0e, 0x0c, + 0x0e, 0x0f, 0x10, 0x12, 0x17, 0x13, 0x10, 0x11, + 0x15, 0x11, 0x0d, 0x0e, 0x14, 0x1a, 0x14, 0x15, + 0x17, 0x18, 0x19, 0x1a, 0x19, 0x0f, 0x13, 0x1c, + 0x1e, 0x1c, 0x19, 0x1e, 0x17, 0x19, 0x19, 0x18 +}; + +static uint8_t chrominance_quant_table [] = +{ + 0x04, 0x04, 0x04, 0x06, 0x05, 0x06, 0x0b, 0x06, + 0x06, 0x0b, 0x18, 0x10, 0x0e, 0x10, 0x18, 0x18, + 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, + 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, + 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, + 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, + 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, + 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18 +}; + +/* + * ####### Encoder functions ####### + */ + +/* + * This function implements 16 Step division for Q.15 format data + * args: + * numer - numerator + * denom - denominator + * + * asserts: + * none + * + * returns: division result + */ +static uint16_t DSP_Division (uint32_t numer, uint32_t denom) +{ + uint16_t i; + + denom <<= 15; + + for (i=16; i>0; i--) + { + if (numer > denom) + { + numer -= denom; + numer <<= 1; + numer++; + } + else numer <<= 1; + } + + return (uint16_t) numer; +} + +/* + * split yuyv data into YCBr planes + * and fill matching encoder context fields + * args: + * jpeg_ctx - pointer to jpeg encoder context + * input - pointer to input data + * + * asserts: + * jpeg_ctx is not null + * input is not null + * + * returns: none + */ +static void read_422_format (jpeg_encoder_ctx_t *jpeg_ctx, uint8_t *input) +{ + /*assertions*/ + assert(jpeg_ctx != NULL); + assert(input != NULL); + + int32_t i, j; + + int16_t *Y1 = jpeg_ctx->Y1; /*64 int16 block*/ + int16_t *Y2 = jpeg_ctx->Y2; + int16_t *CB = jpeg_ctx->CB; + int16_t *CR = jpeg_ctx->CR; + + uint16_t incr = jpeg_ctx->incr; + + uint8_t *tmp = NULL; + tmp = input; + + for (i=8; i>0; i--) /*8 rows*/ + { + for (j=4; j>0; j--) /* 8 cols*/ + { + *Y1++ = *tmp++; + *CB++ = *tmp++; + *Y1++ = *tmp++; + *CR++ = *tmp++; + } + + for (j=4; j>0; j--) /* 8 cols*/ + { + *Y2++ = *tmp++; + *CB++ = *tmp++; + *Y2++ = *tmp++; + *CR++ = *tmp++; + } + + tmp += incr; /* next row (width - mcu_width)*/ + } +} + +/* Multiply Quantization table with quality factor to get LQT and CQT +/* (Will use constant Quantization tables to make it faster) + * args: + * jpeg_ctx - pointer to jpeg encoder context + * + * asserts: + * jpeg_ctx is not null + * + * returns: none + */ +static void initialize_quantization_tables (jpeg_encoder_ctx_t *jpeg_ctx) +{ + /*assertions*/ + assert(jpeg_ctx != NULL); + + uint16_t i, index; + uint32_t value; + + for (i = 0; i < 64; i++) + { + index = zigzag_table [i]; + + value= luminance_quant_table [i]; + + jpeg_ctx->Lqt [index] = (uint8_t) value; + jpeg_ctx->ILqt [i] = DSP_Division (0x8000, value); + + + value = chrominance_quant_table [i]; + + jpeg_ctx->Cqt[index] = (uint8_t) value; + jpeg_ctx->ICqt [i] = DSP_Division (0x8000, value); + } +} + +/* + * multiply DCT Coefficients with Quantization table + * and store in ZigZag location + * args: + * jpeg_ctx - pointer to jpeg encoder context + * data - pointer to data for quantization (from DCT) + * quant_table_ptr - pointer to quantization table + * + * asserts: + * jpeg_ctx is not null + * data is not null + * quant_table_ptr is not null + * + * returns: none + */ +static void quantization (jpeg_encoder_ctx_t *jpeg_ctx, int16_t * const data, uint16_t * const quant_table_ptr) +{ + /*assertions*/ + assert(jpeg_ctx != NULL); + assert(data != NULL); + assert(quant_table_ptr != NULL); + + int16_t i; + int32_t value; + + for (i=63; i>=0; i--) + { + value = data [i] * quant_table_ptr [i]; + value = (value + 0x4000) >> 15; + + jpeg_ctx->Temp [zigzag_table [i]] = (int16_t) value; + } +} + +/* + * add/code huffman table + * args: + * jpeg_ctx - pointer to jpeg encoder context + * component - image component + * output - pointer to output buffer + * + * asserts: + * jpeg_ctx is not null + * output is not null + * + * returns: pointer to output buffer + */ +static uint8_t *huffman (jpeg_encoder_ctx_t *jpeg_ctx, uint16_t component, uint8_t *output) +{ + /*assertions*/ + assert(jpeg_ctx != NULL); + assert(output != NULL); + + uint16_t i; + uint16_t *DcCodeTable, *DcSizeTable, *AcCodeTable, *AcSizeTable; + + int16_t *Temp_Ptr, Coeff, LastDc; + uint16_t AbsCoeff, HuffCode, HuffSize, RunLength=0, DataSize=0, index; + + int16_t bits_in_next_word; + uint16_t numbits; + uint32_t data; + + Temp_Ptr = jpeg_ctx->Temp; + Coeff = *Temp_Ptr++;/* Coeff = DC */ + + /* code DC - Temp[0] */ + if (component == 1)/* luminance - Y */ + { + DcCodeTable = luminance_dc_code_table; + DcSizeTable = luminance_dc_size_table; + AcCodeTable = luminance_ac_code_table; + AcSizeTable = luminance_ac_size_table; + + LastDc = jpeg_ctx->ldc1; + jpeg_ctx->ldc1 = Coeff; + } + else /* Chrominance - U V */ + { + DcCodeTable = chrominance_dc_code_table; + DcSizeTable = chrominance_dc_size_table; + AcCodeTable = chrominance_ac_code_table; + AcSizeTable = chrominance_ac_size_table; + + if (component == 2) /* Chrominance - U */ + { + LastDc = jpeg_ctx->ldc2; + jpeg_ctx->ldc2 = Coeff; + } + else/* Chrominance - V */ + { + LastDc = jpeg_ctx->ldc3; + jpeg_ctx->ldc3 = Coeff; + } + } + + Coeff = Coeff - LastDc; /* DC - LastDC */ + + AbsCoeff = (Coeff < 0) ? -(Coeff--) : Coeff; + + /*calculate data size*/ + while (AbsCoeff != 0) + { + AbsCoeff >>= 1; + DataSize++; + } + + HuffCode = DcCodeTable [DataSize]; + HuffSize = DcSizeTable [DataSize]; + + Coeff &= (1 << DataSize) - 1; + data = (HuffCode << DataSize) | Coeff; + numbits = HuffSize + DataSize; + + PUTBITS + + /* code AC */ + for (i=63; i>0; i--) + { + + if ((Coeff = *Temp_Ptr++) != 0) + { + while (RunLength > 15) + { + RunLength -= 16; + data = AcCodeTable [161]; /* ZRL 0xF0 ( 16 - 0) */ + numbits = AcSizeTable [161];/* ZRL */ + PUTBITS + } + + AbsCoeff = (Coeff < 0) ? -(Coeff--) : Coeff; + + if (AbsCoeff >> 8 == 0) /* Size <= 8 bits */ + DataSize = bitsize [AbsCoeff]; + else /* 16 => Size => 8 */ + DataSize = bitsize [AbsCoeff >> 8] + 8; + + index = RunLength * 10 + DataSize; + + + HuffCode = AcCodeTable [index]; + HuffSize = AcSizeTable [index]; + + Coeff &= (1 << DataSize) - 1; + data = (HuffCode << DataSize) | Coeff; + numbits = HuffSize + DataSize; + + PUTBITS + RunLength = 0; + } + else + RunLength++;/* Add while Zero */ + } + + if (RunLength != 0) + { + data = AcCodeTable [0]; /* EOB - 0x00 end of block */ + numbits = AcSizeTable [0];/* EOB */ + PUTBITS + } + return output; +} + +/* + * For bit Stuffing and EOI marker + * args: + * jpeg_ctx - pointer to jpeg encoder context + * output - pointer to output buffer + * + * asserts: + * jpeg_ctx is not null + * output is not null + * + * returns: pointer to output buffer + */ +static uint8_t *close_bitstream (jpeg_encoder_ctx_t *jpeg_ctx, uint8_t *output) +{ + /*assertions*/ + assert(jpeg_ctx != NULL); + assert(output != NULL); + + if (jpeg_ctx->bitindex > 0) + { + jpeg_ctx->lcode <<= (32 - jpeg_ctx->bitindex); + uint16_t count = (jpeg_ctx->bitindex + 7) >> 3; + uint16_t i = 0; + + uint8_t *ptr = (uint8_t *) &jpeg_ctx->lcode + 3; + + for (i=count; i>0; i--) + { + if ((*output++ = *ptr--) == 0xff) + *output++ = 0; + } + } + + /* End of image marker (EOI) */ + *output++ = 0xFF; + *output++ = 0xD9; + return output; +} + +/* + * init jpeg encoder context + * args: + * jpeg_ctx - pointer to jpeg encoder context + * image_width - image width (in pixels) + * image_height - image height (in pixels) + * + * asserts: + * jpeg_ctx is not null + * + * returns: none + */ +static void initialization (jpeg_encoder_ctx_t *jpeg_ctx, int image_width, int image_height) +{ + /*assertions*/ + assert(jpeg_ctx != NULL); + + uint16_t mcu_width, mcu_height, bytes_per_pixel; + + jpeg_ctx->image_width = image_width; + jpeg_ctx->image_height = image_height; + + jpeg_ctx->mcu_width = mcu_width = 16; + jpeg_ctx->horizontal_mcus = (uint16_t) (image_width >> 4);/* width/16 */ + + jpeg_ctx->mcu_height = mcu_height = 8; + jpeg_ctx->vertical_mcus = (uint16_t) (image_height >> 3); /* height/8 */ + + bytes_per_pixel = 2; + + jpeg_ctx->length_minus_mcu_width = (uint16_t) ((image_width - mcu_width) * bytes_per_pixel); + jpeg_ctx->length_minus_width = (uint16_t) (image_width * bytes_per_pixel); + + jpeg_ctx->mcu_width_size = (uint16_t) (mcu_width * bytes_per_pixel); + + jpeg_ctx->rows = jpeg_ctx->mcu_height; + jpeg_ctx->cols = jpeg_ctx->mcu_width; + jpeg_ctx->incr = jpeg_ctx->length_minus_mcu_width; + jpeg_ctx->offset = (uint16_t) ((image_width * mcu_height) * bytes_per_pixel); + + jpeg_ctx->ldc1 = 0; + jpeg_ctx->ldc2 = 0; + jpeg_ctx->ldc3 = 0; + + jpeg_ctx->lcode = 0; + jpeg_ctx->bitindex = 0; +} + +/* + * restart jpeg encoder context + * args: + * jpeg_ctx - pointer to jpeg encoder context + * + * asserts: + * jpeg_ctx is not null + * + * returns: none + */ +static void jpeg_restart (jpeg_encoder_ctx_t *jpeg_ctx) +{ + /*assertions*/ + assert(jpeg_ctx != NULL); + + jpeg_ctx->ldc1 = 0; + jpeg_ctx->ldc2 = 0; + jpeg_ctx->ldc3 = 0; + + jpeg_ctx->lcode = 0; + jpeg_ctx->bitindex = 0; +} + +/* + * encode single MCU + * args: + * jpeg_ctx - pointer to jpeg encoder context + * output - pointer to output buffer + * + * asserts: + * jpeg_ctx is not null + * output is not null + * + * returns: pointer to ouptut buffer + */ +static uint8_t* encode_MCU (jpeg_encoder_ctx_t *jpeg_ctx, uint8_t *output) +{ + /*assertions*/ + assert(jpeg_ctx != NULL); + assert(output != NULL); + + levelshift (jpeg_ctx->Y1); + DCT (jpeg_ctx->Y1); + + quantization (jpeg_ctx, jpeg_ctx->Y1, jpeg_ctx->ILqt); + + output = huffman (jpeg_ctx, 1, output); + + levelshift (jpeg_ctx->Y2); + DCT (jpeg_ctx->Y2); + + quantization (jpeg_ctx, jpeg_ctx->Y2, + jpeg_ctx->ILqt); + + output = huffman (jpeg_ctx, 1, output); + + levelshift (jpeg_ctx->CB); + DCT (jpeg_ctx->CB); + + quantization (jpeg_ctx, jpeg_ctx->CB, + jpeg_ctx->ICqt); + + output = huffman (jpeg_ctx, 2, output); + + levelshift (jpeg_ctx->CR); + DCT (jpeg_ctx->CR); + + quantization (jpeg_ctx, jpeg_ctx->CR, + jpeg_ctx->ICqt); + + output = huffman (jpeg_ctx, 3, output); + + return output; +} + +/* + * Header markers for JPEG Encoder + * args: + * jpeg_ctx - pointer to jpeg encoder context + * output - pointer to output buffer + * + * asserts + * jpeg_ctx is not null + * ouput is not null + * + * returns: pointer to output buffer + */ +static uint8_t *write_markers(jpeg_encoder_ctx_t *jpeg_ctx, uint8_t *output, int huff) +{ + /*assertions*/ + assert(jpeg_ctx != NULL); + assert(output != NULL); + + uint16_t i, header_length; + uint8_t number_of_components; + + // Start of image marker + *output++ = 0xFF; + *output++ = 0xD8; + //added from here + // Start of APP0 marker + *output++ = 0xFF; + *output++ = 0xE0; + //header length + *output++= 0x00; + *output++= 0x10;//16 bytes + + //type + if(huff) + { //JFIF0 0x4A46494600 + *output++= 0x4A; + *output++= 0x46; + *output++= 0x49; + *output++= 0x46; + *output++= 0x00; + } + else + { // AVI10 0x4156493100 + *output++= 0x41; + *output++= 0x56; + *output++= 0x49; + *output++= 0x31; + *output++= 0x00; + } + // version + *output++= 0x01; + *output++= 0x02; + // density 0- no units 1- pix per inch 2- pix per mm + *output++= 0x01; + // xdensity - 120 + *output++= 0x00; + *output++= 0x78; + // ydensity - 120 + *output++= 0x00; + *output++= 0x78; + + //thumb x y + *output++= 0x00; + *output++= 0x00; + //to here + + // Quantization table marker + *output++ = 0xFF; + *output++ = 0xDB; + + // Quantization table length + *output++ = 0x00; + *output++ = 0x43; + + // Pq, Tq + *output++ = 0x00; + + // Lqt table + for (i=0; i<64; i++) + *output++ = jpeg_ctx->Lqt [i]; + + // Quantization table marker + *output++ = 0xFF; + *output++ = 0xDB; + + // Quantization table length + *output++ = 0x00; + *output++ = 0x43; + + // Pq, Tq + *output++ = 0x01; + + // Cqt table + for (i=0; i<64; i++) + *output++ = jpeg_ctx->Cqt [i]; + + if (huff) + { + // huffman table(DHT) + + *output++=0xff; + *output++=0xc4; + *output++=0x01; + *output++=0xa2; + memmove(output, &jpeg_huffman_table, JPG_HUFFMAN_TABLE_LENGTH);/*0x01a0*/ + output+=JPG_HUFFMAN_TABLE_LENGTH; + + } + + number_of_components = 3; + + // Frame header(SOF) + + // Start of frame marker + *output++ = 0xFF; + *output++ = 0xC0; + + header_length = (uint16_t) (8 + 3 * number_of_components); + + // Frame header length + *output++ = (uint8_t) (header_length >> 8); + *output++ = (uint8_t) header_length; + + // Precision (P) + *output++ = 0x08;/*8 bits*/ + + // image height + *output++ = (uint8_t) (jpeg_ctx->image_height >> 8); + *output++ = (uint8_t) jpeg_ctx->image_height; + + // image width + *output++ = (uint8_t) (jpeg_ctx->image_width >> 8); + *output++ = (uint8_t) jpeg_ctx->image_width; + + // Nf + *output++ = number_of_components; + + /* type 422 */ + *output++ = 0x01; /*id (y)*/ + *output++ = 0x21; /*horiz|vertical */ + *output++ = 0x00; /*quantization table used*/ + + *output++ = 0x02; /*id (u)*/ + *output++ = 0x11; /*horiz|vertical*/ + *output++ = 0x01; /*quantization table used*/ + + *output++ = 0x03; /*id (v)*/ + *output++ = 0x11; /*horiz|vertical*/ + *output++ = 0x01; /*quantization table used*/ + + + // Scan header(SOF) + + // Start of scan marker + *output++ = 0xFF; + *output++ = 0xDA; + + header_length = (uint16_t) (6 + (number_of_components << 1)); + + // Scan header length + *output++ = (uint8_t) (header_length >> 8); + *output++ = (uint8_t) header_length; + + // Ns = number of scans + *output++ = number_of_components; + + /* type 422*/ + *output++ = 0x01; /*component id (y)*/ + *output++ = 0x00; /*dc|ac tables*/ + + *output++ = 0x02; /*component id (u)*/ + *output++ = 0x11; /*dc|ac tables*/ + + *output++ = 0x03; /*component id (v)*/ + *output++ = 0x11; /*dc|ac tables*/ + + *output++ = 0x00; /*0 */ + *output++ = 0x3F; /*63*/ + *output++ = 0x00; /*0 */ + + return output; +} + +/* + * encode jpeg + * args: + * input - pointer to input buffer (yuyv format) + * output - pointer to output buffer (jpeg format) + * jpeg_ctx - pointer to jpeg encoder context + * huff - huffman flag + * + * + * asserts: + * input is not null + * ouput is not null + * jpeg_ctx is not null + * + * returns: ouput size + */ +static int encode_jpeg (uint8_t *input, uint8_t *output, + jpeg_encoder_ctx_t *jpeg_ctx, int huff) +{ + /*assertions*/ + assert(input != NULL); + assert(output != NULL); + assert(jpeg_ctx != NULL); + + int size; + uint16_t i, j; + uint8_t *tmp_ptr=NULL; + uint8_t *tmp_iptr = input; + uint8_t *tmp_optr = output; + + /* clean jpeg parameters*/ + jpeg_restart(jpeg_ctx); + + /* Writing Marker Data */ + tmp_optr = write_markers (jpeg_ctx, tmp_optr, huff); + +#ifdef USE_PLANAR_YUV + uint8_t *yuv422 = calloc(jpeg_ctx->image_width * jpeg_ctx->image_height * 2, sizeof(uint8_t)); + if(yuv422 == NULL) + { + fprintf(stderr, "V4L2_CORE: couldn't allocate memory for jpeg encoder (fatal)\n"); + exit(-1); + } + yu12_to_yuyv(yuv422, input, jpeg_ctx->image_width, jpeg_ctx->image_height); + tmp_iptr = yuv422; +#endif + + for (i=0; i < jpeg_ctx->vertical_mcus; i++) /* height /8 */ + { + tmp_ptr = tmp_iptr; + for (j=0; j< jpeg_ctx->horizontal_mcus; j++) /* width /16 */ + { + /*reads a block*/ + read_422_format (jpeg_ctx, tmp_iptr); /*YUYV*/ + + /* Encode the data in MCU */ + tmp_optr = encode_MCU (jpeg_ctx, tmp_optr); + + if(j < (jpeg_ctx->horizontal_mcus -1)) + { + tmp_iptr += jpeg_ctx->mcu_width_size; + } + else + { + tmp_iptr=tmp_ptr; + } + } + tmp_iptr += jpeg_ctx->offset; + + } + + /* Close Routine */ +#ifdef USE_PLANAR_YUV + free(yuv422); +#endif + tmp_optr = close_bitstream (jpeg_ctx, tmp_optr); + size = tmp_optr - output; + tmp_iptr = NULL; + tmp_optr = NULL; + + return (size); +} + +/* + * save frame data to a jpeg file + * args: + * vd - pointer to device data + * filename - filename string + * + * asserts: + * vd is not null + * + * returns: error code + */ +int save_image_jpeg(v4l2_dev_t *vd, const char *filename) +{ + /*assertions*/ + assert(vd != NULL); + + int ret = E_OK; + + jpeg_encoder_ctx_t *jpeg_ctx = calloc(1, sizeof(jpeg_encoder_ctx_t)); + if(jpeg_ctx == NULL) + { + fprintf(stderr, "V4L2_CORE: FATAL memory allocation failure (save_image_jpeg): %s\n", strerror(errno)); + exit(-1); + } + + uint8_t *jpeg = calloc((vd->format.fmt.pix.width * vd->format.fmt.pix.height) >> 1, sizeof(uint8_t)); + if(jpeg == NULL) + { + fprintf(stderr, "V4L2_CORE: FATAL memory allocation failure (save_image_jpeg): %s\n", strerror(errno)); + exit(-1); + } + + /* Initialization of JPEG control structure */ + initialization (jpeg_ctx, vd->format.fmt.pix.width, vd->format.fmt.pix.height); + + /* Initialization of Quantization Tables */ + initialize_quantization_tables (jpeg_ctx); + + int jpeg_size = encode_jpeg(vd->yuv_frame, jpeg, jpeg_ctx, 1); + + if(v4l2core_save_data_to_file(filename, jpeg, jpeg_size)) + { + fprintf (stderr, "V4L2_CORE: (save_image_jpeg) couldn't capture Image to %s \n", + filename); + ret = E_FILE_IO_ERR; + } + + /*clean up*/ + free(jpeg); + free(jpeg_ctx); + + return ret; +} diff -Nru guvcview-1.7.3/gview_v4l2core/save_image_png.c guvcview-2.0.1+ubuntu1~ppa1/gview_v4l2core/save_image_png.c --- guvcview-1.7.3/gview_v4l2core/save_image_png.c 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/gview_v4l2core/save_image_png.c 2014-10-05 10:41:44.000000000 +0000 @@ -0,0 +1,250 @@ +/*******************************************************************************# +# guvcview http://guvcview.sourceforge.net # +# # +# Paulo Assis # +# # +# This program is free software; you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation; either version 2 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program; if not, write to the Free Software # +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # +# # +********************************************************************************/ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "gviewv4l2core.h" +#include "save_image.h" +#include "colorspaces.h" + +/* + * save rgb data into png format file + * args: + * filename - string with filename + * width - image width (in pixels) + * height - image height (in pixels) + * data -pointer to rgb data to save + * + * asserts: + * data is not null + * + * returns: error code + */ +static int save_png(const char *filename, int width, int height, uint8_t *data) +{ + /*assertions*/ + assert(data != NULL); + + int l=0; + FILE *fp; + png_structp png_ptr; + png_infop info_ptr; + png_text text_ptr[3]; + + png_bytep row_pointers[height]; + /* open the file */ + fp = fopen(filename, "wb"); + if (fp == NULL) + return (E_FILE_IO_ERR); + + /* + * Create and initialize the png_struct with the desired error handler + * functions. If you want to use the default stderr and longjump method, + * you can supply NULL for the last three parameters. We also check that + * the library version is compatible with the one used at compile time, + * in case we are using dynamically linked libraries. + */ + png_ptr = png_create_write_struct(PNG_LIBPNG_VER_STRING, + NULL, NULL, NULL); + + if (png_ptr == NULL) + { + fclose(fp); + return (E_ALLOC_ERR); + } + + /* Allocate/initialize the image information data. */ + info_ptr = png_create_info_struct(png_ptr); + if (info_ptr == NULL) + { + fclose(fp); + png_destroy_write_struct(&png_ptr, NULL); + return (E_ALLOC_ERR); + } + + /* Set error handling. REQUIRED if you aren't supplying your own + * error handling functions in the png_create_write_struct() call. + */ + if (setjmp(png_jmpbuf(png_ptr))) + { + fclose(fp); + png_destroy_write_struct(&png_ptr, &info_ptr); + return (E_ALLOC_ERR); + } + + /* set up the output control using standard C streams */ + png_init_io(png_ptr, fp); + + /* + * turn on or off filtering, and/or choose + * specific filters. You can use either a single + * PNG_FILTER_VALUE_NAME or the bitwise OR of one + * or more PNG_FILTER_NAME masks. + */ + //png_set_filter(png_ptr, 0, + // PNG_FILTER_NONE | PNG_FILTER_VALUE_NONE | + // PNG_FILTER_SUB | PNG_FILTER_VALUE_SUB | + // PNG_FILTER_UP | PNG_FILTER_VALUE_UP | + // PNG_FILTER_AVE | PNG_FILTER_VALUE_AVE | + // PNG_FILTER_PAETH | PNG_FILTER_VALUE_PAETH| + // PNG_ALL_FILTERS); + + /* set the zlib compression level */ + //png_set_compression_level(png_ptr, + // Z_BEST_COMPRESSION); + + /* set other zlib parameters */ + //png_set_compression_mem_level(png_ptr, 8); + //png_set_compression_strategy(png_ptr, + // Z_DEFAULT_STRATEGY); + //png_set_compression_window_bits(png_ptr, 15); + //png_set_compression_method(png_ptr, 8); + //png_set_compression_buffer_size(png_ptr, 8192); + + png_set_IHDR(png_ptr, info_ptr, width, height, + 8, PNG_COLOR_TYPE_RGB, PNG_INTERLACE_NONE, + PNG_COMPRESSION_TYPE_DEFAULT, PNG_FILTER_TYPE_DEFAULT); + + /* + * Optional gamma chunk is strongly suggested if you have any guess + * as to the correct gamma of the image. + */ + //png_set_gAMA(png_ptr, info_ptr, gamma); + + /* Optionally write comments into the image */ + text_ptr[0].key = "Title"; + text_ptr[0].text = (char *) filename; + text_ptr[0].compression = PNG_TEXT_COMPRESSION_NONE; + text_ptr[1].key = "Software"; + text_ptr[1].text = "guvcview"; + text_ptr[1].compression = PNG_TEXT_COMPRESSION_NONE; + text_ptr[2].key = "Description"; + text_ptr[2].text = "File generated by guvcview "; + text_ptr[2].compression = PNG_TEXT_COMPRESSION_NONE; +#ifdef PNG_iTXt_SUPPORTED + text_ptr[0].lang = NULL; + text_ptr[1].lang = NULL; + text_ptr[2].lang = NULL; +#endif + png_set_text(png_ptr, info_ptr, text_ptr, 3); + + /* Write the file header information. REQUIRED */ + png_write_info(png_ptr, info_ptr); + + /* flip BGR pixels to RGB */ + //png_set_bgr(png_ptr); /*?no longuer required?*/ + + /* Write the image data.*/ + for (l = 0; l < height; l++) + row_pointers[l] = data + l * width * 3; + + png_write_image(png_ptr, row_pointers); + + /* + * You can write optional chunks like tEXt, zTXt, and tIME at the end + * as well. Shouldn't be necessary in 1.1.0 and up as all the public + * chunks are supported and you can use png_set_unknown_chunks() to + * register unknown chunks into the info structure to be written out. + */ + + /* It is REQUIRED to call this to finish writing the rest of the file */ + png_write_end(png_ptr, info_ptr); + + /* + * If you png_malloced a palette, free it here + * (don't free info_ptr->palette, as recommended in versions 1.0.5m + * and earlier of this example; + * if libpng mallocs info_ptr->palette, libpng will free it). + * If you allocated it with malloc() instead of png_malloc(), + * use free() instead of png_free(). + */ + //png_free(png_ptr, palette); + //palette=NULL; + + /* + * Similarly, if you png_malloced any data that you passed in with + * png_set_something(), such as a hist or trans array, free it here, + * when you can be sure that libpng is through with it. + */ + //png_free(png_ptr, trans); + //trans=NULL; + + /* clean up after the write, and free any memory allocated */ + png_destroy_write_struct(&png_ptr, &info_ptr); + + /* close the file */ + fflush(fp); //flush data stream to file system + if(fsync(fileno(fp)) || fclose(fp)) + { + fprintf(stderr, "V4L2_CORE: (save png) couldn't write to file: %s\n", strerror(errno)); + return(E_FILE_IO_ERR); + } + + /* that's it */ + return (E_OK); +} + +/* + * save frame data into a png file + * args: + * vd - pointer to device data + * filename - string with png filename name + * + * asserts: + * vd is not null + * + * returns: error code + */ +int save_image_png(v4l2_dev_t *vd, const char *filename) +{ + /*assertions*/ + assert(vd != NULL); + + int width = vd->format.fmt.pix.width; + int height = vd->format.fmt.pix.height; + + uint8_t *rgb = calloc( width * height * 3, sizeof(uint8_t)); + if(rgb == NULL) + { + fprintf(stderr, "V4L2_CORE: FATAL memory allocation failure (save_image_png): %s\n", strerror(errno)); + exit(-1); + } +#ifdef USE_PLANAR_YUV + yu12_to_rgb24(rgb, vd->yuv_frame, width, height); +#else + yuyv2rgb(vd->yuv_frame, rgb, width, height); +#endif + + int ret = save_png(filename, width, height, rgb); + + free(rgb); + + return ret; +} diff -Nru guvcview-1.7.3/gview_v4l2core/soft_autofocus.c guvcview-2.0.1+ubuntu1~ppa1/gview_v4l2core/soft_autofocus.c --- guvcview-1.7.3/gview_v4l2core/soft_autofocus.c 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/gview_v4l2core/soft_autofocus.c 2014-10-05 10:41:44.000000000 +0000 @@ -0,0 +1,853 @@ +/*******************************************************************************# +# guvcview http://guvcview.sourceforge.net # +# # +# Paulo Assis # +# Dr. Alexander K. Seewald # +# # +# This program is free software; you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation; either version 2 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program; if not, write to the Free Software # +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # +# # +********************************************************************************/ + +/*******************************************************************************# +# # +# autofocus - using dct # +# # +# # +********************************************************************************/ +#include +#include +#include +#include +#include +#include +#include +#include + +#include "gviewv4l2core.h" +#include "soft_autofocus.h" +#include "dct.h" +#include "gview.h" +#include "core_time.h" +#include "../config.h" + +#define _TH_ (80) /* default treshold = 1/80 of focus sharpness value*/ + +#define FLAT (0) +#define LOCAL_MAX (1) +#define LEFT (2) +#define RIGHT (3) +#define INCSTEP (4) + +#define MAX_ARR_S 20 + +#define SWAP(x, y) temp = (x); (x) = (y); (y) = temp + +extern int verbosity; + +typedef struct _focus_ctx_t +{ + int focus; + int step; + int right; + int left; + int sharpness; + int focus_sharpness; + int sharpLeft; + int sharpRight; + v4l2_ctrl_t* focus_control; + int f_max; + int f_min; + int f_step; + int i_step; + int focusDir; + int arr_sharp[MAX_ARR_S]; + int arr_foc[MAX_ARR_S]; + int ind; + int flag; + int setFocus; + int focus_wait; + int last_focus; +} focus_ctx_t; + +static focus_ctx_t *focus_ctx = NULL; + +static double sumAC[64]; +static int ACweight[64] = { + 0,1,2,3,4,5,6,7, + 1,1,2,3,4,5,6,7, + 2,2,2,3,4,5,6,7, + 3,3,3,3,4,5,6,7, + 4,4,4,4,4,5,6,7, + 5,5,5,5,5,5,6,7, + 7,7,7,7,7,7,7,7 +}; + +/*use insert sort by default - it's the fastest for small and almost sorted arrays (our case)*/ +static int sort_method = AUTOF_SORT_INSERT; /* 1 - Quick sort 2 - Shell sort 3- insert sort other - bubble sort*/ + +/* + * sets a focus loop while autofocus is on + * args: + * none + * + * asserts: + * focus_ctx is not null + * + * returns: none + */ +void v4l2core_soft_autofocus_set_focus() +{ + /*asserts*/ + assert(focus_ctx != NULL); + + focus_ctx->setFocus = 1; + + focus_ctx->ind = 0; + focus_ctx->flag = 0; + focus_ctx->right = 255; + focus_ctx->left = 8; + focus_ctx->focus = -1; /*reset focus*/ +} + +/* + * set autofocus sort method + * args: + * method - sort method + * + * asserts: + * none + * + * returns: none + */ +void v4l2core_soft_autofocus_set_sort(int method) +{ + sort_method = method; +} + +/* + * initiate software autofocus + * args: + * vd - pointer to device data + * + * asserts: + * vd is not null + * + * returns: error code (0 - E_OK) + */ +int v4l2core_soft_autofocus_init (v4l2_dev_t *vd) +{ + /*asserts*/ + assert(vd != NULL); + + if(!vd->has_focus_control_id) + { + fprintf(stderr, "V4L2_CORE: can't init software autofocus - no focus control detected\n"); + return (E_UNKNOWN_CID_ERR); + } + + if(focus_ctx != NULL) + free(focus_ctx); + + focus_ctx = calloc(1, sizeof(focus_ctx_t)); + if(focus_ctx == NULL) + { + fprintf(stderr, "V4L2_CORE: FATAL memory allocation failure (v4l2core_soft_autofocus_init): %s\n", strerror(errno)); + exit(-1); + } + + focus_ctx->focus_control = v4l2core_get_control_by_id(vd, vd->has_focus_control_id); + + if(focus_ctx->focus_control == NULL) + { + fprintf(stderr, "V4L2_CORE: couldn't load focus control for id %x\n", vd->has_focus_control_id); + free(focus_ctx); + focus_ctx = NULL; + return(E_UNKNOWN_CID_ERR); + } + + focus_ctx->f_max = focus_ctx->focus_control->control.maximum; + focus_ctx->f_min = focus_ctx->focus_control->control.minimum; + focus_ctx->f_step = focus_ctx->focus_control->control.step; + + focus_ctx->i_step = (focus_ctx->f_max + 1 - focus_ctx->f_min)/32; + if(focus_ctx->i_step <= focus_ctx->f_step) + focus_ctx->i_step = focus_ctx->f_step * 2; + //printf("V4L2_CORE: (soft_autofocus) focus step:%i\n", focus_ctx->i_step); + focus_ctx->right = focus_ctx->f_max; + focus_ctx->left = focus_ctx->f_min + focus_ctx->i_step; /*start with focus at 8*/ + focus_ctx->focus = -1; + focus_ctx->focus_wait = 0; + + focus_ctx->last_focus = focus_ctx->focus_control->value; + /*make sure we wait for focus to settle on first check*/ + if (focus_ctx->last_focus < 0) + focus_ctx->last_focus = focus_ctx->f_max; + + memset(sumAC, 0, 64*sizeof(*sumAC)); /*reset array to 0*/ + + return (E_OK); +} + +/* + * quick sort + * (the fastest and more complex - recursive, doesn't do well on almost sorted data) + * args: + * left - + * right - + * + * asserts: + * focus_ctx is not null + * + * returns: none + */ +static void q_sort(int left, int right) +{ + /*asserts*/ + assert(focus_ctx != NULL); + + int l_hold = left; + int r_hold = right; + int pivot = focus_ctx->arr_sharp[left]; + int temp = focus_ctx->arr_foc[left]; + + while(left < right) + { + while((focus_ctx->arr_sharp[right] >= pivot) && (left < right)) + right--; + if (left != right) + { + focus_ctx->arr_sharp[left] = focus_ctx->arr_sharp[right]; + focus_ctx->arr_foc[left] = focus_ctx->arr_foc[right]; + left++; + } + while((left < right) && (focus_ctx->arr_sharp[left] <= pivot)) + left++; + if (left != right) + { + focus_ctx->arr_sharp[right] = focus_ctx->arr_sharp[left]; + focus_ctx->arr_foc[right] = focus_ctx->arr_foc[left]; + right--; + } + } + focus_ctx->arr_sharp[left] = pivot; + focus_ctx->arr_foc[left] = temp; + pivot = left; + + if (l_hold < pivot) q_sort(l_hold, pivot-1); + if (r_hold > pivot) q_sort(pivot+1, r_hold); +} + +/* + * shell sort + * (based on insert sort, but with some optimization) + * for small arrays insert sort is still faster + * args: + * size - + * + * asserts: + * focus_ctx is not null + * + * returns: none + */ +static void s_sort(int size) +{ + /*asserts*/ + assert(focus_ctx != NULL); + + int i, j, temp, gap; + + for (gap = size / 2; gap > 0; gap /= 2) + { + for (i = gap; i <= size; i++) + { + for (j = i-gap; j >= 0 && (focus_ctx->arr_sharp[j] > focus_ctx->arr_sharp[j + gap]); j -= gap) + { + SWAP(focus_ctx->arr_sharp[j], focus_ctx->arr_sharp[j + gap]); + SWAP(focus_ctx->arr_foc[j], focus_ctx->arr_foc[j + gap]); + } + } + } +} + +/* + * insert sort + * (fastest for small arrays, around 15 elements) + * args: + * size - + * + * asserts: + * focus_ctx is not null + * + * returns: none + */ +static void i_sort (int size) +{ + /*asserts*/ + assert(focus_ctx != NULL); + + int i,j,temp; + + for (i = 1; i <= size; i++) + { + for(j = i; j > 0 && (focus_ctx->arr_sharp[j-1] > focus_ctx->arr_sharp[j]); j--) + { + SWAP(focus_ctx->arr_sharp[j],focus_ctx->arr_sharp[j-1]); + SWAP(focus_ctx->arr_foc[j],focus_ctx->arr_foc[j-1]); + } + } +} + +/* + * bubble sort + * (the simplest and most inefficient - in real test with focus data + * it did better than shell or quick sort since focus data is almost + * sorted) + * args: + * size - + * + * asserts: + * focus_ctx is not null + * + * returns: none + */ +static void b_sort (int size) +{ + int i, temp, swapped; + + do + { + swapped = 0; + size--; + for (i = 0 ; i <= size; ++i) + { + if (focus_ctx->arr_sharp[i+1] < focus_ctx->arr_sharp[i]) + { + SWAP(focus_ctx->arr_sharp[i],focus_ctx->arr_sharp[i+1]); + SWAP(focus_ctx->arr_foc[i],focus_ctx->arr_foc[i+1]); + swapped = 1; + } + } + } while (swapped); +} + +/* + * sort focus values + * args: + * size - focus array size + * + * returns: best focus value + */ +static int focus_sort(int size) +{ + if (size>=20) + { + fprintf(stderr, "V4L2_CORE: (soft_autofocus) focus array size=%d exceeds 20\n", size); + size = 10; + } + + switch(sort_method) + { + case AUTOF_SORT_QUICK: + q_sort(0, size); + break; + + case AUTOF_SORT_SHELL: + s_sort(size); + break; + + case AUTOF_SORT_BUBBLE: + b_sort(size); + break; + + default: + case AUTOF_SORT_INSERT: + i_sort(size); + break; + } + + /*better focus value*/ + return(focus_ctx->arr_foc[size]); +} + +/* + * extract lum (y) data from image + * args: + * frame - image frame data pointer + * dataY - pointer for lum (y) data + * width - width of image frame (in pixels) + * height - height of image frame (in pixels) + * + * asserts: + * + * returns: pointer to lum data buffer + */ +static int16_t *focus_extract_Y (uint8_t *frame, int16_t *dataY, int width, int height) +{ + int i = 0; + uint8_t *pimg; + pimg = frame; + + for (i = 0; i < (height * width); ++i) + { + dataY[i]=(int16_t) *pimg++; // luma +#ifdef USE_PLANAR_YUV +#else + pimg++; //yuyv - jump over chroma samples +#endif + } + + return (dataY); +} + +/* + * check focus + * args: + * none + * + * asserts: + * focus_ctx is not null + * + * returns: focus code + */ +static int checkFocus() +{ + /*asserts*/ + assert(focus_ctx != NULL); + + /*change treshold according to sharpness*/ + int TH = _TH_; + //if(focus_ctx->focus_sharpness < (5 * _TH_)) TH = _TH_ * 4 ; + + if (focus_ctx->step <= focus_ctx->i_step) + { + if (abs((focus_ctx->sharpLeft-focus_ctx->focus_sharpness)<(focus_ctx->focus_sharpness/TH)) && + (abs(focus_ctx->sharpRight-focus_ctx->focus_sharpness)<(focus_ctx->focus_sharpness/TH))) + { + return (FLAT); + } + else if (((focus_ctx->focus_sharpness-focus_ctx->sharpRight))>=(focus_ctx->focus_sharpness/TH) && + ((focus_ctx->focus_sharpness-focus_ctx->sharpLeft))>=(focus_ctx->focus_sharpness/TH)) + { + /* + * significantly down in both directions -> check another step + * outside for local maximum + */ + focus_ctx->step=16; + return (INCSTEP); + } + else + { + // one is significant, the other is not... + int left=0; int right=0; + if (abs((focus_ctx->sharpLeft-focus_ctx->focus_sharpness))>=(focus_ctx->focus_sharpness/TH)) + { + if (focus_ctx->sharpLeft>focus_ctx->focus_sharpness) left++; + else right++; + } + if (abs((focus_ctx->sharpRight-focus_ctx->focus_sharpness))>=(focus_ctx->focus_sharpness/TH)) + { + if (focus_ctx->sharpRight>focus_ctx->focus_sharpness) right++; + else left++; + } + if (left==right) return (FLAT); + else if (left>right) return (LEFT); + else return (RIGHT); + } + } + else + { + if (((focus_ctx->focus_sharpness-focus_ctx->sharpRight))>=(focus_ctx->focus_sharpness/TH) && + ((focus_ctx->focus_sharpness-focus_ctx->sharpLeft))>=(focus_ctx->focus_sharpness/TH)) + { + return (LOCAL_MAX); + } + else + { + return (FLAT); + } + } +} + +/* + * measure sharpness in MCU + * args: + * data - MCU data [8x8] + * weight - MCU weight for sharpness measure. + * + * asserts: + * none + * + * returns: none + */ +static void getSharpnessMCU (int16_t *data, double weight) +{ + + int i=0; + int j=0; + + levelshift (data); + DCT (data); + + for (i=0;i<8;i++) + { + for(j=0;j<8;j++) + { + sumAC[i*8+j]+=data[i*8+j]*data[i*8+j]*weight; + } + } +} + +/* + * sharpness in focus window + * args: + * frame - pointer to image frame + * width - frame width + * height - frame height + * t - highest order coef + * + * asserts: + * none + * + * returns: sharpness value + */ +int soft_autofocus_get_sharpness (uint8_t *frame, int width, int height, int t) +{ + float res=0; + int numMCUx = width/(8*2); /*covers 1/2 of width - width should be even*/ + int numMCUy = height/(8*2); /*covers 1/2 of height- height should be even*/ + int16_t dataMCU[64]; + int16_t* data; + int16_t *Y = calloc(width * height, sizeof(int16_t)); + + if(Y == NULL) + { + fprintf(stderr, "V4L2_CORE: FATAL memory allocation failure (soft_autofocus_get_sharpness): %s\n", strerror(errno)); + exit(-1); + } + + double weight; + double xp_; + int ctx = numMCUx >> 1; /*center*/ + int cty = numMCUy >> 1; + double rad=ctx/2; + if (cty>1)+i)*width + +(((width-(numMCUx-(xp*2))*8)>>1)+j)]; + } + } + getSharpnessMCU(data,weight); + cnt2++; + } + } + + free(Y); + + for (i=0;i<=t;i++) + { + for(j=0;ji_step * 2; + int step2 = focus_ctx->i_step / 2; + if (step2 <= 0 ) step2 = 1; + int focus=0; + + switch (focus_ctx->flag) + { + /*--------- first time - run sharpness algorithm -----------------*/ + if(focus_ctx->ind >= 20) + { + fprintf (stderr, "V4L2_CORE: (soft_autofocus) ind=%d exceeds 20\n", focus_ctx->ind); + focus_ctx->ind = 10; + } + + case 0: /*sample left to right at higher step*/ + focus_ctx->arr_sharp[focus_ctx->ind] = focus_ctx->sharpness; + focus_ctx->arr_foc[focus_ctx->ind] = focus_ctx->focus; + /*reached max focus value*/ + if (focus_ctx->focus >= focus_ctx->right ) + { /*get left and right from arr_sharp*/ + focus = focus_sort(focus_ctx->ind); + /*get a window around the best value*/ + focus_ctx->left = (focus- step/2); + focus_ctx->right = (focus + step/2); + if (focus_ctx->left < focus_ctx->f_min) focus_ctx->left = focus_ctx->f_min; + if (focus_ctx->right > focus_ctx->f_max) focus_ctx->right = focus_ctx->f_max; + focus_ctx->focus = focus_ctx->left; + focus_ctx->ind = 0; + focus_ctx->flag = 1; + } + else /*increment focus*/ + { + focus_ctx->focus=focus_ctx->arr_foc[focus_ctx->ind] + step; /*next focus*/ + focus_ctx->ind++; + focus_ctx->flag = 0; + } + break; + + case 1: /*sample left to right at lower step - fine tune*/ + focus_ctx->arr_sharp[focus_ctx->ind] = focus_ctx->sharpness; + focus_ctx->arr_foc[focus_ctx->ind] = focus_ctx->focus; + /*reached window max focus*/ + if (focus_ctx->focus >= focus_ctx->right ) + { /*get left and right from arr_sharp*/ + focus = focus_sort(focus_ctx->ind); + /*get the best value*/ + focus_ctx->focus = focus; + focus_ctx->focus_sharpness = focus_ctx->arr_sharp[focus_ctx->ind]; + focus_ctx->step = focus_ctx->i_step; /*first step for focus tracking*/ + focus_ctx->focusDir = FLAT; /*no direction for focus*/ + focus_ctx->flag = 2; + } + else /*increment focus*/ + { + focus_ctx->focus=focus_ctx->arr_foc[focus_ctx->ind] + step2; /*next focus*/ + focus_ctx->ind++; + focus_ctx->flag = 1; + } + break; + + case 2: /* set treshold in order to sharpness*/ + if (focus_ctx->setFocus) + { + /*reset*/ + focus_ctx->setFocus = 0; + focus_ctx->flag= 0; + focus_ctx->right = focus_ctx->f_max; + focus_ctx->left = focus_ctx->f_min + focus_ctx->i_step; + focus_ctx->ind = 0; + } + else + { + /*track focus*/ + focus_ctx->focus_sharpness = focus_ctx->sharpness; + focus_ctx->flag = 3; + focus_ctx->sharpLeft = 0; + focus_ctx->sharpRight = 0; + focus_ctx->focus += focus_ctx->step; /*check right*/ + } + break; + + case 3: + /*track focus*/ + focus_ctx->flag = 4; + focus_ctx->sharpRight = focus_ctx->sharpness; + focus_ctx->focus -= (2*focus_ctx->step); /*check left*/ + break; + + case 4: + /*track focus*/ + focus_ctx->sharpLeft=focus_ctx->sharpness; + int ret=0; + ret = checkFocus(); + + switch (ret) + { + case LOCAL_MAX: + focus_ctx->focus += focus_ctx->step; /*return to orig. focus*/ + focus_ctx->step = focus_ctx->i_step; + focus_ctx->flag = 2; + break; + + case FLAT: + if(focus_ctx->focusDir == FLAT) + { + focus_ctx->step = focus_ctx->i_step; + if(focus_ctx->focus_sharpness < 4 * _TH_) + { + /* 99% chance we lost focus */ + /* move focus to half the range */ + focus_ctx->focus = focus_ctx->f_max / 2; + } + else + { + focus_ctx->focus += focus_ctx->step; /*return to orig. focus*/ + } + focus_ctx->flag = 2; + } + else if (focus_ctx->focusDir == RIGHT) + { + focus_ctx->focus += 2*focus_ctx->step; /*go right*/ + focus_ctx->step = focus_ctx->i_step; + focus_ctx->flag = 2; + } + else + { /*go left*/ + focus_ctx->step = focus_ctx->i_step; + focus_ctx->flag = 2; + } + break; + + case RIGHT: + focus_ctx->focus += 2*focus_ctx->step; /*go right*/ + focus_ctx->flag = 2; + break; + + case LEFT: + /*keep focus on left*/ + focus_ctx->flag = 2; + break; + + case INCSTEP: + focus_ctx->focus += focus_ctx->step; /*return to orig. focus*/ + focus_ctx->step = 2 * focus_ctx->i_step; + focus_ctx->flag = 2; + break; + } + break; + } + /*clip focus, right and left*/ + focus_ctx->focus=(focus_ctx->focus > focus_ctx->f_max) ? focus_ctx->f_max : ((focus_ctx->focus < focus_ctx->f_min) ? focus_ctx->f_min : focus_ctx->focus); + focus_ctx->right=(focus_ctx->right > focus_ctx->f_max) ? focus_ctx->f_max : ((focus_ctx->right < focus_ctx->f_min) ? focus_ctx->f_min : focus_ctx->right); + focus_ctx->left =(focus_ctx->left > focus_ctx->f_max) ? focus_ctx->f_max : ((focus_ctx->left < focus_ctx->f_min) ? focus_ctx->f_min : focus_ctx->left); + + return focus_ctx->focus; +} + +/* + * run the software autofocus + * args: + * vd - pointer to device data + * + * asserts: + * vd is not null + * + * returns: 1 - running 0- focused + * (only matters for non-continue focus) + */ +int v4l2core_soft_autofocus_run(v4l2_dev_t *vd) +{ + /*asserts*/ + assert(vd != NULL); + + if (focus_ctx->focus < 0) + { + /*starting autofocus*/ + focus_ctx->focus = focus_ctx->left; /*start left*/ + + focus_ctx->focus_control->value = focus_ctx->focus; + if (v4l2core_set_control_value_by_id(vd, focus_ctx->focus_control->control.id) != 0) + fprintf(stderr, "V4L2_CORE: (sof_autofocus) couldn't set focus to %d\n", focus_ctx->focus); + + /*number of frames until focus is stable*/ + /*1.4 ms focus time - every 1 step*/ + focus_ctx->focus_wait = (int) abs(focus_ctx->focus - focus_ctx->last_focus)*1.4/((1000*vd->fps_num)/vd->fps_denom)+1; + focus_ctx->last_focus = focus_ctx->focus; + } + else + { + if (focus_ctx->focus_wait == 0) + { + focus_ctx->sharpness = soft_autofocus_get_sharpness ( + vd->yuv_frame, + vd->format.fmt.pix.width, + vd->format.fmt.pix.height, + 5); + + if (verbosity > 1) + printf("V4L2_CORE: (sof_autofocus) sharp=%d focus_sharp=%d foc=%d right=%d left=%d ind=%d flag=%d\n", + focus_ctx->sharpness, + focus_ctx->focus_sharpness, + focus_ctx->focus, + focus_ctx->right, + focus_ctx->left, + focus_ctx->ind, + focus_ctx->flag); + + focus_ctx->focus = soft_autofocus_get_focus_value(); + + if ((focus_ctx->focus != focus_ctx->last_focus)) + { + focus_ctx->focus_control->value = focus_ctx->focus; + if (v4l2core_set_control_value_by_id(vd, focus_ctx->focus_control->control.id) != 0) + fprintf(stderr, "V4L2_CORE: (sof_autofocus) couldn't set focus to %d\n", + focus_ctx->focus); + + /*number of frames until focus is stable*/ + /*1.4 ms focus time - every 1 step*/ + focus_ctx->focus_wait = (int) abs(focus_ctx->focus - focus_ctx->last_focus)*1.4/((1000*vd->fps_num)/vd->fps_denom)+1; + } + focus_ctx->last_focus = focus_ctx->focus; + } + else + { + focus_ctx->focus_wait--; + if (verbosity > 1) + printf("V4L2_CORE: (soft_autofocus) Wait Frame: %d\n", + focus_ctx->focus_wait); + } + } + + return (focus_ctx->setFocus); +} + +/* + * close and clean software autofocus + * args: + * none + * + * asserts: + * none + * + * returns: none + */ +void v4l2core_soft_autofocus_close() +{ + if(focus_ctx != NULL) + free(focus_ctx); + focus_ctx = NULL; +} diff -Nru guvcview-1.7.3/gview_v4l2core/soft_autofocus.h guvcview-2.0.1+ubuntu1~ppa1/gview_v4l2core/soft_autofocus.h --- guvcview-1.7.3/gview_v4l2core/soft_autofocus.h 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/gview_v4l2core/soft_autofocus.h 2014-10-05 10:41:44.000000000 +0000 @@ -0,0 +1,63 @@ +/*******************************************************************************# +# guvcview http://guvcview.sourceforge.net # +# # +# Paulo Assis # +# Dr. Alexander K. Seewald # +# # +# This program is free software; you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation; either version 2 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program; if not, write to the Free Software # +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # +# # +********************************************************************************/ + +/*******************************************************************************# +# # +# autofocus - using dct for sharpness measure # +# # +# # +********************************************************************************/ + +#ifndef SOFT_AUTOFOCUS_H +#define SOFT_AUTOFOCUS_H + +#include +#include + +/* + * sharpness in focus window + * args: + * frame - pointer to image frame + * width - frame width + * height - frame height + * t - highest order coef + * + * asserts: + * none + * + * returns: sharpness value + */ +int soft_autofocus_get_sharpness (uint8_t *frame, int width, int height, int t); + +/* + * get focus value + * args: + * none + * + * asserts: + * focus_ctx is not null + * + * returns: focus code + */ +int soft_autofocus_get_focus_value (); + +#endif \ No newline at end of file diff -Nru guvcview-1.7.3/gview_v4l2core/uvc_h264.c guvcview-2.0.1+ubuntu1~ppa1/gview_v4l2core/uvc_h264.c --- guvcview-1.7.3/gview_v4l2core/uvc_h264.c 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/gview_v4l2core/uvc_h264.c 2014-10-05 10:41:44.000000000 +0000 @@ -0,0 +1,1189 @@ +/*******************************************************************************# +# guvcview http://guvcview.sourceforge.net # +# # +# Paulo Assis # +# Nobuhiro Iwamatsu # +# Add UYVY color support(Macbook iSight) # +# # +# This program is free software; you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation; either version 2 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program; if not, write to the Free Software # +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # +# # +********************************************************************************/ + +/* support for internationalization - i18n */ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "gview.h" +#include "../config.h" + +/*h264 decoder (libavcodec)*/ +#ifdef HAVE_AVCODEC_H + #include +#else + #ifdef HAVE_LIBAVCODEC_AVCODEC_H + #include + #else + #ifdef HAVE_FFMPEG_AVCODEC_H + #include + #else + #include + #endif + #endif +#endif + +#define LIBAVCODEC_VER_AT_LEAST(major,minor) (LIBAVCODEC_VERSION_MAJOR > major || \ + (LIBAVCODEC_VERSION_MAJOR == major && \ + LIBAVCODEC_VERSION_MINOR >= minor)) + +#if !LIBAVCODEC_VER_AT_LEAST(54,25) + #define AV_CODEC_ID_H264 CODEC_ID_H264 +#endif + +#include "uvc_h264.h" +#include "v4l2_formats.h" + +#define USB_VIDEO_CONTROL 0x01 +#define USB_VIDEO_CONTROL_INTERFACE 0x24 +#define USB_VIDEO_CONTROL_XU_TYPE 0x06 + +// GUID of the UVC H.264 extension unit: {A29E7641-DE04-47E3-8B2B-F4341AFF003B} +#define GUID_UVCX_H264_XU {0x41, 0x76, 0x9E, 0xA2, 0x04, 0xDE, 0xE3, 0x47, 0x8B, 0x2B, 0xF4, 0x34, 0x1A, 0xFF, 0x00, 0x3B} + +extern int verbosity; + +typedef struct _h264_decoder_context_t +{ + AVCodec *codec; + AVCodecContext *context; + AVFrame *picture; + + int width; + int height; + int pic_size; + +} h264_decoder_context_t; + +static h264_decoder_context_t *h264_ctx = NULL; + +/*h264 support type*/ +static int h264_support = H264_NONE; /*none by default*/ + +/* + * request a IDR frame from the H264 encoder + * args: + * vd - pointer to video device data + * + * asserts: + * vd is not null + * + * returns: none + */ +void v4l2core_h264_request_idr(v4l2_dev_t *vd) +{ + request_h264_frame_type(vd, PICTURE_TYPE_IDR_FULL); +} + +/* + * get h264 support type + * args: + * none + * + * asserts: + * none + * + * returns: support type (H264_NONE; H264_MUXED; H264_FRAME) + */ +int h264_get_support() +{ + return h264_support; +} + +/* + * print probe/commit data + * args: + * data - pointer to probe/commit config data + * + * asserts: + * data is not null + * + * returns: void + */ +static void print_probe_commit_data(uvcx_video_config_probe_commit_t *data) +{ + /*asserts*/ + assert(data != NULL); + + printf("uvcx_video_config_probe_commit:\n"); + printf("\tFrameInterval: %i\n", data->dwFrameInterval); + printf("\tBitRate: %i\n", data->dwBitRate); + printf("\tHints: 0x%X\n", data->bmHints); + printf("\tConfigurationIndex: %i\n", data->wConfigurationIndex); + printf("\tWidth: %i\n", data->wWidth); + printf("\tHeight: %i\n", data->wHeight); + printf("\tSliceUnits: %i\n", data->wSliceUnits); + printf("\tSliceMode: %i\n", data->wSliceMode); + printf("\tProfile: %i\n", data->wProfile); + printf("\tIFramePeriod: %i\n", data->wIFramePeriod); + printf("\tEstimatedVideoDelay: %i\n",data->wEstimatedVideoDelay); + printf("\tEstimatedMaxConfigDelay: %i\n",data->wEstimatedMaxConfigDelay); + printf("\tUsageType: %i\n",data->bUsageType); + printf("\tRateControlMode: %i\n",data->bRateControlMode); + printf("\tTemporalScaleMode: %i\n",data->bTemporalScaleMode); + printf("\tSpatialScaleMode: %i\n",data->bSpatialScaleMode); + printf("\tSNRScaleMode: %i\n",data->bSNRScaleMode); + printf("\tStreamMuxOption: %i\n",data->bStreamMuxOption); + printf("\tStreamFormat: %i\n",data->bStreamFormat); + printf("\tEntropyCABAC: %i\n",data->bEntropyCABAC); + printf("\tTimestamp: %i\n",data->bTimestamp); + printf("\tNumOfReorderFrames: %i\n",data->bNumOfReorderFrames); + printf("\tPreviewFlipped: %i\n",data->bPreviewFlipped); + printf("\tView: %i\n",data->bView); + printf("\tReserved1: %i\n",data->bReserved1); + printf("\tReserved2: %i\n",data->bReserved2); + printf("\tStreamID: %i\n",data->bStreamID); + printf("\tSpatialLayerRatio: %i\n",data->bSpatialLayerRatio); + printf("\tLeakyBucketSize: %i\n",data->wLeakyBucketSize); +} + +/* + * resets the h264 encoder + * args: + * vd - pointer to video device data + * + * asserts: + * vd is not null + * + * returns: 0 on success or error code on fail + */ +static int uvcx_video_encoder_reset(v4l2_dev_t *vd) +{ + /*assertions*/ + assert(vd != NULL); + + uvcx_encoder_reset encoder_reset_req = {0}; + + int err = 0; + + if((err = v4l2core_query_xu_control(vd, vd->h264_unit_id, UVCX_ENCODER_RESET, UVC_SET_CUR, &encoder_reset_req)) < 0) + fprintf(stderr, "V4L2_CORE: (UVCX_ENCODER_RESET) error: %s\n", strerror(errno)); + + return err; +} + +/* + * probes the h264 encoder config + * args: + * vd - pointer to video device data + * query - probe query + * uvcx_video_config - pointer to probe/commit config data + * + * asserts: + * vd is not null + * + * returns: 0 on success or error code on fail + */ +static int uvcx_video_probe(v4l2_dev_t *vd, uint8_t query, uvcx_video_config_probe_commit_t *uvcx_video_config) +{ + /*assertions*/ + assert(vd != NULL); + + int err = 0; + + + if((err = v4l2core_query_xu_control(vd, vd->h264_unit_id, UVCX_VIDEO_CONFIG_PROBE, query, uvcx_video_config)) < 0) + fprintf(stderr, "V4L2_CORE: (UVCX_VIDEO_CONFIG_PROBE) error: %s\n", strerror(errno)); + + return err; +} + +/* + * commits the h264 encoder config + * args: + * vd - pointer to video device data + * uvcx_video_config - pointer to probe/commit config data + * + * asserts: + * vd is not null + * + * returns: 0 on success or error code on fail + */ +static int uvcx_video_commit(v4l2_dev_t *vd, uvcx_video_config_probe_commit_t *uvcx_video_config) +{ + /*assertions*/ + assert(vd != NULL); + + int err = 0; + + if((err = v4l2core_query_xu_control(vd, vd->h264_unit_id, UVCX_VIDEO_CONFIG_COMMIT, UVC_SET_CUR, uvcx_video_config)) < 0) + fprintf(stderr, "V4L2_CORE: (UVCX_VIDEO_CONFIG_COMMIT) error: %s\n", strerror(errno)); + + return err; +} + + +/* + * gets the uvc h264 xu control unit id, if any + * args: + * vd - pointer to video device data + * + * asserts: + * vd is not null + * device_list->list_devices is not null + * + * returns: unit id or 0 if none + * (also sets vd->h264_unit_id) + */ +uint8_t get_uvc_h624_unit_id (v4l2_dev_t *vd) +{ + v4l2_device_list *my_device_list = v4l2core_get_device_list(); + + /*asserts*/ + assert(vd != NULL); + assert(my_device_list->list_devices != NULL); + + uint64_t busnum = my_device_list->list_devices[vd->this_device].busnum; + uint64_t devnum = my_device_list->list_devices[vd->this_device].devnum; + + if(verbosity > 2) + printf("V4L2_CORE: checking h264 unit id for device %i (bus:%"PRId64" dev:%"PRId64")\n", vd->this_device, busnum, devnum); + /* use libusb */ + libusb_context *usb_ctx = NULL; + libusb_device **device_list = NULL; + libusb_device *device = NULL; + ssize_t cnt; + int i; + + static const uint8_t guid[16] = GUID_UVCX_H264_XU; + vd->h264_unit_id = 0;/*reset it*/ + + if (usb_ctx == NULL) + libusb_init (&usb_ctx); + + cnt = libusb_get_device_list (usb_ctx, &device_list); + for (i = 0; i < cnt; i++) + { + uint64_t dev_busnum = libusb_get_bus_number (device_list[i]); + uint64_t dev_devnum = libusb_get_device_address (device_list[i]); + + if(verbosity > 2) + printf("V4L2_CORE: (libusb) checking bus(%" PRId64 ") dev(%" PRId64 ") for device\n", dev_busnum, dev_devnum); + + if (busnum == dev_busnum && devnum == dev_devnum) + { + device = libusb_ref_device (device_list[i]); + break; + } + } + + libusb_free_device_list (device_list, 1); + + if (device) + { + if(verbosity > 1) + printf("V4L2_CORE: (libusb) checking for H264 unit id\n"); + struct libusb_device_descriptor desc; + + if (libusb_get_device_descriptor (device, &desc) == 0) + { + for (i = 0; i < desc.bNumConfigurations; ++i) + { + struct libusb_config_descriptor *config = NULL; + + if (libusb_get_config_descriptor (device, i, &config) == 0) + { + int j = 0; + for (j = 0; j < config->bNumInterfaces; j++) + { + int k = 0; + for (k = 0; k < config->interface[j].num_altsetting; k++) + { + const struct libusb_interface_descriptor *interface; + const uint8_t *ptr = NULL; + + interface = &config->interface[j].altsetting[k]; + if (interface->bInterfaceClass != LIBUSB_CLASS_VIDEO || + interface->bInterfaceSubClass != USB_VIDEO_CONTROL) + continue; + ptr = interface->extra; + while (ptr - interface->extra + + sizeof (xu_descriptor) < interface->extra_length) + { + xu_descriptor *desc = (xu_descriptor *) ptr; + + if (desc->bDescriptorType == USB_VIDEO_CONTROL_INTERFACE && + desc->bDescriptorSubType == USB_VIDEO_CONTROL_XU_TYPE && + memcmp (desc->guidExtensionCode, guid, 16) == 0) + { + vd->h264_unit_id = desc->bUnitID; + + libusb_unref_device (device); + /*it's a match*/ + if(verbosity > 1) + printf("V4L2_CORE: (libusb) found H264 unit id %i\n", vd->h264_unit_id); + return vd->h264_unit_id; + } + ptr += desc->bLength; + } + } + } + } + else + fprintf(stderr, "V4L2_CORE: (libusb) couldn't get config descriptor for configuration %i\n", i); + } + } + else + fprintf(stderr, "V4L2_CORE: (libusb) couldn't get device descriptor\n"); + libusb_unref_device (device); + } + else + fprintf(stderr, "V4L2_CORE: (libusb) couldn't get device\n"); + /*no match found*/ + return vd->h264_unit_id; +} + +/* + * check for uvc h264 support by querying UVCX_VERSION + * although geting a unit id > 0 from xu_get_unit_id + * should be enought + * args: + * vd - pointer to video device data + * + * asserts: + * vd is not null + * vd->fd is valid ( > 0 ) + * + * returns: 1 if support available or 0 otherwise + */ +int check_h264_support(v4l2_dev_t *vd) +{ + /*assertions*/ + assert(vd != NULL); + assert(vd->fd > 0); + + if(vd->h264_unit_id <= 0) + { + if(verbosity > 0) + printf("V4L2_CORE: device doesn't seem to support uvc H264 (%i)\n", vd->h264_unit_id); + return 0; + } + + uvcx_version_t uvcx_version; + + if(v4l2core_query_xu_control(vd, vd->h264_unit_id, UVCX_VERSION, UVC_GET_CUR, &uvcx_version) < 0) + { + if(verbosity > 0) + printf("V4L2_CORE: device doesn't seem to support uvc H264 in unit_id %d\n", vd->h264_unit_id); + return 0; + } + + if(verbosity > 0) + printf("V4L2_CORE: device seems to support uvc H264 (version: %d) in unit_id %d\n", uvcx_version.wVersion, vd->h264_unit_id); + return 1; + +} + +/* + * adds h264 to the format list, if supported by device + * args: + * vd - pointer to video device data + * + * asserts: + * vd is not null + * vd->list_stream_formats is not null + * + * returns: void + */ +void add_h264_format(v4l2_dev_t *vd) +{ + /*assertions*/ + assert(vd != NULL); + assert(vd->list_stream_formats != NULL); + + if(verbosity > 0) + printf("V4L2_CORE: checking muxed H264 format support\n"); + + if(v4l2core_get_frame_format_index(vd, V4L2_PIX_FMT_H264) >= 0) + { + if(verbosity > 0) + printf("V4L2_CORE: H264 format already in list\n"); + + h264_support = H264_FRAME; + /*check the h264 unit id (if any) */ + get_uvc_h624_unit_id(vd); + + return; /*H264 is already in the list*/ + } + + if(get_uvc_h624_unit_id(vd) <= 0) + { + h264_support = H264_NONE; + return; /*no unit id found for h264*/ + } + + if(!check_h264_support(vd)) + { + h264_support = H264_NONE; + return; /*no XU support for h264*/ + } + + int mjpg_index = v4l2core_get_frame_format_index(vd, V4L2_PIX_FMT_MJPEG); + if(mjpg_index < 0) /*MJPG must be available for muxed uvc H264 streams*/ + return; + + /*add the format to the list*/ + if(verbosity > 0) + printf("V4L2_CORE: adding muxed H264 format\n"); + + /*if we got here then muxed h264 is supported*/ + h264_support = H264_MUXED; + + vd->numb_formats++; /*increment number of formats*/ + int fmtind = vd->numb_formats; + + vd->list_stream_formats = realloc( + vd->list_stream_formats, + fmtind * sizeof(v4l2_stream_formats_t)); + if(vd->list_stream_formats == NULL) + { + fprintf(stderr, "V4L2_CORE: FATAL memory allocation failure (add_h264_format): %s\n", strerror(errno)); + exit(-1); + } + + vd->list_stream_formats[fmtind-1].format = V4L2_PIX_FMT_H264; + snprintf(vd->list_stream_formats[fmtind-1].fourcc , 5, "H264"); + vd->list_stream_formats[fmtind-1].list_stream_cap = NULL; + vd->list_stream_formats[fmtind-1].numb_res = 0; + + + /*add MJPG resolutions and frame rates for H264*/ + int numb_res = vd->list_stream_formats[mjpg_index].numb_res; + + int i=0, j=0; + int res_index = 0; + for(i=0; i < numb_res; i++) + { + int width = vd->list_stream_formats[mjpg_index].list_stream_cap[i].width; + int height = vd->list_stream_formats[mjpg_index].list_stream_cap[i].height; + + res_index++; + vd->list_stream_formats[fmtind-1].list_stream_cap = realloc( + vd->list_stream_formats[fmtind-1].list_stream_cap, + res_index * sizeof(v4l2_stream_cap_t)); + if(vd->list_stream_formats[fmtind-1].list_stream_cap == NULL) + { + fprintf(stderr, "V4L2_CORE: FATAL memory allocation failure (add_h264_format): %s\n", strerror(errno)); + exit(-1); + } + vd->list_stream_formats[fmtind-1].numb_res = res_index; + vd->list_stream_formats[fmtind-1].list_stream_cap[res_index-1].width = width; + vd->list_stream_formats[fmtind-1].list_stream_cap[res_index-1].height = height; + vd->list_stream_formats[fmtind-1].list_stream_cap[res_index-1].framerate_num = NULL; + vd->list_stream_formats[fmtind-1].list_stream_cap[res_index-1].framerate_denom = NULL; + vd->list_stream_formats[fmtind-1].list_stream_cap[res_index-1].numb_frates = 0; + + /*add frates*/ + int numb_frates = vd->list_stream_formats[mjpg_index].list_stream_cap[i].numb_frates; + int frate_index = 0; + for(j=0; j < numb_frates; j++) + { + int framerate_num = vd->list_stream_formats[mjpg_index].list_stream_cap[i].framerate_num[j]; + int framerate_denom = vd->list_stream_formats[mjpg_index].list_stream_cap[i].framerate_denom[j]; + + frate_index++; + vd->list_stream_formats[fmtind-1].list_stream_cap[res_index-1].numb_frates = frate_index; + vd->list_stream_formats[fmtind-1].list_stream_cap[res_index-1].framerate_num = realloc( + vd->list_stream_formats[fmtind-1].list_stream_cap[res_index-1].framerate_num, + frate_index * sizeof(int)); + if(vd->list_stream_formats[fmtind-1].list_stream_cap[res_index-1].framerate_num == NULL) + { + fprintf(stderr, "V4L2_CORE: FATAL memory allocation failure (add_h264_format): %s\n", strerror(errno)); + exit(-1); + } + + vd->list_stream_formats[fmtind-1].list_stream_cap[res_index-1].framerate_num[frate_index-1] = framerate_num; + vd->list_stream_formats[fmtind-1].list_stream_cap[res_index-1].framerate_denom = realloc( + vd->list_stream_formats[fmtind-1].list_stream_cap[res_index-1].framerate_denom, + frate_index * sizeof(int)); + if(vd->list_stream_formats[fmtind-1].list_stream_cap[res_index-1].framerate_denom == NULL) + { + fprintf(stderr, "V4L2_CORE: FATAL memory allocation failure (add_h264_format): %s\n", strerror(errno)); + exit(-1); + } + vd->list_stream_formats[fmtind-1].list_stream_cap[res_index-1].framerate_denom[frate_index-1] = framerate_denom; + } + } +} + +/* + * sets h264 muxed format (must not be called while streaming) + * args: + * vd - pointer to video device data + * + * asserts: + * vd is not null + * + * returns: void + */ +void set_h264_muxed_format(v4l2_dev_t *vd) +{ + uvcx_video_config_probe_commit_t *config_probe_req = &(vd->h264_config_probe_req); + + /* reset the encoder*/ + uvcx_video_encoder_reset(vd); + + /* + * Get default values (safe) + */ + if(!(vd->h264_no_probe_default)) + uvcx_video_probe(vd, UVC_GET_DEF, config_probe_req); + + /*reset it - must be set on every call*/ + vd->h264_no_probe_default = 0; + + /*set resolution*/ + config_probe_req->wWidth = vd->format.fmt.pix.width; + config_probe_req->wHeight = vd->format.fmt.pix.height; + /*set frame rate in 100ns units*/ + uint32_t frame_interval = (vd->fps_num * 1000000000LL / vd->fps_denom)/100; + config_probe_req->dwFrameInterval = frame_interval; + + /*set the aux stream (h264)*/ + config_probe_req->bStreamMuxOption = STREAMMUX_H264; + + /*probe the format*/ + uvcx_video_probe(vd, UVC_SET_CUR, config_probe_req); + uvcx_video_probe(vd, UVC_GET_CUR, config_probe_req); + + if(config_probe_req->wWidth != vd->format.fmt.pix.width) + { + fprintf(stderr, "V4L2_CORE: H264 config probe: requested width %i but got %i\n", + vd->format.fmt.pix.width, config_probe_req->wWidth); + + vd->format.fmt.pix.width = config_probe_req->wWidth; + } + if(config_probe_req->wHeight != vd->format.fmt.pix.height) + { + fprintf(stderr, "V4L2_CORE: H264 config probe: requested height %i but got %i\n", + vd->format.fmt.pix.height, config_probe_req->wHeight); + + vd->format.fmt.pix.height = config_probe_req->wHeight; + } + if(config_probe_req->dwFrameInterval != frame_interval) + { + fprintf(stderr, "V4L2_CORE: H264 config probe: requested frame interval %i but got %i\n", + frame_interval, config_probe_req->dwFrameInterval); + } + /*commit the format*/ + uvcx_video_commit(vd, config_probe_req); + + /*print probe/commit data*/ + if(verbosity > 0) + print_probe_commit_data(config_probe_req); +} + +/* + * request a frame of type wPictureType to the h264 encoder + * args: + * vd - pointer to video device data + * type - frame type + * + * asserts: + * vd is not null + * + * returns: error code + */ +int request_h264_frame_type(v4l2_dev_t *vd, uint16_t type) +{ + /*asserts*/ + assert(vd != NULL); + + if(vd->h264_unit_id <= 0) + { + if(verbosity > 0) + printf("V4L2_CORE: device doesn't seem to support uvc H264 (%i)\n", vd->h264_unit_id); + return E_NO_STREAM_ERR; + } + + uvcx_picture_type_control_t picture_type_req; + picture_type_req.wLayerID = 0; + picture_type_req.wPicType = type; + + int err = E_OK; + + if((err = v4l2core_query_xu_control(vd, vd->h264_unit_id, UVCX_PICTURE_TYPE_CONTROL, UVC_SET_CUR, &picture_type_req)) < 0) + { + fprintf(stderr, "V4L2_CORE: (UVCX_PICTURE_TYPE_CONTROL) SET_CUR error: %s\n", strerror(errno)); + } + + return err; +} + +/* + * resets the h264 encoder + * args: + * vd - pointer to video device data + * + * asserts: + * vd is not null + * + * returns: 0 on success or error code on fail + */ +int v4l2core_reset_h264_encoder(v4l2_dev_t *vd) +{ + /*asserts*/ + assert(vd != NULL); + + /* reset the encoder*/ + return uvcx_video_encoder_reset(vd); +} + +/* + * get the video rate control mode + * args: + * vd - pointer to video device data + * query - query type + * + * asserts: + * vd is not null + * + * returns: video rate control mode (FIXME: 0xff on error) + */ +uint8_t v4l2core_get_h264_video_rate_control_mode(v4l2_dev_t *vd, uint8_t query) +{ + /*asserts*/ + assert(vd != NULL); + + if(vd->h264_unit_id <= 0) + { + if(verbosity > 0) + printf("V4L2_CORE: device doesn't seem to support uvc H264 (%i)\n", vd->h264_unit_id); + return 0xff; + } + + uvcx_rate_control_mode_t rate_control_mode_req; + rate_control_mode_req.wLayerID = 0; + + if((v4l2core_query_xu_control(vd, vd->h264_unit_id, UVCX_RATE_CONTROL_MODE, query, &rate_control_mode_req)) < 0) + { + fprintf(stderr, "V4L2_CORE: (UVCX_RATE_CONTROL_MODE) query (%u) error: %s\n", query, strerror(errno)); + return 0xff; + } + + return rate_control_mode_req.bRateControlMode; +} + +/* + * set the video rate control mode + * args: + * vd - pointer to video device data + * mode - rate mode + * + * asserts: + * vd is not null + * + * returns: error code ( 0 -OK) + */ +int v4l2core_set_h264_video_rate_control_mode(v4l2_dev_t *vd, uint8_t mode) +{ + /*asserts*/ + assert(vd != NULL); + + if(vd->h264_unit_id <= 0) + { + if(verbosity > 0) + printf("V4L2_CORE: device doesn't seem to support uvc H264 (%i)\n", vd->h264_unit_id); + return E_NO_STREAM_ERR; + } + + uvcx_rate_control_mode_t rate_control_mode_req; + rate_control_mode_req.wLayerID = 0; + rate_control_mode_req.bRateControlMode = mode; + + int err = E_OK; + + if((err = v4l2core_query_xu_control(vd, vd->h264_unit_id, UVCX_RATE_CONTROL_MODE, UVC_SET_CUR, &rate_control_mode_req)) < 0) + { + fprintf(stderr, "V4L2_CORE: (UVCX_RATE_CONTROL_MODE) SET_CUR error: %s\n", strerror(errno)); + } + + return err; +} + +/* + * get the temporal scale mode + * args: + * vd - pointer to video device data + * query - query type + * + * asserts: + * vd is not null + * + * returns: temporal scale mode (FIXME: 0xff on error) + */ +uint8_t v4l2core_get_h264_temporal_scale_mode(v4l2_dev_t *vd, uint8_t query) +{ + /*asserts*/ + assert(vd != NULL); + + if(vd->h264_unit_id <= 0) + { + if(verbosity > 0) + printf("V4L2_CORE: device doesn't seem to support uvc H264 (%i)\n", vd->h264_unit_id); + return 0xff; + } + + uvcx_temporal_scale_mode_t temporal_scale_mode_req; + temporal_scale_mode_req.wLayerID = 0; + + if(v4l2core_query_xu_control(vd, vd->h264_unit_id, UVCX_TEMPORAL_SCALE_MODE, query, &temporal_scale_mode_req) < 0) + { + fprintf(stderr, "V4L2_CORE: (UVCX_TEMPORAL_SCALE_MODE) query (%u) error: %s\n", query, strerror(errno)); + return 0xff; + } + + return temporal_scale_mode_req.bTemporalScaleMode; +} + +/* + * set the temporal scale mode + * args: + * vd - pointer to video device data + * mode - temporal scale mode + * + * asserts: + * vd is not null + * + * returns: error code ( 0 -OK) + */ +int v4l2core_set_h264_temporal_scale_mode(v4l2_dev_t *vd, uint8_t mode) +{ + /*asserts*/ + assert(vd != NULL); + + if(vd->h264_unit_id <= 0) + { + if(verbosity > 0) + printf("V4L2_CORE: device doesn't seem to support uvc H264 (%i)\n", vd->h264_unit_id); + return E_NO_STREAM_ERR; + } + + uvcx_temporal_scale_mode_t temporal_scale_mode_req; + temporal_scale_mode_req.wLayerID = 0; + temporal_scale_mode_req.bTemporalScaleMode = mode; + + int err = 0; + + if((err = v4l2core_query_xu_control(vd, vd->h264_unit_id, UVCX_TEMPORAL_SCALE_MODE, UVC_SET_CUR, &temporal_scale_mode_req)) < 0) + { + fprintf(stderr, "V4L2_CORE: (UVCX_TEMPORAL_SCALE_MODE) SET_CUR error: %s\n", strerror(errno)); + } + + return err; +} + +/* + * get the spatial scale mode + * args: + * vd - pointer to video device data + * query - query type + * + * asserts: + * vd is not null + * + * returns: temporal scale mode (FIXME: 0xff on error) + */ +uint8_t v4l2core_get_h264_spatial_scale_mode(v4l2_dev_t *vd, uint8_t query) +{ + /*asserts*/ + assert(vd != NULL); + + if(vd->h264_unit_id <= 0) + { + if(verbosity > 0) + printf("V4L2_CORE: device doesn't seem to support uvc H264 (%i)\n", vd->h264_unit_id); + return 0xff; + } + + uvcx_spatial_scale_mode_t spatial_scale_mode_req; + spatial_scale_mode_req.wLayerID = 0; + + if(v4l2core_query_xu_control(vd, vd->h264_unit_id, UVCX_SPATIAL_SCALE_MODE, query, &spatial_scale_mode_req) < 0) + { + fprintf(stderr, "V4L2_CORE: (UVCX_SPATIAL_SCALE_MODE) query (%u) error: %s\n", query, strerror(errno)); + return 0xff; + } + + return spatial_scale_mode_req.bSpatialScaleMode; +} + +/* + * set the spatial scale mode + * args: + * vd - pointer to video device data + * mode - spatial scale mode + * + * asserts: + * vd is not null + * + * returns: error code ( 0 -OK) + */ +int v4l2core_set_h264_spatial_scale_mode(v4l2_dev_t *vd, uint8_t mode) +{ + /*asserts*/ + assert(vd != NULL); + + if(vd->h264_unit_id <= 0) + { + if(verbosity > 0) + printf("V4L2_CORE: device doesn't seem to support uvc H264 (%i)\n", vd->h264_unit_id); + return E_NO_STREAM_ERR; + } + + uvcx_spatial_scale_mode_t spatial_scale_mode_req; + spatial_scale_mode_req.wLayerID = 0; + spatial_scale_mode_req.bSpatialScaleMode = mode; + + int err = 0; + + if((err = v4l2core_query_xu_control(vd, vd->h264_unit_id, UVCX_SPATIAL_SCALE_MODE, UVC_SET_CUR, &spatial_scale_mode_req)) < 0) + { + fprintf(stderr, "V4L2_CORE: (UVCX_SPATIAL_SCALE_MODE) SET_CUR error: %s\n", strerror(errno)); + } + + return err; +} + +/* + * query the frame rate config + * args: + * vd - pointer to video device data + * query - query type + * + * asserts: + * vd is not null + * + * returns: frame rate config (FIXME: 0xffffffff on error) + */ +uint32_t v4l2core_query_h264_frame_rate_config(v4l2_dev_t *vd, uint8_t query) +{ + /*asserts*/ + assert(vd != NULL); + + if(vd->h264_unit_id <= 0) + { + if(verbosity > 0) + printf("V4L2_CORE: device doesn't seem to support uvc H264 (%i)\n", vd->h264_unit_id); + return 0xffffffff; + } + + uvcx_framerate_config_t framerate_req; + framerate_req.wLayerID = 0; + + if(v4l2core_query_xu_control(vd, vd->h264_unit_id, UVCX_FRAMERATE_CONFIG, query, &framerate_req) < 0) + { + fprintf(stderr, "V4L2_CORE: (UVCX_FRAMERATE_CONFIG) query (%u) error: %s\n", query, strerror(errno)); + return 0xffffffff; + } + + return framerate_req.dwFrameInterval; +} + +/* + * get the frame rate config + * args: + * vd - pointer to video device data + * + * asserts: + * vd is not null + * + * returns: frame rate config (FIXME: 0xffffffff on error) + */ +uint32_t v4l2core_get_h264_frame_rate_config(v4l2_dev_t *vd) +{ + return v4l2core_query_h264_frame_rate_config(vd, UVC_GET_CUR); +} + +/* + * set the frame rate config + * args: + * vd - pointer to video device data + * framerate - framerate + * + * asserts: + * vd is not null + * + * returns: error code ( 0 -OK) + */ +int v4l2core_set_h264_frame_rate_config(v4l2_dev_t *vd, uint32_t framerate) +{ + /*asserts*/ + assert(vd != NULL); + + if(vd->h264_unit_id <= 0) + { + if(verbosity > 0) + printf("V4L2_CORE: device doesn't seem to support uvc H264 (%i)\n", vd->h264_unit_id); + return E_NO_STREAM_ERR; + } + + uvcx_framerate_config_t framerate_req; + framerate_req.wLayerID = 0; + framerate_req.dwFrameInterval = framerate; + + int err = 0; + + if((err = v4l2core_query_xu_control(vd, vd->h264_unit_id, UVCX_FRAMERATE_CONFIG, UVC_SET_CUR, &framerate_req)) < 0) + { + fprintf(stderr, "V4L2_CORE: (UVCX_FRAMERATE_CONFIG) SET_CUR error: %s\n", strerror(errno)); + } + + return err; +} + +/* + * updates the h264_probe_commit_req field + * args: + * vd - pointer to video device data + * query - (UVC_GET_CUR; UVC_GET_MAX; UVC_GET_MIN) + * config_probe_cur - pointer to uvcx_video_config_probe_commit_t: + * if null vd->h264_config_probe_req will be used + * + * asserts: + * vd is not null + * + * returns: error code ( 0 -OK) + */ +int v4l2core_probe_h264_config_probe_req( + v4l2_dev_t *vd, + uint8_t query, + uvcx_video_config_probe_commit_t *config_probe_req) +{ + /*asserts*/ + assert(vd != NULL); + + if(vd->h264_unit_id <= 0) + { + if(verbosity > 0) + printf("V4L2_CORE: device doesn't seem to support uvc H264 (%i)\n", vd->h264_unit_id); + return E_NO_STREAM_ERR; + } + + if(config_probe_req == NULL) + config_probe_req = &(vd->h264_config_probe_req); + + return uvcx_video_probe(vd, query, config_probe_req); +} + +/* + * ############# H264 decoder ############## + */ + +/* + * check if h264 decoder is available from libavcodec + * args: + * none + * + * asserts: + * none + * + * returns: TRUE (1) + * FALSE(0) + */ +//uint8_t h264_has_decoder() +//{ +// if(avcodec_find_decoder(AV_CODEC_ID_H264)) +// return TRUE; +// else +// return FALSE; +//} + +/* + * init h264 decoder context + * args: + * width - image width + * height - image height + * + * asserts: + * none + * + * returns: error code (0 - E_OK) + */ +int h264_init_decoder(int width, int height) +{ +#if !LIBAVCODEC_VER_AT_LEAST(53,34) + avcodec_init(); +#endif + /* + * register all the codecs (we can also register only the codec + * we wish to have smaller code) + */ + avcodec_register_all(); + + if(h264_ctx != NULL) + h264_close_decoder(); + + h264_ctx = calloc(1, sizeof(h264_decoder_context_t)); + if(h264_ctx == NULL) + { + fprintf(stderr, "V4L2_CORE: FATAL memory allocation failure (h264_init_decoder): %s\n", strerror(errno)); + exit(-1); + } + + h264_ctx->codec = avcodec_find_decoder(AV_CODEC_ID_H264); + if(!h264_ctx->codec) + { + fprintf(stderr, "V4L2_CORE: (H264 decoder) codec not found (please install libavcodec-extra for H264 support)\n"); + free(h264_ctx); + h264_ctx = NULL; + return E_NO_CODEC; + } + +#if LIBAVCODEC_VER_AT_LEAST(53,6) + h264_ctx->context = avcodec_alloc_context3(h264_ctx->codec); + avcodec_get_context_defaults3 (h264_ctx->context, h264_ctx->codec); +#else + h264_ctx->context = avcodec_alloc_context(); + avcodec_get_context_defaults(h264_ctx->context); +#endif + if(h264_ctx->context == NULL) + { + fprintf(stderr, "V4L2_CORE: FATAL memory allocation failure (h264_init_decoder): %s\n", strerror(errno)); + exit(-1); + } + + h264_ctx->context->flags2 |= CODEC_FLAG2_FAST; + h264_ctx->context->pix_fmt = PIX_FMT_YUV420P; + h264_ctx->context->width = width; + h264_ctx->context->height = height; + //h264_ctx->context->dsp_mask = (FF_MM_MMX | FF_MM_MMXEXT | FF_MM_SSE); + +#if LIBAVCODEC_VER_AT_LEAST(53,6) + if (avcodec_open2(h264_ctx->context, h264_ctx->codec, NULL) < 0) +#else + if (avcodec_open(h264_ctx->context, h264_ctx->codec) < 0) +#endif + { + fprintf(stderr, "V4L2_CORE: (H264 decoder) couldn't open codec\n"); + avcodec_close(h264_ctx->context); + free(h264_ctx->context); + free(h264_ctx); + h264_ctx = NULL; + return E_NO_CODEC; + } + +#if LIBAVCODEC_VER_AT_LEAST(55,28) + h264_ctx->picture = av_frame_alloc(); + av_frame_unref(h264_ctx->picture); +#else + h264_ctx->picture = avcodec_alloc_frame(); + avcodec_get_frame_defaults(h264_ctx->picture); +#endif + + h264_ctx->pic_size = avpicture_get_size(h264_ctx->context->pix_fmt, width, height); + h264_ctx->width = width; + h264_ctx->height = height; + + return E_OK; +} + +/* + * decode h264 frame + * args: + * out_buf - pointer to decoded data + * in_buf - pointer to h264 data + * size - in_buf size + * + * asserts: + * h264_ctx is not null + * in_buf is not null + * out_buf is not null + * + * returns: decoded data size + */ +int h264_decode(uint8_t *out_buf, uint8_t *in_buf, int size) +{ + /*asserts*/ + assert(h264_ctx != NULL); + assert(in_buf != NULL); + assert(out_buf != NULL); + + AVPacket avpkt; + + av_init_packet(&avpkt); + + avpkt.size = size; + avpkt.data = in_buf; + + int got_picture = 0; + int len = avcodec_decode_video2(h264_ctx->context, h264_ctx->picture, &got_picture, &avpkt); + + if(len < 0) + { + fprintf(stderr, "V4L2_CORE: (H264 decoder) error while decoding frame\n"); + return len; + } + + if(got_picture) + { + avpicture_layout((AVPicture *) h264_ctx->picture, h264_ctx->context->pix_fmt, + h264_ctx->width, h264_ctx->height, out_buf, h264_ctx->pic_size); + return len; + } + else + return 0; + +} + +/* + * close h264 decoder context + * args: + * none + * + * asserts: + * none + * + * returns: none + */ +void h264_close_decoder() +{ + if(h264_ctx == NULL) + return; + + avcodec_close(h264_ctx->context); + + free(h264_ctx->context); + +#if LIBAVCODEC_VER_AT_LEAST(55,28) + av_frame_free(&h264_ctx->picture); +#else + #if LIBAVCODEC_VER_AT_LEAST(54,28) + avcodec_free_frame(&h264_ctx->picture); + #else + av_freep(&h264_ctx->picture); + #endif +#endif + + free(h264_ctx); + + h264_ctx = NULL; +} diff -Nru guvcview-1.7.3/gview_v4l2core/uvc_h264.h guvcview-2.0.1+ubuntu1~ppa1/gview_v4l2core/uvc_h264.h --- guvcview-1.7.3/gview_v4l2core/uvc_h264.h 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/gview_v4l2core/uvc_h264.h 2014-10-05 10:41:44.000000000 +0000 @@ -0,0 +1,386 @@ +/*******************************************************************************# +# guvcview http://guvcview.sourceforge.net # +# # +# Paulo Assis # +# # +# This program is free software; you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation; either version 2 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program; if not, write to the Free Software # +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # +# # +********************************************************************************/ + +#ifndef UVC_H264_H +#define UVC_H264_H + +#include "gviewv4l2core.h" + +/*H264 support type*/ +#define H264_NONE (0) +#define H264_FRAME (1) +#define H264_MUXED (2) + +typedef struct +{ + int8_t bLength; + int8_t bDescriptorType; + int8_t bDescriptorSubType; + int8_t bUnitID; + uint8_t guidExtensionCode[16]; +} __attribute__ ((__packed__)) xu_descriptor; + +/* UVC H.264 control selectors */ +#define UVCX_VIDEO_CONFIG_PROBE 0x01 +#define UVCX_VIDEO_CONFIG_COMMIT 0x02 +#define UVCX_RATE_CONTROL_MODE 0x03 +#define UVCX_TEMPORAL_SCALE_MODE 0x04 +#define UVCX_SPATIAL_SCALE_MODE 0x05 +#define UVCX_SNR_SCALE_MODE 0x06 +#define UVCX_LTR_BUFFER_SIZE_CONTROL 0x07 +#define UVCX_LTR_PICTURE_CONTROL 0x08 +#define UVCX_PICTURE_TYPE_CONTROL 0x09 +#define UVCX_VERSION 0x0A +#define UVCX_ENCODER_RESET 0x0B +#define UVCX_FRAMERATE_CONFIG 0x0C +#define UVCX_VIDEO_ADVANCE_CONFIG 0x0D +#define UVCX_BITRATE_LAYERS 0x0E +#define UVCX_QP_STEPS_LAYERS 0x0F + +/* bmHints defines */ +#define BMHINTS_RESOLUTION 0x0001 +#define BMHINTS_PROFILE 0x0002 +#define BMHINTS_RATECONTROL 0x0004 +#define BMHINTS_USAGE 0x0008 +#define BMHINTS_SLICEMODE 0x0010 +#define BMHINTS_SLICEUNITS 0x0020 +#define BMHINTS_MVCVIEW 0x0040 +#define BMHINTS_TEMPORAL 0x0080 +#define BMHINTS_SNR 0x0100 +#define BMHINTS_SPATIAL 0x0200 +#define BMHINTS_SPATIAL_RATIO 0x0400 +#define BMHINTS_FRAME_INTERVAL 0x0800 +#define BMHINTS_LEAKY_BKT_SIZE 0x1000 +#define BMHINTS_BITRATE 0x2000 +#define BMHINTS_ENTROPY 0x4000 +#define BMHINTS_IFRAMEPERIOD 0x8000 + +/* wSliceMode defines */ +#define SLICEMODE_BITSPERSLICE 0x0001 +#define SLICEMODE_MBSPERSLICE 0x0002 +#define SLICEMODE_SLICEPERFRAME 0x0003 + +/*********************************************************************************************************************** +* bUsageType defines +* The bUsageType used in Probe/Commit structure. The UCCONFIG parameters are based on "UCConfig Modes v1.1". +* bUsageType UCConfig Description +* 4 0 Non-scalable single layer AVC bitstream with simulcast(number of simulcast streams>=1) +* 5 1 SVC temporal scalability with hierarchical P with simulcast(number of simulcast streams>=1) +* 6 2q SVC temporal scalability + Quality/SNR scalability with simulcast(number of simulcast streams>=1) +* 7 2s SVC temporal scalability + spatial scalability with simulcast(number of simulcast streams>=1) +* 8 3 Full SVC scalability (temporal scalability + SNR scalability + spatial scalability) +* with simulcast(number of simulcast streams>=1) +************************************************************************************************************************/ + +#define USAGETYPE_REALTIME 0x01 +#define USAGETYPE_BROADCAST 0x02 +#define USAGETYPE_STORAGE 0x03 +#define USAGETYPE_UCCONFIG_0 0x04 +#define USAGETYPE_UCCONFIG_1 0x05 +#define USAGETYPE_UCCONFIG_2Q 0x06 +#define USAGETYPE_UCCONFIG_2S 0x07 +#define USAGETYPE_UCCONFIG_3 0x08 + +/* bRateControlMode defines */ +#define RATECONTROL_CBR 0x01 +#define RATECONTROL_VBR 0x02 +#define RATECONTROL_CONST_QP 0x03 +#define RATECONTROL_FIXED_FRM_FLG 0x10 + +/* bStreamFormat defines */ +#define STREAMFORMAT_ANNEXB 0x00 +#define STREAMFORMAT_NAL 0x01 + +/* bEntropyCABAC defines */ +#define ENTROPY_CAVLC 0x00 +#define ENTROPY_CABAC 0x01 + +/* bTimingstamp defines */ +#define TIMESTAMP_SEI_DISABLE 0x00 +#define TIMESTAMP_SEI_ENABLE 0x01 + +/* bPreviewFlipped defines */ +#define PREFLIPPED_DISABLE 0x00 +#define PREFLIPPED_HORIZONTAL 0x01 + +/* wPictureType defines */ +#define PICTURE_TYPE_IFRAME 0x0000 //Generate an IFRAME +#define PICTURE_TYPE_IDR 0x0001 //Generate an IDR +#define PICTURE_TYPE_IDR_FULL 0x0002 //Generate an IDR frame with new SPS and PPS + +/* bStreamMuxOption defines */ +#define STREAMMUX_H264 (1 << 0) | (1 << 1) +#define STREAMMUX_YUY2 (1 << 0) | (1 << 2) +#define STREAMMUX_YUYV (1 << 0) | (1 << 2) +#define STREAMMUX_NV12 (1 << 0) | (1 << 3) + +/* wLayerID Macro */ + +/* wLayerID + |------------+------------+------------+----------------+------------| + | Reserved | StreamID | QualityID | DependencyID | TemporalID | + | (3 bits) | (3 bits) | (3 bits) | (4 bits) | (3 bits) | + |------------+------------+------------+----------------+------------| + |15 13|12 10|9 7|6 3|2 0| + |------------+------------+------------+----------------+------------| +*/ + +#define xLayerID(stream_id, quality_id, dependency_id, temporal_id) ((((stream_id)&7)<<10)|(((quality_id)&7)<<7)|(((dependency_id)&15)<<3)|((temporal_id)&7)) + +/* id extraction from wLayerID */ +#define xStream_id(layer_id) (((layer_id)>>10)&7) +#define xQuality_id(layer_id) (((layer_id)>>7)&7) +#define xDependency_id(layer_id) (((layer_id)>>3)&15) +#define xTemporal_id(layer_id) ((layer_id)&7) + +/* h264 probe commit struct (defined in gviewv4l2core.h) */ + +/* rate control */ +typedef struct _uvcx_rate_control_mode_t +{ + uint16_t wLayerID; + uint8_t bRateControlMode; +} __attribute__((__packed__)) uvcx_rate_control_mode_t; + +/* temporal scale */ +typedef struct _uvcx_temporal_scale_mode_t +{ + uint16_t wLayerID; + uint8_t bTemporalScaleMode; +} __attribute__((__packed__)) uvcx_temporal_scale_mode_t; + +/* spatial scale mode */ +typedef struct _uvcx_spatial_scale_mode_t +{ + uint16_t wLayerID; + uint8_t bSpatialScaleMode; +} __attribute__((__packed__)) uvcx_spatial_scale_mode_t; + +/* snr scale mode */ +typedef struct _uvcx_snr_scale_mode_t +{ + uint16_t wLayerID; + uint8_t bSNRScaleMode; + uint8_t bMGSSublayerMode; +} __attribute__((__packed__)) uvcx_snr_scale_mode_t; + +/* buffer size control*/ +typedef struct _uvcx_ltr_buffer_size_control_t +{ + uint16_t wLayerID; + uint8_t bLTRBufferSize; + uint8_t bLTREncoderControl; +} __attribute__((__packed__)) uvcx_ltr_buffer_size_control_t; + +/* ltr picture control */ +typedef struct _uvcx_ltr_picture_control +{ + uint16_t wLayerID; + uint8_t bPutAtPositionInLTRBuffer; + uint8_t bEncodeUsingLTR; +} __attribute__((__packed__)) uvcx_ltr_picture_control; + +/* picture type control */ +typedef struct _uvcx_picture_type_control_t +{ + uint16_t wLayerID; + uint16_t wPicType; +} __attribute__((__packed__)) uvcx_picture_type_control_t; + +/* version */ +typedef struct _uvcx_version_t +{ + uint16_t wVersion; +} __attribute__((__packed__)) uvcx_version_t; + +/* encoder reset */ +typedef struct _uvcx_encoder_reset +{ + uint16_t wLayerID; +} __attribute__((__packed__)) uvcx_encoder_reset; + +/* frame rate */ +typedef struct _uvcx_framerate_config_t +{ + uint16_t wLayerID; + uint32_t dwFrameInterval; +} __attribute__((__packed__)) uvcx_framerate_config_t; + +/* advance config */ +typedef struct _uvcx_video_advance_config_t +{ + uint16_t wLayerID; + uint32_t dwMb_max; + uint8_t blevel_idc; + uint8_t bReserved; +} __attribute__((__packed__)) uvcx_video_advance_config_t; + +/* bit rate */ +typedef struct _uvcx_bitrate_layers_t +{ + uint16_t wLayerID; + uint32_t dwPeakBitrate; + uint32_t dwAverageBitrate; +} __attribute__((__packed__)) uvcx_bitrate_layers_t; + +/* qp steps */ +typedef struct _uvcx_qp_steps_layers_t +{ + uint16_t wLayerID; + uint8_t bFrameType; + uint8_t bMinQp; + uint8_t bMaxQp; +} __attribute__((__packed__)) uvcx_qp_steps_layers_t; + +/* + * get h264 support type + * args: + * none + * + * asserts: + * none + * + * returns: support type (H264_NONE; H264_MUXED; H264_FRAME) + */ +int h264_get_support(); + +/* + * gets the uvc h264 xu control unit id, if any + * args: + * vd - pointer to video device data + * + * asserts: + * vd is not null + * vd->list_devices is not null + * + * returns: unit id or 0 if none + * (also sets vd->h264_unit_id) + */ +uint8_t get_uvc_h624_unit_id (v4l2_dev_t *vd); + +/* + * check for uvc h264 support by querying UVCX_VERSION + * although geting a unit id > 0 from xu_get_unit_id + * should be enought + * args: + * vd - pointer to video device data + * + * asserts: + * vd is not null + * vd->fd is valid ( > 0 ) + * + * returns: 1 if support available or 0 otherwise + */ +int check_h264_support(v4l2_dev_t *vd); + +/* + * adds h264 to the format list, if supported by device + * args: + * vd - pointer to video device data + * + * asserts: + * vd is not null + * vd->list_stream_formats is not null + * + * returns: void + */ +void add_h264_format(v4l2_dev_t *vd); + +/* + * sets h264 muxed format (must not be called while streaming) + * args: + * vd - pointer to video device data + * + * asserts: + * vd is not null + * + * returns: void + */ +void set_h264_muxed_format(v4l2_dev_t *vd); + +/* + * check if h264 decoder is available from libavcodec + * args: + * none + * + * asserts: + * none + * + * returns: TRUE (1) + * FALSE(0) + */ +//uint8_t h264_has_decoder(); + +/* + * request a frame of type wPictureType to the h264 encoder + * args: + * vd - pointer to video device data + * type - frame type + * + * asserts: + * vd is not null + * + * returns: error code + */ +int request_h264_frame_type(v4l2_dev_t *vd, uint16_t type); + +/* + * init h264 decoder context + * args: + * width - image width + * height - image height + * + * asserts: + * none + * + * returns: error code (0 - E_OK) + */ +int h264_init_decoder(int width, int height); + +/* + * decode h264 frame + * args: + * out_buf - pointer to decoded data + * in_buf - pointer to h264 data + * size - in_buf size + * + * asserts: + * h264_ctx is not null + * in_buf is not null + * out_buf is not null + * + * returns: decoded data size + */ +int h264_decode(uint8_t *out_buf, uint8_t *in_buf, int size); + +/* + * close h264 decoder context + * args: + * none + * + * asserts: + * none + * + * returns: none + */ +void h264_close_decoder(); + +#endif /*UVC_H264_H*/ diff -Nru guvcview-1.7.3/gview_v4l2core/v4l2_controls.c guvcview-2.0.1+ubuntu1~ppa1/gview_v4l2core/v4l2_controls.c --- guvcview-1.7.3/gview_v4l2core/v4l2_controls.c 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/gview_v4l2core/v4l2_controls.c 2014-10-05 10:41:44.000000000 +0000 @@ -0,0 +1,1402 @@ +/*******************************************************************************# +# guvcview http://guvcview.sourceforge.net # +# # +# Paulo Assis # +# # +# This program is free software; you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation; either version 2 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program; if not, write to the Free Software # +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # +# # +********************************************************************************/ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +/* support for internationalization - i18n */ +#include +#include + +#include "gviewv4l2core.h" +#include "v4l2_controls.h" +#include "../config.h" + +#ifndef V4L2_CTRL_ID2CLASS +#define V4L2_CTRL_ID2CLASS(id) ((id) & 0x0fff0000UL) +#endif + +extern int verbosity; + +/* + * needed only for language files (not used) + */ +/* V4L2 control strings */ +#define CSTR_USER_CLASS N_("User Controls") +#define CSTR_BRIGHT N_("Brightness") +#define CSTR_CONTRAST N_("Contrast") +#define CSTR_HUE N_("Hue") +#define CSTR_SATURAT N_("Saturation") +#define CSTR_SHARP N_("Sharpness") +#define CSTR_GAMMA N_("Gamma") +#define CSTR_BLCOMP N_("Backlight Compensation") +#define CSTR_PLFREQ N_("Power Line Frequency") +#define CSTR_HUEAUTO N_("Hue, Automatic") +#define CSTR_FOCUSAUTO N_("Focus, Auto") +#define CSTR_EXPMENU1 N_("Manual Mode") +#define CSTR_EXPMENU2 N_("Auto Mode") +#define CSTR_EXPMENU3 N_("Shutter Priority Mode") +#define CSTR_EXPMENU4 N_("Aperture Priority Mode") +#define CSTR_BLACK_LEVEL N_("Black Level") +#define CSTR_AUTO_WB N_("White Balance, Automatic") +#define CSTR_DO_WB N_("Do White Balance") +#define CSTR_RB N_("Red Balance") +#define CSTR_BB N_("Blue Balance") +#define CSTR_EXP N_("Exposure") +#define CSTR_AUTOGAIN N_("Gain, Automatic") +#define CSTR_GAIN N_("Gain") +#define CSTR_HFLIP N_("Horizontal Flip") +#define CSTR_VFLIP N_("Vertical Flip") +#define CSTR_HCENTER N_("Horizontal Center") +#define CSTR_VCENTER N_("Vertical Center") +#define CSTR_CHR_AGC N_("Chroma AGC") +#define CSTR_CLR_KILL N_("Color Killer") +#define CSTR_COLORFX N_("Color Effects") + +/* CAMERA CLASS control strings */ +#define CSTR_CAMERA_CLASS N_("Camera Controls") +#define CSTR_EXPAUTO N_("Auto Exposure") +#define CSTR_EXPABS N_("Exposure Time, Absolute") +#define CSTR_EXPAUTOPRI N_("Exposure, Dynamic Framerate") +#define CSTR_PAN_REL N_("Pan, Relative") +#define CSTR_TILT_REL N_("Tilt, Relative") +#define CSTR_PAN_RESET N_("Pan, Reset") +#define CSTR_TILT_RESET N_("Tilt, Reset") +#define CSTR_PAN_ABS N_("Pan, Absolute") +#define CSTR_TILT_ABS N_"Tilt, Absolute") +#define CSTR_FOCUS_ABS N_("Focus, Absolute") +#define CSTR_FOCUS_REL N_("Focus, Relative") +#define CSTR_FOCUS_AUTO N_("Focus, Automatic") +#define CSTR_ZOOM_ABS N_("Zoom, Absolute") +#define CSTR_ZOOM_REL N_("Zoom, Relative") +#define CSTR_ZOOM_CONT N_("Zoom, Continuous") +#define CSTR_PRIV N_("Privacy") + +/* UVC specific control strings */ +#define CSTR_EXPAUTO_UVC N_("Exposure, Auto") +#define CSTR_EXPAUTOPRI_UVC N_("Exposure, Auto Priority") +#define CSTR_EXPABS_UVC N_("Exposure (Absolute)") +#define CSTR_WBTAUTO_UVC N_("White Balance Temperature, Auto") +#define CSTR_WBT_UVC N_("White Balance Temperature") +#define CSTR_WBCAUTO_UVC N_("White Balance Component, Auto") +#define CSTR_WBCB_UVC N_("White Balance Blue Component") +#define CSTR_WBCR_UVC N_("White Balance Red Component") + +/* libwebcam specific control strings */ +#define CSTR_FOCUS_LIBWC N_("Focus") +#define CSTR_FOCUSABS_LIBWC N_("Focus (Absolute)") + + +/* + * don't use xioctl for control query when using V4L2_CTRL_FLAG_NEXT_CTRL + * args: + * vd - pointer to video device data + * current_ctrl - current control id + * ctrl - pointer to v4l2_queryctrl data + * + * asserts: + * vd is not null + * vd->fd is valid ( > 0 ) + * ctrl is not null + * + * returns: error code + */ +static int query_ioctl(v4l2_dev_t *vd, int current_ctrl, struct v4l2_queryctrl* ctrl) +{ + /*assertions*/ + assert(vd != NULL); + assert(vd->fd > 0); + assert(ctrl != NULL); + + int ret = 0; + int tries = 4; + do + { + if(ret) + ctrl->id = current_ctrl | V4L2_CTRL_FLAG_NEXT_CTRL; + ret = v4l2_ioctl(vd->fd, VIDIOC_QUERYCTRL, ctrl); + } + while (ret && tries-- && + ((errno == EIO || errno == EPIPE || errno == ETIMEDOUT))); + + return(ret); +} + +/* + * output control data + * args: + * control - pointer to control data + * i - control index (from control list) + * + * asserts: + * control is not null + * + * returns: void + */ +static void print_control(v4l2_ctrl_t *control, int i) +{ + /*assertions*/ + assert(control != NULL); + + int j=0; + + switch (control->control.type) + { + case V4L2_CTRL_TYPE_INTEGER: + printf("control[%d]:(int) 0x%x '%s'\n",i ,control->control.id, control->name); + printf("\tmin:%d max:%d step:%d def:%d curr:%d\n", + control->control.minimum, control->control.maximum, control->control.step, + control->control.default_value, control->value); + break; + +#ifdef V4L2_CTRL_TYPE_INTEGER64 + case V4L2_CTRL_TYPE_INTEGER64: + printf("control[%d]:(int64) 0x%x '%s'\n",i ,control->control.id, control->name); + printf ("\tcurr:%" PRIu64 "\n", control->value64); + break; +#endif +#ifdef V4L2_CTRL_TYPE_STRING + case V4L2_CTRL_TYPE_STRING: + printf("control[%d]:(str) 0x%x '%s'\n",i ,control->control.id, control->name); + printf ("\tmin:%d max:%d step:%d\n", + control->control.minimum, control->control.maximum, control->control.step); + break; +#endif + case V4L2_CTRL_TYPE_BOOLEAN: + printf("control[%d]:(bool) 0x%x '%s'\n",i ,control->control.id, control->name); + printf ("\tdef:%d curr:%d\n", + control->control.default_value, control->value); + break; + + case V4L2_CTRL_TYPE_MENU: + printf("control[%d]:(menu) 0x%x '%s'\n",i ,control->control.id, control->name); + printf("\tmin:%d max:%d def:%d curr:%d\n", + control->control.minimum, control->control.maximum, + control->control.default_value, control->value); + for (j = 0; control->menu[j].index <= control->control.maximum; j++) + printf("\tmenu[%d]: [%d] -> '%s'\n", j, control->menu[j].index, control->menu_entry[j]); + break; + +#ifdef V4L2_CTRL_TYPE_INTEGER_MENU + case V4L2_CTRL_TYPE_INTEGER_MENU: + printf("control[%d]:(intmenu) 0x%x '%s'\n",i ,control->control.id, control->name); + printf("\tmin:%d max:%d def:%d curr:%d\n", + control->control.minimum, control->control.maximum, + control->control.default_value, control->value); + for (j = 0; control->menu[j].index <= control->control.maximum; j++) + printf("\tmenu[%d]: [%d] -> %" PRId64 " (0x%" PRIx64 ")", j, control->menu[j].index, + (int64_t) control->menu[j].value, + (int64_t) control->menu[j].value); + break; +#endif + case V4L2_CTRL_TYPE_BUTTON: + printf("control[%d]:(button) 0x%x '%s'\n",i ,control->control.id, control->name); + break; + +#ifdef V4L2_CTRL_TYPE_BITMASK + case V4L2_CTRL_TYPE_BITMASK: + printf("control[%d]:(bitmask) 0x%x '%s'\n",i ,control->control.id, control->name); + printf("\tmax:%d def:%d curr:%d\n", + control->control.maximum, control->control.default_value, control->value); +#endif + default: + printf("control[%d]:(unknown - 0x%x) 0x%x '%s'\n",i ,control->control.type, + control->control.id, control->control.name); + break; + } +} + +/* + * prints control list to stdout + * args: + * vd - pointer to video device data + * + * asserts: + * vd is not null + * vd->list_device_controls is not null + * + * returns: void + */ +static void print_control_list(v4l2_dev_t *vd) +{ + /*asserts*/ + assert(vd != NULL); + assert(vd->list_device_controls != NULL); + + int i = 0; + v4l2_ctrl_t *current = vd->list_device_controls; + + for(; current != NULL; current = current->next) + { + print_control(current, i); + i++; + } +} + +/* + * add control to control list + * args: + * vd - pointer to video device data + * queryctrl - pointer to v4l2_queryctrl data + * current - pointer to pointer of current control from control list + * first - pointer to pointer of first control from control list + * + * asserts: + * vd is not null + * vd->fd is valid + * queryctrl is not null + * + * returns: pointer to newly added control + */ +static v4l2_ctrl_t *add_control(v4l2_dev_t *vd, struct v4l2_queryctrl* queryctrl, v4l2_ctrl_t **current, v4l2_ctrl_t **first) +{ + /*assertions*/ + assert(vd != NULL); + assert(vd->fd > 0); + assert(queryctrl != NULL); + int menu_entries = 0; + + v4l2_ctrl_t *control = NULL; + struct v4l2_querymenu* menu = NULL; //menu list + struct v4l2_querymenu* old_menu = menu; //temp menu list pointer + + if (queryctrl->flags & V4L2_CTRL_FLAG_DISABLED) + { + printf("V4L2_CORE: Control 0x%08x is disabled: remove it from control list\n", queryctrl->id); + return NULL; + } + + //check menu items if needed + if(queryctrl->type == V4L2_CTRL_TYPE_MENU +#ifdef V4L2_CTRL_TYPE_INTEGER_MENU + || queryctrl->type == V4L2_CTRL_TYPE_INTEGER_MENU +#endif + ) + { + int i = 0; + struct v4l2_querymenu querymenu={0}; + + for (querymenu.index = queryctrl->minimum; + querymenu.index <= queryctrl->maximum; + querymenu.index++) + { + querymenu.id = queryctrl->id; + if (xioctl (vd->fd, VIDIOC_QUERYMENU, &querymenu) < 0) + continue; + + old_menu = menu; + + if(!menu) + menu = calloc(i+1, sizeof(struct v4l2_querymenu)); + else + menu = realloc(menu, (i+1) * sizeof(struct v4l2_querymenu)); + + if(menu == NULL) + { + /*since we exit on failure there was no need to free any previous */ + /* menu allocation (realloc), but silence cppcheck anyway */ + if(old_menu) + free(old_menu); + + fprintf(stderr, "V4L2_CORE: FATAL memory allocation failure (add_control): %s\n", strerror(errno)); + exit(-1); + } + + memcpy(&(menu[i]), &querymenu, sizeof(struct v4l2_querymenu)); + i++; + } + + old_menu = menu; + + /*last entry (NULL name)*/ + if(!menu) + menu = calloc(i+1, sizeof(struct v4l2_querymenu)); + else + menu = realloc(menu, (i+1) * sizeof(struct v4l2_querymenu)); + + if(menu == NULL) + { + /*since we exit on failure there was no need to free any previous */ + /* menu allocation (realloc), but silence cppcheck anyway */ + if(old_menu) + free(old_menu); + + fprintf(stderr, "V4L2_CORE: FATAL memory allocation failure (add_control): %s\n", strerror(errno)); + exit(-1); + } + + menu[i].id = querymenu.id; + menu[i].index = queryctrl->maximum+1; + if(queryctrl->type == V4L2_CTRL_TYPE_MENU) + menu[i].name[0] = 0; + menu_entries = i; + } + + /*check for focus control to enable software autofocus*/ + if(queryctrl->id == V4L2_CID_FOCUS_LOGITECH || + queryctrl->id == V4L2_CID_FOCUS_ABSOLUTE) + vd->has_focus_control_id = queryctrl->id; + /*check for pan/tilt control*/ + else if(queryctrl->id == V4L2_CID_TILT_RELATIVE || + queryctrl->id == V4L2_CID_PAN_RELATIVE) + vd->has_pantilt_control_id = 1; + + // Add the control to the linked list + control = calloc (1, sizeof(v4l2_ctrl_t)); + if(control == NULL) + { + fprintf(stderr, "V4L2_CORE: FATAL memory allocation failure (add_control): %s\n", strerror(errno)); + exit(-1); + } + memcpy(&(control->control), queryctrl, sizeof(struct v4l2_queryctrl)); + control->class = V4L2_CTRL_ID2CLASS(control->control.id); + control->name = strdup(dgettext(GETTEXT_PACKAGE_V4L2CORE, control->control.name)); + //add the menu adress (NULL if not a menu) + control->menu = menu; + if(control->menu != NULL && control->control.type == V4L2_CTRL_TYPE_MENU) + { + int i = 0; + control->menu_entry = calloc(menu_entries, sizeof(char *)); + if(control->menu_entry == NULL) + { + fprintf(stderr, "V4L2_CORE: FATAL memory allocation failure (add_control): %s\n", strerror(errno)); + exit(-1); + } + for(i = 0; i< menu_entries; i++) + control->menu_entry[i] = strdup(dgettext(GETTEXT_PACKAGE_V4L2CORE, control->menu[i].name)); + control->menu_entries = menu_entries; + } + else + { + control->menu_entries = 0; + control->menu_entry = NULL; + } +#ifdef V4L2_CTRL_TYPE_STRING + //allocate a string with max size if needed + if(control->control.type == V4L2_CTRL_TYPE_STRING) + { + control->string = (char *) calloc (control->control.maximum + 1, sizeof(char)); + if(control->string == NULL) + { + fprintf(stderr, "V4L2_CORE: FATAL memory allocation failure (add_control): %s\n", strerror(errno)); + exit(-1); + } + } + else +#endif + control->string = NULL; + + if(*first != NULL) + { + (*current)->next = control; + *current = control; + } + else + { + *first = control; + *current = *first; + } + + return control; +} + +/* + * enumerate device (read/write) controls + * args: + * vd - pointer to video device data + * + * asserts: + * vd is not null + * vd->fd is valid ( > 0 ) + * vd->list_device_controls is null + * + * returns: error code + */ +int enumerate_v4l2_control(v4l2_dev_t *vd) +{ + /*assertions*/ + assert(vd != NULL); + assert(vd->fd > 0); + assert(vd->list_device_controls == NULL); + + int ret=0; + v4l2_ctrl_t *current = NULL; + + int n = 0; + struct v4l2_queryctrl queryctrl={0}; + + int currentctrl = 0; + queryctrl.id = V4L2_CTRL_FLAG_NEXT_CTRL; + + /*try the next_flag method first*/ + while ((ret=query_ioctl(vd, currentctrl, &queryctrl)) == 0) + { + if(add_control(vd, &queryctrl, ¤t, &(vd->list_device_controls)) != NULL) + n++; + + currentctrl = queryctrl.id; + + queryctrl.id |= V4L2_CTRL_FLAG_NEXT_CTRL; + } + + if (queryctrl.id != V4L2_CTRL_FLAG_NEXT_CTRL) + { + vd->num_controls = n; + if(verbosity > 0) + print_control_list(vd); + return E_OK; + } + + if(ret) + fprintf(stderr, "V4L2_CORE: Control 0x%08x failed to query with error %i\n", queryctrl.id, ret); + + printf("buggy V4L2_CTRL_FLAG_NEXT_CTRL flag implementation (workaround enabled)\n"); + + /* + * next_flag method failed, loop through the ids: + * + * USER CLASS Controls + */ + for (currentctrl = V4L2_CID_USER_BASE; currentctrl < V4L2_CID_LASTP1; currentctrl++) + { + queryctrl.id = currentctrl; + if (xioctl(vd->fd, VIDIOC_QUERYCTRL, &queryctrl) == 0) + { + if(add_control(vd, &queryctrl, ¤t, &(vd->list_device_controls)) != NULL) + n++; + } + } + /* CAMERA CLASS Controls */ + for (currentctrl = V4L2_CID_CAMERA_CLASS_BASE; currentctrl < V4L2_CID_CAMERA_CLASS_BASE+32; currentctrl++) + { + queryctrl.id = currentctrl; + if (xioctl(vd->fd, VIDIOC_QUERYCTRL, &queryctrl) == 0) + { + if(add_control(vd, &queryctrl, ¤t, &(vd->list_device_controls)) != NULL) + n++; + } + } + /* PRIVATE controls (deprecated) */ + for (queryctrl.id = V4L2_CID_PRIVATE_BASE; + xioctl(vd->fd, VIDIOC_QUERYCTRL, &queryctrl) == 0; queryctrl.id++) + { + if(add_control(vd, &queryctrl, ¤t, &(vd->list_device_controls)) != NULL) + n++; + } + + vd->num_controls = n; + + if(verbosity > 0) + print_control_list(vd); + + return E_OK; +} + +/* + * update the control flags - called when setting controls + * FIXME: use control events + * + * args: + * vd - pointer to video device data + * id - control id + * + * asserts: + * vd is not null + * + * returns: error code + */ +static void update_ctrl_flags(v4l2_dev_t *vd, int id) +{ + /*asserts*/ + assert(vd != NULL); + + switch (id) + { + case V4L2_CID_EXPOSURE_AUTO: + { + v4l2_ctrl_t *ctrl_this = v4l2core_get_control_by_id(vd, id); + if(ctrl_this == NULL) + break; + + switch (ctrl_this->value) + { + case V4L2_EXPOSURE_AUTO: + { + v4l2_ctrl_t *ctrl_that = v4l2core_get_control_by_id(vd, + V4L2_CID_IRIS_ABSOLUTE ); + if (ctrl_that) + ctrl_that->control.flags |= V4L2_CTRL_FLAG_GRABBED; + + ctrl_that = v4l2core_get_control_by_id(vd, + V4L2_CID_IRIS_RELATIVE ); + if (ctrl_that) + ctrl_that->control.flags |= V4L2_CTRL_FLAG_GRABBED; + ctrl_that = v4l2core_get_control_by_id(vd, + V4L2_CID_EXPOSURE_ABSOLUTE ); + if (ctrl_that) + ctrl_that->control.flags |= V4L2_CTRL_FLAG_GRABBED; + } + break; + + case V4L2_EXPOSURE_APERTURE_PRIORITY: + { + v4l2_ctrl_t *ctrl_that = v4l2core_get_control_by_id(vd, + V4L2_CID_EXPOSURE_ABSOLUTE ); + if (ctrl_that) + ctrl_that->control.flags |= V4L2_CTRL_FLAG_GRABBED; + ctrl_that = v4l2core_get_control_by_id(vd, + V4L2_CID_IRIS_ABSOLUTE ); + if (ctrl_that) + ctrl_that->control.flags &= !(V4L2_CTRL_FLAG_GRABBED); + ctrl_that = v4l2core_get_control_by_id(vd, + V4L2_CID_IRIS_RELATIVE ); + if (ctrl_that) + ctrl_that->control.flags &= !(V4L2_CTRL_FLAG_GRABBED); + } + break; + + case V4L2_EXPOSURE_SHUTTER_PRIORITY: + { + v4l2_ctrl_t *ctrl_that = v4l2core_get_control_by_id(vd, + V4L2_CID_IRIS_ABSOLUTE ); + if (ctrl_that) + ctrl_that->control.flags |= V4L2_CTRL_FLAG_GRABBED; + + ctrl_that = v4l2core_get_control_by_id(vd, + V4L2_CID_IRIS_RELATIVE ); + if (ctrl_that) + ctrl_that->control.flags |= V4L2_CTRL_FLAG_GRABBED; + ctrl_that = v4l2core_get_control_by_id(vd, + V4L2_CID_EXPOSURE_ABSOLUTE ); + if (ctrl_that) + ctrl_that->control.flags &= !(V4L2_CTRL_FLAG_GRABBED); + } + break; + + default: + { + v4l2_ctrl_t *ctrl_that = v4l2core_get_control_by_id(vd, + V4L2_CID_EXPOSURE_ABSOLUTE ); + if (ctrl_that) + ctrl_that->control.flags &= !(V4L2_CTRL_FLAG_GRABBED); + ctrl_that = v4l2core_get_control_by_id(vd, + V4L2_CID_IRIS_ABSOLUTE ); + if (ctrl_that) + ctrl_that->control.flags &= !(V4L2_CTRL_FLAG_GRABBED); + ctrl_that = v4l2core_get_control_by_id(vd, + V4L2_CID_IRIS_RELATIVE ); + if (ctrl_that) + ctrl_that->control.flags &= !(V4L2_CTRL_FLAG_GRABBED); + } + break; + } + } + break; + + case V4L2_CID_FOCUS_AUTO: + { + v4l2_ctrl_t *ctrl_this = v4l2core_get_control_by_id(vd, id ); + if(ctrl_this == NULL) + break; + if(ctrl_this->value > 0) + { + v4l2_ctrl_t *ctrl_that = v4l2core_get_control_by_id(vd, + V4L2_CID_FOCUS_ABSOLUTE); + if (ctrl_that) + ctrl_that->control.flags |= V4L2_CTRL_FLAG_GRABBED; + + ctrl_that = v4l2core_get_control_by_id(vd, + V4L2_CID_FOCUS_RELATIVE); + if (ctrl_that) + ctrl_that->control.flags |= V4L2_CTRL_FLAG_GRABBED; + } + else + { + v4l2_ctrl_t *ctrl_that = v4l2core_get_control_by_id(vd, + V4L2_CID_FOCUS_ABSOLUTE); + if (ctrl_that) + ctrl_that->control.flags &= !(V4L2_CTRL_FLAG_GRABBED); + + ctrl_that = v4l2core_get_control_by_id(vd, + V4L2_CID_FOCUS_RELATIVE); + if (ctrl_that) + ctrl_that->control.flags &= !(V4L2_CTRL_FLAG_GRABBED); + } + } + break; + + case V4L2_CID_HUE_AUTO: + { + v4l2_ctrl_t *ctrl_this = v4l2core_get_control_by_id(vd, id ); + if(ctrl_this == NULL) + break; + if(ctrl_this->value > 0) + { + v4l2_ctrl_t *ctrl_that = v4l2core_get_control_by_id(vd, + V4L2_CID_HUE); + if (ctrl_that) + ctrl_that->control.flags |= V4L2_CTRL_FLAG_GRABBED; + } + else + { + v4l2_ctrl_t *ctrl_that = v4l2core_get_control_by_id(vd, + V4L2_CID_HUE); + if (ctrl_that) + ctrl_that->control.flags &= !(V4L2_CTRL_FLAG_GRABBED); + } + } + break; + + case V4L2_CID_AUTO_WHITE_BALANCE: + { + v4l2_ctrl_t *ctrl_this = v4l2core_get_control_by_id(vd, id ); + if(ctrl_this == NULL) + break; + + if(ctrl_this->value > 0) + { + v4l2_ctrl_t *ctrl_that = v4l2core_get_control_by_id(vd, + V4L2_CID_WHITE_BALANCE_TEMPERATURE); + if (ctrl_that) + ctrl_that->control.flags |= V4L2_CTRL_FLAG_GRABBED; + ctrl_that = v4l2core_get_control_by_id(vd, + V4L2_CID_BLUE_BALANCE); + if (ctrl_that) + ctrl_that->control.flags |= V4L2_CTRL_FLAG_GRABBED; + ctrl_that = v4l2core_get_control_by_id(vd, + V4L2_CID_RED_BALANCE); + if (ctrl_that) + ctrl_that->control.flags |= V4L2_CTRL_FLAG_GRABBED; + } + else + { + v4l2_ctrl_t *ctrl_that = v4l2core_get_control_by_id(vd, + V4L2_CID_WHITE_BALANCE_TEMPERATURE); + if (ctrl_that) + ctrl_that->control.flags &= !(V4L2_CTRL_FLAG_GRABBED); + ctrl_that = v4l2core_get_control_by_id(vd, + V4L2_CID_BLUE_BALANCE); + if (ctrl_that) + ctrl_that->control.flags &= !(V4L2_CTRL_FLAG_GRABBED); + ctrl_that = v4l2core_get_control_by_id(vd, + V4L2_CID_RED_BALANCE); + if (ctrl_that) + ctrl_that->control.flags &= !(V4L2_CTRL_FLAG_GRABBED); + } + } + break; + } +} + +/* + * update flags of entire control list + * args: + * vd - pointer to video device data + * + * asserts: + * vd is not null + * + * returns: void + */ +static void update_ctrl_list_flags(v4l2_dev_t *vd) +{ + /*asserts*/ + assert(vd != NULL); + + v4l2_ctrl_t *current = vd->list_device_controls; + + for(; current != NULL; current = current->next) + update_ctrl_flags(vd, current->control.id); +} + +/* + * Disables special auto-controls with higher IDs than + * their absolute/relative counterparts + * this is needed before restoring controls state + * + * args: + * vd - pointer to video device data + * id - control id + * + * asserts: + * vd is not null + * + * returns: void + */ +void disable_special_auto (v4l2_dev_t *vd, int id) +{ + /*asserts*/ + assert(vd != NULL); + + v4l2_ctrl_t *current = v4l2core_get_control_by_id(vd, id); + if(current && ((id == V4L2_CID_FOCUS_AUTO) || (id == V4L2_CID_HUE_AUTO))) + { + current->value = 0; + v4l2core_set_control_value_by_id(vd, id); + } +} + +/* + * return the control associated to id from device list + * args: + * vd - pointer to video device data + * + * asserts: + * vd is not null + * vd->list_device_controls is not null + * + * returns: pointer to v4l2_control if succeded or null otherwise + */ +v4l2_ctrl_t *v4l2core_get_control_by_id(v4l2_dev_t *vd, int id) +{ + /*asserts*/ + assert(vd != NULL); + assert(vd->list_device_controls != NULL); + + v4l2_ctrl_t *current = vd->list_device_controls; + for(; current != NULL; current = current->next) + { + if(current->control.id == id) + return (current); + } + + return(NULL); +} + +/* + * goes trough the control list and updates/retrieves current values + * args: + * vd - pointer to video device data + * + * asserts: + * vd is not null + * vd->fd is valid + * vd->list_device_controls is not null + * + * returns: void + */ +void get_v4l2_control_values (v4l2_dev_t *vd) +{ + /*asserts*/ + assert(vd != NULL); + assert(vd->fd > 0); + assert(vd->list_device_controls != NULL); + + int ret = 0; + struct v4l2_ext_control clist[vd->num_controls]; + v4l2_ctrl_t *current = vd->list_device_controls; + + int count = 0; + int i = 0; + + for(; current != NULL; current = current->next) + { + if(current->control.flags & V4L2_CTRL_FLAG_WRITE_ONLY) + continue; + + clist[count].id = current->control.id; +#ifdef V4L2_CTRL_TYPE_STRING + clist[count].size = 0; + if(current->control.type == V4L2_CTRL_TYPE_STRING) + { + clist[count].size = current->control.maximum; + clist[count].string = (char *) calloc(clist[count].size + 1, sizeof(char)); + if(clist[count].string == NULL) + { + fprintf(stderr, "V4L2_CORE: FATAL memory allocation failure (get_v4l2_control_values): %s\n", strerror(errno)); + exit(-1); + } + } +#endif + count++; + + if((current->next == NULL) || (current->next->class != current->class)) + { + struct v4l2_ext_controls ctrls = {0}; + ctrls.ctrl_class = current->class; + ctrls.count = count; + ctrls.controls = clist; + ret = xioctl(vd->fd, VIDIOC_G_EXT_CTRLS, &ctrls); + if(ret) + { + fprintf(stderr, "V4L2_CORE: (VIDIOC_G_EXT_CTRLS) failed\n"); + struct v4l2_control ctrl; + /*get the controls one by one*/ + if( current->class == V4L2_CTRL_CLASS_USER +#ifdef V4L2_CTRL_TYPE_STRING + && current->control.type != V4L2_CTRL_TYPE_STRING +#endif +#ifdef V4L2_CTRL_TYPE_INTEGER64 + && current->control.type != V4L2_CTRL_TYPE_INTEGER64 +#endif + ) + { + fprintf(stderr, "V4L2_CORE: using VIDIOC_G_CTRL for user class controls\n"); + for(i=0; i < count; i++) + { + ctrl.id = clist[i].id; + ctrl.value = 0; + ret = xioctl(vd->fd, VIDIOC_G_CTRL, &ctrl); + if(ret) + continue; + clist[i].value = ctrl.value; + } + } + else + { + fprintf(stderr, "V4L2_CORE: using VIDIOC_G_EXT_CTRLS on single controls for class: 0x%08x\n", + current->class); + for(i=0;i < count; i++) + { + ctrls.count = 1; + ctrls.controls = &clist[i]; + ret = xioctl(vd->fd, VIDIOC_G_EXT_CTRLS, &ctrls); + if(ret) + fprintf(stderr, "V4L2_CORE: control id: 0x%08x failed to get (error %i)\n", + clist[i].id, ret); + } + } + } + + //fill in the values on the control list + for(i=0; icontrol.type) + { +#ifdef V4L2_CTRL_TYPE_STRING + case V4L2_CTRL_TYPE_STRING: + { + /* + * string gets set on VIDIOC_G_EXT_CTRLS + * add the maximum size to value + */ + unsigned len = clist[i].size; + unsigned max_len = ctrl->control.maximum; + + strncpy(ctrl->string, clist[i].string, max_len); + if(len > max_len) + { + ctrl->string[max_len] = 0; //Null terminated + fprintf(stderr, "V4L2_CORE: control (0x%08x) returned string size of %d when max is %d\n", + ctrl->control.id, len, max_len); + } + + /*clean up*/ + free(clist[i].string); + clist[i].string = NULL; + break; + } +#endif + case V4L2_CTRL_TYPE_INTEGER64: + ctrl->value64 = clist[i].value64; + break; + default: + ctrl->value = clist[i].value; + //printf("V4L2_CORE: control %i [0x%08x] = %i\n", + // i, clist[i].id, clist[i].value); + break; + } + } + + count = 0; + } + } + + update_ctrl_list_flags(vd); +} + +/* + * updates the value for control id from the device + * also updates control flags + * args: + * vd - pointer to video device data + * + * asserts: + * vd is not null + * vd->fd is valid + * + * returns: ioctl result + */ +int v4l2core_get_control_value_by_id (v4l2_dev_t *vd, int id) +{ + /*asserts*/ + assert(vd != NULL); + assert(vd->fd > 0); + + v4l2_ctrl_t *control = v4l2core_get_control_by_id(vd, id ); + int ret = 0; + + if(!control) + return (-1); + if(control->control.flags & V4L2_CTRL_FLAG_WRITE_ONLY) + return (-1); + + if( control->class == V4L2_CTRL_CLASS_USER +#ifdef V4L2_CTRL_TYPE_STRING + && control->control.type != V4L2_CTRL_TYPE_STRING +#endif +#ifdef V4L2_CTRL_TYPE_INTEGER64 + && control->control.type != V4L2_CTRL_TYPE_INTEGER64 +#endif + ) + { + struct v4l2_control ctrl; + ctrl.id = control->control.id; + ctrl.value = 0; + ret = xioctl(vd->fd, VIDIOC_G_CTRL, &ctrl); + if(ret) + fprintf(stderr, "V4L2_CORE: control id: 0x%08x failed to get value (error %i)\n", + ctrl.id, ret); + else + control->value = ctrl.value; + } + else + { + struct v4l2_ext_controls ctrls = {0}; + struct v4l2_ext_control ctrl = {0}; + ctrl.id = control->control.id; +#ifdef V4L2_CTRL_TYPE_STRING + ctrl.size = 0; + if(control->control.type == V4L2_CTRL_TYPE_STRING) + { + ctrl.size = control->control.maximum; + ctrl.string = (char *) calloc(ctrl.size + 1, sizeof(char)); + if(ctrl.string == NULL) + { + fprintf(stderr, "V4L2_CORE: FATAL memory allocation failure (v4l2core_get_control_value_by_id): %s\n", strerror(errno)); + exit(-1); + } + } +#endif + ctrls.ctrl_class = control->class; + ctrls.count = 1; + ctrls.controls = &ctrl; + ret = xioctl(vd->fd, VIDIOC_G_EXT_CTRLS, &ctrls); + if(ret) + printf("control id: 0x%08x failed to get value (error %i)\n", + ctrl.id, ret); + else + { + switch(control->control.type) + { +#ifdef V4L2_CTRL_TYPE_STRING + case V4L2_CTRL_TYPE_STRING: + { + unsigned len = ctrl.size; + unsigned max_len = control->control.maximum; + + strncpy(control->string, ctrl.string, max_len); + if(len > max_len) + { + control->value = max_len; + control->string[max_len] = 0; //Null terminated + fprintf(stderr, "V4L2_CORE: control (0x%08x) returned string size of %d when max is %d\n", + control->control.id, len, max_len); + } + + + //clean up + free(ctrl.string); + ctrl.string = NULL; + + break; + } +#endif +#ifdef V4L2_CTRL_TYPE_INTEGER64 + case V4L2_CTRL_TYPE_INTEGER64: + control->value64 = ctrl.value64; + break; +#endif + + default: + control->value = ctrl.value; + //printf("V4L2_CORE: control %i [0x%08x] = %i\n", + // i, clist[i].id, clist[i].value); + break; + } + } + } + + update_ctrl_flags(vd, id); + + return (ret); +} + +/* + * goes trough the control list and sets values in device + * args: + * vd - pointer to video device data + * + * asserts: + * vd is not null + * vd->fd is valid + * vd->list_device_controls is not null + * + * returns: void + */ +void set_v4l2_control_values (v4l2_dev_t *vd) +{ + /*asserts*/ + assert(vd != NULL); + assert(vd->fd > 0); + assert(vd->list_device_controls != NULL); + + int ret = 0; + struct v4l2_ext_control clist[vd->num_controls]; + v4l2_ctrl_t *current = vd->list_device_controls; + + int count = 0; + int i = 0; + + if(verbosity > 0) + printf("V4L2_CORE: setting control values\n"); + + for(; current != NULL; current = current->next) + { + if(current->control.flags & V4L2_CTRL_FLAG_READ_ONLY) + continue; + + clist[count].id = current->control.id; + switch (current->control.type) + { +#ifdef V4L2_CTRL_TYPE_STRING + case V4L2_CTRL_TYPE_STRING: + { + unsigned len = strlen(current->string); + unsigned max_len = current->control.maximum; + + if(len > max_len) + { + clist[count].size = max_len; + clist[count].string = (char *) calloc(max_len, sizeof(char)); + if(clist[count].string == NULL) + { + fprintf(stderr, "V4L2_CORE: FATAL memory allocation failure (set_v4l2_control_values): %s\n", strerror(errno)); + exit(-1); + } + clist[count].string = strncpy(clist[count].string, current->string, max_len); + clist[count].string[max_len - 1] = '/0'; /*NULL terminated*/ + fprintf(stderr, "V4L2_CORE: control (0x%08x) trying to set string size of %d when max is %d (clip)\n", + current->control.id, len, max_len); + } + else + { + clist[count].size = len; + clist[count].string = (char *) strdup(current->string); + } + break; + } +#endif + case V4L2_CTRL_TYPE_INTEGER64: + clist[count].value64 = current->value64; + break; + default: + if(verbosity > 0) + printf("\tcontrol[%i] = %i\n", count, current->value); + clist[count].value = current->value; + break; + } + count++; + + if((current->next == NULL) || (current->next->class != current->class)) + { + struct v4l2_ext_controls ctrls = {0}; + ctrls.ctrl_class = current->class; + ctrls.count = count; + ctrls.controls = clist; + ret = xioctl(vd->fd, VIDIOC_S_EXT_CTRLS, &ctrls); + if(ret) + { + fprintf(stderr, "V4L2_CORE: VIDIOC_S_EXT_CTRLS for multiple controls failed (error %i)\n", ret); + struct v4l2_control ctrl; + /*set the controls one by one*/ + if( current->class == V4L2_CTRL_CLASS_USER +#ifdef V4L2_CTRL_TYPE_STRING + && current->control.type != V4L2_CTRL_TYPE_STRING +#endif +#ifdef V4L2_CTRL_TYPE_INTEGER64 + && current->control.type != V4L2_CTRL_TYPE_INTEGER64 +#endif + ) + { + fprintf(stderr, "V4L2_CORE: using VIDIOC_S_CTRL for user class controls\n"); + for(i=0;i < count; i++) + { + ctrl.id = clist[i].id; + ctrl.value = clist[i].value; + ret = xioctl(vd->fd, VIDIOC_S_CTRL, &ctrl); + if(ret) + { + v4l2_ctrl_t *ctrl = v4l2core_get_control_by_id(vd, clist[i].id); + if(ctrl) + fprintf(stderr, "V4L2_CORE: control(0x%08x) \"%s\" failed to set (error %i)\n", + clist[i].id, ctrl->control.name, ret); + else + fprintf(stderr, "V4L2_CORE: control(0x%08x) failed to set (error %i)\n", + clist[i].id, ret); + } + } + } + else + { + fprintf(stderr, "V4L2_CORE: using VIDIOC_S_EXT_CTRLS on single controls for class: 0x%08x\n", + current->class); + for(i=0;i < count; i++) + { + ctrls.count = 1; + ctrls.controls = &clist[i]; + ret = xioctl(vd->fd, VIDIOC_S_EXT_CTRLS, &ctrls); + + v4l2_ctrl_t *ctrl = v4l2core_get_control_by_id(vd, clist[i].id); + + if(ret) + { + if(ctrl) + fprintf(stderr, "V4L2_CORE: control(0x%08x) \"%s\" failed to set (error %i)\n", + clist[i].id, ctrl->control.name, ret); + else + fprintf(stderr, "V4L2_CORE: control(0x%08x) failed to set (error %i)\n", + clist[i].id, ret); + } +#ifdef V4L2_CTRL_TYPE_STRING + if(ctrl && ctrl->control.type == V4L2_CTRL_TYPE_STRING) + { + free(clist[i].string); //free allocated string + clist[i].string = NULL; + } +#endif + } + } + } + count = 0; + } + } + +} + +/* + * goes trough the control list and sets values in device to default + * args: + * vd - pointer to video device data + * + * asserts: + * vd is not null + * vd->list_device_controls is not null + * + * returns: void + */ +void v4l2core_set_control_defaults(v4l2_dev_t *vd) +{ + /*asserts*/ + assert(vd != NULL); + assert(vd->list_device_controls != NULL); + + v4l2_ctrl_t *current = vd->list_device_controls; + v4l2_ctrl_t *next = current->next; + + if(verbosity > 0) + printf("V4L2_CORE: loading defaults\n"); + + int i = 0; + for(; current != NULL; current = current->next, ++i) + { + if(current->control.flags & V4L2_CTRL_FLAG_READ_ONLY) + continue; + + + switch (current->control.type) + { +#ifdef V4L2_CTRL_TYPE_STRING + case V4L2_CTRL_TYPE_STRING: /* do string controls have a default value?*/ + break; +#endif +#ifdef V4L2_CTRL_TYPE_INTEGER64 + case V4L2_CTRL_TYPE_INTEGER64: /* do int64 controls have a default value?*/ + break; +#endif + default: + /*if its one of the special auto controls disable it first*/ + disable_special_auto (vd, current->control.id); + if(verbosity > 1) + printf("\tdefault[%i] = %i\n", i, current->control.default_value); + current->value = current->control.default_value; + break; + } + } + + set_v4l2_control_values(vd); + + get_v4l2_control_values(vd); +} + +/* + * sets the value of control id in device + * args: + * vd - pointer to video device data + * + * asserts: + * vd is not null + * vd->fd is valid + * + * returns: ioctl result + */ +int v4l2core_set_control_value_by_id(v4l2_dev_t *vd, int id) +{ + /*asserts*/ + assert(vd != NULL); + assert(vd->fd > 0); + + v4l2_ctrl_t *control = v4l2core_get_control_by_id(vd, id ); + int ret = 0; + + if(!control) + return (-1); + if(control->control.flags & V4L2_CTRL_FLAG_READ_ONLY) + return (-1); + + if( control->class == V4L2_CTRL_CLASS_USER +#ifdef V4L2_CTRL_TYPE_STRING + && control->control.type != V4L2_CTRL_TYPE_STRING +#endif + && control->control.type != V4L2_CTRL_TYPE_INTEGER64) + { + //using VIDIOC_G_CTRL for user class controls + struct v4l2_control ctrl; + ctrl.id = control->control.id; + ctrl.value = control->value; + ret = xioctl(vd->fd, VIDIOC_S_CTRL, &ctrl); + } + else + { + //using VIDIOC_G_EXT_CTRLS on single controls + struct v4l2_ext_controls ctrls = {0}; + struct v4l2_ext_control ctrl = {0}; + ctrl.id = control->control.id; + switch (control->control.type) + { +#ifdef V4L2_CTRL_TYPE_STRING + case V4L2_CTRL_TYPE_STRING: + { + unsigned len = strlen(control->string); + unsigned max_len = control->control.maximum; + + if(len > max_len) + { + ctrl.size = max_len; + ctrl.string = (char *) calloc(max_len, sizeof(char)); + if(ctrl.string == NULL) + { + fprintf(stderr, "V4L2_CORE: FATAL memory allocation failure (v4l2core_set_control_value_by_id): %s\n", strerror(errno)); + exit(-1); + } + ctrl.string = strncpy(ctrl.string, control->string, max_len); + ctrl.string[max_len -1] = '/0'; /*NULL terminated*/ + fprintf(stderr, "V4L2_CORE: control (0x%08x) trying to set string size of %d when max is %d (clip)\n", + control->control.id, len, max_len); + } + else + { + ctrl.size = len; + ctrl.string = (char *) strdup(control->string); + } + break; + } +#endif +#ifdef V4L2_CTRL_TYPE_INTEGER64 + case V4L2_CTRL_TYPE_INTEGER64: + ctrl.value64 = control->value64; + break; +#endif + default: + ctrl.value = control->value; + break; + } + ctrls.ctrl_class = control->class; + ctrls.count = 1; + ctrls.controls = &ctrl; + ret = xioctl(vd->fd, VIDIOC_S_EXT_CTRLS, &ctrls); + if(ret) + printf("control id: 0x%08x failed to set (error %i)\n", + ctrl.id, ret); +#ifdef V4L2_CTRL_TYPE_STRING + if(control->control.type == V4L2_CTRL_TYPE_STRING) + { + free(ctrl.string); //clean up string allocation + ctrl.string = NULL; + } +#endif + } + + //update real value + v4l2core_get_control_value_by_id(vd, id); + + return (ret); +} + +/* + * free control list + * args: + * vd - pointer to video device data + * + * asserts: + * vd is not null + * vd->list_device_controls is not null + * + * returns: void + */ +void free_v4l2_control_list(v4l2_dev_t *vd) +{ + /*asserts*/ + assert(vd != NULL); + assert(vd->list_device_controls != NULL); + + v4l2_ctrl_t *first = vd->list_device_controls; + + while (first != NULL) + { + v4l2_ctrl_t *next = first->next; + + if(first->string) free(first->string); + if(first->menu) free(first->menu); + if(first->menu_entry) + { + int i = 0; + for(i = 0; i < first->menu_entries; i++) + free(first->menu_entry[i]); + free(first->menu_entry); + } + free(first); + first = next; + } + vd->list_device_controls = NULL; +} diff -Nru guvcview-1.7.3/gview_v4l2core/v4l2_controls.h guvcview-2.0.1+ubuntu1~ppa1/gview_v4l2core/v4l2_controls.h --- guvcview-1.7.3/gview_v4l2core/v4l2_controls.h 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/gview_v4l2core/v4l2_controls.h 2014-10-05 10:41:44.000000000 +0000 @@ -0,0 +1,97 @@ +/*******************************************************************************# +# guvcview http://guvcview.sourceforge.net # +# # +# Paulo Assis # +# # +# This program is free software; you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation; either version 2 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program; if not, write to the Free Software # +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # +# # +********************************************************************************/ +#ifndef V4L2_CONTROLS_H +#define V4L2_CONTROLS_H + +#include "gviewv4l2core.h" + +/* + * enumerate device (read/write) controls + * and creates list in vd->list_device_controls + * args: + * vd - pointer to video device data + * + * asserts: + * vd is not null + * vd->fd is valid ( > 0 ) + * vd->list_device_controls is null + * + * returns: error code + */ +int enumerate_v4l2_control(v4l2_dev_t *vd); + +/* + * goes trough the control list and updates/retrieves current values + * args: + * vd - pointer to video device data + * + * asserts: + * vd is not null + * vd->list_device_controls is not null + * + * returns: void + */ +void get_v4l2_control_values (v4l2_dev_t *vd); + +/* + * goes trough the control list and sets values in device + * args: + * vd - pointer to video device data + * + * asserts: + * vd is not null + * vd->list_device_controls is not null + * + * returns: void + */ +void set_v4l2_control_values (v4l2_dev_t *vd); + +/* + * Disables special auto-controls with higher IDs than + * their absolute/relative counterparts + * this is needed before restoring controls state + * + * args: + * vd - pointer to video device data + * id - control id + * + * asserts: + * vd is not null + * + * returns: void + */ +void disable_special_auto (v4l2_dev_t *vd, int id); + + +/* + * free control list + * args: + * vd - pointer to video device data + * + * asserts: + * vd is not null + * vd->list_device_controls is not null + * + * returns: void + */ +void free_v4l2_control_list(v4l2_dev_t *vd); + +#endif diff -Nru guvcview-1.7.3/gview_v4l2core/v4l2_core.c guvcview-2.0.1+ubuntu1~ppa1/gview_v4l2core/v4l2_core.c --- guvcview-1.7.3/gview_v4l2core/v4l2_core.c 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/gview_v4l2core/v4l2_core.c 2014-10-05 10:41:44.000000000 +0000 @@ -0,0 +1,1524 @@ +/*******************************************************************************# +# guvcview http://guvcview.sourceforge.net # +# # +# Paulo Assis # +# # +# This program is free software; you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation; either version 2 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program; if not, write to the Free Software # +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # +# # +********************************************************************************/ + +/*******************************************************************************# +# # +# V4L2 core library # +# # +********************************************************************************/ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +/* support for internationalization - i18n */ +#include +#include + +#include "gview.h" +#include "gviewv4l2core.h" +#include "core_time.h" +#include "uvc_h264.h" +#include "frame_decoder.h" +#include "v4l2_formats.h" +#include "v4l2_controls.h" +#include "v4l2_devices.h" +#include "../config.h" + +#ifndef GETTEXT_PACKAGE_V4L2CORE +#define GETTEXT_PACKAGE_V4L2CORE "gview_v4l2core" +#endif +/*video device data mutex*/ +static __MUTEX_TYPE mutex = __STATIC_MUTEX_INIT; +#define __PMUTEX &mutex + +/*verbosity (global scope)*/ +int verbosity = 0; + +/*requested format data*/ +static int my_pixelformat = 0; +static int my_width = 0; +static int my_height = 0; + +static double real_fps = 0.0; +static uint64_t fps_ref_ts = 0; +static uint32_t fps_frame_count = 0; + +static uint8_t flag_fps_change = 0; /*set to 1 to request a fps change*/ + +static uint8_t disable_libv4l2 = 0; /*set to 1 to disable libv4l2 calls*/ + +/* + * ioctl with a number of retries in the case of I/O failure + * args: + * fd - device descriptor + * IOCTL_X - ioctl reference + * arg - pointer to ioctl data + * + * asserts: + * none + * + * returns - ioctl result + */ +int xioctl(int fd, int IOCTL_X, void *arg) +{ + int ret = 0; + int tries= IOCTL_RETRY; + do + { + if(!disable_libv4l2) + ret = v4l2_ioctl(fd, IOCTL_X, arg); + else + ret = ioctl(fd, IOCTL_X, arg); + } + while (ret && tries-- && + ((errno == EINTR) || (errno == EAGAIN) || (errno == ETIMEDOUT))); + + if (ret && (tries <= 0)) fprintf(stderr, "V4L2_CORE: ioctl (%i) retried %i times - giving up: %s)\n", IOCTL_X, IOCTL_RETRY, strerror(errno)); + + return (ret); +} + +/* + * Query video device capabilities and supported formats + * args: + * vd - pointer to video device data + * + * asserts: + * vd is not null + * vd->fd is valid ( > 0 ) + * + * returns: error code (E_OK) + */ +static int check_v4l2_dev(v4l2_dev_t *vd) +{ + /*assertions*/ + assert(vd != NULL); + assert(vd->fd > 0); + + memset(&vd->cap, 0, sizeof(struct v4l2_capability)); + + if ( xioctl(vd->fd, VIDIOC_QUERYCAP, &vd->cap) < 0 ) + { + fprintf( stderr, "V4L2_CORE: (VIDIOC_QUERYCAP) error: %s\n", strerror(errno)); + return E_QUERYCAP_ERR; + } + + if ( ( vd->cap.capabilities & V4L2_CAP_VIDEO_CAPTURE ) == 0) + { + fprintf(stderr, "V4L2_CORE: Error opening device %s: video capture not supported.\n", + vd->videodevice); + return E_QUERYCAP_ERR; + } + if (!(vd->cap.capabilities & V4L2_CAP_STREAMING)) + { + fprintf(stderr, "V4L2_CORE: %s does not support streaming i/o\n", + vd->videodevice); + return E_QUERYCAP_ERR; + } + + if(vd->cap_meth == IO_READ) + { + + vd->mem[vd->buf.index] = NULL; + if (!(vd->cap.capabilities & V4L2_CAP_READWRITE)) + { + fprintf(stderr, "V4L2_CORE: %s does not support read, try with mmap\n", + vd->videodevice); + return E_READ_ERR; + } + } + if(verbosity > 0) + printf("V4L2_CORE: Init. %s (location: %s)\n", vd->cap.card, vd->cap.bus_info); + + /*enumerate frame formats supported by device*/ + enum_frame_formats(vd); + + /*add h264 (uvc muxed) to format list if supported by device*/ + add_h264_format(vd); + + /*enumerate device controls*/ + enumerate_v4l2_control(vd); + /*gets the current control values and sets their flags*/ + get_v4l2_control_values(vd); + + /*if we have a focus control initiate the software autofocus*/ + if(vd->has_focus_control_id) + { + if(v4l2core_soft_autofocus_init (vd) != E_OK) + vd->has_focus_control_id = 0; + } + + return E_OK; +} + +/* + * unmaps v4l2 buffers + * args: + * vd - pointer to video device data + * + * asserts: + * vd is not null + * + * returns: error code (0- E_OK) + */ +static int unmap_buff(v4l2_dev_t *vd) +{ + /*assertions*/ + assert(vd != NULL); + + if(verbosity > 2) + printf("V4L2_CORE: unmapping v4l2 buffers\n"); + int i=0; + int ret=E_OK; + + switch(vd->cap_meth) + { + case IO_READ: + break; + + case IO_MMAP: + for (i = 0; i < NB_BUFFER; i++) + { + // unmap old buffer + if((vd->mem[i] != MAP_FAILED) && vd->buff_length[i]) + if((ret=v4l2_munmap(vd->mem[i], vd->buff_length[i]))<0) + { + fprintf(stderr, "V4L2_CORE: couldn't unmap buff: %s\n", strerror(errno)); + } + } + } + return ret; +} + +/* + * maps v4l2 buffers + * args: + * vd - pointer to video device data + * + * asserts: + * vd is not null + * + * returns: error code (0- E_OK) + */ +static int map_buff(v4l2_dev_t *vd) +{ + /*assertions*/ + assert(vd != NULL); + + if(verbosity > 2) + printf("V4L2_CORE: mapping v4l2 buffers\n"); + + int i = 0; + // map new buffer + for (i = 0; i < NB_BUFFER; i++) + { + vd->mem[i] = v4l2_mmap( NULL, // start anywhere + vd->buff_length[i], + PROT_READ | PROT_WRITE, + MAP_SHARED, + vd->fd, + vd->buff_offset[i]); + if (vd->mem[i] == MAP_FAILED) + { + fprintf(stderr, "V4L2_CORE: Unable to map buffer: %s\n", strerror(errno)); + return E_MMAP_ERR; + } + if(verbosity > 1) + printf("V4L2_CORE: mapped buffer[%i] with length %i to pos %p\n", + i, + vd->buff_length[i], + vd->mem[i]); + } + + return (E_OK); +} + +/* + * Query and map buffers + * args: + * vd - pointer to video device data + * + * asserts: + * vd is not null + * + * returns: error code (0- E_OK) + */ +static int query_buff(v4l2_dev_t *vd) +{ + /*assertions*/ + assert(vd != NULL); + + if(verbosity > 2) + printf("V4L2_CORE: query v4l2 buffers\n"); + + int i=0; + int ret=E_OK; + + switch(vd->cap_meth) + { + case IO_READ: + vd->raw_frame_max_size = vd->buf.length; + break; + + case IO_MMAP: + for (i = 0; i < NB_BUFFER; i++) + { + memset(&vd->buf, 0, sizeof(struct v4l2_buffer)); + vd->buf.index = i; + vd->buf.type = V4L2_BUF_TYPE_VIDEO_CAPTURE; + //vd->buf.flags = V4L2_BUF_FLAG_TIMECODE; + //vd->buf.timecode = vd->timecode; + //vd->buf.timestamp.tv_sec = 0; + //vd->buf.timestamp.tv_usec = 0; + vd->buf.memory = V4L2_MEMORY_MMAP; + ret = xioctl(vd->fd, VIDIOC_QUERYBUF, &vd->buf); + + if (ret < 0) + { + fprintf(stderr, "V4L2_CORE: (VIDIOC_QUERYBUF) Unable to query buffer[%i]: %s\n", i, strerror(errno)); + if(errno == EINVAL) + fprintf(stderr, " try with read method instead\n"); + + return E_QUERYBUF_ERR; + } + + if (vd->buf.length <= 0) + fprintf(stderr, "V4L2_CORE: (VIDIOC_QUERYBUF) - buffer length is %i\n", + vd->buf.length); + + vd->buff_length[i] = vd->buf.length; + vd->buff_offset[i] = vd->buf.m.offset; + } + // map the new buffers + if(map_buff(vd) != 0) + ret = E_MMAP_ERR; + vd->raw_frame_max_size = vd->buf.length; + break; + } + + return ret; +} + +/* + * Queue Buffers + * args: + * vd - pointer to video device data + * + * asserts: + * vd is not null + * + * returns: error code (0- E_OK) + */ +static int queue_buff(v4l2_dev_t *vd) +{ + /*assertions*/ + assert(vd != NULL); + + if(verbosity > 2) + printf("V4L2_CORE: queue v4l2 buffers\n"); + + int i=0; + int ret=E_OK; + + switch(vd->cap_meth) + { + case IO_READ: + break; + + case IO_MMAP: + default: + for (i = 0; i < NB_BUFFER; ++i) + { + memset(&vd->buf, 0, sizeof(struct v4l2_buffer)); + vd->buf.index = i; + vd->buf.type = V4L2_BUF_TYPE_VIDEO_CAPTURE; + //vd->buf.flags = V4L2_BUF_FLAG_TIMECODE; + //vd->buf.timecode = vd->timecode; + //vd->buf.timestamp.tv_sec = 0; + //vd->buf.timestamp.tv_usec = 0; + vd->buf.memory = V4L2_MEMORY_MMAP; + ret = xioctl(vd->fd, VIDIOC_QBUF, &vd->buf); + if (ret < 0) + { + fprintf(stderr, "V4L2_CORE: (VIDIOC_QBUF) Unable to queue buffer: %s\n", strerror(errno)); + return E_QBUF_ERR; + } + } + vd->buf.index = 0; /*reset index*/ + } + return ret; +} + +/* + * do a VIDIOC_S_PARM ioctl for setting frame rate + * args: + * vd - pointer to video device data + * + * asserts: + * vd is not null + * + * returns: error code + */ +static int do_v4l2_framerate_update(v4l2_dev_t *vd) +{ + /*asserts*/ + assert(vd != NULL); + + int ret = 0; + + /*get the current stream parameters*/ + vd->streamparm.type = V4L2_BUF_TYPE_VIDEO_CAPTURE; + ret = xioctl(vd->fd, VIDIOC_G_PARM, &vd->streamparm); + if (ret < 0) + { + fprintf(stderr, "V4L2_CORE: (VIDIOC_G_PARM) error: %s\n", strerror(errno)); + fprintf(stderr, "V4L2_CORE: Unable to set %d/%d fps\n", vd->fps_num, vd->fps_denom); + return ret; + } + + if (!(vd->streamparm.parm.capture.capability & V4L2_CAP_TIMEPERFRAME)) + { + fprintf(stderr, "V4L2_CORE: V4L2_CAP_TIMEPERFRAME not supported\n"); + fprintf(stderr, "V4L2_CORE: Unable to set %d/%d fps\n", vd->fps_num, vd->fps_denom); + return -ENOTSUP; + } + + vd->streamparm.parm.capture.timeperframe.numerator = vd->fps_num; + vd->streamparm.parm.capture.timeperframe.denominator = vd->fps_denom; + + /*request the new frame rate*/ + ret = xioctl(vd->fd, VIDIOC_S_PARM, &vd->streamparm); + + if (ret < 0) + { + fprintf(stderr, "V4L2_CORE: (VIDIOC_S_PARM) error: %s\n", strerror(errno)); + fprintf(stderr, "V4L2_CORE: Unable to set %d/%d fps\n", vd->fps_num, vd->fps_denom); + } + + return ret; +} + +/* + * sets video device frame rate + * args: + * vd- pointer to video device data + * + * asserts: + * vd is not null + * + * returns: VIDIOC_S_PARM ioctl result value + * (sets vd->fps_denom and vd->fps_num to device value) + */ +static int set_v4l2_framerate (v4l2_dev_t *vd) +{ + /*assertions*/ + assert(vd != NULL); + + if(verbosity > 2) + printf("V4L2_CORE: trying to change fps to %i/%i\n", vd->fps_num, vd->fps_denom); + + int ret = 0; + + /*lock the mutex*/ + __LOCK_MUTEX( __PMUTEX ); + + /*store streaming flag*/ + uint8_t stream_status = vd->streaming; + + /*try to stop the video stream*/ + if(stream_status == STRM_OK) + v4l2core_stop_stream(vd); + + switch(vd->cap_meth) + { + case IO_READ: + ret = do_v4l2_framerate_update(vd); + break; + + case IO_MMAP: + if(stream_status == STRM_OK) + { + /*unmap the buffers*/ + unmap_buff(vd); + } + + ret = do_v4l2_framerate_update(vd); + /* + * For uvc muxed H264 stream + * since we are restarting the video stream and codec values will be reset + * commit the codec data again + */ + if(vd->requested_fmt == V4L2_PIX_FMT_H264 && h264_get_support() == H264_MUXED) + { + if(verbosity > 0) + printf("V4L2_CORE: setting muxed H264 stream in MJPG container\n"); + set_h264_muxed_format(vd); + } + break; + } + + if(stream_status == STRM_OK) + { + query_buff(vd); /*also mmaps the buffers*/ + queue_buff(vd); + } + + /*try to start the video stream*/ + if(stream_status == STRM_OK) + v4l2core_start_stream(vd); + + /*unlock the mutex*/ + __UNLOCK_MUTEX( __PMUTEX ); + + return ret; +} + +/* + * checks if frame data is available + * args: + * vd - pointer to video device data + * + * asserts: + * vd is not null + * + * returns: error code (0- E_OK) + */ +static int check_frame_available(v4l2_dev_t *vd) +{ + /*asserts*/ + assert(vd != NULL); + + int ret = E_OK; + fd_set rdset; + struct timeval timeout; + + /*lock the mutex*/ + __LOCK_MUTEX( __PMUTEX ); + int stream_state = vd->streaming; + /*unlock the mutex*/ + __UNLOCK_MUTEX( __PMUTEX ); + + /*make sure streaming is on*/ + if(stream_state != STRM_OK) + { + if(stream_state == STRM_REQ_STOP) + v4l2core_stop_stream(vd); + + fprintf(stderr, "V4L2_CORE: (get_v4l2_frame) video stream must be started first\n"); + return E_NO_STREAM_ERR; + } + + /*a fps change was requested while streaming*/ + if(flag_fps_change > 0) + { + if(verbosity > 2) + printf("V4L2_CORE: fps change request detected\n"); + set_v4l2_framerate(vd); + flag_fps_change = 0; + } + + FD_ZERO(&rdset); + FD_SET(vd->fd, &rdset); + timeout.tv_sec = 1; /* 1 sec timeout*/ + timeout.tv_usec = 0; + /* select - wait for data or timeout*/ + ret = select(vd->fd + 1, &rdset, NULL, NULL, &timeout); + if (ret < 0) + { + fprintf(stderr, "V4L2_CORE: Could not grab image (select error): %s\n", strerror(errno)); + vd->timestamp = 0; + return E_SELECT_ERR; + } + + if (ret == 0) + { + fprintf(stderr, "V4L2_CORE: Could not grab image (select timeout): %s\n", strerror(errno)); + vd->timestamp = 0; + return E_SELECT_TIMEOUT_ERR; + } + + if ((ret > 0) && (FD_ISSET(vd->fd, &rdset))) + return E_OK; + + return E_UNKNOWN_ERR; +} + +/* + * set verbosity + * args: + * level - verbosity level + * + * asserts: + * none + * + * returns void + */ +void v4l2core_set_verbosity(int level) +{ + verbosity = level; +} + +/* + * disable libv4l2 calls + * args: + * none + * + * asserts: + * none + * + * returns void + */ +void v4l2core_disable_libv4l2() +{ + disable_libv4l2 = 1; +} + +/* + * enable libv4l2 calls (default) + * args: + * none + * + * asserts: + * none + * + * returns void + */ +void v4l2core_enable_libv4l2() +{ + disable_libv4l2 = 0; +} + +/* + * Set v4l2 capture method + * args: + * vd - pointer to video device data + * method - capture method (IO_READ or IO_MMAP) + * + * asserts: + * vd is not null + * + * returns: VIDIOC_STREAMON ioctl result (E_OK or E_STREAMON_ERR) +*/ +void v4l2core_set_capture_method(v4l2_dev_t *vd, int method) +{ + /*asserts*/ + assert(vd != NULL); + + vd->cap_meth = method; +} + +/* + * get real fps + * args: + * none + * + * asserts: + * none + * + * returns: double with real fps value + */ +double v4l2core_get_realfps() +{ + return(real_fps); +} + +/* + * Start video stream + * args: + * vd - pointer to video device data + * + * asserts: + * vd is not null + * + * returns: VIDIOC_STREAMON ioctl result (E_OK or E_STREAMON_ERR) +*/ +int v4l2core_start_stream(v4l2_dev_t *vd) +{ + /*assertions*/ + assert(vd != NULL); + + if(vd->streaming == STRM_OK) + { + fprintf(stderr, "V4L2_CORE: (VIDIOC_STREAMON) stream_status = STRM_OK\n"); + return; + } + + int type = V4L2_BUF_TYPE_VIDEO_CAPTURE; + int ret=E_OK; + switch(vd->cap_meth) + { + case IO_READ: + //do nothing + break; + + case IO_MMAP: + default: + ret = xioctl(vd->fd, VIDIOC_STREAMON, &type); + if (ret < 0) + { + fprintf(stderr, "V4L2_CORE: (VIDIOC_STREAMON) Unable to start capture: %s \n", strerror(errno)); + return E_STREAMON_ERR; + } + break; + } + + vd->streaming = STRM_OK; + + return ret; +} + +/* + * request video stream to stop + * args: + * vd - pointer to video device data + * + * asserts: + * vd is not null + * + * returns: error code (0 -OK) +*/ +int v4l2core_request_stop_stream(v4l2_dev_t *vd) +{ + /*assertions*/ + assert(vd != NULL); + + if(vd->streaming != STRM_OK) + return -1; + + vd->streaming = STRM_REQ_STOP; + + return 0; +} + +/* + * Stops the video stream + * args: + * vd - pointer to video device data + * + * asserts: + * vd is not null + * + * returns: VIDIOC_STREAMON ioctl result (E_OK) +*/ +int v4l2core_stop_stream(v4l2_dev_t *vd) +{ + /*assertions*/ + assert(vd != NULL); + + int type = V4L2_BUF_TYPE_VIDEO_CAPTURE; + int ret=E_OK; + switch(vd->cap_meth) + { + case IO_READ: + case IO_MMAP: + default: + ret = xioctl(vd->fd, VIDIOC_STREAMOFF, &type); + if (ret < 0) + { + if(errno == 9) /* stream allready stoped*/ + vd->streaming = STRM_STOP; + fprintf(stderr, "V4L2_CORE: (VIDIOC_STREAMOFF) Unable to stop capture: %s\n", strerror(errno)); + return E_STREAMOFF_ERR; + } + break; + } + + vd->streaming = STRM_STOP; + return ret; +} + + +/* + * process input buffer + * + */ +static void process_input_buffer(v4l2_dev_t *vd) +{ + /* + * driver timestamp is unreliable + * use monotonic system time + */ + vd->timestamp = ns_time_monotonic(); + + vd->frame_index++; + + vd->raw_frame_size = vd->buf.bytesused; + if(vd->raw_frame_size == 0) + { + if(verbosity > 1) + fprintf(stderr, "V4L2_CORE: VIDIOC_QBUF returned buf.bytesused = 0 \n"); + } + + /*point vd->raw_frame to current frame buffer*/ + vd->raw_frame = vd->mem[vd->buf.index]; +} + +/* + * gets the next video frame (must be released after processing) + * args: + * vd: pointer to video device data + * + * asserts: + * vd is not null + * + * returns: error code (E_OK) + */ +int v4l2core_get_frame(v4l2_dev_t *vd) +{ + /*asserts*/ + assert(vd != NULL); + + /*for H264 streams request a IDR frame with SPS and PPS data if it's the first frame*/ + if(vd->requested_fmt == V4L2_PIX_FMT_H264 && vd->frame_index < 1) + request_h264_frame_type(vd, PICTURE_TYPE_IDR_FULL); + + int res = 0; + int ret = check_frame_available(vd); + + if (ret < 0) + return ret; + + int bytes_used = 0; + + switch(vd->cap_meth) + { + case IO_READ: + + /*lock the mutex*/ + __LOCK_MUTEX( __PMUTEX ); + if(vd->streaming == STRM_OK) + { + vd->buf.bytesused = v4l2_read (vd->fd, vd->mem[vd->buf.index], vd->buf.length); + bytes_used = vd->buf.bytesused; + } + else res = -1; + /*unlock the mutex*/ + __UNLOCK_MUTEX( __PMUTEX ); + + if(res < 0) + return E_NO_STREAM_ERR; + + if (-1 == bytes_used ) + { + switch (errno) + { + case EAGAIN: + fprintf(stderr, "V4L2_CORE: No data available for read: %s\n", strerror(errno)); + return E_SELECT_TIMEOUT_ERR; + break; + case EINVAL: + fprintf(stderr, "V4L2_CORE: Read method error, try mmap instead: %s\n", strerror(errno)); + return E_READ_ERR; + break; + case EIO: + fprintf(stderr, "V4L2_CORE: read I/O Error: %s\n", strerror(errno)); + return E_READ_ERR; + break; + default: + fprintf(stderr, "V4L2_CORE: read: %s\n", strerror(errno)); + return E_READ_ERR; + break; + } + vd->timestamp = 0; + } + + process_input_buffer(vd); + break; + + case IO_MMAP: + default: + //if((vd->setH264ConfigProbe > 0)) + //{ + + //if(vd->setH264ConfigProbe) + //{ + //video_disable(vd); + //unmap_buff(vd); + + //h264_commit(vd, global); + + //vd->setH264ConfigProbe = 0; + //query_buff(vd); + //queue_buff(vd); + //video_enable(vd); + //} + + //ret = check_frame_available(vd); + + //if (ret < 0) + //return ret; + //} + + /* dequeue the buffers */ + + /*lock the mutex*/ + __LOCK_MUTEX( __PMUTEX ); + + if(vd->streaming == STRM_OK) + { + memset(&vd->buf, 0, sizeof(struct v4l2_buffer)); + + vd->buf.type = V4L2_BUF_TYPE_VIDEO_CAPTURE; + vd->buf.memory = V4L2_MEMORY_MMAP; + + ret = xioctl(vd->fd, VIDIOC_DQBUF, &vd->buf); + + if(!ret) + process_input_buffer(vd); + else + fprintf(stderr, "V4L2_CORE: (VIDIOC_DQBUF) Unable to dequeue buffer: %s\n", strerror(errno)); + } + else res = -1; + + /*unlock the mutex*/ + __UNLOCK_MUTEX( __PMUTEX ); + + if(res < 0) + return E_NO_STREAM_ERR; + + if (ret < 0) + return E_DQBUF_ERR; + } + + /*determine real fps every 3 sec aprox.*/ + fps_frame_count++; + + if(vd->timestamp - fps_ref_ts >= (3 * NSEC_PER_SEC)) + { + if(verbosity > 2) + printf("V4L2CORE: (fps) ref:%"PRId64" ts:%"PRId64" frames:%i\n", + fps_ref_ts, vd->timestamp, fps_frame_count); + real_fps = (double) (fps_frame_count * NSEC_PER_SEC) / (double) (vd->timestamp - fps_ref_ts); + fps_frame_count = 0; + fps_ref_ts = vd->timestamp; + } + + return E_OK; +} + +/* + * releases the current video frame (so that it can be reused by the driver) + * args: + * vd: pointer to video device data + * + * asserts: + * vd is not null + * + * returns: error code (E_OK) + */ +int v4l2core_release_frame(v4l2_dev_t *vd) +{ + int ret = 0; + + switch(vd->cap_meth) + { + case IO_READ: + break; + + case IO_MMAP: + default: + /* queue the buffers */ + ret = xioctl(vd->fd, VIDIOC_QBUF, &vd->buf); + + if(ret) + fprintf(stderr, "V4L2_CORE: (VIDIOC_QBUF) Unable to queue buffer: %s\n", strerror(errno)); + + vd->raw_frame = NULL; + vd->raw_frame_size = 0; + break; + } + + if (ret < 0) + return E_QBUF_ERR; + + return E_OK; +} + +/* + * Try/Set device video stream format + * args: + * vd - pointer to video device data + * width - requested video frame width + * height - requested video frame height + * pixelformat - requested v4l2 pixelformat + * + * asserts: + * vd is not null + * + * returns: error code ( E_OK) + */ +static int try_video_stream_format(v4l2_dev_t *vd, int width, int height, int pixelformat) +{ + /*assertions*/ + assert(vd != NULL); + + int ret = E_OK; + + /*lock the mutex*/ + __LOCK_MUTEX( __PMUTEX ); + + vd->requested_fmt = pixelformat; + + uint8_t stream_status = vd->streaming; + + if(stream_status == STRM_OK) + v4l2core_stop_stream(vd); + + if(vd->requested_fmt == V4L2_PIX_FMT_H264 && h264_get_support() == H264_MUXED) + { + if(verbosity > 0) + printf("V4L2_CORE: requested H264 stream is supported through muxed MJPG\n"); + pixelformat = V4L2_PIX_FMT_MJPEG; + } + + vd->format.fmt.pix.pixelformat = pixelformat; + vd->format.fmt.pix.width = width; + vd->format.fmt.pix.height = height; + + /* make sure we set a valid format*/ + if(verbosity > 0) + printf("V4L2_CORE: checking format: %c%c%c%c\n", + (vd->format.fmt.pix.pixelformat) & 0xFF, ((vd->format.fmt.pix.pixelformat) >> 8) & 0xFF, + ((vd->format.fmt.pix.pixelformat) >> 16) & 0xFF, ((vd->format.fmt.pix.pixelformat) >> 24) & 0xFF); + + /*override field and type entries*/ + vd->format.fmt.pix.field = V4L2_FIELD_ANY; + vd->format.type = V4L2_BUF_TYPE_VIDEO_CAPTURE; + + ret = xioctl(vd->fd, VIDIOC_S_FMT, &vd->format); + + if(!ret && (vd->requested_fmt == V4L2_PIX_FMT_H264) && (h264_get_support() == H264_MUXED)) + { + if(verbosity > 0) + printf("V4L2_CORE: setting muxed H264 stream in MJPG container\n"); + set_h264_muxed_format(vd); + } + + /*unlock the mutex*/ + __UNLOCK_MUTEX( __PMUTEX ); + + if (ret != 0) + { + fprintf(stderr, "V4L2_CORE: (VIDIOC_S_FORMAT) Unable to set format: %s\n", strerror(errno)); + return E_FORMAT_ERR; + } + + if ((vd->format.fmt.pix.width != width) || + (vd->format.fmt.pix.height != height)) + { + fprintf(stderr, "V4L2_CORE: Requested resolution unavailable: got width %d height %d\n", + vd->format.fmt.pix.width, vd->format.fmt.pix.height); + } + + /* + * try to alloc frame buffers based on requested format + */ + ret = alloc_v4l2_frames(vd); + if( ret != E_OK) + { + fprintf(stderr, "V4L2_CORE: Frame allocation returned error (%i)\n", ret); + return E_ALLOC_ERR; + } + + switch (vd->cap_meth) + { + case IO_READ: /*allocate buffer for read*/ + /*lock the mutex*/ + __LOCK_MUTEX( __PMUTEX ); + + memset(&vd->buf, 0, sizeof(struct v4l2_buffer)); + vd->buf.length = (vd->format.fmt.pix.width) * (vd->format.fmt.pix.height) * 3; //worst case (rgb) + vd->mem[vd->buf.index] = calloc(vd->buf.length, sizeof(uint8_t)); + if(vd->mem[vd->buf.index] == NULL) + { + fprintf(stderr, "V4L2_CORE: FATAL memory allocation failure (try_video_stream_format): %s\n", strerror(errno)); + exit(-1); + } + + /*unlock the mutex*/ + __UNLOCK_MUTEX( __PMUTEX ); + break; + + case IO_MMAP: + default: + /* request buffers */ + memset(&vd->rb, 0, sizeof(struct v4l2_requestbuffers)); + vd->rb.count = NB_BUFFER; + vd->rb.type = V4L2_BUF_TYPE_VIDEO_CAPTURE; + vd->rb.memory = V4L2_MEMORY_MMAP; + + ret = xioctl(vd->fd, VIDIOC_REQBUFS, &vd->rb); + + if (ret < 0) + { + fprintf(stderr, "V4L2_CORE: (VIDIOC_REQBUFS) Unable to allocate buffers: %s\n", strerror(errno)); + return E_REQBUFS_ERR; + } + /* map the buffers */ + if (query_buff(vd)) + { + fprintf(stderr, "V4L2_CORE: (VIDIOC_QBUFS) Unable to query buffers: %s\n", strerror(errno)); + /* + * delete requested buffers + * no need to unmap as mmap failed for sure + */ + if(verbosity > 0) + printf("V4L2_CORE: cleaning requestbuffers\n"); + memset(&vd->rb, 0, sizeof(struct v4l2_requestbuffers)); + vd->rb.count = 0; + vd->rb.type = V4L2_BUF_TYPE_VIDEO_CAPTURE; + vd->rb.memory = V4L2_MEMORY_MMAP; + if(xioctl(vd->fd, VIDIOC_REQBUFS, &vd->rb)<0) + fprintf(stderr, "V4L2_CORE: (VIDIOC_REQBUFS) Unable to delete buffers: %s\n", strerror(errno)); + + return E_QUERYBUF_ERR; + } + + /* Queue the buffers */ + if (queue_buff(vd)) + { + fprintf(stderr, "V4L2_CORE: (VIDIOC_QBUFS) Unable to queue buffers: %s\n", strerror(errno)); + /*delete requested buffers */ + if(verbosity > 0) + printf("V4L2_CORE: cleaning requestbuffers\n"); + unmap_buff(vd); + memset(&vd->rb, 0, sizeof(struct v4l2_requestbuffers)); + vd->rb.count = 0; + vd->rb.type = V4L2_BUF_TYPE_VIDEO_CAPTURE; + vd->rb.memory = V4L2_MEMORY_MMAP; + if(xioctl(vd->fd, VIDIOC_REQBUFS, &vd->rb)<0) + fprintf(stderr, "V4L2_CORE: (VIDIOC_REQBUFS) Unable to delete buffers: %s\n", strerror(errno)); + return E_QBUF_ERR; + } + } + + /*this locks the mutex (can't be called while the mutex is being locked)*/ + v4l2core_request_framerate_update(vd); + + if(stream_status == STRM_OK) + v4l2core_start_stream(vd); + + /*update the current framerate for the device*/ + v4l2core_get_framerate(vd); + + return E_OK; +} + +/* + * prepare new format + * args: + * vd - pointer to device data + * new_format - new format + * + * asserts: + * vd is not null + * + * returns: none + */ +void v4l2core_prepare_new_format(v4l2_dev_t *vd, int new_format) +{ + /*asserts*/ + assert(vd != NULL); + + int format_index = v4l2core_get_frame_format_index(vd, new_format); + + if(format_index < 0) + format_index = 0; + + my_pixelformat = vd->list_stream_formats[format_index].format; +} + +/* + * prepare a valid format (first in the format list) + * args: + * vd - pointer to device data + * + * asserts: + * vd is not null + * + * returns: none + */ +void v4l2core_prepare_valid_format(v4l2_dev_t *vd) +{ + /*asserts*/ + assert(vd != NULL); + + int format_index = 0; + + my_pixelformat = vd->list_stream_formats[format_index].format; +} + +/* + * prepare new resolution + * args: + * vd - pointer to device data + * new_width - new width + * new_height - new height + * + * asserts: + * vd is not null + * + * returns: none + */ +void v4l2core_prepare_new_resolution(v4l2_dev_t *vd, int new_width, int new_height) +{ + /*asserts*/ + assert(vd != NULL); + + int format_index = v4l2core_get_frame_format_index(vd, my_pixelformat); + + if(format_index < 0) + format_index = 0; + + int resolution_index = v4l2core_get_format_resolution_index(vd, format_index, new_width, new_height); + + if(resolution_index < 0) + resolution_index = 0; + + my_width = vd->list_stream_formats[format_index].list_stream_cap[resolution_index].width; + my_height = vd->list_stream_formats[format_index].list_stream_cap[resolution_index].height; +} + +/* + * prepare valid resolution (first in the resolution list for the format) + * args: + * vd - pointer to device data + * + * asserts: + * vd is not null + * + * returns: none + */ +void v4l2core_prepare_valid_resolution(v4l2_dev_t *vd) +{ + /*asserts*/ + assert(vd != NULL); + + int format_index = v4l2core_get_frame_format_index(vd, my_pixelformat); + + if(format_index < 0) + format_index = 0; + + int resolution_index = 0; + + my_width = vd->list_stream_formats[format_index].list_stream_cap[resolution_index].width; + my_height = vd->list_stream_formats[format_index].list_stream_cap[resolution_index].height; +} + +/* + * update the current format (pixelformat, width and height) + * args: + * device - pointer to device data + * + * asserts: + * device is not null + * + * returns: + * error code + */ +int v4l2core_update_current_format(v4l2_dev_t *vd) +{ + /*asserts*/ + assert(vd != NULL); + + return(try_video_stream_format(vd, my_width, my_height, my_pixelformat)); +} + +/* + * clean video device data allocation + * args: + * vd - pointer to video device data + * + * asserts: + * vd is not null + * + * returns: void + */ +static void clean_v4l2_dev(v4l2_dev_t *vd) +{ + /*assertions*/ + assert(vd != NULL); + + if(vd->videodevice) + free(vd->videodevice); + vd->videodevice = NULL; + + if(vd->has_focus_control_id) + v4l2core_soft_autofocus_close(vd); + + if(vd->list_device_controls) + free_v4l2_control_list(vd); + + if(vd->list_stream_formats) + free_frame_formats(vd); + + if(vd->list_device_controls) + free_v4l2_control_list(vd); + + /*close descriptor*/ + if(vd->fd > 0) + v4l2_close(vd->fd); + + vd->fd = 0; + + free(vd); +} + +/* + * Initiate video device data with default values + * args: + * device - device name (e.g: "/dev/video0") + * + * asserts: + * device is not null + * + * returns: pointer to newly allocated video device data ( NULL on error) + */ +v4l2_dev_t *v4l2core_init_dev(const char *device) +{ + assert(device != NULL); + + /*localization*/ + char* lc_all = setlocale (LC_ALL, ""); + char* lc_dir = bindtextdomain (GETTEXT_PACKAGE_V4L2CORE, PACKAGE_LOCALE_DIR); + bind_textdomain_codeset (GETTEXT_PACKAGE_V4L2CORE, "UTF-8"); + if (verbosity > 1) printf("V4L2_CORE: language catalog=> dir:%s type:%s cat:%s.mo\n", + lc_dir, lc_all, GETTEXT_PACKAGE_V4L2CORE); + + v4l2_dev_t *vd = calloc(1, sizeof(v4l2_dev_t)); + + assert(vd != NULL); + + /*MMAP by default*/ + vd->cap_meth = IO_MMAP; + + vd->videodevice = strdup(device); + + if(verbosity > 0) + { + printf("V4L2_CORE: capture method mmap (%i)\n",vd->cap_meth); + printf("V4L2_CORE: video device: %s \n", vd->videodevice); + } + + vd->raw_frame = NULL; + + vd->h264_no_probe_default = 0; + vd->h264_SPS = NULL; + vd->h264_SPS_size = 0; + vd->h264_PPS = NULL; + vd->h264_PPS_size = 0; + vd->h264_last_IDR = NULL; + vd->h264_last_IDR_size = 0; + + vd->tmp_buffer = NULL; + vd->yuv_frame = NULL; + vd->h264_frame = NULL; + + /*set some defaults*/ + vd->fps_num = 1; + vd->fps_denom = 25; + + vd->pan_step = 128; + vd->tilt_step = 128; + + /*open device*/ + if ((vd->fd = v4l2_open(vd->videodevice, O_RDWR | O_NONBLOCK, 0)) < 0) + { + fprintf(stderr, "V4L2_CORE: ERROR opening V4L interface: %s\n", strerror(errno)); + clean_v4l2_dev(vd); + return (NULL); + } + + vd->this_device = v4l2core_get_device_index(vd->videodevice); + if(vd->this_device < 0) + vd->this_device = 0; + + v4l2_device_list *device_list = v4l2core_get_device_list(); + if(device_list && device_list->list_devices) + device_list->list_devices[vd->this_device].current = 1; + + /*try to map known xu controls (we could/should leave this for libwebcam)*/ + init_xu_ctrls(vd); + + /*zero structs*/ + memset(&vd->cap, 0, sizeof(struct v4l2_capability)); + memset(&vd->format, 0, sizeof(struct v4l2_format)); + memset(&vd->buf, 0, sizeof(struct v4l2_buffer)); + memset(&vd->rb, 0, sizeof(struct v4l2_requestbuffers)); + memset(&vd->streamparm, 0, sizeof(struct v4l2_streamparm)); + + if(check_v4l2_dev(vd) != E_OK) + { + clean_v4l2_dev(vd); + return (NULL); + } + + int i = 0; + for (i = 0; i < NB_BUFFER; i++) + { + vd->mem[i] = MAP_FAILED; /*not mmaped yet*/ + } + + return (vd); +} + +/* + * clean v4l2 buffers + * args: + * vd -pointer to video device data + * + * asserts: + * vd is not null + * + * return: none + */ +void v4l2core_clean_buffers(v4l2_dev_t *vd) +{ + /*assertions*/ + assert(vd != NULL); + + if(verbosity > 1) + printf("V4L2_CORE: cleaning v4l2 buffers\n"); + + if(vd->streaming == STRM_OK) + v4l2core_stop_stream(vd); + + clean_v4l2_frames(vd); + + // unmap queue buffers + switch(vd->cap_meth) + { + case IO_READ: + if(vd->mem[vd->buf.index]!= NULL) + { + free(vd->mem[vd->buf.index]); + vd->mem[vd->buf.index] = NULL; + } + break; + + case IO_MMAP: + default: + //delete requested buffers + unmap_buff(vd); + memset(&vd->rb, 0, sizeof(struct v4l2_requestbuffers)); + vd->rb.count = 0; + vd->rb.type = V4L2_BUF_TYPE_VIDEO_CAPTURE; + vd->rb.memory = V4L2_MEMORY_MMAP; + if(xioctl(vd->fd, VIDIOC_REQBUFS, &vd->rb)<0) + { + fprintf(stderr, "V4L2_CORE: (VIDIOC_REQBUFS) Failed to delete buffers: %s (errno %d)\n", strerror(errno), errno); + } + break; + } +} +/* + * cleans video device data and allocations + * args: + * vd: pointer to video device data + * + * asserts: + * vd is not null + * + * returns: void + */ +void v4l2core_close_dev(v4l2_dev_t *vd) +{ + /*asserts*/ + assert(vd != NULL); + + v4l2core_clean_buffers(vd); + clean_v4l2_dev(vd); +} + +/* + * request a fps update - this locks the mutex + * (can't be called while the mutex is being locked) + * args: + * vd - pointer to video device data + * + * asserts: + * vd is not null + * + * returns: none + */ +void v4l2core_request_framerate_update(v4l2_dev_t *vd) +{ + /* + * if we are streaming flag a fps change when retrieving frame + * else change fps immediatly + */ + if(vd->streaming == STRM_OK) + flag_fps_change = 1; + else + set_v4l2_framerate(vd); +} + +/* + * gets video device defined frame rate (not real - consider it a maximum value) + * args: + * vd: pointer to video device data + * + * asserts: + * vd is not null + * + * returns: VIDIOC_G_PARM ioctl result value + * (sets vd->fps_denom and vd->fps_num to device value) + */ +int v4l2core_get_framerate (v4l2_dev_t *vd) +{ + /*assertions*/ + assert(vd != NULL); + + int ret=0; + + vd->streamparm.type = V4L2_BUF_TYPE_VIDEO_CAPTURE; + ret = xioctl(vd->fd, VIDIOC_G_PARM, &vd->streamparm); + if (ret < 0) + { + fprintf(stderr, "V4L2_CORE: (VIDIOC_G_PARM) error: %s\n", strerror(errno)); + return ret; + } + else + { + if (vd->streamparm.parm.capture.capability & V4L2_CAP_TIMEPERFRAME) + { + vd->fps_denom = vd->streamparm.parm.capture.timeperframe.denominator; + vd->fps_num = vd->streamparm.parm.capture.timeperframe.numerator; + } + } + + if(vd->fps_denom == 0 ) + vd->fps_denom = 1; + if(vd->fps_num == 0) + vd->fps_num = 1; + + return ret; +} diff -Nru guvcview-1.7.3/gview_v4l2core/v4l2_devices.c guvcview-2.0.1+ubuntu1~ppa1/gview_v4l2core/v4l2_devices.c --- guvcview-1.7.3/gview_v4l2core/v4l2_devices.c 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/gview_v4l2core/v4l2_devices.c 2014-10-05 10:41:44.000000000 +0000 @@ -0,0 +1,375 @@ +/*******************************************************************************# +# guvcview http://guvcview.sourceforge.net # +# # +# Paulo Assis # +# # +# This program is free software; you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation; either version 2 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program; if not, write to the Free Software # +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # +# # +********************************************************************************/ + +#include +#include +#include +#include +#include +#include +#include + +#include "gviewv4l2core.h" +#include "v4l2_devices.h" +#include "../config.h" + +extern int verbosity; + +/* device list structure */ +static v4l2_device_list my_device_list; + +/* + * get the device list data + * args: + * none + * + * asserts: + * none + * + * returns: pointer to device list data + */ +v4l2_device_list *v4l2core_get_device_list() +{ + return &my_device_list; +} + +/* + * free v4l2 devices list + * args: + * none + * + * asserts: + * vd->list_devices is not null + * + * returns: void + */ +static void free_device_list() +{ + /*assertions*/ + assert(my_device_list.list_devices != NULL); + + int i=0; + for(i=0;i<(my_device_list.num_devices);i++) + { + free(my_device_list.list_devices[i].device); + free(my_device_list.list_devices[i].name); + free(my_device_list.list_devices[i].driver); + free(my_device_list.list_devices[i].location); + } + free(my_device_list.list_devices); + my_device_list.list_devices = NULL; +} + +/* + * enumerate available v4l2 devices + * and creates list in vd->list_devices + * args: + * none + * + * asserts: + * my_device_list.udev is not null + * my_device_list.list_devices is null + * + * returns: error code + */ +int enum_v4l2_devices() +{ + struct udev_enumerate *enumerate; + struct udev_list_entry *devices; + struct udev_list_entry *dev_list_entry; + + int num_dev = 0; + struct v4l2_capability v4l2_cap; + + my_device_list.list_devices = calloc(1, sizeof(v4l2_dev_sys_data_t)); + if(my_device_list.list_devices == NULL) + { + fprintf(stderr, "V4L2_CORE: FATAL memory allocation failure (enum_v4l2_devices): %s\n", strerror(errno)); + exit(-1); + } + + /* Create a list of the devices in the 'v4l2' subsystem. */ + enumerate = udev_enumerate_new(my_device_list.udev); + udev_enumerate_add_match_subsystem(enumerate, "video4linux"); + udev_enumerate_scan_devices(enumerate); + devices = udev_enumerate_get_list_entry(enumerate); + /* + * For each item enumerated, print out its information. + * udev_list_entry_foreach is a macro which expands to + * a loop. The loop will be executed for each member in + * devices, setting dev_list_entry to a list entry + * which contains the device's path in /sys. + */ + udev_list_entry_foreach(dev_list_entry, devices) + { + const char *path; + + /* + * Get the filename of the /sys entry for the device + * and create a udev_device object (dev) representing it + */ + path = udev_list_entry_get_name(dev_list_entry); + struct udev_device *dev = udev_device_new_from_syspath(my_device_list.udev, path); + + /* usb_device_get_devnode() returns the path to the device node + itself in /dev. */ + const char *v4l2_device = udev_device_get_devnode(dev); + if (verbosity > 0) + printf("V4L2_CORE: Device Node Path: %s\n", v4l2_device); + + int fd = 0; + /* open the device and query the capabilities */ + if ((fd = v4l2_open(v4l2_device, O_RDWR | O_NONBLOCK, 0)) < 0) + { + fprintf(stderr, "V4L2_CORE: ERROR opening V4L2 interface for %s\n", v4l2_device); + v4l2_close(fd); + continue; /*next dir entry*/ + } + + if (xioctl(fd, VIDIOC_QUERYCAP, &v4l2_cap) < 0) + { + fprintf(stderr, "V4L2_CORE: VIDIOC_QUERYCAP error: %s\n", strerror(errno)); + fprintf(stderr, "V4L2_CORE: couldn't query device %s\n", v4l2_device); + v4l2_close(fd); + continue; /*next dir entry*/ + } + v4l2_close(fd); + + num_dev++; + /* Update the device list*/ + my_device_list.list_devices = realloc(my_device_list.list_devices, num_dev * sizeof(v4l2_dev_sys_data_t)); + if(my_device_list.list_devices == NULL) + { + fprintf(stderr, "V4L2_CORE: FATAL memory allocation failure (enum_v4l2_devices): %s\n", strerror(errno)); + exit(-1); + } + my_device_list.list_devices[num_dev-1].device = strdup(v4l2_device); + my_device_list.list_devices[num_dev-1].name = strdup((char *) v4l2_cap.card); + my_device_list.list_devices[num_dev-1].driver = strdup((char *) v4l2_cap.driver); + my_device_list.list_devices[num_dev-1].location = strdup((char *) v4l2_cap.bus_info); + my_device_list.list_devices[num_dev-1].valid = 1; + my_device_list.list_devices[num_dev-1].current = 0; + + /* The device pointed to by dev contains information about + the v4l2 device. In order to get information about the + USB device, get the parent device with the + subsystem/devtype pair of "usb"/"usb_device". This will + be several levels up the tree, but the function will find + it.*/ + dev = udev_device_get_parent_with_subsystem_devtype( + dev, + "usb", + "usb_device"); + if (!dev) + { + fprintf(stderr, "V4L2_CORE: Unable to find parent usb device."); + continue; + } + + /* From here, we can call get_sysattr_value() for each file + in the device's /sys entry. The strings passed into these + functions (idProduct, idVendor, serial, etc.) correspond + directly to the files in the directory which represents + the USB device. Note that USB strings are Unicode, UCS2 + encoded, but the strings returned from + udev_device_get_sysattr_value() are UTF-8 encoded. */ + if (verbosity > 0) + { + printf(" VID/PID: %s %s\n", + udev_device_get_sysattr_value(dev,"idVendor"), + udev_device_get_sysattr_value(dev, "idProduct")); + printf(" %s\n %s\n", + udev_device_get_sysattr_value(dev,"manufacturer"), + udev_device_get_sysattr_value(dev,"product")); + printf(" serial: %s\n", + udev_device_get_sysattr_value(dev, "serial")); + printf(" busnum: %s\n", + udev_device_get_sysattr_value(dev, "busnum")); + printf(" devnum: %s\n", + udev_device_get_sysattr_value(dev, "devnum")); + } + + my_device_list.list_devices[num_dev-1].vendor = strtoull(udev_device_get_sysattr_value(dev,"idVendor"), NULL, 16); + my_device_list.list_devices[num_dev-1].product = strtoull(udev_device_get_sysattr_value(dev, "idProduct"), NULL, 16); + my_device_list.list_devices[num_dev-1].busnum = strtoull(udev_device_get_sysattr_value(dev, "busnum"), NULL, 10); + my_device_list.list_devices[num_dev-1].devnum = strtoull(udev_device_get_sysattr_value(dev, "devnum"), NULL, 10); + + udev_device_unref(dev); + } + /* Free the enumerator object */ + udev_enumerate_unref(enumerate); + + my_device_list.num_devices = num_dev; + + return(E_OK); +} + +/* + * Initiate the device list (with udev monitoring) + * args: + * none + * + * asserts: + * none + * + * returns: none + */ +void v4l2core_init_device_list() +{ + /* Create a udev object */ + my_device_list.udev = udev_new(); + /*start udev device monitoring*/ + /* Set up a monitor to monitor v4l2 devices */ + if(my_device_list.udev) + { + my_device_list.udev_mon = udev_monitor_new_from_netlink(my_device_list.udev, "udev"); + udev_monitor_filter_add_match_subsystem_devtype(my_device_list.udev_mon, "video4linux", NULL); + udev_monitor_enable_receiving(my_device_list.udev_mon); + /* Get the file descriptor (fd) for the monitor */ + my_device_list.udev_fd = udev_monitor_get_fd(my_device_list.udev_mon); + + enum_v4l2_devices(); + } +} + +/* + * get the device index in device list + * args: + * videodevice - string with videodevice node (e.g: /dev/video0) + * + * asserts: + * none + * + * returns: + * videodevice index in device list [0 - num_devices[ or -1 on error + */ +int v4l2core_get_device_index(const char *videodevice) +{ + if(my_device_list.num_devices > 0 && my_device_list.list_devices != NULL) + { + int dev_index = 0; + for(dev_index = 0; dev_index < my_device_list.num_devices; ++dev_index) + { + if(strcmp(videodevice, my_device_list.list_devices[dev_index].device)==0) + { + my_device_list.list_devices[dev_index].current = 1; + return(dev_index); + } + } + } + + fprintf(stderr,"V4L2CORE: couldn't determine device (%s) list index\n", videodevice); + return -1; +} + +/* + * check for new devices + * args: + * vd - pointer to device data (can be null) + * + * asserts: + * my_device_list.udev is not null + * my_device_list.udev_fd is valid (> 0) + * my_device_list.udev_mon is not null + * + * returns: true(1) if device list was updated, false(0) otherwise + */ +int v4l2core_check_device_list_events(v4l2_dev_t *vd) +{ + /*assertions*/ + assert(my_device_list.udev != NULL); + assert(my_device_list.udev_fd > 0); + assert(my_device_list.udev_mon != NULL); + + fd_set fds; + struct timeval tv; + int ret = 0; + + FD_ZERO(&fds); + FD_SET(my_device_list.udev_fd, &fds); + tv.tv_sec = 0; + tv.tv_usec = 0; + + ret = select(my_device_list.udev_fd+1, &fds, NULL, NULL, &tv); + + /* Check if our file descriptor has received data. */ + if (ret > 0 && FD_ISSET(my_device_list.udev_fd, &fds)) + { + /* + * Make the call to receive the device. + * select() ensured that this will not block. + */ + struct udev_device *dev = udev_monitor_receive_device(my_device_list.udev_mon); + if (dev) + { + if (verbosity > 0) + { + printf("V4L2_CORE: Got Device event\n"); + printf(" Node: %s\n", udev_device_get_devnode(dev)); + printf(" Subsystem: %s\n", udev_device_get_subsystem(dev)); + printf(" Devtype: %s\n", udev_device_get_devtype(dev)); + printf(" Action: %s\n", udev_device_get_action(dev)); + } + + /*update device list*/ + if(my_device_list.list_devices != NULL) + free_device_list(); + enum_v4l2_devices(); + + /*update the current device index*/ + if(vd) + { + vd->this_device = v4l2core_get_device_index(vd->videodevice); + if(vd->this_device < 0) + vd->this_device = 0; + + if(my_device_list.list_devices) + my_device_list.list_devices[vd->this_device].current = 1; + } + + udev_device_unref(dev); + + return(1); + } + else + fprintf(stderr, "V4L2_CORE: No Device from receive_device(). An error occured.\n"); + } + + return(0); +} + +/* + * close v4l2 devices list + * args: + * none + * + * asserts: + * vd->list_devices is not null + * + * returns: void + */ +void v4l2core_close_v4l2_device_list() +{ + free_device_list(); + + if (my_device_list.udev) + udev_unref(my_device_list.udev); +} diff -Nru guvcview-1.7.3/gview_v4l2core/v4l2_devices.h guvcview-2.0.1+ubuntu1~ppa1/gview_v4l2core/v4l2_devices.h --- guvcview-1.7.3/gview_v4l2core/v4l2_devices.h 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/gview_v4l2core/v4l2_devices.h 2014-10-05 10:41:44.000000000 +0000 @@ -0,0 +1,42 @@ +/*******************************************************************************# +# guvcview http://guvcview.sourceforge.net # +# # +# Paulo Assis # +# # +# This program is free software; you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation; either version 2 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program; if not, write to the Free Software # +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # +# # +********************************************************************************/ + +#ifndef V4L2_DEVICES_H +#define V4L2_DEVICES_H + +#include "gviewv4l2core.h" + +/* + * enumerate available v4l2 devices + * and creates list in vd->list_devices + * args: + * none + * + * asserts: + * my_device_list.videodevice is not null + * my_device_list.udev is valid ( > 0 ) + * my_device_list.list_devices is null + * + * returns: error code + */ +int enum_v4l2_devices(); + +#endif diff -Nru guvcview-1.7.3/gview_v4l2core/v4l2_formats.c guvcview-2.0.1+ubuntu1~ppa1/gview_v4l2core/v4l2_formats.c --- guvcview-1.7.3/gview_v4l2core/v4l2_formats.c 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/gview_v4l2core/v4l2_formats.c 2014-10-05 10:41:44.000000000 +0000 @@ -0,0 +1,729 @@ +/*******************************************************************************# +# guvcview http://guvcview.sourceforge.net # +# # +# Paulo Assis # +# # +# This program is free software; you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation; either version 2 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program; if not, write to the Free Software # +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # +# # +********************************************************************************/ + +#include +#include +#include +#include +#include +#include +#include + +#include "gview.h" +#include "v4l2_formats.h" + +extern int verbosity; + +typedef struct _v4l2_format_table_t +{ + char fourcc[5]; /*fourcc code*/ + int pixelformat; /*v4l2 pixelformat*/ +} v4l2_format_table_t; + +static v4l2_format_table_t decoder_supported_formats[] = +{ + { + .fourcc = "YUYV", + .pixelformat = V4L2_PIX_FMT_YUYV, + }, + { + .fourcc = "MJPG", + .pixelformat = V4L2_PIX_FMT_MJPEG, + }, + { + .fourcc = "JPEG", + .pixelformat = V4L2_PIX_FMT_JPEG, + }, + { + .fourcc = "H264", + .pixelformat = V4L2_PIX_FMT_H264, + }, + { + .fourcc = "YVYU", + .pixelformat = V4L2_PIX_FMT_YVYU, + }, + { + .fourcc = "UYVY", + .pixelformat = V4L2_PIX_FMT_UYVY, + }, + { + .fourcc = "YYUV", + .pixelformat = V4L2_PIX_FMT_YYUV, + }, + { + .fourcc = "Y41P", + .pixelformat = V4L2_PIX_FMT_Y41P, + }, + { + .fourcc = "GREY", + .pixelformat = V4L2_PIX_FMT_GREY, + }, + { + .fourcc = "Y10B", + .pixelformat = V4L2_PIX_FMT_Y10BPACK, + }, + { + .fourcc = "Y16 ", + .pixelformat = V4L2_PIX_FMT_Y16, + }, + { + .fourcc = "YU12", + .pixelformat = V4L2_PIX_FMT_YUV420, + }, + { + .fourcc = "YV12", + .pixelformat = V4L2_PIX_FMT_YVU420, + }, + { + .fourcc = "NV12", + .pixelformat = V4L2_PIX_FMT_NV12, + }, + { + .fourcc = "NV21", + .pixelformat = V4L2_PIX_FMT_NV21, + }, + { + .fourcc = "NV16", + .pixelformat = V4L2_PIX_FMT_NV16, + }, + { + .fourcc = "NV61", + .pixelformat = V4L2_PIX_FMT_NV61, + }, + { + .fourcc = "S501", + .pixelformat = V4L2_PIX_FMT_SPCA501, + }, + { + .fourcc = "S505", + .pixelformat = V4L2_PIX_FMT_SPCA505, + }, + { + .fourcc = "S508", + .pixelformat = V4L2_PIX_FMT_SPCA508, + }, + { + .fourcc = "GBRG", + .pixelformat = V4L2_PIX_FMT_SGBRG8, + }, + { + .fourcc = "GRBG", + .pixelformat = V4L2_PIX_FMT_SGRBG8, + }, + { + .fourcc = "BA81", + .pixelformat = V4L2_PIX_FMT_SBGGR8, + }, + { + .fourcc = "RGGB", + .pixelformat = V4L2_PIX_FMT_SRGGB8, + }, + { + .fourcc = "RGB3", + .pixelformat = V4L2_PIX_FMT_RGB24, + }, + { + .fourcc = "BGR3", + .pixelformat = V4L2_PIX_FMT_BGR24, + }, + /*last one (zero terminated)*/ + { + .fourcc = {0,0,0,0,0}, + .pixelformat = 0, + } +}; + +/* Four-character-code (FOURCC) */ +#ifndef v4l2_fourcc +#define v4l2_fourcc(a, b, c, d)\ + ((uint32_t)(a) | ((uint32_t)(b) << 8) | ((uint32_t)(c) << 16) | ((uint32_t)(d) << 24)) +#endif + +/* + * get pixelformat from fourcc + * args: + * fourcc - fourcc code for format + * + * asserts: + * none + * + * returns: v4l2 pixel format + */ +int v4l2core_fourcc_2_v4l2_pixelformat(const char *fourcc) +{ + int fmt = 0; + if(!fourcc || strlen(fourcc) != 4) + return fmt; + else + fmt = v4l2_fourcc(toupper(fourcc[0]), toupper(fourcc[1]), toupper(fourcc[2]), toupper(fourcc[3])); + + return fmt; +} + +/* + * check pixelformat against decoder support formats + * args: + * pixelformat - v4l2 pixelformat + * + * asserts: + * none + * + * returns: TRUE(1) if format is supported + * FALSE(0) if not + */ +uint8_t can_decode_format(int pixelformat) +{ + int i = 0; + int sup_fmt = 0; + + do + { + sup_fmt = decoder_supported_formats[i].pixelformat; + + if(pixelformat == sup_fmt) + return TRUE; + + i++; + } + while(sup_fmt); /*last format is always 0*/ + + return FALSE; +} + +/* + * check fourcc against decoder support formats + * args: + * fourcc - v4l2 pixelformat fourcc + * + * asserts: + * none + * + * returns: TRUE(1) if format is supported + * FALSE(0) if not + */ +//uint8_t can_decode_fourcc(const char *fourcc) +//{ +// if(!fourcc) +// return FALSE; + +// if(strlen(fourcc) != 4) +// return FALSE; + +// int i = 0; +// int sup_fmt = 0; +// do +// { +// sup_fmt = decoder_supported_formats[i].pixelformat; + +// if(strcmp(fourcc, decoder_supported_formats[i].fourcc) == 0 ) +// return TRUE; + +// i++; +// } +// while(sup_fmt); +// +// return FALSE; +//} + +/* + * enumerate frame intervals (fps) + * args: + * vd - pointer to video device data + * pixfmt - v4l2 pixel format that we want to list frame intervals for + * width - video width that we want to list frame intervals for + * height - video height that we want to list frame intervals for + * fmtind - current index of format list + * fsizeind - current index of frame size list + * + * asserts: + * vd is not null + * vd->fd is valid ( > 0 ) + * vd->list_stream_formats is not null + * fmtind is valid + * vd->list_stream_formats->list_stream_cap is not null + * fsizeind is valid + * + * returns 0 if enumeration succeded or errno otherwise + */ +static int enum_frame_intervals(v4l2_dev_t *vd, + uint32_t pixfmt, uint32_t width, uint32_t height, + int fmtind, int fsizeind) +{ + /*assertions*/ + assert(vd != NULL); + assert(vd->fd > 0); + assert(vd->list_stream_formats != NULL); + assert(vd->numb_formats >= fmtind); + assert(vd->list_stream_formats->list_stream_cap != NULL); + assert(vd->list_stream_formats[fmtind-1].numb_res >= fsizeind); + + int ret=0; + struct v4l2_frmivalenum fival; + int list_fps=0; + memset(&fival, 0, sizeof(fival)); + fival.index = 0; + fival.pixel_format = pixfmt; + fival.width = width; + fival.height = height; + + vd->list_stream_formats[fmtind-1].list_stream_cap[fsizeind-1].framerate_num = NULL; + vd->list_stream_formats[fmtind-1].list_stream_cap[fsizeind-1].framerate_denom = NULL; + + if(verbosity > 0) + printf("\tTime interval between frame: "); + while ((ret = xioctl(vd->fd, VIDIOC_ENUM_FRAMEINTERVALS, &fival)) == 0) + { + fival.index++; + if (fival.type == V4L2_FRMIVAL_TYPE_DISCRETE) + { + if(verbosity > 0) + printf("%u/%u, ", fival.discrete.numerator, fival.discrete.denominator); + + list_fps++; + vd->list_stream_formats[fmtind-1].list_stream_cap[fsizeind-1].framerate_num = realloc( + vd->list_stream_formats[fmtind-1].list_stream_cap[fsizeind-1].framerate_num, + sizeof(int) * list_fps); + if(vd->list_stream_formats[fmtind-1].list_stream_cap[fsizeind-1].framerate_num == NULL) + { + fprintf(stderr, "V4L2_CORE: FATAL memory allocation failure (enum_frame_intervals): %s\n", strerror(errno)); + exit(-1); + } + vd->list_stream_formats[fmtind-1].list_stream_cap[fsizeind-1].framerate_denom = realloc( + vd->list_stream_formats[fmtind-1].list_stream_cap[fsizeind-1].framerate_denom, + sizeof(int) * list_fps); + if(vd->list_stream_formats[fmtind-1].list_stream_cap[fsizeind-1].framerate_denom == NULL) + { + fprintf(stderr, "V4L2_CORE: FATAL memory allocation failure (enum_frame_intervals): %s\n", strerror(errno)); + exit(-1); + } + + vd->list_stream_formats[fmtind-1].list_stream_cap[fsizeind-1].framerate_num[list_fps-1] = fival.discrete.numerator; + vd->list_stream_formats[fmtind-1].list_stream_cap[fsizeind-1].framerate_denom[list_fps-1] = fival.discrete.denominator; + } + else if (fival.type == V4L2_FRMIVAL_TYPE_CONTINUOUS) + { + if(verbosity > 0) + printf("{min { %u/%u } .. max { %u/%u } }, ", + fival.stepwise.min.numerator, fival.stepwise.min.numerator, + fival.stepwise.max.denominator, fival.stepwise.max.denominator); + break; + } + else if (fival.type == V4L2_FRMIVAL_TYPE_STEPWISE) + { + if(verbosity > 0) + printf("{min { %u/%u } .. max { %u/%u } / " + "stepsize { %u/%u } }, ", + fival.stepwise.min.numerator, fival.stepwise.min.denominator, + fival.stepwise.max.numerator, fival.stepwise.max.denominator, + fival.stepwise.step.numerator, fival.stepwise.step.denominator); + break; + } + } + + if (list_fps==0) + { + vd->list_stream_formats[fmtind-1].list_stream_cap[fsizeind-1].numb_frates = 1; + vd->list_stream_formats[fmtind-1].list_stream_cap[fsizeind-1].framerate_num = realloc( + vd->list_stream_formats[fmtind-1].list_stream_cap[fsizeind-1].framerate_num, + sizeof(int)); + if(vd->list_stream_formats[fmtind-1].list_stream_cap[fsizeind-1].framerate_num == NULL) + { + fprintf(stderr, "V4L2_CORE: FATAL memory allocation failure (enum_frame_intervals): %s\n", strerror(errno)); + exit(-1); + } + vd->list_stream_formats[fmtind-1].list_stream_cap[fsizeind-1].framerate_denom = realloc( + vd->list_stream_formats[fmtind-1].list_stream_cap[fsizeind-1].framerate_denom, + sizeof(int)); + if(vd->list_stream_formats[fmtind-1].list_stream_cap[fsizeind-1].framerate_denom == NULL) + { + fprintf(stderr, "V4L2_CORE: FATAL memory allocation failure (enum_frame_intervals): %s\n", strerror(errno)); + exit(-1); + } + + vd->list_stream_formats[fmtind-1].list_stream_cap[fsizeind-1].framerate_num[0] = 1; + vd->list_stream_formats[fmtind-1].list_stream_cap[fsizeind-1].framerate_denom[0] = 1; + } + else + vd->list_stream_formats[fmtind-1].list_stream_cap[fsizeind-1].numb_frates = list_fps; + + if(verbosity > 0) + printf("\n"); + if (ret != 0 && errno != EINVAL) + { + fprintf(stderr, "V4L2_CORE: (VIDIOC_ENUM_FRAMEINTERVALS) Error enumerating frame intervals\n"); + return errno; + } + return 0; +} + +/* + * enumerate frame sizes (width and height) + * args: + * vd - pointer to video device data + * pixfmt - v4l2 pixel format that we want to list frame sizes for + * fmtind - current index of format list + * + * asserts: + * vd is not null + * vd->fd is valid ( > 0 ) + * vd->list_stream_formats is not null + * fmtind is valid + * + * returns 0 if enumeration succeded or errno otherwise + */ +static int enum_frame_sizes(v4l2_dev_t *vd, uint32_t pixfmt, int fmtind) +{ + /*assertions*/ + assert(vd != NULL); + assert(vd->fd > 0); + assert(vd->list_stream_formats != NULL); + assert(vd->numb_formats >= fmtind); + + int ret=0; + int fsizeind=0; /*index for supported sizes*/ + vd->list_stream_formats[fmtind-1].list_stream_cap = NULL; + struct v4l2_frmsizeenum fsize; + + memset(&fsize, 0, sizeof(fsize)); + fsize.index = 0; + fsize.pixel_format = pixfmt; + + while ((ret = xioctl(vd->fd, VIDIOC_ENUM_FRAMESIZES, &fsize)) == 0) + { + fsize.index++; + if (fsize.type == V4L2_FRMSIZE_TYPE_DISCRETE) + { + if(verbosity > 0) + printf("{ discrete: width = %u, height = %u }\n", + fsize.discrete.width, fsize.discrete.height); + + fsizeind++; + vd->list_stream_formats[fmtind-1].list_stream_cap = realloc( + vd->list_stream_formats[fmtind-1].list_stream_cap, + fsizeind * sizeof(v4l2_stream_cap_t)); + + assert(vd->list_stream_formats[fmtind-1].list_stream_cap != NULL); + + vd->list_stream_formats[fmtind-1].numb_res = fsizeind; + + vd->list_stream_formats[fmtind-1].list_stream_cap[fsizeind-1].width = fsize.discrete.width; + vd->list_stream_formats[fmtind-1].list_stream_cap[fsizeind-1].height = fsize.discrete.height; + + ret = enum_frame_intervals(vd, + pixfmt, + fsize.discrete.width, + fsize.discrete.height, + fmtind, + fsizeind); + + if (ret != 0) + fprintf(stderr, "V4L2_CORE: Unable to enumerate frame sizes %s\n", strerror(ret)); + } + else if (fsize.type == V4L2_FRMSIZE_TYPE_CONTINUOUS) + { + if(verbosity > 0) + { + printf("{ continuous: min { width = %u, height = %u } .. " + "max { width = %u, height = %u } }\n", + fsize.stepwise.min_width, fsize.stepwise.min_height, + fsize.stepwise.max_width, fsize.stepwise.max_height); + printf(" will not enumerate frame intervals.\n"); + } + } + else if (fsize.type == V4L2_FRMSIZE_TYPE_STEPWISE) + { + if(verbosity > 0) + { + printf("{ stepwise: min { width = %u, height = %u } .. " + "max { width = %u, height = %u } / " + "stepsize { width = %u, height = %u } }\n", + fsize.stepwise.min_width, fsize.stepwise.min_height, + fsize.stepwise.max_width, fsize.stepwise.max_height, + fsize.stepwise.step_width, fsize.stepwise.step_height); + printf(" will not enumerate frame intervals.\n"); + } + } + else + { + fprintf(stderr, "V4L2_CORE: fsize.type not supported: %d\n", fsize.type); + fprintf(stderr, " (Discrete: %d Continuous: %d Stepwise: %d)\n", + V4L2_FRMSIZE_TYPE_DISCRETE, + V4L2_FRMSIZE_TYPE_CONTINUOUS, + V4L2_FRMSIZE_TYPE_STEPWISE); + } + } + + if (ret != 0 && errno != EINVAL) + { + fprintf(stderr, "V4L2_CORE: (VIDIOC_ENUM_FRAMESIZES) - Error enumerating frame sizes\n"); + return errno; + } + else if ((ret != 0) && (fsizeind == 0)) + { + /* ------ some drivers don't enumerate frame sizes ------ */ + /* negotiate with VIDIOC_TRY_FMT instead */ + + /*if fsizeind = 0 list_stream_cap shouldn't have been allocated*/ + assert(vd->list_stream_formats[fmtind-1].list_stream_cap == NULL); + + fsizeind++; + struct v4l2_format fmt; + fmt.type = V4L2_BUF_TYPE_VIDEO_CAPTURE; + fmt.fmt.pix.width = vd->format.fmt.pix.width; /* check defined size*/ + fmt.fmt.pix.height = vd->format.fmt.pix.height; + fmt.fmt.pix.pixelformat = pixfmt; + fmt.fmt.pix.field = V4L2_FIELD_ANY; + + xioctl(vd->fd, VIDIOC_TRY_FMT, &fmt); + + /*use the returned values*/ + int width = fmt.fmt.pix.width; + int height = fmt.fmt.pix.height; + + if(verbosity > 0) + { + printf("{ VIDIOC_TRY_FMT : width = %u, height = %u }\n", + vd->format.fmt.pix.width, + vd->format.fmt.pix.height); + printf("fmtind:%i fsizeind: %i\n", fmtind, fsizeind); + } + + vd->list_stream_formats[fmtind-1].list_stream_cap = realloc( + vd->list_stream_formats[fmtind-1].list_stream_cap, + sizeof(v4l2_stream_cap_t) * fsizeind); + + assert(vd->list_stream_formats[fmtind-1].list_stream_cap != NULL); + + vd->list_stream_formats[fmtind-1].numb_res=fsizeind; + + /*don't enumerateintervals, use a default of 1/25 fps instead*/ + vd->list_stream_formats[fmtind-1].list_stream_cap[0].framerate_num = NULL; + vd->list_stream_formats[fmtind-1].list_stream_cap[0].framerate_num = realloc( + vd->list_stream_formats[fmtind-1].list_stream_cap[0].framerate_num, + sizeof(int)); + if(vd->list_stream_formats[fmtind-1].list_stream_cap[0].framerate_num == NULL) + { + fprintf(stderr, "V4L2_CORE: FATAL memory allocation failure (enum_frame_intervals): %s\n", strerror(errno)); + exit(-1); + } + + vd->list_stream_formats[fmtind-1].list_stream_cap[0].framerate_denom = NULL; + vd->list_stream_formats[fmtind-1].list_stream_cap[0].framerate_denom = realloc( + vd->list_stream_formats[fmtind-1].list_stream_cap[0].framerate_denom, + sizeof(int)); + if(vd->list_stream_formats[fmtind-1].list_stream_cap[0].framerate_denom == NULL) + { + fprintf(stderr, "V4L2_CORE: FATAL memory allocation failure (enum_frame_intervals): %s\n", strerror(errno)); + exit(-1); + } + + vd->list_stream_formats[fmtind-1].list_stream_cap[0].width = width; + vd->list_stream_formats[fmtind-1].list_stream_cap[0].height = height; + vd->list_stream_formats[fmtind-1].list_stream_cap[0].framerate_num[0] = 1; + vd->list_stream_formats[fmtind-1].list_stream_cap[0].framerate_denom[0] = 25; + vd->list_stream_formats[fmtind-1].list_stream_cap[0].numb_frates = 1; + } + + return 0; +} + +/* + * enumerate frame formats (pixelformats, resolutions and fps) + * and creates list in vd->list_stream_formats + * args: + * vd - pointer to video device data + * + * asserts: + * vd is not null + * vd->fd is valid ( > 0 ) + * vd->list_stream_formats is null + * + * returns: 0 if enumeration succeded or errno otherwise + */ +int enum_frame_formats(v4l2_dev_t *vd) +{ + /*assertions*/ + assert(vd != NULL); + assert(vd->fd > 0); + assert(vd->list_stream_formats == NULL); + + int ret=E_OK; + + int fmtind=0; + struct v4l2_fmtdesc fmt; + memset(&fmt, 0, sizeof(fmt)); + fmt.index = 0; + fmt.type = V4L2_BUF_TYPE_VIDEO_CAPTURE; + + vd->list_stream_formats = calloc ( 1, sizeof(v4l2_stream_formats_t)); + if(vd->list_stream_formats == NULL) + { + fprintf(stderr, "V4L2_CORE: FATAL memory allocation failure (enum_frame_formats): %s\n", strerror(errno)); + exit(-1); + } + vd->list_stream_formats[0].list_stream_cap = NULL; + + while ((ret = xioctl(vd->fd, VIDIOC_ENUM_FMT, &fmt)) == 0) + { + uint8_t dec_support = can_decode_format(fmt.pixelformat); + + fmt.index++; + if(verbosity > 0) + { + printf("{ pixelformat = '%c%c%c%c', description = '%s' }\n", + fmt.pixelformat & 0xFF, (fmt.pixelformat >> 8) & 0xFF, + (fmt.pixelformat >> 16) & 0xFF, (fmt.pixelformat >> 24) & 0xFF, + fmt.description); + + if(!dec_support) + printf(" - FORMAT NOT SUPPORTED BY DECODER -\n"); + } + + fmtind++; + + vd->list_stream_formats = realloc( + vd->list_stream_formats, + fmtind * sizeof(v4l2_stream_formats_t)); + + assert(vd->list_stream_formats != NULL); + + vd->numb_formats = fmtind; + + vd->list_stream_formats[fmtind-1].dec_support = dec_support; + vd->list_stream_formats[fmtind-1].format = fmt.pixelformat; + snprintf(vd->list_stream_formats[fmtind-1].fourcc, 5, "%c%c%c%c", + fmt.pixelformat & 0xFF, (fmt.pixelformat >> 8) & 0xFF, + (fmt.pixelformat >> 16) & 0xFF, (fmt.pixelformat >> 24) & 0xFF); + //enumerate frame sizes + ret = enum_frame_sizes(vd, fmt.pixelformat, fmtind); + if (ret != 0) + fprintf( stderr, "v4L2_CORE: Unable to enumerate frame sizes :%s\n", strerror(ret)); + } + + if (errno != EINVAL) + fprintf( stderr, "v4L2_CORE: (VIDIOC_ENUM_FMT) - Error enumerating frame formats: %s\n", strerror(errno)); + + + return (ret); +} + +/* get frame format index from format list + * args: + * vd - pointer to video device data + * format - v4l2 pixel format + * + * asserts: + * vd is not null + * vd->list_stream_formats is not null + * + * returns: format list index or -1 if not available + */ +int v4l2core_get_frame_format_index(v4l2_dev_t *vd, int format) +{ + /*asserts*/ + assert(vd != NULL); + assert(vd->list_stream_formats != NULL); + + int i=0; + for(i=0; inumb_formats; i++) + { + //printf("V4L2_CORE: requested format(%x) [%i] -> %x\n", + // format, i, vd->list_stream_formats[i].format); + if(format == vd->list_stream_formats[i].format) + return (i); + } + return (-1); +} + +/* get resolution index for format index from format list + * args: + * vd - pointer to video device data + * format - format index from format list + * width - requested width + * height - requested height + * + * asserts: + * vd is not null + * vd->list_stream_formats is not null + * + * returns: resolution list index for format index or -1 if not available + */ +int v4l2core_get_format_resolution_index(v4l2_dev_t *vd, int format, int width, int height) +{ + /*asserts*/ + assert(vd != NULL); + assert(vd->list_stream_formats != NULL); + + if(format >= vd->numb_formats || format < 0) + { + fprintf(stderr, "V4L2_CORE: [get resolution index] format index (%i) is not valid [0 - %i]\n", + format, vd->numb_formats - 1); + return (-1); + } + + int i=0; + for(i=0; i < vd->list_stream_formats[format].numb_res; i++) + { + if( width == vd->list_stream_formats[format].list_stream_cap[i].width && + height == vd->list_stream_formats[format].list_stream_cap[i].height) + return (i); + } + + return (-1); +} + +/* + * free frame formats list + * args: + * vd - pointer to video device data + * + * asserts: + * vd is not null + * vd->list_stream_formats is not null + * + * returns: void + */ +void free_frame_formats(v4l2_dev_t *vd) +{ + /*asserts*/ + assert(vd != NULL); + assert(vd->list_stream_formats != NULL); + + int i=0; + int j=0; + for(i=0; i < vd->numb_formats; i++) + { + if(vd->list_stream_formats[i].list_stream_cap != NULL) + { + for(j=0; j < vd->list_stream_formats[i].numb_res;j++) + { + if(vd->list_stream_formats[i].list_stream_cap[j].framerate_num != NULL) + free(vd->list_stream_formats[i].list_stream_cap[j].framerate_num); + + if(vd->list_stream_formats[i].list_stream_cap[j].framerate_denom != NULL) + free(vd->list_stream_formats[i].list_stream_cap[j].framerate_denom); + } + free(vd->list_stream_formats[i].list_stream_cap); + } + } + free(vd->list_stream_formats); + vd->list_stream_formats = NULL; +} diff -Nru guvcview-1.7.3/gview_v4l2core/v4l2_formats.h guvcview-2.0.1+ubuntu1~ppa1/gview_v4l2core/v4l2_formats.h --- guvcview-1.7.3/gview_v4l2core/v4l2_formats.h 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/gview_v4l2core/v4l2_formats.h 2014-10-05 10:41:44.000000000 +0000 @@ -0,0 +1,80 @@ +/*******************************************************************************# +# guvcview http://guvcview.sourceforge.net # +# # +# Paulo Assis # +# # +# This program is free software; you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation; either version 2 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program; if not, write to the Free Software # +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # +# # +********************************************************************************/ +#ifndef V4L2_FORMATS_H +#define V4L2_FORMATS_H + +#include "gviewv4l2core.h" + +/* + * check pixelformat against decoder support formats + * args: + * pixelformat - v4l2 pixelformat + * + * asserts: + * none + * + * returns: TRUE(1) if format is supported + * FALSE(0) if not + */ +uint8_t can_decode_format(int pixelformat); + +/* + * check fourcc against decoder support formats + * args: + * fourcc - v4l2 pixelformat fourcc + * + * asserts: + * none + * + * returns: TRUE(1) if format is supported + * FALSE(0) if not + */ +//uint8_t can_decode_fourcc(const char *fourcc); + +/* + * enumerate frame formats (pixelformats, resolutions and fps) + * and creates list in vd->list_stream_formats + * args: + * vd - pointer to video device data + * + * asserts: + * vd is not null + * vd->fd is valid ( > 0 ) + * vd->list_stream_formats is null + * + * returns: 0 if enumeration succeded or errno otherwise + */ +int enum_frame_formats(v4l2_dev_t *vd); + +/* + * free frame formats list + * args: + * vd - pointer to video device data + * + * asserts: + * vd is not null + * vd->list_stream_formats is not null + * + * returns: void + */ +void free_frame_formats(v4l2_dev_t *vd); + +#endif diff -Nru guvcview-1.7.3/gview_v4l2core/v4l2_xu_ctrls.c guvcview-2.0.1+ubuntu1~ppa1/gview_v4l2core/v4l2_xu_ctrls.c --- guvcview-1.7.3/gview_v4l2core/v4l2_xu_ctrls.c 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/gview_v4l2core/v4l2_xu_ctrls.c 2014-10-05 10:41:44.000000000 +0000 @@ -0,0 +1,346 @@ +/*******************************************************************************# +# guvcview http://guvcview.sourceforge.net # +# # +# Paulo Assis # +# # +# This program is free software; you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation; either version 2 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program; if not, write to the Free Software # +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # +# # +********************************************************************************/ + +#include +#include +#include +#include +#include +#include + +#include "gview.h" +#include "v4l2_xu_ctrls.h" + +extern int verbosity; + +/* + * XU controls + */ +#define V4L2_CID_BASE_EXTCTR 0x0A046D01 +#define V4L2_CID_BASE_LOGITECH V4L2_CID_BASE_EXTCTR +#define V4L2_CID_PANTILT_RESET_LOGITECH V4L2_CID_BASE_LOGITECH+2 + +/*this should realy be replaced by V4L2_CID_FOCUS_ABSOLUTE in libwebcam*/ +#define V4L2_CID_LED1_MODE_LOGITECH V4L2_CID_BASE_LOGITECH+4 +#define V4L2_CID_LED1_FREQUENCY_LOGITECH V4L2_CID_BASE_LOGITECH+5 +#define V4L2_CID_DISABLE_PROCESSING_LOGITECH V4L2_CID_BASE_LOGITECH+0x70 +#define V4L2_CID_RAW_BITS_PER_PIXEL_LOGITECH V4L2_CID_BASE_LOGITECH+0x71 +#define V4L2_CID_LAST_EXTCTR V4L2_CID_RAW_BITS_PER_PIXEL_LOGITECH + +#define UVC_GUID_LOGITECH_VIDEO_PIPE {0x82, 0x06, 0x61, 0x63, 0x70, 0x50, 0xab, 0x49, 0xb8, 0xcc, 0xb3, 0x85, 0x5e, 0x8d, 0x22, 0x50} +#define UVC_GUID_LOGITECH_MOTOR_CONTROL {0x82, 0x06, 0x61, 0x63, 0x70, 0x50, 0xab, 0x49, 0xb8, 0xcc, 0xb3, 0x85, 0x5e, 0x8d, 0x22, 0x56} +#define UVC_GUID_LOGITECH_USER_HW_CONTROL {0x82, 0x06, 0x61, 0x63, 0x70, 0x50, 0xab, 0x49, 0xb8, 0xcc, 0xb3, 0x85, 0x5e, 0x8d, 0x22, 0x1f} + +#define XU_HW_CONTROL_LED1 1 +#define XU_MOTORCONTROL_PANTILT_RELATIVE 1 +#define XU_MOTORCONTROL_PANTILT_RESET 2 +#define XU_MOTORCONTROL_FOCUS 3 +#define XU_COLOR_PROCESSING_DISABLE 5 +#define XU_RAW_DATA_BITS_PER_PIXEL 8 + +/* some Logitech webcams have pan/tilt/focus controls */ +#define LENGTH_OF_XU_MAP (9) + +static struct uvc_menu_info led_menu_entry[4] = {{0, N_("Off")}, + {1, N_("On")}, + {2, N_("Blinking")}, + {3, N_("Auto")}}; + +/* known xu control mappings */ +static struct uvc_xu_control_mapping xu_mappings[] = +{ + { + .id = V4L2_CID_PAN_RELATIVE, + .name = N_("Pan (relative)"), + .entity = UVC_GUID_LOGITECH_MOTOR_CONTROL, + .selector = XU_MOTORCONTROL_PANTILT_RELATIVE, + .size = 16, + .offset = 0, + .v4l2_type = V4L2_CTRL_TYPE_INTEGER, + .data_type = UVC_CTRL_DATA_TYPE_SIGNED, + .menu_info = NULL, + .menu_count = 0, + .reserved = {0,0,0,0} + }, + { + .id = V4L2_CID_TILT_RELATIVE, + .name = N_("Tilt (relative)"), + .entity = UVC_GUID_LOGITECH_MOTOR_CONTROL, + .selector = XU_MOTORCONTROL_PANTILT_RELATIVE, + .size = 16, + .offset = 16, + .v4l2_type = V4L2_CTRL_TYPE_INTEGER, + .data_type = UVC_CTRL_DATA_TYPE_SIGNED, + .menu_info = NULL, + .menu_count = 0, + .reserved = {0,0,0,0} + }, + { + .id = V4L2_CID_PAN_RESET, + .name = N_("Pan Reset"), + .entity = UVC_GUID_LOGITECH_MOTOR_CONTROL, + .selector = XU_MOTORCONTROL_PANTILT_RESET, + .size = 1, + .offset = 0, + .v4l2_type = V4L2_CTRL_TYPE_BUTTON, + .data_type = UVC_CTRL_DATA_TYPE_UNSIGNED, + .menu_info = NULL, + .menu_count = 0, + .reserved = {0,0,0,0} + }, + { + .id = V4L2_CID_TILT_RESET, + .name = N_("Tilt Reset"), + .entity = UVC_GUID_LOGITECH_MOTOR_CONTROL, + .selector = XU_MOTORCONTROL_PANTILT_RESET, + .size = 1, + .offset = 1, + .v4l2_type = V4L2_CTRL_TYPE_BUTTON, + .data_type = UVC_CTRL_DATA_TYPE_UNSIGNED, + .menu_info = NULL, + .menu_count = 0, + .reserved = {0,0,0,0} + }, + { + .id = V4L2_CID_FOCUS_ABSOLUTE, + .name = N_("Focus"), + .entity = UVC_GUID_LOGITECH_MOTOR_CONTROL, + .selector = XU_MOTORCONTROL_FOCUS, + .size = 8, + .offset = 0, + .v4l2_type = V4L2_CTRL_TYPE_INTEGER, + .data_type = UVC_CTRL_DATA_TYPE_UNSIGNED, + .menu_info = NULL, + .menu_count = 0, + .reserved = {0,0,0,0} + }, + { + .id = V4L2_CID_LED1_MODE_LOGITECH, + .name = N_("LED1 Mode"), + .entity = UVC_GUID_LOGITECH_USER_HW_CONTROL, + .selector = XU_HW_CONTROL_LED1, + .size = 8, + .offset = 0, + .v4l2_type = V4L2_CTRL_TYPE_MENU, + .data_type = UVC_CTRL_DATA_TYPE_UNSIGNED, + .menu_info = led_menu_entry, + .menu_count = 4, + .reserved = {0,0,0,0} + }, + { + .id = V4L2_CID_LED1_FREQUENCY_LOGITECH, + .name = N_("LED1 Frequency"), + .entity = UVC_GUID_LOGITECH_USER_HW_CONTROL, + .selector = XU_HW_CONTROL_LED1, + .size = 8, + .offset = 16, + .v4l2_type = V4L2_CTRL_TYPE_INTEGER, + .data_type = UVC_CTRL_DATA_TYPE_UNSIGNED, + .menu_info = NULL, + .menu_count = 0, + .reserved = {0,0,0,0} + }, + { + .id = V4L2_CID_DISABLE_PROCESSING_LOGITECH, + .name = N_("Disable video processing"), + .entity = UVC_GUID_LOGITECH_VIDEO_PIPE, + .selector = XU_COLOR_PROCESSING_DISABLE, + .size = 8, + .offset = 0, + .v4l2_type = V4L2_CTRL_TYPE_BOOLEAN, + .data_type = UVC_CTRL_DATA_TYPE_BOOLEAN, + .menu_info = NULL, + .menu_count = 0, + .reserved = {0,0,0,0} + }, + { + .id = V4L2_CID_RAW_BITS_PER_PIXEL_LOGITECH, + .name = N_("Raw bits per pixel"), + .entity = UVC_GUID_LOGITECH_VIDEO_PIPE, + .selector = XU_RAW_DATA_BITS_PER_PIXEL, + .size = 8, + .offset = 0, + .v4l2_type = V4L2_CTRL_TYPE_INTEGER, + .data_type = UVC_CTRL_DATA_TYPE_UNSIGNED, + .menu_info = NULL, + .menu_count = 0, + .reserved = {0,0,0,0} + }, + +}; + +/* + * tries to map available xu controls for supported devices + * args: + * vd - pointer to video device data + * + * asserts: + * vd is not null + * vd->fd is valid ( > 0 ) + * + * returns: 0 if enumeration succeded or errno otherwise + */ +int init_xu_ctrls(v4l2_dev_t *vd) +{ + /*assertions*/ + assert(vd != NULL); + assert(vd->fd > 0); + + int i=0; + int err=0; + /* after adding the controls, add the mapping now */ + for ( i=0; i 0) + printf("V4L2_CORE: mapping control for %s\n", xu_mappings[i].name); + if ((err=xioctl(vd->fd, UVCIOC_CTRL_MAP, &xu_mappings[i])) < 0) + { + if ((errno!=EEXIST) || (errno != EACCES)) + { + fprintf(stderr, "V4L2_CORE: (UVCIOC_CTRL_MAP) Error: %s\n", strerror(errno)); + } + else if (errno == EACCES) + { + fprintf(stderr, "V4L2_CORE: need admin previledges for adding extension controls\n"); + fprintf(stderr, "V4L2_CORE: please run 'guvcview --add_ctrls' as root (or with sudo)\n"); + return (-1); + } + else fprintf(stderr, "V4L2_CORE: Mapping exists: %s\n", strerror(errno)); + } + } + return err; +} + +/* + * get lenght of xu control defined by unit id and selector + * args: + * vd - pointer to video device data + * unit - unit id of xu control + * selector - selector for control + * + * asserts: + * vd is not null + * vd->fd is valid ( > 0 ) + * + * returns: length of xu control + */ +uint16_t v4l2core_get_length_xu_control(v4l2_dev_t *vd, uint8_t unit, uint8_t selector) +{ + /*assertions*/ + assert(vd != NULL); + assert(vd->fd > 0); + + uint16_t length = 0; + + struct uvc_xu_control_query xu_ctrl_query = + { + .unit = unit, + .selector = selector, + .query = UVC_GET_LEN, + .size = sizeof(length), + .data = (uint8_t *) &length + }; + + if (xioctl(vd->fd, UVCIOC_CTRL_QUERY, &xu_ctrl_query) < 0) + { + fprintf(stderr, "V4L2_CORE: UVCIOC_CTRL_QUERY (GET_LEN) - Error: %s\n", strerror(errno)); + return 0; + } + + return length; +} + +/* + * get uvc info for xu control defined by unit id and selector + * args: + * vd - pointer to video device data + * unit - unit id of xu control + * selector - selector for control + * + * asserts: + * vd is not null + * vd->fd is valid ( > 0 ) + * + * returns: info of xu control + */ +uint8_t v4l2core_get_info_xu_control(v4l2_dev_t *vd, uint8_t unit, uint8_t selector) +{ + /*assertions*/ + assert(vd != NULL); + assert(vd->fd > 0); + + uint8_t info = 0; + + struct uvc_xu_control_query xu_ctrl_query = + { + .unit = unit, + .selector = selector, + .query = UVC_GET_INFO, + .size = sizeof(info), + .data = &info + }; + + if (xioctl(vd->fd, UVCIOC_CTRL_QUERY, &xu_ctrl_query) < 0) + { + fprintf(stderr, "V4L2_CORE: UVCIOC_CTRL_QUERY (GET_INFO) - Error: %s\n", strerror(errno)); + return 0; + } + + return info; +} + +/* + * runs a query on xu control defined by unit id and selector + * args: + * vd - pointer to video device data + * unit - unit id of xu control + * selector - selector for control + * query - query type + * data - pointer to query data + * + * asserts: + * vd is not null + * vd->fd is valid ( > 0 ) + * + * returns: 0 if query succeded or errno otherwise + */ +int v4l2core_query_xu_control(v4l2_dev_t *vd, uint8_t unit, uint8_t selector, uint8_t query, void *data) +{ + int err = 0; + uint16_t len = v4l2core_get_length_xu_control(vd, unit, selector); + + struct uvc_xu_control_query xu_ctrl_query = + { + .unit = unit, + .selector = selector, + .query = query, + .size = len, + .data = (uint8_t *) data + }; + + /*get query data*/ + if ((err=xioctl(vd->fd, UVCIOC_CTRL_QUERY, &xu_ctrl_query)) < 0) + { + fprintf(stderr, "V4L2_CORE: UVCIOC_CTRL_QUERY (%i) - Error: %s\n", query, strerror(errno)); + } + + return err; +} diff -Nru guvcview-1.7.3/gview_v4l2core/v4l2_xu_ctrls.h guvcview-2.0.1+ubuntu1~ppa1/gview_v4l2core/v4l2_xu_ctrls.h --- guvcview-1.7.3/gview_v4l2core/v4l2_xu_ctrls.h 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/gview_v4l2core/v4l2_xu_ctrls.h 2014-10-05 10:41:44.000000000 +0000 @@ -0,0 +1,40 @@ +/*******************************************************************************# +# guvcview http://guvcview.sourceforge.net # +# # +# Paulo Assis # +# # +# This program is free software; you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation; either version 2 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program; if not, write to the Free Software # +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # +# # +********************************************************************************/ + +#ifndef V4L2_XU_CTRLS_H +#define V4L2_XU_CTRLS_H + +#include "gviewv4l2core.h" + +/* + * tries to map available xu controls for supported devices + * args: + * vd - pointer to video device data + * + * asserts: + * vd is not null + * vd->fd is valid ( > 0 ) + * + * returns: 0 if map succeded or errno otherwise + */ +int init_xu_ctrls(v4l2_dev_t *vd); + +#endif diff -Nru guvcview-1.7.3/includes/gview.h guvcview-2.0.1+ubuntu1~ppa1/includes/gview.h --- guvcview-1.7.3/includes/gview.h 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/includes/gview.h 2014-10-05 10:41:44.000000000 +0000 @@ -0,0 +1,120 @@ +/*******************************************************************************# +# guvcview http://guvcview.sourceforge.net # +# # +# Paulo Assis # +# # +# This program is free software; you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation; either version 2 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program; if not, write to the Free Software # +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # +# # +********************************************************************************/ + +#ifndef GVIEW_H +#define GVIEW_H +#include +#include +#include +#include + +/*needed fo PACKAGE definition*/ +#include "../config.h" + +/* support for internationalization - i18n */ +#ifndef _ +# define _(String) dgettext (GETTEXT_PACKAGE, String) +#endif + +#ifndef N_ +# ifdef gettext_noop +# define N_(String) gettext_noop (String) +# else +# define N_(String) (String) +# endif +#endif + +#ifndef TRUE +#define TRUE (1) +#endif + +#ifndef FALSE +#define FALSE (0) +#endif + +#define CLEAR_LINE "\x1B[K" + +#ifdef WORDS_BIGENDIAN + #define BIGENDIAN 1 +#else + #define BIGENDIAN 0 +#endif + +#ifndef NSEC_PER_SEC +#define NSEC_PER_SEC 1000000000LL +#endif + +#ifndef USEC_PER_SEC +#define USEC_PER_SEC 1000000LL +#endif + +#define ODD(x) ((x%2)?TRUE:FALSE) + +#define __THREAD_TYPE pthread_t +#define __THREAD_CREATE(t,f,d) (pthread_create(t,NULL,f,d)) +#define __THREAD_JOIN(t) (pthread_join(t, NULL)) + + +#define __MUTEX_TYPE pthread_mutex_t +#define __COND_TYPE pthread_cond_t +#define __STATIC_MUTEX_INIT PTHREAD_MUTEX_INITIALIZER +#define __INIT_MUTEX(m) ( pthread_mutex_init(m, NULL) ) +#define __CLOSE_MUTEX(m) ( pthread_mutex_destroy(m) ) +#define __LOCK_MUTEX(m) ( pthread_mutex_lock(m) ) +#define __UNLOCK_MUTEX(m) ( pthread_mutex_unlock(m) ) + +#define __INIT_COND(c) ( pthread_cond_init (c, NULL) ) +#define __CLOSE_COND(c) ( pthread_cond_destroy(c) ) +#define __COND_BCAST(c) ( pthread_cond_broadcast(c) ) +#define __COND_TIMED_WAIT(c,m,t) ( pthread_cond_timedwait(c,m,t) ) + +/*next index of ring buffer with size elements*/ +#define NEXT_IND(ind,size) ind++;if(ind>=size) ind=0 +/*previous index of ring buffer with size elements*/ +//#define PREV_IND(ind,size) ind--;if(ind<0) ind=size-1 + +typedef char* pchar; + +/* 0 is device default*/ +static const int stdSampleRates[] = +{ + 0, 8000, 9600, 11025, 12000, + 16000, 22050, 24000, + 32000, 44100, 48000, + 88200, 96000, + -1 /* Negative terminated list. */ +}; + +#define DHT_SIZE 432 + +/*clip value between 0 and 255*/ +#define CLIP(value) (uint8_t)(((value)>0xFF)?0xff:(((value)<0)?0:(value))) + +/*MAX macro - gets the bigger value*/ +#ifndef MAX +#define MAX(a,b) (((a) < (b)) ? (b) : (a)) +#endif + +/* On Screen Display flags*/ +#define OSD_METER (1<<0) + +#endif + diff -Nru guvcview-1.7.3/INSTALL guvcview-2.0.1+ubuntu1~ppa1/INSTALL --- guvcview-1.7.3/INSTALL 2014-03-24 22:56:28.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/INSTALL 2014-10-05 10:41:44.000000000 +0000 @@ -12,8 +12,8 @@ Basic Installation ================== - Briefly, the shell commands `./configure; make; make install' should -configure, build, and install this package. The following + Briefly, the shell command `./configure && make && make install' +should configure, build, and install this package. The following more-detailed instructions are generic; see the `README' file for instructions specific to this package. Some packages provide this `INSTALL' file but do not implement all of the features documented diff -Nru guvcview-1.7.3/ltmain.sh guvcview-2.0.1+ubuntu1~ppa1/ltmain.sh --- guvcview-1.7.3/ltmain.sh 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/ltmain.sh 2014-10-05 10:41:44.000000000 +0000 @@ -0,0 +1,9661 @@ + +# libtool (GNU libtool) 2.4.2 +# Written by Gordon Matzigkeit , 1996 + +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, +# 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc. +# This is free software; see the source for copying conditions. There is NO +# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + +# GNU Libtool is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# As a special exception to the GNU General Public License, +# if you distribute this file as part of a program or library that +# is built using GNU Libtool, you may include this file under the +# same distribution terms that you use for the rest of that program. +# +# GNU Libtool is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with GNU Libtool; see the file COPYING. If not, a copy +# can be downloaded from http://www.gnu.org/licenses/gpl.html, +# or obtained by writing to the Free Software Foundation, Inc., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + +# Usage: $progname [OPTION]... [MODE-ARG]... +# +# Provide generalized library-building support services. +# +# --config show all configuration variables +# --debug enable verbose shell tracing +# -n, --dry-run display commands without modifying any files +# --features display basic configuration information and exit +# --mode=MODE use operation mode MODE +# --preserve-dup-deps don't remove duplicate dependency libraries +# --quiet, --silent don't print informational messages +# --no-quiet, --no-silent +# print informational messages (default) +# --no-warn don't display warning messages +# --tag=TAG use configuration variables from tag TAG +# -v, --verbose print more informational messages than default +# --no-verbose don't print the extra informational messages +# --version print version information +# -h, --help, --help-all print short, long, or detailed help message +# +# MODE must be one of the following: +# +# clean remove files from the build directory +# compile compile a source file into a libtool object +# execute automatically set library path, then run a program +# finish complete the installation of libtool libraries +# install install libraries or executables +# link create a library or an executable +# uninstall remove libraries from an installed directory +# +# MODE-ARGS vary depending on the MODE. When passed as first option, +# `--mode=MODE' may be abbreviated as `MODE' or a unique abbreviation of that. +# Try `$progname --help --mode=MODE' for a more detailed description of MODE. +# +# When reporting a bug, please describe a test case to reproduce it and +# include the following information: +# +# host-triplet: $host +# shell: $SHELL +# compiler: $LTCC +# compiler flags: $LTCFLAGS +# linker: $LD (gnu? $with_gnu_ld) +# $progname: (GNU libtool) 2.4.2 Debian-2.4.2-1.10ubuntu1 +# automake: $automake_version +# autoconf: $autoconf_version +# +# Report bugs to . +# GNU libtool home page: . +# General help using GNU software: . + +PROGRAM=libtool +PACKAGE=libtool +VERSION="2.4.2 Debian-2.4.2-1.10ubuntu1" +TIMESTAMP="" +package_revision=1.3337 + +# Be Bourne compatible +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then + emulate sh + NULLCMD=: + # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac +fi +BIN_SH=xpg4; export BIN_SH # for Tru64 +DUALCASE=1; export DUALCASE # for MKS sh + +# A function that is used when there is no print builtin or printf. +func_fallback_echo () +{ + eval 'cat <<_LTECHO_EOF +$1 +_LTECHO_EOF' +} + +# NLS nuisances: We save the old values to restore during execute mode. +lt_user_locale= +lt_safe_locale= +for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES +do + eval "if test \"\${$lt_var+set}\" = set; then + save_$lt_var=\$$lt_var + $lt_var=C + export $lt_var + lt_user_locale=\"$lt_var=\\\$save_\$lt_var; \$lt_user_locale\" + lt_safe_locale=\"$lt_var=C; \$lt_safe_locale\" + fi" +done +LC_ALL=C +LANGUAGE=C +export LANGUAGE LC_ALL + +$lt_unset CDPATH + + +# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh +# is ksh but when the shell is invoked as "sh" and the current value of +# the _XPG environment variable is not equal to 1 (one), the special +# positional parameter $0, within a function call, is the name of the +# function. +progpath="$0" + + + +: ${CP="cp -f"} +test "${ECHO+set}" = set || ECHO=${as_echo-'printf %s\n'} +: ${MAKE="make"} +: ${MKDIR="mkdir"} +: ${MV="mv -f"} +: ${RM="rm -f"} +: ${SHELL="${CONFIG_SHELL-/bin/sh}"} +: ${Xsed="$SED -e 1s/^X//"} + +# Global variables: +EXIT_SUCCESS=0 +EXIT_FAILURE=1 +EXIT_MISMATCH=63 # $? = 63 is used to indicate version mismatch to missing. +EXIT_SKIP=77 # $? = 77 is used to indicate a skipped test to automake. + +exit_status=$EXIT_SUCCESS + +# Make sure IFS has a sensible default +lt_nl=' +' +IFS=" $lt_nl" + +dirname="s,/[^/]*$,," +basename="s,^.*/,," + +# func_dirname file append nondir_replacement +# Compute the dirname of FILE. If nonempty, add APPEND to the result, +# otherwise set result to NONDIR_REPLACEMENT. +func_dirname () +{ + func_dirname_result=`$ECHO "${1}" | $SED "$dirname"` + if test "X$func_dirname_result" = "X${1}"; then + func_dirname_result="${3}" + else + func_dirname_result="$func_dirname_result${2}" + fi +} # func_dirname may be replaced by extended shell implementation + + +# func_basename file +func_basename () +{ + func_basename_result=`$ECHO "${1}" | $SED "$basename"` +} # func_basename may be replaced by extended shell implementation + + +# func_dirname_and_basename file append nondir_replacement +# perform func_basename and func_dirname in a single function +# call: +# dirname: Compute the dirname of FILE. If nonempty, +# add APPEND to the result, otherwise set result +# to NONDIR_REPLACEMENT. +# value returned in "$func_dirname_result" +# basename: Compute filename of FILE. +# value retuned in "$func_basename_result" +# Implementation must be kept synchronized with func_dirname +# and func_basename. For efficiency, we do not delegate to +# those functions but instead duplicate the functionality here. +func_dirname_and_basename () +{ + # Extract subdirectory from the argument. + func_dirname_result=`$ECHO "${1}" | $SED -e "$dirname"` + if test "X$func_dirname_result" = "X${1}"; then + func_dirname_result="${3}" + else + func_dirname_result="$func_dirname_result${2}" + fi + func_basename_result=`$ECHO "${1}" | $SED -e "$basename"` +} # func_dirname_and_basename may be replaced by extended shell implementation + + +# func_stripname prefix suffix name +# strip PREFIX and SUFFIX off of NAME. +# PREFIX and SUFFIX must not contain globbing or regex special +# characters, hashes, percent signs, but SUFFIX may contain a leading +# dot (in which case that matches only a dot). +# func_strip_suffix prefix name +func_stripname () +{ + case ${2} in + .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;; + *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;; + esac +} # func_stripname may be replaced by extended shell implementation + + +# These SED scripts presuppose an absolute path with a trailing slash. +pathcar='s,^/\([^/]*\).*$,\1,' +pathcdr='s,^/[^/]*,,' +removedotparts=':dotsl + s@/\./@/@g + t dotsl + s,/\.$,/,' +collapseslashes='s@/\{1,\}@/@g' +finalslash='s,/*$,/,' + +# func_normal_abspath PATH +# Remove doubled-up and trailing slashes, "." path components, +# and cancel out any ".." path components in PATH after making +# it an absolute path. +# value returned in "$func_normal_abspath_result" +func_normal_abspath () +{ + # Start from root dir and reassemble the path. + func_normal_abspath_result= + func_normal_abspath_tpath=$1 + func_normal_abspath_altnamespace= + case $func_normal_abspath_tpath in + "") + # Empty path, that just means $cwd. + func_stripname '' '/' "`pwd`" + func_normal_abspath_result=$func_stripname_result + return + ;; + # The next three entries are used to spot a run of precisely + # two leading slashes without using negated character classes; + # we take advantage of case's first-match behaviour. + ///*) + # Unusual form of absolute path, do nothing. + ;; + //*) + # Not necessarily an ordinary path; POSIX reserves leading '//' + # and for example Cygwin uses it to access remote file shares + # over CIFS/SMB, so we conserve a leading double slash if found. + func_normal_abspath_altnamespace=/ + ;; + /*) + # Absolute path, do nothing. + ;; + *) + # Relative path, prepend $cwd. + func_normal_abspath_tpath=`pwd`/$func_normal_abspath_tpath + ;; + esac + # Cancel out all the simple stuff to save iterations. We also want + # the path to end with a slash for ease of parsing, so make sure + # there is one (and only one) here. + func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ + -e "$removedotparts" -e "$collapseslashes" -e "$finalslash"` + while :; do + # Processed it all yet? + if test "$func_normal_abspath_tpath" = / ; then + # If we ascended to the root using ".." the result may be empty now. + if test -z "$func_normal_abspath_result" ; then + func_normal_abspath_result=/ + fi + break + fi + func_normal_abspath_tcomponent=`$ECHO "$func_normal_abspath_tpath" | $SED \ + -e "$pathcar"` + func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ + -e "$pathcdr"` + # Figure out what to do with it + case $func_normal_abspath_tcomponent in + "") + # Trailing empty path component, ignore it. + ;; + ..) + # Parent dir; strip last assembled component from result. + func_dirname "$func_normal_abspath_result" + func_normal_abspath_result=$func_dirname_result + ;; + *) + # Actual path component, append it. + func_normal_abspath_result=$func_normal_abspath_result/$func_normal_abspath_tcomponent + ;; + esac + done + # Restore leading double-slash if one was found on entry. + func_normal_abspath_result=$func_normal_abspath_altnamespace$func_normal_abspath_result +} + +# func_relative_path SRCDIR DSTDIR +# generates a relative path from SRCDIR to DSTDIR, with a trailing +# slash if non-empty, suitable for immediately appending a filename +# without needing to append a separator. +# value returned in "$func_relative_path_result" +func_relative_path () +{ + func_relative_path_result= + func_normal_abspath "$1" + func_relative_path_tlibdir=$func_normal_abspath_result + func_normal_abspath "$2" + func_relative_path_tbindir=$func_normal_abspath_result + + # Ascend the tree starting from libdir + while :; do + # check if we have found a prefix of bindir + case $func_relative_path_tbindir in + $func_relative_path_tlibdir) + # found an exact match + func_relative_path_tcancelled= + break + ;; + $func_relative_path_tlibdir*) + # found a matching prefix + func_stripname "$func_relative_path_tlibdir" '' "$func_relative_path_tbindir" + func_relative_path_tcancelled=$func_stripname_result + if test -z "$func_relative_path_result"; then + func_relative_path_result=. + fi + break + ;; + *) + func_dirname $func_relative_path_tlibdir + func_relative_path_tlibdir=${func_dirname_result} + if test "x$func_relative_path_tlibdir" = x ; then + # Have to descend all the way to the root! + func_relative_path_result=../$func_relative_path_result + func_relative_path_tcancelled=$func_relative_path_tbindir + break + fi + func_relative_path_result=../$func_relative_path_result + ;; + esac + done + + # Now calculate path; take care to avoid doubling-up slashes. + func_stripname '' '/' "$func_relative_path_result" + func_relative_path_result=$func_stripname_result + func_stripname '/' '/' "$func_relative_path_tcancelled" + if test "x$func_stripname_result" != x ; then + func_relative_path_result=${func_relative_path_result}/${func_stripname_result} + fi + + # Normalisation. If bindir is libdir, return empty string, + # else relative path ending with a slash; either way, target + # file name can be directly appended. + if test ! -z "$func_relative_path_result"; then + func_stripname './' '' "$func_relative_path_result/" + func_relative_path_result=$func_stripname_result + fi +} + +# The name of this program: +func_dirname_and_basename "$progpath" +progname=$func_basename_result + +# Make sure we have an absolute path for reexecution: +case $progpath in + [\\/]*|[A-Za-z]:\\*) ;; + *[\\/]*) + progdir=$func_dirname_result + progdir=`cd "$progdir" && pwd` + progpath="$progdir/$progname" + ;; + *) + save_IFS="$IFS" + IFS=${PATH_SEPARATOR-:} + for progdir in $PATH; do + IFS="$save_IFS" + test -x "$progdir/$progname" && break + done + IFS="$save_IFS" + test -n "$progdir" || progdir=`pwd` + progpath="$progdir/$progname" + ;; +esac + +# Sed substitution that helps us do robust quoting. It backslashifies +# metacharacters that are still active within double-quoted strings. +Xsed="${SED}"' -e 1s/^X//' +sed_quote_subst='s/\([`"$\\]\)/\\\1/g' + +# Same as above, but do not quote variable references. +double_quote_subst='s/\(["`\\]\)/\\\1/g' + +# Sed substitution that turns a string into a regex matching for the +# string literally. +sed_make_literal_regex='s,[].[^$\\*\/],\\&,g' + +# Sed substitution that converts a w32 file name or path +# which contains forward slashes, into one that contains +# (escaped) backslashes. A very naive implementation. +lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' + +# Re-`\' parameter expansions in output of double_quote_subst that were +# `\'-ed in input to the same. If an odd number of `\' preceded a '$' +# in input to double_quote_subst, that '$' was protected from expansion. +# Since each input `\' is now two `\'s, look for any number of runs of +# four `\'s followed by two `\'s and then a '$'. `\' that '$'. +bs='\\' +bs2='\\\\' +bs4='\\\\\\\\' +dollar='\$' +sed_double_backslash="\ + s/$bs4/&\\ +/g + s/^$bs2$dollar/$bs&/ + s/\\([^$bs]\\)$bs2$dollar/\\1$bs2$bs$dollar/g + s/\n//g" + +# Standard options: +opt_dry_run=false +opt_help=false +opt_quiet=false +opt_verbose=false +opt_warning=: + +# func_echo arg... +# Echo program name prefixed message, along with the current mode +# name if it has been set yet. +func_echo () +{ + $ECHO "$progname: ${opt_mode+$opt_mode: }$*" +} + +# func_verbose arg... +# Echo program name prefixed message in verbose mode only. +func_verbose () +{ + $opt_verbose && func_echo ${1+"$@"} + + # A bug in bash halts the script if the last line of a function + # fails when set -e is in force, so we need another command to + # work around that: + : +} + +# func_echo_all arg... +# Invoke $ECHO with all args, space-separated. +func_echo_all () +{ + $ECHO "$*" +} + +# func_error arg... +# Echo program name prefixed message to standard error. +func_error () +{ + $ECHO "$progname: ${opt_mode+$opt_mode: }"${1+"$@"} 1>&2 +} + +# func_warning arg... +# Echo program name prefixed warning message to standard error. +func_warning () +{ + $opt_warning && $ECHO "$progname: ${opt_mode+$opt_mode: }warning: "${1+"$@"} 1>&2 + + # bash bug again: + : +} + +# func_fatal_error arg... +# Echo program name prefixed message to standard error, and exit. +func_fatal_error () +{ + func_error ${1+"$@"} + exit $EXIT_FAILURE +} + +# func_fatal_help arg... +# Echo program name prefixed message to standard error, followed by +# a help hint, and exit. +func_fatal_help () +{ + func_error ${1+"$@"} + func_fatal_error "$help" +} +help="Try \`$progname --help' for more information." ## default + + +# func_grep expression filename +# Check whether EXPRESSION matches any line of FILENAME, without output. +func_grep () +{ + $GREP "$1" "$2" >/dev/null 2>&1 +} + + +# func_mkdir_p directory-path +# Make sure the entire path to DIRECTORY-PATH is available. +func_mkdir_p () +{ + my_directory_path="$1" + my_dir_list= + + if test -n "$my_directory_path" && test "$opt_dry_run" != ":"; then + + # Protect directory names starting with `-' + case $my_directory_path in + -*) my_directory_path="./$my_directory_path" ;; + esac + + # While some portion of DIR does not yet exist... + while test ! -d "$my_directory_path"; do + # ...make a list in topmost first order. Use a colon delimited + # list incase some portion of path contains whitespace. + my_dir_list="$my_directory_path:$my_dir_list" + + # If the last portion added has no slash in it, the list is done + case $my_directory_path in */*) ;; *) break ;; esac + + # ...otherwise throw away the child directory and loop + my_directory_path=`$ECHO "$my_directory_path" | $SED -e "$dirname"` + done + my_dir_list=`$ECHO "$my_dir_list" | $SED 's,:*$,,'` + + save_mkdir_p_IFS="$IFS"; IFS=':' + for my_dir in $my_dir_list; do + IFS="$save_mkdir_p_IFS" + # mkdir can fail with a `File exist' error if two processes + # try to create one of the directories concurrently. Don't + # stop in that case! + $MKDIR "$my_dir" 2>/dev/null || : + done + IFS="$save_mkdir_p_IFS" + + # Bail out if we (or some other process) failed to create a directory. + test -d "$my_directory_path" || \ + func_fatal_error "Failed to create \`$1'" + fi +} + + +# func_mktempdir [string] +# Make a temporary directory that won't clash with other running +# libtool processes, and avoids race conditions if possible. If +# given, STRING is the basename for that directory. +func_mktempdir () +{ + my_template="${TMPDIR-/tmp}/${1-$progname}" + + if test "$opt_dry_run" = ":"; then + # Return a directory name, but don't create it in dry-run mode + my_tmpdir="${my_template}-$$" + else + + # If mktemp works, use that first and foremost + my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null` + + if test ! -d "$my_tmpdir"; then + # Failing that, at least try and use $RANDOM to avoid a race + my_tmpdir="${my_template}-${RANDOM-0}$$" + + save_mktempdir_umask=`umask` + umask 0077 + $MKDIR "$my_tmpdir" + umask $save_mktempdir_umask + fi + + # If we're not in dry-run mode, bomb out on failure + test -d "$my_tmpdir" || \ + func_fatal_error "cannot create temporary directory \`$my_tmpdir'" + fi + + $ECHO "$my_tmpdir" +} + + +# func_quote_for_eval arg +# Aesthetically quote ARG to be evaled later. +# This function returns two values: FUNC_QUOTE_FOR_EVAL_RESULT +# is double-quoted, suitable for a subsequent eval, whereas +# FUNC_QUOTE_FOR_EVAL_UNQUOTED_RESULT has merely all characters +# which are still active within double quotes backslashified. +func_quote_for_eval () +{ + case $1 in + *[\\\`\"\$]*) + func_quote_for_eval_unquoted_result=`$ECHO "$1" | $SED "$sed_quote_subst"` ;; + *) + func_quote_for_eval_unquoted_result="$1" ;; + esac + + case $func_quote_for_eval_unquoted_result in + # Double-quote args containing shell metacharacters to delay + # word splitting, command substitution and and variable + # expansion for a subsequent eval. + # Many Bourne shells cannot handle close brackets correctly + # in scan sets, so we specify it separately. + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + func_quote_for_eval_result="\"$func_quote_for_eval_unquoted_result\"" + ;; + *) + func_quote_for_eval_result="$func_quote_for_eval_unquoted_result" + esac +} + + +# func_quote_for_expand arg +# Aesthetically quote ARG to be evaled later; same as above, +# but do not quote variable references. +func_quote_for_expand () +{ + case $1 in + *[\\\`\"]*) + my_arg=`$ECHO "$1" | $SED \ + -e "$double_quote_subst" -e "$sed_double_backslash"` ;; + *) + my_arg="$1" ;; + esac + + case $my_arg in + # Double-quote args containing shell metacharacters to delay + # word splitting and command substitution for a subsequent eval. + # Many Bourne shells cannot handle close brackets correctly + # in scan sets, so we specify it separately. + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + my_arg="\"$my_arg\"" + ;; + esac + + func_quote_for_expand_result="$my_arg" +} + + +# func_show_eval cmd [fail_exp] +# Unless opt_silent is true, then output CMD. Then, if opt_dryrun is +# not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP +# is given, then evaluate it. +func_show_eval () +{ + my_cmd="$1" + my_fail_exp="${2-:}" + + ${opt_silent-false} || { + func_quote_for_expand "$my_cmd" + eval "func_echo $func_quote_for_expand_result" + } + + if ${opt_dry_run-false}; then :; else + eval "$my_cmd" + my_status=$? + if test "$my_status" -eq 0; then :; else + eval "(exit $my_status); $my_fail_exp" + fi + fi +} + + +# func_show_eval_locale cmd [fail_exp] +# Unless opt_silent is true, then output CMD. Then, if opt_dryrun is +# not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP +# is given, then evaluate it. Use the saved locale for evaluation. +func_show_eval_locale () +{ + my_cmd="$1" + my_fail_exp="${2-:}" + + ${opt_silent-false} || { + func_quote_for_expand "$my_cmd" + eval "func_echo $func_quote_for_expand_result" + } + + if ${opt_dry_run-false}; then :; else + eval "$lt_user_locale + $my_cmd" + my_status=$? + eval "$lt_safe_locale" + if test "$my_status" -eq 0; then :; else + eval "(exit $my_status); $my_fail_exp" + fi + fi +} + +# func_tr_sh +# Turn $1 into a string suitable for a shell variable name. +# Result is stored in $func_tr_sh_result. All characters +# not in the set a-zA-Z0-9_ are replaced with '_'. Further, +# if $1 begins with a digit, a '_' is prepended as well. +func_tr_sh () +{ + case $1 in + [0-9]* | *[!a-zA-Z0-9_]*) + func_tr_sh_result=`$ECHO "$1" | $SED 's/^\([0-9]\)/_\1/; s/[^a-zA-Z0-9_]/_/g'` + ;; + * ) + func_tr_sh_result=$1 + ;; + esac +} + + +# func_version +# Echo version message to standard output and exit. +func_version () +{ + $opt_debug + + $SED -n '/(C)/!b go + :more + /\./!{ + N + s/\n# / / + b more + } + :go + /^# '$PROGRAM' (GNU /,/# warranty; / { + s/^# // + s/^# *$// + s/\((C)\)[ 0-9,-]*\( [1-9][0-9]*\)/\1\2/ + p + }' < "$progpath" + exit $? +} + +# func_usage +# Echo short help message to standard output and exit. +func_usage () +{ + $opt_debug + + $SED -n '/^# Usage:/,/^# *.*--help/ { + s/^# // + s/^# *$// + s/\$progname/'$progname'/ + p + }' < "$progpath" + echo + $ECHO "run \`$progname --help | more' for full usage" + exit $? +} + +# func_help [NOEXIT] +# Echo long help message to standard output and exit, +# unless 'noexit' is passed as argument. +func_help () +{ + $opt_debug + + $SED -n '/^# Usage:/,/# Report bugs to/ { + :print + s/^# // + s/^# *$// + s*\$progname*'$progname'* + s*\$host*'"$host"'* + s*\$SHELL*'"$SHELL"'* + s*\$LTCC*'"$LTCC"'* + s*\$LTCFLAGS*'"$LTCFLAGS"'* + s*\$LD*'"$LD"'* + s/\$with_gnu_ld/'"$with_gnu_ld"'/ + s/\$automake_version/'"`(${AUTOMAKE-automake} --version) 2>/dev/null |$SED 1q`"'/ + s/\$autoconf_version/'"`(${AUTOCONF-autoconf} --version) 2>/dev/null |$SED 1q`"'/ + p + d + } + /^# .* home page:/b print + /^# General help using/b print + ' < "$progpath" + ret=$? + if test -z "$1"; then + exit $ret + fi +} + +# func_missing_arg argname +# Echo program name prefixed message to standard error and set global +# exit_cmd. +func_missing_arg () +{ + $opt_debug + + func_error "missing argument for $1." + exit_cmd=exit +} + + +# func_split_short_opt shortopt +# Set func_split_short_opt_name and func_split_short_opt_arg shell +# variables after splitting SHORTOPT after the 2nd character. +func_split_short_opt () +{ + my_sed_short_opt='1s/^\(..\).*$/\1/;q' + my_sed_short_rest='1s/^..\(.*\)$/\1/;q' + + func_split_short_opt_name=`$ECHO "$1" | $SED "$my_sed_short_opt"` + func_split_short_opt_arg=`$ECHO "$1" | $SED "$my_sed_short_rest"` +} # func_split_short_opt may be replaced by extended shell implementation + + +# func_split_long_opt longopt +# Set func_split_long_opt_name and func_split_long_opt_arg shell +# variables after splitting LONGOPT at the `=' sign. +func_split_long_opt () +{ + my_sed_long_opt='1s/^\(--[^=]*\)=.*/\1/;q' + my_sed_long_arg='1s/^--[^=]*=//' + + func_split_long_opt_name=`$ECHO "$1" | $SED "$my_sed_long_opt"` + func_split_long_opt_arg=`$ECHO "$1" | $SED "$my_sed_long_arg"` +} # func_split_long_opt may be replaced by extended shell implementation + +exit_cmd=: + + + + + +magic="%%%MAGIC variable%%%" +magic_exe="%%%MAGIC EXE variable%%%" + +# Global variables. +nonopt= +preserve_args= +lo2o="s/\\.lo\$/.${objext}/" +o2lo="s/\\.${objext}\$/.lo/" +extracted_archives= +extracted_serial=0 + +# If this variable is set in any of the actions, the command in it +# will be execed at the end. This prevents here-documents from being +# left over by shells. +exec_cmd= + +# func_append var value +# Append VALUE to the end of shell variable VAR. +func_append () +{ + eval "${1}=\$${1}\${2}" +} # func_append may be replaced by extended shell implementation + +# func_append_quoted var value +# Quote VALUE and append to the end of shell variable VAR, separated +# by a space. +func_append_quoted () +{ + func_quote_for_eval "${2}" + eval "${1}=\$${1}\\ \$func_quote_for_eval_result" +} # func_append_quoted may be replaced by extended shell implementation + + +# func_arith arithmetic-term... +func_arith () +{ + func_arith_result=`expr "${@}"` +} # func_arith may be replaced by extended shell implementation + + +# func_len string +# STRING may not start with a hyphen. +func_len () +{ + func_len_result=`expr "${1}" : ".*" 2>/dev/null || echo $max_cmd_len` +} # func_len may be replaced by extended shell implementation + + +# func_lo2o object +func_lo2o () +{ + func_lo2o_result=`$ECHO "${1}" | $SED "$lo2o"` +} # func_lo2o may be replaced by extended shell implementation + + +# func_xform libobj-or-source +func_xform () +{ + func_xform_result=`$ECHO "${1}" | $SED 's/\.[^.]*$/.lo/'` +} # func_xform may be replaced by extended shell implementation + + +# func_fatal_configuration arg... +# Echo program name prefixed message to standard error, followed by +# a configuration failure hint, and exit. +func_fatal_configuration () +{ + func_error ${1+"$@"} + func_error "See the $PACKAGE documentation for more information." + func_fatal_error "Fatal configuration error." +} + + +# func_config +# Display the configuration for all the tags in this script. +func_config () +{ + re_begincf='^# ### BEGIN LIBTOOL' + re_endcf='^# ### END LIBTOOL' + + # Default configuration. + $SED "1,/$re_begincf CONFIG/d;/$re_endcf CONFIG/,\$d" < "$progpath" + + # Now print the configurations for the tags. + for tagname in $taglist; do + $SED -n "/$re_begincf TAG CONFIG: $tagname\$/,/$re_endcf TAG CONFIG: $tagname\$/p" < "$progpath" + done + + exit $? +} + +# func_features +# Display the features supported by this script. +func_features () +{ + echo "host: $host" + if test "$build_libtool_libs" = yes; then + echo "enable shared libraries" + else + echo "disable shared libraries" + fi + if test "$build_old_libs" = yes; then + echo "enable static libraries" + else + echo "disable static libraries" + fi + + exit $? +} + +# func_enable_tag tagname +# Verify that TAGNAME is valid, and either flag an error and exit, or +# enable the TAGNAME tag. We also add TAGNAME to the global $taglist +# variable here. +func_enable_tag () +{ + # Global variable: + tagname="$1" + + re_begincf="^# ### BEGIN LIBTOOL TAG CONFIG: $tagname\$" + re_endcf="^# ### END LIBTOOL TAG CONFIG: $tagname\$" + sed_extractcf="/$re_begincf/,/$re_endcf/p" + + # Validate tagname. + case $tagname in + *[!-_A-Za-z0-9,/]*) + func_fatal_error "invalid tag name: $tagname" + ;; + esac + + # Don't test for the "default" C tag, as we know it's + # there but not specially marked. + case $tagname in + CC) ;; + *) + if $GREP "$re_begincf" "$progpath" >/dev/null 2>&1; then + taglist="$taglist $tagname" + + # Evaluate the configuration. Be careful to quote the path + # and the sed script, to avoid splitting on whitespace, but + # also don't use non-portable quotes within backquotes within + # quotes we have to do it in 2 steps: + extractedcf=`$SED -n -e "$sed_extractcf" < "$progpath"` + eval "$extractedcf" + else + func_error "ignoring unknown tag $tagname" + fi + ;; + esac +} + +# func_check_version_match +# Ensure that we are using m4 macros, and libtool script from the same +# release of libtool. +func_check_version_match () +{ + if test "$package_revision" != "$macro_revision"; then + if test "$VERSION" != "$macro_version"; then + if test -z "$macro_version"; then + cat >&2 <<_LT_EOF +$progname: Version mismatch error. This is $PACKAGE $VERSION, but the +$progname: definition of this LT_INIT comes from an older release. +$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION +$progname: and run autoconf again. +_LT_EOF + else + cat >&2 <<_LT_EOF +$progname: Version mismatch error. This is $PACKAGE $VERSION, but the +$progname: definition of this LT_INIT comes from $PACKAGE $macro_version. +$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION +$progname: and run autoconf again. +_LT_EOF + fi + else + cat >&2 <<_LT_EOF +$progname: Version mismatch error. This is $PACKAGE $VERSION, revision $package_revision, +$progname: but the definition of this LT_INIT comes from revision $macro_revision. +$progname: You should recreate aclocal.m4 with macros from revision $package_revision +$progname: of $PACKAGE $VERSION and run autoconf again. +_LT_EOF + fi + + exit $EXIT_MISMATCH + fi +} + + +# Shorthand for --mode=foo, only valid as the first argument +case $1 in +clean|clea|cle|cl) + shift; set dummy --mode clean ${1+"$@"}; shift + ;; +compile|compil|compi|comp|com|co|c) + shift; set dummy --mode compile ${1+"$@"}; shift + ;; +execute|execut|execu|exec|exe|ex|e) + shift; set dummy --mode execute ${1+"$@"}; shift + ;; +finish|finis|fini|fin|fi|f) + shift; set dummy --mode finish ${1+"$@"}; shift + ;; +install|instal|insta|inst|ins|in|i) + shift; set dummy --mode install ${1+"$@"}; shift + ;; +link|lin|li|l) + shift; set dummy --mode link ${1+"$@"}; shift + ;; +uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u) + shift; set dummy --mode uninstall ${1+"$@"}; shift + ;; +esac + + + +# Option defaults: +opt_debug=: +opt_dry_run=false +opt_config=false +opt_preserve_dup_deps=false +opt_features=false +opt_finish=false +opt_help=false +opt_help_all=false +opt_silent=: +opt_warning=: +opt_verbose=: +opt_silent=false +opt_verbose=false + + +# Parse options once, thoroughly. This comes as soon as possible in the +# script to make things like `--version' happen as quickly as we can. +{ + # this just eases exit handling + while test $# -gt 0; do + opt="$1" + shift + case $opt in + --debug|-x) opt_debug='set -x' + func_echo "enabling shell trace mode" + $opt_debug + ;; + --dry-run|--dryrun|-n) + opt_dry_run=: + ;; + --config) + opt_config=: +func_config + ;; + --dlopen|-dlopen) + optarg="$1" + opt_dlopen="${opt_dlopen+$opt_dlopen +}$optarg" + shift + ;; + --preserve-dup-deps) + opt_preserve_dup_deps=: + ;; + --features) + opt_features=: +func_features + ;; + --finish) + opt_finish=: +set dummy --mode finish ${1+"$@"}; shift + ;; + --help) + opt_help=: + ;; + --help-all) + opt_help_all=: +opt_help=': help-all' + ;; + --mode) + test $# = 0 && func_missing_arg $opt && break + optarg="$1" + opt_mode="$optarg" +case $optarg in + # Valid mode arguments: + clean|compile|execute|finish|install|link|relink|uninstall) ;; + + # Catch anything else as an error + *) func_error "invalid argument for $opt" + exit_cmd=exit + break + ;; +esac + shift + ;; + --no-silent|--no-quiet) + opt_silent=false +func_append preserve_args " $opt" + ;; + --no-warning|--no-warn) + opt_warning=false +func_append preserve_args " $opt" + ;; + --no-verbose) + opt_verbose=false +func_append preserve_args " $opt" + ;; + --silent|--quiet) + opt_silent=: +func_append preserve_args " $opt" + opt_verbose=false + ;; + --verbose|-v) + opt_verbose=: +func_append preserve_args " $opt" +opt_silent=false + ;; + --tag) + test $# = 0 && func_missing_arg $opt && break + optarg="$1" + opt_tag="$optarg" +func_append preserve_args " $opt $optarg" +func_enable_tag "$optarg" + shift + ;; + + -\?|-h) func_usage ;; + --help) func_help ;; + --version) func_version ;; + + # Separate optargs to long options: + --*=*) + func_split_long_opt "$opt" + set dummy "$func_split_long_opt_name" "$func_split_long_opt_arg" ${1+"$@"} + shift + ;; + + # Separate non-argument short options: + -\?*|-h*|-n*|-v*) + func_split_short_opt "$opt" + set dummy "$func_split_short_opt_name" "-$func_split_short_opt_arg" ${1+"$@"} + shift + ;; + + --) break ;; + -*) func_fatal_help "unrecognized option \`$opt'" ;; + *) set dummy "$opt" ${1+"$@"}; shift; break ;; + esac + done + + # Validate options: + + # save first non-option argument + if test "$#" -gt 0; then + nonopt="$opt" + shift + fi + + # preserve --debug + test "$opt_debug" = : || func_append preserve_args " --debug" + + case $host in + *cygwin* | *mingw* | *pw32* | *cegcc*) + # don't eliminate duplications in $postdeps and $predeps + opt_duplicate_compiler_generated_deps=: + ;; + *) + opt_duplicate_compiler_generated_deps=$opt_preserve_dup_deps + ;; + esac + + $opt_help || { + # Sanity checks first: + func_check_version_match + + if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then + func_fatal_configuration "not configured to build any kind of library" + fi + + # Darwin sucks + eval std_shrext=\"$shrext_cmds\" + + # Only execute mode is allowed to have -dlopen flags. + if test -n "$opt_dlopen" && test "$opt_mode" != execute; then + func_error "unrecognized option \`-dlopen'" + $ECHO "$help" 1>&2 + exit $EXIT_FAILURE + fi + + # Change the help message to a mode-specific one. + generic_help="$help" + help="Try \`$progname --help --mode=$opt_mode' for more information." + } + + + # Bail if the options were screwed + $exit_cmd $EXIT_FAILURE +} + + + + +## ----------- ## +## Main. ## +## ----------- ## + +# func_lalib_p file +# True iff FILE is a libtool `.la' library or `.lo' object file. +# This function is only a basic sanity check; it will hardly flush out +# determined imposters. +func_lalib_p () +{ + test -f "$1" && + $SED -e 4q "$1" 2>/dev/null \ + | $GREP "^# Generated by .*$PACKAGE" > /dev/null 2>&1 +} + +# func_lalib_unsafe_p file +# True iff FILE is a libtool `.la' library or `.lo' object file. +# This function implements the same check as func_lalib_p without +# resorting to external programs. To this end, it redirects stdin and +# closes it afterwards, without saving the original file descriptor. +# As a safety measure, use it only where a negative result would be +# fatal anyway. Works if `file' does not exist. +func_lalib_unsafe_p () +{ + lalib_p=no + if test -f "$1" && test -r "$1" && exec 5<&0 <"$1"; then + for lalib_p_l in 1 2 3 4 + do + read lalib_p_line + case "$lalib_p_line" in + \#\ Generated\ by\ *$PACKAGE* ) lalib_p=yes; break;; + esac + done + exec 0<&5 5<&- + fi + test "$lalib_p" = yes +} + +# func_ltwrapper_script_p file +# True iff FILE is a libtool wrapper script +# This function is only a basic sanity check; it will hardly flush out +# determined imposters. +func_ltwrapper_script_p () +{ + func_lalib_p "$1" +} + +# func_ltwrapper_executable_p file +# True iff FILE is a libtool wrapper executable +# This function is only a basic sanity check; it will hardly flush out +# determined imposters. +func_ltwrapper_executable_p () +{ + func_ltwrapper_exec_suffix= + case $1 in + *.exe) ;; + *) func_ltwrapper_exec_suffix=.exe ;; + esac + $GREP "$magic_exe" "$1$func_ltwrapper_exec_suffix" >/dev/null 2>&1 +} + +# func_ltwrapper_scriptname file +# Assumes file is an ltwrapper_executable +# uses $file to determine the appropriate filename for a +# temporary ltwrapper_script. +func_ltwrapper_scriptname () +{ + func_dirname_and_basename "$1" "" "." + func_stripname '' '.exe' "$func_basename_result" + func_ltwrapper_scriptname_result="$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper" +} + +# func_ltwrapper_p file +# True iff FILE is a libtool wrapper script or wrapper executable +# This function is only a basic sanity check; it will hardly flush out +# determined imposters. +func_ltwrapper_p () +{ + func_ltwrapper_script_p "$1" || func_ltwrapper_executable_p "$1" +} + + +# func_execute_cmds commands fail_cmd +# Execute tilde-delimited COMMANDS. +# If FAIL_CMD is given, eval that upon failure. +# FAIL_CMD may read-access the current command in variable CMD! +func_execute_cmds () +{ + $opt_debug + save_ifs=$IFS; IFS='~' + for cmd in $1; do + IFS=$save_ifs + eval cmd=\"$cmd\" + func_show_eval "$cmd" "${2-:}" + done + IFS=$save_ifs +} + + +# func_source file +# Source FILE, adding directory component if necessary. +# Note that it is not necessary on cygwin/mingw to append a dot to +# FILE even if both FILE and FILE.exe exist: automatic-append-.exe +# behavior happens only for exec(3), not for open(2)! Also, sourcing +# `FILE.' does not work on cygwin managed mounts. +func_source () +{ + $opt_debug + case $1 in + */* | *\\*) . "$1" ;; + *) . "./$1" ;; + esac +} + + +# func_resolve_sysroot PATH +# Replace a leading = in PATH with a sysroot. Store the result into +# func_resolve_sysroot_result +func_resolve_sysroot () +{ + func_resolve_sysroot_result=$1 + case $func_resolve_sysroot_result in + =*) + func_stripname '=' '' "$func_resolve_sysroot_result" + func_resolve_sysroot_result=$lt_sysroot$func_stripname_result + ;; + esac +} + +# func_replace_sysroot PATH +# If PATH begins with the sysroot, replace it with = and +# store the result into func_replace_sysroot_result. +func_replace_sysroot () +{ + case "$lt_sysroot:$1" in + ?*:"$lt_sysroot"*) + func_stripname "$lt_sysroot" '' "$1" + func_replace_sysroot_result="=$func_stripname_result" + ;; + *) + # Including no sysroot. + func_replace_sysroot_result=$1 + ;; + esac +} + +# func_infer_tag arg +# Infer tagged configuration to use if any are available and +# if one wasn't chosen via the "--tag" command line option. +# Only attempt this if the compiler in the base compile +# command doesn't match the default compiler. +# arg is usually of the form 'gcc ...' +func_infer_tag () +{ + $opt_debug + if test -n "$available_tags" && test -z "$tagname"; then + CC_quoted= + for arg in $CC; do + func_append_quoted CC_quoted "$arg" + done + CC_expanded=`func_echo_all $CC` + CC_quoted_expanded=`func_echo_all $CC_quoted` + case $@ in + # Blanks in the command may have been stripped by the calling shell, + # but not from the CC environment variable when configure was run. + " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \ + " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) ;; + # Blanks at the start of $base_compile will cause this to fail + # if we don't check for them as well. + *) + for z in $available_tags; do + if $GREP "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then + # Evaluate the configuration. + eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`" + CC_quoted= + for arg in $CC; do + # Double-quote args containing other shell metacharacters. + func_append_quoted CC_quoted "$arg" + done + CC_expanded=`func_echo_all $CC` + CC_quoted_expanded=`func_echo_all $CC_quoted` + case "$@ " in + " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \ + " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) + # The compiler in the base compile command matches + # the one in the tagged configuration. + # Assume this is the tagged configuration we want. + tagname=$z + break + ;; + esac + fi + done + # If $tagname still isn't set, then no tagged configuration + # was found and let the user know that the "--tag" command + # line option must be used. + if test -z "$tagname"; then + func_echo "unable to infer tagged configuration" + func_fatal_error "specify a tag with \`--tag'" +# else +# func_verbose "using $tagname tagged configuration" + fi + ;; + esac + fi +} + + + +# func_write_libtool_object output_name pic_name nonpic_name +# Create a libtool object file (analogous to a ".la" file), +# but don't create it if we're doing a dry run. +func_write_libtool_object () +{ + write_libobj=${1} + if test "$build_libtool_libs" = yes; then + write_lobj=\'${2}\' + else + write_lobj=none + fi + + if test "$build_old_libs" = yes; then + write_oldobj=\'${3}\' + else + write_oldobj=none + fi + + $opt_dry_run || { + cat >${write_libobj}T </dev/null` + if test "$?" -eq 0 && test -n "${func_convert_core_file_wine_to_w32_tmp}"; then + func_convert_core_file_wine_to_w32_result=`$ECHO "$func_convert_core_file_wine_to_w32_tmp" | + $SED -e "$lt_sed_naive_backslashify"` + else + func_convert_core_file_wine_to_w32_result= + fi + fi +} +# end: func_convert_core_file_wine_to_w32 + + +# func_convert_core_path_wine_to_w32 ARG +# Helper function used by path conversion functions when $build is *nix, and +# $host is mingw, cygwin, or some other w32 environment. Relies on a correctly +# configured wine environment available, with the winepath program in $build's +# $PATH. Assumes ARG has no leading or trailing path separator characters. +# +# ARG is path to be converted from $build format to win32. +# Result is available in $func_convert_core_path_wine_to_w32_result. +# Unconvertible file (directory) names in ARG are skipped; if no directory names +# are convertible, then the result may be empty. +func_convert_core_path_wine_to_w32 () +{ + $opt_debug + # unfortunately, winepath doesn't convert paths, only file names + func_convert_core_path_wine_to_w32_result="" + if test -n "$1"; then + oldIFS=$IFS + IFS=: + for func_convert_core_path_wine_to_w32_f in $1; do + IFS=$oldIFS + func_convert_core_file_wine_to_w32 "$func_convert_core_path_wine_to_w32_f" + if test -n "$func_convert_core_file_wine_to_w32_result" ; then + if test -z "$func_convert_core_path_wine_to_w32_result"; then + func_convert_core_path_wine_to_w32_result="$func_convert_core_file_wine_to_w32_result" + else + func_append func_convert_core_path_wine_to_w32_result ";$func_convert_core_file_wine_to_w32_result" + fi + fi + done + IFS=$oldIFS + fi +} +# end: func_convert_core_path_wine_to_w32 + + +# func_cygpath ARGS... +# Wrapper around calling the cygpath program via LT_CYGPATH. This is used when +# when (1) $build is *nix and Cygwin is hosted via a wine environment; or (2) +# $build is MSYS and $host is Cygwin, or (3) $build is Cygwin. In case (1) or +# (2), returns the Cygwin file name or path in func_cygpath_result (input +# file name or path is assumed to be in w32 format, as previously converted +# from $build's *nix or MSYS format). In case (3), returns the w32 file name +# or path in func_cygpath_result (input file name or path is assumed to be in +# Cygwin format). Returns an empty string on error. +# +# ARGS are passed to cygpath, with the last one being the file name or path to +# be converted. +# +# Specify the absolute *nix (or w32) name to cygpath in the LT_CYGPATH +# environment variable; do not put it in $PATH. +func_cygpath () +{ + $opt_debug + if test -n "$LT_CYGPATH" && test -f "$LT_CYGPATH"; then + func_cygpath_result=`$LT_CYGPATH "$@" 2>/dev/null` + if test "$?" -ne 0; then + # on failure, ensure result is empty + func_cygpath_result= + fi + else + func_cygpath_result= + func_error "LT_CYGPATH is empty or specifies non-existent file: \`$LT_CYGPATH'" + fi +} +#end: func_cygpath + + +# func_convert_core_msys_to_w32 ARG +# Convert file name or path ARG from MSYS format to w32 format. Return +# result in func_convert_core_msys_to_w32_result. +func_convert_core_msys_to_w32 () +{ + $opt_debug + # awkward: cmd appends spaces to result + func_convert_core_msys_to_w32_result=`( cmd //c echo "$1" ) 2>/dev/null | + $SED -e 's/[ ]*$//' -e "$lt_sed_naive_backslashify"` +} +#end: func_convert_core_msys_to_w32 + + +# func_convert_file_check ARG1 ARG2 +# Verify that ARG1 (a file name in $build format) was converted to $host +# format in ARG2. Otherwise, emit an error message, but continue (resetting +# func_to_host_file_result to ARG1). +func_convert_file_check () +{ + $opt_debug + if test -z "$2" && test -n "$1" ; then + func_error "Could not determine host file name corresponding to" + func_error " \`$1'" + func_error "Continuing, but uninstalled executables may not work." + # Fallback: + func_to_host_file_result="$1" + fi +} +# end func_convert_file_check + + +# func_convert_path_check FROM_PATHSEP TO_PATHSEP FROM_PATH TO_PATH +# Verify that FROM_PATH (a path in $build format) was converted to $host +# format in TO_PATH. Otherwise, emit an error message, but continue, resetting +# func_to_host_file_result to a simplistic fallback value (see below). +func_convert_path_check () +{ + $opt_debug + if test -z "$4" && test -n "$3"; then + func_error "Could not determine the host path corresponding to" + func_error " \`$3'" + func_error "Continuing, but uninstalled executables may not work." + # Fallback. This is a deliberately simplistic "conversion" and + # should not be "improved". See libtool.info. + if test "x$1" != "x$2"; then + lt_replace_pathsep_chars="s|$1|$2|g" + func_to_host_path_result=`echo "$3" | + $SED -e "$lt_replace_pathsep_chars"` + else + func_to_host_path_result="$3" + fi + fi +} +# end func_convert_path_check + + +# func_convert_path_front_back_pathsep FRONTPAT BACKPAT REPL ORIG +# Modifies func_to_host_path_result by prepending REPL if ORIG matches FRONTPAT +# and appending REPL if ORIG matches BACKPAT. +func_convert_path_front_back_pathsep () +{ + $opt_debug + case $4 in + $1 ) func_to_host_path_result="$3$func_to_host_path_result" + ;; + esac + case $4 in + $2 ) func_append func_to_host_path_result "$3" + ;; + esac +} +# end func_convert_path_front_back_pathsep + + +################################################## +# $build to $host FILE NAME CONVERSION FUNCTIONS # +################################################## +# invoked via `$to_host_file_cmd ARG' +# +# In each case, ARG is the path to be converted from $build to $host format. +# Result will be available in $func_to_host_file_result. + + +# func_to_host_file ARG +# Converts the file name ARG from $build format to $host format. Return result +# in func_to_host_file_result. +func_to_host_file () +{ + $opt_debug + $to_host_file_cmd "$1" +} +# end func_to_host_file + + +# func_to_tool_file ARG LAZY +# converts the file name ARG from $build format to toolchain format. Return +# result in func_to_tool_file_result. If the conversion in use is listed +# in (the comma separated) LAZY, no conversion takes place. +func_to_tool_file () +{ + $opt_debug + case ,$2, in + *,"$to_tool_file_cmd",*) + func_to_tool_file_result=$1 + ;; + *) + $to_tool_file_cmd "$1" + func_to_tool_file_result=$func_to_host_file_result + ;; + esac +} +# end func_to_tool_file + + +# func_convert_file_noop ARG +# Copy ARG to func_to_host_file_result. +func_convert_file_noop () +{ + func_to_host_file_result="$1" +} +# end func_convert_file_noop + + +# func_convert_file_msys_to_w32 ARG +# Convert file name ARG from (mingw) MSYS to (mingw) w32 format; automatic +# conversion to w32 is not available inside the cwrapper. Returns result in +# func_to_host_file_result. +func_convert_file_msys_to_w32 () +{ + $opt_debug + func_to_host_file_result="$1" + if test -n "$1"; then + func_convert_core_msys_to_w32 "$1" + func_to_host_file_result="$func_convert_core_msys_to_w32_result" + fi + func_convert_file_check "$1" "$func_to_host_file_result" +} +# end func_convert_file_msys_to_w32 + + +# func_convert_file_cygwin_to_w32 ARG +# Convert file name ARG from Cygwin to w32 format. Returns result in +# func_to_host_file_result. +func_convert_file_cygwin_to_w32 () +{ + $opt_debug + func_to_host_file_result="$1" + if test -n "$1"; then + # because $build is cygwin, we call "the" cygpath in $PATH; no need to use + # LT_CYGPATH in this case. + func_to_host_file_result=`cygpath -m "$1"` + fi + func_convert_file_check "$1" "$func_to_host_file_result" +} +# end func_convert_file_cygwin_to_w32 + + +# func_convert_file_nix_to_w32 ARG +# Convert file name ARG from *nix to w32 format. Requires a wine environment +# and a working winepath. Returns result in func_to_host_file_result. +func_convert_file_nix_to_w32 () +{ + $opt_debug + func_to_host_file_result="$1" + if test -n "$1"; then + func_convert_core_file_wine_to_w32 "$1" + func_to_host_file_result="$func_convert_core_file_wine_to_w32_result" + fi + func_convert_file_check "$1" "$func_to_host_file_result" +} +# end func_convert_file_nix_to_w32 + + +# func_convert_file_msys_to_cygwin ARG +# Convert file name ARG from MSYS to Cygwin format. Requires LT_CYGPATH set. +# Returns result in func_to_host_file_result. +func_convert_file_msys_to_cygwin () +{ + $opt_debug + func_to_host_file_result="$1" + if test -n "$1"; then + func_convert_core_msys_to_w32 "$1" + func_cygpath -u "$func_convert_core_msys_to_w32_result" + func_to_host_file_result="$func_cygpath_result" + fi + func_convert_file_check "$1" "$func_to_host_file_result" +} +# end func_convert_file_msys_to_cygwin + + +# func_convert_file_nix_to_cygwin ARG +# Convert file name ARG from *nix to Cygwin format. Requires Cygwin installed +# in a wine environment, working winepath, and LT_CYGPATH set. Returns result +# in func_to_host_file_result. +func_convert_file_nix_to_cygwin () +{ + $opt_debug + func_to_host_file_result="$1" + if test -n "$1"; then + # convert from *nix to w32, then use cygpath to convert from w32 to cygwin. + func_convert_core_file_wine_to_w32 "$1" + func_cygpath -u "$func_convert_core_file_wine_to_w32_result" + func_to_host_file_result="$func_cygpath_result" + fi + func_convert_file_check "$1" "$func_to_host_file_result" +} +# end func_convert_file_nix_to_cygwin + + +############################################# +# $build to $host PATH CONVERSION FUNCTIONS # +############################################# +# invoked via `$to_host_path_cmd ARG' +# +# In each case, ARG is the path to be converted from $build to $host format. +# The result will be available in $func_to_host_path_result. +# +# Path separators are also converted from $build format to $host format. If +# ARG begins or ends with a path separator character, it is preserved (but +# converted to $host format) on output. +# +# All path conversion functions are named using the following convention: +# file name conversion function : func_convert_file_X_to_Y () +# path conversion function : func_convert_path_X_to_Y () +# where, for any given $build/$host combination the 'X_to_Y' value is the +# same. If conversion functions are added for new $build/$host combinations, +# the two new functions must follow this pattern, or func_init_to_host_path_cmd +# will break. + + +# func_init_to_host_path_cmd +# Ensures that function "pointer" variable $to_host_path_cmd is set to the +# appropriate value, based on the value of $to_host_file_cmd. +to_host_path_cmd= +func_init_to_host_path_cmd () +{ + $opt_debug + if test -z "$to_host_path_cmd"; then + func_stripname 'func_convert_file_' '' "$to_host_file_cmd" + to_host_path_cmd="func_convert_path_${func_stripname_result}" + fi +} + + +# func_to_host_path ARG +# Converts the path ARG from $build format to $host format. Return result +# in func_to_host_path_result. +func_to_host_path () +{ + $opt_debug + func_init_to_host_path_cmd + $to_host_path_cmd "$1" +} +# end func_to_host_path + + +# func_convert_path_noop ARG +# Copy ARG to func_to_host_path_result. +func_convert_path_noop () +{ + func_to_host_path_result="$1" +} +# end func_convert_path_noop + + +# func_convert_path_msys_to_w32 ARG +# Convert path ARG from (mingw) MSYS to (mingw) w32 format; automatic +# conversion to w32 is not available inside the cwrapper. Returns result in +# func_to_host_path_result. +func_convert_path_msys_to_w32 () +{ + $opt_debug + func_to_host_path_result="$1" + if test -n "$1"; then + # Remove leading and trailing path separator characters from ARG. MSYS + # behavior is inconsistent here; cygpath turns them into '.;' and ';.'; + # and winepath ignores them completely. + func_stripname : : "$1" + func_to_host_path_tmp1=$func_stripname_result + func_convert_core_msys_to_w32 "$func_to_host_path_tmp1" + func_to_host_path_result="$func_convert_core_msys_to_w32_result" + func_convert_path_check : ";" \ + "$func_to_host_path_tmp1" "$func_to_host_path_result" + func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" + fi +} +# end func_convert_path_msys_to_w32 + + +# func_convert_path_cygwin_to_w32 ARG +# Convert path ARG from Cygwin to w32 format. Returns result in +# func_to_host_file_result. +func_convert_path_cygwin_to_w32 () +{ + $opt_debug + func_to_host_path_result="$1" + if test -n "$1"; then + # See func_convert_path_msys_to_w32: + func_stripname : : "$1" + func_to_host_path_tmp1=$func_stripname_result + func_to_host_path_result=`cygpath -m -p "$func_to_host_path_tmp1"` + func_convert_path_check : ";" \ + "$func_to_host_path_tmp1" "$func_to_host_path_result" + func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" + fi +} +# end func_convert_path_cygwin_to_w32 + + +# func_convert_path_nix_to_w32 ARG +# Convert path ARG from *nix to w32 format. Requires a wine environment and +# a working winepath. Returns result in func_to_host_file_result. +func_convert_path_nix_to_w32 () +{ + $opt_debug + func_to_host_path_result="$1" + if test -n "$1"; then + # See func_convert_path_msys_to_w32: + func_stripname : : "$1" + func_to_host_path_tmp1=$func_stripname_result + func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1" + func_to_host_path_result="$func_convert_core_path_wine_to_w32_result" + func_convert_path_check : ";" \ + "$func_to_host_path_tmp1" "$func_to_host_path_result" + func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" + fi +} +# end func_convert_path_nix_to_w32 + + +# func_convert_path_msys_to_cygwin ARG +# Convert path ARG from MSYS to Cygwin format. Requires LT_CYGPATH set. +# Returns result in func_to_host_file_result. +func_convert_path_msys_to_cygwin () +{ + $opt_debug + func_to_host_path_result="$1" + if test -n "$1"; then + # See func_convert_path_msys_to_w32: + func_stripname : : "$1" + func_to_host_path_tmp1=$func_stripname_result + func_convert_core_msys_to_w32 "$func_to_host_path_tmp1" + func_cygpath -u -p "$func_convert_core_msys_to_w32_result" + func_to_host_path_result="$func_cygpath_result" + func_convert_path_check : : \ + "$func_to_host_path_tmp1" "$func_to_host_path_result" + func_convert_path_front_back_pathsep ":*" "*:" : "$1" + fi +} +# end func_convert_path_msys_to_cygwin + + +# func_convert_path_nix_to_cygwin ARG +# Convert path ARG from *nix to Cygwin format. Requires Cygwin installed in a +# a wine environment, working winepath, and LT_CYGPATH set. Returns result in +# func_to_host_file_result. +func_convert_path_nix_to_cygwin () +{ + $opt_debug + func_to_host_path_result="$1" + if test -n "$1"; then + # Remove leading and trailing path separator characters from + # ARG. msys behavior is inconsistent here, cygpath turns them + # into '.;' and ';.', and winepath ignores them completely. + func_stripname : : "$1" + func_to_host_path_tmp1=$func_stripname_result + func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1" + func_cygpath -u -p "$func_convert_core_path_wine_to_w32_result" + func_to_host_path_result="$func_cygpath_result" + func_convert_path_check : : \ + "$func_to_host_path_tmp1" "$func_to_host_path_result" + func_convert_path_front_back_pathsep ":*" "*:" : "$1" + fi +} +# end func_convert_path_nix_to_cygwin + + +# func_mode_compile arg... +func_mode_compile () +{ + $opt_debug + # Get the compilation command and the source file. + base_compile= + srcfile="$nonopt" # always keep a non-empty value in "srcfile" + suppress_opt=yes + suppress_output= + arg_mode=normal + libobj= + later= + pie_flag= + + for arg + do + case $arg_mode in + arg ) + # do not "continue". Instead, add this to base_compile + lastarg="$arg" + arg_mode=normal + ;; + + target ) + libobj="$arg" + arg_mode=normal + continue + ;; + + normal ) + # Accept any command-line options. + case $arg in + -o) + test -n "$libobj" && \ + func_fatal_error "you cannot specify \`-o' more than once" + arg_mode=target + continue + ;; + + -pie | -fpie | -fPIE) + func_append pie_flag " $arg" + continue + ;; + + -shared | -static | -prefer-pic | -prefer-non-pic) + func_append later " $arg" + continue + ;; + + -no-suppress) + suppress_opt=no + continue + ;; + + -Xcompiler) + arg_mode=arg # the next one goes into the "base_compile" arg list + continue # The current "srcfile" will either be retained or + ;; # replaced later. I would guess that would be a bug. + + -Wc,*) + func_stripname '-Wc,' '' "$arg" + args=$func_stripname_result + lastarg= + save_ifs="$IFS"; IFS=',' + for arg in $args; do + IFS="$save_ifs" + func_append_quoted lastarg "$arg" + done + IFS="$save_ifs" + func_stripname ' ' '' "$lastarg" + lastarg=$func_stripname_result + + # Add the arguments to base_compile. + func_append base_compile " $lastarg" + continue + ;; + + *) + # Accept the current argument as the source file. + # The previous "srcfile" becomes the current argument. + # + lastarg="$srcfile" + srcfile="$arg" + ;; + esac # case $arg + ;; + esac # case $arg_mode + + # Aesthetically quote the previous argument. + func_append_quoted base_compile "$lastarg" + done # for arg + + case $arg_mode in + arg) + func_fatal_error "you must specify an argument for -Xcompile" + ;; + target) + func_fatal_error "you must specify a target with \`-o'" + ;; + *) + # Get the name of the library object. + test -z "$libobj" && { + func_basename "$srcfile" + libobj="$func_basename_result" + } + ;; + esac + + # Recognize several different file suffixes. + # If the user specifies -o file.o, it is replaced with file.lo + case $libobj in + *.[cCFSifmso] | \ + *.ada | *.adb | *.ads | *.asm | \ + *.c++ | *.cc | *.ii | *.class | *.cpp | *.cxx | \ + *.[fF][09]? | *.for | *.java | *.go | *.obj | *.sx | *.cu | *.cup) + func_xform "$libobj" + libobj=$func_xform_result + ;; + esac + + case $libobj in + *.lo) func_lo2o "$libobj"; obj=$func_lo2o_result ;; + *) + func_fatal_error "cannot determine name of library object from \`$libobj'" + ;; + esac + + func_infer_tag $base_compile + + for arg in $later; do + case $arg in + -shared) + test "$build_libtool_libs" != yes && \ + func_fatal_configuration "can not build a shared library" + build_old_libs=no + continue + ;; + + -static) + build_libtool_libs=no + build_old_libs=yes + continue + ;; + + -prefer-pic) + pic_mode=yes + continue + ;; + + -prefer-non-pic) + pic_mode=no + continue + ;; + esac + done + + func_quote_for_eval "$libobj" + test "X$libobj" != "X$func_quote_for_eval_result" \ + && $ECHO "X$libobj" | $GREP '[]~#^*{};<>?"'"'"' &()|`$[]' \ + && func_warning "libobj name \`$libobj' may not contain shell special characters." + func_dirname_and_basename "$obj" "/" "" + objname="$func_basename_result" + xdir="$func_dirname_result" + lobj=${xdir}$objdir/$objname + + test -z "$base_compile" && \ + func_fatal_help "you must specify a compilation command" + + # Delete any leftover library objects. + if test "$build_old_libs" = yes; then + removelist="$obj $lobj $libobj ${libobj}T" + else + removelist="$lobj $libobj ${libobj}T" + fi + + # On Cygwin there's no "real" PIC flag so we must build both object types + case $host_os in + cygwin* | mingw* | pw32* | os2* | cegcc*) + pic_mode=default + ;; + esac + if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then + # non-PIC code in shared libraries is not supported + pic_mode=default + fi + + # Calculate the filename of the output object if compiler does + # not support -o with -c + if test "$compiler_c_o" = no; then + output_obj=`$ECHO "$srcfile" | $SED 's%^.*/%%; s%\.[^.]*$%%'`.${objext} + lockfile="$output_obj.lock" + else + output_obj= + need_locks=no + lockfile= + fi + + # Lock this critical section if it is needed + # We use this script file to make the link, it avoids creating a new file + if test "$need_locks" = yes; then + until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do + func_echo "Waiting for $lockfile to be removed" + sleep 2 + done + elif test "$need_locks" = warn; then + if test -f "$lockfile"; then + $ECHO "\ +*** ERROR, $lockfile exists and contains: +`cat $lockfile 2>/dev/null` + +This indicates that another process is trying to use the same +temporary object file, and libtool could not work around it because +your compiler does not support \`-c' and \`-o' together. If you +repeat this compilation, it may succeed, by chance, but you had better +avoid parallel builds (make -j) in this platform, or get a better +compiler." + + $opt_dry_run || $RM $removelist + exit $EXIT_FAILURE + fi + func_append removelist " $output_obj" + $ECHO "$srcfile" > "$lockfile" + fi + + $opt_dry_run || $RM $removelist + func_append removelist " $lockfile" + trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15 + + func_to_tool_file "$srcfile" func_convert_file_msys_to_w32 + srcfile=$func_to_tool_file_result + func_quote_for_eval "$srcfile" + qsrcfile=$func_quote_for_eval_result + + # Only build a PIC object if we are building libtool libraries. + if test "$build_libtool_libs" = yes; then + # Without this assignment, base_compile gets emptied. + fbsd_hideous_sh_bug=$base_compile + + if test "$pic_mode" != no; then + command="$base_compile $qsrcfile $pic_flag" + else + # Don't build PIC code + command="$base_compile $qsrcfile" + fi + + func_mkdir_p "$xdir$objdir" + + if test -z "$output_obj"; then + # Place PIC objects in $objdir + func_append command " -o $lobj" + fi + + func_show_eval_locale "$command" \ + 'test -n "$output_obj" && $RM $removelist; exit $EXIT_FAILURE' + + if test "$need_locks" = warn && + test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then + $ECHO "\ +*** ERROR, $lockfile contains: +`cat $lockfile 2>/dev/null` + +but it should contain: +$srcfile + +This indicates that another process is trying to use the same +temporary object file, and libtool could not work around it because +your compiler does not support \`-c' and \`-o' together. If you +repeat this compilation, it may succeed, by chance, but you had better +avoid parallel builds (make -j) in this platform, or get a better +compiler." + + $opt_dry_run || $RM $removelist + exit $EXIT_FAILURE + fi + + # Just move the object if needed, then go on to compile the next one + if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then + func_show_eval '$MV "$output_obj" "$lobj"' \ + 'error=$?; $opt_dry_run || $RM $removelist; exit $error' + fi + + # Allow error messages only from the first compilation. + if test "$suppress_opt" = yes; then + suppress_output=' >/dev/null 2>&1' + fi + fi + + # Only build a position-dependent object if we build old libraries. + if test "$build_old_libs" = yes; then + if test "$pic_mode" != yes; then + # Don't build PIC code + command="$base_compile $qsrcfile$pie_flag" + else + command="$base_compile $qsrcfile $pic_flag" + fi + if test "$compiler_c_o" = yes; then + func_append command " -o $obj" + fi + + # Suppress compiler output if we already did a PIC compilation. + func_append command "$suppress_output" + func_show_eval_locale "$command" \ + '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' + + if test "$need_locks" = warn && + test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then + $ECHO "\ +*** ERROR, $lockfile contains: +`cat $lockfile 2>/dev/null` + +but it should contain: +$srcfile + +This indicates that another process is trying to use the same +temporary object file, and libtool could not work around it because +your compiler does not support \`-c' and \`-o' together. If you +repeat this compilation, it may succeed, by chance, but you had better +avoid parallel builds (make -j) in this platform, or get a better +compiler." + + $opt_dry_run || $RM $removelist + exit $EXIT_FAILURE + fi + + # Just move the object if needed + if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then + func_show_eval '$MV "$output_obj" "$obj"' \ + 'error=$?; $opt_dry_run || $RM $removelist; exit $error' + fi + fi + + $opt_dry_run || { + func_write_libtool_object "$libobj" "$objdir/$objname" "$objname" + + # Unlock the critical section if it was locked + if test "$need_locks" != no; then + removelist=$lockfile + $RM "$lockfile" + fi + } + + exit $EXIT_SUCCESS +} + +$opt_help || { + test "$opt_mode" = compile && func_mode_compile ${1+"$@"} +} + +func_mode_help () +{ + # We need to display help for each of the modes. + case $opt_mode in + "") + # Generic help is extracted from the usage comments + # at the start of this file. + func_help + ;; + + clean) + $ECHO \ +"Usage: $progname [OPTION]... --mode=clean RM [RM-OPTION]... FILE... + +Remove files from the build directory. + +RM is the name of the program to use to delete files associated with each FILE +(typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed +to RM. + +If FILE is a libtool library, object or program, all the files associated +with it are deleted. Otherwise, only FILE itself is deleted using RM." + ;; + + compile) + $ECHO \ +"Usage: $progname [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE + +Compile a source file into a libtool library object. + +This mode accepts the following additional options: + + -o OUTPUT-FILE set the output file name to OUTPUT-FILE + -no-suppress do not suppress compiler output for multiple passes + -prefer-pic try to build PIC objects only + -prefer-non-pic try to build non-PIC objects only + -shared do not build a \`.o' file suitable for static linking + -static only build a \`.o' file suitable for static linking + -Wc,FLAG pass FLAG directly to the compiler + +COMPILE-COMMAND is a command to be used in creating a \`standard' object file +from the given SOURCEFILE. + +The output file name is determined by removing the directory component from +SOURCEFILE, then substituting the C source code suffix \`.c' with the +library object suffix, \`.lo'." + ;; + + execute) + $ECHO \ +"Usage: $progname [OPTION]... --mode=execute COMMAND [ARGS]... + +Automatically set library path, then run a program. + +This mode accepts the following additional options: + + -dlopen FILE add the directory containing FILE to the library path + +This mode sets the library path environment variable according to \`-dlopen' +flags. + +If any of the ARGS are libtool executable wrappers, then they are translated +into their corresponding uninstalled binary, and any of their required library +directories are added to the library path. + +Then, COMMAND is executed, with ARGS as arguments." + ;; + + finish) + $ECHO \ +"Usage: $progname [OPTION]... --mode=finish [LIBDIR]... + +Complete the installation of libtool libraries. + +Each LIBDIR is a directory that contains libtool libraries. + +The commands that this mode executes may require superuser privileges. Use +the \`--dry-run' option if you just want to see what would be executed." + ;; + + install) + $ECHO \ +"Usage: $progname [OPTION]... --mode=install INSTALL-COMMAND... + +Install executables or libraries. + +INSTALL-COMMAND is the installation command. The first component should be +either the \`install' or \`cp' program. + +The following components of INSTALL-COMMAND are treated specially: + + -inst-prefix-dir PREFIX-DIR Use PREFIX-DIR as a staging area for installation + +The rest of the components are interpreted as arguments to that command (only +BSD-compatible install options are recognized)." + ;; + + link) + $ECHO \ +"Usage: $progname [OPTION]... --mode=link LINK-COMMAND... + +Link object files or libraries together to form another library, or to +create an executable program. + +LINK-COMMAND is a command using the C compiler that you would use to create +a program from several object files. + +The following components of LINK-COMMAND are treated specially: + + -all-static do not do any dynamic linking at all + -avoid-version do not add a version suffix if possible + -bindir BINDIR specify path to binaries directory (for systems where + libraries must be found in the PATH setting at runtime) + -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime + -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols + -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3) + -export-symbols SYMFILE + try to export only the symbols listed in SYMFILE + -export-symbols-regex REGEX + try to export only the symbols matching REGEX + -LLIBDIR search LIBDIR for required installed libraries + -lNAME OUTPUT-FILE requires the installed library libNAME + -module build a library that can dlopened + -no-fast-install disable the fast-install mode + -no-install link a not-installable executable + -no-undefined declare that a library does not refer to external symbols + -o OUTPUT-FILE create OUTPUT-FILE from the specified objects + -objectlist FILE Use a list of object files found in FILE to specify objects + -precious-files-regex REGEX + don't remove output files matching REGEX + -release RELEASE specify package release information + -rpath LIBDIR the created library will eventually be installed in LIBDIR + -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries + -shared only do dynamic linking of libtool libraries + -shrext SUFFIX override the standard shared library file extension + -static do not do any dynamic linking of uninstalled libtool libraries + -static-libtool-libs + do not do any dynamic linking of libtool libraries + -version-info CURRENT[:REVISION[:AGE]] + specify library version info [each variable defaults to 0] + -weak LIBNAME declare that the target provides the LIBNAME interface + -Wc,FLAG + -Xcompiler FLAG pass linker-specific FLAG directly to the compiler + -Wl,FLAG + -Xlinker FLAG pass linker-specific FLAG directly to the linker + -XCClinker FLAG pass link-specific FLAG to the compiler driver (CC) + +All other options (arguments beginning with \`-') are ignored. + +Every other argument is treated as a filename. Files ending in \`.la' are +treated as uninstalled libtool libraries, other files are standard or library +object files. + +If the OUTPUT-FILE ends in \`.la', then a libtool library is created, +only library objects (\`.lo' files) may be specified, and \`-rpath' is +required, except when creating a convenience library. + +If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created +using \`ar' and \`ranlib', or on Windows using \`lib'. + +If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file +is created, otherwise an executable program is created." + ;; + + uninstall) + $ECHO \ +"Usage: $progname [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE... + +Remove libraries from an installation directory. + +RM is the name of the program to use to delete files associated with each FILE +(typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed +to RM. + +If FILE is a libtool library, all the files associated with it are deleted. +Otherwise, only FILE itself is deleted using RM." + ;; + + *) + func_fatal_help "invalid operation mode \`$opt_mode'" + ;; + esac + + echo + $ECHO "Try \`$progname --help' for more information about other modes." +} + +# Now that we've collected a possible --mode arg, show help if necessary +if $opt_help; then + if test "$opt_help" = :; then + func_mode_help + else + { + func_help noexit + for opt_mode in compile link execute install finish uninstall clean; do + func_mode_help + done + } | sed -n '1p; 2,$s/^Usage:/ or: /p' + { + func_help noexit + for opt_mode in compile link execute install finish uninstall clean; do + echo + func_mode_help + done + } | + sed '1d + /^When reporting/,/^Report/{ + H + d + } + $x + /information about other modes/d + /more detailed .*MODE/d + s/^Usage:.*--mode=\([^ ]*\) .*/Description of \1 mode:/' + fi + exit $? +fi + + +# func_mode_execute arg... +func_mode_execute () +{ + $opt_debug + # The first argument is the command name. + cmd="$nonopt" + test -z "$cmd" && \ + func_fatal_help "you must specify a COMMAND" + + # Handle -dlopen flags immediately. + for file in $opt_dlopen; do + test -f "$file" \ + || func_fatal_help "\`$file' is not a file" + + dir= + case $file in + *.la) + func_resolve_sysroot "$file" + file=$func_resolve_sysroot_result + + # Check to see that this really is a libtool archive. + func_lalib_unsafe_p "$file" \ + || func_fatal_help "\`$lib' is not a valid libtool archive" + + # Read the libtool library. + dlname= + library_names= + func_source "$file" + + # Skip this library if it cannot be dlopened. + if test -z "$dlname"; then + # Warn if it was a shared library. + test -n "$library_names" && \ + func_warning "\`$file' was not linked with \`-export-dynamic'" + continue + fi + + func_dirname "$file" "" "." + dir="$func_dirname_result" + + if test -f "$dir/$objdir/$dlname"; then + func_append dir "/$objdir" + else + if test ! -f "$dir/$dlname"; then + func_fatal_error "cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" + fi + fi + ;; + + *.lo) + # Just add the directory containing the .lo file. + func_dirname "$file" "" "." + dir="$func_dirname_result" + ;; + + *) + func_warning "\`-dlopen' is ignored for non-libtool libraries and objects" + continue + ;; + esac + + # Get the absolute pathname. + absdir=`cd "$dir" && pwd` + test -n "$absdir" && dir="$absdir" + + # Now add the directory to shlibpath_var. + if eval "test -z \"\$$shlibpath_var\""; then + eval "$shlibpath_var=\"\$dir\"" + else + eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\"" + fi + done + + # This variable tells wrapper scripts just to set shlibpath_var + # rather than running their programs. + libtool_execute_magic="$magic" + + # Check if any of the arguments is a wrapper script. + args= + for file + do + case $file in + -* | *.la | *.lo ) ;; + *) + # Do a test to see if this is really a libtool program. + if func_ltwrapper_script_p "$file"; then + func_source "$file" + # Transform arg to wrapped name. + file="$progdir/$program" + elif func_ltwrapper_executable_p "$file"; then + func_ltwrapper_scriptname "$file" + func_source "$func_ltwrapper_scriptname_result" + # Transform arg to wrapped name. + file="$progdir/$program" + fi + ;; + esac + # Quote arguments (to preserve shell metacharacters). + func_append_quoted args "$file" + done + + if test "X$opt_dry_run" = Xfalse; then + if test -n "$shlibpath_var"; then + # Export the shlibpath_var. + eval "export $shlibpath_var" + fi + + # Restore saved environment variables + for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES + do + eval "if test \"\${save_$lt_var+set}\" = set; then + $lt_var=\$save_$lt_var; export $lt_var + else + $lt_unset $lt_var + fi" + done + + # Now prepare to actually exec the command. + exec_cmd="\$cmd$args" + else + # Display what would be done. + if test -n "$shlibpath_var"; then + eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\"" + echo "export $shlibpath_var" + fi + $ECHO "$cmd$args" + exit $EXIT_SUCCESS + fi +} + +test "$opt_mode" = execute && func_mode_execute ${1+"$@"} + + +# func_mode_finish arg... +func_mode_finish () +{ + $opt_debug + libs= + libdirs= + admincmds= + + for opt in "$nonopt" ${1+"$@"} + do + if test -d "$opt"; then + func_append libdirs " $opt" + + elif test -f "$opt"; then + if func_lalib_unsafe_p "$opt"; then + func_append libs " $opt" + else + func_warning "\`$opt' is not a valid libtool archive" + fi + + else + func_fatal_error "invalid argument \`$opt'" + fi + done + + if test -n "$libs"; then + if test -n "$lt_sysroot"; then + sysroot_regex=`$ECHO "$lt_sysroot" | $SED "$sed_make_literal_regex"` + sysroot_cmd="s/\([ ']\)$sysroot_regex/\1/g;" + else + sysroot_cmd= + fi + + # Remove sysroot references + if $opt_dry_run; then + for lib in $libs; do + echo "removing references to $lt_sysroot and \`=' prefixes from $lib" + done + else + tmpdir=`func_mktempdir` + for lib in $libs; do + sed -e "${sysroot_cmd} s/\([ ']-[LR]\)=/\1/g; s/\([ ']\)=/\1/g" $lib \ + > $tmpdir/tmp-la + mv -f $tmpdir/tmp-la $lib + done + ${RM}r "$tmpdir" + fi + fi + + if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then + for libdir in $libdirs; do + if test -n "$finish_cmds"; then + # Do each command in the finish commands. + func_execute_cmds "$finish_cmds" 'admincmds="$admincmds +'"$cmd"'"' + fi + if test -n "$finish_eval"; then + # Do the single finish_eval. + eval cmds=\"$finish_eval\" + $opt_dry_run || eval "$cmds" || func_append admincmds " + $cmds" + fi + done + fi + + # Exit here if they wanted silent mode. + $opt_silent && exit $EXIT_SUCCESS + + if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then + echo "----------------------------------------------------------------------" + echo "Libraries have been installed in:" + for libdir in $libdirs; do + $ECHO " $libdir" + done + echo + echo "If you ever happen to want to link against installed libraries" + echo "in a given directory, LIBDIR, you must either use libtool, and" + echo "specify the full pathname of the library, or use the \`-LLIBDIR'" + echo "flag during linking and do at least one of the following:" + if test -n "$shlibpath_var"; then + echo " - add LIBDIR to the \`$shlibpath_var' environment variable" + echo " during execution" + fi + if test -n "$runpath_var"; then + echo " - add LIBDIR to the \`$runpath_var' environment variable" + echo " during linking" + fi + if test -n "$hardcode_libdir_flag_spec"; then + libdir=LIBDIR + eval flag=\"$hardcode_libdir_flag_spec\" + + $ECHO " - use the \`$flag' linker flag" + fi + if test -n "$admincmds"; then + $ECHO " - have your system administrator run these commands:$admincmds" + fi + if test -f /etc/ld.so.conf; then + echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'" + fi + echo + + echo "See any operating system documentation about shared libraries for" + case $host in + solaris2.[6789]|solaris2.1[0-9]) + echo "more information, such as the ld(1), crle(1) and ld.so(8) manual" + echo "pages." + ;; + *) + echo "more information, such as the ld(1) and ld.so(8) manual pages." + ;; + esac + echo "----------------------------------------------------------------------" + fi + exit $EXIT_SUCCESS +} + +test "$opt_mode" = finish && func_mode_finish ${1+"$@"} + + +# func_mode_install arg... +func_mode_install () +{ + $opt_debug + # There may be an optional sh(1) argument at the beginning of + # install_prog (especially on Windows NT). + if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh || + # Allow the use of GNU shtool's install command. + case $nonopt in *shtool*) :;; *) false;; esac; then + # Aesthetically quote it. + func_quote_for_eval "$nonopt" + install_prog="$func_quote_for_eval_result " + arg=$1 + shift + else + install_prog= + arg=$nonopt + fi + + # The real first argument should be the name of the installation program. + # Aesthetically quote it. + func_quote_for_eval "$arg" + func_append install_prog "$func_quote_for_eval_result" + install_shared_prog=$install_prog + case " $install_prog " in + *[\\\ /]cp\ *) install_cp=: ;; + *) install_cp=false ;; + esac + + # We need to accept at least all the BSD install flags. + dest= + files= + opts= + prev= + install_type= + isdir=no + stripme= + no_mode=: + for arg + do + arg2= + if test -n "$dest"; then + func_append files " $dest" + dest=$arg + continue + fi + + case $arg in + -d) isdir=yes ;; + -f) + if $install_cp; then :; else + prev=$arg + fi + ;; + -g | -m | -o) + prev=$arg + ;; + -s) + stripme=" -s" + continue + ;; + -*) + ;; + *) + # If the previous option needed an argument, then skip it. + if test -n "$prev"; then + if test "x$prev" = x-m && test -n "$install_override_mode"; then + arg2=$install_override_mode + no_mode=false + fi + prev= + else + dest=$arg + continue + fi + ;; + esac + + # Aesthetically quote the argument. + func_quote_for_eval "$arg" + func_append install_prog " $func_quote_for_eval_result" + if test -n "$arg2"; then + func_quote_for_eval "$arg2" + fi + func_append install_shared_prog " $func_quote_for_eval_result" + done + + test -z "$install_prog" && \ + func_fatal_help "you must specify an install program" + + test -n "$prev" && \ + func_fatal_help "the \`$prev' option requires an argument" + + if test -n "$install_override_mode" && $no_mode; then + if $install_cp; then :; else + func_quote_for_eval "$install_override_mode" + func_append install_shared_prog " -m $func_quote_for_eval_result" + fi + fi + + if test -z "$files"; then + if test -z "$dest"; then + func_fatal_help "no file or destination specified" + else + func_fatal_help "you must specify a destination" + fi + fi + + # Strip any trailing slash from the destination. + func_stripname '' '/' "$dest" + dest=$func_stripname_result + + # Check to see that the destination is a directory. + test -d "$dest" && isdir=yes + if test "$isdir" = yes; then + destdir="$dest" + destname= + else + func_dirname_and_basename "$dest" "" "." + destdir="$func_dirname_result" + destname="$func_basename_result" + + # Not a directory, so check to see that there is only one file specified. + set dummy $files; shift + test "$#" -gt 1 && \ + func_fatal_help "\`$dest' is not a directory" + fi + case $destdir in + [\\/]* | [A-Za-z]:[\\/]*) ;; + *) + for file in $files; do + case $file in + *.lo) ;; + *) + func_fatal_help "\`$destdir' must be an absolute directory name" + ;; + esac + done + ;; + esac + + # This variable tells wrapper scripts just to set variables rather + # than running their programs. + libtool_install_magic="$magic" + + staticlibs= + future_libdirs= + current_libdirs= + for file in $files; do + + # Do each installation. + case $file in + *.$libext) + # Do the static libraries later. + func_append staticlibs " $file" + ;; + + *.la) + func_resolve_sysroot "$file" + file=$func_resolve_sysroot_result + + # Check to see that this really is a libtool archive. + func_lalib_unsafe_p "$file" \ + || func_fatal_help "\`$file' is not a valid libtool archive" + + library_names= + old_library= + relink_command= + func_source "$file" + + # Add the libdir to current_libdirs if it is the destination. + if test "X$destdir" = "X$libdir"; then + case "$current_libdirs " in + *" $libdir "*) ;; + *) func_append current_libdirs " $libdir" ;; + esac + else + # Note the libdir as a future libdir. + case "$future_libdirs " in + *" $libdir "*) ;; + *) func_append future_libdirs " $libdir" ;; + esac + fi + + func_dirname "$file" "/" "" + dir="$func_dirname_result" + func_append dir "$objdir" + + if test -n "$relink_command"; then + # Determine the prefix the user has applied to our future dir. + inst_prefix_dir=`$ECHO "$destdir" | $SED -e "s%$libdir\$%%"` + + # Don't allow the user to place us outside of our expected + # location b/c this prevents finding dependent libraries that + # are installed to the same prefix. + # At present, this check doesn't affect windows .dll's that + # are installed into $libdir/../bin (currently, that works fine) + # but it's something to keep an eye on. + test "$inst_prefix_dir" = "$destdir" && \ + func_fatal_error "error: cannot install \`$file' to a directory not ending in $libdir" + + if test -n "$inst_prefix_dir"; then + # Stick the inst_prefix_dir data into the link command. + relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"` + else + relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%%"` + fi + + func_warning "relinking \`$file'" + func_show_eval "$relink_command" \ + 'func_fatal_error "error: relink \`$file'\'' with the above command before installing it"' + fi + + # See the names of the shared library. + set dummy $library_names; shift + if test -n "$1"; then + realname="$1" + shift + + srcname="$realname" + test -n "$relink_command" && srcname="$realname"T + + # Install the shared library and build the symlinks. + func_show_eval "$install_shared_prog $dir/$srcname $destdir/$realname" \ + 'exit $?' + tstripme="$stripme" + case $host_os in + cygwin* | mingw* | pw32* | cegcc*) + case $realname in + *.dll.a) + tstripme="" + ;; + esac + ;; + esac + if test -n "$tstripme" && test -n "$striplib"; then + func_show_eval "$striplib $destdir/$realname" 'exit $?' + fi + + if test "$#" -gt 0; then + # Delete the old symlinks, and create new ones. + # Try `ln -sf' first, because the `ln' binary might depend on + # the symlink we replace! Solaris /bin/ln does not understand -f, + # so we also need to try rm && ln -s. + for linkname + do + test "$linkname" != "$realname" \ + && func_show_eval "(cd $destdir && { $LN_S -f $realname $linkname || { $RM $linkname && $LN_S $realname $linkname; }; })" + done + fi + + # Do each command in the postinstall commands. + lib="$destdir/$realname" + func_execute_cmds "$postinstall_cmds" 'exit $?' + fi + + # Install the pseudo-library for information purposes. + func_basename "$file" + name="$func_basename_result" + instname="$dir/$name"i + func_show_eval "$install_prog $instname $destdir/$name" 'exit $?' + + # Maybe install the static library, too. + test -n "$old_library" && func_append staticlibs " $dir/$old_library" + ;; + + *.lo) + # Install (i.e. copy) a libtool object. + + # Figure out destination file name, if it wasn't already specified. + if test -n "$destname"; then + destfile="$destdir/$destname" + else + func_basename "$file" + destfile="$func_basename_result" + destfile="$destdir/$destfile" + fi + + # Deduce the name of the destination old-style object file. + case $destfile in + *.lo) + func_lo2o "$destfile" + staticdest=$func_lo2o_result + ;; + *.$objext) + staticdest="$destfile" + destfile= + ;; + *) + func_fatal_help "cannot copy a libtool object to \`$destfile'" + ;; + esac + + # Install the libtool object if requested. + test -n "$destfile" && \ + func_show_eval "$install_prog $file $destfile" 'exit $?' + + # Install the old object if enabled. + if test "$build_old_libs" = yes; then + # Deduce the name of the old-style object file. + func_lo2o "$file" + staticobj=$func_lo2o_result + func_show_eval "$install_prog \$staticobj \$staticdest" 'exit $?' + fi + exit $EXIT_SUCCESS + ;; + + *) + # Figure out destination file name, if it wasn't already specified. + if test -n "$destname"; then + destfile="$destdir/$destname" + else + func_basename "$file" + destfile="$func_basename_result" + destfile="$destdir/$destfile" + fi + + # If the file is missing, and there is a .exe on the end, strip it + # because it is most likely a libtool script we actually want to + # install + stripped_ext="" + case $file in + *.exe) + if test ! -f "$file"; then + func_stripname '' '.exe' "$file" + file=$func_stripname_result + stripped_ext=".exe" + fi + ;; + esac + + # Do a test to see if this is really a libtool program. + case $host in + *cygwin* | *mingw*) + if func_ltwrapper_executable_p "$file"; then + func_ltwrapper_scriptname "$file" + wrapper=$func_ltwrapper_scriptname_result + else + func_stripname '' '.exe' "$file" + wrapper=$func_stripname_result + fi + ;; + *) + wrapper=$file + ;; + esac + if func_ltwrapper_script_p "$wrapper"; then + notinst_deplibs= + relink_command= + + func_source "$wrapper" + + # Check the variables that should have been set. + test -z "$generated_by_libtool_version" && \ + func_fatal_error "invalid libtool wrapper script \`$wrapper'" + + finalize=yes + for lib in $notinst_deplibs; do + # Check to see that each library is installed. + libdir= + if test -f "$lib"; then + func_source "$lib" + fi + libfile="$libdir/"`$ECHO "$lib" | $SED 's%^.*/%%g'` ### testsuite: skip nested quoting test + if test -n "$libdir" && test ! -f "$libfile"; then + func_warning "\`$lib' has not been installed in \`$libdir'" + finalize=no + fi + done + + relink_command= + func_source "$wrapper" + + outputname= + if test "$fast_install" = no && test -n "$relink_command"; then + $opt_dry_run || { + if test "$finalize" = yes; then + tmpdir=`func_mktempdir` + func_basename "$file$stripped_ext" + file="$func_basename_result" + outputname="$tmpdir/$file" + # Replace the output file specification. + relink_command=`$ECHO "$relink_command" | $SED 's%@OUTPUT@%'"$outputname"'%g'` + + $opt_silent || { + func_quote_for_expand "$relink_command" + eval "func_echo $func_quote_for_expand_result" + } + if eval "$relink_command"; then : + else + func_error "error: relink \`$file' with the above command before installing it" + $opt_dry_run || ${RM}r "$tmpdir" + continue + fi + file="$outputname" + else + func_warning "cannot relink \`$file'" + fi + } + else + # Install the binary that we compiled earlier. + file=`$ECHO "$file$stripped_ext" | $SED "s%\([^/]*\)$%$objdir/\1%"` + fi + fi + + # remove .exe since cygwin /usr/bin/install will append another + # one anyway + case $install_prog,$host in + */usr/bin/install*,*cygwin*) + case $file:$destfile in + *.exe:*.exe) + # this is ok + ;; + *.exe:*) + destfile=$destfile.exe + ;; + *:*.exe) + func_stripname '' '.exe' "$destfile" + destfile=$func_stripname_result + ;; + esac + ;; + esac + func_show_eval "$install_prog\$stripme \$file \$destfile" 'exit $?' + $opt_dry_run || if test -n "$outputname"; then + ${RM}r "$tmpdir" + fi + ;; + esac + done + + for file in $staticlibs; do + func_basename "$file" + name="$func_basename_result" + + # Set up the ranlib parameters. + oldlib="$destdir/$name" + func_to_tool_file "$oldlib" func_convert_file_msys_to_w32 + tool_oldlib=$func_to_tool_file_result + + func_show_eval "$install_prog \$file \$oldlib" 'exit $?' + + if test -n "$stripme" && test -n "$old_striplib"; then + func_show_eval "$old_striplib $tool_oldlib" 'exit $?' + fi + + # Do each command in the postinstall commands. + func_execute_cmds "$old_postinstall_cmds" 'exit $?' + done + + test -n "$future_libdirs" && \ + func_warning "remember to run \`$progname --finish$future_libdirs'" + + if test -n "$current_libdirs"; then + # Maybe just do a dry run. + $opt_dry_run && current_libdirs=" -n$current_libdirs" + exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs' + else + exit $EXIT_SUCCESS + fi +} + +test "$opt_mode" = install && func_mode_install ${1+"$@"} + + +# func_generate_dlsyms outputname originator pic_p +# Extract symbols from dlprefiles and create ${outputname}S.o with +# a dlpreopen symbol table. +func_generate_dlsyms () +{ + $opt_debug + my_outputname="$1" + my_originator="$2" + my_pic_p="${3-no}" + my_prefix=`$ECHO "$my_originator" | sed 's%[^a-zA-Z0-9]%_%g'` + my_dlsyms= + + if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then + if test -n "$NM" && test -n "$global_symbol_pipe"; then + my_dlsyms="${my_outputname}S.c" + else + func_error "not configured to extract global symbols from dlpreopened files" + fi + fi + + if test -n "$my_dlsyms"; then + case $my_dlsyms in + "") ;; + *.c) + # Discover the nlist of each of the dlfiles. + nlist="$output_objdir/${my_outputname}.nm" + + func_show_eval "$RM $nlist ${nlist}S ${nlist}T" + + # Parse the name list into a source file. + func_verbose "creating $output_objdir/$my_dlsyms" + + $opt_dry_run || $ECHO > "$output_objdir/$my_dlsyms" "\ +/* $my_dlsyms - symbol resolution table for \`$my_outputname' dlsym emulation. */ +/* Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION */ + +#ifdef __cplusplus +extern \"C\" { +#endif + +#if defined(__GNUC__) && (((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4)) || (__GNUC__ > 4)) +#pragma GCC diagnostic ignored \"-Wstrict-prototypes\" +#endif + +/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ +#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) +/* DATA imports from DLLs on WIN32 con't be const, because runtime + relocations are performed -- see ld's documentation on pseudo-relocs. */ +# define LT_DLSYM_CONST +#elif defined(__osf__) +/* This system does not cope well with relocations in const data. */ +# define LT_DLSYM_CONST +#else +# define LT_DLSYM_CONST const +#endif + +/* External symbol declarations for the compiler. */\ +" + + if test "$dlself" = yes; then + func_verbose "generating symbol list for \`$output'" + + $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist" + + # Add our own program objects to the symbol list. + progfiles=`$ECHO "$objs$old_deplibs" | $SP2NL | $SED "$lo2o" | $NL2SP` + for progfile in $progfiles; do + func_to_tool_file "$progfile" func_convert_file_msys_to_w32 + func_verbose "extracting global C symbols from \`$func_to_tool_file_result'" + $opt_dry_run || eval "$NM $func_to_tool_file_result | $global_symbol_pipe >> '$nlist'" + done + + if test -n "$exclude_expsyms"; then + $opt_dry_run || { + eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T' + eval '$MV "$nlist"T "$nlist"' + } + fi + + if test -n "$export_symbols_regex"; then + $opt_dry_run || { + eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T' + eval '$MV "$nlist"T "$nlist"' + } + fi + + # Prepare the list of exported symbols + if test -z "$export_symbols"; then + export_symbols="$output_objdir/$outputname.exp" + $opt_dry_run || { + $RM $export_symbols + eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' + case $host in + *cygwin* | *mingw* | *cegcc* ) + eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' + eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"' + ;; + esac + } + else + $opt_dry_run || { + eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"' + eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T' + eval '$MV "$nlist"T "$nlist"' + case $host in + *cygwin* | *mingw* | *cegcc* ) + eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' + eval 'cat "$nlist" >> "$output_objdir/$outputname.def"' + ;; + esac + } + fi + fi + + for dlprefile in $dlprefiles; do + func_verbose "extracting global C symbols from \`$dlprefile'" + func_basename "$dlprefile" + name="$func_basename_result" + case $host in + *cygwin* | *mingw* | *cegcc* ) + # if an import library, we need to obtain dlname + if func_win32_import_lib_p "$dlprefile"; then + func_tr_sh "$dlprefile" + eval "curr_lafile=\$libfile_$func_tr_sh_result" + dlprefile_dlbasename="" + if test -n "$curr_lafile" && func_lalib_p "$curr_lafile"; then + # Use subshell, to avoid clobbering current variable values + dlprefile_dlname=`source "$curr_lafile" && echo "$dlname"` + if test -n "$dlprefile_dlname" ; then + func_basename "$dlprefile_dlname" + dlprefile_dlbasename="$func_basename_result" + else + # no lafile. user explicitly requested -dlpreopen . + $sharedlib_from_linklib_cmd "$dlprefile" + dlprefile_dlbasename=$sharedlib_from_linklib_result + fi + fi + $opt_dry_run || { + if test -n "$dlprefile_dlbasename" ; then + eval '$ECHO ": $dlprefile_dlbasename" >> "$nlist"' + else + func_warning "Could not compute DLL name from $name" + eval '$ECHO ": $name " >> "$nlist"' + fi + func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 + eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe | + $SED -e '/I __imp/d' -e 's/I __nm_/D /;s/_nm__//' >> '$nlist'" + } + else # not an import lib + $opt_dry_run || { + eval '$ECHO ": $name " >> "$nlist"' + func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 + eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'" + } + fi + ;; + *) + $opt_dry_run || { + eval '$ECHO ": $name " >> "$nlist"' + func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 + eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'" + } + ;; + esac + done + + $opt_dry_run || { + # Make sure we have at least an empty file. + test -f "$nlist" || : > "$nlist" + + if test -n "$exclude_expsyms"; then + $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T + $MV "$nlist"T "$nlist" + fi + + # Try sorting and uniquifying the output. + if $GREP -v "^: " < "$nlist" | + if sort -k 3 /dev/null 2>&1; then + sort -k 3 + else + sort +2 + fi | + uniq > "$nlist"S; then + : + else + $GREP -v "^: " < "$nlist" > "$nlist"S + fi + + if test -f "$nlist"S; then + eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$my_dlsyms"' + else + echo '/* NONE */' >> "$output_objdir/$my_dlsyms" + fi + + echo >> "$output_objdir/$my_dlsyms" "\ + +/* The mapping between symbol names and symbols. */ +typedef struct { + const char *name; + void *address; +} lt_dlsymlist; +extern LT_DLSYM_CONST lt_dlsymlist +lt_${my_prefix}_LTX_preloaded_symbols[]; +LT_DLSYM_CONST lt_dlsymlist +lt_${my_prefix}_LTX_preloaded_symbols[] = +{\ + { \"$my_originator\", (void *) 0 }," + + case $need_lib_prefix in + no) + eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$my_dlsyms" + ;; + *) + eval "$global_symbol_to_c_name_address_lib_prefix" < "$nlist" >> "$output_objdir/$my_dlsyms" + ;; + esac + echo >> "$output_objdir/$my_dlsyms" "\ + {0, (void *) 0} +}; + +/* This works around a problem in FreeBSD linker */ +#ifdef FREEBSD_WORKAROUND +static const void *lt_preloaded_setup() { + return lt_${my_prefix}_LTX_preloaded_symbols; +} +#endif + +#ifdef __cplusplus +} +#endif\ +" + } # !$opt_dry_run + + pic_flag_for_symtable= + case "$compile_command " in + *" -static "*) ;; + *) + case $host in + # compiling the symbol table file with pic_flag works around + # a FreeBSD bug that causes programs to crash when -lm is + # linked before any other PIC object. But we must not use + # pic_flag when linking with -static. The problem exists in + # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1. + *-*-freebsd2.*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) + pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND" ;; + *-*-hpux*) + pic_flag_for_symtable=" $pic_flag" ;; + *) + if test "X$my_pic_p" != Xno; then + pic_flag_for_symtable=" $pic_flag" + fi + ;; + esac + ;; + esac + symtab_cflags= + for arg in $LTCFLAGS; do + case $arg in + -pie | -fpie | -fPIE) ;; + *) func_append symtab_cflags " $arg" ;; + esac + done + + # Now compile the dynamic symbol file. + func_show_eval '(cd $output_objdir && $LTCC$symtab_cflags -c$no_builtin_flag$pic_flag_for_symtable "$my_dlsyms")' 'exit $?' + + # Clean up the generated files. + func_show_eval '$RM "$output_objdir/$my_dlsyms" "$nlist" "${nlist}S" "${nlist}T"' + + # Transform the symbol file into the correct name. + symfileobj="$output_objdir/${my_outputname}S.$objext" + case $host in + *cygwin* | *mingw* | *cegcc* ) + if test -f "$output_objdir/$my_outputname.def"; then + compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` + finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` + else + compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"` + finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"` + fi + ;; + *) + compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"` + finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"` + ;; + esac + ;; + *) + func_fatal_error "unknown suffix for \`$my_dlsyms'" + ;; + esac + else + # We keep going just in case the user didn't refer to + # lt_preloaded_symbols. The linker will fail if global_symbol_pipe + # really was required. + + # Nullify the symbol file. + compile_command=`$ECHO "$compile_command" | $SED "s% @SYMFILE@%%"` + finalize_command=`$ECHO "$finalize_command" | $SED "s% @SYMFILE@%%"` + fi +} + +# func_win32_libid arg +# return the library type of file 'arg' +# +# Need a lot of goo to handle *both* DLLs and import libs +# Has to be a shell function in order to 'eat' the argument +# that is supplied when $file_magic_command is called. +# Despite the name, also deal with 64 bit binaries. +func_win32_libid () +{ + $opt_debug + win32_libid_type="unknown" + win32_fileres=`file -L $1 2>/dev/null` + case $win32_fileres in + *ar\ archive\ import\ library*) # definitely import + win32_libid_type="x86 archive import" + ;; + *ar\ archive*) # could be an import, or static + # Keep the egrep pattern in sync with the one in _LT_CHECK_MAGIC_METHOD. + if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | + $EGREP 'file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' >/dev/null; then + func_to_tool_file "$1" func_convert_file_msys_to_w32 + win32_nmres=`eval $NM -f posix -A \"$func_to_tool_file_result\" | + $SED -n -e ' + 1,100{ + / I /{ + s,.*,import, + p + q + } + }'` + case $win32_nmres in + import*) win32_libid_type="x86 archive import";; + *) win32_libid_type="x86 archive static";; + esac + fi + ;; + *DLL*) + win32_libid_type="x86 DLL" + ;; + *executable*) # but shell scripts are "executable" too... + case $win32_fileres in + *MS\ Windows\ PE\ Intel*) + win32_libid_type="x86 DLL" + ;; + esac + ;; + esac + $ECHO "$win32_libid_type" +} + +# func_cygming_dll_for_implib ARG +# +# Platform-specific function to extract the +# name of the DLL associated with the specified +# import library ARG. +# Invoked by eval'ing the libtool variable +# $sharedlib_from_linklib_cmd +# Result is available in the variable +# $sharedlib_from_linklib_result +func_cygming_dll_for_implib () +{ + $opt_debug + sharedlib_from_linklib_result=`$DLLTOOL --identify-strict --identify "$1"` +} + +# func_cygming_dll_for_implib_fallback_core SECTION_NAME LIBNAMEs +# +# The is the core of a fallback implementation of a +# platform-specific function to extract the name of the +# DLL associated with the specified import library LIBNAME. +# +# SECTION_NAME is either .idata$6 or .idata$7, depending +# on the platform and compiler that created the implib. +# +# Echos the name of the DLL associated with the +# specified import library. +func_cygming_dll_for_implib_fallback_core () +{ + $opt_debug + match_literal=`$ECHO "$1" | $SED "$sed_make_literal_regex"` + $OBJDUMP -s --section "$1" "$2" 2>/dev/null | + $SED '/^Contents of section '"$match_literal"':/{ + # Place marker at beginning of archive member dllname section + s/.*/====MARK====/ + p + d + } + # These lines can sometimes be longer than 43 characters, but + # are always uninteresting + /:[ ]*file format pe[i]\{,1\}-/d + /^In archive [^:]*:/d + # Ensure marker is printed + /^====MARK====/p + # Remove all lines with less than 43 characters + /^.\{43\}/!d + # From remaining lines, remove first 43 characters + s/^.\{43\}//' | + $SED -n ' + # Join marker and all lines until next marker into a single line + /^====MARK====/ b para + H + $ b para + b + :para + x + s/\n//g + # Remove the marker + s/^====MARK====// + # Remove trailing dots and whitespace + s/[\. \t]*$// + # Print + /./p' | + # we now have a list, one entry per line, of the stringified + # contents of the appropriate section of all members of the + # archive which possess that section. Heuristic: eliminate + # all those which have a first or second character that is + # a '.' (that is, objdump's representation of an unprintable + # character.) This should work for all archives with less than + # 0x302f exports -- but will fail for DLLs whose name actually + # begins with a literal '.' or a single character followed by + # a '.'. + # + # Of those that remain, print the first one. + $SED -e '/^\./d;/^.\./d;q' +} + +# func_cygming_gnu_implib_p ARG +# This predicate returns with zero status (TRUE) if +# ARG is a GNU/binutils-style import library. Returns +# with nonzero status (FALSE) otherwise. +func_cygming_gnu_implib_p () +{ + $opt_debug + func_to_tool_file "$1" func_convert_file_msys_to_w32 + func_cygming_gnu_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $EGREP ' (_head_[A-Za-z0-9_]+_[ad]l*|[A-Za-z0-9_]+_[ad]l*_iname)$'` + test -n "$func_cygming_gnu_implib_tmp" +} + +# func_cygming_ms_implib_p ARG +# This predicate returns with zero status (TRUE) if +# ARG is an MS-style import library. Returns +# with nonzero status (FALSE) otherwise. +func_cygming_ms_implib_p () +{ + $opt_debug + func_to_tool_file "$1" func_convert_file_msys_to_w32 + func_cygming_ms_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $GREP '_NULL_IMPORT_DESCRIPTOR'` + test -n "$func_cygming_ms_implib_tmp" +} + +# func_cygming_dll_for_implib_fallback ARG +# Platform-specific function to extract the +# name of the DLL associated with the specified +# import library ARG. +# +# This fallback implementation is for use when $DLLTOOL +# does not support the --identify-strict option. +# Invoked by eval'ing the libtool variable +# $sharedlib_from_linklib_cmd +# Result is available in the variable +# $sharedlib_from_linklib_result +func_cygming_dll_for_implib_fallback () +{ + $opt_debug + if func_cygming_gnu_implib_p "$1" ; then + # binutils import library + sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$7' "$1"` + elif func_cygming_ms_implib_p "$1" ; then + # ms-generated import library + sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$6' "$1"` + else + # unknown + sharedlib_from_linklib_result="" + fi +} + + +# func_extract_an_archive dir oldlib +func_extract_an_archive () +{ + $opt_debug + f_ex_an_ar_dir="$1"; shift + f_ex_an_ar_oldlib="$1" + if test "$lock_old_archive_extraction" = yes; then + lockfile=$f_ex_an_ar_oldlib.lock + until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do + func_echo "Waiting for $lockfile to be removed" + sleep 2 + done + fi + func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" \ + 'stat=$?; rm -f "$lockfile"; exit $stat' + if test "$lock_old_archive_extraction" = yes; then + $opt_dry_run || rm -f "$lockfile" + fi + if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then + : + else + func_fatal_error "object name conflicts in archive: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" + fi +} + + +# func_extract_archives gentop oldlib ... +func_extract_archives () +{ + $opt_debug + my_gentop="$1"; shift + my_oldlibs=${1+"$@"} + my_oldobjs="" + my_xlib="" + my_xabs="" + my_xdir="" + + for my_xlib in $my_oldlibs; do + # Extract the objects. + case $my_xlib in + [\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;; + *) my_xabs=`pwd`"/$my_xlib" ;; + esac + func_basename "$my_xlib" + my_xlib="$func_basename_result" + my_xlib_u=$my_xlib + while :; do + case " $extracted_archives " in + *" $my_xlib_u "*) + func_arith $extracted_serial + 1 + extracted_serial=$func_arith_result + my_xlib_u=lt$extracted_serial-$my_xlib ;; + *) break ;; + esac + done + extracted_archives="$extracted_archives $my_xlib_u" + my_xdir="$my_gentop/$my_xlib_u" + + func_mkdir_p "$my_xdir" + + case $host in + *-darwin*) + func_verbose "Extracting $my_xabs" + # Do not bother doing anything if just a dry run + $opt_dry_run || { + darwin_orig_dir=`pwd` + cd $my_xdir || exit $? + darwin_archive=$my_xabs + darwin_curdir=`pwd` + darwin_base_archive=`basename "$darwin_archive"` + darwin_arches=`$LIPO -info "$darwin_archive" 2>/dev/null | $GREP Architectures 2>/dev/null || true` + if test -n "$darwin_arches"; then + darwin_arches=`$ECHO "$darwin_arches" | $SED -e 's/.*are://'` + darwin_arch= + func_verbose "$darwin_base_archive has multiple architectures $darwin_arches" + for darwin_arch in $darwin_arches ; do + func_mkdir_p "unfat-$$/${darwin_base_archive}-${darwin_arch}" + $LIPO -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}" + cd "unfat-$$/${darwin_base_archive}-${darwin_arch}" + func_extract_an_archive "`pwd`" "${darwin_base_archive}" + cd "$darwin_curdir" + $RM "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" + done # $darwin_arches + ## Okay now we've a bunch of thin objects, gotta fatten them up :) + darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print | $SED -e "$basename" | sort -u` + darwin_file= + darwin_files= + for darwin_file in $darwin_filelist; do + darwin_files=`find unfat-$$ -name $darwin_file -print | sort | $NL2SP` + $LIPO -create -output "$darwin_file" $darwin_files + done # $darwin_filelist + $RM -rf unfat-$$ + cd "$darwin_orig_dir" + else + cd $darwin_orig_dir + func_extract_an_archive "$my_xdir" "$my_xabs" + fi # $darwin_arches + } # !$opt_dry_run + ;; + *) + func_extract_an_archive "$my_xdir" "$my_xabs" + ;; + esac + my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | sort | $NL2SP` + done + + func_extract_archives_result="$my_oldobjs" +} + + +# func_emit_wrapper [arg=no] +# +# Emit a libtool wrapper script on stdout. +# Don't directly open a file because we may want to +# incorporate the script contents within a cygwin/mingw +# wrapper executable. Must ONLY be called from within +# func_mode_link because it depends on a number of variables +# set therein. +# +# ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR +# variable will take. If 'yes', then the emitted script +# will assume that the directory in which it is stored is +# the $objdir directory. This is a cygwin/mingw-specific +# behavior. +func_emit_wrapper () +{ + func_emit_wrapper_arg1=${1-no} + + $ECHO "\ +#! $SHELL + +# $output - temporary wrapper script for $objdir/$outputname +# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION +# +# The $output program cannot be directly executed until all the libtool +# libraries that it depends on are installed. +# +# This wrapper script should never be moved out of the build directory. +# If it is, it will not operate correctly. + +# Sed substitution that helps us do robust quoting. It backslashifies +# metacharacters that are still active within double-quoted strings. +sed_quote_subst='$sed_quote_subst' + +# Be Bourne compatible +if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then + emulate sh + NULLCMD=: + # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which + # is contrary to our usage. Disable this feature. + alias -g '\${1+\"\$@\"}'='\"\$@\"' + setopt NO_GLOB_SUBST +else + case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac +fi +BIN_SH=xpg4; export BIN_SH # for Tru64 +DUALCASE=1; export DUALCASE # for MKS sh + +# The HP-UX ksh and POSIX shell print the target directory to stdout +# if CDPATH is set. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +relink_command=\"$relink_command\" + +# This environment variable determines our operation mode. +if test \"\$libtool_install_magic\" = \"$magic\"; then + # install mode needs the following variables: + generated_by_libtool_version='$macro_version' + notinst_deplibs='$notinst_deplibs' +else + # When we are sourced in execute mode, \$file and \$ECHO are already set. + if test \"\$libtool_execute_magic\" != \"$magic\"; then + file=\"\$0\"" + + qECHO=`$ECHO "$ECHO" | $SED "$sed_quote_subst"` + $ECHO "\ + +# A function that is used when there is no print builtin or printf. +func_fallback_echo () +{ + eval 'cat <<_LTECHO_EOF +\$1 +_LTECHO_EOF' +} + ECHO=\"$qECHO\" + fi + +# Very basic option parsing. These options are (a) specific to +# the libtool wrapper, (b) are identical between the wrapper +# /script/ and the wrapper /executable/ which is used only on +# windows platforms, and (c) all begin with the string "--lt-" +# (application programs are unlikely to have options which match +# this pattern). +# +# There are only two supported options: --lt-debug and +# --lt-dump-script. There is, deliberately, no --lt-help. +# +# The first argument to this parsing function should be the +# script's $0 value, followed by "$@". +lt_option_debug= +func_parse_lt_options () +{ + lt_script_arg0=\$0 + shift + for lt_opt + do + case \"\$lt_opt\" in + --lt-debug) lt_option_debug=1 ;; + --lt-dump-script) + lt_dump_D=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%/[^/]*$%%'\` + test \"X\$lt_dump_D\" = \"X\$lt_script_arg0\" && lt_dump_D=. + lt_dump_F=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%^.*/%%'\` + cat \"\$lt_dump_D/\$lt_dump_F\" + exit 0 + ;; + --lt-*) + \$ECHO \"Unrecognized --lt- option: '\$lt_opt'\" 1>&2 + exit 1 + ;; + esac + done + + # Print the debug banner immediately: + if test -n \"\$lt_option_debug\"; then + echo \"${outputname}:${output}:\${LINENO}: libtool wrapper (GNU $PACKAGE$TIMESTAMP) $VERSION\" 1>&2 + fi +} + +# Used when --lt-debug. Prints its arguments to stdout +# (redirection is the responsibility of the caller) +func_lt_dump_args () +{ + lt_dump_args_N=1; + for lt_arg + do + \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[\$lt_dump_args_N]: \$lt_arg\" + lt_dump_args_N=\`expr \$lt_dump_args_N + 1\` + done +} + +# Core function for launching the target application +func_exec_program_core () +{ +" + case $host in + # Backslashes separate directories on plain windows + *-*-mingw | *-*-os2* | *-cegcc*) + $ECHO "\ + if test -n \"\$lt_option_debug\"; then + \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir\\\\\$program\" 1>&2 + func_lt_dump_args \${1+\"\$@\"} 1>&2 + fi + exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} +" + ;; + + *) + $ECHO "\ + if test -n \"\$lt_option_debug\"; then + \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir/\$program\" 1>&2 + func_lt_dump_args \${1+\"\$@\"} 1>&2 + fi + exec \"\$progdir/\$program\" \${1+\"\$@\"} +" + ;; + esac + $ECHO "\ + \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2 + exit 1 +} + +# A function to encapsulate launching the target application +# Strips options in the --lt-* namespace from \$@ and +# launches target application with the remaining arguments. +func_exec_program () +{ + case \" \$* \" in + *\\ --lt-*) + for lt_wr_arg + do + case \$lt_wr_arg in + --lt-*) ;; + *) set x \"\$@\" \"\$lt_wr_arg\"; shift;; + esac + shift + done ;; + esac + func_exec_program_core \${1+\"\$@\"} +} + + # Parse options + func_parse_lt_options \"\$0\" \${1+\"\$@\"} + + # Find the directory that this script lives in. + thisdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*$%%'\` + test \"x\$thisdir\" = \"x\$file\" && thisdir=. + + # Follow symbolic links until we get to the real thisdir. + file=\`ls -ld \"\$file\" | $SED -n 's/.*-> //p'\` + while test -n \"\$file\"; do + destdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*\$%%'\` + + # If there was a directory component, then change thisdir. + if test \"x\$destdir\" != \"x\$file\"; then + case \"\$destdir\" in + [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;; + *) thisdir=\"\$thisdir/\$destdir\" ;; + esac + fi + + file=\`\$ECHO \"\$file\" | $SED 's%^.*/%%'\` + file=\`ls -ld \"\$thisdir/\$file\" | $SED -n 's/.*-> //p'\` + done + + # Usually 'no', except on cygwin/mingw when embedded into + # the cwrapper. + WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_arg1 + if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then + # special case for '.' + if test \"\$thisdir\" = \".\"; then + thisdir=\`pwd\` + fi + # remove .libs from thisdir + case \"\$thisdir\" in + *[\\\\/]$objdir ) thisdir=\`\$ECHO \"\$thisdir\" | $SED 's%[\\\\/][^\\\\/]*$%%'\` ;; + $objdir ) thisdir=. ;; + esac + fi + + # Try to get the absolute directory name. + absdir=\`cd \"\$thisdir\" && pwd\` + test -n \"\$absdir\" && thisdir=\"\$absdir\" +" + + if test "$fast_install" = yes; then + $ECHO "\ + program=lt-'$outputname'$exeext + progdir=\"\$thisdir/$objdir\" + + if test ! -f \"\$progdir/\$program\" || + { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\ + test \"X\$file\" != \"X\$progdir/\$program\"; }; then + + file=\"\$\$-\$program\" + + if test ! -d \"\$progdir\"; then + $MKDIR \"\$progdir\" + else + $RM \"\$progdir/\$file\" + fi" + + $ECHO "\ + + # relink executable if necessary + if test -n \"\$relink_command\"; then + if relink_command_output=\`eval \$relink_command 2>&1\`; then : + else + $ECHO \"\$relink_command_output\" >&2 + $RM \"\$progdir/\$file\" + exit 1 + fi + fi + + $MV \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null || + { $RM \"\$progdir/\$program\"; + $MV \"\$progdir/\$file\" \"\$progdir/\$program\"; } + $RM \"\$progdir/\$file\" + fi" + else + $ECHO "\ + program='$outputname' + progdir=\"\$thisdir/$objdir\" +" + fi + + $ECHO "\ + + if test -f \"\$progdir/\$program\"; then" + + # fixup the dll searchpath if we need to. + # + # Fix the DLL searchpath if we need to. Do this before prepending + # to shlibpath, because on Windows, both are PATH and uninstalled + # libraries must come first. + if test -n "$dllsearchpath"; then + $ECHO "\ + # Add the dll search path components to the executable PATH + PATH=$dllsearchpath:\$PATH +" + fi + + # Export our shlibpath_var if we have one. + if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then + $ECHO "\ + # Add our own library path to $shlibpath_var + $shlibpath_var=\"$temp_rpath\$$shlibpath_var\" + + # Some systems cannot cope with colon-terminated $shlibpath_var + # The second colon is a workaround for a bug in BeOS R4 sed + $shlibpath_var=\`\$ECHO \"\$$shlibpath_var\" | $SED 's/::*\$//'\` + + export $shlibpath_var +" + fi + + $ECHO "\ + if test \"\$libtool_execute_magic\" != \"$magic\"; then + # Run the actual program with our arguments. + func_exec_program \${1+\"\$@\"} + fi + else + # The program doesn't exist. + \$ECHO \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2 + \$ECHO \"This script is just a wrapper for \$program.\" 1>&2 + \$ECHO \"See the $PACKAGE documentation for more information.\" 1>&2 + exit 1 + fi +fi\ +" +} + + +# func_emit_cwrapperexe_src +# emit the source code for a wrapper executable on stdout +# Must ONLY be called from within func_mode_link because +# it depends on a number of variable set therein. +func_emit_cwrapperexe_src () +{ + cat < +#include +#ifdef _MSC_VER +# include +# include +# include +#else +# include +# include +# ifdef __CYGWIN__ +# include +# endif +#endif +#include +#include +#include +#include +#include +#include +#include +#include + +/* declarations of non-ANSI functions */ +#if defined(__MINGW32__) +# ifdef __STRICT_ANSI__ +int _putenv (const char *); +# endif +#elif defined(__CYGWIN__) +# ifdef __STRICT_ANSI__ +char *realpath (const char *, char *); +int putenv (char *); +int setenv (const char *, const char *, int); +# endif +/* #elif defined (other platforms) ... */ +#endif + +/* portability defines, excluding path handling macros */ +#if defined(_MSC_VER) +# define setmode _setmode +# define stat _stat +# define chmod _chmod +# define getcwd _getcwd +# define putenv _putenv +# define S_IXUSR _S_IEXEC +# ifndef _INTPTR_T_DEFINED +# define _INTPTR_T_DEFINED +# define intptr_t int +# endif +#elif defined(__MINGW32__) +# define setmode _setmode +# define stat _stat +# define chmod _chmod +# define getcwd _getcwd +# define putenv _putenv +#elif defined(__CYGWIN__) +# define HAVE_SETENV +# define FOPEN_WB "wb" +/* #elif defined (other platforms) ... */ +#endif + +#if defined(PATH_MAX) +# define LT_PATHMAX PATH_MAX +#elif defined(MAXPATHLEN) +# define LT_PATHMAX MAXPATHLEN +#else +# define LT_PATHMAX 1024 +#endif + +#ifndef S_IXOTH +# define S_IXOTH 0 +#endif +#ifndef S_IXGRP +# define S_IXGRP 0 +#endif + +/* path handling portability macros */ +#ifndef DIR_SEPARATOR +# define DIR_SEPARATOR '/' +# define PATH_SEPARATOR ':' +#endif + +#if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \ + defined (__OS2__) +# define HAVE_DOS_BASED_FILE_SYSTEM +# define FOPEN_WB "wb" +# ifndef DIR_SEPARATOR_2 +# define DIR_SEPARATOR_2 '\\' +# endif +# ifndef PATH_SEPARATOR_2 +# define PATH_SEPARATOR_2 ';' +# endif +#endif + +#ifndef DIR_SEPARATOR_2 +# define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR) +#else /* DIR_SEPARATOR_2 */ +# define IS_DIR_SEPARATOR(ch) \ + (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2)) +#endif /* DIR_SEPARATOR_2 */ + +#ifndef PATH_SEPARATOR_2 +# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR) +#else /* PATH_SEPARATOR_2 */ +# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2) +#endif /* PATH_SEPARATOR_2 */ + +#ifndef FOPEN_WB +# define FOPEN_WB "w" +#endif +#ifndef _O_BINARY +# define _O_BINARY 0 +#endif + +#define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type))) +#define XFREE(stale) do { \ + if (stale) { free ((void *) stale); stale = 0; } \ +} while (0) + +#if defined(LT_DEBUGWRAPPER) +static int lt_debug = 1; +#else +static int lt_debug = 0; +#endif + +const char *program_name = "libtool-wrapper"; /* in case xstrdup fails */ + +void *xmalloc (size_t num); +char *xstrdup (const char *string); +const char *base_name (const char *name); +char *find_executable (const char *wrapper); +char *chase_symlinks (const char *pathspec); +int make_executable (const char *path); +int check_executable (const char *path); +char *strendzap (char *str, const char *pat); +void lt_debugprintf (const char *file, int line, const char *fmt, ...); +void lt_fatal (const char *file, int line, const char *message, ...); +static const char *nonnull (const char *s); +static const char *nonempty (const char *s); +void lt_setenv (const char *name, const char *value); +char *lt_extend_str (const char *orig_value, const char *add, int to_end); +void lt_update_exe_path (const char *name, const char *value); +void lt_update_lib_path (const char *name, const char *value); +char **prepare_spawn (char **argv); +void lt_dump_script (FILE *f); +EOF + + cat <= 0) + && (st.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH))) + return 1; + else + return 0; +} + +int +make_executable (const char *path) +{ + int rval = 0; + struct stat st; + + lt_debugprintf (__FILE__, __LINE__, "(make_executable): %s\n", + nonempty (path)); + if ((!path) || (!*path)) + return 0; + + if (stat (path, &st) >= 0) + { + rval = chmod (path, st.st_mode | S_IXOTH | S_IXGRP | S_IXUSR); + } + return rval; +} + +/* Searches for the full path of the wrapper. Returns + newly allocated full path name if found, NULL otherwise + Does not chase symlinks, even on platforms that support them. +*/ +char * +find_executable (const char *wrapper) +{ + int has_slash = 0; + const char *p; + const char *p_next; + /* static buffer for getcwd */ + char tmp[LT_PATHMAX + 1]; + int tmp_len; + char *concat_name; + + lt_debugprintf (__FILE__, __LINE__, "(find_executable): %s\n", + nonempty (wrapper)); + + if ((wrapper == NULL) || (*wrapper == '\0')) + return NULL; + + /* Absolute path? */ +#if defined (HAVE_DOS_BASED_FILE_SYSTEM) + if (isalpha ((unsigned char) wrapper[0]) && wrapper[1] == ':') + { + concat_name = xstrdup (wrapper); + if (check_executable (concat_name)) + return concat_name; + XFREE (concat_name); + } + else + { +#endif + if (IS_DIR_SEPARATOR (wrapper[0])) + { + concat_name = xstrdup (wrapper); + if (check_executable (concat_name)) + return concat_name; + XFREE (concat_name); + } +#if defined (HAVE_DOS_BASED_FILE_SYSTEM) + } +#endif + + for (p = wrapper; *p; p++) + if (*p == '/') + { + has_slash = 1; + break; + } + if (!has_slash) + { + /* no slashes; search PATH */ + const char *path = getenv ("PATH"); + if (path != NULL) + { + for (p = path; *p; p = p_next) + { + const char *q; + size_t p_len; + for (q = p; *q; q++) + if (IS_PATH_SEPARATOR (*q)) + break; + p_len = q - p; + p_next = (*q == '\0' ? q : q + 1); + if (p_len == 0) + { + /* empty path: current directory */ + if (getcwd (tmp, LT_PATHMAX) == NULL) + lt_fatal (__FILE__, __LINE__, "getcwd failed: %s", + nonnull (strerror (errno))); + tmp_len = strlen (tmp); + concat_name = + XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); + memcpy (concat_name, tmp, tmp_len); + concat_name[tmp_len] = '/'; + strcpy (concat_name + tmp_len + 1, wrapper); + } + else + { + concat_name = + XMALLOC (char, p_len + 1 + strlen (wrapper) + 1); + memcpy (concat_name, p, p_len); + concat_name[p_len] = '/'; + strcpy (concat_name + p_len + 1, wrapper); + } + if (check_executable (concat_name)) + return concat_name; + XFREE (concat_name); + } + } + /* not found in PATH; assume curdir */ + } + /* Relative path | not found in path: prepend cwd */ + if (getcwd (tmp, LT_PATHMAX) == NULL) + lt_fatal (__FILE__, __LINE__, "getcwd failed: %s", + nonnull (strerror (errno))); + tmp_len = strlen (tmp); + concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); + memcpy (concat_name, tmp, tmp_len); + concat_name[tmp_len] = '/'; + strcpy (concat_name + tmp_len + 1, wrapper); + + if (check_executable (concat_name)) + return concat_name; + XFREE (concat_name); + return NULL; +} + +char * +chase_symlinks (const char *pathspec) +{ +#ifndef S_ISLNK + return xstrdup (pathspec); +#else + char buf[LT_PATHMAX]; + struct stat s; + char *tmp_pathspec = xstrdup (pathspec); + char *p; + int has_symlinks = 0; + while (strlen (tmp_pathspec) && !has_symlinks) + { + lt_debugprintf (__FILE__, __LINE__, + "checking path component for symlinks: %s\n", + tmp_pathspec); + if (lstat (tmp_pathspec, &s) == 0) + { + if (S_ISLNK (s.st_mode) != 0) + { + has_symlinks = 1; + break; + } + + /* search backwards for last DIR_SEPARATOR */ + p = tmp_pathspec + strlen (tmp_pathspec) - 1; + while ((p > tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) + p--; + if ((p == tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) + { + /* no more DIR_SEPARATORS left */ + break; + } + *p = '\0'; + } + else + { + lt_fatal (__FILE__, __LINE__, + "error accessing file \"%s\": %s", + tmp_pathspec, nonnull (strerror (errno))); + } + } + XFREE (tmp_pathspec); + + if (!has_symlinks) + { + return xstrdup (pathspec); + } + + tmp_pathspec = realpath (pathspec, buf); + if (tmp_pathspec == 0) + { + lt_fatal (__FILE__, __LINE__, + "could not follow symlinks for %s", pathspec); + } + return xstrdup (tmp_pathspec); +#endif +} + +char * +strendzap (char *str, const char *pat) +{ + size_t len, patlen; + + assert (str != NULL); + assert (pat != NULL); + + len = strlen (str); + patlen = strlen (pat); + + if (patlen <= len) + { + str += len - patlen; + if (strcmp (str, pat) == 0) + *str = '\0'; + } + return str; +} + +void +lt_debugprintf (const char *file, int line, const char *fmt, ...) +{ + va_list args; + if (lt_debug) + { + (void) fprintf (stderr, "%s:%s:%d: ", program_name, file, line); + va_start (args, fmt); + (void) vfprintf (stderr, fmt, args); + va_end (args); + } +} + +static void +lt_error_core (int exit_status, const char *file, + int line, const char *mode, + const char *message, va_list ap) +{ + fprintf (stderr, "%s:%s:%d: %s: ", program_name, file, line, mode); + vfprintf (stderr, message, ap); + fprintf (stderr, ".\n"); + + if (exit_status >= 0) + exit (exit_status); +} + +void +lt_fatal (const char *file, int line, const char *message, ...) +{ + va_list ap; + va_start (ap, message); + lt_error_core (EXIT_FAILURE, file, line, "FATAL", message, ap); + va_end (ap); +} + +static const char * +nonnull (const char *s) +{ + return s ? s : "(null)"; +} + +static const char * +nonempty (const char *s) +{ + return (s && !*s) ? "(empty)" : nonnull (s); +} + +void +lt_setenv (const char *name, const char *value) +{ + lt_debugprintf (__FILE__, __LINE__, + "(lt_setenv) setting '%s' to '%s'\n", + nonnull (name), nonnull (value)); + { +#ifdef HAVE_SETENV + /* always make a copy, for consistency with !HAVE_SETENV */ + char *str = xstrdup (value); + setenv (name, str, 1); +#else + int len = strlen (name) + 1 + strlen (value) + 1; + char *str = XMALLOC (char, len); + sprintf (str, "%s=%s", name, value); + if (putenv (str) != EXIT_SUCCESS) + { + XFREE (str); + } +#endif + } +} + +char * +lt_extend_str (const char *orig_value, const char *add, int to_end) +{ + char *new_value; + if (orig_value && *orig_value) + { + int orig_value_len = strlen (orig_value); + int add_len = strlen (add); + new_value = XMALLOC (char, add_len + orig_value_len + 1); + if (to_end) + { + strcpy (new_value, orig_value); + strcpy (new_value + orig_value_len, add); + } + else + { + strcpy (new_value, add); + strcpy (new_value + add_len, orig_value); + } + } + else + { + new_value = xstrdup (add); + } + return new_value; +} + +void +lt_update_exe_path (const char *name, const char *value) +{ + lt_debugprintf (__FILE__, __LINE__, + "(lt_update_exe_path) modifying '%s' by prepending '%s'\n", + nonnull (name), nonnull (value)); + + if (name && *name && value && *value) + { + char *new_value = lt_extend_str (getenv (name), value, 0); + /* some systems can't cope with a ':'-terminated path #' */ + int len = strlen (new_value); + while (((len = strlen (new_value)) > 0) && IS_PATH_SEPARATOR (new_value[len-1])) + { + new_value[len-1] = '\0'; + } + lt_setenv (name, new_value); + XFREE (new_value); + } +} + +void +lt_update_lib_path (const char *name, const char *value) +{ + lt_debugprintf (__FILE__, __LINE__, + "(lt_update_lib_path) modifying '%s' by prepending '%s'\n", + nonnull (name), nonnull (value)); + + if (name && *name && value && *value) + { + char *new_value = lt_extend_str (getenv (name), value, 0); + lt_setenv (name, new_value); + XFREE (new_value); + } +} + +EOF + case $host_os in + mingw*) + cat <<"EOF" + +/* Prepares an argument vector before calling spawn(). + Note that spawn() does not by itself call the command interpreter + (getenv ("COMSPEC") != NULL ? getenv ("COMSPEC") : + ({ OSVERSIONINFO v; v.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); + GetVersionEx(&v); + v.dwPlatformId == VER_PLATFORM_WIN32_NT; + }) ? "cmd.exe" : "command.com"). + Instead it simply concatenates the arguments, separated by ' ', and calls + CreateProcess(). We must quote the arguments since Win32 CreateProcess() + interprets characters like ' ', '\t', '\\', '"' (but not '<' and '>') in a + special way: + - Space and tab are interpreted as delimiters. They are not treated as + delimiters if they are surrounded by double quotes: "...". + - Unescaped double quotes are removed from the input. Their only effect is + that within double quotes, space and tab are treated like normal + characters. + - Backslashes not followed by double quotes are not special. + - But 2*n+1 backslashes followed by a double quote become + n backslashes followed by a double quote (n >= 0): + \" -> " + \\\" -> \" + \\\\\" -> \\" + */ +#define SHELL_SPECIAL_CHARS "\"\\ \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037" +#define SHELL_SPACE_CHARS " \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037" +char ** +prepare_spawn (char **argv) +{ + size_t argc; + char **new_argv; + size_t i; + + /* Count number of arguments. */ + for (argc = 0; argv[argc] != NULL; argc++) + ; + + /* Allocate new argument vector. */ + new_argv = XMALLOC (char *, argc + 1); + + /* Put quoted arguments into the new argument vector. */ + for (i = 0; i < argc; i++) + { + const char *string = argv[i]; + + if (string[0] == '\0') + new_argv[i] = xstrdup ("\"\""); + else if (strpbrk (string, SHELL_SPECIAL_CHARS) != NULL) + { + int quote_around = (strpbrk (string, SHELL_SPACE_CHARS) != NULL); + size_t length; + unsigned int backslashes; + const char *s; + char *quoted_string; + char *p; + + length = 0; + backslashes = 0; + if (quote_around) + length++; + for (s = string; *s != '\0'; s++) + { + char c = *s; + if (c == '"') + length += backslashes + 1; + length++; + if (c == '\\') + backslashes++; + else + backslashes = 0; + } + if (quote_around) + length += backslashes + 1; + + quoted_string = XMALLOC (char, length + 1); + + p = quoted_string; + backslashes = 0; + if (quote_around) + *p++ = '"'; + for (s = string; *s != '\0'; s++) + { + char c = *s; + if (c == '"') + { + unsigned int j; + for (j = backslashes + 1; j > 0; j--) + *p++ = '\\'; + } + *p++ = c; + if (c == '\\') + backslashes++; + else + backslashes = 0; + } + if (quote_around) + { + unsigned int j; + for (j = backslashes; j > 0; j--) + *p++ = '\\'; + *p++ = '"'; + } + *p = '\0'; + + new_argv[i] = quoted_string; + } + else + new_argv[i] = (char *) string; + } + new_argv[argc] = NULL; + + return new_argv; +} +EOF + ;; + esac + + cat <<"EOF" +void lt_dump_script (FILE* f) +{ +EOF + func_emit_wrapper yes | + $SED -n -e ' +s/^\(.\{79\}\)\(..*\)/\1\ +\2/ +h +s/\([\\"]\)/\\\1/g +s/$/\\n/ +s/\([^\n]*\).*/ fputs ("\1", f);/p +g +D' + cat <<"EOF" +} +EOF +} +# end: func_emit_cwrapperexe_src + +# func_win32_import_lib_p ARG +# True if ARG is an import lib, as indicated by $file_magic_cmd +func_win32_import_lib_p () +{ + $opt_debug + case `eval $file_magic_cmd \"\$1\" 2>/dev/null | $SED -e 10q` in + *import*) : ;; + *) false ;; + esac +} + +# func_mode_link arg... +func_mode_link () +{ + $opt_debug + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) + # It is impossible to link a dll without this setting, and + # we shouldn't force the makefile maintainer to figure out + # which system we are compiling for in order to pass an extra + # flag for every libtool invocation. + # allow_undefined=no + + # FIXME: Unfortunately, there are problems with the above when trying + # to make a dll which has undefined symbols, in which case not + # even a static library is built. For now, we need to specify + # -no-undefined on the libtool link line when we can be certain + # that all symbols are satisfied, otherwise we get a static library. + allow_undefined=yes + ;; + *) + allow_undefined=yes + ;; + esac + libtool_args=$nonopt + base_compile="$nonopt $@" + compile_command=$nonopt + finalize_command=$nonopt + + compile_rpath= + finalize_rpath= + compile_shlibpath= + finalize_shlibpath= + convenience= + old_convenience= + deplibs= + old_deplibs= + compiler_flags= + linker_flags= + dllsearchpath= + lib_search_path=`pwd` + inst_prefix_dir= + new_inherited_linker_flags= + + avoid_version=no + bindir= + dlfiles= + dlprefiles= + dlself=no + export_dynamic=no + export_symbols= + export_symbols_regex= + generated= + libobjs= + ltlibs= + module=no + no_install=no + objs= + non_pic_objects= + precious_files_regex= + prefer_static_libs=no + preload=no + prev= + prevarg= + release= + rpath= + xrpath= + perm_rpath= + temp_rpath= + thread_safe=no + vinfo= + vinfo_number=no + weak_libs= + single_module="${wl}-single_module" + func_infer_tag $base_compile + + # We need to know -static, to get the right output filenames. + for arg + do + case $arg in + -shared) + test "$build_libtool_libs" != yes && \ + func_fatal_configuration "can not build a shared library" + build_old_libs=no + break + ;; + -all-static | -static | -static-libtool-libs) + case $arg in + -all-static) + if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then + func_warning "complete static linking is impossible in this configuration" + fi + if test -n "$link_static_flag"; then + dlopen_self=$dlopen_self_static + fi + prefer_static_libs=yes + ;; + -static) + if test -z "$pic_flag" && test -n "$link_static_flag"; then + dlopen_self=$dlopen_self_static + fi + prefer_static_libs=built + ;; + -static-libtool-libs) + if test -z "$pic_flag" && test -n "$link_static_flag"; then + dlopen_self=$dlopen_self_static + fi + prefer_static_libs=yes + ;; + esac + build_libtool_libs=no + build_old_libs=yes + break + ;; + esac + done + + # See if our shared archives depend on static archives. + test -n "$old_archive_from_new_cmds" && build_old_libs=yes + + # Go through the arguments, transforming them on the way. + while test "$#" -gt 0; do + arg="$1" + shift + func_quote_for_eval "$arg" + qarg=$func_quote_for_eval_unquoted_result + func_append libtool_args " $func_quote_for_eval_result" + + # If the previous option needs an argument, assign it. + if test -n "$prev"; then + case $prev in + output) + func_append compile_command " @OUTPUT@" + func_append finalize_command " @OUTPUT@" + ;; + esac + + case $prev in + bindir) + bindir="$arg" + prev= + continue + ;; + dlfiles|dlprefiles) + if test "$preload" = no; then + # Add the symbol object into the linking commands. + func_append compile_command " @SYMFILE@" + func_append finalize_command " @SYMFILE@" + preload=yes + fi + case $arg in + *.la | *.lo) ;; # We handle these cases below. + force) + if test "$dlself" = no; then + dlself=needless + export_dynamic=yes + fi + prev= + continue + ;; + self) + if test "$prev" = dlprefiles; then + dlself=yes + elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then + dlself=yes + else + dlself=needless + export_dynamic=yes + fi + prev= + continue + ;; + *) + if test "$prev" = dlfiles; then + func_append dlfiles " $arg" + else + func_append dlprefiles " $arg" + fi + prev= + continue + ;; + esac + ;; + expsyms) + export_symbols="$arg" + test -f "$arg" \ + || func_fatal_error "symbol file \`$arg' does not exist" + prev= + continue + ;; + expsyms_regex) + export_symbols_regex="$arg" + prev= + continue + ;; + framework) + case $host in + *-*-darwin*) + case "$deplibs " in + *" $qarg.ltframework "*) ;; + *) func_append deplibs " $qarg.ltframework" # this is fixed later + ;; + esac + ;; + esac + prev= + continue + ;; + inst_prefix) + inst_prefix_dir="$arg" + prev= + continue + ;; + objectlist) + if test -f "$arg"; then + save_arg=$arg + moreargs= + for fil in `cat "$save_arg"` + do +# func_append moreargs " $fil" + arg=$fil + # A libtool-controlled object. + + # Check to see that this really is a libtool object. + if func_lalib_unsafe_p "$arg"; then + pic_object= + non_pic_object= + + # Read the .lo file + func_source "$arg" + + if test -z "$pic_object" || + test -z "$non_pic_object" || + test "$pic_object" = none && + test "$non_pic_object" = none; then + func_fatal_error "cannot find name of object for \`$arg'" + fi + + # Extract subdirectory from the argument. + func_dirname "$arg" "/" "" + xdir="$func_dirname_result" + + if test "$pic_object" != none; then + # Prepend the subdirectory the object is found in. + pic_object="$xdir$pic_object" + + if test "$prev" = dlfiles; then + if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then + func_append dlfiles " $pic_object" + prev= + continue + else + # If libtool objects are unsupported, then we need to preload. + prev=dlprefiles + fi + fi + + # CHECK ME: I think I busted this. -Ossama + if test "$prev" = dlprefiles; then + # Preload the old-style object. + func_append dlprefiles " $pic_object" + prev= + fi + + # A PIC object. + func_append libobjs " $pic_object" + arg="$pic_object" + fi + + # Non-PIC object. + if test "$non_pic_object" != none; then + # Prepend the subdirectory the object is found in. + non_pic_object="$xdir$non_pic_object" + + # A standard non-PIC object + func_append non_pic_objects " $non_pic_object" + if test -z "$pic_object" || test "$pic_object" = none ; then + arg="$non_pic_object" + fi + else + # If the PIC object exists, use it instead. + # $xdir was prepended to $pic_object above. + non_pic_object="$pic_object" + func_append non_pic_objects " $non_pic_object" + fi + else + # Only an error if not doing a dry-run. + if $opt_dry_run; then + # Extract subdirectory from the argument. + func_dirname "$arg" "/" "" + xdir="$func_dirname_result" + + func_lo2o "$arg" + pic_object=$xdir$objdir/$func_lo2o_result + non_pic_object=$xdir$func_lo2o_result + func_append libobjs " $pic_object" + func_append non_pic_objects " $non_pic_object" + else + func_fatal_error "\`$arg' is not a valid libtool object" + fi + fi + done + else + func_fatal_error "link input file \`$arg' does not exist" + fi + arg=$save_arg + prev= + continue + ;; + precious_regex) + precious_files_regex="$arg" + prev= + continue + ;; + release) + release="-$arg" + prev= + continue + ;; + rpath | xrpath) + # We need an absolute path. + case $arg in + [\\/]* | [A-Za-z]:[\\/]*) ;; + *) + func_fatal_error "only absolute run-paths are allowed" + ;; + esac + if test "$prev" = rpath; then + case "$rpath " in + *" $arg "*) ;; + *) func_append rpath " $arg" ;; + esac + else + case "$xrpath " in + *" $arg "*) ;; + *) func_append xrpath " $arg" ;; + esac + fi + prev= + continue + ;; + shrext) + shrext_cmds="$arg" + prev= + continue + ;; + weak) + func_append weak_libs " $arg" + prev= + continue + ;; + xcclinker) + func_append linker_flags " $qarg" + func_append compiler_flags " $qarg" + prev= + func_append compile_command " $qarg" + func_append finalize_command " $qarg" + continue + ;; + xcompiler) + func_append compiler_flags " $qarg" + prev= + func_append compile_command " $qarg" + func_append finalize_command " $qarg" + continue + ;; + xlinker) + func_append linker_flags " $qarg" + func_append compiler_flags " $wl$qarg" + prev= + func_append compile_command " $wl$qarg" + func_append finalize_command " $wl$qarg" + continue + ;; + *) + eval "$prev=\"\$arg\"" + prev= + continue + ;; + esac + fi # test -n "$prev" + + prevarg="$arg" + + case $arg in + -all-static) + if test -n "$link_static_flag"; then + # See comment for -static flag below, for more details. + func_append compile_command " $link_static_flag" + func_append finalize_command " $link_static_flag" + fi + continue + ;; + + -allow-undefined) + # FIXME: remove this flag sometime in the future. + func_fatal_error "\`-allow-undefined' must not be used because it is the default" + ;; + + -avoid-version) + avoid_version=yes + continue + ;; + + -bindir) + prev=bindir + continue + ;; + + -dlopen) + prev=dlfiles + continue + ;; + + -dlpreopen) + prev=dlprefiles + continue + ;; + + -export-dynamic) + export_dynamic=yes + continue + ;; + + -export-symbols | -export-symbols-regex) + if test -n "$export_symbols" || test -n "$export_symbols_regex"; then + func_fatal_error "more than one -exported-symbols argument is not allowed" + fi + if test "X$arg" = "X-export-symbols"; then + prev=expsyms + else + prev=expsyms_regex + fi + continue + ;; + + -framework) + prev=framework + continue + ;; + + -inst-prefix-dir) + prev=inst_prefix + continue + ;; + + # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:* + # so, if we see these flags be careful not to treat them like -L + -L[A-Z][A-Z]*:*) + case $with_gcc/$host in + no/*-*-irix* | /*-*-irix*) + func_append compile_command " $arg" + func_append finalize_command " $arg" + ;; + esac + continue + ;; + + -L*) + func_stripname "-L" '' "$arg" + if test -z "$func_stripname_result"; then + if test "$#" -gt 0; then + func_fatal_error "require no space between \`-L' and \`$1'" + else + func_fatal_error "need path for \`-L' option" + fi + fi + func_resolve_sysroot "$func_stripname_result" + dir=$func_resolve_sysroot_result + # We need an absolute path. + case $dir in + [\\/]* | [A-Za-z]:[\\/]*) ;; + *) + absdir=`cd "$dir" && pwd` + test -z "$absdir" && \ + func_fatal_error "cannot determine absolute directory name of \`$dir'" + dir="$absdir" + ;; + esac + case "$deplibs " in + *" -L$dir "* | *" $arg "*) + # Will only happen for absolute or sysroot arguments + ;; + *) + # Preserve sysroot, but never include relative directories + case $dir in + [\\/]* | [A-Za-z]:[\\/]* | =*) func_append deplibs " $arg" ;; + *) func_append deplibs " -L$dir" ;; + esac + func_append lib_search_path " $dir" + ;; + esac + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) + testbindir=`$ECHO "$dir" | $SED 's*/lib$*/bin*'` + case :$dllsearchpath: in + *":$dir:"*) ;; + ::) dllsearchpath=$dir;; + *) func_append dllsearchpath ":$dir";; + esac + case :$dllsearchpath: in + *":$testbindir:"*) ;; + ::) dllsearchpath=$testbindir;; + *) func_append dllsearchpath ":$testbindir";; + esac + ;; + esac + continue + ;; + + -l*) + if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc* | *-*-haiku*) + # These systems don't actually have a C or math library (as such) + continue + ;; + *-*-os2*) + # These systems don't actually have a C library (as such) + test "X$arg" = "X-lc" && continue + ;; + *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) + # Do not include libc due to us having libc/libc_r. + test "X$arg" = "X-lc" && continue + ;; + *-*-rhapsody* | *-*-darwin1.[012]) + # Rhapsody C and math libraries are in the System framework + func_append deplibs " System.ltframework" + continue + ;; + *-*-sco3.2v5* | *-*-sco5v6*) + # Causes problems with __ctype + test "X$arg" = "X-lc" && continue + ;; + *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) + # Compiler inserts libc in the correct place for threads to work + test "X$arg" = "X-lc" && continue + ;; + esac + elif test "X$arg" = "X-lc_r"; then + case $host in + *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) + # Do not include libc_r directly, use -pthread flag. + continue + ;; + esac + fi + func_append deplibs " $arg" + continue + ;; + + -module) + module=yes + continue + ;; + + # Tru64 UNIX uses -model [arg] to determine the layout of C++ + # classes, name mangling, and exception handling. + # Darwin uses the -arch flag to determine output architecture. + -model|-arch|-isysroot|--sysroot) + func_append compiler_flags " $arg" + func_append compile_command " $arg" + func_append finalize_command " $arg" + prev=xcompiler + continue + ;; + + -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \ + |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*) + func_append compiler_flags " $arg" + func_append compile_command " $arg" + func_append finalize_command " $arg" + case "$new_inherited_linker_flags " in + *" $arg "*) ;; + * ) func_append new_inherited_linker_flags " $arg" ;; + esac + continue + ;; + + -multi_module) + single_module="${wl}-multi_module" + continue + ;; + + -no-fast-install) + fast_install=no + continue + ;; + + -no-install) + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin* | *-cegcc*) + # The PATH hackery in wrapper scripts is required on Windows + # and Darwin in order for the loader to find any dlls it needs. + func_warning "\`-no-install' is ignored for $host" + func_warning "assuming \`-no-fast-install' instead" + fast_install=no + ;; + *) no_install=yes ;; + esac + continue + ;; + + -no-undefined) + allow_undefined=no + continue + ;; + + -objectlist) + prev=objectlist + continue + ;; + + -o) prev=output ;; + + -precious-files-regex) + prev=precious_regex + continue + ;; + + -release) + prev=release + continue + ;; + + -rpath) + prev=rpath + continue + ;; + + -R) + prev=xrpath + continue + ;; + + -R*) + func_stripname '-R' '' "$arg" + dir=$func_stripname_result + # We need an absolute path. + case $dir in + [\\/]* | [A-Za-z]:[\\/]*) ;; + =*) + func_stripname '=' '' "$dir" + dir=$lt_sysroot$func_stripname_result + ;; + *) + func_fatal_error "only absolute run-paths are allowed" + ;; + esac + case "$xrpath " in + *" $dir "*) ;; + *) func_append xrpath " $dir" ;; + esac + continue + ;; + + -shared) + # The effects of -shared are defined in a previous loop. + continue + ;; + + -shrext) + prev=shrext + continue + ;; + + -static | -static-libtool-libs) + # The effects of -static are defined in a previous loop. + # We used to do the same as -all-static on platforms that + # didn't have a PIC flag, but the assumption that the effects + # would be equivalent was wrong. It would break on at least + # Digital Unix and AIX. + continue + ;; + + -thread-safe) + thread_safe=yes + continue + ;; + + -version-info) + prev=vinfo + continue + ;; + + -version-number) + prev=vinfo + vinfo_number=yes + continue + ;; + + -weak) + prev=weak + continue + ;; + + -Wc,*) + func_stripname '-Wc,' '' "$arg" + args=$func_stripname_result + arg= + save_ifs="$IFS"; IFS=',' + for flag in $args; do + IFS="$save_ifs" + func_quote_for_eval "$flag" + func_append arg " $func_quote_for_eval_result" + func_append compiler_flags " $func_quote_for_eval_result" + done + IFS="$save_ifs" + func_stripname ' ' '' "$arg" + arg=$func_stripname_result + ;; + + -Wl,*) + func_stripname '-Wl,' '' "$arg" + args=$func_stripname_result + arg= + save_ifs="$IFS"; IFS=',' + for flag in $args; do + IFS="$save_ifs" + func_quote_for_eval "$flag" + func_append arg " $wl$func_quote_for_eval_result" + func_append compiler_flags " $wl$func_quote_for_eval_result" + func_append linker_flags " $func_quote_for_eval_result" + done + IFS="$save_ifs" + func_stripname ' ' '' "$arg" + arg=$func_stripname_result + ;; + + -Xcompiler) + prev=xcompiler + continue + ;; + + -Xlinker) + prev=xlinker + continue + ;; + + -XCClinker) + prev=xcclinker + continue + ;; + + # -msg_* for osf cc + -msg_*) + func_quote_for_eval "$arg" + arg="$func_quote_for_eval_result" + ;; + + # Flags to be passed through unchanged, with rationale: + # -64, -mips[0-9] enable 64-bit mode for the SGI compiler + # -r[0-9][0-9]* specify processor for the SGI compiler + # -xarch=*, -xtarget=* enable 64-bit mode for the Sun compiler + # +DA*, +DD* enable 64-bit mode for the HP compiler + # -q* compiler args for the IBM compiler + # -m*, -t[45]*, -txscale* architecture-specific flags for GCC + # -F/path path to uninstalled frameworks, gcc on darwin + # -p, -pg, --coverage, -fprofile-* profiling flags for GCC + # @file GCC response files + # -tp=* Portland pgcc target processor selection + # --sysroot=* for sysroot support + # -O*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization + -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \ + -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \ + -O*|-flto*|-fwhopr*|-fuse-linker-plugin) + func_quote_for_eval "$arg" + arg="$func_quote_for_eval_result" + func_append compile_command " $arg" + func_append finalize_command " $arg" + func_append compiler_flags " $arg" + continue + ;; + + # Some other compiler flag. + -* | +*) + func_quote_for_eval "$arg" + arg="$func_quote_for_eval_result" + ;; + + *.$objext) + # A standard object. + func_append objs " $arg" + ;; + + *.lo) + # A libtool-controlled object. + + # Check to see that this really is a libtool object. + if func_lalib_unsafe_p "$arg"; then + pic_object= + non_pic_object= + + # Read the .lo file + func_source "$arg" + + if test -z "$pic_object" || + test -z "$non_pic_object" || + test "$pic_object" = none && + test "$non_pic_object" = none; then + func_fatal_error "cannot find name of object for \`$arg'" + fi + + # Extract subdirectory from the argument. + func_dirname "$arg" "/" "" + xdir="$func_dirname_result" + + if test "$pic_object" != none; then + # Prepend the subdirectory the object is found in. + pic_object="$xdir$pic_object" + + if test "$prev" = dlfiles; then + if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then + func_append dlfiles " $pic_object" + prev= + continue + else + # If libtool objects are unsupported, then we need to preload. + prev=dlprefiles + fi + fi + + # CHECK ME: I think I busted this. -Ossama + if test "$prev" = dlprefiles; then + # Preload the old-style object. + func_append dlprefiles " $pic_object" + prev= + fi + + # A PIC object. + func_append libobjs " $pic_object" + arg="$pic_object" + fi + + # Non-PIC object. + if test "$non_pic_object" != none; then + # Prepend the subdirectory the object is found in. + non_pic_object="$xdir$non_pic_object" + + # A standard non-PIC object + func_append non_pic_objects " $non_pic_object" + if test -z "$pic_object" || test "$pic_object" = none ; then + arg="$non_pic_object" + fi + else + # If the PIC object exists, use it instead. + # $xdir was prepended to $pic_object above. + non_pic_object="$pic_object" + func_append non_pic_objects " $non_pic_object" + fi + else + # Only an error if not doing a dry-run. + if $opt_dry_run; then + # Extract subdirectory from the argument. + func_dirname "$arg" "/" "" + xdir="$func_dirname_result" + + func_lo2o "$arg" + pic_object=$xdir$objdir/$func_lo2o_result + non_pic_object=$xdir$func_lo2o_result + func_append libobjs " $pic_object" + func_append non_pic_objects " $non_pic_object" + else + func_fatal_error "\`$arg' is not a valid libtool object" + fi + fi + ;; + + *.$libext) + # An archive. + func_append deplibs " $arg" + func_append old_deplibs " $arg" + continue + ;; + + *.la) + # A libtool-controlled library. + + func_resolve_sysroot "$arg" + if test "$prev" = dlfiles; then + # This library was specified with -dlopen. + func_append dlfiles " $func_resolve_sysroot_result" + prev= + elif test "$prev" = dlprefiles; then + # The library was specified with -dlpreopen. + func_append dlprefiles " $func_resolve_sysroot_result" + prev= + else + func_append deplibs " $func_resolve_sysroot_result" + fi + continue + ;; + + # Some other compiler argument. + *) + # Unknown arguments in both finalize_command and compile_command need + # to be aesthetically quoted because they are evaled later. + func_quote_for_eval "$arg" + arg="$func_quote_for_eval_result" + ;; + esac # arg + + # Now actually substitute the argument into the commands. + if test -n "$arg"; then + func_append compile_command " $arg" + func_append finalize_command " $arg" + fi + done # argument parsing loop + + test -n "$prev" && \ + func_fatal_help "the \`$prevarg' option requires an argument" + + if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then + eval arg=\"$export_dynamic_flag_spec\" + func_append compile_command " $arg" + func_append finalize_command " $arg" + fi + + oldlibs= + # calculate the name of the file, without its directory + func_basename "$output" + outputname="$func_basename_result" + libobjs_save="$libobjs" + + if test -n "$shlibpath_var"; then + # get the directories listed in $shlibpath_var + eval shlib_search_path=\`\$ECHO \"\${$shlibpath_var}\" \| \$SED \'s/:/ /g\'\` + else + shlib_search_path= + fi + eval sys_lib_search_path=\"$sys_lib_search_path_spec\" + eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\" + + func_dirname "$output" "/" "" + output_objdir="$func_dirname_result$objdir" + func_to_tool_file "$output_objdir/" + tool_output_objdir=$func_to_tool_file_result + # Create the object directory. + func_mkdir_p "$output_objdir" + + # Determine the type of output + case $output in + "") + func_fatal_help "you must specify an output file" + ;; + *.$libext) linkmode=oldlib ;; + *.lo | *.$objext) linkmode=obj ;; + *.la) linkmode=lib ;; + *) linkmode=prog ;; # Anything else should be a program. + esac + + specialdeplibs= + + libs= + # Find all interdependent deplibs by searching for libraries + # that are linked more than once (e.g. -la -lb -la) + for deplib in $deplibs; do + if $opt_preserve_dup_deps ; then + case "$libs " in + *" $deplib "*) func_append specialdeplibs " $deplib" ;; + esac + fi + func_append libs " $deplib" + done + + if test "$linkmode" = lib; then + libs="$predeps $libs $compiler_lib_search_path $postdeps" + + # Compute libraries that are listed more than once in $predeps + # $postdeps and mark them as special (i.e., whose duplicates are + # not to be eliminated). + pre_post_deps= + if $opt_duplicate_compiler_generated_deps; then + for pre_post_dep in $predeps $postdeps; do + case "$pre_post_deps " in + *" $pre_post_dep "*) func_append specialdeplibs " $pre_post_deps" ;; + esac + func_append pre_post_deps " $pre_post_dep" + done + fi + pre_post_deps= + fi + + deplibs= + newdependency_libs= + newlib_search_path= + need_relink=no # whether we're linking any uninstalled libtool libraries + notinst_deplibs= # not-installed libtool libraries + notinst_path= # paths that contain not-installed libtool libraries + + case $linkmode in + lib) + passes="conv dlpreopen link" + for file in $dlfiles $dlprefiles; do + case $file in + *.la) ;; + *) + func_fatal_help "libraries can \`-dlopen' only libtool libraries: $file" + ;; + esac + done + ;; + prog) + compile_deplibs= + finalize_deplibs= + alldeplibs=no + newdlfiles= + newdlprefiles= + passes="conv scan dlopen dlpreopen link" + ;; + *) passes="conv" + ;; + esac + + for pass in $passes; do + # The preopen pass in lib mode reverses $deplibs; put it back here + # so that -L comes before libs that need it for instance... + if test "$linkmode,$pass" = "lib,link"; then + ## FIXME: Find the place where the list is rebuilt in the wrong + ## order, and fix it there properly + tmp_deplibs= + for deplib in $deplibs; do + tmp_deplibs="$deplib $tmp_deplibs" + done + deplibs="$tmp_deplibs" + fi + + if test "$linkmode,$pass" = "lib,link" || + test "$linkmode,$pass" = "prog,scan"; then + libs="$deplibs" + deplibs= + fi + if test "$linkmode" = prog; then + case $pass in + dlopen) libs="$dlfiles" ;; + dlpreopen) libs="$dlprefiles" ;; + link) + libs="$deplibs %DEPLIBS%" + test "X$link_all_deplibs" != Xno && libs="$libs $dependency_libs" + ;; + esac + fi + if test "$linkmode,$pass" = "lib,dlpreopen"; then + # Collect and forward deplibs of preopened libtool libs + for lib in $dlprefiles; do + # Ignore non-libtool-libs + dependency_libs= + func_resolve_sysroot "$lib" + case $lib in + *.la) func_source "$func_resolve_sysroot_result" ;; + esac + + # Collect preopened libtool deplibs, except any this library + # has declared as weak libs + for deplib in $dependency_libs; do + func_basename "$deplib" + deplib_base=$func_basename_result + case " $weak_libs " in + *" $deplib_base "*) ;; + *) func_append deplibs " $deplib" ;; + esac + done + done + libs="$dlprefiles" + fi + if test "$pass" = dlopen; then + # Collect dlpreopened libraries + save_deplibs="$deplibs" + deplibs= + fi + + for deplib in $libs; do + lib= + found=no + case $deplib in + -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \ + |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*) + if test "$linkmode,$pass" = "prog,link"; then + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + func_append compiler_flags " $deplib" + if test "$linkmode" = lib ; then + case "$new_inherited_linker_flags " in + *" $deplib "*) ;; + * ) func_append new_inherited_linker_flags " $deplib" ;; + esac + fi + fi + continue + ;; + -l*) + if test "$linkmode" != lib && test "$linkmode" != prog; then + func_warning "\`-l' is ignored for archives/objects" + continue + fi + func_stripname '-l' '' "$deplib" + name=$func_stripname_result + if test "$linkmode" = lib; then + searchdirs="$newlib_search_path $lib_search_path $compiler_lib_search_dirs $sys_lib_search_path $shlib_search_path" + else + searchdirs="$newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path" + fi + for searchdir in $searchdirs; do + for search_ext in .la $std_shrext .so .a; do + # Search the libtool library + lib="$searchdir/lib${name}${search_ext}" + if test -f "$lib"; then + if test "$search_ext" = ".la"; then + found=yes + else + found=no + fi + break 2 + fi + done + done + if test "$found" != yes; then + # deplib doesn't seem to be a libtool library + if test "$linkmode,$pass" = "prog,link"; then + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + deplibs="$deplib $deplibs" + test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" + fi + continue + else # deplib is a libtool library + # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib, + # We need to do some special things here, and not later. + if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then + case " $predeps $postdeps " in + *" $deplib "*) + if func_lalib_p "$lib"; then + library_names= + old_library= + func_source "$lib" + for l in $old_library $library_names; do + ll="$l" + done + if test "X$ll" = "X$old_library" ; then # only static version available + found=no + func_dirname "$lib" "" "." + ladir="$func_dirname_result" + lib=$ladir/$old_library + if test "$linkmode,$pass" = "prog,link"; then + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + deplibs="$deplib $deplibs" + test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" + fi + continue + fi + fi + ;; + *) ;; + esac + fi + fi + ;; # -l + *.ltframework) + if test "$linkmode,$pass" = "prog,link"; then + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + deplibs="$deplib $deplibs" + if test "$linkmode" = lib ; then + case "$new_inherited_linker_flags " in + *" $deplib "*) ;; + * ) func_append new_inherited_linker_flags " $deplib" ;; + esac + fi + fi + continue + ;; + -L*) + case $linkmode in + lib) + deplibs="$deplib $deplibs" + test "$pass" = conv && continue + newdependency_libs="$deplib $newdependency_libs" + func_stripname '-L' '' "$deplib" + func_resolve_sysroot "$func_stripname_result" + func_append newlib_search_path " $func_resolve_sysroot_result" + ;; + prog) + if test "$pass" = conv; then + deplibs="$deplib $deplibs" + continue + fi + if test "$pass" = scan; then + deplibs="$deplib $deplibs" + else + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + fi + func_stripname '-L' '' "$deplib" + func_resolve_sysroot "$func_stripname_result" + func_append newlib_search_path " $func_resolve_sysroot_result" + ;; + *) + func_warning "\`-L' is ignored for archives/objects" + ;; + esac # linkmode + continue + ;; # -L + -R*) + if test "$pass" = link; then + func_stripname '-R' '' "$deplib" + func_resolve_sysroot "$func_stripname_result" + dir=$func_resolve_sysroot_result + # Make sure the xrpath contains only unique directories. + case "$xrpath " in + *" $dir "*) ;; + *) func_append xrpath " $dir" ;; + esac + fi + deplibs="$deplib $deplibs" + continue + ;; + *.la) + func_resolve_sysroot "$deplib" + lib=$func_resolve_sysroot_result + ;; + *.$libext) + if test "$pass" = conv; then + deplibs="$deplib $deplibs" + continue + fi + case $linkmode in + lib) + # Linking convenience modules into shared libraries is allowed, + # but linking other static libraries is non-portable. + case " $dlpreconveniencelibs " in + *" $deplib "*) ;; + *) + valid_a_lib=no + case $deplibs_check_method in + match_pattern*) + set dummy $deplibs_check_method; shift + match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` + if eval "\$ECHO \"$deplib\"" 2>/dev/null | $SED 10q \ + | $EGREP "$match_pattern_regex" > /dev/null; then + valid_a_lib=yes + fi + ;; + pass_all) + valid_a_lib=yes + ;; + esac + if test "$valid_a_lib" != yes; then + echo + $ECHO "*** Warning: Trying to link with static lib archive $deplib." + echo "*** I have the capability to make that library automatically link in when" + echo "*** you link to this library. But I can only do this if you have a" + echo "*** shared version of the library, which you do not appear to have" + echo "*** because the file extensions .$libext of this argument makes me believe" + echo "*** that it is just a static archive that I should not use here." + else + echo + $ECHO "*** Warning: Linking the shared library $output against the" + $ECHO "*** static library $deplib is not portable!" + deplibs="$deplib $deplibs" + fi + ;; + esac + continue + ;; + prog) + if test "$pass" != link; then + deplibs="$deplib $deplibs" + else + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + fi + continue + ;; + esac # linkmode + ;; # *.$libext + *.lo | *.$objext) + if test "$pass" = conv; then + deplibs="$deplib $deplibs" + elif test "$linkmode" = prog; then + if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then + # If there is no dlopen support or we're linking statically, + # we need to preload. + func_append newdlprefiles " $deplib" + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + func_append newdlfiles " $deplib" + fi + fi + continue + ;; + %DEPLIBS%) + alldeplibs=yes + continue + ;; + esac # case $deplib + + if test "$found" = yes || test -f "$lib"; then : + else + func_fatal_error "cannot find the library \`$lib' or unhandled argument \`$deplib'" + fi + + # Check to see that this really is a libtool archive. + func_lalib_unsafe_p "$lib" \ + || func_fatal_error "\`$lib' is not a valid libtool archive" + + func_dirname "$lib" "" "." + ladir="$func_dirname_result" + + dlname= + dlopen= + dlpreopen= + libdir= + library_names= + old_library= + inherited_linker_flags= + # If the library was installed with an old release of libtool, + # it will not redefine variables installed, or shouldnotlink + installed=yes + shouldnotlink=no + avoidtemprpath= + + + # Read the .la file + func_source "$lib" + + # Convert "-framework foo" to "foo.ltframework" + if test -n "$inherited_linker_flags"; then + tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g'` + for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do + case " $new_inherited_linker_flags " in + *" $tmp_inherited_linker_flag "*) ;; + *) func_append new_inherited_linker_flags " $tmp_inherited_linker_flag";; + esac + done + fi + dependency_libs=`$ECHO " $dependency_libs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + if test "$linkmode,$pass" = "lib,link" || + test "$linkmode,$pass" = "prog,scan" || + { test "$linkmode" != prog && test "$linkmode" != lib; }; then + test -n "$dlopen" && func_append dlfiles " $dlopen" + test -n "$dlpreopen" && func_append dlprefiles " $dlpreopen" + fi + + if test "$pass" = conv; then + # Only check for convenience libraries + deplibs="$lib $deplibs" + if test -z "$libdir"; then + if test -z "$old_library"; then + func_fatal_error "cannot find name of link library for \`$lib'" + fi + # It is a libtool convenience library, so add in its objects. + func_append convenience " $ladir/$objdir/$old_library" + func_append old_convenience " $ladir/$objdir/$old_library" + tmp_libs= + for deplib in $dependency_libs; do + deplibs="$deplib $deplibs" + if $opt_preserve_dup_deps ; then + case "$tmp_libs " in + *" $deplib "*) func_append specialdeplibs " $deplib" ;; + esac + fi + func_append tmp_libs " $deplib" + done + elif test "$linkmode" != prog && test "$linkmode" != lib; then + func_fatal_error "\`$lib' is not a convenience library" + fi + continue + fi # $pass = conv + + + # Get the name of the library we link against. + linklib= + if test -n "$old_library" && + { test "$prefer_static_libs" = yes || + test "$prefer_static_libs,$installed" = "built,no"; }; then + linklib=$old_library + else + for l in $old_library $library_names; do + linklib="$l" + done + fi + if test -z "$linklib"; then + func_fatal_error "cannot find name of link library for \`$lib'" + fi + + # This library was specified with -dlopen. + if test "$pass" = dlopen; then + if test -z "$libdir"; then + func_fatal_error "cannot -dlopen a convenience library: \`$lib'" + fi + if test -z "$dlname" || + test "$dlopen_support" != yes || + test "$build_libtool_libs" = no; then + # If there is no dlname, no dlopen support or we're linking + # statically, we need to preload. We also need to preload any + # dependent libraries so libltdl's deplib preloader doesn't + # bomb out in the load deplibs phase. + func_append dlprefiles " $lib $dependency_libs" + else + func_append newdlfiles " $lib" + fi + continue + fi # $pass = dlopen + + # We need an absolute path. + case $ladir in + [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;; + *) + abs_ladir=`cd "$ladir" && pwd` + if test -z "$abs_ladir"; then + func_warning "cannot determine absolute directory name of \`$ladir'" + func_warning "passing it literally to the linker, although it might fail" + abs_ladir="$ladir" + fi + ;; + esac + func_basename "$lib" + laname="$func_basename_result" + + # Find the relevant object directory and library name. + if test "X$installed" = Xyes; then + if test ! -f "$lt_sysroot$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then + func_warning "library \`$lib' was moved." + dir="$ladir" + absdir="$abs_ladir" + libdir="$abs_ladir" + else + dir="$lt_sysroot$libdir" + absdir="$lt_sysroot$libdir" + fi + test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes + else + if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then + dir="$ladir" + absdir="$abs_ladir" + # Remove this search path later + func_append notinst_path " $abs_ladir" + else + dir="$ladir/$objdir" + absdir="$abs_ladir/$objdir" + # Remove this search path later + func_append notinst_path " $abs_ladir" + fi + fi # $installed = yes + func_stripname 'lib' '.la' "$laname" + name=$func_stripname_result + + # This library was specified with -dlpreopen. + if test "$pass" = dlpreopen; then + if test -z "$libdir" && test "$linkmode" = prog; then + func_fatal_error "only libraries may -dlpreopen a convenience library: \`$lib'" + fi + case "$host" in + # special handling for platforms with PE-DLLs. + *cygwin* | *mingw* | *cegcc* ) + # Linker will automatically link against shared library if both + # static and shared are present. Therefore, ensure we extract + # symbols from the import library if a shared library is present + # (otherwise, the dlopen module name will be incorrect). We do + # this by putting the import library name into $newdlprefiles. + # We recover the dlopen module name by 'saving' the la file + # name in a special purpose variable, and (later) extracting the + # dlname from the la file. + if test -n "$dlname"; then + func_tr_sh "$dir/$linklib" + eval "libfile_$func_tr_sh_result=\$abs_ladir/\$laname" + func_append newdlprefiles " $dir/$linklib" + else + func_append newdlprefiles " $dir/$old_library" + # Keep a list of preopened convenience libraries to check + # that they are being used correctly in the link pass. + test -z "$libdir" && \ + func_append dlpreconveniencelibs " $dir/$old_library" + fi + ;; + * ) + # Prefer using a static library (so that no silly _DYNAMIC symbols + # are required to link). + if test -n "$old_library"; then + func_append newdlprefiles " $dir/$old_library" + # Keep a list of preopened convenience libraries to check + # that they are being used correctly in the link pass. + test -z "$libdir" && \ + func_append dlpreconveniencelibs " $dir/$old_library" + # Otherwise, use the dlname, so that lt_dlopen finds it. + elif test -n "$dlname"; then + func_append newdlprefiles " $dir/$dlname" + else + func_append newdlprefiles " $dir/$linklib" + fi + ;; + esac + fi # $pass = dlpreopen + + if test -z "$libdir"; then + # Link the convenience library + if test "$linkmode" = lib; then + deplibs="$dir/$old_library $deplibs" + elif test "$linkmode,$pass" = "prog,link"; then + compile_deplibs="$dir/$old_library $compile_deplibs" + finalize_deplibs="$dir/$old_library $finalize_deplibs" + else + deplibs="$lib $deplibs" # used for prog,scan pass + fi + continue + fi + + + if test "$linkmode" = prog && test "$pass" != link; then + func_append newlib_search_path " $ladir" + deplibs="$lib $deplibs" + + linkalldeplibs=no + if test "$link_all_deplibs" != no || test -z "$library_names" || + test "$build_libtool_libs" = no; then + linkalldeplibs=yes + fi + + tmp_libs= + for deplib in $dependency_libs; do + case $deplib in + -L*) func_stripname '-L' '' "$deplib" + func_resolve_sysroot "$func_stripname_result" + func_append newlib_search_path " $func_resolve_sysroot_result" + ;; + esac + # Need to link against all dependency_libs? + if test "$linkalldeplibs" = yes; then + deplibs="$deplib $deplibs" + else + # Need to hardcode shared library paths + # or/and link against static libraries + newdependency_libs="$deplib $newdependency_libs" + fi + if $opt_preserve_dup_deps ; then + case "$tmp_libs " in + *" $deplib "*) func_append specialdeplibs " $deplib" ;; + esac + fi + func_append tmp_libs " $deplib" + done # for deplib + continue + fi # $linkmode = prog... + + if test "$linkmode,$pass" = "prog,link"; then + if test -n "$library_names" && + { { test "$prefer_static_libs" = no || + test "$prefer_static_libs,$installed" = "built,yes"; } || + test -z "$old_library"; }; then + # We need to hardcode the library path + if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then + # Make sure the rpath contains only unique directories. + case "$temp_rpath:" in + *"$absdir:"*) ;; + *) func_append temp_rpath "$absdir:" ;; + esac + fi + + # Hardcode the library path. + # Skip directories that are in the system default run-time + # search path. + case " $sys_lib_dlsearch_path " in + *" $absdir "*) ;; + *) + case "$compile_rpath " in + *" $absdir "*) ;; + *) func_append compile_rpath " $absdir" ;; + esac + ;; + esac + case " $sys_lib_dlsearch_path " in + *" $libdir "*) ;; + *) + case "$finalize_rpath " in + *" $libdir "*) ;; + *) func_append finalize_rpath " $libdir" ;; + esac + ;; + esac + fi # $linkmode,$pass = prog,link... + + if test "$alldeplibs" = yes && + { test "$deplibs_check_method" = pass_all || + { test "$build_libtool_libs" = yes && + test -n "$library_names"; }; }; then + # We only need to search for static libraries + continue + fi + fi + + link_static=no # Whether the deplib will be linked statically + use_static_libs=$prefer_static_libs + if test "$use_static_libs" = built && test "$installed" = yes; then + use_static_libs=no + fi + if test -n "$library_names" && + { test "$use_static_libs" = no || test -z "$old_library"; }; then + case $host in + *cygwin* | *mingw* | *cegcc*) + # No point in relinking DLLs because paths are not encoded + func_append notinst_deplibs " $lib" + need_relink=no + ;; + *) + if test "$installed" = no; then + func_append notinst_deplibs " $lib" + need_relink=yes + fi + ;; + esac + # This is a shared library + + # Warn about portability, can't link against -module's on some + # systems (darwin). Don't bleat about dlopened modules though! + dlopenmodule="" + for dlpremoduletest in $dlprefiles; do + if test "X$dlpremoduletest" = "X$lib"; then + dlopenmodule="$dlpremoduletest" + break + fi + done + if test -z "$dlopenmodule" && test "$shouldnotlink" = yes && test "$pass" = link; then + echo + if test "$linkmode" = prog; then + $ECHO "*** Warning: Linking the executable $output against the loadable module" + else + $ECHO "*** Warning: Linking the shared library $output against the loadable module" + fi + $ECHO "*** $linklib is not portable!" + fi + if test "$linkmode" = lib && + test "$hardcode_into_libs" = yes; then + # Hardcode the library path. + # Skip directories that are in the system default run-time + # search path. + case " $sys_lib_dlsearch_path " in + *" $absdir "*) ;; + *) + case "$compile_rpath " in + *" $absdir "*) ;; + *) func_append compile_rpath " $absdir" ;; + esac + ;; + esac + case " $sys_lib_dlsearch_path " in + *" $libdir "*) ;; + *) + case "$finalize_rpath " in + *" $libdir "*) ;; + *) func_append finalize_rpath " $libdir" ;; + esac + ;; + esac + fi + + if test -n "$old_archive_from_expsyms_cmds"; then + # figure out the soname + set dummy $library_names + shift + realname="$1" + shift + libname=`eval "\\$ECHO \"$libname_spec\""` + # use dlname if we got it. it's perfectly good, no? + if test -n "$dlname"; then + soname="$dlname" + elif test -n "$soname_spec"; then + # bleh windows + case $host in + *cygwin* | mingw* | *cegcc*) + func_arith $current - $age + major=$func_arith_result + versuffix="-$major" + ;; + esac + eval soname=\"$soname_spec\" + else + soname="$realname" + fi + + # Make a new name for the extract_expsyms_cmds to use + soroot="$soname" + func_basename "$soroot" + soname="$func_basename_result" + func_stripname 'lib' '.dll' "$soname" + newlib=libimp-$func_stripname_result.a + + # If the library has no export list, then create one now + if test -f "$output_objdir/$soname-def"; then : + else + func_verbose "extracting exported symbol list from \`$soname'" + func_execute_cmds "$extract_expsyms_cmds" 'exit $?' + fi + + # Create $newlib + if test -f "$output_objdir/$newlib"; then :; else + func_verbose "generating import library for \`$soname'" + func_execute_cmds "$old_archive_from_expsyms_cmds" 'exit $?' + fi + # make sure the library variables are pointing to the new library + dir=$output_objdir + linklib=$newlib + fi # test -n "$old_archive_from_expsyms_cmds" + + if test "$linkmode" = prog || test "$opt_mode" != relink; then + add_shlibpath= + add_dir= + add= + lib_linked=yes + case $hardcode_action in + immediate | unsupported) + if test "$hardcode_direct" = no; then + add="$dir/$linklib" + case $host in + *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;; + *-*-sysv4*uw2*) add_dir="-L$dir" ;; + *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \ + *-*-unixware7*) add_dir="-L$dir" ;; + *-*-darwin* ) + # if the lib is a (non-dlopened) module then we can not + # link against it, someone is ignoring the earlier warnings + if /usr/bin/file -L $add 2> /dev/null | + $GREP ": [^:]* bundle" >/dev/null ; then + if test "X$dlopenmodule" != "X$lib"; then + $ECHO "*** Warning: lib $linklib is a module, not a shared library" + if test -z "$old_library" ; then + echo + echo "*** And there doesn't seem to be a static archive available" + echo "*** The link will probably fail, sorry" + else + add="$dir/$old_library" + fi + elif test -n "$old_library"; then + add="$dir/$old_library" + fi + fi + esac + elif test "$hardcode_minus_L" = no; then + case $host in + *-*-sunos*) add_shlibpath="$dir" ;; + esac + add_dir="-L$dir" + add="-l$name" + elif test "$hardcode_shlibpath_var" = no; then + add_shlibpath="$dir" + add="-l$name" + else + lib_linked=no + fi + ;; + relink) + if test "$hardcode_direct" = yes && + test "$hardcode_direct_absolute" = no; then + add="$dir/$linklib" + elif test "$hardcode_minus_L" = yes; then + add_dir="-L$absdir" + # Try looking first in the location we're being installed to. + if test -n "$inst_prefix_dir"; then + case $libdir in + [\\/]*) + func_append add_dir " -L$inst_prefix_dir$libdir" + ;; + esac + fi + add="-l$name" + elif test "$hardcode_shlibpath_var" = yes; then + add_shlibpath="$dir" + add="-l$name" + else + lib_linked=no + fi + ;; + *) lib_linked=no ;; + esac + + if test "$lib_linked" != yes; then + func_fatal_configuration "unsupported hardcode properties" + fi + + if test -n "$add_shlibpath"; then + case :$compile_shlibpath: in + *":$add_shlibpath:"*) ;; + *) func_append compile_shlibpath "$add_shlibpath:" ;; + esac + fi + if test "$linkmode" = prog; then + test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs" + test -n "$add" && compile_deplibs="$add $compile_deplibs" + else + test -n "$add_dir" && deplibs="$add_dir $deplibs" + test -n "$add" && deplibs="$add $deplibs" + if test "$hardcode_direct" != yes && + test "$hardcode_minus_L" != yes && + test "$hardcode_shlibpath_var" = yes; then + case :$finalize_shlibpath: in + *":$libdir:"*) ;; + *) func_append finalize_shlibpath "$libdir:" ;; + esac + fi + fi + fi + + if test "$linkmode" = prog || test "$opt_mode" = relink; then + add_shlibpath= + add_dir= + add= + # Finalize command for both is simple: just hardcode it. + if test "$hardcode_direct" = yes && + test "$hardcode_direct_absolute" = no; then + add="$libdir/$linklib" + elif test "$hardcode_minus_L" = yes; then + add_dir="-L$libdir" + add="-l$name" + elif test "$hardcode_shlibpath_var" = yes; then + case :$finalize_shlibpath: in + *":$libdir:"*) ;; + *) func_append finalize_shlibpath "$libdir:" ;; + esac + add="-l$name" + elif test "$hardcode_automatic" = yes; then + if test -n "$inst_prefix_dir" && + test -f "$inst_prefix_dir$libdir/$linklib" ; then + add="$inst_prefix_dir$libdir/$linklib" + else + add="$libdir/$linklib" + fi + else + # We cannot seem to hardcode it, guess we'll fake it. + add_dir="-L$libdir" + # Try looking first in the location we're being installed to. + if test -n "$inst_prefix_dir"; then + case $libdir in + [\\/]*) + func_append add_dir " -L$inst_prefix_dir$libdir" + ;; + esac + fi + add="-l$name" + fi + + if test "$linkmode" = prog; then + test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs" + test -n "$add" && finalize_deplibs="$add $finalize_deplibs" + else + test -n "$add_dir" && deplibs="$add_dir $deplibs" + test -n "$add" && deplibs="$add $deplibs" + fi + fi + elif test "$linkmode" = prog; then + # Here we assume that one of hardcode_direct or hardcode_minus_L + # is not unsupported. This is valid on all known static and + # shared platforms. + if test "$hardcode_direct" != unsupported; then + test -n "$old_library" && linklib="$old_library" + compile_deplibs="$dir/$linklib $compile_deplibs" + finalize_deplibs="$dir/$linklib $finalize_deplibs" + else + compile_deplibs="-l$name -L$dir $compile_deplibs" + finalize_deplibs="-l$name -L$dir $finalize_deplibs" + fi + elif test "$build_libtool_libs" = yes; then + # Not a shared library + if test "$deplibs_check_method" != pass_all; then + # We're trying link a shared library against a static one + # but the system doesn't support it. + + # Just print a warning and add the library to dependency_libs so + # that the program can be linked against the static library. + echo + $ECHO "*** Warning: This system can not link to static lib archive $lib." + echo "*** I have the capability to make that library automatically link in when" + echo "*** you link to this library. But I can only do this if you have a" + echo "*** shared version of the library, which you do not appear to have." + if test "$module" = yes; then + echo "*** But as you try to build a module library, libtool will still create " + echo "*** a static module, that should work as long as the dlopening application" + echo "*** is linked with the -dlopen flag to resolve symbols at runtime." + if test -z "$global_symbol_pipe"; then + echo + echo "*** However, this would only work if libtool was able to extract symbol" + echo "*** lists from a program, using \`nm' or equivalent, but libtool could" + echo "*** not find such a program. So, this module is probably useless." + echo "*** \`nm' from GNU binutils and a full rebuild may help." + fi + if test "$build_old_libs" = no; then + build_libtool_libs=module + build_old_libs=yes + else + build_libtool_libs=no + fi + fi + else + deplibs="$dir/$old_library $deplibs" + link_static=yes + fi + fi # link shared/static library? + + if test "$linkmode" = lib; then + if test -n "$dependency_libs" && + { test "$hardcode_into_libs" != yes || + test "$build_old_libs" = yes || + test "$link_static" = yes; }; then + # Extract -R from dependency_libs + temp_deplibs= + for libdir in $dependency_libs; do + case $libdir in + -R*) func_stripname '-R' '' "$libdir" + temp_xrpath=$func_stripname_result + case " $xrpath " in + *" $temp_xrpath "*) ;; + *) func_append xrpath " $temp_xrpath";; + esac;; + *) func_append temp_deplibs " $libdir";; + esac + done + dependency_libs="$temp_deplibs" + fi + + func_append newlib_search_path " $absdir" + # Link against this library + test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs" + # ... and its dependency_libs + tmp_libs= + for deplib in $dependency_libs; do + newdependency_libs="$deplib $newdependency_libs" + case $deplib in + -L*) func_stripname '-L' '' "$deplib" + func_resolve_sysroot "$func_stripname_result";; + *) func_resolve_sysroot "$deplib" ;; + esac + if $opt_preserve_dup_deps ; then + case "$tmp_libs " in + *" $func_resolve_sysroot_result "*) + func_append specialdeplibs " $func_resolve_sysroot_result" ;; + esac + fi + func_append tmp_libs " $func_resolve_sysroot_result" + done + + if test "$link_all_deplibs" != no; then + # Add the search paths of all dependency libraries + for deplib in $dependency_libs; do + path= + case $deplib in + -L*) path="$deplib" ;; + *.la) + func_resolve_sysroot "$deplib" + deplib=$func_resolve_sysroot_result + func_dirname "$deplib" "" "." + dir=$func_dirname_result + # We need an absolute path. + case $dir in + [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;; + *) + absdir=`cd "$dir" && pwd` + if test -z "$absdir"; then + func_warning "cannot determine absolute directory name of \`$dir'" + absdir="$dir" + fi + ;; + esac + if $GREP "^installed=no" $deplib > /dev/null; then + case $host in + *-*-darwin*) + depdepl= + eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib` + if test -n "$deplibrary_names" ; then + for tmp in $deplibrary_names ; do + depdepl=$tmp + done + if test -f "$absdir/$objdir/$depdepl" ; then + depdepl="$absdir/$objdir/$depdepl" + darwin_install_name=`${OTOOL} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` + if test -z "$darwin_install_name"; then + darwin_install_name=`${OTOOL64} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` + fi + func_append compiler_flags " ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}" + func_append linker_flags " -dylib_file ${darwin_install_name}:${depdepl}" + path= + fi + fi + ;; + *) + path="-L$absdir/$objdir" + ;; + esac + else + eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` + test -z "$libdir" && \ + func_fatal_error "\`$deplib' is not a valid libtool archive" + test "$absdir" != "$libdir" && \ + func_warning "\`$deplib' seems to be moved" + + path="-L$absdir" + fi + ;; + esac + case " $deplibs " in + *" $path "*) ;; + *) deplibs="$path $deplibs" ;; + esac + done + fi # link_all_deplibs != no + fi # linkmode = lib + done # for deplib in $libs + if test "$pass" = link; then + if test "$linkmode" = "prog"; then + compile_deplibs="$new_inherited_linker_flags $compile_deplibs" + finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs" + else + compiler_flags="$compiler_flags "`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + fi + fi + dependency_libs="$newdependency_libs" + if test "$pass" = dlpreopen; then + # Link the dlpreopened libraries before other libraries + for deplib in $save_deplibs; do + deplibs="$deplib $deplibs" + done + fi + if test "$pass" != dlopen; then + if test "$pass" != conv; then + # Make sure lib_search_path contains only unique directories. + lib_search_path= + for dir in $newlib_search_path; do + case "$lib_search_path " in + *" $dir "*) ;; + *) func_append lib_search_path " $dir" ;; + esac + done + newlib_search_path= + fi + + if test "$linkmode,$pass" != "prog,link"; then + vars="deplibs" + else + vars="compile_deplibs finalize_deplibs" + fi + for var in $vars dependency_libs; do + # Add libraries to $var in reverse order + eval tmp_libs=\"\$$var\" + new_libs= + for deplib in $tmp_libs; do + # FIXME: Pedantically, this is the right thing to do, so + # that some nasty dependency loop isn't accidentally + # broken: + #new_libs="$deplib $new_libs" + # Pragmatically, this seems to cause very few problems in + # practice: + case $deplib in + -L*) new_libs="$deplib $new_libs" ;; + -R*) ;; + *) + # And here is the reason: when a library appears more + # than once as an explicit dependence of a library, or + # is implicitly linked in more than once by the + # compiler, it is considered special, and multiple + # occurrences thereof are not removed. Compare this + # with having the same library being listed as a + # dependency of multiple other libraries: in this case, + # we know (pedantically, we assume) the library does not + # need to be listed more than once, so we keep only the + # last copy. This is not always right, but it is rare + # enough that we require users that really mean to play + # such unportable linking tricks to link the library + # using -Wl,-lname, so that libtool does not consider it + # for duplicate removal. + case " $specialdeplibs " in + *" $deplib "*) new_libs="$deplib $new_libs" ;; + *) + case " $new_libs " in + *" $deplib "*) ;; + *) new_libs="$deplib $new_libs" ;; + esac + ;; + esac + ;; + esac + done + tmp_libs= + for deplib in $new_libs; do + case $deplib in + -L*) + case " $tmp_libs " in + *" $deplib "*) ;; + *) func_append tmp_libs " $deplib" ;; + esac + ;; + *) func_append tmp_libs " $deplib" ;; + esac + done + eval $var=\"$tmp_libs\" + done # for var + fi + # Last step: remove runtime libs from dependency_libs + # (they stay in deplibs) + tmp_libs= + for i in $dependency_libs ; do + case " $predeps $postdeps $compiler_lib_search_path " in + *" $i "*) + i="" + ;; + esac + if test -n "$i" ; then + func_append tmp_libs " $i" + fi + done + dependency_libs=$tmp_libs + done # for pass + if test "$linkmode" = prog; then + dlfiles="$newdlfiles" + fi + if test "$linkmode" = prog || test "$linkmode" = lib; then + dlprefiles="$newdlprefiles" + fi + + case $linkmode in + oldlib) + if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then + func_warning "\`-dlopen' is ignored for archives" + fi + + case " $deplibs" in + *\ -l* | *\ -L*) + func_warning "\`-l' and \`-L' are ignored for archives" ;; + esac + + test -n "$rpath" && \ + func_warning "\`-rpath' is ignored for archives" + + test -n "$xrpath" && \ + func_warning "\`-R' is ignored for archives" + + test -n "$vinfo" && \ + func_warning "\`-version-info/-version-number' is ignored for archives" + + test -n "$release" && \ + func_warning "\`-release' is ignored for archives" + + test -n "$export_symbols$export_symbols_regex" && \ + func_warning "\`-export-symbols' is ignored for archives" + + # Now set the variables for building old libraries. + build_libtool_libs=no + oldlibs="$output" + func_append objs "$old_deplibs" + ;; + + lib) + # Make sure we only generate libraries of the form `libNAME.la'. + case $outputname in + lib*) + func_stripname 'lib' '.la' "$outputname" + name=$func_stripname_result + eval shared_ext=\"$shrext_cmds\" + eval libname=\"$libname_spec\" + ;; + *) + test "$module" = no && \ + func_fatal_help "libtool library \`$output' must begin with \`lib'" + + if test "$need_lib_prefix" != no; then + # Add the "lib" prefix for modules if required + func_stripname '' '.la' "$outputname" + name=$func_stripname_result + eval shared_ext=\"$shrext_cmds\" + eval libname=\"$libname_spec\" + else + func_stripname '' '.la' "$outputname" + libname=$func_stripname_result + fi + ;; + esac + + if test -n "$objs"; then + if test "$deplibs_check_method" != pass_all; then + func_fatal_error "cannot build libtool library \`$output' from non-libtool objects on this host:$objs" + else + echo + $ECHO "*** Warning: Linking the shared library $output against the non-libtool" + $ECHO "*** objects $objs is not portable!" + func_append libobjs " $objs" + fi + fi + + test "$dlself" != no && \ + func_warning "\`-dlopen self' is ignored for libtool libraries" + + set dummy $rpath + shift + test "$#" -gt 1 && \ + func_warning "ignoring multiple \`-rpath's for a libtool library" + + install_libdir="$1" + + oldlibs= + if test -z "$rpath"; then + if test "$build_libtool_libs" = yes; then + # Building a libtool convenience library. + # Some compilers have problems with a `.al' extension so + # convenience libraries should have the same extension an + # archive normally would. + oldlibs="$output_objdir/$libname.$libext $oldlibs" + build_libtool_libs=convenience + build_old_libs=yes + fi + + test -n "$vinfo" && \ + func_warning "\`-version-info/-version-number' is ignored for convenience libraries" + + test -n "$release" && \ + func_warning "\`-release' is ignored for convenience libraries" + else + + # Parse the version information argument. + save_ifs="$IFS"; IFS=':' + set dummy $vinfo 0 0 0 + shift + IFS="$save_ifs" + + test -n "$7" && \ + func_fatal_help "too many parameters to \`-version-info'" + + # convert absolute version numbers to libtool ages + # this retains compatibility with .la files and attempts + # to make the code below a bit more comprehensible + + case $vinfo_number in + yes) + number_major="$1" + number_minor="$2" + number_revision="$3" + # + # There are really only two kinds -- those that + # use the current revision as the major version + # and those that subtract age and use age as + # a minor version. But, then there is irix + # which has an extra 1 added just for fun + # + case $version_type in + # correct linux to gnu/linux during the next big refactor + darwin|linux|osf|windows|none) + func_arith $number_major + $number_minor + current=$func_arith_result + age="$number_minor" + revision="$number_revision" + ;; + freebsd-aout|freebsd-elf|qnx|sunos) + current="$number_major" + revision="$number_minor" + age="0" + ;; + irix|nonstopux) + func_arith $number_major + $number_minor + current=$func_arith_result + age="$number_minor" + revision="$number_minor" + lt_irix_increment=no + ;; + *) + func_fatal_configuration "$modename: unknown library version type \`$version_type'" + ;; + esac + ;; + no) + current="$1" + revision="$2" + age="$3" + ;; + esac + + # Check that each of the things are valid numbers. + case $current in + 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; + *) + func_error "CURRENT \`$current' must be a nonnegative integer" + func_fatal_error "\`$vinfo' is not valid version information" + ;; + esac + + case $revision in + 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; + *) + func_error "REVISION \`$revision' must be a nonnegative integer" + func_fatal_error "\`$vinfo' is not valid version information" + ;; + esac + + case $age in + 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; + *) + func_error "AGE \`$age' must be a nonnegative integer" + func_fatal_error "\`$vinfo' is not valid version information" + ;; + esac + + if test "$age" -gt "$current"; then + func_error "AGE \`$age' is greater than the current interface number \`$current'" + func_fatal_error "\`$vinfo' is not valid version information" + fi + + # Calculate the version variables. + major= + versuffix= + verstring= + case $version_type in + none) ;; + + darwin) + # Like Linux, but with the current version available in + # verstring for coding it into the library header + func_arith $current - $age + major=.$func_arith_result + versuffix="$major.$age.$revision" + # Darwin ld doesn't like 0 for these options... + func_arith $current + 1 + minor_current=$func_arith_result + xlcverstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision" + verstring="-compatibility_version $minor_current -current_version $minor_current.$revision" + ;; + + freebsd-aout) + major=".$current" + versuffix=".$current.$revision"; + ;; + + freebsd-elf) + major=".$current" + versuffix=".$current" + ;; + + irix | nonstopux) + if test "X$lt_irix_increment" = "Xno"; then + func_arith $current - $age + else + func_arith $current - $age + 1 + fi + major=$func_arith_result + + case $version_type in + nonstopux) verstring_prefix=nonstopux ;; + *) verstring_prefix=sgi ;; + esac + verstring="$verstring_prefix$major.$revision" + + # Add in all the interfaces that we are compatible with. + loop=$revision + while test "$loop" -ne 0; do + func_arith $revision - $loop + iface=$func_arith_result + func_arith $loop - 1 + loop=$func_arith_result + verstring="$verstring_prefix$major.$iface:$verstring" + done + + # Before this point, $major must not contain `.'. + major=.$major + versuffix="$major.$revision" + ;; + + linux) # correct to gnu/linux during the next big refactor + func_arith $current - $age + major=.$func_arith_result + versuffix="$major.$age.$revision" + ;; + + osf) + func_arith $current - $age + major=.$func_arith_result + versuffix=".$current.$age.$revision" + verstring="$current.$age.$revision" + + # Add in all the interfaces that we are compatible with. + loop=$age + while test "$loop" -ne 0; do + func_arith $current - $loop + iface=$func_arith_result + func_arith $loop - 1 + loop=$func_arith_result + verstring="$verstring:${iface}.0" + done + + # Make executables depend on our current version. + func_append verstring ":${current}.0" + ;; + + qnx) + major=".$current" + versuffix=".$current" + ;; + + sunos) + major=".$current" + versuffix=".$current.$revision" + ;; + + windows) + # Use '-' rather than '.', since we only want one + # extension on DOS 8.3 filesystems. + func_arith $current - $age + major=$func_arith_result + versuffix="-$major" + ;; + + *) + func_fatal_configuration "unknown library version type \`$version_type'" + ;; + esac + + # Clear the version info if we defaulted, and they specified a release. + if test -z "$vinfo" && test -n "$release"; then + major= + case $version_type in + darwin) + # we can't check for "0.0" in archive_cmds due to quoting + # problems, so we reset it completely + verstring= + ;; + *) + verstring="0.0" + ;; + esac + if test "$need_version" = no; then + versuffix= + else + versuffix=".0.0" + fi + fi + + # Remove version info from name if versioning should be avoided + if test "$avoid_version" = yes && test "$need_version" = no; then + major= + versuffix= + verstring="" + fi + + # Check to see if the archive will have undefined symbols. + if test "$allow_undefined" = yes; then + if test "$allow_undefined_flag" = unsupported; then + func_warning "undefined symbols not allowed in $host shared libraries" + build_libtool_libs=no + build_old_libs=yes + fi + else + # Don't allow undefined symbols. + allow_undefined_flag="$no_undefined_flag" + fi + + fi + + func_generate_dlsyms "$libname" "$libname" "yes" + func_append libobjs " $symfileobj" + test "X$libobjs" = "X " && libobjs= + + if test "$opt_mode" != relink; then + # Remove our outputs, but don't remove object files since they + # may have been created when compiling PIC objects. + removelist= + tempremovelist=`$ECHO "$output_objdir/*"` + for p in $tempremovelist; do + case $p in + *.$objext | *.gcno) + ;; + $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*) + if test "X$precious_files_regex" != "X"; then + if $ECHO "$p" | $EGREP -e "$precious_files_regex" >/dev/null 2>&1 + then + continue + fi + fi + func_append removelist " $p" + ;; + *) ;; + esac + done + test -n "$removelist" && \ + func_show_eval "${RM}r \$removelist" + fi + + # Now set the variables for building old libraries. + if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then + func_append oldlibs " $output_objdir/$libname.$libext" + + # Transform .lo files to .o files. + oldobjs="$objs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; $lo2o" | $NL2SP` + fi + + # Eliminate all temporary directories. + #for path in $notinst_path; do + # lib_search_path=`$ECHO "$lib_search_path " | $SED "s% $path % %g"` + # deplibs=`$ECHO "$deplibs " | $SED "s% -L$path % %g"` + # dependency_libs=`$ECHO "$dependency_libs " | $SED "s% -L$path % %g"` + #done + + if test -n "$xrpath"; then + # If the user specified any rpath flags, then add them. + temp_xrpath= + for libdir in $xrpath; do + func_replace_sysroot "$libdir" + func_append temp_xrpath " -R$func_replace_sysroot_result" + case "$finalize_rpath " in + *" $libdir "*) ;; + *) func_append finalize_rpath " $libdir" ;; + esac + done + if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then + dependency_libs="$temp_xrpath $dependency_libs" + fi + fi + + # Make sure dlfiles contains only unique files that won't be dlpreopened + old_dlfiles="$dlfiles" + dlfiles= + for lib in $old_dlfiles; do + case " $dlprefiles $dlfiles " in + *" $lib "*) ;; + *) func_append dlfiles " $lib" ;; + esac + done + + # Make sure dlprefiles contains only unique files + old_dlprefiles="$dlprefiles" + dlprefiles= + for lib in $old_dlprefiles; do + case "$dlprefiles " in + *" $lib "*) ;; + *) func_append dlprefiles " $lib" ;; + esac + done + + if test "$build_libtool_libs" = yes; then + if test -n "$rpath"; then + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc* | *-*-haiku*) + # these systems don't actually have a c library (as such)! + ;; + *-*-rhapsody* | *-*-darwin1.[012]) + # Rhapsody C library is in the System framework + func_append deplibs " System.ltframework" + ;; + *-*-netbsd*) + # Don't link with libc until the a.out ld.so is fixed. + ;; + *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) + # Do not include libc due to us having libc/libc_r. + ;; + *-*-sco3.2v5* | *-*-sco5v6*) + # Causes problems with __ctype + ;; + *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) + # Compiler inserts libc in the correct place for threads to work + ;; + *) + # Add libc to deplibs on all other systems if necessary. + if test "$build_libtool_need_lc" = "yes"; then + func_append deplibs " -lc" + fi + ;; + esac + fi + + # Transform deplibs into only deplibs that can be linked in shared. + name_save=$name + libname_save=$libname + release_save=$release + versuffix_save=$versuffix + major_save=$major + # I'm not sure if I'm treating the release correctly. I think + # release should show up in the -l (ie -lgmp5) so we don't want to + # add it in twice. Is that correct? + release="" + versuffix="" + major="" + newdeplibs= + droppeddeps=no + case $deplibs_check_method in + pass_all) + # Don't check for shared/static. Everything works. + # This might be a little naive. We might want to check + # whether the library exists or not. But this is on + # osf3 & osf4 and I'm not really sure... Just + # implementing what was already the behavior. + newdeplibs=$deplibs + ;; + test_compile) + # This code stresses the "libraries are programs" paradigm to its + # limits. Maybe even breaks it. We compile a program, linking it + # against the deplibs as a proxy for the library. Then we can check + # whether they linked in statically or dynamically with ldd. + $opt_dry_run || $RM conftest.c + cat > conftest.c </dev/null` + $nocaseglob + else + potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null` + fi + for potent_lib in $potential_libs; do + # Follow soft links. + if ls -lLd "$potent_lib" 2>/dev/null | + $GREP " -> " >/dev/null; then + continue + fi + # The statement above tries to avoid entering an + # endless loop below, in case of cyclic links. + # We might still enter an endless loop, since a link + # loop can be closed while we follow links, + # but so what? + potlib="$potent_lib" + while test -h "$potlib" 2>/dev/null; do + potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'` + case $potliblink in + [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";; + *) potlib=`$ECHO "$potlib" | $SED 's,[^/]*$,,'`"$potliblink";; + esac + done + if eval $file_magic_cmd \"\$potlib\" 2>/dev/null | + $SED -e 10q | + $EGREP "$file_magic_regex" > /dev/null; then + func_append newdeplibs " $a_deplib" + a_deplib="" + break 2 + fi + done + done + fi + if test -n "$a_deplib" ; then + droppeddeps=yes + echo + $ECHO "*** Warning: linker path does not have real file for library $a_deplib." + echo "*** I have the capability to make that library automatically link in when" + echo "*** you link to this library. But I can only do this if you have a" + echo "*** shared version of the library, which you do not appear to have" + echo "*** because I did check the linker path looking for a file starting" + if test -z "$potlib" ; then + $ECHO "*** with $libname but no candidates were found. (...for file magic test)" + else + $ECHO "*** with $libname and none of the candidates passed a file format test" + $ECHO "*** using a file magic. Last file checked: $potlib" + fi + fi + ;; + *) + # Add a -L argument. + func_append newdeplibs " $a_deplib" + ;; + esac + done # Gone through all deplibs. + ;; + match_pattern*) + set dummy $deplibs_check_method; shift + match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` + for a_deplib in $deplibs; do + case $a_deplib in + -l*) + func_stripname -l '' "$a_deplib" + name=$func_stripname_result + if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then + case " $predeps $postdeps " in + *" $a_deplib "*) + func_append newdeplibs " $a_deplib" + a_deplib="" + ;; + esac + fi + if test -n "$a_deplib" ; then + libname=`eval "\\$ECHO \"$libname_spec\""` + for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do + potential_libs=`ls $i/$libname[.-]* 2>/dev/null` + for potent_lib in $potential_libs; do + potlib="$potent_lib" # see symlink-check above in file_magic test + if eval "\$ECHO \"$potent_lib\"" 2>/dev/null | $SED 10q | \ + $EGREP "$match_pattern_regex" > /dev/null; then + func_append newdeplibs " $a_deplib" + a_deplib="" + break 2 + fi + done + done + fi + if test -n "$a_deplib" ; then + droppeddeps=yes + echo + $ECHO "*** Warning: linker path does not have real file for library $a_deplib." + echo "*** I have the capability to make that library automatically link in when" + echo "*** you link to this library. But I can only do this if you have a" + echo "*** shared version of the library, which you do not appear to have" + echo "*** because I did check the linker path looking for a file starting" + if test -z "$potlib" ; then + $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)" + else + $ECHO "*** with $libname and none of the candidates passed a file format test" + $ECHO "*** using a regex pattern. Last file checked: $potlib" + fi + fi + ;; + *) + # Add a -L argument. + func_append newdeplibs " $a_deplib" + ;; + esac + done # Gone through all deplibs. + ;; + none | unknown | *) + newdeplibs="" + tmp_deplibs=`$ECHO " $deplibs" | $SED 's/ -lc$//; s/ -[LR][^ ]*//g'` + if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then + for i in $predeps $postdeps ; do + # can't use Xsed below, because $i might contain '/' + tmp_deplibs=`$ECHO " $tmp_deplibs" | $SED "s,$i,,"` + done + fi + case $tmp_deplibs in + *[!\ \ ]*) + echo + if test "X$deplibs_check_method" = "Xnone"; then + echo "*** Warning: inter-library dependencies are not supported in this platform." + else + echo "*** Warning: inter-library dependencies are not known to be supported." + fi + echo "*** All declared inter-library dependencies are being dropped." + droppeddeps=yes + ;; + esac + ;; + esac + versuffix=$versuffix_save + major=$major_save + release=$release_save + libname=$libname_save + name=$name_save + + case $host in + *-*-rhapsody* | *-*-darwin1.[012]) + # On Rhapsody replace the C library with the System framework + newdeplibs=`$ECHO " $newdeplibs" | $SED 's/ -lc / System.ltframework /'` + ;; + esac + + if test "$droppeddeps" = yes; then + if test "$module" = yes; then + echo + echo "*** Warning: libtool could not satisfy all declared inter-library" + $ECHO "*** dependencies of module $libname. Therefore, libtool will create" + echo "*** a static module, that should work as long as the dlopening" + echo "*** application is linked with the -dlopen flag." + if test -z "$global_symbol_pipe"; then + echo + echo "*** However, this would only work if libtool was able to extract symbol" + echo "*** lists from a program, using \`nm' or equivalent, but libtool could" + echo "*** not find such a program. So, this module is probably useless." + echo "*** \`nm' from GNU binutils and a full rebuild may help." + fi + if test "$build_old_libs" = no; then + oldlibs="$output_objdir/$libname.$libext" + build_libtool_libs=module + build_old_libs=yes + else + build_libtool_libs=no + fi + else + echo "*** The inter-library dependencies that have been dropped here will be" + echo "*** automatically added whenever a program is linked with this library" + echo "*** or is declared to -dlopen it." + + if test "$allow_undefined" = no; then + echo + echo "*** Since this library must not contain undefined symbols," + echo "*** because either the platform does not support them or" + echo "*** it was explicitly requested with -no-undefined," + echo "*** libtool will only create a static version of it." + if test "$build_old_libs" = no; then + oldlibs="$output_objdir/$libname.$libext" + build_libtool_libs=module + build_old_libs=yes + else + build_libtool_libs=no + fi + fi + fi + fi + # Done checking deplibs! + deplibs=$newdeplibs + fi + # Time to change all our "foo.ltframework" stuff back to "-framework foo" + case $host in + *-*-darwin*) + newdeplibs=`$ECHO " $newdeplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + new_inherited_linker_flags=`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + deplibs=`$ECHO " $deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + ;; + esac + + # move library search paths that coincide with paths to not yet + # installed libraries to the beginning of the library search list + new_libs= + for path in $notinst_path; do + case " $new_libs " in + *" -L$path/$objdir "*) ;; + *) + case " $deplibs " in + *" -L$path/$objdir "*) + func_append new_libs " -L$path/$objdir" ;; + esac + ;; + esac + done + for deplib in $deplibs; do + case $deplib in + -L*) + case " $new_libs " in + *" $deplib "*) ;; + *) func_append new_libs " $deplib" ;; + esac + ;; + *) func_append new_libs " $deplib" ;; + esac + done + deplibs="$new_libs" + + # All the library-specific variables (install_libdir is set above). + library_names= + old_library= + dlname= + + # Test again, we may have decided not to build it any more + if test "$build_libtool_libs" = yes; then + # Remove ${wl} instances when linking with ld. + # FIXME: should test the right _cmds variable. + case $archive_cmds in + *\$LD\ *) wl= ;; + esac + if test "$hardcode_into_libs" = yes; then + # Hardcode the library paths + hardcode_libdirs= + dep_rpath= + rpath="$finalize_rpath" + test "$opt_mode" != relink && rpath="$compile_rpath$rpath" + for libdir in $rpath; do + if test -n "$hardcode_libdir_flag_spec"; then + if test -n "$hardcode_libdir_separator"; then + func_replace_sysroot "$libdir" + libdir=$func_replace_sysroot_result + if test -z "$hardcode_libdirs"; then + hardcode_libdirs="$libdir" + else + # Just accumulate the unique libdirs. + case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in + *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) + ;; + *) + func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" + ;; + esac + fi + else + eval flag=\"$hardcode_libdir_flag_spec\" + func_append dep_rpath " $flag" + fi + elif test -n "$runpath_var"; then + case "$perm_rpath " in + *" $libdir "*) ;; + *) func_append perm_rpath " $libdir" ;; + esac + fi + done + # Substitute the hardcoded libdirs into the rpath. + if test -n "$hardcode_libdir_separator" && + test -n "$hardcode_libdirs"; then + libdir="$hardcode_libdirs" + eval "dep_rpath=\"$hardcode_libdir_flag_spec\"" + fi + if test -n "$runpath_var" && test -n "$perm_rpath"; then + # We should set the runpath_var. + rpath= + for dir in $perm_rpath; do + func_append rpath "$dir:" + done + eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var" + fi + test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs" + fi + + shlibpath="$finalize_shlibpath" + test "$opt_mode" != relink && shlibpath="$compile_shlibpath$shlibpath" + if test -n "$shlibpath"; then + eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var" + fi + + # Get the real and link names of the library. + eval shared_ext=\"$shrext_cmds\" + eval library_names=\"$library_names_spec\" + set dummy $library_names + shift + realname="$1" + shift + + if test -n "$soname_spec"; then + eval soname=\"$soname_spec\" + else + soname="$realname" + fi + if test -z "$dlname"; then + dlname=$soname + fi + + lib="$output_objdir/$realname" + linknames= + for link + do + func_append linknames " $link" + done + + # Use standard objects if they are pic + test -z "$pic_flag" && libobjs=`$ECHO "$libobjs" | $SP2NL | $SED "$lo2o" | $NL2SP` + test "X$libobjs" = "X " && libobjs= + + delfiles= + if test -n "$export_symbols" && test -n "$include_expsyms"; then + $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp" + export_symbols="$output_objdir/$libname.uexp" + func_append delfiles " $export_symbols" + fi + + orig_export_symbols= + case $host_os in + cygwin* | mingw* | cegcc*) + if test -n "$export_symbols" && test -z "$export_symbols_regex"; then + # exporting using user supplied symfile + if test "x`$SED 1q $export_symbols`" != xEXPORTS; then + # and it's NOT already a .def file. Must figure out + # which of the given symbols are data symbols and tag + # them as such. So, trigger use of export_symbols_cmds. + # export_symbols gets reassigned inside the "prepare + # the list of exported symbols" if statement, so the + # include_expsyms logic still works. + orig_export_symbols="$export_symbols" + export_symbols= + always_export_symbols=yes + fi + fi + ;; + esac + + # Prepare the list of exported symbols + if test -z "$export_symbols"; then + if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then + func_verbose "generating symbol list for \`$libname.la'" + export_symbols="$output_objdir/$libname.exp" + $opt_dry_run || $RM $export_symbols + cmds=$export_symbols_cmds + save_ifs="$IFS"; IFS='~' + for cmd1 in $cmds; do + IFS="$save_ifs" + # Take the normal branch if the nm_file_list_spec branch + # doesn't work or if tool conversion is not needed. + case $nm_file_list_spec~$to_tool_file_cmd in + *~func_convert_file_noop | *~func_convert_file_msys_to_w32 | ~*) + try_normal_branch=yes + eval cmd=\"$cmd1\" + func_len " $cmd" + len=$func_len_result + ;; + *) + try_normal_branch=no + ;; + esac + if test "$try_normal_branch" = yes \ + && { test "$len" -lt "$max_cmd_len" \ + || test "$max_cmd_len" -le -1; } + then + func_show_eval "$cmd" 'exit $?' + skipped_export=false + elif test -n "$nm_file_list_spec"; then + func_basename "$output" + output_la=$func_basename_result + save_libobjs=$libobjs + save_output=$output + output=${output_objdir}/${output_la}.nm + func_to_tool_file "$output" + libobjs=$nm_file_list_spec$func_to_tool_file_result + func_append delfiles " $output" + func_verbose "creating $NM input file list: $output" + for obj in $save_libobjs; do + func_to_tool_file "$obj" + $ECHO "$func_to_tool_file_result" + done > "$output" + eval cmd=\"$cmd1\" + func_show_eval "$cmd" 'exit $?' + output=$save_output + libobjs=$save_libobjs + skipped_export=false + else + # The command line is too long to execute in one step. + func_verbose "using reloadable object file for export list..." + skipped_export=: + # Break out early, otherwise skipped_export may be + # set to false by a later but shorter cmd. + break + fi + done + IFS="$save_ifs" + if test -n "$export_symbols_regex" && test "X$skipped_export" != "X:"; then + func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' + func_show_eval '$MV "${export_symbols}T" "$export_symbols"' + fi + fi + fi + + if test -n "$export_symbols" && test -n "$include_expsyms"; then + tmp_export_symbols="$export_symbols" + test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" + $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"' + fi + + if test "X$skipped_export" != "X:" && test -n "$orig_export_symbols"; then + # The given exports_symbols file has to be filtered, so filter it. + func_verbose "filter symbol list for \`$libname.la' to tag DATA exports" + # FIXME: $output_objdir/$libname.filter potentially contains lots of + # 's' commands which not all seds can handle. GNU sed should be fine + # though. Also, the filter scales superlinearly with the number of + # global variables. join(1) would be nice here, but unfortunately + # isn't a blessed tool. + $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter + func_append delfiles " $export_symbols $output_objdir/$libname.filter" + export_symbols=$output_objdir/$libname.def + $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols + fi + + tmp_deplibs= + for test_deplib in $deplibs; do + case " $convenience " in + *" $test_deplib "*) ;; + *) + func_append tmp_deplibs " $test_deplib" + ;; + esac + done + deplibs="$tmp_deplibs" + + if test -n "$convenience"; then + if test -n "$whole_archive_flag_spec" && + test "$compiler_needs_object" = yes && + test -z "$libobjs"; then + # extract the archives, so we have objects to list. + # TODO: could optimize this to just extract one archive. + whole_archive_flag_spec= + fi + if test -n "$whole_archive_flag_spec"; then + save_libobjs=$libobjs + eval libobjs=\"\$libobjs $whole_archive_flag_spec\" + test "X$libobjs" = "X " && libobjs= + else + gentop="$output_objdir/${outputname}x" + func_append generated " $gentop" + + func_extract_archives $gentop $convenience + func_append libobjs " $func_extract_archives_result" + test "X$libobjs" = "X " && libobjs= + fi + fi + + if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then + eval flag=\"$thread_safe_flag_spec\" + func_append linker_flags " $flag" + fi + + # Make a backup of the uninstalled library when relinking + if test "$opt_mode" = relink; then + $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $? + fi + + # Do each of the archive commands. + if test "$module" = yes && test -n "$module_cmds" ; then + if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then + eval test_cmds=\"$module_expsym_cmds\" + cmds=$module_expsym_cmds + else + eval test_cmds=\"$module_cmds\" + cmds=$module_cmds + fi + else + if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then + eval test_cmds=\"$archive_expsym_cmds\" + cmds=$archive_expsym_cmds + else + eval test_cmds=\"$archive_cmds\" + cmds=$archive_cmds + fi + fi + + if test "X$skipped_export" != "X:" && + func_len " $test_cmds" && + len=$func_len_result && + test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then + : + else + # The command line is too long to link in one step, link piecewise + # or, if using GNU ld and skipped_export is not :, use a linker + # script. + + # Save the value of $output and $libobjs because we want to + # use them later. If we have whole_archive_flag_spec, we + # want to use save_libobjs as it was before + # whole_archive_flag_spec was expanded, because we can't + # assume the linker understands whole_archive_flag_spec. + # This may have to be revisited, in case too many + # convenience libraries get linked in and end up exceeding + # the spec. + if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then + save_libobjs=$libobjs + fi + save_output=$output + func_basename "$output" + output_la=$func_basename_result + + # Clear the reloadable object creation command queue and + # initialize k to one. + test_cmds= + concat_cmds= + objlist= + last_robj= + k=1 + + if test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "$with_gnu_ld" = yes; then + output=${output_objdir}/${output_la}.lnkscript + func_verbose "creating GNU ld script: $output" + echo 'INPUT (' > $output + for obj in $save_libobjs + do + func_to_tool_file "$obj" + $ECHO "$func_to_tool_file_result" >> $output + done + echo ')' >> $output + func_append delfiles " $output" + func_to_tool_file "$output" + output=$func_to_tool_file_result + elif test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "X$file_list_spec" != X; then + output=${output_objdir}/${output_la}.lnk + func_verbose "creating linker input file list: $output" + : > $output + set x $save_libobjs + shift + firstobj= + if test "$compiler_needs_object" = yes; then + firstobj="$1 " + shift + fi + for obj + do + func_to_tool_file "$obj" + $ECHO "$func_to_tool_file_result" >> $output + done + func_append delfiles " $output" + func_to_tool_file "$output" + output=$firstobj\"$file_list_spec$func_to_tool_file_result\" + else + if test -n "$save_libobjs"; then + func_verbose "creating reloadable object files..." + output=$output_objdir/$output_la-${k}.$objext + eval test_cmds=\"$reload_cmds\" + func_len " $test_cmds" + len0=$func_len_result + len=$len0 + + # Loop over the list of objects to be linked. + for obj in $save_libobjs + do + func_len " $obj" + func_arith $len + $func_len_result + len=$func_arith_result + if test "X$objlist" = X || + test "$len" -lt "$max_cmd_len"; then + func_append objlist " $obj" + else + # The command $test_cmds is almost too long, add a + # command to the queue. + if test "$k" -eq 1 ; then + # The first file doesn't have a previous command to add. + reload_objs=$objlist + eval concat_cmds=\"$reload_cmds\" + else + # All subsequent reloadable object files will link in + # the last one created. + reload_objs="$objlist $last_robj" + eval concat_cmds=\"\$concat_cmds~$reload_cmds~\$RM $last_robj\" + fi + last_robj=$output_objdir/$output_la-${k}.$objext + func_arith $k + 1 + k=$func_arith_result + output=$output_objdir/$output_la-${k}.$objext + objlist=" $obj" + func_len " $last_robj" + func_arith $len0 + $func_len_result + len=$func_arith_result + fi + done + # Handle the remaining objects by creating one last + # reloadable object file. All subsequent reloadable object + # files will link in the last one created. + test -z "$concat_cmds" || concat_cmds=$concat_cmds~ + reload_objs="$objlist $last_robj" + eval concat_cmds=\"\${concat_cmds}$reload_cmds\" + if test -n "$last_robj"; then + eval concat_cmds=\"\${concat_cmds}~\$RM $last_robj\" + fi + func_append delfiles " $output" + + else + output= + fi + + if ${skipped_export-false}; then + func_verbose "generating symbol list for \`$libname.la'" + export_symbols="$output_objdir/$libname.exp" + $opt_dry_run || $RM $export_symbols + libobjs=$output + # Append the command to create the export file. + test -z "$concat_cmds" || concat_cmds=$concat_cmds~ + eval concat_cmds=\"\$concat_cmds$export_symbols_cmds\" + if test -n "$last_robj"; then + eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\" + fi + fi + + test -n "$save_libobjs" && + func_verbose "creating a temporary reloadable object file: $output" + + # Loop through the commands generated above and execute them. + save_ifs="$IFS"; IFS='~' + for cmd in $concat_cmds; do + IFS="$save_ifs" + $opt_silent || { + func_quote_for_expand "$cmd" + eval "func_echo $func_quote_for_expand_result" + } + $opt_dry_run || eval "$cmd" || { + lt_exit=$? + + # Restore the uninstalled library and exit + if test "$opt_mode" = relink; then + ( cd "$output_objdir" && \ + $RM "${realname}T" && \ + $MV "${realname}U" "$realname" ) + fi + + exit $lt_exit + } + done + IFS="$save_ifs" + + if test -n "$export_symbols_regex" && ${skipped_export-false}; then + func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' + func_show_eval '$MV "${export_symbols}T" "$export_symbols"' + fi + fi + + if ${skipped_export-false}; then + if test -n "$export_symbols" && test -n "$include_expsyms"; then + tmp_export_symbols="$export_symbols" + test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" + $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"' + fi + + if test -n "$orig_export_symbols"; then + # The given exports_symbols file has to be filtered, so filter it. + func_verbose "filter symbol list for \`$libname.la' to tag DATA exports" + # FIXME: $output_objdir/$libname.filter potentially contains lots of + # 's' commands which not all seds can handle. GNU sed should be fine + # though. Also, the filter scales superlinearly with the number of + # global variables. join(1) would be nice here, but unfortunately + # isn't a blessed tool. + $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter + func_append delfiles " $export_symbols $output_objdir/$libname.filter" + export_symbols=$output_objdir/$libname.def + $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols + fi + fi + + libobjs=$output + # Restore the value of output. + output=$save_output + + if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then + eval libobjs=\"\$libobjs $whole_archive_flag_spec\" + test "X$libobjs" = "X " && libobjs= + fi + # Expand the library linking commands again to reset the + # value of $libobjs for piecewise linking. + + # Do each of the archive commands. + if test "$module" = yes && test -n "$module_cmds" ; then + if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then + cmds=$module_expsym_cmds + else + cmds=$module_cmds + fi + else + if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then + cmds=$archive_expsym_cmds + else + cmds=$archive_cmds + fi + fi + fi + + if test -n "$delfiles"; then + # Append the command to remove temporary files to $cmds. + eval cmds=\"\$cmds~\$RM $delfiles\" + fi + + # Add any objects from preloaded convenience libraries + if test -n "$dlprefiles"; then + gentop="$output_objdir/${outputname}x" + func_append generated " $gentop" + + func_extract_archives $gentop $dlprefiles + func_append libobjs " $func_extract_archives_result" + test "X$libobjs" = "X " && libobjs= + fi + + save_ifs="$IFS"; IFS='~' + for cmd in $cmds; do + IFS="$save_ifs" + eval cmd=\"$cmd\" + $opt_silent || { + func_quote_for_expand "$cmd" + eval "func_echo $func_quote_for_expand_result" + } + $opt_dry_run || eval "$cmd" || { + lt_exit=$? + + # Restore the uninstalled library and exit + if test "$opt_mode" = relink; then + ( cd "$output_objdir" && \ + $RM "${realname}T" && \ + $MV "${realname}U" "$realname" ) + fi + + exit $lt_exit + } + done + IFS="$save_ifs" + + # Restore the uninstalled library and exit + if test "$opt_mode" = relink; then + $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $? + + if test -n "$convenience"; then + if test -z "$whole_archive_flag_spec"; then + func_show_eval '${RM}r "$gentop"' + fi + fi + + exit $EXIT_SUCCESS + fi + + # Create links to the real library. + for linkname in $linknames; do + if test "$realname" != "$linkname"; then + func_show_eval '(cd "$output_objdir" && $RM "$linkname" && $LN_S "$realname" "$linkname")' 'exit $?' + fi + done + + # If -module or -export-dynamic was specified, set the dlname. + if test "$module" = yes || test "$export_dynamic" = yes; then + # On all known operating systems, these are identical. + dlname="$soname" + fi + fi + ;; + + obj) + if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then + func_warning "\`-dlopen' is ignored for objects" + fi + + case " $deplibs" in + *\ -l* | *\ -L*) + func_warning "\`-l' and \`-L' are ignored for objects" ;; + esac + + test -n "$rpath" && \ + func_warning "\`-rpath' is ignored for objects" + + test -n "$xrpath" && \ + func_warning "\`-R' is ignored for objects" + + test -n "$vinfo" && \ + func_warning "\`-version-info' is ignored for objects" + + test -n "$release" && \ + func_warning "\`-release' is ignored for objects" + + case $output in + *.lo) + test -n "$objs$old_deplibs" && \ + func_fatal_error "cannot build library object \`$output' from non-libtool objects" + + libobj=$output + func_lo2o "$libobj" + obj=$func_lo2o_result + ;; + *) + libobj= + obj="$output" + ;; + esac + + # Delete the old objects. + $opt_dry_run || $RM $obj $libobj + + # Objects from convenience libraries. This assumes + # single-version convenience libraries. Whenever we create + # different ones for PIC/non-PIC, this we'll have to duplicate + # the extraction. + reload_conv_objs= + gentop= + # reload_cmds runs $LD directly, so let us get rid of + # -Wl from whole_archive_flag_spec and hope we can get by with + # turning comma into space.. + wl= + + if test -n "$convenience"; then + if test -n "$whole_archive_flag_spec"; then + eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\" + reload_conv_objs=$reload_objs\ `$ECHO "$tmp_whole_archive_flags" | $SED 's|,| |g'` + else + gentop="$output_objdir/${obj}x" + func_append generated " $gentop" + + func_extract_archives $gentop $convenience + reload_conv_objs="$reload_objs $func_extract_archives_result" + fi + fi + + # If we're not building shared, we need to use non_pic_objs + test "$build_libtool_libs" != yes && libobjs="$non_pic_objects" + + # Create the old-style object. + reload_objs="$objs$old_deplibs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; /\.lib$/d; $lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test + + output="$obj" + func_execute_cmds "$reload_cmds" 'exit $?' + + # Exit if we aren't doing a library object file. + if test -z "$libobj"; then + if test -n "$gentop"; then + func_show_eval '${RM}r "$gentop"' + fi + + exit $EXIT_SUCCESS + fi + + if test "$build_libtool_libs" != yes; then + if test -n "$gentop"; then + func_show_eval '${RM}r "$gentop"' + fi + + # Create an invalid libtool object if no PIC, so that we don't + # accidentally link it into a program. + # $show "echo timestamp > $libobj" + # $opt_dry_run || eval "echo timestamp > $libobj" || exit $? + exit $EXIT_SUCCESS + fi + + if test -n "$pic_flag" || test "$pic_mode" != default; then + # Only do commands if we really have different PIC objects. + reload_objs="$libobjs $reload_conv_objs" + output="$libobj" + func_execute_cmds "$reload_cmds" 'exit $?' + fi + + if test -n "$gentop"; then + func_show_eval '${RM}r "$gentop"' + fi + + exit $EXIT_SUCCESS + ;; + + prog) + case $host in + *cygwin*) func_stripname '' '.exe' "$output" + output=$func_stripname_result.exe;; + esac + test -n "$vinfo" && \ + func_warning "\`-version-info' is ignored for programs" + + test -n "$release" && \ + func_warning "\`-release' is ignored for programs" + + test "$preload" = yes \ + && test "$dlopen_support" = unknown \ + && test "$dlopen_self" = unknown \ + && test "$dlopen_self_static" = unknown && \ + func_warning "\`LT_INIT([dlopen])' not used. Assuming no dlopen support." + + case $host in + *-*-rhapsody* | *-*-darwin1.[012]) + # On Rhapsody replace the C library is the System framework + compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's/ -lc / System.ltframework /'` + finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's/ -lc / System.ltframework /'` + ;; + esac + + case $host in + *-*-darwin*) + # Don't allow lazy linking, it breaks C++ global constructors + # But is supposedly fixed on 10.4 or later (yay!). + if test "$tagname" = CXX ; then + case ${MACOSX_DEPLOYMENT_TARGET-10.0} in + 10.[0123]) + func_append compile_command " ${wl}-bind_at_load" + func_append finalize_command " ${wl}-bind_at_load" + ;; + esac + fi + # Time to change all our "foo.ltframework" stuff back to "-framework foo" + compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + ;; + esac + + + # move library search paths that coincide with paths to not yet + # installed libraries to the beginning of the library search list + new_libs= + for path in $notinst_path; do + case " $new_libs " in + *" -L$path/$objdir "*) ;; + *) + case " $compile_deplibs " in + *" -L$path/$objdir "*) + func_append new_libs " -L$path/$objdir" ;; + esac + ;; + esac + done + for deplib in $compile_deplibs; do + case $deplib in + -L*) + case " $new_libs " in + *" $deplib "*) ;; + *) func_append new_libs " $deplib" ;; + esac + ;; + *) func_append new_libs " $deplib" ;; + esac + done + compile_deplibs="$new_libs" + + + func_append compile_command " $compile_deplibs" + func_append finalize_command " $finalize_deplibs" + + if test -n "$rpath$xrpath"; then + # If the user specified any rpath flags, then add them. + for libdir in $rpath $xrpath; do + # This is the magic to use -rpath. + case "$finalize_rpath " in + *" $libdir "*) ;; + *) func_append finalize_rpath " $libdir" ;; + esac + done + fi + + # Now hardcode the library paths + rpath= + hardcode_libdirs= + for libdir in $compile_rpath $finalize_rpath; do + if test -n "$hardcode_libdir_flag_spec"; then + if test -n "$hardcode_libdir_separator"; then + if test -z "$hardcode_libdirs"; then + hardcode_libdirs="$libdir" + else + # Just accumulate the unique libdirs. + case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in + *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) + ;; + *) + func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" + ;; + esac + fi + else + eval flag=\"$hardcode_libdir_flag_spec\" + func_append rpath " $flag" + fi + elif test -n "$runpath_var"; then + case "$perm_rpath " in + *" $libdir "*) ;; + *) func_append perm_rpath " $libdir" ;; + esac + fi + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) + testbindir=`${ECHO} "$libdir" | ${SED} -e 's*/lib$*/bin*'` + case :$dllsearchpath: in + *":$libdir:"*) ;; + ::) dllsearchpath=$libdir;; + *) func_append dllsearchpath ":$libdir";; + esac + case :$dllsearchpath: in + *":$testbindir:"*) ;; + ::) dllsearchpath=$testbindir;; + *) func_append dllsearchpath ":$testbindir";; + esac + ;; + esac + done + # Substitute the hardcoded libdirs into the rpath. + if test -n "$hardcode_libdir_separator" && + test -n "$hardcode_libdirs"; then + libdir="$hardcode_libdirs" + eval rpath=\" $hardcode_libdir_flag_spec\" + fi + compile_rpath="$rpath" + + rpath= + hardcode_libdirs= + for libdir in $finalize_rpath; do + if test -n "$hardcode_libdir_flag_spec"; then + if test -n "$hardcode_libdir_separator"; then + if test -z "$hardcode_libdirs"; then + hardcode_libdirs="$libdir" + else + # Just accumulate the unique libdirs. + case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in + *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) + ;; + *) + func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" + ;; + esac + fi + else + eval flag=\"$hardcode_libdir_flag_spec\" + func_append rpath " $flag" + fi + elif test -n "$runpath_var"; then + case "$finalize_perm_rpath " in + *" $libdir "*) ;; + *) func_append finalize_perm_rpath " $libdir" ;; + esac + fi + done + # Substitute the hardcoded libdirs into the rpath. + if test -n "$hardcode_libdir_separator" && + test -n "$hardcode_libdirs"; then + libdir="$hardcode_libdirs" + eval rpath=\" $hardcode_libdir_flag_spec\" + fi + finalize_rpath="$rpath" + + if test -n "$libobjs" && test "$build_old_libs" = yes; then + # Transform all the library objects into standard objects. + compile_command=`$ECHO "$compile_command" | $SP2NL | $SED "$lo2o" | $NL2SP` + finalize_command=`$ECHO "$finalize_command" | $SP2NL | $SED "$lo2o" | $NL2SP` + fi + + func_generate_dlsyms "$outputname" "@PROGRAM@" "no" + + # template prelinking step + if test -n "$prelink_cmds"; then + func_execute_cmds "$prelink_cmds" 'exit $?' + fi + + wrappers_required=yes + case $host in + *cegcc* | *mingw32ce*) + # Disable wrappers for cegcc and mingw32ce hosts, we are cross compiling anyway. + wrappers_required=no + ;; + *cygwin* | *mingw* ) + if test "$build_libtool_libs" != yes; then + wrappers_required=no + fi + ;; + *) + if test "$need_relink" = no || test "$build_libtool_libs" != yes; then + wrappers_required=no + fi + ;; + esac + if test "$wrappers_required" = no; then + # Replace the output file specification. + compile_command=`$ECHO "$compile_command" | $SED 's%@OUTPUT@%'"$output"'%g'` + link_command="$compile_command$compile_rpath" + + # We have no uninstalled library dependencies, so finalize right now. + exit_status=0 + func_show_eval "$link_command" 'exit_status=$?' + + if test -n "$postlink_cmds"; then + func_to_tool_file "$output" + postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` + func_execute_cmds "$postlink_cmds" 'exit $?' + fi + + # Delete the generated files. + if test -f "$output_objdir/${outputname}S.${objext}"; then + func_show_eval '$RM "$output_objdir/${outputname}S.${objext}"' + fi + + exit $exit_status + fi + + if test -n "$compile_shlibpath$finalize_shlibpath"; then + compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command" + fi + if test -n "$finalize_shlibpath"; then + finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command" + fi + + compile_var= + finalize_var= + if test -n "$runpath_var"; then + if test -n "$perm_rpath"; then + # We should set the runpath_var. + rpath= + for dir in $perm_rpath; do + func_append rpath "$dir:" + done + compile_var="$runpath_var=\"$rpath\$$runpath_var\" " + fi + if test -n "$finalize_perm_rpath"; then + # We should set the runpath_var. + rpath= + for dir in $finalize_perm_rpath; do + func_append rpath "$dir:" + done + finalize_var="$runpath_var=\"$rpath\$$runpath_var\" " + fi + fi + + if test "$no_install" = yes; then + # We don't need to create a wrapper script. + link_command="$compile_var$compile_command$compile_rpath" + # Replace the output file specification. + link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output"'%g'` + # Delete the old output file. + $opt_dry_run || $RM $output + # Link the executable and exit + func_show_eval "$link_command" 'exit $?' + + if test -n "$postlink_cmds"; then + func_to_tool_file "$output" + postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` + func_execute_cmds "$postlink_cmds" 'exit $?' + fi + + exit $EXIT_SUCCESS + fi + + if test "$hardcode_action" = relink; then + # Fast installation is not supported + link_command="$compile_var$compile_command$compile_rpath" + relink_command="$finalize_var$finalize_command$finalize_rpath" + + func_warning "this platform does not like uninstalled shared libraries" + func_warning "\`$output' will be relinked during installation" + else + if test "$fast_install" != no; then + link_command="$finalize_var$compile_command$finalize_rpath" + if test "$fast_install" = yes; then + relink_command=`$ECHO "$compile_var$compile_command$compile_rpath" | $SED 's%@OUTPUT@%\$progdir/\$file%g'` + else + # fast_install is set to needless + relink_command= + fi + else + link_command="$compile_var$compile_command$compile_rpath" + relink_command="$finalize_var$finalize_command$finalize_rpath" + fi + fi + + # Replace the output file specification. + link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` + + # Delete the old output files. + $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname + + func_show_eval "$link_command" 'exit $?' + + if test -n "$postlink_cmds"; then + func_to_tool_file "$output_objdir/$outputname" + postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` + func_execute_cmds "$postlink_cmds" 'exit $?' + fi + + # Now create the wrapper script. + func_verbose "creating $output" + + # Quote the relink command for shipping. + if test -n "$relink_command"; then + # Preserve any variables that may affect compiler behavior + for var in $variables_saved_for_relink; do + if eval test -z \"\${$var+set}\"; then + relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" + elif eval var_value=\$$var; test -z "$var_value"; then + relink_command="$var=; export $var; $relink_command" + else + func_quote_for_eval "$var_value" + relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" + fi + done + relink_command="(cd `pwd`; $relink_command)" + relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"` + fi + + # Only actually do things if not in dry run mode. + $opt_dry_run || { + # win32 will think the script is a binary if it has + # a .exe suffix, so we strip it off here. + case $output in + *.exe) func_stripname '' '.exe' "$output" + output=$func_stripname_result ;; + esac + # test for cygwin because mv fails w/o .exe extensions + case $host in + *cygwin*) + exeext=.exe + func_stripname '' '.exe' "$outputname" + outputname=$func_stripname_result ;; + *) exeext= ;; + esac + case $host in + *cygwin* | *mingw* ) + func_dirname_and_basename "$output" "" "." + output_name=$func_basename_result + output_path=$func_dirname_result + cwrappersource="$output_path/$objdir/lt-$output_name.c" + cwrapper="$output_path/$output_name.exe" + $RM $cwrappersource $cwrapper + trap "$RM $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15 + + func_emit_cwrapperexe_src > $cwrappersource + + # The wrapper executable is built using the $host compiler, + # because it contains $host paths and files. If cross- + # compiling, it, like the target executable, must be + # executed on the $host or under an emulation environment. + $opt_dry_run || { + $LTCC $LTCFLAGS -o $cwrapper $cwrappersource + $STRIP $cwrapper + } + + # Now, create the wrapper script for func_source use: + func_ltwrapper_scriptname $cwrapper + $RM $func_ltwrapper_scriptname_result + trap "$RM $func_ltwrapper_scriptname_result; exit $EXIT_FAILURE" 1 2 15 + $opt_dry_run || { + # note: this script will not be executed, so do not chmod. + if test "x$build" = "x$host" ; then + $cwrapper --lt-dump-script > $func_ltwrapper_scriptname_result + else + func_emit_wrapper no > $func_ltwrapper_scriptname_result + fi + } + ;; + * ) + $RM $output + trap "$RM $output; exit $EXIT_FAILURE" 1 2 15 + + func_emit_wrapper no > $output + chmod +x $output + ;; + esac + } + exit $EXIT_SUCCESS + ;; + esac + + # See if we need to build an old-fashioned archive. + for oldlib in $oldlibs; do + + if test "$build_libtool_libs" = convenience; then + oldobjs="$libobjs_save $symfileobj" + addlibs="$convenience" + build_libtool_libs=no + else + if test "$build_libtool_libs" = module; then + oldobjs="$libobjs_save" + build_libtool_libs=no + else + oldobjs="$old_deplibs $non_pic_objects" + if test "$preload" = yes && test -f "$symfileobj"; then + func_append oldobjs " $symfileobj" + fi + fi + addlibs="$old_convenience" + fi + + if test -n "$addlibs"; then + gentop="$output_objdir/${outputname}x" + func_append generated " $gentop" + + func_extract_archives $gentop $addlibs + func_append oldobjs " $func_extract_archives_result" + fi + + # Do each command in the archive commands. + if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then + cmds=$old_archive_from_new_cmds + else + + # Add any objects from preloaded convenience libraries + if test -n "$dlprefiles"; then + gentop="$output_objdir/${outputname}x" + func_append generated " $gentop" + + func_extract_archives $gentop $dlprefiles + func_append oldobjs " $func_extract_archives_result" + fi + + # POSIX demands no paths to be encoded in archives. We have + # to avoid creating archives with duplicate basenames if we + # might have to extract them afterwards, e.g., when creating a + # static archive out of a convenience library, or when linking + # the entirety of a libtool archive into another (currently + # not supported by libtool). + if (for obj in $oldobjs + do + func_basename "$obj" + $ECHO "$func_basename_result" + done | sort | sort -uc >/dev/null 2>&1); then + : + else + echo "copying selected object files to avoid basename conflicts..." + gentop="$output_objdir/${outputname}x" + func_append generated " $gentop" + func_mkdir_p "$gentop" + save_oldobjs=$oldobjs + oldobjs= + counter=1 + for obj in $save_oldobjs + do + func_basename "$obj" + objbase="$func_basename_result" + case " $oldobjs " in + " ") oldobjs=$obj ;; + *[\ /]"$objbase "*) + while :; do + # Make sure we don't pick an alternate name that also + # overlaps. + newobj=lt$counter-$objbase + func_arith $counter + 1 + counter=$func_arith_result + case " $oldobjs " in + *[\ /]"$newobj "*) ;; + *) if test ! -f "$gentop/$newobj"; then break; fi ;; + esac + done + func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj" + func_append oldobjs " $gentop/$newobj" + ;; + *) func_append oldobjs " $obj" ;; + esac + done + fi + func_to_tool_file "$oldlib" func_convert_file_msys_to_w32 + tool_oldlib=$func_to_tool_file_result + eval cmds=\"$old_archive_cmds\" + + func_len " $cmds" + len=$func_len_result + if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then + cmds=$old_archive_cmds + elif test -n "$archiver_list_spec"; then + func_verbose "using command file archive linking..." + for obj in $oldobjs + do + func_to_tool_file "$obj" + $ECHO "$func_to_tool_file_result" + done > $output_objdir/$libname.libcmd + func_to_tool_file "$output_objdir/$libname.libcmd" + oldobjs=" $archiver_list_spec$func_to_tool_file_result" + cmds=$old_archive_cmds + else + # the command line is too long to link in one step, link in parts + func_verbose "using piecewise archive linking..." + save_RANLIB=$RANLIB + RANLIB=: + objlist= + concat_cmds= + save_oldobjs=$oldobjs + oldobjs= + # Is there a better way of finding the last object in the list? + for obj in $save_oldobjs + do + last_oldobj=$obj + done + eval test_cmds=\"$old_archive_cmds\" + func_len " $test_cmds" + len0=$func_len_result + len=$len0 + for obj in $save_oldobjs + do + func_len " $obj" + func_arith $len + $func_len_result + len=$func_arith_result + func_append objlist " $obj" + if test "$len" -lt "$max_cmd_len"; then + : + else + # the above command should be used before it gets too long + oldobjs=$objlist + if test "$obj" = "$last_oldobj" ; then + RANLIB=$save_RANLIB + fi + test -z "$concat_cmds" || concat_cmds=$concat_cmds~ + eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\" + objlist= + len=$len0 + fi + done + RANLIB=$save_RANLIB + oldobjs=$objlist + if test "X$oldobjs" = "X" ; then + eval cmds=\"\$concat_cmds\" + else + eval cmds=\"\$concat_cmds~\$old_archive_cmds\" + fi + fi + fi + func_execute_cmds "$cmds" 'exit $?' + done + + test -n "$generated" && \ + func_show_eval "${RM}r$generated" + + # Now create the libtool archive. + case $output in + *.la) + old_library= + test "$build_old_libs" = yes && old_library="$libname.$libext" + func_verbose "creating $output" + + # Preserve any variables that may affect compiler behavior + for var in $variables_saved_for_relink; do + if eval test -z \"\${$var+set}\"; then + relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" + elif eval var_value=\$$var; test -z "$var_value"; then + relink_command="$var=; export $var; $relink_command" + else + func_quote_for_eval "$var_value" + relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" + fi + done + # Quote the link command for shipping. + relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" + relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"` + if test "$hardcode_automatic" = yes ; then + relink_command= + fi + + # Only create the output if not a dry run. + $opt_dry_run || { + for installed in no yes; do + if test "$installed" = yes; then + if test -z "$install_libdir"; then + break + fi + output="$output_objdir/$outputname"i + # Replace all uninstalled libtool libraries with the installed ones + newdependency_libs= + for deplib in $dependency_libs; do + case $deplib in + *.la) + func_basename "$deplib" + name="$func_basename_result" + func_resolve_sysroot "$deplib" + eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $func_resolve_sysroot_result` + test -z "$libdir" && \ + func_fatal_error "\`$deplib' is not a valid libtool archive" + func_append newdependency_libs " ${lt_sysroot:+=}$libdir/$name" + ;; + -L*) + func_stripname -L '' "$deplib" + func_replace_sysroot "$func_stripname_result" + func_append newdependency_libs " -L$func_replace_sysroot_result" + ;; + -R*) + func_stripname -R '' "$deplib" + func_replace_sysroot "$func_stripname_result" + func_append newdependency_libs " -R$func_replace_sysroot_result" + ;; + *) func_append newdependency_libs " $deplib" ;; + esac + done + dependency_libs="$newdependency_libs" + newdlfiles= + + for lib in $dlfiles; do + case $lib in + *.la) + func_basename "$lib" + name="$func_basename_result" + eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` + test -z "$libdir" && \ + func_fatal_error "\`$lib' is not a valid libtool archive" + func_append newdlfiles " ${lt_sysroot:+=}$libdir/$name" + ;; + *) func_append newdlfiles " $lib" ;; + esac + done + dlfiles="$newdlfiles" + newdlprefiles= + for lib in $dlprefiles; do + case $lib in + *.la) + # Only pass preopened files to the pseudo-archive (for + # eventual linking with the app. that links it) if we + # didn't already link the preopened objects directly into + # the library: + func_basename "$lib" + name="$func_basename_result" + eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` + test -z "$libdir" && \ + func_fatal_error "\`$lib' is not a valid libtool archive" + func_append newdlprefiles " ${lt_sysroot:+=}$libdir/$name" + ;; + esac + done + dlprefiles="$newdlprefiles" + else + newdlfiles= + for lib in $dlfiles; do + case $lib in + [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; + *) abs=`pwd`"/$lib" ;; + esac + func_append newdlfiles " $abs" + done + dlfiles="$newdlfiles" + newdlprefiles= + for lib in $dlprefiles; do + case $lib in + [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; + *) abs=`pwd`"/$lib" ;; + esac + func_append newdlprefiles " $abs" + done + dlprefiles="$newdlprefiles" + fi + $RM $output + # place dlname in correct position for cygwin + # In fact, it would be nice if we could use this code for all target + # systems that can't hard-code library paths into their executables + # and that have no shared library path variable independent of PATH, + # but it turns out we can't easily determine that from inspecting + # libtool variables, so we have to hard-code the OSs to which it + # applies here; at the moment, that means platforms that use the PE + # object format with DLL files. See the long comment at the top of + # tests/bindir.at for full details. + tdlname=$dlname + case $host,$output,$installed,$module,$dlname in + *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll) + # If a -bindir argument was supplied, place the dll there. + if test "x$bindir" != x ; + then + func_relative_path "$install_libdir" "$bindir" + tdlname=$func_relative_path_result$dlname + else + # Otherwise fall back on heuristic. + tdlname=../bin/$dlname + fi + ;; + esac + $ECHO > $output "\ +# $outputname - a libtool library file +# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# The name that we can dlopen(3). +dlname='$tdlname' + +# Names of this library. +library_names='$library_names' + +# The name of the static archive. +old_library='$old_library' + +# Linker flags that can not go in dependency_libs. +inherited_linker_flags='$new_inherited_linker_flags' + +# Libraries that this one depends upon. +dependency_libs='$dependency_libs' + +# Names of additional weak libraries provided by this library +weak_library_names='$weak_libs' + +# Version information for $libname. +current=$current +age=$age +revision=$revision + +# Is this an already installed library? +installed=$installed + +# Should we warn about portability when linking against -modules? +shouldnotlink=$module + +# Files to dlopen/dlpreopen +dlopen='$dlfiles' +dlpreopen='$dlprefiles' + +# Directory that this library needs to be installed in: +libdir='$install_libdir'" + if test "$installed" = no && test "$need_relink" = yes; then + $ECHO >> $output "\ +relink_command=\"$relink_command\"" + fi + done + } + + # Do a symbolic link so that the libtool archive can be found in + # LD_LIBRARY_PATH before the program is installed. + func_show_eval '( cd "$output_objdir" && $RM "$outputname" && $LN_S "../$outputname" "$outputname" )' 'exit $?' + ;; + esac + exit $EXIT_SUCCESS +} + +{ test "$opt_mode" = link || test "$opt_mode" = relink; } && + func_mode_link ${1+"$@"} + + +# func_mode_uninstall arg... +func_mode_uninstall () +{ + $opt_debug + RM="$nonopt" + files= + rmforce= + exit_status=0 + + # This variable tells wrapper scripts just to set variables rather + # than running their programs. + libtool_install_magic="$magic" + + for arg + do + case $arg in + -f) func_append RM " $arg"; rmforce=yes ;; + -*) func_append RM " $arg" ;; + *) func_append files " $arg" ;; + esac + done + + test -z "$RM" && \ + func_fatal_help "you must specify an RM program" + + rmdirs= + + for file in $files; do + func_dirname "$file" "" "." + dir="$func_dirname_result" + if test "X$dir" = X.; then + odir="$objdir" + else + odir="$dir/$objdir" + fi + func_basename "$file" + name="$func_basename_result" + test "$opt_mode" = uninstall && odir="$dir" + + # Remember odir for removal later, being careful to avoid duplicates + if test "$opt_mode" = clean; then + case " $rmdirs " in + *" $odir "*) ;; + *) func_append rmdirs " $odir" ;; + esac + fi + + # Don't error if the file doesn't exist and rm -f was used. + if { test -L "$file"; } >/dev/null 2>&1 || + { test -h "$file"; } >/dev/null 2>&1 || + test -f "$file"; then + : + elif test -d "$file"; then + exit_status=1 + continue + elif test "$rmforce" = yes; then + continue + fi + + rmfiles="$file" + + case $name in + *.la) + # Possibly a libtool archive, so verify it. + if func_lalib_p "$file"; then + func_source $dir/$name + + # Delete the libtool libraries and symlinks. + for n in $library_names; do + func_append rmfiles " $odir/$n" + done + test -n "$old_library" && func_append rmfiles " $odir/$old_library" + + case "$opt_mode" in + clean) + case " $library_names " in + *" $dlname "*) ;; + *) test -n "$dlname" && func_append rmfiles " $odir/$dlname" ;; + esac + test -n "$libdir" && func_append rmfiles " $odir/$name $odir/${name}i" + ;; + uninstall) + if test -n "$library_names"; then + # Do each command in the postuninstall commands. + func_execute_cmds "$postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1' + fi + + if test -n "$old_library"; then + # Do each command in the old_postuninstall commands. + func_execute_cmds "$old_postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1' + fi + # FIXME: should reinstall the best remaining shared library. + ;; + esac + fi + ;; + + *.lo) + # Possibly a libtool object, so verify it. + if func_lalib_p "$file"; then + + # Read the .lo file + func_source $dir/$name + + # Add PIC object to the list of files to remove. + if test -n "$pic_object" && + test "$pic_object" != none; then + func_append rmfiles " $dir/$pic_object" + fi + + # Add non-PIC object to the list of files to remove. + if test -n "$non_pic_object" && + test "$non_pic_object" != none; then + func_append rmfiles " $dir/$non_pic_object" + fi + fi + ;; + + *) + if test "$opt_mode" = clean ; then + noexename=$name + case $file in + *.exe) + func_stripname '' '.exe' "$file" + file=$func_stripname_result + func_stripname '' '.exe' "$name" + noexename=$func_stripname_result + # $file with .exe has already been added to rmfiles, + # add $file without .exe + func_append rmfiles " $file" + ;; + esac + # Do a test to see if this is a libtool program. + if func_ltwrapper_p "$file"; then + if func_ltwrapper_executable_p "$file"; then + func_ltwrapper_scriptname "$file" + relink_command= + func_source $func_ltwrapper_scriptname_result + func_append rmfiles " $func_ltwrapper_scriptname_result" + else + relink_command= + func_source $dir/$noexename + fi + + # note $name still contains .exe if it was in $file originally + # as does the version of $file that was added into $rmfiles + func_append rmfiles " $odir/$name $odir/${name}S.${objext}" + if test "$fast_install" = yes && test -n "$relink_command"; then + func_append rmfiles " $odir/lt-$name" + fi + if test "X$noexename" != "X$name" ; then + func_append rmfiles " $odir/lt-${noexename}.c" + fi + fi + fi + ;; + esac + func_show_eval "$RM $rmfiles" 'exit_status=1' + done + + # Try to remove the ${objdir}s in the directories where we deleted files + for dir in $rmdirs; do + if test -d "$dir"; then + func_show_eval "rmdir $dir >/dev/null 2>&1" + fi + done + + exit $exit_status +} + +{ test "$opt_mode" = uninstall || test "$opt_mode" = clean; } && + func_mode_uninstall ${1+"$@"} + +test -z "$opt_mode" && { + help="$generic_help" + func_fatal_help "you must specify a MODE" +} + +test -z "$exec_cmd" && \ + func_fatal_help "invalid operation mode \`$opt_mode'" + +if test -n "$exec_cmd"; then + eval exec "$exec_cmd" + exit $EXIT_FAILURE +fi + +exit $exit_status + + +# The TAGs below are defined such that we never get into a situation +# in which we disable both kinds of libraries. Given conflicting +# choices, we go for a static library, that is the most portable, +# since we can't tell whether shared libraries were disabled because +# the user asked for that or because the platform doesn't support +# them. This is particularly important on AIX, because we don't +# support having both static and shared libraries enabled at the same +# time on that platform, so we default to a shared-only configuration. +# If a disable-shared tag is given, we'll fallback to a static-only +# configuration. But we'll never go from static-only to shared-only. + +# ### BEGIN LIBTOOL TAG CONFIG: disable-shared +build_libtool_libs=no +build_old_libs=yes +# ### END LIBTOOL TAG CONFIG: disable-shared + +# ### BEGIN LIBTOOL TAG CONFIG: disable-static +build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac` +# ### END LIBTOOL TAG CONFIG: disable-static + +# Local Variables: +# mode:shell-script +# sh-indentation:2 +# End: +# vi:sw=2 + diff -Nru guvcview-1.7.3/m4/gsl.m4 guvcview-2.0.1+ubuntu1~ppa1/m4/gsl.m4 --- guvcview-1.7.3/m4/gsl.m4 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/m4/gsl.m4 2014-10-05 10:41:44.000000000 +0000 @@ -0,0 +1,162 @@ +# Configure path for the GNU Scientific Library +# Christopher R. Gabriel , April 2000 + + +AC_DEFUN([AX_PATH_GSL], +[ +AC_ARG_WITH(gsl-prefix,[ --with-gsl-prefix=PFX Prefix where GSL is installed (optional)], + gsl_prefix="$withval", gsl_prefix="") +AC_ARG_WITH(gsl-exec-prefix,[ --with-gsl-exec-prefix=PFX Exec prefix where GSL is installed (optional)], + gsl_exec_prefix="$withval", gsl_exec_prefix="") +AC_ARG_ENABLE(gsltest, [ --disable-gsltest Do not try to compile and run a test GSL program], + , enable_gsltest=yes) + + if test "x${GSL_CONFIG+set}" != xset ; then + if test "x$gsl_prefix" != x ; then + GSL_CONFIG="$gsl_prefix/bin/gsl-config" + fi + if test "x$gsl_exec_prefix" != x ; then + GSL_CONFIG="$gsl_exec_prefix/bin/gsl-config" + fi + fi + + AC_PATH_PROG(GSL_CONFIG, gsl-config, no) + min_gsl_version=ifelse([$1], ,0.2.5,$1) + AC_MSG_CHECKING(for GSL - version >= $min_gsl_version) + no_gsl="" + if test "$GSL_CONFIG" = "no" ; then + no_gsl=yes + else + GSL_CFLAGS=`$GSL_CONFIG --cflags` + GSL_LIBS=`$GSL_CONFIG --libs` + + gsl_major_version=`$GSL_CONFIG --version | \ + sed 's/^\([[0-9]]*\).*/\1/'` + if test "x${gsl_major_version}" = "x" ; then + gsl_major_version=0 + fi + + gsl_minor_version=`$GSL_CONFIG --version | \ + sed 's/^\([[0-9]]*\)\.\{0,1\}\([[0-9]]*\).*/\2/'` + if test "x${gsl_minor_version}" = "x" ; then + gsl_minor_version=0 + fi + + gsl_micro_version=`$GSL_CONFIG --version | \ + sed 's/^\([[0-9]]*\)\.\{0,1\}\([[0-9]]*\)\.\{0,1\}\([[0-9]]*\).*/\3/'` + if test "x${gsl_micro_version}" = "x" ; then + gsl_micro_version=0 + fi + + if test "x$enable_gsltest" = "xyes" ; then + ac_save_CFLAGS="$CFLAGS" + ac_save_LIBS="$LIBS" + CFLAGS="$CFLAGS $GSL_CFLAGS" + LIBS="$LIBS $GSL_LIBS" + + rm -f conf.gsltest + AC_TRY_RUN([ +#include +#include +#include + +char* my_strdup (const char *str); + +char* +my_strdup (const char *str) +{ + char *new_str; + + if (str) + { + new_str = (char *)malloc ((strlen (str) + 1) * sizeof(char)); + strcpy (new_str, str); + } + else + new_str = NULL; + + return new_str; +} + +int main (void) +{ + int major = 0, minor = 0, micro = 0; + int n; + char *tmp_version; + + system ("touch conf.gsltest"); + + /* HP/UX 9 (%@#!) writes to sscanf strings */ + tmp_version = my_strdup("$min_gsl_version"); + + n = sscanf(tmp_version, "%d.%d.%d", &major, &minor, µ) ; + + if (n != 2 && n != 3) { + printf("%s, bad version string\n", "$min_gsl_version"); + exit(1); + } + + if (($gsl_major_version > major) || + (($gsl_major_version == major) && ($gsl_minor_version > minor)) || + (($gsl_major_version == major) && ($gsl_minor_version == minor) && ($gsl_micro_version >= micro))) + { + exit(0); + } + else + { + exit(1); + } +} + +],, no_gsl=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"]) + CFLAGS="$ac_save_CFLAGS" + LIBS="$ac_save_LIBS" + fi + fi + if test "x$no_gsl" = x ; then + AC_MSG_RESULT(yes) + ifelse([$2], , :, [$2]) + else + AC_MSG_RESULT(no) + if test "$GSL_CONFIG" = "no" ; then + echo "*** The gsl-config script installed by GSL could not be found" + echo "*** If GSL was installed in PREFIX, make sure PREFIX/bin is in" + echo "*** your path, or set the GSL_CONFIG environment variable to the" + echo "*** full path to gsl-config." + else + if test -f conf.gsltest ; then + : + else + echo "*** Could not run GSL test program, checking why..." + CFLAGS="$CFLAGS $GSL_CFLAGS" + LIBS="$LIBS $GSL_LIBS" + AC_TRY_LINK([ +#include +], [ return 0; ], + [ echo "*** The test program compiled, but did not run. This usually means" + echo "*** that the run-time linker is not finding GSL or finding the wrong" + echo "*** version of GSL. If it is not finding GSL, you'll need to set your" + echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point" + echo "*** to the installed location Also, make sure you have run ldconfig if that" + echo "*** is required on your system" + echo "***" + echo "*** If you have an old version installed, it is best to remove it, although" + echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH"], + [ echo "*** The test program failed to compile or link. See the file config.log for the" + echo "*** exact error that occured. This usually means GSL was incorrectly installed" + echo "*** or that you have moved GSL since it was installed. In the latter case, you" + echo "*** may want to edit the gsl-config script: $GSL_CONFIG" ]) + CFLAGS="$ac_save_CFLAGS" + LIBS="$ac_save_LIBS" + fi + fi +# GSL_CFLAGS="" +# GSL_LIBS="" + ifelse([$3], , :, [$3]) + fi + AC_SUBST(GSL_CFLAGS) + AC_SUBST(GSL_LIBS) + rm -f conf.gsltest +]) + +AU_ALIAS([AM_PATH_GSL], [AX_PATH_GSL]) \ No newline at end of file diff -Nru guvcview-1.7.3/m4/libtool.m4 guvcview-2.0.1+ubuntu1~ppa1/m4/libtool.m4 --- guvcview-1.7.3/m4/libtool.m4 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/m4/libtool.m4 2014-10-05 10:41:44.000000000 +0000 @@ -0,0 +1,7997 @@ +# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*- +# +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, +# 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. +# Written by Gordon Matzigkeit, 1996 +# +# This file is free software; the Free Software Foundation gives +# unlimited permission to copy and/or distribute it, with or without +# modifications, as long as this notice is preserved. + +m4_define([_LT_COPYING], [dnl +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, +# 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. +# Written by Gordon Matzigkeit, 1996 +# +# This file is part of GNU Libtool. +# +# GNU Libtool is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation; either version 2 of +# the License, or (at your option) any later version. +# +# As a special exception to the GNU General Public License, +# if you distribute this file as part of a program or library that +# is built using GNU Libtool, you may include this file under the +# same distribution terms that you use for the rest of that program. +# +# GNU Libtool is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with GNU Libtool; see the file COPYING. If not, a copy +# can be downloaded from http://www.gnu.org/licenses/gpl.html, or +# obtained by writing to the Free Software Foundation, Inc., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +]) + +# serial 57 LT_INIT + + +# LT_PREREQ(VERSION) +# ------------------ +# Complain and exit if this libtool version is less that VERSION. +m4_defun([LT_PREREQ], +[m4_if(m4_version_compare(m4_defn([LT_PACKAGE_VERSION]), [$1]), -1, + [m4_default([$3], + [m4_fatal([Libtool version $1 or higher is required], + 63)])], + [$2])]) + + +# _LT_CHECK_BUILDDIR +# ------------------ +# Complain if the absolute build directory name contains unusual characters +m4_defun([_LT_CHECK_BUILDDIR], +[case `pwd` in + *\ * | *\ *) + AC_MSG_WARN([Libtool does not cope well with whitespace in `pwd`]) ;; +esac +]) + + +# LT_INIT([OPTIONS]) +# ------------------ +AC_DEFUN([LT_INIT], +[AC_PREREQ([2.58])dnl We use AC_INCLUDES_DEFAULT +AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl +AC_BEFORE([$0], [LT_LANG])dnl +AC_BEFORE([$0], [LT_OUTPUT])dnl +AC_BEFORE([$0], [LTDL_INIT])dnl +m4_require([_LT_CHECK_BUILDDIR])dnl + +dnl Autoconf doesn't catch unexpanded LT_ macros by default: +m4_pattern_forbid([^_?LT_[A-Z_]+$])dnl +m4_pattern_allow([^(_LT_EOF|LT_DLGLOBAL|LT_DLLAZY_OR_NOW|LT_MULTI_MODULE)$])dnl +dnl aclocal doesn't pull ltoptions.m4, ltsugar.m4, or ltversion.m4 +dnl unless we require an AC_DEFUNed macro: +AC_REQUIRE([LTOPTIONS_VERSION])dnl +AC_REQUIRE([LTSUGAR_VERSION])dnl +AC_REQUIRE([LTVERSION_VERSION])dnl +AC_REQUIRE([LTOBSOLETE_VERSION])dnl +m4_require([_LT_PROG_LTMAIN])dnl + +_LT_SHELL_INIT([SHELL=${CONFIG_SHELL-/bin/sh}]) + +dnl Parse OPTIONS +_LT_SET_OPTIONS([$0], [$1]) + +# This can be used to rebuild libtool when needed +LIBTOOL_DEPS="$ltmain" + +# Always use our own libtool. +LIBTOOL='$(SHELL) $(top_builddir)/libtool' +AC_SUBST(LIBTOOL)dnl + +_LT_SETUP + +# Only expand once: +m4_define([LT_INIT]) +])# LT_INIT + +# Old names: +AU_ALIAS([AC_PROG_LIBTOOL], [LT_INIT]) +AU_ALIAS([AM_PROG_LIBTOOL], [LT_INIT]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_PROG_LIBTOOL], []) +dnl AC_DEFUN([AM_PROG_LIBTOOL], []) + + +# _LT_CC_BASENAME(CC) +# ------------------- +# Calculate cc_basename. Skip known compiler wrappers and cross-prefix. +m4_defun([_LT_CC_BASENAME], +[for cc_temp in $1""; do + case $cc_temp in + compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;; + distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;; + \-*) ;; + *) break;; + esac +done +cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` +]) + + +# _LT_FILEUTILS_DEFAULTS +# ---------------------- +# It is okay to use these file commands and assume they have been set +# sensibly after `m4_require([_LT_FILEUTILS_DEFAULTS])'. +m4_defun([_LT_FILEUTILS_DEFAULTS], +[: ${CP="cp -f"} +: ${MV="mv -f"} +: ${RM="rm -f"} +])# _LT_FILEUTILS_DEFAULTS + + +# _LT_SETUP +# --------- +m4_defun([_LT_SETUP], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +AC_REQUIRE([AC_CANONICAL_BUILD])dnl +AC_REQUIRE([_LT_PREPARE_SED_QUOTE_VARS])dnl +AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])dnl + +_LT_DECL([], [PATH_SEPARATOR], [1], [The PATH separator for the build system])dnl +dnl +_LT_DECL([], [host_alias], [0], [The host system])dnl +_LT_DECL([], [host], [0])dnl +_LT_DECL([], [host_os], [0])dnl +dnl +_LT_DECL([], [build_alias], [0], [The build system])dnl +_LT_DECL([], [build], [0])dnl +_LT_DECL([], [build_os], [0])dnl +dnl +AC_REQUIRE([AC_PROG_CC])dnl +AC_REQUIRE([LT_PATH_LD])dnl +AC_REQUIRE([LT_PATH_NM])dnl +dnl +AC_REQUIRE([AC_PROG_LN_S])dnl +test -z "$LN_S" && LN_S="ln -s" +_LT_DECL([], [LN_S], [1], [Whether we need soft or hard links])dnl +dnl +AC_REQUIRE([LT_CMD_MAX_LEN])dnl +_LT_DECL([objext], [ac_objext], [0], [Object file suffix (normally "o")])dnl +_LT_DECL([], [exeext], [0], [Executable file suffix (normally "")])dnl +dnl +m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_CHECK_SHELL_FEATURES])dnl +m4_require([_LT_PATH_CONVERSION_FUNCTIONS])dnl +m4_require([_LT_CMD_RELOAD])dnl +m4_require([_LT_CHECK_MAGIC_METHOD])dnl +m4_require([_LT_CHECK_SHAREDLIB_FROM_LINKLIB])dnl +m4_require([_LT_CMD_OLD_ARCHIVE])dnl +m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl +m4_require([_LT_WITH_SYSROOT])dnl + +_LT_CONFIG_LIBTOOL_INIT([ +# See if we are running on zsh, and set the options which allow our +# commands through without removal of \ escapes INIT. +if test -n "\${ZSH_VERSION+set}" ; then + setopt NO_GLOB_SUBST +fi +]) +if test -n "${ZSH_VERSION+set}" ; then + setopt NO_GLOB_SUBST +fi + +_LT_CHECK_OBJDIR + +m4_require([_LT_TAG_COMPILER])dnl + +case $host_os in +aix3*) + # AIX sometimes has problems with the GCC collect2 program. For some + # reason, if we set the COLLECT_NAMES environment variable, the problems + # vanish in a puff of smoke. + if test "X${COLLECT_NAMES+set}" != Xset; then + COLLECT_NAMES= + export COLLECT_NAMES + fi + ;; +esac + +# Global variables: +ofile=libtool +can_build_shared=yes + +# All known linkers require a `.a' archive for static linking (except MSVC, +# which needs '.lib'). +libext=a + +with_gnu_ld="$lt_cv_prog_gnu_ld" + +old_CC="$CC" +old_CFLAGS="$CFLAGS" + +# Set sane defaults for various variables +test -z "$CC" && CC=cc +test -z "$LTCC" && LTCC=$CC +test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS +test -z "$LD" && LD=ld +test -z "$ac_objext" && ac_objext=o + +_LT_CC_BASENAME([$compiler]) + +# Only perform the check for file, if the check method requires it +test -z "$MAGIC_CMD" && MAGIC_CMD=file +case $deplibs_check_method in +file_magic*) + if test "$file_magic_cmd" = '$MAGIC_CMD'; then + _LT_PATH_MAGIC + fi + ;; +esac + +# Use C for the default configuration in the libtool script +LT_SUPPORTED_TAG([CC]) +_LT_LANG_C_CONFIG +_LT_LANG_DEFAULT_CONFIG +_LT_CONFIG_COMMANDS +])# _LT_SETUP + + +# _LT_PREPARE_SED_QUOTE_VARS +# -------------------------- +# Define a few sed substitution that help us do robust quoting. +m4_defun([_LT_PREPARE_SED_QUOTE_VARS], +[# Backslashify metacharacters that are still active within +# double-quoted strings. +sed_quote_subst='s/\([["`$\\]]\)/\\\1/g' + +# Same as above, but do not quote variable references. +double_quote_subst='s/\([["`\\]]\)/\\\1/g' + +# Sed substitution to delay expansion of an escaped shell variable in a +# double_quote_subst'ed string. +delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' + +# Sed substitution to delay expansion of an escaped single quote. +delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' + +# Sed substitution to avoid accidental globbing in evaled expressions +no_glob_subst='s/\*/\\\*/g' +]) + +# _LT_PROG_LTMAIN +# --------------- +# Note that this code is called both from `configure', and `config.status' +# now that we use AC_CONFIG_COMMANDS to generate libtool. Notably, +# `config.status' has no value for ac_aux_dir unless we are using Automake, +# so we pass a copy along to make sure it has a sensible value anyway. +m4_defun([_LT_PROG_LTMAIN], +[m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([ltmain.sh])])dnl +_LT_CONFIG_LIBTOOL_INIT([ac_aux_dir='$ac_aux_dir']) +ltmain="$ac_aux_dir/ltmain.sh" +])# _LT_PROG_LTMAIN + + +## ------------------------------------- ## +## Accumulate code for creating libtool. ## +## ------------------------------------- ## + +# So that we can recreate a full libtool script including additional +# tags, we accumulate the chunks of code to send to AC_CONFIG_COMMANDS +# in macros and then make a single call at the end using the `libtool' +# label. + + +# _LT_CONFIG_LIBTOOL_INIT([INIT-COMMANDS]) +# ---------------------------------------- +# Register INIT-COMMANDS to be passed to AC_CONFIG_COMMANDS later. +m4_define([_LT_CONFIG_LIBTOOL_INIT], +[m4_ifval([$1], + [m4_append([_LT_OUTPUT_LIBTOOL_INIT], + [$1 +])])]) + +# Initialize. +m4_define([_LT_OUTPUT_LIBTOOL_INIT]) + + +# _LT_CONFIG_LIBTOOL([COMMANDS]) +# ------------------------------ +# Register COMMANDS to be passed to AC_CONFIG_COMMANDS later. +m4_define([_LT_CONFIG_LIBTOOL], +[m4_ifval([$1], + [m4_append([_LT_OUTPUT_LIBTOOL_COMMANDS], + [$1 +])])]) + +# Initialize. +m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS]) + + +# _LT_CONFIG_SAVE_COMMANDS([COMMANDS], [INIT_COMMANDS]) +# ----------------------------------------------------- +m4_defun([_LT_CONFIG_SAVE_COMMANDS], +[_LT_CONFIG_LIBTOOL([$1]) +_LT_CONFIG_LIBTOOL_INIT([$2]) +]) + + +# _LT_FORMAT_COMMENT([COMMENT]) +# ----------------------------- +# Add leading comment marks to the start of each line, and a trailing +# full-stop to the whole comment if one is not present already. +m4_define([_LT_FORMAT_COMMENT], +[m4_ifval([$1], [ +m4_bpatsubst([m4_bpatsubst([$1], [^ *], [# ])], + [['`$\]], [\\\&])]m4_bmatch([$1], [[!?.]$], [], [.]) +)]) + + + +## ------------------------ ## +## FIXME: Eliminate VARNAME ## +## ------------------------ ## + + +# _LT_DECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION], [IS-TAGGED?]) +# ------------------------------------------------------------------- +# CONFIGNAME is the name given to the value in the libtool script. +# VARNAME is the (base) name used in the configure script. +# VALUE may be 0, 1 or 2 for a computed quote escaped value based on +# VARNAME. Any other value will be used directly. +m4_define([_LT_DECL], +[lt_if_append_uniq([lt_decl_varnames], [$2], [, ], + [lt_dict_add_subkey([lt_decl_dict], [$2], [libtool_name], + [m4_ifval([$1], [$1], [$2])]) + lt_dict_add_subkey([lt_decl_dict], [$2], [value], [$3]) + m4_ifval([$4], + [lt_dict_add_subkey([lt_decl_dict], [$2], [description], [$4])]) + lt_dict_add_subkey([lt_decl_dict], [$2], + [tagged?], [m4_ifval([$5], [yes], [no])])]) +]) + + +# _LT_TAGDECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION]) +# -------------------------------------------------------- +m4_define([_LT_TAGDECL], [_LT_DECL([$1], [$2], [$3], [$4], [yes])]) + + +# lt_decl_tag_varnames([SEPARATOR], [VARNAME1...]) +# ------------------------------------------------ +m4_define([lt_decl_tag_varnames], +[_lt_decl_filter([tagged?], [yes], $@)]) + + +# _lt_decl_filter(SUBKEY, VALUE, [SEPARATOR], [VARNAME1..]) +# --------------------------------------------------------- +m4_define([_lt_decl_filter], +[m4_case([$#], + [0], [m4_fatal([$0: too few arguments: $#])], + [1], [m4_fatal([$0: too few arguments: $#: $1])], + [2], [lt_dict_filter([lt_decl_dict], [$1], [$2], [], lt_decl_varnames)], + [3], [lt_dict_filter([lt_decl_dict], [$1], [$2], [$3], lt_decl_varnames)], + [lt_dict_filter([lt_decl_dict], $@)])[]dnl +]) + + +# lt_decl_quote_varnames([SEPARATOR], [VARNAME1...]) +# -------------------------------------------------- +m4_define([lt_decl_quote_varnames], +[_lt_decl_filter([value], [1], $@)]) + + +# lt_decl_dquote_varnames([SEPARATOR], [VARNAME1...]) +# --------------------------------------------------- +m4_define([lt_decl_dquote_varnames], +[_lt_decl_filter([value], [2], $@)]) + + +# lt_decl_varnames_tagged([SEPARATOR], [VARNAME1...]) +# --------------------------------------------------- +m4_define([lt_decl_varnames_tagged], +[m4_assert([$# <= 2])dnl +_$0(m4_quote(m4_default([$1], [[, ]])), + m4_ifval([$2], [[$2]], [m4_dquote(lt_decl_tag_varnames)]), + m4_split(m4_normalize(m4_quote(_LT_TAGS)), [ ]))]) +m4_define([_lt_decl_varnames_tagged], +[m4_ifval([$3], [lt_combine([$1], [$2], [_], $3)])]) + + +# lt_decl_all_varnames([SEPARATOR], [VARNAME1...]) +# ------------------------------------------------ +m4_define([lt_decl_all_varnames], +[_$0(m4_quote(m4_default([$1], [[, ]])), + m4_if([$2], [], + m4_quote(lt_decl_varnames), + m4_quote(m4_shift($@))))[]dnl +]) +m4_define([_lt_decl_all_varnames], +[lt_join($@, lt_decl_varnames_tagged([$1], + lt_decl_tag_varnames([[, ]], m4_shift($@))))dnl +]) + + +# _LT_CONFIG_STATUS_DECLARE([VARNAME]) +# ------------------------------------ +# Quote a variable value, and forward it to `config.status' so that its +# declaration there will have the same value as in `configure'. VARNAME +# must have a single quote delimited value for this to work. +m4_define([_LT_CONFIG_STATUS_DECLARE], +[$1='`$ECHO "$][$1" | $SED "$delay_single_quote_subst"`']) + + +# _LT_CONFIG_STATUS_DECLARATIONS +# ------------------------------ +# We delimit libtool config variables with single quotes, so when +# we write them to config.status, we have to be sure to quote all +# embedded single quotes properly. In configure, this macro expands +# each variable declared with _LT_DECL (and _LT_TAGDECL) into: +# +# ='`$ECHO "$" | $SED "$delay_single_quote_subst"`' +m4_defun([_LT_CONFIG_STATUS_DECLARATIONS], +[m4_foreach([_lt_var], m4_quote(lt_decl_all_varnames), + [m4_n([_LT_CONFIG_STATUS_DECLARE(_lt_var)])])]) + + +# _LT_LIBTOOL_TAGS +# ---------------- +# Output comment and list of tags supported by the script +m4_defun([_LT_LIBTOOL_TAGS], +[_LT_FORMAT_COMMENT([The names of the tagged configurations supported by this script])dnl +available_tags="_LT_TAGS"dnl +]) + + +# _LT_LIBTOOL_DECLARE(VARNAME, [TAG]) +# ----------------------------------- +# Extract the dictionary values for VARNAME (optionally with TAG) and +# expand to a commented shell variable setting: +# +# # Some comment about what VAR is for. +# visible_name=$lt_internal_name +m4_define([_LT_LIBTOOL_DECLARE], +[_LT_FORMAT_COMMENT(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], + [description])))[]dnl +m4_pushdef([_libtool_name], + m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [libtool_name])))[]dnl +m4_case(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [value])), + [0], [_libtool_name=[$]$1], + [1], [_libtool_name=$lt_[]$1], + [2], [_libtool_name=$lt_[]$1], + [_libtool_name=lt_dict_fetch([lt_decl_dict], [$1], [value])])[]dnl +m4_ifval([$2], [_$2])[]m4_popdef([_libtool_name])[]dnl +]) + + +# _LT_LIBTOOL_CONFIG_VARS +# ----------------------- +# Produce commented declarations of non-tagged libtool config variables +# suitable for insertion in the LIBTOOL CONFIG section of the `libtool' +# script. Tagged libtool config variables (even for the LIBTOOL CONFIG +# section) are produced by _LT_LIBTOOL_TAG_VARS. +m4_defun([_LT_LIBTOOL_CONFIG_VARS], +[m4_foreach([_lt_var], + m4_quote(_lt_decl_filter([tagged?], [no], [], lt_decl_varnames)), + [m4_n([_LT_LIBTOOL_DECLARE(_lt_var)])])]) + + +# _LT_LIBTOOL_TAG_VARS(TAG) +# ------------------------- +m4_define([_LT_LIBTOOL_TAG_VARS], +[m4_foreach([_lt_var], m4_quote(lt_decl_tag_varnames), + [m4_n([_LT_LIBTOOL_DECLARE(_lt_var, [$1])])])]) + + +# _LT_TAGVAR(VARNAME, [TAGNAME]) +# ------------------------------ +m4_define([_LT_TAGVAR], [m4_ifval([$2], [$1_$2], [$1])]) + + +# _LT_CONFIG_COMMANDS +# ------------------- +# Send accumulated output to $CONFIG_STATUS. Thanks to the lists of +# variables for single and double quote escaping we saved from calls +# to _LT_DECL, we can put quote escaped variables declarations +# into `config.status', and then the shell code to quote escape them in +# for loops in `config.status'. Finally, any additional code accumulated +# from calls to _LT_CONFIG_LIBTOOL_INIT is expanded. +m4_defun([_LT_CONFIG_COMMANDS], +[AC_PROVIDE_IFELSE([LT_OUTPUT], + dnl If the libtool generation code has been placed in $CONFIG_LT, + dnl instead of duplicating it all over again into config.status, + dnl then we will have config.status run $CONFIG_LT later, so it + dnl needs to know what name is stored there: + [AC_CONFIG_COMMANDS([libtool], + [$SHELL $CONFIG_LT || AS_EXIT(1)], [CONFIG_LT='$CONFIG_LT'])], + dnl If the libtool generation code is destined for config.status, + dnl expand the accumulated commands and init code now: + [AC_CONFIG_COMMANDS([libtool], + [_LT_OUTPUT_LIBTOOL_COMMANDS], [_LT_OUTPUT_LIBTOOL_COMMANDS_INIT])]) +])#_LT_CONFIG_COMMANDS + + +# Initialize. +m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS_INIT], +[ + +# The HP-UX ksh and POSIX shell print the target directory to stdout +# if CDPATH is set. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +sed_quote_subst='$sed_quote_subst' +double_quote_subst='$double_quote_subst' +delay_variable_subst='$delay_variable_subst' +_LT_CONFIG_STATUS_DECLARATIONS +LTCC='$LTCC' +LTCFLAGS='$LTCFLAGS' +compiler='$compiler_DEFAULT' + +# A function that is used when there is no print builtin or printf. +func_fallback_echo () +{ + eval 'cat <<_LTECHO_EOF +\$[]1 +_LTECHO_EOF' +} + +# Quote evaled strings. +for var in lt_decl_all_varnames([[ \ +]], lt_decl_quote_varnames); do + case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in + *[[\\\\\\\`\\"\\\$]]*) + eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" + ;; + *) + eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" + ;; + esac +done + +# Double-quote double-evaled strings. +for var in lt_decl_all_varnames([[ \ +]], lt_decl_dquote_varnames); do + case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in + *[[\\\\\\\`\\"\\\$]]*) + eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" + ;; + *) + eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" + ;; + esac +done + +_LT_OUTPUT_LIBTOOL_INIT +]) + +# _LT_GENERATED_FILE_INIT(FILE, [COMMENT]) +# ------------------------------------ +# Generate a child script FILE with all initialization necessary to +# reuse the environment learned by the parent script, and make the +# file executable. If COMMENT is supplied, it is inserted after the +# `#!' sequence but before initialization text begins. After this +# macro, additional text can be appended to FILE to form the body of +# the child script. The macro ends with non-zero status if the +# file could not be fully written (such as if the disk is full). +m4_ifdef([AS_INIT_GENERATED], +[m4_defun([_LT_GENERATED_FILE_INIT],[AS_INIT_GENERATED($@)])], +[m4_defun([_LT_GENERATED_FILE_INIT], +[m4_require([AS_PREPARE])]dnl +[m4_pushdef([AS_MESSAGE_LOG_FD])]dnl +[lt_write_fail=0 +cat >$1 <<_ASEOF || lt_write_fail=1 +#! $SHELL +# Generated by $as_me. +$2 +SHELL=\${CONFIG_SHELL-$SHELL} +export SHELL +_ASEOF +cat >>$1 <<\_ASEOF || lt_write_fail=1 +AS_SHELL_SANITIZE +_AS_PREPARE +exec AS_MESSAGE_FD>&1 +_ASEOF +test $lt_write_fail = 0 && chmod +x $1[]dnl +m4_popdef([AS_MESSAGE_LOG_FD])])])# _LT_GENERATED_FILE_INIT + +# LT_OUTPUT +# --------- +# This macro allows early generation of the libtool script (before +# AC_OUTPUT is called), incase it is used in configure for compilation +# tests. +AC_DEFUN([LT_OUTPUT], +[: ${CONFIG_LT=./config.lt} +AC_MSG_NOTICE([creating $CONFIG_LT]) +_LT_GENERATED_FILE_INIT(["$CONFIG_LT"], +[# Run this file to recreate a libtool stub with the current configuration.]) + +cat >>"$CONFIG_LT" <<\_LTEOF +lt_cl_silent=false +exec AS_MESSAGE_LOG_FD>>config.log +{ + echo + AS_BOX([Running $as_me.]) +} >&AS_MESSAGE_LOG_FD + +lt_cl_help="\ +\`$as_me' creates a local libtool stub from the current configuration, +for use in further configure time tests before the real libtool is +generated. + +Usage: $[0] [[OPTIONS]] + + -h, --help print this help, then exit + -V, --version print version number, then exit + -q, --quiet do not print progress messages + -d, --debug don't remove temporary files + +Report bugs to ." + +lt_cl_version="\ +m4_ifset([AC_PACKAGE_NAME], [AC_PACKAGE_NAME ])config.lt[]dnl +m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION]) +configured by $[0], generated by m4_PACKAGE_STRING. + +Copyright (C) 2011 Free Software Foundation, Inc. +This config.lt script is free software; the Free Software Foundation +gives unlimited permision to copy, distribute and modify it." + +while test $[#] != 0 +do + case $[1] in + --version | --v* | -V ) + echo "$lt_cl_version"; exit 0 ;; + --help | --h* | -h ) + echo "$lt_cl_help"; exit 0 ;; + --debug | --d* | -d ) + debug=: ;; + --quiet | --q* | --silent | --s* | -q ) + lt_cl_silent=: ;; + + -*) AC_MSG_ERROR([unrecognized option: $[1] +Try \`$[0] --help' for more information.]) ;; + + *) AC_MSG_ERROR([unrecognized argument: $[1] +Try \`$[0] --help' for more information.]) ;; + esac + shift +done + +if $lt_cl_silent; then + exec AS_MESSAGE_FD>/dev/null +fi +_LTEOF + +cat >>"$CONFIG_LT" <<_LTEOF +_LT_OUTPUT_LIBTOOL_COMMANDS_INIT +_LTEOF + +cat >>"$CONFIG_LT" <<\_LTEOF +AC_MSG_NOTICE([creating $ofile]) +_LT_OUTPUT_LIBTOOL_COMMANDS +AS_EXIT(0) +_LTEOF +chmod +x "$CONFIG_LT" + +# configure is writing to config.log, but config.lt does its own redirection, +# appending to config.log, which fails on DOS, as config.log is still kept +# open by configure. Here we exec the FD to /dev/null, effectively closing +# config.log, so it can be properly (re)opened and appended to by config.lt. +lt_cl_success=: +test "$silent" = yes && + lt_config_lt_args="$lt_config_lt_args --quiet" +exec AS_MESSAGE_LOG_FD>/dev/null +$SHELL "$CONFIG_LT" $lt_config_lt_args || lt_cl_success=false +exec AS_MESSAGE_LOG_FD>>config.log +$lt_cl_success || AS_EXIT(1) +])# LT_OUTPUT + + +# _LT_CONFIG(TAG) +# --------------- +# If TAG is the built-in tag, create an initial libtool script with a +# default configuration from the untagged config vars. Otherwise add code +# to config.status for appending the configuration named by TAG from the +# matching tagged config vars. +m4_defun([_LT_CONFIG], +[m4_require([_LT_FILEUTILS_DEFAULTS])dnl +_LT_CONFIG_SAVE_COMMANDS([ + m4_define([_LT_TAG], m4_if([$1], [], [C], [$1]))dnl + m4_if(_LT_TAG, [C], [ + # See if we are running on zsh, and set the options which allow our + # commands through without removal of \ escapes. + if test -n "${ZSH_VERSION+set}" ; then + setopt NO_GLOB_SUBST + fi + + cfgfile="${ofile}T" + trap "$RM \"$cfgfile\"; exit 1" 1 2 15 + $RM "$cfgfile" + + cat <<_LT_EOF >> "$cfgfile" +#! $SHELL + +# `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services. +# Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION +# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: +# NOTE: Changes made to this file will be lost: look at ltmain.sh. +# +_LT_COPYING +_LT_LIBTOOL_TAGS + +# ### BEGIN LIBTOOL CONFIG +_LT_LIBTOOL_CONFIG_VARS +_LT_LIBTOOL_TAG_VARS +# ### END LIBTOOL CONFIG + +_LT_EOF + + case $host_os in + aix3*) + cat <<\_LT_EOF >> "$cfgfile" +# AIX sometimes has problems with the GCC collect2 program. For some +# reason, if we set the COLLECT_NAMES environment variable, the problems +# vanish in a puff of smoke. +if test "X${COLLECT_NAMES+set}" != Xset; then + COLLECT_NAMES= + export COLLECT_NAMES +fi +_LT_EOF + ;; + esac + + _LT_PROG_LTMAIN + + # We use sed instead of cat because bash on DJGPP gets confused if + # if finds mixed CR/LF and LF-only lines. Since sed operates in + # text mode, it properly converts lines to CR/LF. This bash problem + # is reportedly fixed, but why not run on old versions too? + sed '$q' "$ltmain" >> "$cfgfile" \ + || (rm -f "$cfgfile"; exit 1) + + _LT_PROG_REPLACE_SHELLFNS + + mv -f "$cfgfile" "$ofile" || + (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") + chmod +x "$ofile" +], +[cat <<_LT_EOF >> "$ofile" + +dnl Unfortunately we have to use $1 here, since _LT_TAG is not expanded +dnl in a comment (ie after a #). +# ### BEGIN LIBTOOL TAG CONFIG: $1 +_LT_LIBTOOL_TAG_VARS(_LT_TAG) +# ### END LIBTOOL TAG CONFIG: $1 +_LT_EOF +])dnl /m4_if +], +[m4_if([$1], [], [ + PACKAGE='$PACKAGE' + VERSION='$VERSION' + TIMESTAMP='$TIMESTAMP' + RM='$RM' + ofile='$ofile'], []) +])dnl /_LT_CONFIG_SAVE_COMMANDS +])# _LT_CONFIG + + +# LT_SUPPORTED_TAG(TAG) +# --------------------- +# Trace this macro to discover what tags are supported by the libtool +# --tag option, using: +# autoconf --trace 'LT_SUPPORTED_TAG:$1' +AC_DEFUN([LT_SUPPORTED_TAG], []) + + +# C support is built-in for now +m4_define([_LT_LANG_C_enabled], []) +m4_define([_LT_TAGS], []) + + +# LT_LANG(LANG) +# ------------- +# Enable libtool support for the given language if not already enabled. +AC_DEFUN([LT_LANG], +[AC_BEFORE([$0], [LT_OUTPUT])dnl +m4_case([$1], + [C], [_LT_LANG(C)], + [C++], [_LT_LANG(CXX)], + [Go], [_LT_LANG(GO)], + [Java], [_LT_LANG(GCJ)], + [Fortran 77], [_LT_LANG(F77)], + [Fortran], [_LT_LANG(FC)], + [Windows Resource], [_LT_LANG(RC)], + [m4_ifdef([_LT_LANG_]$1[_CONFIG], + [_LT_LANG($1)], + [m4_fatal([$0: unsupported language: "$1"])])])dnl +])# LT_LANG + + +# _LT_LANG(LANGNAME) +# ------------------ +m4_defun([_LT_LANG], +[m4_ifdef([_LT_LANG_]$1[_enabled], [], + [LT_SUPPORTED_TAG([$1])dnl + m4_append([_LT_TAGS], [$1 ])dnl + m4_define([_LT_LANG_]$1[_enabled], [])dnl + _LT_LANG_$1_CONFIG($1)])dnl +])# _LT_LANG + + +m4_ifndef([AC_PROG_GO], [ +############################################################ +# NOTE: This macro has been submitted for inclusion into # +# GNU Autoconf as AC_PROG_GO. When it is available in # +# a released version of Autoconf we should remove this # +# macro and use it instead. # +############################################################ +m4_defun([AC_PROG_GO], +[AC_LANG_PUSH(Go)dnl +AC_ARG_VAR([GOC], [Go compiler command])dnl +AC_ARG_VAR([GOFLAGS], [Go compiler flags])dnl +_AC_ARG_VAR_LDFLAGS()dnl +AC_CHECK_TOOL(GOC, gccgo) +if test -z "$GOC"; then + if test -n "$ac_tool_prefix"; then + AC_CHECK_PROG(GOC, [${ac_tool_prefix}gccgo], [${ac_tool_prefix}gccgo]) + fi +fi +if test -z "$GOC"; then + AC_CHECK_PROG(GOC, gccgo, gccgo, false) +fi +])#m4_defun +])#m4_ifndef + + +# _LT_LANG_DEFAULT_CONFIG +# ----------------------- +m4_defun([_LT_LANG_DEFAULT_CONFIG], +[AC_PROVIDE_IFELSE([AC_PROG_CXX], + [LT_LANG(CXX)], + [m4_define([AC_PROG_CXX], defn([AC_PROG_CXX])[LT_LANG(CXX)])]) + +AC_PROVIDE_IFELSE([AC_PROG_F77], + [LT_LANG(F77)], + [m4_define([AC_PROG_F77], defn([AC_PROG_F77])[LT_LANG(F77)])]) + +AC_PROVIDE_IFELSE([AC_PROG_FC], + [LT_LANG(FC)], + [m4_define([AC_PROG_FC], defn([AC_PROG_FC])[LT_LANG(FC)])]) + +dnl The call to [A][M_PROG_GCJ] is quoted like that to stop aclocal +dnl pulling things in needlessly. +AC_PROVIDE_IFELSE([AC_PROG_GCJ], + [LT_LANG(GCJ)], + [AC_PROVIDE_IFELSE([A][M_PROG_GCJ], + [LT_LANG(GCJ)], + [AC_PROVIDE_IFELSE([LT_PROG_GCJ], + [LT_LANG(GCJ)], + [m4_ifdef([AC_PROG_GCJ], + [m4_define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[LT_LANG(GCJ)])]) + m4_ifdef([A][M_PROG_GCJ], + [m4_define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[LT_LANG(GCJ)])]) + m4_ifdef([LT_PROG_GCJ], + [m4_define([LT_PROG_GCJ], defn([LT_PROG_GCJ])[LT_LANG(GCJ)])])])])]) + +AC_PROVIDE_IFELSE([AC_PROG_GO], + [LT_LANG(GO)], + [m4_define([AC_PROG_GO], defn([AC_PROG_GO])[LT_LANG(GO)])]) + +AC_PROVIDE_IFELSE([LT_PROG_RC], + [LT_LANG(RC)], + [m4_define([LT_PROG_RC], defn([LT_PROG_RC])[LT_LANG(RC)])]) +])# _LT_LANG_DEFAULT_CONFIG + +# Obsolete macros: +AU_DEFUN([AC_LIBTOOL_CXX], [LT_LANG(C++)]) +AU_DEFUN([AC_LIBTOOL_F77], [LT_LANG(Fortran 77)]) +AU_DEFUN([AC_LIBTOOL_FC], [LT_LANG(Fortran)]) +AU_DEFUN([AC_LIBTOOL_GCJ], [LT_LANG(Java)]) +AU_DEFUN([AC_LIBTOOL_RC], [LT_LANG(Windows Resource)]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_CXX], []) +dnl AC_DEFUN([AC_LIBTOOL_F77], []) +dnl AC_DEFUN([AC_LIBTOOL_FC], []) +dnl AC_DEFUN([AC_LIBTOOL_GCJ], []) +dnl AC_DEFUN([AC_LIBTOOL_RC], []) + + +# _LT_TAG_COMPILER +# ---------------- +m4_defun([_LT_TAG_COMPILER], +[AC_REQUIRE([AC_PROG_CC])dnl + +_LT_DECL([LTCC], [CC], [1], [A C compiler])dnl +_LT_DECL([LTCFLAGS], [CFLAGS], [1], [LTCC compiler flags])dnl +_LT_TAGDECL([CC], [compiler], [1], [A language specific compiler])dnl +_LT_TAGDECL([with_gcc], [GCC], [0], [Is the compiler the GNU compiler?])dnl + +# If no C compiler was specified, use CC. +LTCC=${LTCC-"$CC"} + +# If no C compiler flags were specified, use CFLAGS. +LTCFLAGS=${LTCFLAGS-"$CFLAGS"} + +# Allow CC to be a program name with arguments. +compiler=$CC +])# _LT_TAG_COMPILER + + +# _LT_COMPILER_BOILERPLATE +# ------------------------ +# Check for compiler boilerplate output or warnings with +# the simple compiler test code. +m4_defun([_LT_COMPILER_BOILERPLATE], +[m4_require([_LT_DECL_SED])dnl +ac_outfile=conftest.$ac_objext +echo "$lt_simple_compile_test_code" >conftest.$ac_ext +eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_compiler_boilerplate=`cat conftest.err` +$RM conftest* +])# _LT_COMPILER_BOILERPLATE + + +# _LT_LINKER_BOILERPLATE +# ---------------------- +# Check for linker boilerplate output or warnings with +# the simple link test code. +m4_defun([_LT_LINKER_BOILERPLATE], +[m4_require([_LT_DECL_SED])dnl +ac_outfile=conftest.$ac_objext +echo "$lt_simple_link_test_code" >conftest.$ac_ext +eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_linker_boilerplate=`cat conftest.err` +$RM -r conftest* +])# _LT_LINKER_BOILERPLATE + +# _LT_REQUIRED_DARWIN_CHECKS +# ------------------------- +m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[ + case $host_os in + rhapsody* | darwin*) + AC_CHECK_TOOL([DSYMUTIL], [dsymutil], [:]) + AC_CHECK_TOOL([NMEDIT], [nmedit], [:]) + AC_CHECK_TOOL([LIPO], [lipo], [:]) + AC_CHECK_TOOL([OTOOL], [otool], [:]) + AC_CHECK_TOOL([OTOOL64], [otool64], [:]) + _LT_DECL([], [DSYMUTIL], [1], + [Tool to manipulate archived DWARF debug symbol files on Mac OS X]) + _LT_DECL([], [NMEDIT], [1], + [Tool to change global to local symbols on Mac OS X]) + _LT_DECL([], [LIPO], [1], + [Tool to manipulate fat objects and archives on Mac OS X]) + _LT_DECL([], [OTOOL], [1], + [ldd/readelf like tool for Mach-O binaries on Mac OS X]) + _LT_DECL([], [OTOOL64], [1], + [ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4]) + + AC_CACHE_CHECK([for -single_module linker flag],[lt_cv_apple_cc_single_mod], + [lt_cv_apple_cc_single_mod=no + if test -z "${LT_MULTI_MODULE}"; then + # By default we will add the -single_module flag. You can override + # by either setting the environment variable LT_MULTI_MODULE + # non-empty at configure time, or by adding -multi_module to the + # link flags. + rm -rf libconftest.dylib* + echo "int foo(void){return 1;}" > conftest.c + echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ +-dynamiclib -Wl,-single_module conftest.c" >&AS_MESSAGE_LOG_FD + $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ + -dynamiclib -Wl,-single_module conftest.c 2>conftest.err + _lt_result=$? + # If there is a non-empty error log, and "single_module" + # appears in it, assume the flag caused a linker warning + if test -s conftest.err && $GREP single_module conftest.err; then + cat conftest.err >&AS_MESSAGE_LOG_FD + # Otherwise, if the output was created with a 0 exit code from + # the compiler, it worked. + elif test -f libconftest.dylib && test $_lt_result -eq 0; then + lt_cv_apple_cc_single_mod=yes + else + cat conftest.err >&AS_MESSAGE_LOG_FD + fi + rm -rf libconftest.dylib* + rm -f conftest.* + fi]) + + AC_CACHE_CHECK([for -exported_symbols_list linker flag], + [lt_cv_ld_exported_symbols_list], + [lt_cv_ld_exported_symbols_list=no + save_LDFLAGS=$LDFLAGS + echo "_main" > conftest.sym + LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" + AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], + [lt_cv_ld_exported_symbols_list=yes], + [lt_cv_ld_exported_symbols_list=no]) + LDFLAGS="$save_LDFLAGS" + ]) + + AC_CACHE_CHECK([for -force_load linker flag],[lt_cv_ld_force_load], + [lt_cv_ld_force_load=no + cat > conftest.c << _LT_EOF +int forced_loaded() { return 2;} +_LT_EOF + echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&AS_MESSAGE_LOG_FD + $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&AS_MESSAGE_LOG_FD + echo "$AR cru libconftest.a conftest.o" >&AS_MESSAGE_LOG_FD + $AR cru libconftest.a conftest.o 2>&AS_MESSAGE_LOG_FD + echo "$RANLIB libconftest.a" >&AS_MESSAGE_LOG_FD + $RANLIB libconftest.a 2>&AS_MESSAGE_LOG_FD + cat > conftest.c << _LT_EOF +int main() { return 0;} +_LT_EOF + echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&AS_MESSAGE_LOG_FD + $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err + _lt_result=$? + if test -s conftest.err && $GREP force_load conftest.err; then + cat conftest.err >&AS_MESSAGE_LOG_FD + elif test -f conftest && test $_lt_result -eq 0 && $GREP forced_load conftest >/dev/null 2>&1 ; then + lt_cv_ld_force_load=yes + else + cat conftest.err >&AS_MESSAGE_LOG_FD + fi + rm -f conftest.err libconftest.a conftest conftest.c + rm -rf conftest.dSYM + ]) + case $host_os in + rhapsody* | darwin1.[[012]]) + _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;; + darwin1.*) + _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; + darwin*) # darwin 5.x on + # if running on 10.5 or later, the deployment target defaults + # to the OS version, if on x86, and 10.4, the deployment + # target defaults to 10.4. Don't you love it? + case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in + 10.0,*86*-darwin8*|10.0,*-darwin[[91]]*) + _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; + 10.[[012]]*) + _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; + 10.*) + _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; + esac + ;; + esac + if test "$lt_cv_apple_cc_single_mod" = "yes"; then + _lt_dar_single_mod='$single_module' + fi + if test "$lt_cv_ld_exported_symbols_list" = "yes"; then + _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym' + else + _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}' + fi + if test "$DSYMUTIL" != ":" && test "$lt_cv_ld_force_load" = "no"; then + _lt_dsymutil='~$DSYMUTIL $lib || :' + else + _lt_dsymutil= + fi + ;; + esac +]) + + +# _LT_DARWIN_LINKER_FEATURES([TAG]) +# --------------------------------- +# Checks for linker and compiler features on darwin +m4_defun([_LT_DARWIN_LINKER_FEATURES], +[ + m4_require([_LT_REQUIRED_DARWIN_CHECKS]) + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_automatic, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported + if test "$lt_cv_ld_force_load" = "yes"; then + _LT_TAGVAR(whole_archive_flag_spec, $1)='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' + m4_case([$1], [F77], [_LT_TAGVAR(compiler_needs_object, $1)=yes], + [FC], [_LT_TAGVAR(compiler_needs_object, $1)=yes]) + else + _LT_TAGVAR(whole_archive_flag_spec, $1)='' + fi + _LT_TAGVAR(link_all_deplibs, $1)=yes + _LT_TAGVAR(allow_undefined_flag, $1)="$_lt_dar_allow_undefined" + case $cc_basename in + ifort*) _lt_dar_can_shared=yes ;; + *) _lt_dar_can_shared=$GCC ;; + esac + if test "$_lt_dar_can_shared" = "yes"; then + output_verbose_link_cmd=func_echo_all + _LT_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" + _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" + _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" + _LT_TAGVAR(module_expsym_cmds, $1)="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" + m4_if([$1], [CXX], +[ if test "$lt_cv_apple_cc_single_mod" != "yes"; then + _LT_TAGVAR(archive_cmds, $1)="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dsymutil}" + _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dar_export_syms}${_lt_dsymutil}" + fi +],[]) + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi +]) + +# _LT_SYS_MODULE_PATH_AIX([TAGNAME]) +# ---------------------------------- +# Links a minimal program and checks the executable +# for the system default hardcoded library path. In most cases, +# this is /usr/lib:/lib, but when the MPI compilers are used +# the location of the communication and MPI libs are included too. +# If we don't find anything, use the default library path according +# to the aix ld manual. +# Store the results from the different compilers for each TAGNAME. +# Allow to override them for all tags through lt_cv_aix_libpath. +m4_defun([_LT_SYS_MODULE_PATH_AIX], +[m4_require([_LT_DECL_SED])dnl +if test "${lt_cv_aix_libpath+set}" = set; then + aix_libpath=$lt_cv_aix_libpath +else + AC_CACHE_VAL([_LT_TAGVAR([lt_cv_aix_libpath_], [$1])], + [AC_LINK_IFELSE([AC_LANG_PROGRAM],[ + lt_aix_libpath_sed='[ + /Import File Strings/,/^$/ { + /^0/ { + s/^0 *\([^ ]*\) *$/\1/ + p + } + }]' + _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + # Check for a 64-bit object if we didn't find anything. + if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then + _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + fi],[]) + if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then + _LT_TAGVAR([lt_cv_aix_libpath_], [$1])="/usr/lib:/lib" + fi + ]) + aix_libpath=$_LT_TAGVAR([lt_cv_aix_libpath_], [$1]) +fi +])# _LT_SYS_MODULE_PATH_AIX + + +# _LT_SHELL_INIT(ARG) +# ------------------- +m4_define([_LT_SHELL_INIT], +[m4_divert_text([M4SH-INIT], [$1 +])])# _LT_SHELL_INIT + + + +# _LT_PROG_ECHO_BACKSLASH +# ----------------------- +# Find how we can fake an echo command that does not interpret backslash. +# In particular, with Autoconf 2.60 or later we add some code to the start +# of the generated configure script which will find a shell with a builtin +# printf (which we can use as an echo command). +m4_defun([_LT_PROG_ECHO_BACKSLASH], +[ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' +ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO +ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO + +AC_MSG_CHECKING([how to print strings]) +# Test print first, because it will be a builtin if present. +if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ + test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then + ECHO='print -r --' +elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then + ECHO='printf %s\n' +else + # Use this function as a fallback that always works. + func_fallback_echo () + { + eval 'cat <<_LTECHO_EOF +$[]1 +_LTECHO_EOF' + } + ECHO='func_fallback_echo' +fi + +# func_echo_all arg... +# Invoke $ECHO with all args, space-separated. +func_echo_all () +{ + $ECHO "$*" +} + +case "$ECHO" in + printf*) AC_MSG_RESULT([printf]) ;; + print*) AC_MSG_RESULT([print -r]) ;; + *) AC_MSG_RESULT([cat]) ;; +esac + +m4_ifdef([_AS_DETECT_SUGGESTED], +[_AS_DETECT_SUGGESTED([ + test -n "${ZSH_VERSION+set}${BASH_VERSION+set}" || ( + ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO + ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO + PATH=/empty FPATH=/empty; export PATH FPATH + test "X`printf %s $ECHO`" = "X$ECHO" \ + || test "X`print -r -- $ECHO`" = "X$ECHO" )])]) + +_LT_DECL([], [SHELL], [1], [Shell to use when invoking shell scripts]) +_LT_DECL([], [ECHO], [1], [An echo program that protects backslashes]) +])# _LT_PROG_ECHO_BACKSLASH + + +# _LT_WITH_SYSROOT +# ---------------- +AC_DEFUN([_LT_WITH_SYSROOT], +[AC_MSG_CHECKING([for sysroot]) +AC_ARG_WITH([sysroot], +[ --with-sysroot[=DIR] Search for dependent libraries within DIR + (or the compiler's sysroot if not specified).], +[], [with_sysroot=no]) + +dnl lt_sysroot will always be passed unquoted. We quote it here +dnl in case the user passed a directory name. +lt_sysroot= +case ${with_sysroot} in #( + yes) + if test "$GCC" = yes; then + lt_sysroot=`$CC --print-sysroot 2>/dev/null` + fi + ;; #( + /*) + lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"` + ;; #( + no|'') + ;; #( + *) + AC_MSG_RESULT([${with_sysroot}]) + AC_MSG_ERROR([The sysroot must be an absolute path.]) + ;; +esac + + AC_MSG_RESULT([${lt_sysroot:-no}]) +_LT_DECL([], [lt_sysroot], [0], [The root where to search for ]dnl +[dependent libraries, and in which our libraries should be installed.])]) + +# _LT_ENABLE_LOCK +# --------------- +m4_defun([_LT_ENABLE_LOCK], +[AC_ARG_ENABLE([libtool-lock], + [AS_HELP_STRING([--disable-libtool-lock], + [avoid locking (might break parallel builds)])]) +test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes + +# Some flags need to be propagated to the compiler or linker for good +# libtool support. +case $host in +ia64-*-hpux*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + case `/usr/bin/file conftest.$ac_objext` in + *ELF-32*) + HPUX_IA64_MODE="32" + ;; + *ELF-64*) + HPUX_IA64_MODE="64" + ;; + esac + fi + rm -rf conftest* + ;; +*-*-irix6*) + # Find out which ABI we are using. + echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + if test "$lt_cv_prog_gnu_ld" = yes; then + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + LD="${LD-ld} -melf32bsmip" + ;; + *N32*) + LD="${LD-ld} -melf32bmipn32" + ;; + *64-bit*) + LD="${LD-ld} -melf64bmip" + ;; + esac + else + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + LD="${LD-ld} -32" + ;; + *N32*) + LD="${LD-ld} -n32" + ;; + *64-bit*) + LD="${LD-ld} -64" + ;; + esac + fi + fi + rm -rf conftest* + ;; + +x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \ +s390*-*linux*|s390*-*tpf*|sparc*-*linux*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + case `/usr/bin/file conftest.o` in + *32-bit*) + case $host in + x86_64-*kfreebsd*-gnu) + LD="${LD-ld} -m elf_i386_fbsd" + ;; + x86_64-*linux*) + case `/usr/bin/file conftest.o` in + *x86-64*) + LD="${LD-ld} -m elf32_x86_64" + ;; + *) + LD="${LD-ld} -m elf_i386" + ;; + esac + ;; + powerpc64le-*) + LD="${LD-ld} -m elf32lppclinux" + ;; + powerpc64-*) + LD="${LD-ld} -m elf32ppclinux" + ;; + s390x-*linux*) + LD="${LD-ld} -m elf_s390" + ;; + sparc64-*linux*) + LD="${LD-ld} -m elf32_sparc" + ;; + esac + ;; + *64-bit*) + case $host in + x86_64-*kfreebsd*-gnu) + LD="${LD-ld} -m elf_x86_64_fbsd" + ;; + x86_64-*linux*) + LD="${LD-ld} -m elf_x86_64" + ;; + powerpcle-*) + LD="${LD-ld} -m elf64lppc" + ;; + powerpc-*) + LD="${LD-ld} -m elf64ppc" + ;; + s390*-*linux*|s390*-*tpf*) + LD="${LD-ld} -m elf64_s390" + ;; + sparc*-*linux*) + LD="${LD-ld} -m elf64_sparc" + ;; + esac + ;; + esac + fi + rm -rf conftest* + ;; + +*-*-sco3.2v5*) + # On SCO OpenServer 5, we need -belf to get full-featured binaries. + SAVE_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -belf" + AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf, + [AC_LANG_PUSH(C) + AC_LINK_IFELSE([AC_LANG_PROGRAM([[]],[[]])],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no]) + AC_LANG_POP]) + if test x"$lt_cv_cc_needs_belf" != x"yes"; then + # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf + CFLAGS="$SAVE_CFLAGS" + fi + ;; +*-*solaris*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + case `/usr/bin/file conftest.o` in + *64-bit*) + case $lt_cv_prog_gnu_ld in + yes*) + case $host in + i?86-*-solaris*) + LD="${LD-ld} -m elf_x86_64" + ;; + sparc*-*-solaris*) + LD="${LD-ld} -m elf64_sparc" + ;; + esac + # GNU ld 2.21 introduced _sol2 emulations. Use them if available. + if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then + LD="${LD-ld}_sol2" + fi + ;; + *) + if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then + LD="${LD-ld} -64" + fi + ;; + esac + ;; + esac + fi + rm -rf conftest* + ;; +esac + +need_locks="$enable_libtool_lock" +])# _LT_ENABLE_LOCK + + +# _LT_PROG_AR +# ----------- +m4_defun([_LT_PROG_AR], +[AC_CHECK_TOOLS(AR, [ar], false) +: ${AR=ar} +: ${AR_FLAGS=cru} +_LT_DECL([], [AR], [1], [The archiver]) +_LT_DECL([], [AR_FLAGS], [1], [Flags to create an archive]) + +AC_CACHE_CHECK([for archiver @FILE support], [lt_cv_ar_at_file], + [lt_cv_ar_at_file=no + AC_COMPILE_IFELSE([AC_LANG_PROGRAM], + [echo conftest.$ac_objext > conftest.lst + lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&AS_MESSAGE_LOG_FD' + AC_TRY_EVAL([lt_ar_try]) + if test "$ac_status" -eq 0; then + # Ensure the archiver fails upon bogus file names. + rm -f conftest.$ac_objext libconftest.a + AC_TRY_EVAL([lt_ar_try]) + if test "$ac_status" -ne 0; then + lt_cv_ar_at_file=@ + fi + fi + rm -f conftest.* libconftest.a + ]) + ]) + +if test "x$lt_cv_ar_at_file" = xno; then + archiver_list_spec= +else + archiver_list_spec=$lt_cv_ar_at_file +fi +_LT_DECL([], [archiver_list_spec], [1], + [How to feed a file listing to the archiver]) +])# _LT_PROG_AR + + +# _LT_CMD_OLD_ARCHIVE +# ------------------- +m4_defun([_LT_CMD_OLD_ARCHIVE], +[_LT_PROG_AR + +AC_CHECK_TOOL(STRIP, strip, :) +test -z "$STRIP" && STRIP=: +_LT_DECL([], [STRIP], [1], [A symbol stripping program]) + +AC_CHECK_TOOL(RANLIB, ranlib, :) +test -z "$RANLIB" && RANLIB=: +_LT_DECL([], [RANLIB], [1], + [Commands used to install an old-style archive]) + +# Determine commands to create old-style static archives. +old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' +old_postinstall_cmds='chmod 644 $oldlib' +old_postuninstall_cmds= + +if test -n "$RANLIB"; then + case $host_os in + openbsd*) + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib" + ;; + *) + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib" + ;; + esac + old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib" +fi + +case $host_os in + darwin*) + lock_old_archive_extraction=yes ;; + *) + lock_old_archive_extraction=no ;; +esac +_LT_DECL([], [old_postinstall_cmds], [2]) +_LT_DECL([], [old_postuninstall_cmds], [2]) +_LT_TAGDECL([], [old_archive_cmds], [2], + [Commands used to build an old-style archive]) +_LT_DECL([], [lock_old_archive_extraction], [0], + [Whether to use a lock for old archive extraction]) +])# _LT_CMD_OLD_ARCHIVE + + +# _LT_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, +# [OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE]) +# ---------------------------------------------------------------- +# Check whether the given compiler option works +AC_DEFUN([_LT_COMPILER_OPTION], +[m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_DECL_SED])dnl +AC_CACHE_CHECK([$1], [$2], + [$2=no + m4_if([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4]) + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + lt_compiler_flag="$3" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + # The option is referenced via a variable to avoid confusing sed. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&AS_MESSAGE_LOG_FD + echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings other than the usual output. + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then + $2=yes + fi + fi + $RM conftest* +]) + +if test x"[$]$2" = xyes; then + m4_if([$5], , :, [$5]) +else + m4_if([$6], , :, [$6]) +fi +])# _LT_COMPILER_OPTION + +# Old name: +AU_ALIAS([AC_LIBTOOL_COMPILER_OPTION], [_LT_COMPILER_OPTION]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION], []) + + +# _LT_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, +# [ACTION-SUCCESS], [ACTION-FAILURE]) +# ---------------------------------------------------- +# Check whether the given linker option works +AC_DEFUN([_LT_LINKER_OPTION], +[m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_DECL_SED])dnl +AC_CACHE_CHECK([$1], [$2], + [$2=no + save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS $3" + echo "$lt_simple_link_test_code" > conftest.$ac_ext + if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then + # The linker can only warn and ignore the option if not recognized + # So say no if there are warnings + if test -s conftest.err; then + # Append any errors to the config.log. + cat conftest.err 1>&AS_MESSAGE_LOG_FD + $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if diff conftest.exp conftest.er2 >/dev/null; then + $2=yes + fi + else + $2=yes + fi + fi + $RM -r conftest* + LDFLAGS="$save_LDFLAGS" +]) + +if test x"[$]$2" = xyes; then + m4_if([$4], , :, [$4]) +else + m4_if([$5], , :, [$5]) +fi +])# _LT_LINKER_OPTION + +# Old name: +AU_ALIAS([AC_LIBTOOL_LINKER_OPTION], [_LT_LINKER_OPTION]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_LINKER_OPTION], []) + + +# LT_CMD_MAX_LEN +#--------------- +AC_DEFUN([LT_CMD_MAX_LEN], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +# find the maximum length of command line arguments +AC_MSG_CHECKING([the maximum length of command line arguments]) +AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl + i=0 + teststring="ABCD" + + case $build_os in + msdosdjgpp*) + # On DJGPP, this test can blow up pretty badly due to problems in libc + # (any single argument exceeding 2000 bytes causes a buffer overrun + # during glob expansion). Even if it were fixed, the result of this + # check would be larger than it should be. + lt_cv_sys_max_cmd_len=12288; # 12K is about right + ;; + + gnu*) + # Under GNU Hurd, this test is not required because there is + # no limit to the length of command line arguments. + # Libtool will interpret -1 as no limit whatsoever + lt_cv_sys_max_cmd_len=-1; + ;; + + cygwin* | mingw* | cegcc*) + # On Win9x/ME, this test blows up -- it succeeds, but takes + # about 5 minutes as the teststring grows exponentially. + # Worse, since 9x/ME are not pre-emptively multitasking, + # you end up with a "frozen" computer, even though with patience + # the test eventually succeeds (with a max line length of 256k). + # Instead, let's just punt: use the minimum linelength reported by + # all of the supported platforms: 8192 (on NT/2K/XP). + lt_cv_sys_max_cmd_len=8192; + ;; + + mint*) + # On MiNT this can take a long time and run out of memory. + lt_cv_sys_max_cmd_len=8192; + ;; + + amigaos*) + # On AmigaOS with pdksh, this test takes hours, literally. + # So we just punt and use a minimum line length of 8192. + lt_cv_sys_max_cmd_len=8192; + ;; + + netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) + # This has been around since 386BSD, at least. Likely further. + if test -x /sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` + elif test -x /usr/sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` + else + lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs + fi + # And add a safety zone + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` + ;; + + interix*) + # We know the value 262144 and hardcode it with a safety zone (like BSD) + lt_cv_sys_max_cmd_len=196608 + ;; + + os2*) + # The test takes a long time on OS/2. + lt_cv_sys_max_cmd_len=8192 + ;; + + osf*) + # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure + # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not + # nice to cause kernel panics so lets avoid the loop below. + # First set a reasonable default. + lt_cv_sys_max_cmd_len=16384 + # + if test -x /sbin/sysconfig; then + case `/sbin/sysconfig -q proc exec_disable_arg_limit` in + *1*) lt_cv_sys_max_cmd_len=-1 ;; + esac + fi + ;; + sco3.2v5*) + lt_cv_sys_max_cmd_len=102400 + ;; + sysv5* | sco5v6* | sysv4.2uw2*) + kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` + if test -n "$kargmax"; then + lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[[ ]]//'` + else + lt_cv_sys_max_cmd_len=32768 + fi + ;; + *) + lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` + if test -n "$lt_cv_sys_max_cmd_len" && \ + test undefined != "$lt_cv_sys_max_cmd_len"; then + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` + else + # Make teststring a little bigger before we do anything with it. + # a 1K string should be a reasonable start. + for i in 1 2 3 4 5 6 7 8 ; do + teststring=$teststring$teststring + done + SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} + # If test is not a shell built-in, we'll probably end up computing a + # maximum length that is only half of the actual maximum length, but + # we can't tell. + while { test "X"`env echo "$teststring$teststring" 2>/dev/null` \ + = "X$teststring$teststring"; } >/dev/null 2>&1 && + test $i != 17 # 1/2 MB should be enough + do + i=`expr $i + 1` + teststring=$teststring$teststring + done + # Only check the string length outside the loop. + lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` + teststring= + # Add a significant safety factor because C++ compilers can tack on + # massive amounts of additional arguments before passing them to the + # linker. It appears as though 1/2 is a usable value. + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` + fi + ;; + esac +]) +if test -n $lt_cv_sys_max_cmd_len ; then + AC_MSG_RESULT($lt_cv_sys_max_cmd_len) +else + AC_MSG_RESULT(none) +fi +max_cmd_len=$lt_cv_sys_max_cmd_len +_LT_DECL([], [max_cmd_len], [0], + [What is the maximum length of a command?]) +])# LT_CMD_MAX_LEN + +# Old name: +AU_ALIAS([AC_LIBTOOL_SYS_MAX_CMD_LEN], [LT_CMD_MAX_LEN]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], []) + + +# _LT_HEADER_DLFCN +# ---------------- +m4_defun([_LT_HEADER_DLFCN], +[AC_CHECK_HEADERS([dlfcn.h], [], [], [AC_INCLUDES_DEFAULT])dnl +])# _LT_HEADER_DLFCN + + +# _LT_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE, +# ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING) +# ---------------------------------------------------------------- +m4_defun([_LT_TRY_DLOPEN_SELF], +[m4_require([_LT_HEADER_DLFCN])dnl +if test "$cross_compiling" = yes; then : + [$4] +else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext <<_LT_EOF +[#line $LINENO "configure" +#include "confdefs.h" + +#if HAVE_DLFCN_H +#include +#endif + +#include + +#ifdef RTLD_GLOBAL +# define LT_DLGLOBAL RTLD_GLOBAL +#else +# ifdef DL_GLOBAL +# define LT_DLGLOBAL DL_GLOBAL +# else +# define LT_DLGLOBAL 0 +# endif +#endif + +/* We may have to define LT_DLLAZY_OR_NOW in the command line if we + find out it does not work in some platform. */ +#ifndef LT_DLLAZY_OR_NOW +# ifdef RTLD_LAZY +# define LT_DLLAZY_OR_NOW RTLD_LAZY +# else +# ifdef DL_LAZY +# define LT_DLLAZY_OR_NOW DL_LAZY +# else +# ifdef RTLD_NOW +# define LT_DLLAZY_OR_NOW RTLD_NOW +# else +# ifdef DL_NOW +# define LT_DLLAZY_OR_NOW DL_NOW +# else +# define LT_DLLAZY_OR_NOW 0 +# endif +# endif +# endif +# endif +#endif + +/* When -fvisbility=hidden is used, assume the code has been annotated + correspondingly for the symbols needed. */ +#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) +int fnord () __attribute__((visibility("default"))); +#endif + +int fnord () { return 42; } +int main () +{ + void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); + int status = $lt_dlunknown; + + if (self) + { + if (dlsym (self,"fnord")) status = $lt_dlno_uscore; + else + { + if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; + else puts (dlerror ()); + } + /* dlclose (self); */ + } + else + puts (dlerror ()); + + return status; +}] +_LT_EOF + if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} 2>/dev/null; then + (./conftest; exit; ) >&AS_MESSAGE_LOG_FD 2>/dev/null + lt_status=$? + case x$lt_status in + x$lt_dlno_uscore) $1 ;; + x$lt_dlneed_uscore) $2 ;; + x$lt_dlunknown|x*) $3 ;; + esac + else : + # compilation failed + $3 + fi +fi +rm -fr conftest* +])# _LT_TRY_DLOPEN_SELF + + +# LT_SYS_DLOPEN_SELF +# ------------------ +AC_DEFUN([LT_SYS_DLOPEN_SELF], +[m4_require([_LT_HEADER_DLFCN])dnl +if test "x$enable_dlopen" != xyes; then + enable_dlopen=unknown + enable_dlopen_self=unknown + enable_dlopen_self_static=unknown +else + lt_cv_dlopen=no + lt_cv_dlopen_libs= + + case $host_os in + beos*) + lt_cv_dlopen="load_add_on" + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + ;; + + mingw* | pw32* | cegcc*) + lt_cv_dlopen="LoadLibrary" + lt_cv_dlopen_libs= + ;; + + cygwin*) + lt_cv_dlopen="dlopen" + lt_cv_dlopen_libs= + ;; + + darwin*) + # if libdl is installed we need to link against it + AC_CHECK_LIB([dl], [dlopen], + [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],[ + lt_cv_dlopen="dyld" + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + ]) + ;; + + *) + AC_CHECK_FUNC([shl_load], + [lt_cv_dlopen="shl_load"], + [AC_CHECK_LIB([dld], [shl_load], + [lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"], + [AC_CHECK_FUNC([dlopen], + [lt_cv_dlopen="dlopen"], + [AC_CHECK_LIB([dl], [dlopen], + [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"], + [AC_CHECK_LIB([svld], [dlopen], + [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"], + [AC_CHECK_LIB([dld], [dld_link], + [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"]) + ]) + ]) + ]) + ]) + ]) + ;; + esac + + if test "x$lt_cv_dlopen" != xno; then + enable_dlopen=yes + else + enable_dlopen=no + fi + + case $lt_cv_dlopen in + dlopen) + save_CPPFLAGS="$CPPFLAGS" + test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" + + save_LDFLAGS="$LDFLAGS" + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" + + save_LIBS="$LIBS" + LIBS="$lt_cv_dlopen_libs $LIBS" + + AC_CACHE_CHECK([whether a program can dlopen itself], + lt_cv_dlopen_self, [dnl + _LT_TRY_DLOPEN_SELF( + lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes, + lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross) + ]) + + if test "x$lt_cv_dlopen_self" = xyes; then + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" + AC_CACHE_CHECK([whether a statically linked program can dlopen itself], + lt_cv_dlopen_self_static, [dnl + _LT_TRY_DLOPEN_SELF( + lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes, + lt_cv_dlopen_self_static=no, lt_cv_dlopen_self_static=cross) + ]) + fi + + CPPFLAGS="$save_CPPFLAGS" + LDFLAGS="$save_LDFLAGS" + LIBS="$save_LIBS" + ;; + esac + + case $lt_cv_dlopen_self in + yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; + *) enable_dlopen_self=unknown ;; + esac + + case $lt_cv_dlopen_self_static in + yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; + *) enable_dlopen_self_static=unknown ;; + esac +fi +_LT_DECL([dlopen_support], [enable_dlopen], [0], + [Whether dlopen is supported]) +_LT_DECL([dlopen_self], [enable_dlopen_self], [0], + [Whether dlopen of programs is supported]) +_LT_DECL([dlopen_self_static], [enable_dlopen_self_static], [0], + [Whether dlopen of statically linked programs is supported]) +])# LT_SYS_DLOPEN_SELF + +# Old name: +AU_ALIAS([AC_LIBTOOL_DLOPEN_SELF], [LT_SYS_DLOPEN_SELF]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], []) + + +# _LT_COMPILER_C_O([TAGNAME]) +# --------------------------- +# Check to see if options -c and -o are simultaneously supported by compiler. +# This macro does not hard code the compiler like AC_PROG_CC_C_O. +m4_defun([_LT_COMPILER_C_O], +[m4_require([_LT_DECL_SED])dnl +m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_TAG_COMPILER])dnl +AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext], + [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)], + [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no + $RM -r conftest 2>/dev/null + mkdir conftest + cd conftest + mkdir out + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + lt_compiler_flag="-o out/conftest2.$ac_objext" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD) + (eval "$lt_compile" 2>out/conftest.err) + ac_status=$? + cat out/conftest.err >&AS_MESSAGE_LOG_FD + echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD + if (exit $ac_status) && test -s out/conftest2.$ac_objext + then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp + $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 + if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then + _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes + fi + fi + chmod u+w . 2>&AS_MESSAGE_LOG_FD + $RM conftest* + # SGI C++ compiler will create directory out/ii_files/ for + # template instantiation + test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files + $RM out/* && rmdir out + cd .. + $RM -r conftest + $RM conftest* +]) +_LT_TAGDECL([compiler_c_o], [lt_cv_prog_compiler_c_o], [1], + [Does compiler simultaneously support -c and -o options?]) +])# _LT_COMPILER_C_O + + +# _LT_COMPILER_FILE_LOCKS([TAGNAME]) +# ---------------------------------- +# Check to see if we can do hard links to lock some files if needed +m4_defun([_LT_COMPILER_FILE_LOCKS], +[m4_require([_LT_ENABLE_LOCK])dnl +m4_require([_LT_FILEUTILS_DEFAULTS])dnl +_LT_COMPILER_C_O([$1]) + +hard_links="nottested" +if test "$_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)" = no && test "$need_locks" != no; then + # do not overwrite the value of need_locks provided by the user + AC_MSG_CHECKING([if we can lock with hard links]) + hard_links=yes + $RM conftest* + ln conftest.a conftest.b 2>/dev/null && hard_links=no + touch conftest.a + ln conftest.a conftest.b 2>&5 || hard_links=no + ln conftest.a conftest.b 2>/dev/null && hard_links=no + AC_MSG_RESULT([$hard_links]) + if test "$hard_links" = no; then + AC_MSG_WARN([`$CC' does not support `-c -o', so `make -j' may be unsafe]) + need_locks=warn + fi +else + need_locks=no +fi +_LT_DECL([], [need_locks], [1], [Must we lock files when doing compilation?]) +])# _LT_COMPILER_FILE_LOCKS + + +# _LT_CHECK_OBJDIR +# ---------------- +m4_defun([_LT_CHECK_OBJDIR], +[AC_CACHE_CHECK([for objdir], [lt_cv_objdir], +[rm -f .libs 2>/dev/null +mkdir .libs 2>/dev/null +if test -d .libs; then + lt_cv_objdir=.libs +else + # MS-DOS does not allow filenames that begin with a dot. + lt_cv_objdir=_libs +fi +rmdir .libs 2>/dev/null]) +objdir=$lt_cv_objdir +_LT_DECL([], [objdir], [0], + [The name of the directory that contains temporary libtool files])dnl +m4_pattern_allow([LT_OBJDIR])dnl +AC_DEFINE_UNQUOTED(LT_OBJDIR, "$lt_cv_objdir/", + [Define to the sub-directory in which libtool stores uninstalled libraries.]) +])# _LT_CHECK_OBJDIR + + +# _LT_LINKER_HARDCODE_LIBPATH([TAGNAME]) +# -------------------------------------- +# Check hardcoding attributes. +m4_defun([_LT_LINKER_HARDCODE_LIBPATH], +[AC_MSG_CHECKING([how to hardcode library paths into programs]) +_LT_TAGVAR(hardcode_action, $1)= +if test -n "$_LT_TAGVAR(hardcode_libdir_flag_spec, $1)" || + test -n "$_LT_TAGVAR(runpath_var, $1)" || + test "X$_LT_TAGVAR(hardcode_automatic, $1)" = "Xyes" ; then + + # We can hardcode non-existent directories. + if test "$_LT_TAGVAR(hardcode_direct, $1)" != no && + # If the only mechanism to avoid hardcoding is shlibpath_var, we + # have to relink, otherwise we might link with an installed library + # when we should be linking with a yet-to-be-installed one + ## test "$_LT_TAGVAR(hardcode_shlibpath_var, $1)" != no && + test "$_LT_TAGVAR(hardcode_minus_L, $1)" != no; then + # Linking always hardcodes the temporary library directory. + _LT_TAGVAR(hardcode_action, $1)=relink + else + # We can link without hardcoding, and we can hardcode nonexisting dirs. + _LT_TAGVAR(hardcode_action, $1)=immediate + fi +else + # We cannot hardcode anything, or else we can only hardcode existing + # directories. + _LT_TAGVAR(hardcode_action, $1)=unsupported +fi +AC_MSG_RESULT([$_LT_TAGVAR(hardcode_action, $1)]) + +if test "$_LT_TAGVAR(hardcode_action, $1)" = relink || + test "$_LT_TAGVAR(inherit_rpath, $1)" = yes; then + # Fast installation is not supported + enable_fast_install=no +elif test "$shlibpath_overrides_runpath" = yes || + test "$enable_shared" = no; then + # Fast installation is not necessary + enable_fast_install=needless +fi +_LT_TAGDECL([], [hardcode_action], [0], + [How to hardcode a shared library path into an executable]) +])# _LT_LINKER_HARDCODE_LIBPATH + + +# _LT_CMD_STRIPLIB +# ---------------- +m4_defun([_LT_CMD_STRIPLIB], +[m4_require([_LT_DECL_EGREP]) +striplib= +old_striplib= +AC_MSG_CHECKING([whether stripping libraries is possible]) +if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then + test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" + test -z "$striplib" && striplib="$STRIP --strip-unneeded" + AC_MSG_RESULT([yes]) +else +# FIXME - insert some real tests, host_os isn't really good enough + case $host_os in + darwin*) + if test -n "$STRIP" ; then + striplib="$STRIP -x" + old_striplib="$STRIP -S" + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + fi + ;; + *) + AC_MSG_RESULT([no]) + ;; + esac +fi +_LT_DECL([], [old_striplib], [1], [Commands to strip libraries]) +_LT_DECL([], [striplib], [1]) +])# _LT_CMD_STRIPLIB + + +# _LT_SYS_DYNAMIC_LINKER([TAG]) +# ----------------------------- +# PORTME Fill in your ld.so characteristics +m4_defun([_LT_SYS_DYNAMIC_LINKER], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +m4_require([_LT_DECL_EGREP])dnl +m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_DECL_OBJDUMP])dnl +m4_require([_LT_DECL_SED])dnl +m4_require([_LT_CHECK_SHELL_FEATURES])dnl +AC_MSG_CHECKING([dynamic linker characteristics]) +m4_if([$1], + [], [ +if test "$GCC" = yes; then + case $host_os in + darwin*) lt_awk_arg="/^libraries:/,/LR/" ;; + *) lt_awk_arg="/^libraries:/" ;; + esac + case $host_os in + mingw* | cegcc*) lt_sed_strip_eq="s,=\([[A-Za-z]]:\),\1,g" ;; + *) lt_sed_strip_eq="s,=/,/,g" ;; + esac + lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq` + case $lt_search_path_spec in + *\;*) + # if the path contains ";" then we assume it to be the separator + # otherwise default to the standard path separator (i.e. ":") - it is + # assumed that no part of a normal pathname contains ";" but that should + # okay in the real world where ";" in dirpaths is itself problematic. + lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'` + ;; + *) + lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"` + ;; + esac + # Ok, now we have the path, separated by spaces, we can step through it + # and add multilib dir if necessary. + lt_tmp_lt_search_path_spec= + lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` + for lt_sys_path in $lt_search_path_spec; do + if test -d "$lt_sys_path/$lt_multi_os_dir"; then + lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir" + else + test -d "$lt_sys_path" && \ + lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" + fi + done + lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk ' +BEGIN {RS=" "; FS="/|\n";} { + lt_foo=""; + lt_count=0; + for (lt_i = NF; lt_i > 0; lt_i--) { + if ($lt_i != "" && $lt_i != ".") { + if ($lt_i == "..") { + lt_count++; + } else { + if (lt_count == 0) { + lt_foo="/" $lt_i lt_foo; + } else { + lt_count--; + } + } + } + } + if (lt_foo != "") { lt_freq[[lt_foo]]++; } + if (lt_freq[[lt_foo]] == 1) { print lt_foo; } +}'` + # AWK program above erroneously prepends '/' to C:/dos/paths + # for these hosts. + case $host_os in + mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\ + $SED 's,/\([[A-Za-z]]:\),\1,g'` ;; + esac + sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP` +else + sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" +fi]) +library_names_spec= +libname_spec='lib$name' +soname_spec= +shrext_cmds=".so" +postinstall_cmds= +postuninstall_cmds= +finish_cmds= +finish_eval= +shlibpath_var= +shlibpath_overrides_runpath=unknown +version_type=none +dynamic_linker="$host_os ld.so" +sys_lib_dlsearch_path_spec="/lib /usr/lib" +need_lib_prefix=unknown +hardcode_into_libs=no + +# when you set need_version to no, make sure it does not cause -set_version +# flags to be left without arguments +need_version=unknown + +case $host_os in +aix3*) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' + shlibpath_var=LIBPATH + + # AIX 3 has no versioning support, so we append a major version to the name. + soname_spec='${libname}${release}${shared_ext}$major' + ;; + +aix[[4-9]]*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + hardcode_into_libs=yes + if test "$host_cpu" = ia64; then + # AIX 5 supports IA64 + library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + else + # With GCC up to 2.95.x, collect2 would create an import file + # for dependence libraries. The import file would start with + # the line `#! .'. This would cause the generated library to + # depend on `.', always an invalid library. This was fixed in + # development snapshots of GCC prior to 3.0. + case $host_os in + aix4 | aix4.[[01]] | aix4.[[01]].*) + if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' + echo ' yes ' + echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then + : + else + can_build_shared=no + fi + ;; + esac + # AIX (on Power*) has no versioning support, so currently we can not hardcode correct + # soname into executable. Probably we can add versioning support to + # collect2, so additional links can be useful in future. + if test "$aix_use_runtimelinking" = yes; then + # If using run time linking (on AIX 4.2 or later) use lib.so + # instead of lib.a to let people know that these are not + # typical AIX shared libraries. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + else + # We preserve .a as extension for shared libraries through AIX4.2 + # and later when we are not doing run time linking. + library_names_spec='${libname}${release}.a $libname.a' + soname_spec='${libname}${release}${shared_ext}$major' + fi + shlibpath_var=LIBPATH + fi + ;; + +amigaos*) + case $host_cpu in + powerpc) + # Since July 2007 AmigaOS4 officially supports .so libraries. + # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + ;; + m68k) + library_names_spec='$libname.ixlibrary $libname.a' + # Create ${libname}_ixlibrary.a entries in /sys/libs. + finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' + ;; + esac + ;; + +beos*) + library_names_spec='${libname}${shared_ext}' + dynamic_linker="$host_os ld.so" + shlibpath_var=LIBRARY_PATH + ;; + +bsdi[[45]]*) + version_type=linux # correct to gnu/linux during the next big refactor + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" + sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" + # the default ld.so.conf also contains /usr/contrib/lib and + # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow + # libtool to hard-code these into programs + ;; + +cygwin* | mingw* | pw32* | cegcc*) + version_type=windows + shrext_cmds=".dll" + need_version=no + need_lib_prefix=no + + case $GCC,$cc_basename in + yes,*) + # gcc + library_names_spec='$libname.dll.a' + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \${file}`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname~ + chmod a+x \$dldir/$dlname~ + if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then + eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; + fi' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + shlibpath_overrides_runpath=yes + + case $host_os in + cygwin*) + # Cygwin DLLs use 'cyg' prefix rather than 'lib' + soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' +m4_if([$1], [],[ + sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"]) + ;; + mingw* | cegcc*) + # MinGW DLLs use traditional 'lib' prefix + soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' + ;; + pw32*) + # pw32 DLLs use 'pw' prefix rather than 'lib' + library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' + ;; + esac + dynamic_linker='Win32 ld.exe' + ;; + + *,cl*) + # Native MSVC + libname_spec='$name' + soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' + library_names_spec='${libname}.dll.lib' + + case $build_os in + mingw*) + sys_lib_search_path_spec= + lt_save_ifs=$IFS + IFS=';' + for lt_path in $LIB + do + IFS=$lt_save_ifs + # Let DOS variable expansion print the short 8.3 style file name. + lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` + sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" + done + IFS=$lt_save_ifs + # Convert to MSYS style. + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([[a-zA-Z]]\\):| /\\1|g' -e 's|^ ||'` + ;; + cygwin*) + # Convert to unix form, then to dos form, then back to unix form + # but this time dos style (no spaces!) so that the unix form looks + # like /cygdrive/c/PROGRA~1:/cygdr... + sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` + sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` + sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + ;; + *) + sys_lib_search_path_spec="$LIB" + if $ECHO "$sys_lib_search_path_spec" | [$GREP ';[c-zC-Z]:/' >/dev/null]; then + # It is most probably a Windows format PATH. + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` + else + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + fi + # FIXME: find the short name or the path components, as spaces are + # common. (e.g. "Program Files" -> "PROGRA~1") + ;; + esac + + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \${file}`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + shlibpath_overrides_runpath=yes + dynamic_linker='Win32 link.exe' + ;; + + *) + # Assume MSVC wrapper + library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib' + dynamic_linker='Win32 ld.exe' + ;; + esac + # FIXME: first we should search . and the directory the executable is in + shlibpath_var=PATH + ;; + +darwin* | rhapsody*) + dynamic_linker="$host_os dyld" + version_type=darwin + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext' + soname_spec='${libname}${release}${major}$shared_ext' + shlibpath_overrides_runpath=yes + shlibpath_var=DYLD_LIBRARY_PATH + shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' +m4_if([$1], [],[ + sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"]) + sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' + ;; + +dgux*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +freebsd* | dragonfly*) + # DragonFly does not have aout. When/if they implement a new + # versioning mechanism, adjust this. + if test -x /usr/bin/objformat; then + objformat=`/usr/bin/objformat` + else + case $host_os in + freebsd[[23]].*) objformat=aout ;; + *) objformat=elf ;; + esac + fi + version_type=freebsd-$objformat + case $version_type in + freebsd-elf*) + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' + need_version=no + need_lib_prefix=no + ;; + freebsd-*) + library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' + need_version=yes + ;; + esac + shlibpath_var=LD_LIBRARY_PATH + case $host_os in + freebsd2.*) + shlibpath_overrides_runpath=yes + ;; + freebsd3.[[01]]* | freebsdelf3.[[01]]*) + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + freebsd3.[[2-9]]* | freebsdelf3.[[2-9]]* | \ + freebsd4.[[0-5]] | freebsdelf4.[[0-5]] | freebsd4.1.1 | freebsdelf4.1.1) + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + *) # from 4.6 on, and DragonFly + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + esac + ;; + +haiku*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + dynamic_linker="$host_os runtime_loader" + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LIBRARY_PATH + shlibpath_overrides_runpath=yes + sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' + hardcode_into_libs=yes + ;; + +hpux9* | hpux10* | hpux11*) + # Give a soname corresponding to the major version so that dld.sl refuses to + # link against other versions. + version_type=sunos + need_lib_prefix=no + need_version=no + case $host_cpu in + ia64*) + shrext_cmds='.so' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.so" + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + if test "X$HPUX_IA64_MODE" = X32; then + sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" + else + sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" + fi + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + hppa*64*) + shrext_cmds='.sl' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.sl" + shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + *) + shrext_cmds='.sl' + dynamic_linker="$host_os dld.sl" + shlibpath_var=SHLIB_PATH + shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + ;; + esac + # HP-UX runs *really* slowly unless shared libraries are mode 555, ... + postinstall_cmds='chmod 555 $lib' + # or fails outright, so override atomically: + install_override_mode=555 + ;; + +interix[[3-9]]*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +irix5* | irix6* | nonstopux*) + case $host_os in + nonstopux*) version_type=nonstopux ;; + *) + if test "$lt_cv_prog_gnu_ld" = yes; then + version_type=linux # correct to gnu/linux during the next big refactor + else + version_type=irix + fi ;; + esac + need_lib_prefix=no + need_version=no + soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' + case $host_os in + irix5* | nonstopux*) + libsuff= shlibsuff= + ;; + *) + case $LD in # libtool.m4 will add one of these switches to LD + *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") + libsuff= shlibsuff= libmagic=32-bit;; + *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") + libsuff=32 shlibsuff=N32 libmagic=N32;; + *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") + libsuff=64 shlibsuff=64 libmagic=64-bit;; + *) libsuff= shlibsuff= libmagic=never-match;; + esac + ;; + esac + shlibpath_var=LD_LIBRARY${shlibsuff}_PATH + shlibpath_overrides_runpath=no + sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" + sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" + hardcode_into_libs=yes + ;; + +# No shared lib support for Linux oldld, aout, or coff. +linux*oldld* | linux*aout* | linux*coff*) + dynamic_linker=no + ;; + +# This must be glibc/ELF. +linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + + # Some binutils ld are patched to set DT_RUNPATH + AC_CACHE_VAL([lt_cv_shlibpath_overrides_runpath], + [lt_cv_shlibpath_overrides_runpath=no + save_LDFLAGS=$LDFLAGS + save_libdir=$libdir + eval "libdir=/foo; wl=\"$_LT_TAGVAR(lt_prog_compiler_wl, $1)\"; \ + LDFLAGS=\"\$LDFLAGS $_LT_TAGVAR(hardcode_libdir_flag_spec, $1)\"" + AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], + [AS_IF([ ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null], + [lt_cv_shlibpath_overrides_runpath=yes])]) + LDFLAGS=$save_LDFLAGS + libdir=$save_libdir + ]) + shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath + + # This implies no fast_install, which is unacceptable. + # Some rework will be needed to allow for fast_install + # before this can be enabled. + hardcode_into_libs=yes + + # Append ld.so.conf contents to the search path + if test -f /etc/ld.so.conf; then + lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` + sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" + fi + + # We used to test for /lib/ld.so.1 and disable shared libraries on + # powerpc, because MkLinux only supported shared libraries with the + # GNU dynamic linker. Since this was broken with cross compilers, + # most powerpc-linux boxes support dynamic linking these days and + # people can always --disable-shared, the test was removed, and we + # assume the GNU/Linux dynamic linker is in use. + dynamic_linker='GNU/Linux ld.so' + ;; + +netbsdelf*-gnu) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='NetBSD ld.elf_so' + ;; + +netbsd*) + version_type=sunos + need_lib_prefix=no + need_version=no + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + dynamic_linker='NetBSD (a.out) ld.so' + else + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + dynamic_linker='NetBSD ld.elf_so' + fi + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + +newsos6) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; + +*nto* | *qnx*) + version_type=qnx + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='ldqnx.so' + ;; + +openbsd*) + version_type=sunos + sys_lib_dlsearch_path_spec="/usr/lib" + need_lib_prefix=no + # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. + case $host_os in + openbsd3.3 | openbsd3.3.*) need_version=yes ;; + *) need_version=no ;; + esac + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + shlibpath_var=LD_LIBRARY_PATH + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + case $host_os in + openbsd2.[[89]] | openbsd2.[[89]].*) + shlibpath_overrides_runpath=no + ;; + *) + shlibpath_overrides_runpath=yes + ;; + esac + else + shlibpath_overrides_runpath=yes + fi + ;; + +os2*) + libname_spec='$name' + shrext_cmds=".dll" + need_lib_prefix=no + library_names_spec='$libname${shared_ext} $libname.a' + dynamic_linker='OS/2 ld.exe' + shlibpath_var=LIBPATH + ;; + +osf3* | osf4* | osf5*) + version_type=osf + need_lib_prefix=no + need_version=no + soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" + sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" + ;; + +rdos*) + dynamic_linker=no + ;; + +solaris*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + # ldd complains unless libraries are executable + postinstall_cmds='chmod +x $lib' + ;; + +sunos4*) + version_type=sunos + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + if test "$with_gnu_ld" = yes; then + need_lib_prefix=no + fi + need_version=yes + ;; + +sysv4 | sysv4.3*) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + case $host_vendor in + sni) + shlibpath_overrides_runpath=no + need_lib_prefix=no + runpath_var=LD_RUN_PATH + ;; + siemens) + need_lib_prefix=no + ;; + motorola) + need_lib_prefix=no + need_version=no + shlibpath_overrides_runpath=no + sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' + ;; + esac + ;; + +sysv4*MP*) + if test -d /usr/nec ;then + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' + soname_spec='$libname${shared_ext}.$major' + shlibpath_var=LD_LIBRARY_PATH + fi + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + version_type=freebsd-elf + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + if test "$with_gnu_ld" = yes; then + sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' + else + sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' + case $host_os in + sco3.2v5*) + sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" + ;; + esac + fi + sys_lib_dlsearch_path_spec='/usr/lib' + ;; + +tpf*) + # TPF is a cross-target only. Preferred cross-host = GNU/Linux. + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +uts4*) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +*) + dynamic_linker=no + ;; +esac +AC_MSG_RESULT([$dynamic_linker]) +test "$dynamic_linker" = no && can_build_shared=no + +variables_saved_for_relink="PATH $shlibpath_var $runpath_var" +if test "$GCC" = yes; then + variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" +fi + +if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then + sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" +fi +if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then + sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" +fi + +_LT_DECL([], [variables_saved_for_relink], [1], + [Variables whose values should be saved in libtool wrapper scripts and + restored at link time]) +_LT_DECL([], [need_lib_prefix], [0], + [Do we need the "lib" prefix for modules?]) +_LT_DECL([], [need_version], [0], [Do we need a version for libraries?]) +_LT_DECL([], [version_type], [0], [Library versioning type]) +_LT_DECL([], [runpath_var], [0], [Shared library runtime path variable]) +_LT_DECL([], [shlibpath_var], [0],[Shared library path variable]) +_LT_DECL([], [shlibpath_overrides_runpath], [0], + [Is shlibpath searched before the hard-coded library search path?]) +_LT_DECL([], [libname_spec], [1], [Format of library name prefix]) +_LT_DECL([], [library_names_spec], [1], + [[List of archive names. First name is the real one, the rest are links. + The last name is the one that the linker finds with -lNAME]]) +_LT_DECL([], [soname_spec], [1], + [[The coded name of the library, if different from the real name]]) +_LT_DECL([], [install_override_mode], [1], + [Permission mode override for installation of shared libraries]) +_LT_DECL([], [postinstall_cmds], [2], + [Command to use after installation of a shared archive]) +_LT_DECL([], [postuninstall_cmds], [2], + [Command to use after uninstallation of a shared archive]) +_LT_DECL([], [finish_cmds], [2], + [Commands used to finish a libtool library installation in a directory]) +_LT_DECL([], [finish_eval], [1], + [[As "finish_cmds", except a single script fragment to be evaled but + not shown]]) +_LT_DECL([], [hardcode_into_libs], [0], + [Whether we should hardcode library paths into libraries]) +_LT_DECL([], [sys_lib_search_path_spec], [2], + [Compile-time system search path for libraries]) +_LT_DECL([], [sys_lib_dlsearch_path_spec], [2], + [Run-time system search path for libraries]) +])# _LT_SYS_DYNAMIC_LINKER + + +# _LT_PATH_TOOL_PREFIX(TOOL) +# -------------------------- +# find a file program which can recognize shared library +AC_DEFUN([_LT_PATH_TOOL_PREFIX], +[m4_require([_LT_DECL_EGREP])dnl +AC_MSG_CHECKING([for $1]) +AC_CACHE_VAL(lt_cv_path_MAGIC_CMD, +[case $MAGIC_CMD in +[[\\/*] | ?:[\\/]*]) + lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. + ;; +*) + lt_save_MAGIC_CMD="$MAGIC_CMD" + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR +dnl $ac_dummy forces splitting on constant user-supplied paths. +dnl POSIX.2 word splitting is done only on the output of word expansions, +dnl not every word. This closes a longstanding sh security hole. + ac_dummy="m4_if([$2], , $PATH, [$2])" + for ac_dir in $ac_dummy; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$1; then + lt_cv_path_MAGIC_CMD="$ac_dir/$1" + if test -n "$file_magic_test_file"; then + case $deplibs_check_method in + "file_magic "*) + file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` + MAGIC_CMD="$lt_cv_path_MAGIC_CMD" + if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | + $EGREP "$file_magic_regex" > /dev/null; then + : + else + cat <<_LT_EOF 1>&2 + +*** Warning: the command libtool uses to detect shared libraries, +*** $file_magic_cmd, produces output that libtool cannot recognize. +*** The result is that libtool may fail to recognize shared libraries +*** as such. This will affect the creation of libtool libraries that +*** depend on shared libraries, but programs linked with such libtool +*** libraries will work regardless of this problem. Nevertheless, you +*** may want to report the problem to your system manager and/or to +*** bug-libtool@gnu.org + +_LT_EOF + fi ;; + esac + fi + break + fi + done + IFS="$lt_save_ifs" + MAGIC_CMD="$lt_save_MAGIC_CMD" + ;; +esac]) +MAGIC_CMD="$lt_cv_path_MAGIC_CMD" +if test -n "$MAGIC_CMD"; then + AC_MSG_RESULT($MAGIC_CMD) +else + AC_MSG_RESULT(no) +fi +_LT_DECL([], [MAGIC_CMD], [0], + [Used to examine libraries when file_magic_cmd begins with "file"])dnl +])# _LT_PATH_TOOL_PREFIX + +# Old name: +AU_ALIAS([AC_PATH_TOOL_PREFIX], [_LT_PATH_TOOL_PREFIX]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_PATH_TOOL_PREFIX], []) + + +# _LT_PATH_MAGIC +# -------------- +# find a file program which can recognize a shared library +m4_defun([_LT_PATH_MAGIC], +[_LT_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH) +if test -z "$lt_cv_path_MAGIC_CMD"; then + if test -n "$ac_tool_prefix"; then + _LT_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH) + else + MAGIC_CMD=: + fi +fi +])# _LT_PATH_MAGIC + + +# LT_PATH_LD +# ---------- +# find the pathname to the GNU or non-GNU linker +AC_DEFUN([LT_PATH_LD], +[AC_REQUIRE([AC_PROG_CC])dnl +AC_REQUIRE([AC_CANONICAL_HOST])dnl +AC_REQUIRE([AC_CANONICAL_BUILD])dnl +m4_require([_LT_DECL_SED])dnl +m4_require([_LT_DECL_EGREP])dnl +m4_require([_LT_PROG_ECHO_BACKSLASH])dnl + +AC_ARG_WITH([gnu-ld], + [AS_HELP_STRING([--with-gnu-ld], + [assume the C compiler uses GNU ld @<:@default=no@:>@])], + [test "$withval" = no || with_gnu_ld=yes], + [with_gnu_ld=no])dnl + +ac_prog=ld +if test "$GCC" = yes; then + # Check if gcc -print-prog-name=ld gives a path. + AC_MSG_CHECKING([for ld used by $CC]) + case $host in + *-*-mingw*) + # gcc leaves a trailing carriage return which upsets mingw + ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; + *) + ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; + esac + case $ac_prog in + # Accept absolute paths. + [[\\/]]* | ?:[[\\/]]*) + re_direlt='/[[^/]][[^/]]*/\.\./' + # Canonicalize the pathname of ld + ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` + while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do + ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` + done + test -z "$LD" && LD="$ac_prog" + ;; + "") + # If it fails, then pretend we aren't using GCC. + ac_prog=ld + ;; + *) + # If it is relative, then search for the first ld in PATH. + with_gnu_ld=unknown + ;; + esac +elif test "$with_gnu_ld" = yes; then + AC_MSG_CHECKING([for GNU ld]) +else + AC_MSG_CHECKING([for non-GNU ld]) +fi +AC_CACHE_VAL(lt_cv_path_LD, +[if test -z "$LD"; then + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then + lt_cv_path_LD="$ac_dir/$ac_prog" + # Check to see if the program is GNU ld. I'd rather use --version, + # but apparently some variants of GNU ld only accept -v. + # Break only if it was the GNU/non-GNU ld that we prefer. + case `"$lt_cv_path_LD" -v 2>&1 &1 /dev/null 2>&1; then + lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' + lt_cv_file_magic_cmd='func_win32_libid' + else + # Keep this pattern in sync with the one in func_win32_libid. + lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' + lt_cv_file_magic_cmd='$OBJDUMP -f' + fi + ;; + +cegcc*) + # use the weaker test based on 'objdump'. See mingw*. + lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' + lt_cv_file_magic_cmd='$OBJDUMP -f' + ;; + +darwin* | rhapsody*) + lt_cv_deplibs_check_method=pass_all + ;; + +freebsd* | dragonfly*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then + case $host_cpu in + i*86 ) + # Not sure whether the presence of OpenBSD here was a mistake. + # Let's accept both of them until this is cleared up. + lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[[3-9]]86 (compact )?demand paged shared library' + lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` + ;; + esac + else + lt_cv_deplibs_check_method=pass_all + fi + ;; + +haiku*) + lt_cv_deplibs_check_method=pass_all + ;; + +hpux10.20* | hpux11*) + lt_cv_file_magic_cmd=/usr/bin/file + case $host_cpu in + ia64*) + lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64' + lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so + ;; + hppa*64*) + [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]'] + lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl + ;; + *) + lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]]\.[[0-9]]) shared library' + lt_cv_file_magic_test_file=/usr/lib/libc.sl + ;; + esac + ;; + +interix[[3-9]]*) + # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|\.a)$' + ;; + +irix5* | irix6* | nonstopux*) + case $LD in + *-32|*"-32 ") libmagic=32-bit;; + *-n32|*"-n32 ") libmagic=N32;; + *-64|*"-64 ") libmagic=64-bit;; + *) libmagic=never-match;; + esac + lt_cv_deplibs_check_method=pass_all + ;; + +# This must be glibc/ELF. +linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) + lt_cv_deplibs_check_method=pass_all + ;; + +netbsd* | netbsdelf*-gnu) + if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' + else + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|_pic\.a)$' + fi + ;; + +newos6*) + lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)' + lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_test_file=/usr/lib/libnls.so + ;; + +*nto* | *qnx*) + lt_cv_deplibs_check_method=pass_all + ;; + +openbsd*) + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|\.so|_pic\.a)$' + else + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' + fi + ;; + +osf3* | osf4* | osf5*) + lt_cv_deplibs_check_method=pass_all + ;; + +rdos*) + lt_cv_deplibs_check_method=pass_all + ;; + +solaris*) + lt_cv_deplibs_check_method=pass_all + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + lt_cv_deplibs_check_method=pass_all + ;; + +sysv4 | sysv4.3*) + case $host_vendor in + motorola) + lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib) M[[0-9]][[0-9]]* Version [[0-9]]' + lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` + ;; + ncr) + lt_cv_deplibs_check_method=pass_all + ;; + sequent) + lt_cv_file_magic_cmd='/bin/file' + lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )' + ;; + sni) + lt_cv_file_magic_cmd='/bin/file' + lt_cv_deplibs_check_method="file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB dynamic lib" + lt_cv_file_magic_test_file=/lib/libc.so + ;; + siemens) + lt_cv_deplibs_check_method=pass_all + ;; + pc) + lt_cv_deplibs_check_method=pass_all + ;; + esac + ;; + +tpf*) + lt_cv_deplibs_check_method=pass_all + ;; +esac +]) + +file_magic_glob= +want_nocaseglob=no +if test "$build" = "$host"; then + case $host_os in + mingw* | pw32*) + if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then + want_nocaseglob=yes + else + file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[[\1]]\/[[\1]]\/g;/g"` + fi + ;; + esac +fi + +file_magic_cmd=$lt_cv_file_magic_cmd +deplibs_check_method=$lt_cv_deplibs_check_method +test -z "$deplibs_check_method" && deplibs_check_method=unknown + +_LT_DECL([], [deplibs_check_method], [1], + [Method to check whether dependent libraries are shared objects]) +_LT_DECL([], [file_magic_cmd], [1], + [Command to use when deplibs_check_method = "file_magic"]) +_LT_DECL([], [file_magic_glob], [1], + [How to find potential files when deplibs_check_method = "file_magic"]) +_LT_DECL([], [want_nocaseglob], [1], + [Find potential files using nocaseglob when deplibs_check_method = "file_magic"]) +])# _LT_CHECK_MAGIC_METHOD + + +# LT_PATH_NM +# ---------- +# find the pathname to a BSD- or MS-compatible name lister +AC_DEFUN([LT_PATH_NM], +[AC_REQUIRE([AC_PROG_CC])dnl +AC_CACHE_CHECK([for BSD- or MS-compatible name lister (nm)], lt_cv_path_NM, +[if test -n "$NM"; then + # Let the user override the test. + lt_cv_path_NM="$NM" +else + lt_nm_to_check="${ac_tool_prefix}nm" + if test -n "$ac_tool_prefix" && test "$build" = "$host"; then + lt_nm_to_check="$lt_nm_to_check nm" + fi + for lt_tmp_nm in $lt_nm_to_check; do + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + tmp_nm="$ac_dir/$lt_tmp_nm" + if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then + # Check to see if the nm accepts a BSD-compat flag. + # Adding the `sed 1q' prevents false positives on HP-UX, which says: + # nm: unknown option "B" ignored + # Tru64's nm complains that /dev/null is an invalid object file + case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in + */dev/null* | *'Invalid file or object type'*) + lt_cv_path_NM="$tmp_nm -B" + break + ;; + *) + case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in + */dev/null*) + lt_cv_path_NM="$tmp_nm -p" + break + ;; + *) + lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but + continue # so that we can try to find one that supports BSD flags + ;; + esac + ;; + esac + fi + done + IFS="$lt_save_ifs" + done + : ${lt_cv_path_NM=no} +fi]) +if test "$lt_cv_path_NM" != "no"; then + NM="$lt_cv_path_NM" +else + # Didn't find any BSD compatible name lister, look for dumpbin. + if test -n "$DUMPBIN"; then : + # Let the user override the test. + else + AC_CHECK_TOOLS(DUMPBIN, [dumpbin "link -dump"], :) + case `$DUMPBIN -symbols /dev/null 2>&1 | sed '1q'` in + *COFF*) + DUMPBIN="$DUMPBIN -symbols" + ;; + *) + DUMPBIN=: + ;; + esac + fi + AC_SUBST([DUMPBIN]) + if test "$DUMPBIN" != ":"; then + NM="$DUMPBIN" + fi +fi +test -z "$NM" && NM=nm +AC_SUBST([NM]) +_LT_DECL([], [NM], [1], [A BSD- or MS-compatible name lister])dnl + +AC_CACHE_CHECK([the name lister ($NM) interface], [lt_cv_nm_interface], + [lt_cv_nm_interface="BSD nm" + echo "int some_variable = 0;" > conftest.$ac_ext + (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&AS_MESSAGE_LOG_FD) + (eval "$ac_compile" 2>conftest.err) + cat conftest.err >&AS_MESSAGE_LOG_FD + (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&AS_MESSAGE_LOG_FD) + (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) + cat conftest.err >&AS_MESSAGE_LOG_FD + (eval echo "\"\$as_me:$LINENO: output\"" >&AS_MESSAGE_LOG_FD) + cat conftest.out >&AS_MESSAGE_LOG_FD + if $GREP 'External.*some_variable' conftest.out > /dev/null; then + lt_cv_nm_interface="MS dumpbin" + fi + rm -f conftest*]) +])# LT_PATH_NM + +# Old names: +AU_ALIAS([AM_PROG_NM], [LT_PATH_NM]) +AU_ALIAS([AC_PROG_NM], [LT_PATH_NM]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AM_PROG_NM], []) +dnl AC_DEFUN([AC_PROG_NM], []) + +# _LT_CHECK_SHAREDLIB_FROM_LINKLIB +# -------------------------------- +# how to determine the name of the shared library +# associated with a specific link library. +# -- PORTME fill in with the dynamic library characteristics +m4_defun([_LT_CHECK_SHAREDLIB_FROM_LINKLIB], +[m4_require([_LT_DECL_EGREP]) +m4_require([_LT_DECL_OBJDUMP]) +m4_require([_LT_DECL_DLLTOOL]) +AC_CACHE_CHECK([how to associate runtime and link libraries], +lt_cv_sharedlib_from_linklib_cmd, +[lt_cv_sharedlib_from_linklib_cmd='unknown' + +case $host_os in +cygwin* | mingw* | pw32* | cegcc*) + # two different shell functions defined in ltmain.sh + # decide which to use based on capabilities of $DLLTOOL + case `$DLLTOOL --help 2>&1` in + *--identify-strict*) + lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib + ;; + *) + lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback + ;; + esac + ;; +*) + # fallback: assume linklib IS sharedlib + lt_cv_sharedlib_from_linklib_cmd="$ECHO" + ;; +esac +]) +sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd +test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO + +_LT_DECL([], [sharedlib_from_linklib_cmd], [1], + [Command to associate shared and link libraries]) +])# _LT_CHECK_SHAREDLIB_FROM_LINKLIB + + +# _LT_PATH_MANIFEST_TOOL +# ---------------------- +# locate the manifest tool +m4_defun([_LT_PATH_MANIFEST_TOOL], +[AC_CHECK_TOOL(MANIFEST_TOOL, mt, :) +test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt +AC_CACHE_CHECK([if $MANIFEST_TOOL is a manifest tool], [lt_cv_path_mainfest_tool], + [lt_cv_path_mainfest_tool=no + echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&AS_MESSAGE_LOG_FD + $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out + cat conftest.err >&AS_MESSAGE_LOG_FD + if $GREP 'Manifest Tool' conftest.out > /dev/null; then + lt_cv_path_mainfest_tool=yes + fi + rm -f conftest*]) +if test "x$lt_cv_path_mainfest_tool" != xyes; then + MANIFEST_TOOL=: +fi +_LT_DECL([], [MANIFEST_TOOL], [1], [Manifest tool])dnl +])# _LT_PATH_MANIFEST_TOOL + + +# LT_LIB_M +# -------- +# check for math library +AC_DEFUN([LT_LIB_M], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +LIBM= +case $host in +*-*-beos* | *-*-cegcc* | *-*-cygwin* | *-*-haiku* | *-*-pw32* | *-*-darwin*) + # These system don't have libm, or don't need it + ;; +*-ncr-sysv4.3*) + AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw") + AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm") + ;; +*) + AC_CHECK_LIB(m, cos, LIBM="-lm") + ;; +esac +AC_SUBST([LIBM]) +])# LT_LIB_M + +# Old name: +AU_ALIAS([AC_CHECK_LIBM], [LT_LIB_M]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_CHECK_LIBM], []) + + +# _LT_COMPILER_NO_RTTI([TAGNAME]) +# ------------------------------- +m4_defun([_LT_COMPILER_NO_RTTI], +[m4_require([_LT_TAG_COMPILER])dnl + +_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= + +if test "$GCC" = yes; then + case $cc_basename in + nvcc*) + _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -Xcompiler -fno-builtin' ;; + *) + _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' ;; + esac + + _LT_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions], + lt_cv_prog_compiler_rtti_exceptions, + [-fno-rtti -fno-exceptions], [], + [_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"]) +fi +_LT_TAGDECL([no_builtin_flag], [lt_prog_compiler_no_builtin_flag], [1], + [Compiler flag to turn off builtin functions]) +])# _LT_COMPILER_NO_RTTI + + +# _LT_CMD_GLOBAL_SYMBOLS +# ---------------------- +m4_defun([_LT_CMD_GLOBAL_SYMBOLS], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +AC_REQUIRE([AC_PROG_CC])dnl +AC_REQUIRE([AC_PROG_AWK])dnl +AC_REQUIRE([LT_PATH_NM])dnl +AC_REQUIRE([LT_PATH_LD])dnl +m4_require([_LT_DECL_SED])dnl +m4_require([_LT_DECL_EGREP])dnl +m4_require([_LT_TAG_COMPILER])dnl + +# Check for command to grab the raw symbol name followed by C symbol from nm. +AC_MSG_CHECKING([command to parse $NM output from $compiler object]) +AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe], +[ +# These are sane defaults that work on at least a few old systems. +# [They come from Ultrix. What could be older than Ultrix?!! ;)] + +# Character class describing NM global symbol codes. +symcode='[[BCDEGRST]]' + +# Regexp to match symbols that can be accessed directly from C. +sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)' + +# Define system-specific variables. +case $host_os in +aix*) + symcode='[[BCDT]]' + ;; +cygwin* | mingw* | pw32* | cegcc*) + symcode='[[ABCDGISTW]]' + ;; +hpux*) + if test "$host_cpu" = ia64; then + symcode='[[ABCDEGRST]]' + fi + ;; +irix* | nonstopux*) + symcode='[[BCDEGRST]]' + ;; +osf*) + symcode='[[BCDEGQRST]]' + ;; +solaris*) + symcode='[[BDRT]]' + ;; +sco3.2v5*) + symcode='[[DT]]' + ;; +sysv4.2uw2*) + symcode='[[DT]]' + ;; +sysv5* | sco5v6* | unixware* | OpenUNIX*) + symcode='[[ABDT]]' + ;; +sysv4) + symcode='[[DFNSTU]]' + ;; +esac + +# If we're using GNU nm, then use its standard symbol codes. +case `$NM -V 2>&1` in +*GNU* | *'with BFD'*) + symcode='[[ABCDGIRSTW]]' ;; +esac + +# Transform an extracted symbol line into a proper C declaration. +# Some systems (esp. on ia64) link data and code symbols differently, +# so use this general approach. +lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" + +# Transform an extracted symbol line into symbol name and symbol address +lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\)[[ ]]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p'" +lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([[^ ]]*\)[[ ]]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \(lib[[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"lib\2\", (void *) \&\2},/p'" + +# Handle CRLF in mingw tool chain +opt_cr= +case $build_os in +mingw*) + opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp + ;; +esac + +# Try without a prefix underscore, then with it. +for ac_symprfx in "" "_"; do + + # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. + symxfrm="\\1 $ac_symprfx\\2 \\2" + + # Write the raw and C identifiers. + if test "$lt_cv_nm_interface" = "MS dumpbin"; then + # Fake it for dumpbin and say T for any non-static function + # and D for any global variable. + # Also find C++ and __fastcall symbols from MSVC++, + # which start with @ or ?. + lt_cv_sys_global_symbol_pipe="$AWK ['"\ +" {last_section=section; section=\$ 3};"\ +" /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\ +" /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ +" \$ 0!~/External *\|/{next};"\ +" / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ +" {if(hide[section]) next};"\ +" {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\ +" {split(\$ 0, a, /\||\r/); split(a[2], s)};"\ +" s[1]~/^[@?]/{print s[1], s[1]; next};"\ +" s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\ +" ' prfx=^$ac_symprfx]" + else + lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" + fi + lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" + + # Check to see that the pipe works correctly. + pipe_works=no + + rm -f conftest* + cat > conftest.$ac_ext <<_LT_EOF +#ifdef __cplusplus +extern "C" { +#endif +char nm_test_var; +void nm_test_func(void); +void nm_test_func(void){} +#ifdef __cplusplus +} +#endif +int main(){nm_test_var='a';nm_test_func();return(0);} +_LT_EOF + + if AC_TRY_EVAL(ac_compile); then + # Now try to grab the symbols. + nlist=conftest.nm + if AC_TRY_EVAL(NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) && test -s "$nlist"; then + # Try sorting and uniquifying the output. + if sort "$nlist" | uniq > "$nlist"T; then + mv -f "$nlist"T "$nlist" + else + rm -f "$nlist"T + fi + + # Make sure that we snagged all the symbols we need. + if $GREP ' nm_test_var$' "$nlist" >/dev/null; then + if $GREP ' nm_test_func$' "$nlist" >/dev/null; then + cat <<_LT_EOF > conftest.$ac_ext +/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ +#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) +/* DATA imports from DLLs on WIN32 con't be const, because runtime + relocations are performed -- see ld's documentation on pseudo-relocs. */ +# define LT@&t@_DLSYM_CONST +#elif defined(__osf__) +/* This system does not cope well with relocations in const data. */ +# define LT@&t@_DLSYM_CONST +#else +# define LT@&t@_DLSYM_CONST const +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +_LT_EOF + # Now generate the symbol file. + eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' + + cat <<_LT_EOF >> conftest.$ac_ext + +/* The mapping between symbol names and symbols. */ +LT@&t@_DLSYM_CONST struct { + const char *name; + void *address; +} +lt__PROGRAM__LTX_preloaded_symbols[[]] = +{ + { "@PROGRAM@", (void *) 0 }, +_LT_EOF + $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext + cat <<\_LT_EOF >> conftest.$ac_ext + {0, (void *) 0} +}; + +/* This works around a problem in FreeBSD linker */ +#ifdef FREEBSD_WORKAROUND +static const void *lt_preloaded_setup() { + return lt__PROGRAM__LTX_preloaded_symbols; +} +#endif + +#ifdef __cplusplus +} +#endif +_LT_EOF + # Now try linking the two files. + mv conftest.$ac_objext conftstm.$ac_objext + lt_globsym_save_LIBS=$LIBS + lt_globsym_save_CFLAGS=$CFLAGS + LIBS="conftstm.$ac_objext" + CFLAGS="$CFLAGS$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)" + if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext}; then + pipe_works=yes + fi + LIBS=$lt_globsym_save_LIBS + CFLAGS=$lt_globsym_save_CFLAGS + else + echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD + fi + else + echo "cannot find nm_test_var in $nlist" >&AS_MESSAGE_LOG_FD + fi + else + echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD + fi + else + echo "$progname: failed program was:" >&AS_MESSAGE_LOG_FD + cat conftest.$ac_ext >&5 + fi + rm -rf conftest* conftst* + + # Do not use the global_symbol_pipe unless it works. + if test "$pipe_works" = yes; then + break + else + lt_cv_sys_global_symbol_pipe= + fi +done +]) +if test -z "$lt_cv_sys_global_symbol_pipe"; then + lt_cv_sys_global_symbol_to_cdecl= +fi +if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then + AC_MSG_RESULT(failed) +else + AC_MSG_RESULT(ok) +fi + +# Response file support. +if test "$lt_cv_nm_interface" = "MS dumpbin"; then + nm_file_list_spec='@' +elif $NM --help 2>/dev/null | grep '[[@]]FILE' >/dev/null; then + nm_file_list_spec='@' +fi + +_LT_DECL([global_symbol_pipe], [lt_cv_sys_global_symbol_pipe], [1], + [Take the output of nm and produce a listing of raw symbols and C names]) +_LT_DECL([global_symbol_to_cdecl], [lt_cv_sys_global_symbol_to_cdecl], [1], + [Transform the output of nm in a proper C declaration]) +_LT_DECL([global_symbol_to_c_name_address], + [lt_cv_sys_global_symbol_to_c_name_address], [1], + [Transform the output of nm in a C name address pair]) +_LT_DECL([global_symbol_to_c_name_address_lib_prefix], + [lt_cv_sys_global_symbol_to_c_name_address_lib_prefix], [1], + [Transform the output of nm in a C name address pair when lib prefix is needed]) +_LT_DECL([], [nm_file_list_spec], [1], + [Specify filename containing input files for $NM]) +]) # _LT_CMD_GLOBAL_SYMBOLS + + +# _LT_COMPILER_PIC([TAGNAME]) +# --------------------------- +m4_defun([_LT_COMPILER_PIC], +[m4_require([_LT_TAG_COMPILER])dnl +_LT_TAGVAR(lt_prog_compiler_wl, $1)= +_LT_TAGVAR(lt_prog_compiler_pic, $1)= +_LT_TAGVAR(lt_prog_compiler_static, $1)= + +m4_if([$1], [CXX], [ + # C++ specific cases for pic, static, wl, etc. + if test "$GXX" = yes; then + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + + case $host_os in + aix*) + # All AIX code is PIC. + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + m68k) + # FIXME: we need at least 68020 code to build shared libraries, but + # adding the `-m68020' flag to GCC prevents building anything better, + # like `-m68040'. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' + ;; + esac + ;; + + beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) + # PIC is the default for these OSes. + ;; + mingw* | cygwin* | os2* | pw32* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + # Although the cygwin gcc ignores -fPIC, still need this for old-style + # (--disable-auto-import) libraries + m4_if([$1], [GCJ], [], + [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) + ;; + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' + ;; + *djgpp*) + # DJGPP does not support shared libraries at all + _LT_TAGVAR(lt_prog_compiler_pic, $1)= + ;; + haiku*) + # PIC is the default for Haiku. + # The "-static" flag exists, but is broken. + _LT_TAGVAR(lt_prog_compiler_static, $1)= + ;; + interix[[3-9]]*) + # Interix 3.x gcc -fpic/-fPIC options generate broken code. + # Instead, we relocate shared libraries at runtime. + ;; + sysv4*MP*) + if test -d /usr/nec; then + _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic + fi + ;; + hpux*) + # PIC is the default for 64-bit PA HP-UX, but not for 32-bit + # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag + # sets the default TLS model and affects inlining. + case $host_cpu in + hppa*64*) + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + esac + ;; + *qnx* | *nto*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + esac + else + case $host_os in + aix[[4-9]]*) + # All AIX code is PIC. + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + else + _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' + fi + ;; + chorus*) + case $cc_basename in + cxch68*) + # Green Hills C++ Compiler + # _LT_TAGVAR(lt_prog_compiler_static, $1)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a" + ;; + esac + ;; + mingw* | cygwin* | os2* | pw32* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + m4_if([$1], [GCJ], [], + [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) + ;; + dgux*) + case $cc_basename in + ec++*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + ;; + ghcx*) + # Green Hills C++ Compiler + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + ;; + *) + ;; + esac + ;; + freebsd* | dragonfly*) + # FreeBSD uses GNU C++ + ;; + hpux9* | hpux10* | hpux11*) + case $cc_basename in + CC*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' + if test "$host_cpu" != ia64; then + _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' + fi + ;; + aCC*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' + case $host_cpu in + hppa*64*|ia64*) + # +Z the default + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' + ;; + esac + ;; + *) + ;; + esac + ;; + interix*) + # This is c89, which is MS Visual C++ (no shared libs) + # Anyone wants to do a port? + ;; + irix5* | irix6* | nonstopux*) + case $cc_basename in + CC*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + # CC pic flag -KPIC is the default. + ;; + *) + ;; + esac + ;; + linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) + case $cc_basename in + KCC*) + # KAI C++ Compiler + _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + ecpc* ) + # old Intel C++ for x86_64 which still supported -KPIC. + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + icpc* ) + # Intel C++, used to be incompatible with GCC. + # ICC 10 doesn't accept -KPIC any more. + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + pgCC* | pgcpp*) + # Portland Group C++ compiler + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + cxx*) + # Compaq C++ + # Make sure the PIC flag is empty. It appears that all Alpha + # Linux and Compaq Tru64 Unix objects are PIC. + _LT_TAGVAR(lt_prog_compiler_pic, $1)= + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + xlc* | xlC* | bgxl[[cC]]* | mpixl[[cC]]*) + # IBM XL 8.0, 9.0 on PPC and BlueGene + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' + ;; + *) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) + # Sun C++ 5.9 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' + ;; + esac + ;; + esac + ;; + lynxos*) + ;; + m88k*) + ;; + mvs*) + case $cc_basename in + cxx*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall' + ;; + *) + ;; + esac + ;; + netbsd* | netbsdelf*-gnu) + ;; + *qnx* | *nto*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' + ;; + osf3* | osf4* | osf5*) + case $cc_basename in + KCC*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' + ;; + RCC*) + # Rational C++ 2.4.1 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + ;; + cxx*) + # Digital/Compaq C++ + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # Make sure the PIC flag is empty. It appears that all Alpha + # Linux and Compaq Tru64 Unix objects are PIC. + _LT_TAGVAR(lt_prog_compiler_pic, $1)= + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + *) + ;; + esac + ;; + psos*) + ;; + solaris*) + case $cc_basename in + CC* | sunCC*) + # Sun C++ 4.2, 5.x and Centerline C++ + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' + ;; + gcx*) + # Green Hills C++ Compiler + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' + ;; + *) + ;; + esac + ;; + sunos4*) + case $cc_basename in + CC*) + # Sun C++ 4.x + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + lcc*) + # Lucid + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + ;; + *) + ;; + esac + ;; + sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) + case $cc_basename in + CC*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + esac + ;; + tandem*) + case $cc_basename in + NCC*) + # NonStop-UX NCC 3.20 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + ;; + *) + ;; + esac + ;; + vxworks*) + ;; + *) + _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no + ;; + esac + fi +], +[ + if test "$GCC" = yes; then + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + + case $host_os in + aix*) + # All AIX code is PIC. + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + m68k) + # FIXME: we need at least 68020 code to build shared libraries, but + # adding the `-m68020' flag to GCC prevents building anything better, + # like `-m68040'. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' + ;; + esac + ;; + + beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) + # PIC is the default for these OSes. + ;; + + mingw* | cygwin* | pw32* | os2* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + # Although the cygwin gcc ignores -fPIC, still need this for old-style + # (--disable-auto-import) libraries + m4_if([$1], [GCJ], [], + [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) + ;; + + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' + ;; + + haiku*) + # PIC is the default for Haiku. + # The "-static" flag exists, but is broken. + _LT_TAGVAR(lt_prog_compiler_static, $1)= + ;; + + hpux*) + # PIC is the default for 64-bit PA HP-UX, but not for 32-bit + # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag + # sets the default TLS model and affects inlining. + case $host_cpu in + hppa*64*) + # +Z the default + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + esac + ;; + + interix[[3-9]]*) + # Interix 3.x gcc -fpic/-fPIC options generate broken code. + # Instead, we relocate shared libraries at runtime. + ;; + + msdosdjgpp*) + # Just because we use GCC doesn't mean we suddenly get shared libraries + # on systems that don't support them. + _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no + enable_shared=no + ;; + + *nto* | *qnx*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic + fi + ;; + + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + esac + + case $cc_basename in + nvcc*) # Cuda Compiler Driver 2.2 + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Xlinker ' + if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then + _LT_TAGVAR(lt_prog_compiler_pic, $1)="-Xcompiler $_LT_TAGVAR(lt_prog_compiler_pic, $1)" + fi + ;; + esac + else + # PORTME Check for flag to pass linker flags through the system compiler. + case $host_os in + aix*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + else + _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' + fi + ;; + + mingw* | cygwin* | pw32* | os2* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + m4_if([$1], [GCJ], [], + [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) + ;; + + hpux9* | hpux10* | hpux11*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but + # not for PA HP-UX. + case $host_cpu in + hppa*64*|ia64*) + # +Z the default + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' + ;; + esac + # Is there a better lt_prog_compiler_static that works with the bundled CC? + _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' + ;; + + irix5* | irix6* | nonstopux*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # PIC (with -KPIC) is the default. + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + + linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) + case $cc_basename in + # old Intel for x86_64 which still supported -KPIC. + ecc*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + # icc used to be incompatible with GCC. + # ICC 10 doesn't accept -KPIC any more. + icc* | ifort*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + # Lahey Fortran 8.1. + lf95*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='--shared' + _LT_TAGVAR(lt_prog_compiler_static, $1)='--static' + ;; + nagfor*) + # NAG Fortran compiler + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,-Wl,,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) + # Portland Group compilers (*not* the Pentium gcc compiler, + # which looks to be a dead project) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + ccc*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # All Alpha code is PIC. + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + xl* | bgxl* | bgf* | mpixl*) + # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' + ;; + *) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [[1-7]].* | *Sun*Fortran*\ 8.[[0-3]]*) + # Sun Fortran 8.3 passes all unrecognized flags to the linker + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + _LT_TAGVAR(lt_prog_compiler_wl, $1)='' + ;; + *Sun\ F* | *Sun*Fortran*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' + ;; + *Sun\ C*) + # Sun C 5.9 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + ;; + *Intel*\ [[CF]]*Compiler*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + *Portland\ Group*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + esac + ;; + esac + ;; + + newsos6) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + *nto* | *qnx*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' + ;; + + osf3* | osf4* | osf5*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # All OSF/1 code is PIC. + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + + rdos*) + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + + solaris*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + case $cc_basename in + f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';; + *) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';; + esac + ;; + + sunos4*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + sysv4 | sysv4.2uw2* | sysv4.3*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + sysv4*MP*) + if test -d /usr/nec ;then + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + fi + ;; + + sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + unicos*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no + ;; + + uts4*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + *) + _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no + ;; + esac + fi +]) +case $host_os in + # For platforms which do not support PIC, -DPIC is meaningless: + *djgpp*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)= + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])" + ;; +esac + +AC_CACHE_CHECK([for $compiler option to produce PIC], + [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)], + [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_prog_compiler_pic, $1)]) +_LT_TAGVAR(lt_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_cv_prog_compiler_pic, $1) + +# +# Check to make sure the PIC flag actually works. +# +if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then + _LT_COMPILER_OPTION([if $compiler PIC flag $_LT_TAGVAR(lt_prog_compiler_pic, $1) works], + [_LT_TAGVAR(lt_cv_prog_compiler_pic_works, $1)], + [$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])], [], + [case $_LT_TAGVAR(lt_prog_compiler_pic, $1) in + "" | " "*) ;; + *) _LT_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_TAGVAR(lt_prog_compiler_pic, $1)" ;; + esac], + [_LT_TAGVAR(lt_prog_compiler_pic, $1)= + _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no]) +fi +_LT_TAGDECL([pic_flag], [lt_prog_compiler_pic], [1], + [Additional compiler flags for building library objects]) + +_LT_TAGDECL([wl], [lt_prog_compiler_wl], [1], + [How to pass a linker flag through the compiler]) +# +# Check to make sure the static flag actually works. +# +wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) eval lt_tmp_static_flag=\"$_LT_TAGVAR(lt_prog_compiler_static, $1)\" +_LT_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works], + _LT_TAGVAR(lt_cv_prog_compiler_static_works, $1), + $lt_tmp_static_flag, + [], + [_LT_TAGVAR(lt_prog_compiler_static, $1)=]) +_LT_TAGDECL([link_static_flag], [lt_prog_compiler_static], [1], + [Compiler flag to prevent dynamic linking]) +])# _LT_COMPILER_PIC + + +# _LT_LINKER_SHLIBS([TAGNAME]) +# ---------------------------- +# See if the linker supports building shared libraries. +m4_defun([_LT_LINKER_SHLIBS], +[AC_REQUIRE([LT_PATH_LD])dnl +AC_REQUIRE([LT_PATH_NM])dnl +m4_require([_LT_PATH_MANIFEST_TOOL])dnl +m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_DECL_EGREP])dnl +m4_require([_LT_DECL_SED])dnl +m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl +m4_require([_LT_TAG_COMPILER])dnl +AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) +m4_if([$1], [CXX], [ + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] + case $host_os in + aix[[4-9]]*) + # If we're using GNU nm, then we don't want the "-C" option. + # -C means demangle to AIX nm, but means don't demangle with GNU nm + # Also, AIX nm treats weak defined symbols like other global defined + # symbols, whereas GNU nm marks them as "W". + if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then + _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' + else + _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' + fi + ;; + pw32*) + _LT_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds" + ;; + cygwin* | mingw* | cegcc*) + case $cc_basename in + cl*) + _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' + ;; + *) + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' + _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'] + ;; + esac + ;; + linux* | k*bsd*-gnu | gnu*) + _LT_TAGVAR(link_all_deplibs, $1)=no + ;; + *) + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + ;; + esac +], [ + runpath_var= + _LT_TAGVAR(allow_undefined_flag, $1)= + _LT_TAGVAR(always_export_symbols, $1)=no + _LT_TAGVAR(archive_cmds, $1)= + _LT_TAGVAR(archive_expsym_cmds, $1)= + _LT_TAGVAR(compiler_needs_object, $1)=no + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no + _LT_TAGVAR(export_dynamic_flag_spec, $1)= + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + _LT_TAGVAR(hardcode_automatic, $1)=no + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_direct_absolute, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= + _LT_TAGVAR(hardcode_libdir_separator, $1)= + _LT_TAGVAR(hardcode_minus_L, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported + _LT_TAGVAR(inherit_rpath, $1)=no + _LT_TAGVAR(link_all_deplibs, $1)=unknown + _LT_TAGVAR(module_cmds, $1)= + _LT_TAGVAR(module_expsym_cmds, $1)= + _LT_TAGVAR(old_archive_from_new_cmds, $1)= + _LT_TAGVAR(old_archive_from_expsyms_cmds, $1)= + _LT_TAGVAR(thread_safe_flag_spec, $1)= + _LT_TAGVAR(whole_archive_flag_spec, $1)= + # include_expsyms should be a list of space-separated symbols to be *always* + # included in the symbol list + _LT_TAGVAR(include_expsyms, $1)= + # exclude_expsyms can be an extended regexp of symbols to exclude + # it will be wrapped by ` (' and `)$', so one must not match beginning or + # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', + # as well as any symbol that contains `d'. + _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] + # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out + # platforms (ab)use it in PIC code, but their linkers get confused if + # the symbol is explicitly referenced. Since portable code cannot + # rely on this symbol name, it's probably fine to never include it in + # preloaded symbol tables. + # Exclude shared library initialization/finalization symbols. +dnl Note also adjust exclude_expsyms for C++ above. + extract_expsyms_cmds= + + case $host_os in + cygwin* | mingw* | pw32* | cegcc*) + # FIXME: the MSVC++ port hasn't been tested in a loooong time + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + if test "$GCC" != yes; then + with_gnu_ld=no + fi + ;; + interix*) + # we just hope/assume this is gcc and not c89 (= MSVC++) + with_gnu_ld=yes + ;; + openbsd*) + with_gnu_ld=no + ;; + linux* | k*bsd*-gnu | gnu*) + _LT_TAGVAR(link_all_deplibs, $1)=no + ;; + esac + + _LT_TAGVAR(ld_shlibs, $1)=yes + + # On some targets, GNU ld is compatible enough with the native linker + # that we're better off using the native interface for both. + lt_use_gnu_ld_interface=no + if test "$with_gnu_ld" = yes; then + case $host_os in + aix*) + # The AIX port of GNU ld has always aspired to compatibility + # with the native linker. However, as the warning in the GNU ld + # block says, versions before 2.19.5* couldn't really create working + # shared libraries, regardless of the interface used. + case `$LD -v 2>&1` in + *\ \(GNU\ Binutils\)\ 2.19.5*) ;; + *\ \(GNU\ Binutils\)\ 2.[[2-9]]*) ;; + *\ \(GNU\ Binutils\)\ [[3-9]]*) ;; + *) + lt_use_gnu_ld_interface=yes + ;; + esac + ;; + *) + lt_use_gnu_ld_interface=yes + ;; + esac + fi + + if test "$lt_use_gnu_ld_interface" = yes; then + # If archive_cmds runs LD, not CC, wlarc should be empty + wlarc='${wl}' + + # Set some defaults for GNU ld with shared library support. These + # are reset later if shared libraries are not supported. Putting them + # here allows them to be overridden if necessary. + runpath_var=LD_RUN_PATH + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' + # ancient GNU ld didn't support --whole-archive et. al. + if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then + _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' + else + _LT_TAGVAR(whole_archive_flag_spec, $1)= + fi + supports_anon_versioning=no + case `$LD -v 2>&1` in + *GNU\ gold*) supports_anon_versioning=yes ;; + *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11 + *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... + *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... + *\ 2.11.*) ;; # other 2.11 versions + *) supports_anon_versioning=yes ;; + esac + + # See if GNU ld supports shared libraries. + case $host_os in + aix[[3-9]]*) + # On AIX/PPC, the GNU linker is very broken + if test "$host_cpu" != ia64; then + _LT_TAGVAR(ld_shlibs, $1)=no + cat <<_LT_EOF 1>&2 + +*** Warning: the GNU linker, at least up to release 2.19, is reported +*** to be unable to reliably create shared libraries on AIX. +*** Therefore, libtool is disabling shared libraries support. If you +*** really care for shared libraries, you may want to install binutils +*** 2.20 or above, or modify your PATH so that a non-GNU linker is found. +*** You will then need to restart the configuration process. + +_LT_EOF + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='' + ;; + m68k) + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_minus_L, $1)=yes + ;; + esac + ;; + + beos*) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + # Joseph Beckenbach says some releases of gcc + # support --undefined. This deserves some investigation. FIXME + _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + cygwin* | mingw* | pw32* | cegcc*) + # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, + # as there is no search path for DLLs. + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-all-symbols' + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_TAGVAR(always_export_symbols, $1)=no + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' + _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'] + + if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + # If the export-symbols file already is a .def file (1st line + # is EXPORTS), use it as is; otherwise, prepend... + _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then + cp $export_symbols $output_objdir/$soname.def; + else + echo EXPORTS > $output_objdir/$soname.def; + cat $export_symbols >> $output_objdir/$soname.def; + fi~ + $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + haiku*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(link_all_deplibs, $1)=yes + ;; + + interix[[3-9]]*) + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. + # Instead, shared libraries are loaded at an image base (0x10000000 by + # default) and relocated if they conflict, which is a slow very memory + # consuming and fragmenting process. To avoid this, we pick a random, + # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link + # time. Moving up from 0x10000000 also allows more sbrk(2) space. + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + ;; + + gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) + tmp_diet=no + if test "$host_os" = linux-dietlibc; then + case $cc_basename in + diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) + esac + fi + if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ + && test "$tmp_diet" = no + then + tmp_addflag=' $pic_flag' + tmp_sharedflag='-shared' + case $cc_basename,$host_cpu in + pgcc*) # Portland Group C compiler + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' + tmp_addflag=' $pic_flag' + ;; + pgf77* | pgf90* | pgf95* | pgfortran*) + # Portland Group f77 and f90 compilers + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' + tmp_addflag=' $pic_flag -Mnomain' ;; + ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 + tmp_addflag=' -i_dynamic' ;; + efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 + tmp_addflag=' -i_dynamic -nofor_main' ;; + ifc* | ifort*) # Intel Fortran compiler + tmp_addflag=' -nofor_main' ;; + lf95*) # Lahey Fortran 8.1 + _LT_TAGVAR(whole_archive_flag_spec, $1)= + tmp_sharedflag='--shared' ;; + xl[[cC]]* | bgxl[[cC]]* | mpixl[[cC]]*) # IBM XL C 8.0 on PPC (deal with xlf below) + tmp_sharedflag='-qmkshrobj' + tmp_addflag= ;; + nvcc*) # Cuda Compiler Driver 2.2 + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' + _LT_TAGVAR(compiler_needs_object, $1)=yes + ;; + esac + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) # Sun C 5.9 + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' + _LT_TAGVAR(compiler_needs_object, $1)=yes + tmp_sharedflag='-G' ;; + *Sun\ F*) # Sun Fortran 8.3 + tmp_sharedflag='-G' ;; + esac + _LT_TAGVAR(archive_cmds, $1)='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + + if test "x$supports_anon_versioning" = xyes; then + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' + fi + + case $cc_basename in + xlf* | bgf* | bgxlf* | mpixlf*) + # IBM XL Fortran 10.1 on PPC cannot create shared libs itself + _LT_TAGVAR(whole_archive_flag_spec, $1)='--whole-archive$convenience --no-whole-archive' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' + if test "x$supports_anon_versioning" = xyes; then + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' + fi + ;; + esac + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + netbsd* | netbsdelf*-gnu) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' + wlarc= + else + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + fi + ;; + + solaris*) + if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then + _LT_TAGVAR(ld_shlibs, $1)=no + cat <<_LT_EOF 1>&2 + +*** Warning: The releases 2.8.* of the GNU linker cannot reliably +*** create shared libraries on Solaris systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.9.1 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +_LT_EOF + elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) + case `$LD -v 2>&1` in + *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.1[[0-5]].*) + _LT_TAGVAR(ld_shlibs, $1)=no + cat <<_LT_EOF 1>&2 + +*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not +*** reliably create shared libraries on SCO systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.16.91.0.3 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +_LT_EOF + ;; + *) + # For security reasons, it is highly recommended that you always + # use absolute paths for naming shared libraries, and exclude the + # DT_RUNPATH tag from executables and libraries. But doing so + # requires that you compile everything twice, which is a pain. + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + + sunos4*) + _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' + wlarc= + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + *) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + + if test "$_LT_TAGVAR(ld_shlibs, $1)" = no; then + runpath_var= + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= + _LT_TAGVAR(export_dynamic_flag_spec, $1)= + _LT_TAGVAR(whole_archive_flag_spec, $1)= + fi + else + # PORTME fill in a description of your system's linker (not GNU ld) + case $host_os in + aix3*) + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_TAGVAR(always_export_symbols, $1)=yes + _LT_TAGVAR(archive_expsym_cmds, $1)='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' + # Note: this linker hardcodes the directories in LIBPATH if there + # are no directories specified by -L. + _LT_TAGVAR(hardcode_minus_L, $1)=yes + if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then + # Neither direct hardcoding nor static linking is supported with a + # broken collect2. + _LT_TAGVAR(hardcode_direct, $1)=unsupported + fi + ;; + + aix[[4-9]]*) + if test "$host_cpu" = ia64; then + # On IA64, the linker does run time linking by default, so we don't + # have to do anything special. + aix_use_runtimelinking=no + exp_sym_flag='-Bexport' + no_entry_flag="" + else + # If we're using GNU nm, then we don't want the "-C" option. + # -C means demangle to AIX nm, but means don't demangle with GNU nm + # Also, AIX nm treats weak defined symbols like other global + # defined symbols, whereas GNU nm marks them as "W". + if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then + _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' + else + _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' + fi + aix_use_runtimelinking=no + + # Test if we are trying to use run time linking or normal + # AIX style linking. If -brtl is somewhere in LDFLAGS, we + # need to do runtime linking. + case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*) + for ld_flag in $LDFLAGS; do + if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then + aix_use_runtimelinking=yes + break + fi + done + ;; + esac + + exp_sym_flag='-bexport' + no_entry_flag='-bnoentry' + fi + + # When large executables or shared objects are built, AIX ld can + # have problems creating the table of contents. If linking a library + # or program results in "error TOC overflow" add -mminimal-toc to + # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not + # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. + + _LT_TAGVAR(archive_cmds, $1)='' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(hardcode_libdir_separator, $1)=':' + _LT_TAGVAR(link_all_deplibs, $1)=yes + _LT_TAGVAR(file_list_spec, $1)='${wl}-f,' + + if test "$GCC" = yes; then + case $host_os in aix4.[[012]]|aix4.[[012]].*) + # We only want to do this on AIX 4.2 and lower, the check + # below for broken collect2 doesn't work under 4.3+ + collect2name=`${CC} -print-prog-name=collect2` + if test -f "$collect2name" && + strings "$collect2name" | $GREP resolve_lib_name >/dev/null + then + # We have reworked collect2 + : + else + # We have old collect2 + _LT_TAGVAR(hardcode_direct, $1)=unsupported + # It fails to find uninstalled libraries when the uninstalled + # path is not listed in the libpath. Setting hardcode_minus_L + # to unsupported forces relinking + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)= + fi + ;; + esac + shared_flag='-shared' + if test "$aix_use_runtimelinking" = yes; then + shared_flag="$shared_flag "'${wl}-G' + fi + _LT_TAGVAR(link_all_deplibs, $1)=no + else + # not using gcc + if test "$host_cpu" = ia64; then + # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release + # chokes on -Wl,-G. The following line is correct: + shared_flag='-G' + else + if test "$aix_use_runtimelinking" = yes; then + shared_flag='${wl}-G' + else + shared_flag='${wl}-bM:SRE' + fi + fi + fi + + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall' + # It seems that -bexpall does not export symbols beginning with + # underscore (_), so it is better to generate a list of symbols to export. + _LT_TAGVAR(always_export_symbols, $1)=yes + if test "$aix_use_runtimelinking" = yes; then + # Warning - without using the other runtime loading flags (-brtl), + # -berok will link without error, but may produce a broken library. + _LT_TAGVAR(allow_undefined_flag, $1)='-berok' + # Determine the default libpath from the value encoded in an + # empty executable. + _LT_SYS_MODULE_PATH_AIX([$1]) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" + else + if test "$host_cpu" = ia64; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' + _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" + _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" + else + # Determine the default libpath from the value encoded in an + # empty executable. + _LT_SYS_MODULE_PATH_AIX([$1]) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" + # Warning - without using the other run time loading flags, + # -berok will link without error, but may produce a broken library. + _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' + _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' + if test "$with_gnu_ld" = yes; then + # We only use this code for GNU lds that support --whole-archive. + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' + else + # Exported symbols can be pulled into shared objects from archives + _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' + fi + _LT_TAGVAR(archive_cmds_need_lc, $1)=yes + # This is similar to how AIX traditionally builds its shared libraries. + _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' + fi + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='' + ;; + m68k) + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_minus_L, $1)=yes + ;; + esac + ;; + + bsdi[[45]]*) + _LT_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic + ;; + + cygwin* | mingw* | pw32* | cegcc*) + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + # hardcode_libdir_flag_spec is actually meaningless, as there is + # no search path for DLLs. + case $cc_basename in + cl*) + # Native MSVC + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_TAGVAR(always_export_symbols, $1)=yes + _LT_TAGVAR(file_list_spec, $1)='@' + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=".dll" + # FIXME: Setting linknames here is a bad hack. + _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' + _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then + sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; + else + sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; + fi~ + $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ + linknames=' + # The linker will not automatically build a static lib if we build a DLL. + # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1,DATA/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols' + # Don't use ranlib + _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib' + _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~ + lt_tool_outputfile="@TOOL_OUTPUT@"~ + case $lt_outputfile in + *.exe|*.EXE) ;; + *) + lt_outputfile="$lt_outputfile.exe" + lt_tool_outputfile="$lt_tool_outputfile.exe" + ;; + esac~ + if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then + $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; + $RM "$lt_outputfile.manifest"; + fi' + ;; + *) + # Assume MSVC wrapper + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=".dll" + # FIXME: Setting linknames here is a bad hack. + _LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' + # The linker will automatically build a .lib file if we build a DLL. + _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' + # FIXME: Should let the user specify the lib program. + _LT_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs' + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + ;; + esac + ;; + + darwin* | rhapsody*) + _LT_DARWIN_LINKER_FEATURES($1) + ;; + + dgux*) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor + # support. Future versions do this automatically, but an explicit c++rt0.o + # does not break anything, and helps significantly (at the cost of a little + # extra space). + freebsd2.2*) + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + # Unfortunately, older versions of FreeBSD 2 do not have this feature. + freebsd2.*) + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + # FreeBSD 3 and greater uses gcc -shared to do shared libraries. + freebsd* | dragonfly*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + hpux9*) + if test "$GCC" = yes; then + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + else + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + fi + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(hardcode_direct, $1)=yes + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + ;; + + hpux10*) + if test "$GCC" = yes && test "$with_gnu_ld" = no; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + else + _LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' + fi + if test "$with_gnu_ld" = no; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + _LT_TAGVAR(hardcode_minus_L, $1)=yes + fi + ;; + + hpux11*) + if test "$GCC" = yes && test "$with_gnu_ld" = no; then + case $host_cpu in + hppa*64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + else + case $host_cpu in + hppa*64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + m4_if($1, [], [ + # Older versions of the 11.00 compiler do not understand -b yet + # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does) + _LT_LINKER_OPTION([if $CC understands -b], + _LT_TAGVAR(lt_cv_prog_compiler__b, $1), [-b], + [_LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'], + [_LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'])], + [_LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags']) + ;; + esac + fi + if test "$with_gnu_ld" = no; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + + case $host_cpu in + hppa*64*|ia64*) + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + *) + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + _LT_TAGVAR(hardcode_minus_L, $1)=yes + ;; + esac + fi + ;; + + irix5* | irix6* | nonstopux*) + if test "$GCC" = yes; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + # Try to use the -exported_symbol ld option, if it does not + # work, assume that -exports_file does not work either and + # implicitly export all symbols. + # This should be the same for all languages, so no per-tag cache variable. + AC_CACHE_CHECK([whether the $host_os linker accepts -exported_symbol], + [lt_cv_irix_exported_symbol], + [save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" + AC_LINK_IFELSE( + [AC_LANG_SOURCE( + [AC_LANG_CASE([C], [[int foo (void) { return 0; }]], + [C++], [[int foo (void) { return 0; }]], + [Fortran 77], [[ + subroutine foo + end]], + [Fortran], [[ + subroutine foo + end]])])], + [lt_cv_irix_exported_symbol=yes], + [lt_cv_irix_exported_symbol=no]) + LDFLAGS="$save_LDFLAGS"]) + if test "$lt_cv_irix_exported_symbol" = yes; then + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' + fi + else + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' + fi + _LT_TAGVAR(archive_cmds_need_lc, $1)='no' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(inherit_rpath, $1)=yes + _LT_TAGVAR(link_all_deplibs, $1)=yes + ;; + + netbsd* | netbsdelf*-gnu) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out + else + _LT_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF + fi + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + newsos6) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + *nto* | *qnx*) + ;; + + openbsd*) + if test -f /usr/libexec/ld.so; then + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + else + case $host_os in + openbsd[[01]].* | openbsd2.[[0-7]] | openbsd2.[[0-7]].*) + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + ;; + esac + fi + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + os2*) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~echo DATA >> $output_objdir/$libname.def~echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' + _LT_TAGVAR(old_archive_from_new_cmds, $1)='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' + ;; + + osf3*) + if test "$GCC" = yes; then + _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + else + _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' + fi + _LT_TAGVAR(archive_cmds_need_lc, $1)='no' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + ;; + + osf4* | osf5*) # as osf3* with the addition of -msym flag + if test "$GCC" = yes; then + _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + else + _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ + $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp' + + # Both c and cxx compiler support -rpath directly + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' + fi + _LT_TAGVAR(archive_cmds_need_lc, $1)='no' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + ;; + + solaris*) + _LT_TAGVAR(no_undefined_flag, $1)=' -z defs' + if test "$GCC" = yes; then + wlarc='${wl}' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' + else + case `$CC -V 2>&1` in + *"Compilers 5.0"*) + wlarc='' + _LT_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp' + ;; + *) + wlarc='${wl}' + _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' + ;; + esac + fi + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + case $host_os in + solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; + *) + # The compiler driver will combine and reorder linker options, + # but understands `-z linker_flag'. GCC discards it without `$wl', + # but is careful enough not to reorder. + # Supported since Solaris 2.6 (maybe 2.5.1?) + if test "$GCC" = yes; then + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' + else + _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' + fi + ;; + esac + _LT_TAGVAR(link_all_deplibs, $1)=yes + ;; + + sunos4*) + if test "x$host_vendor" = xsequent; then + # Use $CC to link under sequent, because it throws in some extra .o + # files that make .init and .fini sections work. + _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' + else + _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' + fi + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + sysv4) + case $host_vendor in + sni) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_direct, $1)=yes # is this really true??? + ;; + siemens) + ## LD is ld it makes a PLAMLIB + ## CC just makes a GrossModule. + _LT_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs' + _LT_TAGVAR(hardcode_direct, $1)=no + ;; + motorola) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie + ;; + esac + runpath_var='LD_RUN_PATH' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + sysv4.3*) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + runpath_var=LD_RUN_PATH + hardcode_runpath_var=yes + _LT_TAGVAR(ld_shlibs, $1)=yes + fi + ;; + + sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) + _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + runpath_var='LD_RUN_PATH' + + if test "$GCC" = yes; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + else + _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + ;; + + sysv5* | sco3.2v5* | sco5v6*) + # Note: We can NOT use -z defs as we might desire, because we do not + # link with -lc, and that would cause any symbols used from libc to + # always be unresolved, which means just about no library would + # ever link correctly. If we're not using GNU ld we use -z text + # though, which does catch some bad symbols but isn't as heavy-handed + # as -z defs. + _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' + _LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs' + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=':' + _LT_TAGVAR(link_all_deplibs, $1)=yes + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' + runpath_var='LD_RUN_PATH' + + if test "$GCC" = yes; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + else + _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + ;; + + uts4*) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + *) + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + + if test x$host_vendor = xsni; then + case $host in + sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Blargedynsym' + ;; + esac + fi + fi +]) +AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) +test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no + +_LT_TAGVAR(with_gnu_ld, $1)=$with_gnu_ld + +_LT_DECL([], [libext], [0], [Old archive suffix (normally "a")])dnl +_LT_DECL([], [shrext_cmds], [1], [Shared library suffix (normally ".so")])dnl +_LT_DECL([], [extract_expsyms_cmds], [2], + [The commands to extract the exported symbol list from a shared archive]) + +# +# Do we need to explicitly link libc? +# +case "x$_LT_TAGVAR(archive_cmds_need_lc, $1)" in +x|xyes) + # Assume -lc should be added + _LT_TAGVAR(archive_cmds_need_lc, $1)=yes + + if test "$enable_shared" = yes && test "$GCC" = yes; then + case $_LT_TAGVAR(archive_cmds, $1) in + *'~'*) + # FIXME: we may have to deal with multi-command sequences. + ;; + '$CC '*) + # Test whether the compiler implicitly links with -lc since on some + # systems, -lgcc has to come before -lc. If gcc already passes -lc + # to ld, don't add -lc before -lgcc. + AC_CACHE_CHECK([whether -lc should be explicitly linked in], + [lt_cv_]_LT_TAGVAR(archive_cmds_need_lc, $1), + [$RM conftest* + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + if AC_TRY_EVAL(ac_compile) 2>conftest.err; then + soname=conftest + lib=conftest + libobjs=conftest.$ac_objext + deplibs= + wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) + pic_flag=$_LT_TAGVAR(lt_prog_compiler_pic, $1) + compiler_flags=-v + linker_flags=-v + verstring= + output_objdir=. + libname=conftest + lt_save_allow_undefined_flag=$_LT_TAGVAR(allow_undefined_flag, $1) + _LT_TAGVAR(allow_undefined_flag, $1)= + if AC_TRY_EVAL(_LT_TAGVAR(archive_cmds, $1) 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) + then + lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=no + else + lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=yes + fi + _LT_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag + else + cat conftest.err 1>&5 + fi + $RM conftest* + ]) + _LT_TAGVAR(archive_cmds_need_lc, $1)=$lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1) + ;; + esac + fi + ;; +esac + +_LT_TAGDECL([build_libtool_need_lc], [archive_cmds_need_lc], [0], + [Whether or not to add -lc for building shared libraries]) +_LT_TAGDECL([allow_libtool_libs_with_static_runtimes], + [enable_shared_with_static_runtimes], [0], + [Whether or not to disallow shared libs when runtime libs are static]) +_LT_TAGDECL([], [export_dynamic_flag_spec], [1], + [Compiler flag to allow reflexive dlopens]) +_LT_TAGDECL([], [whole_archive_flag_spec], [1], + [Compiler flag to generate shared objects directly from archives]) +_LT_TAGDECL([], [compiler_needs_object], [1], + [Whether the compiler copes with passing no objects directly]) +_LT_TAGDECL([], [old_archive_from_new_cmds], [2], + [Create an old-style archive from a shared archive]) +_LT_TAGDECL([], [old_archive_from_expsyms_cmds], [2], + [Create a temporary old-style archive to link instead of a shared archive]) +_LT_TAGDECL([], [archive_cmds], [2], [Commands used to build a shared archive]) +_LT_TAGDECL([], [archive_expsym_cmds], [2]) +_LT_TAGDECL([], [module_cmds], [2], + [Commands used to build a loadable module if different from building + a shared archive.]) +_LT_TAGDECL([], [module_expsym_cmds], [2]) +_LT_TAGDECL([], [with_gnu_ld], [1], + [Whether we are building with GNU ld or not]) +_LT_TAGDECL([], [allow_undefined_flag], [1], + [Flag that allows shared libraries with undefined symbols to be built]) +_LT_TAGDECL([], [no_undefined_flag], [1], + [Flag that enforces no undefined symbols]) +_LT_TAGDECL([], [hardcode_libdir_flag_spec], [1], + [Flag to hardcode $libdir into a binary during linking. + This must work even if $libdir does not exist]) +_LT_TAGDECL([], [hardcode_libdir_separator], [1], + [Whether we need a single "-rpath" flag with a separated argument]) +_LT_TAGDECL([], [hardcode_direct], [0], + [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes + DIR into the resulting binary]) +_LT_TAGDECL([], [hardcode_direct_absolute], [0], + [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes + DIR into the resulting binary and the resulting library dependency is + "absolute", i.e impossible to change by setting ${shlibpath_var} if the + library is relocated]) +_LT_TAGDECL([], [hardcode_minus_L], [0], + [Set to "yes" if using the -LDIR flag during linking hardcodes DIR + into the resulting binary]) +_LT_TAGDECL([], [hardcode_shlibpath_var], [0], + [Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR + into the resulting binary]) +_LT_TAGDECL([], [hardcode_automatic], [0], + [Set to "yes" if building a shared library automatically hardcodes DIR + into the library and all subsequent libraries and executables linked + against it]) +_LT_TAGDECL([], [inherit_rpath], [0], + [Set to yes if linker adds runtime paths of dependent libraries + to runtime path list]) +_LT_TAGDECL([], [link_all_deplibs], [0], + [Whether libtool must link a program against all its dependency libraries]) +_LT_TAGDECL([], [always_export_symbols], [0], + [Set to "yes" if exported symbols are required]) +_LT_TAGDECL([], [export_symbols_cmds], [2], + [The commands to list exported symbols]) +_LT_TAGDECL([], [exclude_expsyms], [1], + [Symbols that should not be listed in the preloaded symbols]) +_LT_TAGDECL([], [include_expsyms], [1], + [Symbols that must always be exported]) +_LT_TAGDECL([], [prelink_cmds], [2], + [Commands necessary for linking programs (against libraries) with templates]) +_LT_TAGDECL([], [postlink_cmds], [2], + [Commands necessary for finishing linking programs]) +_LT_TAGDECL([], [file_list_spec], [1], + [Specify filename containing input files]) +dnl FIXME: Not yet implemented +dnl _LT_TAGDECL([], [thread_safe_flag_spec], [1], +dnl [Compiler flag to generate thread safe objects]) +])# _LT_LINKER_SHLIBS + + +# _LT_LANG_C_CONFIG([TAG]) +# ------------------------ +# Ensure that the configuration variables for a C compiler are suitably +# defined. These variables are subsequently used by _LT_CONFIG to write +# the compiler configuration to `libtool'. +m4_defun([_LT_LANG_C_CONFIG], +[m4_require([_LT_DECL_EGREP])dnl +lt_save_CC="$CC" +AC_LANG_PUSH(C) + +# Source file extension for C test sources. +ac_ext=c + +# Object file extension for compiled C test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code="int some_variable = 0;" + +# Code to be used in simple link tests +lt_simple_link_test_code='int main(){return(0);}' + +_LT_TAG_COMPILER +# Save the default compiler, since it gets overwritten when the other +# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. +compiler_DEFAULT=$CC + +# save warnings/boilerplate of simple test code +_LT_COMPILER_BOILERPLATE +_LT_LINKER_BOILERPLATE + +## CAVEAT EMPTOR: +## There is no encapsulation within the following macros, do not change +## the running order or otherwise move them around unless you know exactly +## what you are doing... +if test -n "$compiler"; then + _LT_COMPILER_NO_RTTI($1) + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_SYS_DYNAMIC_LINKER($1) + _LT_LINKER_HARDCODE_LIBPATH($1) + LT_SYS_DLOPEN_SELF + _LT_CMD_STRIPLIB + + # Report which library types will actually be built + AC_MSG_CHECKING([if libtool supports shared libraries]) + AC_MSG_RESULT([$can_build_shared]) + + AC_MSG_CHECKING([whether to build shared libraries]) + test "$can_build_shared" = "no" && enable_shared=no + + # On AIX, shared libraries and static libraries use the same namespace, and + # are all built from PIC. + case $host_os in + aix3*) + test "$enable_shared" = yes && enable_static=no + if test -n "$RANLIB"; then + archive_cmds="$archive_cmds~\$RANLIB \$lib" + postinstall_cmds='$RANLIB $lib' + fi + ;; + + aix[[4-9]]*) + if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then + test "$enable_shared" = yes && enable_static=no + fi + ;; + esac + AC_MSG_RESULT([$enable_shared]) + + AC_MSG_CHECKING([whether to build static libraries]) + # Make sure either enable_shared or enable_static is yes. + test "$enable_shared" = yes || enable_static=yes + AC_MSG_RESULT([$enable_static]) + + _LT_CONFIG($1) +fi +AC_LANG_POP +CC="$lt_save_CC" +])# _LT_LANG_C_CONFIG + + +# _LT_LANG_CXX_CONFIG([TAG]) +# -------------------------- +# Ensure that the configuration variables for a C++ compiler are suitably +# defined. These variables are subsequently used by _LT_CONFIG to write +# the compiler configuration to `libtool'. +m4_defun([_LT_LANG_CXX_CONFIG], +[m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_DECL_EGREP])dnl +m4_require([_LT_PATH_MANIFEST_TOOL])dnl +if test -n "$CXX" && ( test "X$CXX" != "Xno" && + ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || + (test "X$CXX" != "Xg++"))) ; then + AC_PROG_CXXCPP +else + _lt_caught_CXX_error=yes +fi + +AC_LANG_PUSH(C++) +_LT_TAGVAR(archive_cmds_need_lc, $1)=no +_LT_TAGVAR(allow_undefined_flag, $1)= +_LT_TAGVAR(always_export_symbols, $1)=no +_LT_TAGVAR(archive_expsym_cmds, $1)= +_LT_TAGVAR(compiler_needs_object, $1)=no +_LT_TAGVAR(export_dynamic_flag_spec, $1)= +_LT_TAGVAR(hardcode_direct, $1)=no +_LT_TAGVAR(hardcode_direct_absolute, $1)=no +_LT_TAGVAR(hardcode_libdir_flag_spec, $1)= +_LT_TAGVAR(hardcode_libdir_separator, $1)= +_LT_TAGVAR(hardcode_minus_L, $1)=no +_LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported +_LT_TAGVAR(hardcode_automatic, $1)=no +_LT_TAGVAR(inherit_rpath, $1)=no +_LT_TAGVAR(module_cmds, $1)= +_LT_TAGVAR(module_expsym_cmds, $1)= +_LT_TAGVAR(link_all_deplibs, $1)=unknown +_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_TAGVAR(reload_flag, $1)=$reload_flag +_LT_TAGVAR(reload_cmds, $1)=$reload_cmds +_LT_TAGVAR(no_undefined_flag, $1)= +_LT_TAGVAR(whole_archive_flag_spec, $1)= +_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no + +# Source file extension for C++ test sources. +ac_ext=cpp + +# Object file extension for compiled C++ test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# No sense in running all these tests if we already determined that +# the CXX compiler isn't working. Some variables (like enable_shared) +# are currently assumed to apply to all compilers on this platform, +# and will be corrupted by setting them based on a non-working compiler. +if test "$_lt_caught_CXX_error" != yes; then + # Code to be used in simple compile tests + lt_simple_compile_test_code="int some_variable = 0;" + + # Code to be used in simple link tests + lt_simple_link_test_code='int main(int, char *[[]]) { return(0); }' + + # ltmain only uses $CC for tagged configurations so make sure $CC is set. + _LT_TAG_COMPILER + + # save warnings/boilerplate of simple test code + _LT_COMPILER_BOILERPLATE + _LT_LINKER_BOILERPLATE + + # Allow CC to be a program name with arguments. + lt_save_CC=$CC + lt_save_CFLAGS=$CFLAGS + lt_save_LD=$LD + lt_save_GCC=$GCC + GCC=$GXX + lt_save_with_gnu_ld=$with_gnu_ld + lt_save_path_LD=$lt_cv_path_LD + if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then + lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx + else + $as_unset lt_cv_prog_gnu_ld + fi + if test -n "${lt_cv_path_LDCXX+set}"; then + lt_cv_path_LD=$lt_cv_path_LDCXX + else + $as_unset lt_cv_path_LD + fi + test -z "${LDCXX+set}" || LD=$LDCXX + CC=${CXX-"c++"} + CFLAGS=$CXXFLAGS + compiler=$CC + _LT_TAGVAR(compiler, $1)=$CC + _LT_CC_BASENAME([$compiler]) + + if test -n "$compiler"; then + # We don't want -fno-exception when compiling C++ code, so set the + # no_builtin_flag separately + if test "$GXX" = yes; then + _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' + else + _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= + fi + + if test "$GXX" = yes; then + # Set up default GNU C++ configuration + + LT_PATH_LD + + # Check if GNU C++ uses GNU ld as the underlying linker, since the + # archiving commands below assume that GNU ld is being used. + if test "$with_gnu_ld" = yes; then + _LT_TAGVAR(archive_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' + + # If archive_cmds runs LD, not CC, wlarc should be empty + # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to + # investigate it a little bit more. (MM) + wlarc='${wl}' + + # ancient GNU ld didn't support --whole-archive et. al. + if eval "`$CC -print-prog-name=ld` --help 2>&1" | + $GREP 'no-whole-archive' > /dev/null; then + _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' + else + _LT_TAGVAR(whole_archive_flag_spec, $1)= + fi + else + with_gnu_ld=no + wlarc= + + # A generic and very simple default shared library creation + # command for GNU C++ for the case where it uses the native + # linker, instead of GNU ld. If possible, this setting should + # overridden to take advantage of the native linker features on + # the platform it is being used on. + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' + fi + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' + + else + GXX=no + with_gnu_ld=no + wlarc= + fi + + # PORTME: fill in a description of your system's C++ link characteristics + AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) + _LT_TAGVAR(ld_shlibs, $1)=yes + case $host_os in + aix3*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + aix[[4-9]]*) + if test "$host_cpu" = ia64; then + # On IA64, the linker does run time linking by default, so we don't + # have to do anything special. + aix_use_runtimelinking=no + exp_sym_flag='-Bexport' + no_entry_flag="" + else + aix_use_runtimelinking=no + + # Test if we are trying to use run time linking or normal + # AIX style linking. If -brtl is somewhere in LDFLAGS, we + # need to do runtime linking. + case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*) + for ld_flag in $LDFLAGS; do + case $ld_flag in + *-brtl*) + aix_use_runtimelinking=yes + break + ;; + esac + done + ;; + esac + + exp_sym_flag='-bexport' + no_entry_flag='-bnoentry' + fi + + # When large executables or shared objects are built, AIX ld can + # have problems creating the table of contents. If linking a library + # or program results in "error TOC overflow" add -mminimal-toc to + # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not + # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. + + _LT_TAGVAR(archive_cmds, $1)='' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(hardcode_libdir_separator, $1)=':' + _LT_TAGVAR(link_all_deplibs, $1)=yes + _LT_TAGVAR(file_list_spec, $1)='${wl}-f,' + + if test "$GXX" = yes; then + case $host_os in aix4.[[012]]|aix4.[[012]].*) + # We only want to do this on AIX 4.2 and lower, the check + # below for broken collect2 doesn't work under 4.3+ + collect2name=`${CC} -print-prog-name=collect2` + if test -f "$collect2name" && + strings "$collect2name" | $GREP resolve_lib_name >/dev/null + then + # We have reworked collect2 + : + else + # We have old collect2 + _LT_TAGVAR(hardcode_direct, $1)=unsupported + # It fails to find uninstalled libraries when the uninstalled + # path is not listed in the libpath. Setting hardcode_minus_L + # to unsupported forces relinking + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)= + fi + esac + shared_flag='-shared' + if test "$aix_use_runtimelinking" = yes; then + shared_flag="$shared_flag "'${wl}-G' + fi + else + # not using gcc + if test "$host_cpu" = ia64; then + # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release + # chokes on -Wl,-G. The following line is correct: + shared_flag='-G' + else + if test "$aix_use_runtimelinking" = yes; then + shared_flag='${wl}-G' + else + shared_flag='${wl}-bM:SRE' + fi + fi + fi + + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall' + # It seems that -bexpall does not export symbols beginning with + # underscore (_), so it is better to generate a list of symbols to + # export. + _LT_TAGVAR(always_export_symbols, $1)=yes + if test "$aix_use_runtimelinking" = yes; then + # Warning - without using the other runtime loading flags (-brtl), + # -berok will link without error, but may produce a broken library. + _LT_TAGVAR(allow_undefined_flag, $1)='-berok' + # Determine the default libpath from the value encoded in an empty + # executable. + _LT_SYS_MODULE_PATH_AIX([$1]) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" + + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" + else + if test "$host_cpu" = ia64; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' + _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" + _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" + else + # Determine the default libpath from the value encoded in an + # empty executable. + _LT_SYS_MODULE_PATH_AIX([$1]) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" + # Warning - without using the other run time loading flags, + # -berok will link without error, but may produce a broken library. + _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' + _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' + if test "$with_gnu_ld" = yes; then + # We only use this code for GNU lds that support --whole-archive. + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' + else + # Exported symbols can be pulled into shared objects from archives + _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' + fi + _LT_TAGVAR(archive_cmds_need_lc, $1)=yes + # This is similar to how AIX traditionally builds its shared + # libraries. + _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' + fi + fi + ;; + + beos*) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + # Joseph Beckenbach says some releases of gcc + # support --undefined. This deserves some investigation. FIXME + _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + chorus*) + case $cc_basename in + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + + cygwin* | mingw* | pw32* | cegcc*) + case $GXX,$cc_basename in + ,cl* | no,cl*) + # Native MSVC + # hardcode_libdir_flag_spec is actually meaningless, as there is + # no search path for DLLs. + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_TAGVAR(always_export_symbols, $1)=yes + _LT_TAGVAR(file_list_spec, $1)='@' + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=".dll" + # FIXME: Setting linknames here is a bad hack. + _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' + _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then + $SED -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; + else + $SED -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; + fi~ + $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ + linknames=' + # The linker will not automatically build a static lib if we build a DLL. + # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + # Don't use ranlib + _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib' + _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~ + lt_tool_outputfile="@TOOL_OUTPUT@"~ + case $lt_outputfile in + *.exe|*.EXE) ;; + *) + lt_outputfile="$lt_outputfile.exe" + lt_tool_outputfile="$lt_tool_outputfile.exe" + ;; + esac~ + func_to_tool_file "$lt_outputfile"~ + if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then + $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; + $RM "$lt_outputfile.manifest"; + fi' + ;; + *) + # g++ + # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, + # as there is no search path for DLLs. + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-all-symbols' + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_TAGVAR(always_export_symbols, $1)=no + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + + if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + # If the export-symbols file already is a .def file (1st line + # is EXPORTS), use it as is; otherwise, prepend... + _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then + cp $export_symbols $output_objdir/$soname.def; + else + echo EXPORTS > $output_objdir/$soname.def; + cat $export_symbols >> $output_objdir/$soname.def; + fi~ + $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + darwin* | rhapsody*) + _LT_DARWIN_LINKER_FEATURES($1) + ;; + + dgux*) + case $cc_basename in + ec++*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + ghcx*) + # Green Hills C++ Compiler + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + + freebsd2.*) + # C++ shared libraries reported to be fairly broken before + # switch to ELF + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + + freebsd-elf*) + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + ;; + + freebsd* | dragonfly*) + # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF + # conventions + _LT_TAGVAR(ld_shlibs, $1)=yes + ;; + + haiku*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(link_all_deplibs, $1)=yes + ;; + + hpux9*) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, + # but as the default + # location of the library. + + case $cc_basename in + CC*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + aCC*) + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' + ;; + *) + if test "$GXX" = yes; then + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + else + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + + hpux10*|hpux11*) + if test $with_gnu_ld = no; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + + case $host_cpu in + hppa*64*|ia64*) + ;; + *) + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + ;; + esac + fi + case $host_cpu in + hppa*64*|ia64*) + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + *) + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, + # but as the default + # location of the library. + ;; + esac + + case $cc_basename in + CC*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + aCC*) + case $host_cpu in + hppa*64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + ia64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + esac + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' + ;; + *) + if test "$GXX" = yes; then + if test $with_gnu_ld = no; then + case $host_cpu in + hppa*64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + ia64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + esac + fi + else + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + + interix[[3-9]]*) + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. + # Instead, shared libraries are loaded at an image base (0x10000000 by + # default) and relocated if they conflict, which is a slow very memory + # consuming and fragmenting process. To avoid this, we pick a random, + # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link + # time. Moving up from 0x10000000 also allows more sbrk(2) space. + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + ;; + irix5* | irix6*) + case $cc_basename in + CC*) + # SGI C++ + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' + + # Archives containing C++ object files must be created using + # "CC -ar", where "CC" is the IRIX C++ compiler. This is + # necessary to make sure instantiated templates are included + # in the archive. + _LT_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs' + ;; + *) + if test "$GXX" = yes; then + if test "$with_gnu_ld" = no; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + else + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` -o $lib' + fi + fi + _LT_TAGVAR(link_all_deplibs, $1)=yes + ;; + esac + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(inherit_rpath, $1)=yes + ;; + + linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) + case $cc_basename in + KCC*) + # Kuck and Associates, Inc. (KAI) C++ Compiler + + # KCC will only create a shared library if the output file + # ends with ".so" (or ".sl" for HP-UX), so rename the library + # to its proper name (with version) after linking. + _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib' + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' + + # Archives containing C++ object files must be created using + # "CC -Bstatic", where "CC" is the KAI C++ compiler. + _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' + ;; + icpc* | ecpc* ) + # Intel C++ + with_gnu_ld=yes + # version 8.0 and above of icpc choke on multiply defined symbols + # if we add $predep_objects and $postdep_objects, however 7.1 and + # earlier do not add the objects themselves. + case `$CC -V 2>&1` in + *"Version 7."*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + ;; + *) # Version 8.0 or newer + tmp_idyn= + case $host_cpu in + ia64*) tmp_idyn=' -i_dynamic';; + esac + _LT_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + ;; + esac + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' + ;; + pgCC* | pgcpp*) + # Portland Group C++ compiler + case `$CC -V` in + *pgCC\ [[1-5]].* | *pgcpp\ [[1-5]].*) + _LT_TAGVAR(prelink_cmds, $1)='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~ + compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"' + _LT_TAGVAR(old_archive_cmds, $1)='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~ + $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~ + $RANLIB $oldlib' + _LT_TAGVAR(archive_cmds, $1)='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ + $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ + $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' + ;; + *) # Version 6 and above use weak symbols + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' + ;; + esac + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' + ;; + cxx*) + # Compaq C++ + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib ${wl}-retain-symbols-file $wl$export_symbols' + + runpath_var=LD_RUN_PATH + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "X$list" | $Xsed' + ;; + xl* | mpixl* | bgxl*) + # IBM XL 8.0 on PPC, with GNU ld + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' + _LT_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + if test "x$supports_anon_versioning" = xyes; then + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' + fi + ;; + *) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) + # Sun C++ 5.9 + _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' + _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' + _LT_TAGVAR(compiler_needs_object, $1)=yes + + # Not sure whether something based on + # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 + # would be better. + output_verbose_link_cmd='func_echo_all' + + # Archives containing C++ object files must be created using + # "CC -xar", where "CC" is the Sun C++ compiler. This is + # necessary to make sure instantiated templates are included + # in the archive. + _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' + ;; + esac + ;; + esac + ;; + + lynxos*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + + m88k*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + + mvs*) + case $cc_basename in + cxx*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + + netbsd*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' + wlarc= + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + fi + # Workaround some broken pre-1.5 toolchains + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"' + ;; + + *nto* | *qnx*) + _LT_TAGVAR(ld_shlibs, $1)=yes + ;; + + openbsd2*) + # C++ shared libraries are fairly broken + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + + openbsd*) + if test -f /usr/libexec/ld.so; then + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' + fi + output_verbose_link_cmd=func_echo_all + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + osf3* | osf4* | osf5*) + case $cc_basename in + KCC*) + # Kuck and Associates, Inc. (KAI) C++ Compiler + + # KCC will only create a shared library if the output file + # ends with ".so" (or ".sl" for HP-UX), so rename the library + # to its proper name (with version) after linking. + _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + + # Archives containing C++ object files must be created using + # the KAI C++ compiler. + case $host in + osf3*) _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;; + *) _LT_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs' ;; + esac + ;; + RCC*) + # Rational C++ 2.4.1 + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + cxx*) + case $host in + osf3*) + _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && func_echo_all "${wl}-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + ;; + *) + _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ + echo "-hidden">> $lib.exp~ + $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname ${wl}-input ${wl}$lib.exp `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~ + $RM $lib.exp' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' + ;; + esac + + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' + ;; + *) + if test "$GXX" = yes && test "$with_gnu_ld" = no; then + _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' + case $host in + osf3*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + ;; + esac + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' + + else + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + + psos*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + + sunos4*) + case $cc_basename in + CC*) + # Sun C++ 4.x + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + lcc*) + # Lucid + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + + solaris*) + case $cc_basename in + CC* | sunCC*) + # Sun C++ 4.2, 5.x and Centerline C++ + _LT_TAGVAR(archive_cmds_need_lc,$1)=yes + _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' + _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -G${allow_undefined_flag} ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + case $host_os in + solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; + *) + # The compiler driver will combine and reorder linker options, + # but understands `-z linker_flag'. + # Supported since Solaris 2.6 (maybe 2.5.1?) + _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' + ;; + esac + _LT_TAGVAR(link_all_deplibs, $1)=yes + + output_verbose_link_cmd='func_echo_all' + + # Archives containing C++ object files must be created using + # "CC -xar", where "CC" is the Sun C++ compiler. This is + # necessary to make sure instantiated templates are included + # in the archive. + _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' + ;; + gcx*) + # Green Hills C++ Compiler + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' + + # The C++ compiler must be used to create the archive. + _LT_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs' + ;; + *) + # GNU C++ compiler with Solaris linker + if test "$GXX" = yes && test "$with_gnu_ld" = no; then + _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs' + if $CC --version | $GREP -v '^2\.7' > /dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -shared $pic_flag -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' + else + # g++ 2.7 appears to require `-G' NOT `-shared' on this + # platform. + _LT_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' + fi + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $wl$libdir' + case $host_os in + solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; + *) + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' + ;; + esac + fi + ;; + esac + ;; + + sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) + _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + runpath_var='LD_RUN_PATH' + + case $cc_basename in + CC*) + _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + ;; + + sysv5* | sco3.2v5* | sco5v6*) + # Note: We can NOT use -z defs as we might desire, because we do not + # link with -lc, and that would cause any symbols used from libc to + # always be unresolved, which means just about no library would + # ever link correctly. If we're not using GNU ld we use -z text + # though, which does catch some bad symbols but isn't as heavy-handed + # as -z defs. + _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' + _LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs' + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=':' + _LT_TAGVAR(link_all_deplibs, $1)=yes + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' + runpath_var='LD_RUN_PATH' + + case $cc_basename in + CC*) + _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(old_archive_cmds, $1)='$CC -Tprelink_objects $oldobjs~ + '"$_LT_TAGVAR(old_archive_cmds, $1)" + _LT_TAGVAR(reload_cmds, $1)='$CC -Tprelink_objects $reload_objs~ + '"$_LT_TAGVAR(reload_cmds, $1)" + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + ;; + + tandem*) + case $cc_basename in + NCC*) + # NonStop-UX NCC 3.20 + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + + vxworks*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + + AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) + test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no + + _LT_TAGVAR(GCC, $1)="$GXX" + _LT_TAGVAR(LD, $1)="$LD" + + ## CAVEAT EMPTOR: + ## There is no encapsulation within the following macros, do not change + ## the running order or otherwise move them around unless you know exactly + ## what you are doing... + _LT_SYS_HIDDEN_LIBDEPS($1) + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_SYS_DYNAMIC_LINKER($1) + _LT_LINKER_HARDCODE_LIBPATH($1) + + _LT_CONFIG($1) + fi # test -n "$compiler" + + CC=$lt_save_CC + CFLAGS=$lt_save_CFLAGS + LDCXX=$LD + LD=$lt_save_LD + GCC=$lt_save_GCC + with_gnu_ld=$lt_save_with_gnu_ld + lt_cv_path_LDCXX=$lt_cv_path_LD + lt_cv_path_LD=$lt_save_path_LD + lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld + lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld +fi # test "$_lt_caught_CXX_error" != yes + +AC_LANG_POP +])# _LT_LANG_CXX_CONFIG + + +# _LT_FUNC_STRIPNAME_CNF +# ---------------------- +# func_stripname_cnf prefix suffix name +# strip PREFIX and SUFFIX off of NAME. +# PREFIX and SUFFIX must not contain globbing or regex special +# characters, hashes, percent signs, but SUFFIX may contain a leading +# dot (in which case that matches only a dot). +# +# This function is identical to the (non-XSI) version of func_stripname, +# except this one can be used by m4 code that may be executed by configure, +# rather than the libtool script. +m4_defun([_LT_FUNC_STRIPNAME_CNF],[dnl +AC_REQUIRE([_LT_DECL_SED]) +AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH]) +func_stripname_cnf () +{ + case ${2} in + .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;; + *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;; + esac +} # func_stripname_cnf +])# _LT_FUNC_STRIPNAME_CNF + +# _LT_SYS_HIDDEN_LIBDEPS([TAGNAME]) +# --------------------------------- +# Figure out "hidden" library dependencies from verbose +# compiler output when linking a shared library. +# Parse the compiler output and extract the necessary +# objects, libraries and library flags. +m4_defun([_LT_SYS_HIDDEN_LIBDEPS], +[m4_require([_LT_FILEUTILS_DEFAULTS])dnl +AC_REQUIRE([_LT_FUNC_STRIPNAME_CNF])dnl +# Dependencies to place before and after the object being linked: +_LT_TAGVAR(predep_objects, $1)= +_LT_TAGVAR(postdep_objects, $1)= +_LT_TAGVAR(predeps, $1)= +_LT_TAGVAR(postdeps, $1)= +_LT_TAGVAR(compiler_lib_search_path, $1)= + +dnl we can't use the lt_simple_compile_test_code here, +dnl because it contains code intended for an executable, +dnl not a library. It's possible we should let each +dnl tag define a new lt_????_link_test_code variable, +dnl but it's only used here... +m4_if([$1], [], [cat > conftest.$ac_ext <<_LT_EOF +int a; +void foo (void) { a = 0; } +_LT_EOF +], [$1], [CXX], [cat > conftest.$ac_ext <<_LT_EOF +class Foo +{ +public: + Foo (void) { a = 0; } +private: + int a; +}; +_LT_EOF +], [$1], [F77], [cat > conftest.$ac_ext <<_LT_EOF + subroutine foo + implicit none + integer*4 a + a=0 + return + end +_LT_EOF +], [$1], [FC], [cat > conftest.$ac_ext <<_LT_EOF + subroutine foo + implicit none + integer a + a=0 + return + end +_LT_EOF +], [$1], [GCJ], [cat > conftest.$ac_ext <<_LT_EOF +public class foo { + private int a; + public void bar (void) { + a = 0; + } +}; +_LT_EOF +], [$1], [GO], [cat > conftest.$ac_ext <<_LT_EOF +package foo +func foo() { +} +_LT_EOF +]) + +_lt_libdeps_save_CFLAGS=$CFLAGS +case "$CC $CFLAGS " in #( +*\ -flto*\ *) CFLAGS="$CFLAGS -fno-lto" ;; +*\ -fwhopr*\ *) CFLAGS="$CFLAGS -fno-whopr" ;; +*\ -fuse-linker-plugin*\ *) CFLAGS="$CFLAGS -fno-use-linker-plugin" ;; +esac + +dnl Parse the compiler output and extract the necessary +dnl objects, libraries and library flags. +if AC_TRY_EVAL(ac_compile); then + # Parse the compiler output and extract the necessary + # objects, libraries and library flags. + + # Sentinel used to keep track of whether or not we are before + # the conftest object file. + pre_test_object_deps_done=no + + for p in `eval "$output_verbose_link_cmd"`; do + case ${prev}${p} in + + -L* | -R* | -l*) + # Some compilers place space between "-{L,R}" and the path. + # Remove the space. + if test $p = "-L" || + test $p = "-R"; then + prev=$p + continue + fi + + # Expand the sysroot to ease extracting the directories later. + if test -z "$prev"; then + case $p in + -L*) func_stripname_cnf '-L' '' "$p"; prev=-L; p=$func_stripname_result ;; + -R*) func_stripname_cnf '-R' '' "$p"; prev=-R; p=$func_stripname_result ;; + -l*) func_stripname_cnf '-l' '' "$p"; prev=-l; p=$func_stripname_result ;; + esac + fi + case $p in + =*) func_stripname_cnf '=' '' "$p"; p=$lt_sysroot$func_stripname_result ;; + esac + if test "$pre_test_object_deps_done" = no; then + case ${prev} in + -L | -R) + # Internal compiler library paths should come after those + # provided the user. The postdeps already come after the + # user supplied libs so there is no need to process them. + if test -z "$_LT_TAGVAR(compiler_lib_search_path, $1)"; then + _LT_TAGVAR(compiler_lib_search_path, $1)="${prev}${p}" + else + _LT_TAGVAR(compiler_lib_search_path, $1)="${_LT_TAGVAR(compiler_lib_search_path, $1)} ${prev}${p}" + fi + ;; + # The "-l" case would never come before the object being + # linked, so don't bother handling this case. + esac + else + if test -z "$_LT_TAGVAR(postdeps, $1)"; then + _LT_TAGVAR(postdeps, $1)="${prev}${p}" + else + _LT_TAGVAR(postdeps, $1)="${_LT_TAGVAR(postdeps, $1)} ${prev}${p}" + fi + fi + prev= + ;; + + *.lto.$objext) ;; # Ignore GCC LTO objects + *.$objext) + # This assumes that the test object file only shows up + # once in the compiler output. + if test "$p" = "conftest.$objext"; then + pre_test_object_deps_done=yes + continue + fi + + if test "$pre_test_object_deps_done" = no; then + if test -z "$_LT_TAGVAR(predep_objects, $1)"; then + _LT_TAGVAR(predep_objects, $1)="$p" + else + _LT_TAGVAR(predep_objects, $1)="$_LT_TAGVAR(predep_objects, $1) $p" + fi + else + if test -z "$_LT_TAGVAR(postdep_objects, $1)"; then + _LT_TAGVAR(postdep_objects, $1)="$p" + else + _LT_TAGVAR(postdep_objects, $1)="$_LT_TAGVAR(postdep_objects, $1) $p" + fi + fi + ;; + + *) ;; # Ignore the rest. + + esac + done + + # Clean up. + rm -f a.out a.exe +else + echo "libtool.m4: error: problem compiling $1 test program" +fi + +$RM -f confest.$objext +CFLAGS=$_lt_libdeps_save_CFLAGS + +# PORTME: override above test on systems where it is broken +m4_if([$1], [CXX], +[case $host_os in +interix[[3-9]]*) + # Interix 3.5 installs completely hosed .la files for C++, so rather than + # hack all around it, let's just trust "g++" to DTRT. + _LT_TAGVAR(predep_objects,$1)= + _LT_TAGVAR(postdep_objects,$1)= + _LT_TAGVAR(postdeps,$1)= + ;; + +linux*) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) + # Sun C++ 5.9 + + # The more standards-conforming stlport4 library is + # incompatible with the Cstd library. Avoid specifying + # it if it's in CXXFLAGS. Ignore libCrun as + # -library=stlport4 depends on it. + case " $CXX $CXXFLAGS " in + *" -library=stlport4 "*) + solaris_use_stlport4=yes + ;; + esac + + if test "$solaris_use_stlport4" != yes; then + _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun' + fi + ;; + esac + ;; + +solaris*) + case $cc_basename in + CC* | sunCC*) + # The more standards-conforming stlport4 library is + # incompatible with the Cstd library. Avoid specifying + # it if it's in CXXFLAGS. Ignore libCrun as + # -library=stlport4 depends on it. + case " $CXX $CXXFLAGS " in + *" -library=stlport4 "*) + solaris_use_stlport4=yes + ;; + esac + + # Adding this requires a known-good setup of shared libraries for + # Sun compiler versions before 5.6, else PIC objects from an old + # archive will be linked into the output, leading to subtle bugs. + if test "$solaris_use_stlport4" != yes; then + _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun' + fi + ;; + esac + ;; +esac +]) + +case " $_LT_TAGVAR(postdeps, $1) " in +*" -lc "*) _LT_TAGVAR(archive_cmds_need_lc, $1)=no ;; +esac + _LT_TAGVAR(compiler_lib_search_dirs, $1)= +if test -n "${_LT_TAGVAR(compiler_lib_search_path, $1)}"; then + _LT_TAGVAR(compiler_lib_search_dirs, $1)=`echo " ${_LT_TAGVAR(compiler_lib_search_path, $1)}" | ${SED} -e 's! -L! !g' -e 's!^ !!'` +fi +_LT_TAGDECL([], [compiler_lib_search_dirs], [1], + [The directories searched by this compiler when creating a shared library]) +_LT_TAGDECL([], [predep_objects], [1], + [Dependencies to place before and after the objects being linked to + create a shared library]) +_LT_TAGDECL([], [postdep_objects], [1]) +_LT_TAGDECL([], [predeps], [1]) +_LT_TAGDECL([], [postdeps], [1]) +_LT_TAGDECL([], [compiler_lib_search_path], [1], + [The library search path used internally by the compiler when linking + a shared library]) +])# _LT_SYS_HIDDEN_LIBDEPS + + +# _LT_LANG_F77_CONFIG([TAG]) +# -------------------------- +# Ensure that the configuration variables for a Fortran 77 compiler are +# suitably defined. These variables are subsequently used by _LT_CONFIG +# to write the compiler configuration to `libtool'. +m4_defun([_LT_LANG_F77_CONFIG], +[AC_LANG_PUSH(Fortran 77) +if test -z "$F77" || test "X$F77" = "Xno"; then + _lt_disable_F77=yes +fi + +_LT_TAGVAR(archive_cmds_need_lc, $1)=no +_LT_TAGVAR(allow_undefined_flag, $1)= +_LT_TAGVAR(always_export_symbols, $1)=no +_LT_TAGVAR(archive_expsym_cmds, $1)= +_LT_TAGVAR(export_dynamic_flag_spec, $1)= +_LT_TAGVAR(hardcode_direct, $1)=no +_LT_TAGVAR(hardcode_direct_absolute, $1)=no +_LT_TAGVAR(hardcode_libdir_flag_spec, $1)= +_LT_TAGVAR(hardcode_libdir_separator, $1)= +_LT_TAGVAR(hardcode_minus_L, $1)=no +_LT_TAGVAR(hardcode_automatic, $1)=no +_LT_TAGVAR(inherit_rpath, $1)=no +_LT_TAGVAR(module_cmds, $1)= +_LT_TAGVAR(module_expsym_cmds, $1)= +_LT_TAGVAR(link_all_deplibs, $1)=unknown +_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_TAGVAR(reload_flag, $1)=$reload_flag +_LT_TAGVAR(reload_cmds, $1)=$reload_cmds +_LT_TAGVAR(no_undefined_flag, $1)= +_LT_TAGVAR(whole_archive_flag_spec, $1)= +_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no + +# Source file extension for f77 test sources. +ac_ext=f + +# Object file extension for compiled f77 test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# No sense in running all these tests if we already determined that +# the F77 compiler isn't working. Some variables (like enable_shared) +# are currently assumed to apply to all compilers on this platform, +# and will be corrupted by setting them based on a non-working compiler. +if test "$_lt_disable_F77" != yes; then + # Code to be used in simple compile tests + lt_simple_compile_test_code="\ + subroutine t + return + end +" + + # Code to be used in simple link tests + lt_simple_link_test_code="\ + program t + end +" + + # ltmain only uses $CC for tagged configurations so make sure $CC is set. + _LT_TAG_COMPILER + + # save warnings/boilerplate of simple test code + _LT_COMPILER_BOILERPLATE + _LT_LINKER_BOILERPLATE + + # Allow CC to be a program name with arguments. + lt_save_CC="$CC" + lt_save_GCC=$GCC + lt_save_CFLAGS=$CFLAGS + CC=${F77-"f77"} + CFLAGS=$FFLAGS + compiler=$CC + _LT_TAGVAR(compiler, $1)=$CC + _LT_CC_BASENAME([$compiler]) + GCC=$G77 + if test -n "$compiler"; then + AC_MSG_CHECKING([if libtool supports shared libraries]) + AC_MSG_RESULT([$can_build_shared]) + + AC_MSG_CHECKING([whether to build shared libraries]) + test "$can_build_shared" = "no" && enable_shared=no + + # On AIX, shared libraries and static libraries use the same namespace, and + # are all built from PIC. + case $host_os in + aix3*) + test "$enable_shared" = yes && enable_static=no + if test -n "$RANLIB"; then + archive_cmds="$archive_cmds~\$RANLIB \$lib" + postinstall_cmds='$RANLIB $lib' + fi + ;; + aix[[4-9]]*) + if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then + test "$enable_shared" = yes && enable_static=no + fi + ;; + esac + AC_MSG_RESULT([$enable_shared]) + + AC_MSG_CHECKING([whether to build static libraries]) + # Make sure either enable_shared or enable_static is yes. + test "$enable_shared" = yes || enable_static=yes + AC_MSG_RESULT([$enable_static]) + + _LT_TAGVAR(GCC, $1)="$G77" + _LT_TAGVAR(LD, $1)="$LD" + + ## CAVEAT EMPTOR: + ## There is no encapsulation within the following macros, do not change + ## the running order or otherwise move them around unless you know exactly + ## what you are doing... + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_SYS_DYNAMIC_LINKER($1) + _LT_LINKER_HARDCODE_LIBPATH($1) + + _LT_CONFIG($1) + fi # test -n "$compiler" + + GCC=$lt_save_GCC + CC="$lt_save_CC" + CFLAGS="$lt_save_CFLAGS" +fi # test "$_lt_disable_F77" != yes + +AC_LANG_POP +])# _LT_LANG_F77_CONFIG + + +# _LT_LANG_FC_CONFIG([TAG]) +# ------------------------- +# Ensure that the configuration variables for a Fortran compiler are +# suitably defined. These variables are subsequently used by _LT_CONFIG +# to write the compiler configuration to `libtool'. +m4_defun([_LT_LANG_FC_CONFIG], +[AC_LANG_PUSH(Fortran) + +if test -z "$FC" || test "X$FC" = "Xno"; then + _lt_disable_FC=yes +fi + +_LT_TAGVAR(archive_cmds_need_lc, $1)=no +_LT_TAGVAR(allow_undefined_flag, $1)= +_LT_TAGVAR(always_export_symbols, $1)=no +_LT_TAGVAR(archive_expsym_cmds, $1)= +_LT_TAGVAR(export_dynamic_flag_spec, $1)= +_LT_TAGVAR(hardcode_direct, $1)=no +_LT_TAGVAR(hardcode_direct_absolute, $1)=no +_LT_TAGVAR(hardcode_libdir_flag_spec, $1)= +_LT_TAGVAR(hardcode_libdir_separator, $1)= +_LT_TAGVAR(hardcode_minus_L, $1)=no +_LT_TAGVAR(hardcode_automatic, $1)=no +_LT_TAGVAR(inherit_rpath, $1)=no +_LT_TAGVAR(module_cmds, $1)= +_LT_TAGVAR(module_expsym_cmds, $1)= +_LT_TAGVAR(link_all_deplibs, $1)=unknown +_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_TAGVAR(reload_flag, $1)=$reload_flag +_LT_TAGVAR(reload_cmds, $1)=$reload_cmds +_LT_TAGVAR(no_undefined_flag, $1)= +_LT_TAGVAR(whole_archive_flag_spec, $1)= +_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no + +# Source file extension for fc test sources. +ac_ext=${ac_fc_srcext-f} + +# Object file extension for compiled fc test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# No sense in running all these tests if we already determined that +# the FC compiler isn't working. Some variables (like enable_shared) +# are currently assumed to apply to all compilers on this platform, +# and will be corrupted by setting them based on a non-working compiler. +if test "$_lt_disable_FC" != yes; then + # Code to be used in simple compile tests + lt_simple_compile_test_code="\ + subroutine t + return + end +" + + # Code to be used in simple link tests + lt_simple_link_test_code="\ + program t + end +" + + # ltmain only uses $CC for tagged configurations so make sure $CC is set. + _LT_TAG_COMPILER + + # save warnings/boilerplate of simple test code + _LT_COMPILER_BOILERPLATE + _LT_LINKER_BOILERPLATE + + # Allow CC to be a program name with arguments. + lt_save_CC="$CC" + lt_save_GCC=$GCC + lt_save_CFLAGS=$CFLAGS + CC=${FC-"f95"} + CFLAGS=$FCFLAGS + compiler=$CC + GCC=$ac_cv_fc_compiler_gnu + + _LT_TAGVAR(compiler, $1)=$CC + _LT_CC_BASENAME([$compiler]) + + if test -n "$compiler"; then + AC_MSG_CHECKING([if libtool supports shared libraries]) + AC_MSG_RESULT([$can_build_shared]) + + AC_MSG_CHECKING([whether to build shared libraries]) + test "$can_build_shared" = "no" && enable_shared=no + + # On AIX, shared libraries and static libraries use the same namespace, and + # are all built from PIC. + case $host_os in + aix3*) + test "$enable_shared" = yes && enable_static=no + if test -n "$RANLIB"; then + archive_cmds="$archive_cmds~\$RANLIB \$lib" + postinstall_cmds='$RANLIB $lib' + fi + ;; + aix[[4-9]]*) + if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then + test "$enable_shared" = yes && enable_static=no + fi + ;; + esac + AC_MSG_RESULT([$enable_shared]) + + AC_MSG_CHECKING([whether to build static libraries]) + # Make sure either enable_shared or enable_static is yes. + test "$enable_shared" = yes || enable_static=yes + AC_MSG_RESULT([$enable_static]) + + _LT_TAGVAR(GCC, $1)="$ac_cv_fc_compiler_gnu" + _LT_TAGVAR(LD, $1)="$LD" + + ## CAVEAT EMPTOR: + ## There is no encapsulation within the following macros, do not change + ## the running order or otherwise move them around unless you know exactly + ## what you are doing... + _LT_SYS_HIDDEN_LIBDEPS($1) + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_SYS_DYNAMIC_LINKER($1) + _LT_LINKER_HARDCODE_LIBPATH($1) + + _LT_CONFIG($1) + fi # test -n "$compiler" + + GCC=$lt_save_GCC + CC=$lt_save_CC + CFLAGS=$lt_save_CFLAGS +fi # test "$_lt_disable_FC" != yes + +AC_LANG_POP +])# _LT_LANG_FC_CONFIG + + +# _LT_LANG_GCJ_CONFIG([TAG]) +# -------------------------- +# Ensure that the configuration variables for the GNU Java Compiler compiler +# are suitably defined. These variables are subsequently used by _LT_CONFIG +# to write the compiler configuration to `libtool'. +m4_defun([_LT_LANG_GCJ_CONFIG], +[AC_REQUIRE([LT_PROG_GCJ])dnl +AC_LANG_SAVE + +# Source file extension for Java test sources. +ac_ext=java + +# Object file extension for compiled Java test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code="class foo {}" + +# Code to be used in simple link tests +lt_simple_link_test_code='public class conftest { public static void main(String[[]] argv) {}; }' + +# ltmain only uses $CC for tagged configurations so make sure $CC is set. +_LT_TAG_COMPILER + +# save warnings/boilerplate of simple test code +_LT_COMPILER_BOILERPLATE +_LT_LINKER_BOILERPLATE + +# Allow CC to be a program name with arguments. +lt_save_CC=$CC +lt_save_CFLAGS=$CFLAGS +lt_save_GCC=$GCC +GCC=yes +CC=${GCJ-"gcj"} +CFLAGS=$GCJFLAGS +compiler=$CC +_LT_TAGVAR(compiler, $1)=$CC +_LT_TAGVAR(LD, $1)="$LD" +_LT_CC_BASENAME([$compiler]) + +# GCJ did not exist at the time GCC didn't implicitly link libc in. +_LT_TAGVAR(archive_cmds_need_lc, $1)=no + +_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_TAGVAR(reload_flag, $1)=$reload_flag +_LT_TAGVAR(reload_cmds, $1)=$reload_cmds + +## CAVEAT EMPTOR: +## There is no encapsulation within the following macros, do not change +## the running order or otherwise move them around unless you know exactly +## what you are doing... +if test -n "$compiler"; then + _LT_COMPILER_NO_RTTI($1) + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_LINKER_HARDCODE_LIBPATH($1) + + _LT_CONFIG($1) +fi + +AC_LANG_RESTORE + +GCC=$lt_save_GCC +CC=$lt_save_CC +CFLAGS=$lt_save_CFLAGS +])# _LT_LANG_GCJ_CONFIG + + +# _LT_LANG_GO_CONFIG([TAG]) +# -------------------------- +# Ensure that the configuration variables for the GNU Go compiler +# are suitably defined. These variables are subsequently used by _LT_CONFIG +# to write the compiler configuration to `libtool'. +m4_defun([_LT_LANG_GO_CONFIG], +[AC_REQUIRE([LT_PROG_GO])dnl +AC_LANG_SAVE + +# Source file extension for Go test sources. +ac_ext=go + +# Object file extension for compiled Go test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code="package main; func main() { }" + +# Code to be used in simple link tests +lt_simple_link_test_code='package main; func main() { }' + +# ltmain only uses $CC for tagged configurations so make sure $CC is set. +_LT_TAG_COMPILER + +# save warnings/boilerplate of simple test code +_LT_COMPILER_BOILERPLATE +_LT_LINKER_BOILERPLATE + +# Allow CC to be a program name with arguments. +lt_save_CC=$CC +lt_save_CFLAGS=$CFLAGS +lt_save_GCC=$GCC +GCC=yes +CC=${GOC-"gccgo"} +CFLAGS=$GOFLAGS +compiler=$CC +_LT_TAGVAR(compiler, $1)=$CC +_LT_TAGVAR(LD, $1)="$LD" +_LT_CC_BASENAME([$compiler]) + +# Go did not exist at the time GCC didn't implicitly link libc in. +_LT_TAGVAR(archive_cmds_need_lc, $1)=no + +_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_TAGVAR(reload_flag, $1)=$reload_flag +_LT_TAGVAR(reload_cmds, $1)=$reload_cmds + +## CAVEAT EMPTOR: +## There is no encapsulation within the following macros, do not change +## the running order or otherwise move them around unless you know exactly +## what you are doing... +if test -n "$compiler"; then + _LT_COMPILER_NO_RTTI($1) + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_LINKER_HARDCODE_LIBPATH($1) + + _LT_CONFIG($1) +fi + +AC_LANG_RESTORE + +GCC=$lt_save_GCC +CC=$lt_save_CC +CFLAGS=$lt_save_CFLAGS +])# _LT_LANG_GO_CONFIG + + +# _LT_LANG_RC_CONFIG([TAG]) +# ------------------------- +# Ensure that the configuration variables for the Windows resource compiler +# are suitably defined. These variables are subsequently used by _LT_CONFIG +# to write the compiler configuration to `libtool'. +m4_defun([_LT_LANG_RC_CONFIG], +[AC_REQUIRE([LT_PROG_RC])dnl +AC_LANG_SAVE + +# Source file extension for RC test sources. +ac_ext=rc + +# Object file extension for compiled RC test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }' + +# Code to be used in simple link tests +lt_simple_link_test_code="$lt_simple_compile_test_code" + +# ltmain only uses $CC for tagged configurations so make sure $CC is set. +_LT_TAG_COMPILER + +# save warnings/boilerplate of simple test code +_LT_COMPILER_BOILERPLATE +_LT_LINKER_BOILERPLATE + +# Allow CC to be a program name with arguments. +lt_save_CC="$CC" +lt_save_CFLAGS=$CFLAGS +lt_save_GCC=$GCC +GCC= +CC=${RC-"windres"} +CFLAGS= +compiler=$CC +_LT_TAGVAR(compiler, $1)=$CC +_LT_CC_BASENAME([$compiler]) +_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes + +if test -n "$compiler"; then + : + _LT_CONFIG($1) +fi + +GCC=$lt_save_GCC +AC_LANG_RESTORE +CC=$lt_save_CC +CFLAGS=$lt_save_CFLAGS +])# _LT_LANG_RC_CONFIG + + +# LT_PROG_GCJ +# ----------- +AC_DEFUN([LT_PROG_GCJ], +[m4_ifdef([AC_PROG_GCJ], [AC_PROG_GCJ], + [m4_ifdef([A][M_PROG_GCJ], [A][M_PROG_GCJ], + [AC_CHECK_TOOL(GCJ, gcj,) + test "x${GCJFLAGS+set}" = xset || GCJFLAGS="-g -O2" + AC_SUBST(GCJFLAGS)])])[]dnl +]) + +# Old name: +AU_ALIAS([LT_AC_PROG_GCJ], [LT_PROG_GCJ]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([LT_AC_PROG_GCJ], []) + + +# LT_PROG_GO +# ---------- +AC_DEFUN([LT_PROG_GO], +[AC_CHECK_TOOL(GOC, gccgo,) +]) + + +# LT_PROG_RC +# ---------- +AC_DEFUN([LT_PROG_RC], +[AC_CHECK_TOOL(RC, windres,) +]) + +# Old name: +AU_ALIAS([LT_AC_PROG_RC], [LT_PROG_RC]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([LT_AC_PROG_RC], []) + + +# _LT_DECL_EGREP +# -------------- +# If we don't have a new enough Autoconf to choose the best grep +# available, choose the one first in the user's PATH. +m4_defun([_LT_DECL_EGREP], +[AC_REQUIRE([AC_PROG_EGREP])dnl +AC_REQUIRE([AC_PROG_FGREP])dnl +test -z "$GREP" && GREP=grep +_LT_DECL([], [GREP], [1], [A grep program that handles long lines]) +_LT_DECL([], [EGREP], [1], [An ERE matcher]) +_LT_DECL([], [FGREP], [1], [A literal string matcher]) +dnl Non-bleeding-edge autoconf doesn't subst GREP, so do it here too +AC_SUBST([GREP]) +]) + + +# _LT_DECL_OBJDUMP +# -------------- +# If we don't have a new enough Autoconf to choose the best objdump +# available, choose the one first in the user's PATH. +m4_defun([_LT_DECL_OBJDUMP], +[AC_CHECK_TOOL(OBJDUMP, objdump, false) +test -z "$OBJDUMP" && OBJDUMP=objdump +_LT_DECL([], [OBJDUMP], [1], [An object symbol dumper]) +AC_SUBST([OBJDUMP]) +]) + +# _LT_DECL_DLLTOOL +# ---------------- +# Ensure DLLTOOL variable is set. +m4_defun([_LT_DECL_DLLTOOL], +[AC_CHECK_TOOL(DLLTOOL, dlltool, false) +test -z "$DLLTOOL" && DLLTOOL=dlltool +_LT_DECL([], [DLLTOOL], [1], [DLL creation program]) +AC_SUBST([DLLTOOL]) +]) + +# _LT_DECL_SED +# ------------ +# Check for a fully-functional sed program, that truncates +# as few characters as possible. Prefer GNU sed if found. +m4_defun([_LT_DECL_SED], +[AC_PROG_SED +test -z "$SED" && SED=sed +Xsed="$SED -e 1s/^X//" +_LT_DECL([], [SED], [1], [A sed program that does not truncate output]) +_LT_DECL([], [Xsed], ["\$SED -e 1s/^X//"], + [Sed that helps us avoid accidentally triggering echo(1) options like -n]) +])# _LT_DECL_SED + +m4_ifndef([AC_PROG_SED], [ +############################################################ +# NOTE: This macro has been submitted for inclusion into # +# GNU Autoconf as AC_PROG_SED. When it is available in # +# a released version of Autoconf we should remove this # +# macro and use it instead. # +############################################################ + +m4_defun([AC_PROG_SED], +[AC_MSG_CHECKING([for a sed that does not truncate output]) +AC_CACHE_VAL(lt_cv_path_SED, +[# Loop through the user's path and test for sed and gsed. +# Then use that list of sed's as ones to test for truncation. +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for lt_ac_prog in sed gsed; do + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then + lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext" + fi + done + done +done +IFS=$as_save_IFS +lt_ac_max=0 +lt_ac_count=0 +# Add /usr/xpg4/bin/sed as it is typically found on Solaris +# along with /bin/sed that truncates output. +for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do + test ! -f $lt_ac_sed && continue + cat /dev/null > conftest.in + lt_ac_count=0 + echo $ECHO_N "0123456789$ECHO_C" >conftest.in + # Check for GNU sed and select it if it is found. + if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then + lt_cv_path_SED=$lt_ac_sed + break + fi + while true; do + cat conftest.in conftest.in >conftest.tmp + mv conftest.tmp conftest.in + cp conftest.in conftest.nl + echo >>conftest.nl + $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break + cmp -s conftest.out conftest.nl || break + # 10000 chars as input seems more than enough + test $lt_ac_count -gt 10 && break + lt_ac_count=`expr $lt_ac_count + 1` + if test $lt_ac_count -gt $lt_ac_max; then + lt_ac_max=$lt_ac_count + lt_cv_path_SED=$lt_ac_sed + fi + done +done +]) +SED=$lt_cv_path_SED +AC_SUBST([SED]) +AC_MSG_RESULT([$SED]) +])#AC_PROG_SED +])#m4_ifndef + +# Old name: +AU_ALIAS([LT_AC_PROG_SED], [AC_PROG_SED]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([LT_AC_PROG_SED], []) + + +# _LT_CHECK_SHELL_FEATURES +# ------------------------ +# Find out whether the shell is Bourne or XSI compatible, +# or has some other useful features. +m4_defun([_LT_CHECK_SHELL_FEATURES], +[AC_MSG_CHECKING([whether the shell understands some XSI constructs]) +# Try some XSI features +xsi_shell=no +( _lt_dummy="a/b/c" + test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \ + = c,a/b,b/c, \ + && eval 'test $(( 1 + 1 )) -eq 2 \ + && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ + && xsi_shell=yes +AC_MSG_RESULT([$xsi_shell]) +_LT_CONFIG_LIBTOOL_INIT([xsi_shell='$xsi_shell']) + +AC_MSG_CHECKING([whether the shell understands "+="]) +lt_shell_append=no +( foo=bar; set foo baz; eval "$[1]+=\$[2]" && test "$foo" = barbaz ) \ + >/dev/null 2>&1 \ + && lt_shell_append=yes +AC_MSG_RESULT([$lt_shell_append]) +_LT_CONFIG_LIBTOOL_INIT([lt_shell_append='$lt_shell_append']) + +if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then + lt_unset=unset +else + lt_unset=false +fi +_LT_DECL([], [lt_unset], [0], [whether the shell understands "unset"])dnl + +# test EBCDIC or ASCII +case `echo X|tr X '\101'` in + A) # ASCII based system + # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr + lt_SP2NL='tr \040 \012' + lt_NL2SP='tr \015\012 \040\040' + ;; + *) # EBCDIC based system + lt_SP2NL='tr \100 \n' + lt_NL2SP='tr \r\n \100\100' + ;; +esac +_LT_DECL([SP2NL], [lt_SP2NL], [1], [turn spaces into newlines])dnl +_LT_DECL([NL2SP], [lt_NL2SP], [1], [turn newlines into spaces])dnl +])# _LT_CHECK_SHELL_FEATURES + + +# _LT_PROG_FUNCTION_REPLACE (FUNCNAME, REPLACEMENT-BODY) +# ------------------------------------------------------ +# In `$cfgfile', look for function FUNCNAME delimited by `^FUNCNAME ()$' and +# '^} FUNCNAME ', and replace its body with REPLACEMENT-BODY. +m4_defun([_LT_PROG_FUNCTION_REPLACE], +[dnl { +sed -e '/^$1 ()$/,/^} # $1 /c\ +$1 ()\ +{\ +m4_bpatsubsts([$2], [$], [\\], [^\([ ]\)], [\\\1]) +} # Extended-shell $1 implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: +]) + + +# _LT_PROG_REPLACE_SHELLFNS +# ------------------------- +# Replace existing portable implementations of several shell functions with +# equivalent extended shell implementations where those features are available.. +m4_defun([_LT_PROG_REPLACE_SHELLFNS], +[if test x"$xsi_shell" = xyes; then + _LT_PROG_FUNCTION_REPLACE([func_dirname], [dnl + case ${1} in + */*) func_dirname_result="${1%/*}${2}" ;; + * ) func_dirname_result="${3}" ;; + esac]) + + _LT_PROG_FUNCTION_REPLACE([func_basename], [dnl + func_basename_result="${1##*/}"]) + + _LT_PROG_FUNCTION_REPLACE([func_dirname_and_basename], [dnl + case ${1} in + */*) func_dirname_result="${1%/*}${2}" ;; + * ) func_dirname_result="${3}" ;; + esac + func_basename_result="${1##*/}"]) + + _LT_PROG_FUNCTION_REPLACE([func_stripname], [dnl + # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are + # positional parameters, so assign one to ordinary parameter first. + func_stripname_result=${3} + func_stripname_result=${func_stripname_result#"${1}"} + func_stripname_result=${func_stripname_result%"${2}"}]) + + _LT_PROG_FUNCTION_REPLACE([func_split_long_opt], [dnl + func_split_long_opt_name=${1%%=*} + func_split_long_opt_arg=${1#*=}]) + + _LT_PROG_FUNCTION_REPLACE([func_split_short_opt], [dnl + func_split_short_opt_arg=${1#??} + func_split_short_opt_name=${1%"$func_split_short_opt_arg"}]) + + _LT_PROG_FUNCTION_REPLACE([func_lo2o], [dnl + case ${1} in + *.lo) func_lo2o_result=${1%.lo}.${objext} ;; + *) func_lo2o_result=${1} ;; + esac]) + + _LT_PROG_FUNCTION_REPLACE([func_xform], [ func_xform_result=${1%.*}.lo]) + + _LT_PROG_FUNCTION_REPLACE([func_arith], [ func_arith_result=$(( $[*] ))]) + + _LT_PROG_FUNCTION_REPLACE([func_len], [ func_len_result=${#1}]) +fi + +if test x"$lt_shell_append" = xyes; then + _LT_PROG_FUNCTION_REPLACE([func_append], [ eval "${1}+=\\${2}"]) + + _LT_PROG_FUNCTION_REPLACE([func_append_quoted], [dnl + func_quote_for_eval "${2}" +dnl m4 expansion turns \\\\ into \\, and then the shell eval turns that into \ + eval "${1}+=\\\\ \\$func_quote_for_eval_result"]) + + # Save a `func_append' function call where possible by direct use of '+=' + sed -e 's%func_append \([[a-zA-Z_]]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") + test 0 -eq $? || _lt_function_replace_fail=: +else + # Save a `func_append' function call even when '+=' is not available + sed -e 's%func_append \([[a-zA-Z_]]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") + test 0 -eq $? || _lt_function_replace_fail=: +fi + +if test x"$_lt_function_replace_fail" = x":"; then + AC_MSG_WARN([Unable to substitute extended shell functions in $ofile]) +fi +]) + +# _LT_PATH_CONVERSION_FUNCTIONS +# ----------------------------- +# Determine which file name conversion functions should be used by +# func_to_host_file (and, implicitly, by func_to_host_path). These are needed +# for certain cross-compile configurations and native mingw. +m4_defun([_LT_PATH_CONVERSION_FUNCTIONS], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +AC_REQUIRE([AC_CANONICAL_BUILD])dnl +AC_MSG_CHECKING([how to convert $build file names to $host format]) +AC_CACHE_VAL(lt_cv_to_host_file_cmd, +[case $host in + *-*-mingw* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 + ;; + *-*-cygwin* ) + lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 + ;; + * ) # otherwise, assume *nix + lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 + ;; + esac + ;; + *-*-cygwin* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin + ;; + *-*-cygwin* ) + lt_cv_to_host_file_cmd=func_convert_file_noop + ;; + * ) # otherwise, assume *nix + lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin + ;; + esac + ;; + * ) # unhandled hosts (and "normal" native builds) + lt_cv_to_host_file_cmd=func_convert_file_noop + ;; +esac +]) +to_host_file_cmd=$lt_cv_to_host_file_cmd +AC_MSG_RESULT([$lt_cv_to_host_file_cmd]) +_LT_DECL([to_host_file_cmd], [lt_cv_to_host_file_cmd], + [0], [convert $build file names to $host format])dnl + +AC_MSG_CHECKING([how to convert $build file names to toolchain format]) +AC_CACHE_VAL(lt_cv_to_tool_file_cmd, +[#assume ordinary cross tools, or native build. +lt_cv_to_tool_file_cmd=func_convert_file_noop +case $host in + *-*-mingw* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 + ;; + esac + ;; +esac +]) +to_tool_file_cmd=$lt_cv_to_tool_file_cmd +AC_MSG_RESULT([$lt_cv_to_tool_file_cmd]) +_LT_DECL([to_tool_file_cmd], [lt_cv_to_tool_file_cmd], + [0], [convert $build files to toolchain format])dnl +])# _LT_PATH_CONVERSION_FUNCTIONS diff -Nru guvcview-1.7.3/m4/lt~obsolete.m4 guvcview-2.0.1+ubuntu1~ppa1/m4/lt~obsolete.m4 --- guvcview-1.7.3/m4/lt~obsolete.m4 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/m4/lt~obsolete.m4 2014-10-05 10:41:44.000000000 +0000 @@ -0,0 +1,98 @@ +# lt~obsolete.m4 -- aclocal satisfying obsolete definitions. -*-Autoconf-*- +# +# Copyright (C) 2004, 2005, 2007, 2009 Free Software Foundation, Inc. +# Written by Scott James Remnant, 2004. +# +# This file is free software; the Free Software Foundation gives +# unlimited permission to copy and/or distribute it, with or without +# modifications, as long as this notice is preserved. + +# serial 5 lt~obsolete.m4 + +# These exist entirely to fool aclocal when bootstrapping libtool. +# +# In the past libtool.m4 has provided macros via AC_DEFUN (or AU_DEFUN) +# which have later been changed to m4_define as they aren't part of the +# exported API, or moved to Autoconf or Automake where they belong. +# +# The trouble is, aclocal is a bit thick. It'll see the old AC_DEFUN +# in /usr/share/aclocal/libtool.m4 and remember it, then when it sees us +# using a macro with the same name in our local m4/libtool.m4 it'll +# pull the old libtool.m4 in (it doesn't see our shiny new m4_define +# and doesn't know about Autoconf macros at all.) +# +# So we provide this file, which has a silly filename so it's always +# included after everything else. This provides aclocal with the +# AC_DEFUNs it wants, but when m4 processes it, it doesn't do anything +# because those macros already exist, or will be overwritten later. +# We use AC_DEFUN over AU_DEFUN for compatibility with aclocal-1.6. +# +# Anytime we withdraw an AC_DEFUN or AU_DEFUN, remember to add it here. +# Yes, that means every name once taken will need to remain here until +# we give up compatibility with versions before 1.7, at which point +# we need to keep only those names which we still refer to. + +# This is to help aclocal find these macros, as it can't see m4_define. +AC_DEFUN([LTOBSOLETE_VERSION], [m4_if([1])]) + +m4_ifndef([AC_LIBTOOL_LINKER_OPTION], [AC_DEFUN([AC_LIBTOOL_LINKER_OPTION])]) +m4_ifndef([AC_PROG_EGREP], [AC_DEFUN([AC_PROG_EGREP])]) +m4_ifndef([_LT_AC_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH])]) +m4_ifndef([_LT_AC_SHELL_INIT], [AC_DEFUN([_LT_AC_SHELL_INIT])]) +m4_ifndef([_LT_AC_SYS_LIBPATH_AIX], [AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX])]) +m4_ifndef([_LT_PROG_LTMAIN], [AC_DEFUN([_LT_PROG_LTMAIN])]) +m4_ifndef([_LT_AC_TAGVAR], [AC_DEFUN([_LT_AC_TAGVAR])]) +m4_ifndef([AC_LTDL_ENABLE_INSTALL], [AC_DEFUN([AC_LTDL_ENABLE_INSTALL])]) +m4_ifndef([AC_LTDL_PREOPEN], [AC_DEFUN([AC_LTDL_PREOPEN])]) +m4_ifndef([_LT_AC_SYS_COMPILER], [AC_DEFUN([_LT_AC_SYS_COMPILER])]) +m4_ifndef([_LT_AC_LOCK], [AC_DEFUN([_LT_AC_LOCK])]) +m4_ifndef([AC_LIBTOOL_SYS_OLD_ARCHIVE], [AC_DEFUN([AC_LIBTOOL_SYS_OLD_ARCHIVE])]) +m4_ifndef([_LT_AC_TRY_DLOPEN_SELF], [AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF])]) +m4_ifndef([AC_LIBTOOL_PROG_CC_C_O], [AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O])]) +m4_ifndef([AC_LIBTOOL_SYS_HARD_LINK_LOCKS], [AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS])]) +m4_ifndef([AC_LIBTOOL_OBJDIR], [AC_DEFUN([AC_LIBTOOL_OBJDIR])]) +m4_ifndef([AC_LTDL_OBJDIR], [AC_DEFUN([AC_LTDL_OBJDIR])]) +m4_ifndef([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH], [AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH])]) +m4_ifndef([AC_LIBTOOL_SYS_LIB_STRIP], [AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP])]) +m4_ifndef([AC_PATH_MAGIC], [AC_DEFUN([AC_PATH_MAGIC])]) +m4_ifndef([AC_PROG_LD_GNU], [AC_DEFUN([AC_PROG_LD_GNU])]) +m4_ifndef([AC_PROG_LD_RELOAD_FLAG], [AC_DEFUN([AC_PROG_LD_RELOAD_FLAG])]) +m4_ifndef([AC_DEPLIBS_CHECK_METHOD], [AC_DEFUN([AC_DEPLIBS_CHECK_METHOD])]) +m4_ifndef([AC_LIBTOOL_PROG_COMPILER_NO_RTTI], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI])]) +m4_ifndef([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], [AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE])]) +m4_ifndef([AC_LIBTOOL_PROG_COMPILER_PIC], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC])]) +m4_ifndef([AC_LIBTOOL_PROG_LD_SHLIBS], [AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS])]) +m4_ifndef([AC_LIBTOOL_POSTDEP_PREDEP], [AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP])]) +m4_ifndef([LT_AC_PROG_EGREP], [AC_DEFUN([LT_AC_PROG_EGREP])]) +m4_ifndef([LT_AC_PROG_SED], [AC_DEFUN([LT_AC_PROG_SED])]) +m4_ifndef([_LT_CC_BASENAME], [AC_DEFUN([_LT_CC_BASENAME])]) +m4_ifndef([_LT_COMPILER_BOILERPLATE], [AC_DEFUN([_LT_COMPILER_BOILERPLATE])]) +m4_ifndef([_LT_LINKER_BOILERPLATE], [AC_DEFUN([_LT_LINKER_BOILERPLATE])]) +m4_ifndef([_AC_PROG_LIBTOOL], [AC_DEFUN([_AC_PROG_LIBTOOL])]) +m4_ifndef([AC_LIBTOOL_SETUP], [AC_DEFUN([AC_LIBTOOL_SETUP])]) +m4_ifndef([_LT_AC_CHECK_DLFCN], [AC_DEFUN([_LT_AC_CHECK_DLFCN])]) +m4_ifndef([AC_LIBTOOL_SYS_DYNAMIC_LINKER], [AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER])]) +m4_ifndef([_LT_AC_TAGCONFIG], [AC_DEFUN([_LT_AC_TAGCONFIG])]) +m4_ifndef([AC_DISABLE_FAST_INSTALL], [AC_DEFUN([AC_DISABLE_FAST_INSTALL])]) +m4_ifndef([_LT_AC_LANG_CXX], [AC_DEFUN([_LT_AC_LANG_CXX])]) +m4_ifndef([_LT_AC_LANG_F77], [AC_DEFUN([_LT_AC_LANG_F77])]) +m4_ifndef([_LT_AC_LANG_GCJ], [AC_DEFUN([_LT_AC_LANG_GCJ])]) +m4_ifndef([AC_LIBTOOL_LANG_C_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG])]) +m4_ifndef([_LT_AC_LANG_C_CONFIG], [AC_DEFUN([_LT_AC_LANG_C_CONFIG])]) +m4_ifndef([AC_LIBTOOL_LANG_CXX_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG])]) +m4_ifndef([_LT_AC_LANG_CXX_CONFIG], [AC_DEFUN([_LT_AC_LANG_CXX_CONFIG])]) +m4_ifndef([AC_LIBTOOL_LANG_F77_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG])]) +m4_ifndef([_LT_AC_LANG_F77_CONFIG], [AC_DEFUN([_LT_AC_LANG_F77_CONFIG])]) +m4_ifndef([AC_LIBTOOL_LANG_GCJ_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG])]) +m4_ifndef([_LT_AC_LANG_GCJ_CONFIG], [AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG])]) +m4_ifndef([AC_LIBTOOL_LANG_RC_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG])]) +m4_ifndef([_LT_AC_LANG_RC_CONFIG], [AC_DEFUN([_LT_AC_LANG_RC_CONFIG])]) +m4_ifndef([AC_LIBTOOL_CONFIG], [AC_DEFUN([AC_LIBTOOL_CONFIG])]) +m4_ifndef([_LT_AC_FILE_LTDLL_C], [AC_DEFUN([_LT_AC_FILE_LTDLL_C])]) +m4_ifndef([_LT_REQUIRED_DARWIN_CHECKS], [AC_DEFUN([_LT_REQUIRED_DARWIN_CHECKS])]) +m4_ifndef([_LT_AC_PROG_CXXCPP], [AC_DEFUN([_LT_AC_PROG_CXXCPP])]) +m4_ifndef([_LT_PREPARE_SED_QUOTE_VARS], [AC_DEFUN([_LT_PREPARE_SED_QUOTE_VARS])]) +m4_ifndef([_LT_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_PROG_ECHO_BACKSLASH])]) +m4_ifndef([_LT_PROG_F77], [AC_DEFUN([_LT_PROG_F77])]) +m4_ifndef([_LT_PROG_FC], [AC_DEFUN([_LT_PROG_FC])]) +m4_ifndef([_LT_PROG_CXX], [AC_DEFUN([_LT_PROG_CXX])]) diff -Nru guvcview-1.7.3/m4/ltoptions.m4 guvcview-2.0.1+ubuntu1~ppa1/m4/ltoptions.m4 --- guvcview-1.7.3/m4/ltoptions.m4 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/m4/ltoptions.m4 2014-10-05 10:41:44.000000000 +0000 @@ -0,0 +1,384 @@ +# Helper functions for option handling. -*- Autoconf -*- +# +# Copyright (C) 2004, 2005, 2007, 2008, 2009 Free Software Foundation, +# Inc. +# Written by Gary V. Vaughan, 2004 +# +# This file is free software; the Free Software Foundation gives +# unlimited permission to copy and/or distribute it, with or without +# modifications, as long as this notice is preserved. + +# serial 7 ltoptions.m4 + +# This is to help aclocal find these macros, as it can't see m4_define. +AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])]) + + +# _LT_MANGLE_OPTION(MACRO-NAME, OPTION-NAME) +# ------------------------------------------ +m4_define([_LT_MANGLE_OPTION], +[[_LT_OPTION_]m4_bpatsubst($1__$2, [[^a-zA-Z0-9_]], [_])]) + + +# _LT_SET_OPTION(MACRO-NAME, OPTION-NAME) +# --------------------------------------- +# Set option OPTION-NAME for macro MACRO-NAME, and if there is a +# matching handler defined, dispatch to it. Other OPTION-NAMEs are +# saved as a flag. +m4_define([_LT_SET_OPTION], +[m4_define(_LT_MANGLE_OPTION([$1], [$2]))dnl +m4_ifdef(_LT_MANGLE_DEFUN([$1], [$2]), + _LT_MANGLE_DEFUN([$1], [$2]), + [m4_warning([Unknown $1 option `$2'])])[]dnl +]) + + +# _LT_IF_OPTION(MACRO-NAME, OPTION-NAME, IF-SET, [IF-NOT-SET]) +# ------------------------------------------------------------ +# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. +m4_define([_LT_IF_OPTION], +[m4_ifdef(_LT_MANGLE_OPTION([$1], [$2]), [$3], [$4])]) + + +# _LT_UNLESS_OPTIONS(MACRO-NAME, OPTION-LIST, IF-NOT-SET) +# ------------------------------------------------------- +# Execute IF-NOT-SET unless all options in OPTION-LIST for MACRO-NAME +# are set. +m4_define([_LT_UNLESS_OPTIONS], +[m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), + [m4_ifdef(_LT_MANGLE_OPTION([$1], _LT_Option), + [m4_define([$0_found])])])[]dnl +m4_ifdef([$0_found], [m4_undefine([$0_found])], [$3 +])[]dnl +]) + + +# _LT_SET_OPTIONS(MACRO-NAME, OPTION-LIST) +# ---------------------------------------- +# OPTION-LIST is a space-separated list of Libtool options associated +# with MACRO-NAME. If any OPTION has a matching handler declared with +# LT_OPTION_DEFINE, dispatch to that macro; otherwise complain about +# the unknown option and exit. +m4_defun([_LT_SET_OPTIONS], +[# Set options +m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), + [_LT_SET_OPTION([$1], _LT_Option)]) + +m4_if([$1],[LT_INIT],[ + dnl + dnl Simply set some default values (i.e off) if boolean options were not + dnl specified: + _LT_UNLESS_OPTIONS([LT_INIT], [dlopen], [enable_dlopen=no + ]) + _LT_UNLESS_OPTIONS([LT_INIT], [win32-dll], [enable_win32_dll=no + ]) + dnl + dnl If no reference was made to various pairs of opposing options, then + dnl we run the default mode handler for the pair. For example, if neither + dnl `shared' nor `disable-shared' was passed, we enable building of shared + dnl archives by default: + _LT_UNLESS_OPTIONS([LT_INIT], [shared disable-shared], [_LT_ENABLE_SHARED]) + _LT_UNLESS_OPTIONS([LT_INIT], [static disable-static], [_LT_ENABLE_STATIC]) + _LT_UNLESS_OPTIONS([LT_INIT], [pic-only no-pic], [_LT_WITH_PIC]) + _LT_UNLESS_OPTIONS([LT_INIT], [fast-install disable-fast-install], + [_LT_ENABLE_FAST_INSTALL]) + ]) +])# _LT_SET_OPTIONS + + +## --------------------------------- ## +## Macros to handle LT_INIT options. ## +## --------------------------------- ## + +# _LT_MANGLE_DEFUN(MACRO-NAME, OPTION-NAME) +# ----------------------------------------- +m4_define([_LT_MANGLE_DEFUN], +[[_LT_OPTION_DEFUN_]m4_bpatsubst(m4_toupper([$1__$2]), [[^A-Z0-9_]], [_])]) + + +# LT_OPTION_DEFINE(MACRO-NAME, OPTION-NAME, CODE) +# ----------------------------------------------- +m4_define([LT_OPTION_DEFINE], +[m4_define(_LT_MANGLE_DEFUN([$1], [$2]), [$3])[]dnl +])# LT_OPTION_DEFINE + + +# dlopen +# ------ +LT_OPTION_DEFINE([LT_INIT], [dlopen], [enable_dlopen=yes +]) + +AU_DEFUN([AC_LIBTOOL_DLOPEN], +[_LT_SET_OPTION([LT_INIT], [dlopen]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you +put the `dlopen' option into LT_INIT's first parameter.]) +]) + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_DLOPEN], []) + + +# win32-dll +# --------- +# Declare package support for building win32 dll's. +LT_OPTION_DEFINE([LT_INIT], [win32-dll], +[enable_win32_dll=yes + +case $host in +*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc*) + AC_CHECK_TOOL(AS, as, false) + AC_CHECK_TOOL(DLLTOOL, dlltool, false) + AC_CHECK_TOOL(OBJDUMP, objdump, false) + ;; +esac + +test -z "$AS" && AS=as +_LT_DECL([], [AS], [1], [Assembler program])dnl + +test -z "$DLLTOOL" && DLLTOOL=dlltool +_LT_DECL([], [DLLTOOL], [1], [DLL creation program])dnl + +test -z "$OBJDUMP" && OBJDUMP=objdump +_LT_DECL([], [OBJDUMP], [1], [Object dumper program])dnl +])# win32-dll + +AU_DEFUN([AC_LIBTOOL_WIN32_DLL], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +_LT_SET_OPTION([LT_INIT], [win32-dll]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you +put the `win32-dll' option into LT_INIT's first parameter.]) +]) + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_WIN32_DLL], []) + + +# _LT_ENABLE_SHARED([DEFAULT]) +# ---------------------------- +# implement the --enable-shared flag, and supports the `shared' and +# `disable-shared' LT_INIT options. +# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. +m4_define([_LT_ENABLE_SHARED], +[m4_define([_LT_ENABLE_SHARED_DEFAULT], [m4_if($1, no, no, yes)])dnl +AC_ARG_ENABLE([shared], + [AS_HELP_STRING([--enable-shared@<:@=PKGS@:>@], + [build shared libraries @<:@default=]_LT_ENABLE_SHARED_DEFAULT[@:>@])], + [p=${PACKAGE-default} + case $enableval in + yes) enable_shared=yes ;; + no) enable_shared=no ;; + *) + enable_shared=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for pkg in $enableval; do + IFS="$lt_save_ifs" + if test "X$pkg" = "X$p"; then + enable_shared=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac], + [enable_shared=]_LT_ENABLE_SHARED_DEFAULT) + + _LT_DECL([build_libtool_libs], [enable_shared], [0], + [Whether or not to build shared libraries]) +])# _LT_ENABLE_SHARED + +LT_OPTION_DEFINE([LT_INIT], [shared], [_LT_ENABLE_SHARED([yes])]) +LT_OPTION_DEFINE([LT_INIT], [disable-shared], [_LT_ENABLE_SHARED([no])]) + +# Old names: +AC_DEFUN([AC_ENABLE_SHARED], +[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[shared]) +]) + +AC_DEFUN([AC_DISABLE_SHARED], +[_LT_SET_OPTION([LT_INIT], [disable-shared]) +]) + +AU_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)]) +AU_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)]) + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AM_ENABLE_SHARED], []) +dnl AC_DEFUN([AM_DISABLE_SHARED], []) + + + +# _LT_ENABLE_STATIC([DEFAULT]) +# ---------------------------- +# implement the --enable-static flag, and support the `static' and +# `disable-static' LT_INIT options. +# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. +m4_define([_LT_ENABLE_STATIC], +[m4_define([_LT_ENABLE_STATIC_DEFAULT], [m4_if($1, no, no, yes)])dnl +AC_ARG_ENABLE([static], + [AS_HELP_STRING([--enable-static@<:@=PKGS@:>@], + [build static libraries @<:@default=]_LT_ENABLE_STATIC_DEFAULT[@:>@])], + [p=${PACKAGE-default} + case $enableval in + yes) enable_static=yes ;; + no) enable_static=no ;; + *) + enable_static=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for pkg in $enableval; do + IFS="$lt_save_ifs" + if test "X$pkg" = "X$p"; then + enable_static=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac], + [enable_static=]_LT_ENABLE_STATIC_DEFAULT) + + _LT_DECL([build_old_libs], [enable_static], [0], + [Whether or not to build static libraries]) +])# _LT_ENABLE_STATIC + +LT_OPTION_DEFINE([LT_INIT], [static], [_LT_ENABLE_STATIC([yes])]) +LT_OPTION_DEFINE([LT_INIT], [disable-static], [_LT_ENABLE_STATIC([no])]) + +# Old names: +AC_DEFUN([AC_ENABLE_STATIC], +[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[static]) +]) + +AC_DEFUN([AC_DISABLE_STATIC], +[_LT_SET_OPTION([LT_INIT], [disable-static]) +]) + +AU_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)]) +AU_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)]) + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AM_ENABLE_STATIC], []) +dnl AC_DEFUN([AM_DISABLE_STATIC], []) + + + +# _LT_ENABLE_FAST_INSTALL([DEFAULT]) +# ---------------------------------- +# implement the --enable-fast-install flag, and support the `fast-install' +# and `disable-fast-install' LT_INIT options. +# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. +m4_define([_LT_ENABLE_FAST_INSTALL], +[m4_define([_LT_ENABLE_FAST_INSTALL_DEFAULT], [m4_if($1, no, no, yes)])dnl +AC_ARG_ENABLE([fast-install], + [AS_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@], + [optimize for fast installation @<:@default=]_LT_ENABLE_FAST_INSTALL_DEFAULT[@:>@])], + [p=${PACKAGE-default} + case $enableval in + yes) enable_fast_install=yes ;; + no) enable_fast_install=no ;; + *) + enable_fast_install=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for pkg in $enableval; do + IFS="$lt_save_ifs" + if test "X$pkg" = "X$p"; then + enable_fast_install=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac], + [enable_fast_install=]_LT_ENABLE_FAST_INSTALL_DEFAULT) + +_LT_DECL([fast_install], [enable_fast_install], [0], + [Whether or not to optimize for fast installation])dnl +])# _LT_ENABLE_FAST_INSTALL + +LT_OPTION_DEFINE([LT_INIT], [fast-install], [_LT_ENABLE_FAST_INSTALL([yes])]) +LT_OPTION_DEFINE([LT_INIT], [disable-fast-install], [_LT_ENABLE_FAST_INSTALL([no])]) + +# Old names: +AU_DEFUN([AC_ENABLE_FAST_INSTALL], +[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[fast-install]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you put +the `fast-install' option into LT_INIT's first parameter.]) +]) + +AU_DEFUN([AC_DISABLE_FAST_INSTALL], +[_LT_SET_OPTION([LT_INIT], [disable-fast-install]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you put +the `disable-fast-install' option into LT_INIT's first parameter.]) +]) + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_ENABLE_FAST_INSTALL], []) +dnl AC_DEFUN([AM_DISABLE_FAST_INSTALL], []) + + +# _LT_WITH_PIC([MODE]) +# -------------------- +# implement the --with-pic flag, and support the `pic-only' and `no-pic' +# LT_INIT options. +# MODE is either `yes' or `no'. If omitted, it defaults to `both'. +m4_define([_LT_WITH_PIC], +[AC_ARG_WITH([pic], + [AS_HELP_STRING([--with-pic@<:@=PKGS@:>@], + [try to use only PIC/non-PIC objects @<:@default=use both@:>@])], + [lt_p=${PACKAGE-default} + case $withval in + yes|no) pic_mode=$withval ;; + *) + pic_mode=default + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for lt_pkg in $withval; do + IFS="$lt_save_ifs" + if test "X$lt_pkg" = "X$lt_p"; then + pic_mode=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac], + [pic_mode=default]) + +test -z "$pic_mode" && pic_mode=m4_default([$1], [default]) + +_LT_DECL([], [pic_mode], [0], [What type of objects to build])dnl +])# _LT_WITH_PIC + +LT_OPTION_DEFINE([LT_INIT], [pic-only], [_LT_WITH_PIC([yes])]) +LT_OPTION_DEFINE([LT_INIT], [no-pic], [_LT_WITH_PIC([no])]) + +# Old name: +AU_DEFUN([AC_LIBTOOL_PICMODE], +[_LT_SET_OPTION([LT_INIT], [pic-only]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you +put the `pic-only' option into LT_INIT's first parameter.]) +]) + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_PICMODE], []) + +## ----------------- ## +## LTDL_INIT Options ## +## ----------------- ## + +m4_define([_LTDL_MODE], []) +LT_OPTION_DEFINE([LTDL_INIT], [nonrecursive], + [m4_define([_LTDL_MODE], [nonrecursive])]) +LT_OPTION_DEFINE([LTDL_INIT], [recursive], + [m4_define([_LTDL_MODE], [recursive])]) +LT_OPTION_DEFINE([LTDL_INIT], [subproject], + [m4_define([_LTDL_MODE], [subproject])]) + +m4_define([_LTDL_TYPE], []) +LT_OPTION_DEFINE([LTDL_INIT], [installable], + [m4_define([_LTDL_TYPE], [installable])]) +LT_OPTION_DEFINE([LTDL_INIT], [convenience], + [m4_define([_LTDL_TYPE], [convenience])]) diff -Nru guvcview-1.7.3/m4/ltsugar.m4 guvcview-2.0.1+ubuntu1~ppa1/m4/ltsugar.m4 --- guvcview-1.7.3/m4/ltsugar.m4 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/m4/ltsugar.m4 2014-10-05 10:41:44.000000000 +0000 @@ -0,0 +1,123 @@ +# ltsugar.m4 -- libtool m4 base layer. -*-Autoconf-*- +# +# Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc. +# Written by Gary V. Vaughan, 2004 +# +# This file is free software; the Free Software Foundation gives +# unlimited permission to copy and/or distribute it, with or without +# modifications, as long as this notice is preserved. + +# serial 6 ltsugar.m4 + +# This is to help aclocal find these macros, as it can't see m4_define. +AC_DEFUN([LTSUGAR_VERSION], [m4_if([0.1])]) + + +# lt_join(SEP, ARG1, [ARG2...]) +# ----------------------------- +# Produce ARG1SEPARG2...SEPARGn, omitting [] arguments and their +# associated separator. +# Needed until we can rely on m4_join from Autoconf 2.62, since all earlier +# versions in m4sugar had bugs. +m4_define([lt_join], +[m4_if([$#], [1], [], + [$#], [2], [[$2]], + [m4_if([$2], [], [], [[$2]_])$0([$1], m4_shift(m4_shift($@)))])]) +m4_define([_lt_join], +[m4_if([$#$2], [2], [], + [m4_if([$2], [], [], [[$1$2]])$0([$1], m4_shift(m4_shift($@)))])]) + + +# lt_car(LIST) +# lt_cdr(LIST) +# ------------ +# Manipulate m4 lists. +# These macros are necessary as long as will still need to support +# Autoconf-2.59 which quotes differently. +m4_define([lt_car], [[$1]]) +m4_define([lt_cdr], +[m4_if([$#], 0, [m4_fatal([$0: cannot be called without arguments])], + [$#], 1, [], + [m4_dquote(m4_shift($@))])]) +m4_define([lt_unquote], $1) + + +# lt_append(MACRO-NAME, STRING, [SEPARATOR]) +# ------------------------------------------ +# Redefine MACRO-NAME to hold its former content plus `SEPARATOR'`STRING'. +# Note that neither SEPARATOR nor STRING are expanded; they are appended +# to MACRO-NAME as is (leaving the expansion for when MACRO-NAME is invoked). +# No SEPARATOR is output if MACRO-NAME was previously undefined (different +# than defined and empty). +# +# This macro is needed until we can rely on Autoconf 2.62, since earlier +# versions of m4sugar mistakenly expanded SEPARATOR but not STRING. +m4_define([lt_append], +[m4_define([$1], + m4_ifdef([$1], [m4_defn([$1])[$3]])[$2])]) + + + +# lt_combine(SEP, PREFIX-LIST, INFIX, SUFFIX1, [SUFFIX2...]) +# ---------------------------------------------------------- +# Produce a SEP delimited list of all paired combinations of elements of +# PREFIX-LIST with SUFFIX1 through SUFFIXn. Each element of the list +# has the form PREFIXmINFIXSUFFIXn. +# Needed until we can rely on m4_combine added in Autoconf 2.62. +m4_define([lt_combine], +[m4_if(m4_eval([$# > 3]), [1], + [m4_pushdef([_Lt_sep], [m4_define([_Lt_sep], m4_defn([lt_car]))])]]dnl +[[m4_foreach([_Lt_prefix], [$2], + [m4_foreach([_Lt_suffix], + ]m4_dquote(m4_dquote(m4_shift(m4_shift(m4_shift($@)))))[, + [_Lt_sep([$1])[]m4_defn([_Lt_prefix])[$3]m4_defn([_Lt_suffix])])])])]) + + +# lt_if_append_uniq(MACRO-NAME, VARNAME, [SEPARATOR], [UNIQ], [NOT-UNIQ]) +# ----------------------------------------------------------------------- +# Iff MACRO-NAME does not yet contain VARNAME, then append it (delimited +# by SEPARATOR if supplied) and expand UNIQ, else NOT-UNIQ. +m4_define([lt_if_append_uniq], +[m4_ifdef([$1], + [m4_if(m4_index([$3]m4_defn([$1])[$3], [$3$2$3]), [-1], + [lt_append([$1], [$2], [$3])$4], + [$5])], + [lt_append([$1], [$2], [$3])$4])]) + + +# lt_dict_add(DICT, KEY, VALUE) +# ----------------------------- +m4_define([lt_dict_add], +[m4_define([$1($2)], [$3])]) + + +# lt_dict_add_subkey(DICT, KEY, SUBKEY, VALUE) +# -------------------------------------------- +m4_define([lt_dict_add_subkey], +[m4_define([$1($2:$3)], [$4])]) + + +# lt_dict_fetch(DICT, KEY, [SUBKEY]) +# ---------------------------------- +m4_define([lt_dict_fetch], +[m4_ifval([$3], + m4_ifdef([$1($2:$3)], [m4_defn([$1($2:$3)])]), + m4_ifdef([$1($2)], [m4_defn([$1($2)])]))]) + + +# lt_if_dict_fetch(DICT, KEY, [SUBKEY], VALUE, IF-TRUE, [IF-FALSE]) +# ----------------------------------------------------------------- +m4_define([lt_if_dict_fetch], +[m4_if(lt_dict_fetch([$1], [$2], [$3]), [$4], + [$5], + [$6])]) + + +# lt_dict_filter(DICT, [SUBKEY], VALUE, [SEPARATOR], KEY, [...]) +# -------------------------------------------------------------- +m4_define([lt_dict_filter], +[m4_if([$5], [], [], + [lt_join(m4_quote(m4_default([$4], [[, ]])), + lt_unquote(m4_split(m4_normalize(m4_foreach(_Lt_key, lt_car([m4_shiftn(4, $@)]), + [lt_if_dict_fetch([$1], _Lt_key, [$2], [$3], [_Lt_key ])])))))])[]dnl +]) diff -Nru guvcview-1.7.3/m4/ltversion.m4 guvcview-2.0.1+ubuntu1~ppa1/m4/ltversion.m4 --- guvcview-1.7.3/m4/ltversion.m4 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/m4/ltversion.m4 2014-10-05 10:41:44.000000000 +0000 @@ -0,0 +1,23 @@ +# ltversion.m4 -- version numbers -*- Autoconf -*- +# +# Copyright (C) 2004 Free Software Foundation, Inc. +# Written by Scott James Remnant, 2004 +# +# This file is free software; the Free Software Foundation gives +# unlimited permission to copy and/or distribute it, with or without +# modifications, as long as this notice is preserved. + +# @configure_input@ + +# serial 3337 ltversion.m4 +# This file is part of GNU Libtool + +m4_define([LT_PACKAGE_VERSION], [2.4.2]) +m4_define([LT_PACKAGE_REVISION], [1.3337]) + +AC_DEFUN([LTVERSION_VERSION], +[macro_version='2.4.2' +macro_revision='1.3337' +_LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?]) +_LT_DECL(, macro_revision, 0) +]) diff -Nru guvcview-1.7.3/Makefile.am guvcview-2.0.1+ubuntu1~ppa1/Makefile.am --- guvcview-1.7.3/Makefile.am 2014-03-24 22:56:28.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/Makefile.am 2014-10-05 10:41:44.000000000 +0000 @@ -1,35 +1,85 @@ ## Process this file with automake to produce Makefile.in -SUBDIRS = src po data +SUBDIRS = gview_v4l2core \ + gview_audio \ + gview_render \ + gview_encoder \ + guvcview \ + data \ + po \ + po/gview_v4l2core + +#Distribute these directories: +DIST_SUBDIRS = gview_v4l2core \ + gview_audio \ + gview_render \ + gview_encoder \ + guvcview \ + data \ + po \ + po/gview_v4l2core + +pkgconfigdir = $(libdir)/pkgconfig +pkgconfig_DATA = pkgconfig/libgviewv4l2core.pc \ + pkgconfig/libgviewaudio.pc \ + pkgconfig/libgviewrender.pc \ + pkgconfig/libgviewencoder.pc ACLOCAL_AMFLAGS = -I m4 docdir = ${datadir}/doc/guvcview doc_DATA = \ - README\ + README.md\ COPYING\ AUTHORS\ ChangeLog\ INSTALL -DISTCLEANFILES = \ - intltool-extract \ - intltool-merge \ - intltool-update - -EXTRA_DIST = \ - bootstrap.sh \ - intltool-extract.in \ - intltool-merge.in \ - intltool-update.in +EXTRA_DIST = bootstrap.sh -update-pot: - $(MAKE) -C po "$(GETTEXT_PACKAGE).pot" +check-gettext: + @if test x$(USE_NLS) != "xyes" ; then echo "Missing gettext. Rerun configure and check for" \ + "'checking whether to use NLS... yes'!" ; exit 1 ; fi + +update-po: check-gettext + cd $(srcdir); \ + echo "#desktop file" >> po/POTFILES.in.2; \ + echo "data/guvcview.desktop.in.in" >> po/POTFILES.in.2; \ + echo "#appdata file" >> po/POTFILES.in.2; \ + echo "data/guvcview.appdata.xml.in.in" >> po/POTFILES.in.2; \ + echo "#gview_v4l2core lib" >> po/POTFILES.in.2; \ + grep '_(' `find gview_v4l2core/ -name "*c"` | cut -d: -f1 | sort -u >> po/POTFILES.in.2 ; \ + echo "#gview_render lib" >> po/POTFILES.in.2; \ + grep '_(' `find gview_render/ -name "*c"` | cut -d: -f1 | sort -u >> po/POTFILES.in.2 ; \ + echo "#gview_audio lib" >> po/POTFILES.in.2; \ + grep '_(' `find gview_audio/ -name "*c"` | cut -d: -f1 | sort -u >> po/POTFILES.in.2 ; \ + echo "#gview_encoder" >> po/POTFILES.in.2; \ + grep '_(' `find gview_encoder/ -name "*c"` | cut -d: -f1 | sort -u >> po/POTFILES.in.2 ; \ + echo "#guvcview" >> po/POTFILES.in.2; \ + grep '_(' `find guvcview/ -name "*c"` | cut -d: -f1 | sort -u >> po/POTFILES.in.2 ; \ + if diff po/POTFILES.in po/POTFILES.in.2 >/dev/null 2>&1 ; then \ + rm -f po/POTFILES.in.2 ; \ + else \ + mv po/POTFILES.in.2 po/POTFILES.in ; \ + fi + cd po && $(MAKE) $(AM_MAKEFLAGS) update-po + cd $(srcdir); \ + echo "#gview_v4l2core lib" >> po/gview_v4l2core/POTFILES.in.2; \ + grep '_(' `find gview_v4l2core/ -name "*c"` | cut -d: -f1 | sort -u >> po/gview_v4l2core/POTFILES.in.2 ; \ + if diff po/gview_v4l2core/POTFILES.in po/gview_v4l2core/POTFILES.in.2 >/dev/null 2>&1 ; then \ + rm -f po/gview_v4l2core/POTFILES.in.2 ; \ + else \ + mv po/gview_v4l2core/POTFILES.in.2 po/gview_v4l2core/POTFILES.in ; \ + fi + cd po/gview_v4l2core && $(MAKE) $(AM_MAKEFLAGS) update-po + +update-gmo: check-gettext + cd po && $(MAKE) $(AM_MAKEFLAGS) update-gmo + +force-update-gmo: check-gettext + touch $(srcdir)/po/*.po + cd po && $(MAKE) $(AM_MAKEFLAGS) update-gmo -DISTCHECK_CONFIGURE_FLAGS = --enable-maintainer-flags=no - -DIST_SUBDIRS = ${SUBDIRS} - # Copy all the spec files. Of cource, only one is actually used. dist-hook: for specfile in *.spec; do \ diff -Nru guvcview-1.7.3/Makefile.in guvcview-2.0.1+ubuntu1~ppa1/Makefile.in --- guvcview-1.7.3/Makefile.in 2014-03-24 22:56:28.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/Makefile.in 2014-10-05 10:41:44.000000000 +0000 @@ -1,4 +1,4 @@ -# Makefile.in generated by automake 1.13.3 from Makefile.am. +# Makefile.in generated by automake 1.14.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. @@ -79,22 +79,30 @@ build_triplet = @build@ host_triplet = @host@ subdir = . -DIST_COMMON = INSTALL NEWS README AUTHORS ChangeLog \ - $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ $(top_srcdir)/configure $(am__configure_deps) \ - $(srcdir)/config.h.in COPYING compile config.guess config.sub \ - depcomp install-sh missing + $(srcdir)/config.h.in \ + $(top_srcdir)/pkgconfig/libgviewv4l2core.pc.in \ + $(top_srcdir)/pkgconfig/libgviewaudio.pc.in \ + $(top_srcdir)/pkgconfig/libgviewrender.pc.in \ + $(top_srcdir)/pkgconfig/libgviewencoder.pc.in AUTHORS COPYING \ + ChangeLog INSTALL NEWS compile config.guess config.sub depcomp \ + install-sh missing ltmain.sh ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/acx_pthread.m4 \ - $(top_srcdir)/m4/intltool.m4 $(top_srcdir)/m4/nls.m4 \ - $(top_srcdir)/configure.ac + $(top_srcdir)/m4/intltool.m4 $(top_srcdir)/m4/libtool.m4 \ + $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ + $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ + $(top_srcdir)/m4/nls.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ configure.lineno config.status.lineno mkinstalldirs = $(install_sh) -d CONFIG_HEADER = config.h -CONFIG_CLEAN_FILES = +CONFIG_CLEAN_FILES = pkgconfig/libgviewv4l2core.pc \ + pkgconfig/libgviewaudio.pc pkgconfig/libgviewrender.pc \ + pkgconfig/libgviewencoder.pc CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) @@ -150,8 +158,8 @@ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } -am__installdirs = "$(DESTDIR)$(docdir)" -DATA = $(doc_DATA) +am__installdirs = "$(DESTDIR)$(docdir)" "$(DESTDIR)$(pkgconfigdir)" +DATA = $(doc_DATA) $(pkgconfig_DATA) RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive am__recursive_targets = \ @@ -227,6 +235,7 @@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ @@ -242,17 +251,48 @@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ -DEPS_CFLAGS = @DEPS_CFLAGS@ -DEPS_LIBS = @DEPS_LIBS@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ +FGREP = @FGREP@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GETTEXT_PACKAGE_V4L2CORE = @GETTEXT_PACKAGE_V4L2CORE@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ +GSL_CFLAGS = @GSL_CFLAGS@ +GSL_LIBS = @GSL_LIBS@ +GUVCVIEW_CFLAGS = @GUVCVIEW_CFLAGS@ +GUVCVIEW_LIBS = @GUVCVIEW_LIBS@ +GVIEWAUDIO_API_VERSION = @GVIEWAUDIO_API_VERSION@ +GVIEWAUDIO_CFLAGS = @GVIEWAUDIO_CFLAGS@ +GVIEWAUDIO_LD_NAME = @GVIEWAUDIO_LD_NAME@ +GVIEWAUDIO_LIBRARY_NAME = @GVIEWAUDIO_LIBRARY_NAME@ +GVIEWAUDIO_LIBRARY_VERSION = @GVIEWAUDIO_LIBRARY_VERSION@ +GVIEWAUDIO_LIBS = @GVIEWAUDIO_LIBS@ +GVIEWENCODER_API_VERSION = @GVIEWENCODER_API_VERSION@ +GVIEWENCODER_CFLAGS = @GVIEWENCODER_CFLAGS@ +GVIEWENCODER_LD_NAME = @GVIEWENCODER_LD_NAME@ +GVIEWENCODER_LIBRARY_NAME = @GVIEWENCODER_LIBRARY_NAME@ +GVIEWENCODER_LIBRARY_VERSION = @GVIEWENCODER_LIBRARY_VERSION@ +GVIEWENCODER_LIBS = @GVIEWENCODER_LIBS@ +GVIEWRENDER_API_VERSION = @GVIEWRENDER_API_VERSION@ +GVIEWRENDER_CFLAGS = @GVIEWRENDER_CFLAGS@ +GVIEWRENDER_LD_NAME = @GVIEWRENDER_LD_NAME@ +GVIEWRENDER_LIBRARY_NAME = @GVIEWRENDER_LIBRARY_NAME@ +GVIEWRENDER_LIBRARY_VERSION = @GVIEWRENDER_LIBRARY_VERSION@ +GVIEWRENDER_LIBS = @GVIEWRENDER_LIBS@ +GVIEWV4L2CORE_API_VERSION = @GVIEWV4L2CORE_API_VERSION@ +GVIEWV4L2CORE_CFLAGS = @GVIEWV4L2CORE_CFLAGS@ +GVIEWV4L2CORE_LD_NAME = @GVIEWV4L2CORE_LD_NAME@ +GVIEWV4L2CORE_LIBRARY_NAME = @GVIEWV4L2CORE_LIBRARY_NAME@ +GVIEWV4L2CORE_LIBRARY_VERSION = @GVIEWV4L2CORE_LIBRARY_VERSION@ +GVIEWV4L2CORE_LIBS = @GVIEWV4L2CORE_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -264,21 +304,36 @@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ +INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ +INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ +INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ +INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ +LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_RELEASE = @PACKAGE_RELEASE@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ @@ -296,6 +351,8 @@ PTHREAD_LIBS = @PTHREAD_LIBS@ PULSE_CFLAGS = @PULSE_CFLAGS@ PULSE_LIBS = @PULSE_LIBS@ +RANLIB = @RANLIB@ +SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ @@ -306,7 +363,9 @@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ acx_pthread_config = @acx_pthread_config@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ @@ -334,6 +393,8 @@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ +intltool__v_merge_options_ = @intltool__v_merge_options_@ +intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ @@ -353,28 +414,41 @@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ -SUBDIRS = src po data +SUBDIRS = gview_v4l2core \ + gview_audio \ + gview_render \ + gview_encoder \ + guvcview \ + data \ + po \ + po/gview_v4l2core + + +#Distribute these directories: +DIST_SUBDIRS = gview_v4l2core \ + gview_audio \ + gview_render \ + gview_encoder \ + guvcview \ + data \ + po \ + po/gview_v4l2core + +pkgconfigdir = $(libdir)/pkgconfig +pkgconfig_DATA = pkgconfig/libgviewv4l2core.pc \ + pkgconfig/libgviewaudio.pc \ + pkgconfig/libgviewrender.pc \ + pkgconfig/libgviewencoder.pc + ACLOCAL_AMFLAGS = -I m4 doc_DATA = \ - README\ + README.md\ COPYING\ AUTHORS\ ChangeLog\ INSTALL -DISTCLEANFILES = \ - intltool-extract \ - intltool-merge \ - intltool-update - -EXTRA_DIST = \ - bootstrap.sh \ - intltool-extract.in \ - intltool-merge.in \ - intltool-update.in - -DISTCHECK_CONFIGURE_FLAGS = --enable-maintainer-flags=no -DIST_SUBDIRS = ${SUBDIRS} +EXTRA_DIST = bootstrap.sh all: config.h $(MAKE) $(AM_MAKEFLAGS) all-recursive @@ -385,15 +459,15 @@ @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ - echo ' cd $(srcdir) && $(AUTOMAKE) --gnu'; \ - $(am__cd) $(srcdir) && $(AUTOMAKE) --gnu \ + echo ' cd $(srcdir) && $(AUTOMAKE) --foreign'; \ + $(am__cd) $(srcdir) && $(AUTOMAKE) --foreign \ && exit 0; \ exit 1;; \ esac; \ done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile'; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \ $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnu Makefile + $(AUTOMAKE) --foreign Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ @@ -415,8 +489,8 @@ $(am__aclocal_m4_deps): config.h: stamp-h1 - @if test ! -f $@; then rm -f stamp-h1; else :; fi - @if test ! -f $@; then $(MAKE) $(AM_MAKEFLAGS) stamp-h1; else :; fi + @test -f $@ || rm -f stamp-h1 + @test -f $@ || $(MAKE) $(AM_MAKEFLAGS) stamp-h1 stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status @rm -f stamp-h1 @@ -428,6 +502,23 @@ distclean-hdr: -rm -f config.h stamp-h1 +pkgconfig/libgviewv4l2core.pc: $(top_builddir)/config.status $(top_srcdir)/pkgconfig/libgviewv4l2core.pc.in + cd $(top_builddir) && $(SHELL) ./config.status $@ +pkgconfig/libgviewaudio.pc: $(top_builddir)/config.status $(top_srcdir)/pkgconfig/libgviewaudio.pc.in + cd $(top_builddir) && $(SHELL) ./config.status $@ +pkgconfig/libgviewrender.pc: $(top_builddir)/config.status $(top_srcdir)/pkgconfig/libgviewrender.pc.in + cd $(top_builddir) && $(SHELL) ./config.status $@ +pkgconfig/libgviewencoder.pc: $(top_builddir)/config.status $(top_srcdir)/pkgconfig/libgviewencoder.pc.in + cd $(top_builddir) && $(SHELL) ./config.status $@ + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +distclean-libtool: + -rm -f libtool config.lt install-docDATA: $(doc_DATA) @$(NORMAL_INSTALL) @list='$(doc_DATA)'; test -n "$(docdir)" || list=; \ @@ -449,6 +540,27 @@ @list='$(doc_DATA)'; test -n "$(docdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(docdir)'; $(am__uninstall_files_from_dir) +install-pkgconfigDATA: $(pkgconfig_DATA) + @$(NORMAL_INSTALL) + @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(pkgconfigdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(pkgconfigdir)" || exit 1; \ + fi; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(pkgconfigdir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(pkgconfigdir)" || exit $$?; \ + done + +uninstall-pkgconfigDATA: + @$(NORMAL_UNINSTALL) + @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(pkgconfigdir)'; $(am__uninstall_files_from_dir) # This directory's subdirectories are mostly independent; you can cd # into them and run 'make' without going through this Makefile. @@ -640,10 +752,16 @@ $(am__post_remove_distdir) dist-tarZ: distdir + @echo WARNING: "Support for shar distribution archives is" \ + "deprecated." >&2 + @echo WARNING: "It will be removed altogether in Automake 2.0" >&2 tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z $(am__post_remove_distdir) dist-shar: distdir + @echo WARNING: "Support for distribution archives compressed with" \ + "legacy program 'compress' is deprecated." >&2 + @echo WARNING: "It will be removed altogether in Automake 2.0" >&2 shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz $(am__post_remove_distdir) @@ -685,9 +803,10 @@ && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ && am__cwd=`pwd` \ && $(am__cd) $(distdir)/_build \ - && ../configure --srcdir=.. --prefix="$$dc_install_base" \ + && ../configure \ $(AM_DISTCHECK_CONFIGURE_FLAGS) \ $(DISTCHECK_CONFIGURE_FLAGS) \ + --srcdir=.. --prefix="$$dc_install_base" \ && $(MAKE) $(AM_MAKEFLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) dvi \ && $(MAKE) $(AM_MAKEFLAGS) check \ @@ -745,7 +864,7 @@ all-am: Makefile $(DATA) config.h installdirs: installdirs-recursive installdirs-am: - for dir in "$(DESTDIR)$(docdir)"; do \ + for dir in "$(DESTDIR)$(docdir)" "$(DESTDIR)$(pkgconfigdir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-recursive @@ -774,19 +893,19 @@ distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive -clean-am: clean-generic mostlyclean-am +clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -f Makefile -distclean-am: clean-am distclean-generic distclean-hdr distclean-tags +distclean-am: clean-am distclean-generic distclean-hdr \ + distclean-libtool distclean-tags dvi: dvi-recursive @@ -800,7 +919,7 @@ info-am: -install-data-am: install-docDATA +install-data-am: install-docDATA install-pkgconfigDATA install-dvi: install-dvi-recursive @@ -836,7 +955,7 @@ mostlyclean: mostlyclean-recursive -mostlyclean-am: mostlyclean-generic +mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive @@ -846,29 +965,71 @@ ps-am: -uninstall-am: uninstall-docDATA +uninstall-am: uninstall-docDATA uninstall-pkgconfigDATA .MAKE: $(am__recursive_targets) all install-am install-strip .PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am \ am--refresh check check-am clean clean-cscope clean-generic \ - cscope cscopelist-am ctags ctags-am dist dist-all dist-bzip2 \ - dist-gzip dist-hook dist-lzip dist-shar dist-tarZ dist-xz \ - dist-zip distcheck distclean distclean-generic distclean-hdr \ + clean-libtool cscope cscopelist-am ctags ctags-am dist \ + dist-all dist-bzip2 dist-gzip dist-hook dist-lzip dist-shar \ + dist-tarZ dist-xz dist-zip distcheck distclean \ + distclean-generic distclean-hdr distclean-libtool \ distclean-tags distcleancheck distdir distuninstallcheck dvi \ dvi-am html html-am info info-am install install-am \ install-data install-data-am install-docDATA install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-ps install-ps-am \ - install-strip installcheck installcheck-am installdirs \ - installdirs-am maintainer-clean maintainer-clean-generic \ - mostlyclean mostlyclean-generic pdf pdf-am ps ps-am tags \ - tags-am uninstall uninstall-am uninstall-docDATA + install-pdf install-pdf-am install-pkgconfigDATA install-ps \ + install-ps-am install-strip installcheck installcheck-am \ + installdirs installdirs-am maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-generic \ + mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \ + uninstall-am uninstall-docDATA uninstall-pkgconfigDATA + + +check-gettext: + @if test x$(USE_NLS) != "xyes" ; then echo "Missing gettext. Rerun configure and check for" \ + "'checking whether to use NLS... yes'!" ; exit 1 ; fi + +update-po: check-gettext + cd $(srcdir); \ + echo "#desktop file" >> po/POTFILES.in.2; \ + echo "data/guvcview.desktop.in.in" >> po/POTFILES.in.2; \ + echo "#appdata file" >> po/POTFILES.in.2; \ + echo "data/guvcview.appdata.xml.in.in" >> po/POTFILES.in.2; \ + echo "#gview_v4l2core lib" >> po/POTFILES.in.2; \ + grep '_(' `find gview_v4l2core/ -name "*c"` | cut -d: -f1 | sort -u >> po/POTFILES.in.2 ; \ + echo "#gview_render lib" >> po/POTFILES.in.2; \ + grep '_(' `find gview_render/ -name "*c"` | cut -d: -f1 | sort -u >> po/POTFILES.in.2 ; \ + echo "#gview_audio lib" >> po/POTFILES.in.2; \ + grep '_(' `find gview_audio/ -name "*c"` | cut -d: -f1 | sort -u >> po/POTFILES.in.2 ; \ + echo "#gview_encoder" >> po/POTFILES.in.2; \ + grep '_(' `find gview_encoder/ -name "*c"` | cut -d: -f1 | sort -u >> po/POTFILES.in.2 ; \ + echo "#guvcview" >> po/POTFILES.in.2; \ + grep '_(' `find guvcview/ -name "*c"` | cut -d: -f1 | sort -u >> po/POTFILES.in.2 ; \ + if diff po/POTFILES.in po/POTFILES.in.2 >/dev/null 2>&1 ; then \ + rm -f po/POTFILES.in.2 ; \ + else \ + mv po/POTFILES.in.2 po/POTFILES.in ; \ + fi + cd po && $(MAKE) $(AM_MAKEFLAGS) update-po + cd $(srcdir); \ + echo "#gview_v4l2core lib" >> po/gview_v4l2core/POTFILES.in.2; \ + grep '_(' `find gview_v4l2core/ -name "*c"` | cut -d: -f1 | sort -u >> po/gview_v4l2core/POTFILES.in.2 ; \ + if diff po/gview_v4l2core/POTFILES.in po/gview_v4l2core/POTFILES.in.2 >/dev/null 2>&1 ; then \ + rm -f po/gview_v4l2core/POTFILES.in.2 ; \ + else \ + mv po/gview_v4l2core/POTFILES.in.2 po/gview_v4l2core/POTFILES.in ; \ + fi + cd po/gview_v4l2core && $(MAKE) $(AM_MAKEFLAGS) update-po +update-gmo: check-gettext + cd po && $(MAKE) $(AM_MAKEFLAGS) update-gmo -update-pot: - $(MAKE) -C po "$(GETTEXT_PACKAGE).pot" +force-update-gmo: check-gettext + touch $(srcdir)/po/*.po + cd po && $(MAKE) $(AM_MAKEFLAGS) update-gmo # Copy all the spec files. Of cource, only one is actually used. dist-hook: diff -Nru guvcview-1.7.3/missing guvcview-2.0.1+ubuntu1~ppa1/missing --- guvcview-1.7.3/missing 2014-03-24 22:56:28.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/missing 2014-10-05 10:41:44.000000000 +0000 @@ -1,7 +1,7 @@ #! /bin/sh # Common wrapper for a few potentially missing GNU programs. -scriptversion=2012-06-26.16; # UTC +scriptversion=2013-10-28.13; # UTC # Copyright (C) 1996-2013 Free Software Foundation, Inc. # Originally written by Fran,cois Pinard , 1996. @@ -160,7 +160,7 @@ ;; autom4te*) echo "You might have modified some maintainer files that require" - echo "the 'automa4te' program to be rebuilt." + echo "the 'autom4te' program to be rebuilt." program_details 'autom4te' ;; bison*|yacc*) diff -Nru guvcview-1.7.3/pkgconfig/libgviewaudio.pc.in guvcview-2.0.1+ubuntu1~ppa1/pkgconfig/libgviewaudio.pc.in --- guvcview-1.7.3/pkgconfig/libgviewaudio.pc.in 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/pkgconfig/libgviewaudio.pc.in 2014-10-05 10:41:44.000000000 +0000 @@ -0,0 +1,10 @@ +prefix=@prefix@ +exec_prefix=@exec_prefix@ +libdir=@libdir@ +includedir=@includedir@ + +Name: @GVIEWAUDIO_LIBRARY_NAME@ +Description: guvcview audio library. +Version: @VERSION@ +Libs: -L${libdir} -l@GVIEWAUDIO_LD_NAME@ +Cflags: -I${includedir}/@PACKAGE@-@PACKAGE_RELEASE@/@GVIEWAUDIO_LIBRARY_NAME@ diff -Nru guvcview-1.7.3/pkgconfig/libgviewencoder.pc.in guvcview-2.0.1+ubuntu1~ppa1/pkgconfig/libgviewencoder.pc.in --- guvcview-1.7.3/pkgconfig/libgviewencoder.pc.in 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/pkgconfig/libgviewencoder.pc.in 2014-10-05 10:41:44.000000000 +0000 @@ -0,0 +1,10 @@ +prefix=@prefix@ +exec_prefix=@exec_prefix@ +libdir=@libdir@ +includedir=@includedir@ + +Name: @GVIEWENCODER_LIBRARY_NAME@ +Description: guvcview encoder library. +Version: @VERSION@ +Libs: -L${libdir} -l@GVIEWENCODER_LD_NAME@ +Cflags: -I${includedir}/@PACKAGE@-@PACKAGE_RELEASE@/@GVIEWENCODER_LIBRARY_NAME@ \ No newline at end of file diff -Nru guvcview-1.7.3/pkgconfig/libgviewrender.pc.in guvcview-2.0.1+ubuntu1~ppa1/pkgconfig/libgviewrender.pc.in --- guvcview-1.7.3/pkgconfig/libgviewrender.pc.in 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/pkgconfig/libgviewrender.pc.in 2014-10-05 10:41:44.000000000 +0000 @@ -0,0 +1,10 @@ +prefix=@prefix@ +exec_prefix=@exec_prefix@ +libdir=@libdir@ +includedir=@includedir@ + +Name: @GVIEWRENDER_LIBRARY_NAME@ +Description: guvcview render library. +Version: @VERSION@ +Libs: -L${libdir} -l@GVIEWRENDER_LD_NAME@ +Cflags: -I${includedir}/@PACKAGE@-@PACKAGE_RELEASE@/@GVIEWRENDER_LIBRARY_NAME@ diff -Nru guvcview-1.7.3/pkgconfig/libgviewv4l2core.pc.in guvcview-2.0.1+ubuntu1~ppa1/pkgconfig/libgviewv4l2core.pc.in --- guvcview-1.7.3/pkgconfig/libgviewv4l2core.pc.in 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/pkgconfig/libgviewv4l2core.pc.in 2014-10-05 10:41:44.000000000 +0000 @@ -0,0 +1,10 @@ +prefix=@prefix@ +exec_prefix=@exec_prefix@ +libdir=@libdir@ +includedir=@includedir@ + +Name: @GVIEWV4L2CORE_LIBRARY_NAME@ +Description: guvcview v4l2 core library. +Version: @VERSION@ +Libs: -L${libdir} -l@GVIEWV4L2CORE_LD_NAME@ +Cflags: -I${includedir}/@PACKAGE@-@PACKAGE_RELEASE@/@GVIEWV4L2CORE_LIBRARY_NAME@ diff -Nru guvcview-1.7.3/po/bg.po guvcview-2.0.1+ubuntu1~ppa1/po/bg.po --- guvcview-1.7.3/po/bg.po 2014-03-24 22:56:28.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/po/bg.po 2014-10-05 10:41:44.000000000 +0000 @@ -7,16 +7,16 @@ msgstr "" "Project-Id-Version: guvcview\n" "Report-Msgid-Bugs-To: pj.assis@gmail.com\n" -"POT-Creation-Date: 2013-11-14 22:15+0000\n" +"POT-Creation-Date: 2014-08-17 22:49+0100\n" "PO-Revision-Date: 2012-06-06 03:33+0000\n" "Last-Translator: FULL NAME \n" "Language-Team: Bulgarian \n" +"Language: bg\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-12-08 10:36+0000\n" "X-Generator: Launchpad (build 16869)\n" -"Language: bg\n" #: ../data/guvcview.desktop.in.in.h:1 msgid "guvcview" @@ -30,1350 +30,1338 @@ msgid "A video viewer and capturer for the linux uvc driver" msgstr "" -#: ../src/acodecs.c:59 -msgid "PCM - uncompressed (16 bit)" -msgstr "" - -#: ../src/acodecs.c:76 -msgid "MPEG2 - (lavc)" -msgstr "" - -#: ../src/acodecs.c:93 -msgid "MP3 - (lavc)" -msgstr "" - -#: ../src/acodecs.c:110 -msgid "Dolby AC3 - (lavc)" -msgstr "" - -#: ../src/acodecs.c:127 -msgid "ACC Low - (faac)" -msgstr "" - -#: ../src/acodecs.c:144 -msgid "Vorbis" -msgstr "" - -#: ../src/audio_tab.c:87 -msgid "Audio" -msgstr "" - -#: ../src/audio_tab.c:105 -msgid " Sound" -msgstr "" - -#. VU meter on the image (OSD) -#: ../src/audio_tab.c:116 -msgid " Show VU meter" -msgstr "" - -#: ../src/audio_tab.c:128 -msgid "Audio API:" -msgstr "" - -#: ../src/audio_tab.c:139 -msgid "PORTAUDIO" -msgstr "" - -#: ../src/audio_tab.c:140 -msgid "PULSEAUDIO" -msgstr "" - -#: ../src/audio_tab.c:156 ../src/audio_tab.c:179 -msgid "Input Device:" -msgstr "" - -#: ../src/audio_tab.c:189 ../src/audio_tab.c:221 -msgid "Dev. Default" -msgstr "" - -#: ../src/audio_tab.c:211 -msgid "Sample Rate:" -msgstr "" - -#: ../src/audio_tab.c:222 -msgid "1 - mono" -msgstr "" - -#: ../src/audio_tab.c:223 -msgid "2 - stereo" -msgstr "" - -#: ../src/audio_tab.c:258 -msgid "Channels:" -msgstr "" - -#: ../src/audio_tab.c:309 -msgid "---- Audio Effects ----" -msgstr "" - -#. Echo -#: ../src/audio_tab.c:328 -msgid " Echo" -msgstr "" - -#. FUZZ -#: ../src/audio_tab.c:339 -msgid " Fuzz" -msgstr "" - -#. Reverb -#: ../src/audio_tab.c:351 -msgid " Reverb" -msgstr "" - -#. WahWah -#: ../src/audio_tab.c:363 -msgid " WahWah" -msgstr "" - -#. Ducky -#: ../src/audio_tab.c:375 -msgid " Ducky" -msgstr "" - -#: ../src/callbacks.c:109 -msgid "Error" -msgstr "" - -#: ../src/callbacks.c:133 -msgid "" -"\n" -"You have more than one video device installed.\n" -"Do you want to try another one ?\n" -msgstr "" - -#. Devices -#: ../src/callbacks.c:140 ../src/video_tab.c:111 -msgid "Device:" -msgstr "" - -#: ../src/callbacks.c:272 -msgid "Save File" -msgstr "" - -#: ../src/callbacks.c:284 -msgid "File Format:" -msgstr "" - -#: ../src/callbacks.c:455 -msgid "codec values" +#: ../data/guvcview.appdata.xml.in.in.h:1 +msgid "capture video from v4l2 devices" msgstr "" -#: ../src/callbacks.c:466 +#: ../data/guvcview.appdata.xml.in.in.h:2 msgid "" -" encoder fps: \n" -" (0 - use fps combobox value)" -msgstr "" - -#: ../src/callbacks.c:479 -msgid " monotonic pts" -msgstr "" - -#. bit rate -#: ../src/callbacks.c:486 ../src/callbacks.c:809 -msgid "bit rate: " +"Video capture tool for video4linux2 compliant cameras, with special emphasis " +"on the linux uvc driver. It provides Image (jpg, png, bmp) and Video (mjpeg, " +"flv1, wmv1, mpg2, mpg4,...) capture with sound in several " +"formats( currently: avi and matroska). I also supports a control panel " +"option (--control_only) that is compatible with any other v4l2 app." msgstr "" -#: ../src/callbacks.c:499 -msgid "qmax: " -msgstr "" - -#: ../src/callbacks.c:512 -msgid "qmin: " -msgstr "" - -#: ../src/callbacks.c:525 -msgid "max. qdiff: " -msgstr "" - -#: ../src/callbacks.c:538 -msgid "dia size: " -msgstr "" - -#: ../src/callbacks.c:551 -msgid "pre dia size: " -msgstr "" - -#: ../src/callbacks.c:564 -msgid "pre me: " -msgstr "" - -#: ../src/callbacks.c:577 -msgid "pre cmp: " -msgstr "" - -#: ../src/callbacks.c:590 -msgid "cmp: " -msgstr "" - -#: ../src/callbacks.c:603 -msgid "sub cmp: " -msgstr "" - -#: ../src/callbacks.c:616 -msgid "last predictor count: " -msgstr "" - -#: ../src/callbacks.c:629 -msgid "gop size: " -msgstr "" - -#: ../src/callbacks.c:642 -msgid "qcompress: " -msgstr "" - -#: ../src/callbacks.c:655 -msgid "qblur: " -msgstr "" - -#: ../src/callbacks.c:668 -msgid "subq: " -msgstr "" - -#: ../src/callbacks.c:681 -msgid "framerefs: " -msgstr "" - -#: ../src/callbacks.c:694 -msgid "me method: " -msgstr "" - -#: ../src/callbacks.c:707 -msgid "mb decision: " -msgstr "" - -#: ../src/callbacks.c:720 -msgid "max B frames: " -msgstr "" - -#: ../src/callbacks.c:733 -msgid "num threads: " -msgstr "" - -#: ../src/callbacks.c:796 -msgid "audio codec values" -msgstr "" - -#. sample format -#: ../src/callbacks.c:823 -msgid "sample format: " -msgstr "" - -#: ../src/callbacks.c:1311 -msgid "start new" -msgstr "" - -#: ../src/callbacks.c:1314 -msgid "restart" -msgstr "" - -#: ../src/callbacks.c:1316 -msgid "new" -msgstr "" - -#: ../src/callbacks.c:1318 -msgid "cancel" -msgstr "" - -#: ../src/callbacks.c:1323 -msgid "" -"launch new process or restart?.\n" -"\n" -msgstr "" - -#: ../src/callbacks.c:1780 ../src/guvcview.c:565 -msgid "Cap. Image (I)" -msgstr "" - -#. disable image controls -#: ../src/callbacks.c:1791 ../src/guvcview.c:690 ../src/timers.c:101 -msgid "capturing photo to" -msgstr "" - -#: ../src/callbacks.c:1850 ../src/guvcview.c:575 -msgid "Cap. Video (V)" -msgstr "" - -#: ../src/callbacks.c:1876 ../src/guvcview.c:740 -msgid "capturing video to" -msgstr "" - -#. vid capture enabled from start -#: ../src/callbacks.c:1911 ../src/guvcview.c:570 -msgid "Stop Video (V)" -msgstr "" - -#: ../src/callbacks.c:1967 ../src/menubar.c:66 -msgid "Save Profile" -msgstr "" - -#: ../src/callbacks.c:1980 ../src/menubar.c:65 -msgid "Load Profile" -msgstr "" - -#: ../src/create_video.c:1098 ../src/guvcview.c:732 -msgid "Cap. Video" -msgstr "" - -#: ../src/guvcview.c:280 -msgid "Guvcview Video Capture" -msgstr "" - -#: ../src/guvcview.c:292 -msgid "GUVCViewer Controls" -msgstr "" - -#. can't open device -#: ../src/guvcview.c:342 -msgid "" -"Guvcview error:\n" -"\n" -"Unable to open device" -msgstr "" - -#: ../src/guvcview.c:343 -msgid "" -"Please make sure the camera is connected\n" -"and that the correct driver is installed." -msgstr "" - -#. uvc extension controls OK, give warning and shutdown (called with --add_ctrls) -#: ../src/guvcview.c:348 -msgid "" -"Guvcview:\n" -"\n" -"UVC Extension controls" -msgstr "" - -#: ../src/guvcview.c:349 -msgid "Extension controls were added to the UVC driver" +#. +#. * needed only for language files (not used) +#. +#. V4L2 control strings +#: ../gview_v4l2core/v4l2_controls.c:49 +msgid "User Controls" msgstr "" -#. uvc extension controls error - EACCES (needs root user) -#: ../src/guvcview.c:356 -msgid "" -"Guvcview error:\n" -"\n" -"UVC Extension controls" +#: ../gview_v4l2core/v4l2_controls.c:50 +msgid "Brightness" msgstr "" -#: ../src/guvcview.c:357 -msgid "" -"An error occurred while adding extension\n" -"controls to the UVC driver\n" -"Make sure you run guvcview as root (or sudo)." +#: ../gview_v4l2core/v4l2_controls.c:51 +msgid "Contrast" msgstr "" -#: ../src/guvcview.c:391 ../src/guvcview.c:399 ../src/guvcview.c:477 -msgid "" -"Guvcview error:\n" -"\n" -"Can't set a valid video stream for guvcview" +#: ../gview_v4l2core/v4l2_controls.c:52 +msgid "Hue" msgstr "" -#: ../src/guvcview.c:392 ../src/guvcview.c:400 ../src/guvcview.c:478 -msgid "" -"Make sure your device driver is v4l2 compliant\n" -"and that it is properly installed." +#: ../gview_v4l2core/v4l2_controls.c:53 +msgid "Saturation" msgstr "" -#: ../src/guvcview.c:422 ../src/guvcview.c:444 -msgid "" -"Guvcview error:\n" -"\n" -"Unable to start with minimum setup" +#: ../gview_v4l2core/v4l2_controls.c:54 +msgid "Sharpness" msgstr "" -#: ../src/guvcview.c:423 ../src/guvcview.c:445 -msgid "Please reconnect your camera." +#: ../gview_v4l2core/v4l2_controls.c:55 +msgid "Gamma" msgstr "" -#: ../src/guvcview.c:452 -msgid "" -"Guvcview error:\n" -"\n" -"Couldn't query device capabilities" +#: ../gview_v4l2core/v4l2_controls.c:56 +msgid "Backlight Compensation" msgstr "" -#: ../src/guvcview.c:453 -msgid "Make sure the device driver supports v4l2." +#: ../gview_v4l2core/v4l2_controls.c:57 +msgid "Power Line Frequency" msgstr "" -#: ../src/guvcview.c:457 -msgid "" -"Guvcview error:\n" -"\n" -"Read method error" +#: ../gview_v4l2core/v4l2_controls.c:58 +msgid "Hue, Automatic" msgstr "" -#: ../src/guvcview.c:458 -msgid "Please try mmap instead (--capture_method=1)." +#: ../gview_v4l2core/v4l2_controls.c:59 +msgid "Focus, Auto" msgstr "" -#: ../src/guvcview.c:466 -msgid "" -"Guvcview error:\n" -"\n" -"Unable to allocate Buffers" +#: ../gview_v4l2core/v4l2_controls.c:60 +msgid "Manual Mode" msgstr "" -#: ../src/guvcview.c:467 -msgid "Please try restarting your system." +#: ../gview_v4l2core/v4l2_controls.c:61 +msgid "Auto Mode" msgstr "" -#: ../src/guvcview.c:518 -msgid "Image Controls" +#: ../gview_v4l2core/v4l2_controls.c:62 +msgid "Shutter Priority Mode" msgstr "" -#. image auto capture -#: ../src/guvcview.c:561 -msgid "Stop Auto (I)" +#: ../gview_v4l2core/v4l2_controls.c:63 +msgid "Aperture Priority Mode" msgstr "" -#: ../src/guvcview.c:676 -msgid "" -"Guvcview error:\n" -"\n" -"Unable to create Video Thread" +#: ../gview_v4l2core/v4l2_controls.c:64 +msgid "Black Level" msgstr "" -#: ../src/guvcview.c:677 -msgid "Please report it to http://developer.berlios.de/bugs/?group_id=8179" +#: ../gview_v4l2core/v4l2_controls.c:65 +msgid "White Balance, Automatic" msgstr "" -#: ../src/img_controls.c:121 -msgid "Auto Focus (continuous)" +#: ../gview_v4l2core/v4l2_controls.c:66 +msgid "Do White Balance" msgstr "" -#: ../src/img_controls.c:122 -msgid "set Focus" +#: ../gview_v4l2core/v4l2_controls.c:67 +msgid "Red Balance" msgstr "" -#: ../src/image_format.c:35 -msgid "Jpeg (jpg)" +#: ../gview_v4l2core/v4l2_controls.c:68 +msgid "Blue Balance" msgstr "" -#: ../src/image_format.c:41 -msgid "Bitmap (Bmp)" +#: ../gview_v4l2core/v4l2_controls.c:69 +msgid "Exposure" msgstr "" -#: ../src/image_format.c:47 -msgid "Portable Network Graphics (Png)" +#: ../gview_v4l2core/v4l2_controls.c:70 +msgid "Gain, Automatic" msgstr "" -#: ../src/image_format.c:53 -msgid "Raw Image (raw)" +#: ../gview_v4l2core/v4l2_controls.c:71 +msgid "Gain" msgstr "" -#. controls menu -#: ../src/menubar.c:64 -msgid "Settings" +#: ../gview_v4l2core/v4l2_controls.c:72 +msgid "Horizontal Flip" msgstr "" -#: ../src/menubar.c:67 -msgid "Hardware Defaults" +#: ../gview_v4l2core/v4l2_controls.c:73 +msgid "Vertical Flip" msgstr "" -#: ../src/menubar.c:75 -msgid "Camera Button" +#: ../gview_v4l2core/v4l2_controls.c:74 +msgid "Horizontal Center" msgstr "" -#: ../src/menubar.c:79 -msgid "Capture Image" +#: ../gview_v4l2core/v4l2_controls.c:75 +msgid "Vertical Center" msgstr "" -#: ../src/menubar.c:84 -msgid "Capture Video" +#: ../gview_v4l2core/v4l2_controls.c:76 +msgid "Chroma AGC" msgstr "" -#. video menu -#: ../src/menubar.c:144 ../src/video_tab.c:95 -msgid "Video" +#: ../gview_v4l2core/v4l2_controls.c:77 +msgid "Color Killer" msgstr "" -#: ../src/menubar.c:145 ../src/menubar.c:233 -msgid "File" +#: ../gview_v4l2core/v4l2_controls.c:78 +msgid "Color Effects" msgstr "" -#: ../src/menubar.c:146 ../src/menubar.c:234 -msgid "Increment Filename" +#. CAMERA CLASS control strings +#: ../gview_v4l2core/v4l2_controls.c:81 +msgid "Camera Controls" msgstr "" -#: ../src/menubar.c:164 -msgid "Video Codec" +#: ../gview_v4l2core/v4l2_controls.c:82 +msgid "Auto Exposure" msgstr "" -#: ../src/menubar.c:189 -msgid "Video Codec Properties" +#: ../gview_v4l2core/v4l2_controls.c:83 +msgid "Exposure Time, Absolute" msgstr "" -#: ../src/menubar.c:196 -msgid "Audio Codec" +#: ../gview_v4l2core/v4l2_controls.c:84 +msgid "Exposure, Dynamic Framerate" msgstr "" -#: ../src/menubar.c:217 -msgid "Audio Codec Properties" +#: ../gview_v4l2core/v4l2_controls.c:85 +msgid "Pan, Relative" msgstr "" -#. photo menu -#: ../src/menubar.c:232 -msgid "Photo" +#: ../gview_v4l2core/v4l2_controls.c:86 +msgid "Tilt, Relative" msgstr "" -#: ../src/options.c:753 -msgid "Prints version" +#: ../gview_v4l2core/v4l2_controls.c:87 +msgid "Pan, Reset" msgstr "" -#: ../src/options.c:754 -msgid "Displays debug information" +#: ../gview_v4l2core/v4l2_controls.c:88 +msgid "Tilt, Reset" msgstr "" -#: ../src/options.c:755 -msgid "Video Device to use [default: /dev/video0]" +#: ../gview_v4l2core/v4l2_controls.c:89 +msgid "Pan, Absolute" msgstr "" -#: ../src/options.c:756 -msgid "Exit after adding UVC extension controls (needs root/sudo)" +#: ../gview_v4l2core/v4l2_controls.c:91 +msgid "Focus, Absolute" msgstr "" -#: ../src/options.c:757 -msgid "Don't stream video (image controls only)" +#: ../gview_v4l2core/v4l2_controls.c:92 +msgid "Focus, Relative" msgstr "" -#: ../src/options.c:758 -msgid "Don't display a GUI" +#: ../gview_v4l2core/v4l2_controls.c:93 +msgid "Focus, Automatic" msgstr "" -#: ../src/options.c:759 -msgid "Capture method (1-mmap (default) 2-read)" +#: ../gview_v4l2core/v4l2_controls.c:94 +msgid "Zoom, Absolute" msgstr "" -#: ../src/options.c:760 -msgid "Configuration file" +#: ../gview_v4l2core/v4l2_controls.c:95 +msgid "Zoom, Relative" msgstr "" -#: ../src/options.c:761 -msgid "Hardware accelaration (enable(1) | disable(0))" +#: ../gview_v4l2core/v4l2_controls.c:96 +msgid "Zoom, Continuous" msgstr "" -#: ../src/options.c:762 -msgid "" -"Pixel " -"format(mjpg|jpeg|yuyv|yvyu|uyvy|yyuv|yu12|yv12|nv12|nv21|nv16|nv61|y41p|grey|" -"y10b|y16 |s501|s505|s508|gbrg|grbg|ba81|rggb|bgr3|rgb3)" +#: ../gview_v4l2core/v4l2_controls.c:97 +msgid "Privacy" msgstr "" -#: ../src/options.c:763 -msgid "Frame size, default: 640x480" +#. UVC specific control strings +#: ../gview_v4l2core/v4l2_controls.c:100 +msgid "Exposure, Auto" msgstr "" -#: ../src/options.c:764 -msgid "Image File name" +#: ../gview_v4l2core/v4l2_controls.c:101 +msgid "Exposure, Auto Priority" msgstr "" -#: ../src/options.c:765 -msgid "Image capture interval in seconds" +#: ../gview_v4l2core/v4l2_controls.c:102 +msgid "Exposure (Absolute)" msgstr "" -#: ../src/options.c:766 -msgid "Number of Pictures to capture" +#: ../gview_v4l2core/v4l2_controls.c:103 +msgid "White Balance Temperature, Auto" msgstr "" -#: ../src/options.c:767 -msgid "Video File name (capture from start)" +#: ../gview_v4l2core/v4l2_controls.c:104 +msgid "White Balance Temperature" msgstr "" -#: ../src/options.c:768 -msgid "Video capture time (in seconds)" +#: ../gview_v4l2core/v4l2_controls.c:105 +msgid "White Balance Component, Auto" msgstr "" -#: ../src/options.c:769 -msgid "Exits guvcview after closing video" +#: ../gview_v4l2core/v4l2_controls.c:106 +msgid "White Balance Blue Component" msgstr "" -#: ../src/options.c:770 -msgid "Number of initial frames to skip" +#: ../gview_v4l2core/v4l2_controls.c:107 +msgid "White Balance Red Component" msgstr "" -#: ../src/options.c:771 -msgid "Show FPS value (enable(1) | disable (0))" +#. libwebcam specific control strings +#: ../gview_v4l2core/v4l2_controls.c:110 +msgid "Focus" msgstr "" -#: ../src/options.c:772 -msgid "Load Profile at start" +#: ../gview_v4l2core/v4l2_controls.c:111 +msgid "Focus (Absolute)" msgstr "" -#: ../src/options.c:773 -msgid "List controls method (0:loop, 1:next_ctrl flag [def])" +#: ../gview_v4l2core/v4l2_xu_ctrls.c:63 ../guvcview/gui_gtk3_v4l2ctrls.c:239 +msgid "Off" msgstr "" -#: ../src/options.c:779 -msgid "- local options" +#: ../gview_v4l2core/v4l2_xu_ctrls.c:64 ../guvcview/gui_gtk3_v4l2ctrls.c:239 +msgid "On" msgstr "" -#. gdk_threads_enter(); -#: ../src/timers.c:119 -msgid "Cap. Image" +#: ../gview_v4l2core/v4l2_xu_ctrls.c:65 ../guvcview/gui_gtk3_v4l2ctrls.c:239 +msgid "Blinking" msgstr "" -#: ../src/timers.c:217 -msgid "Guvcview Warning:" +#: ../gview_v4l2core/v4l2_xu_ctrls.c:66 ../guvcview/gui_gtk3_v4l2ctrls.c:239 +msgid "Auto" msgstr "" -#: ../src/timers.c:217 -msgid "Not enough free space left on disk" +#: ../gview_v4l2core/v4l2_xu_ctrls.c:73 +msgid "Pan (relative)" msgstr "" -#: ../src/v4l2_controls.c:794 -msgid "Left" +#: ../gview_v4l2core/v4l2_xu_ctrls.c:86 +msgid "Tilt (relative)" msgstr "" -#: ../src/v4l2_controls.c:795 -msgid "Right" +#: ../gview_v4l2core/v4l2_xu_ctrls.c:99 +msgid "Pan Reset" msgstr "" -#: ../src/v4l2_controls.c:799 -msgid "Down" +#: ../gview_v4l2core/v4l2_xu_ctrls.c:112 +msgid "Tilt Reset" msgstr "" -#: ../src/v4l2_controls.c:800 -msgid "Up" +#: ../gview_v4l2core/v4l2_xu_ctrls.c:125 +msgid "Focus (absolute)" msgstr "" -#: ../src/v4l2_controls.c:845 -msgid "Off" +#: ../gview_v4l2core/v4l2_xu_ctrls.c:138 +msgid "LED1 Mode" msgstr "" -#: ../src/v4l2_controls.c:845 -msgid "On" +#: ../gview_v4l2core/v4l2_xu_ctrls.c:151 +msgid "LED1 Frequency" msgstr "" -#: ../src/v4l2_controls.c:845 -msgid "Blinking" +#: ../gview_v4l2core/v4l2_xu_ctrls.c:164 +msgid "Disable video processing" msgstr "" -#: ../src/v4l2_controls.c:845 -msgid "Auto" +#: ../gview_v4l2core/v4l2_xu_ctrls.c:177 +msgid "Raw bits per pixel" msgstr "" -#. turn it into a menu control -#: ../src/v4l2_controls.c:894 -msgid "8 bit" +#: ../gview_encoder/audio_codecs.c:63 +msgid "PCM - uncompressed (float 32 bit)" msgstr "" -#: ../src/v4l2_controls.c:894 -msgid "12 bit" +#: ../gview_encoder/audio_codecs.c:80 +msgid "MP2 (MPEG audio layer 2)" msgstr "" -#: ../src/v4l2_dyna_ctrls.c:96 -msgid "Pan (relative)" +#: ../gview_encoder/audio_codecs.c:97 +msgid "MP3 (MPEG audio layer 3)" msgstr "" -#: ../src/v4l2_dyna_ctrls.c:109 -msgid "Tilt (relative)" +#: ../gview_encoder/audio_codecs.c:118 +msgid "AC-3 (ATSC A/52A)" msgstr "" -#: ../src/v4l2_dyna_ctrls.c:122 -msgid "Pan Reset" +#: ../gview_encoder/audio_codecs.c:139 +msgid "AAC (Advanced Audio Coding)" msgstr "" -#: ../src/v4l2_dyna_ctrls.c:135 -msgid "Tilt Reset" +#: ../gview_encoder/audio_codecs.c:160 +msgid "Vorbis" msgstr "" -#: ../src/v4l2_dyna_ctrls.c:148 -msgid "Focus (absolute)" +#: ../gview_encoder/video_codecs.c:75 +msgid "Raw camera input" msgstr "" -#: ../src/v4l2_dyna_ctrls.c:161 -msgid "LED1 Mode" +#: ../gview_encoder/video_codecs.c:111 +msgid "MJPG - compressed" msgstr "" -#: ../src/v4l2_dyna_ctrls.c:174 -msgid "LED1 Frequency" +#: ../gview_encoder/video_codecs.c:147 +msgid "MPEG video 1" msgstr "" -#: ../src/v4l2_dyna_ctrls.c:187 -msgid "Disable video processing" +#: ../gview_encoder/video_codecs.c:183 +msgid "FLV1 - flash video 1" msgstr "" -#: ../src/v4l2_dyna_ctrls.c:200 -msgid "Raw bits per pixel" +#: ../gview_encoder/video_codecs.c:219 +msgid "WMV1 - win. med. video 7" msgstr "" -#. needed only for language files (not used) -#. V4L2 control strings -#: ../src/v4l2uvc.c:57 -msgid "User Controls" +#: ../gview_encoder/video_codecs.c:255 +msgid "MPG2 - MPG2 format" msgstr "" -#: ../src/v4l2uvc.c:58 -msgid "Brightness" +#: ../gview_encoder/video_codecs.c:291 +msgid "MS MP4 V3" msgstr "" -#: ../src/v4l2uvc.c:59 -msgid "Contrast" +#: ../gview_encoder/video_codecs.c:327 +msgid "MPEG4-ASP" msgstr "" -#: ../src/v4l2uvc.c:60 -msgid "Hue" +#: ../gview_encoder/video_codecs.c:363 +msgid "MPEG4-AVC (H264)" msgstr "" -#: ../src/v4l2uvc.c:61 -msgid "Saturation" +#: ../gview_encoder/video_codecs.c:403 +msgid "VP8 (VP8)" msgstr "" -#: ../src/v4l2uvc.c:62 -msgid "Sharpness" +#: ../gview_encoder/video_codecs.c:439 +msgid "Theora (ogg theora)" msgstr "" -#: ../src/v4l2uvc.c:63 -msgid "Gamma" +#: ../guvcview/gui_gtk3_audioctrls.c:95 +msgid "Audio API:" msgstr "" -#: ../src/v4l2uvc.c:64 -msgid "Backlight Compensation" +#: ../guvcview/gui_gtk3_audioctrls.c:106 +msgid "NO SOUND" msgstr "" -#: ../src/v4l2uvc.c:65 -msgid "Power Line Frequency" +#: ../guvcview/gui_gtk3_audioctrls.c:107 +msgid "PORTAUDIO" msgstr "" -#: ../src/v4l2uvc.c:66 -msgid "Hue, Automatic" +#: ../guvcview/gui_gtk3_audioctrls.c:110 +msgid "PULSEAUDIO" msgstr "" -#: ../src/v4l2uvc.c:67 -msgid "Focus, Auto" +#: ../guvcview/gui_gtk3_audioctrls.c:127 +msgid "Input Device:" msgstr "" -#: ../src/v4l2uvc.c:68 -msgid "Manual Mode" +#: ../guvcview/gui_gtk3_audioctrls.c:161 +msgid "Sample Rate:" msgstr "" -#: ../src/v4l2uvc.c:69 -msgid "Auto Mode" +#: ../guvcview/gui_gtk3_audioctrls.c:168 ../guvcview/gui_gtk3_audioctrls.c:214 +msgid "Dev. Default" msgstr "" -#: ../src/v4l2uvc.c:70 -msgid "Shutter Priority Mode" +#: ../guvcview/gui_gtk3_audioctrls.c:207 +msgid "Channels:" msgstr "" -#: ../src/v4l2uvc.c:71 -msgid "Aperture Priority Mode" +#: ../guvcview/gui_gtk3_audioctrls.c:215 +msgid "1 - mono" msgstr "" -#: ../src/v4l2uvc.c:72 -msgid "Black Level" +#: ../guvcview/gui_gtk3_audioctrls.c:216 +msgid "2 - stereo" msgstr "" -#: ../src/v4l2uvc.c:73 -msgid "White Balance, Automatic" +#: ../guvcview/gui_gtk3_audioctrls.c:235 +msgid "---- Audio Filters ----" msgstr "" -#: ../src/v4l2uvc.c:74 -msgid "Do White Balance" +#. Echo FX +#: ../guvcview/gui_gtk3_audioctrls.c:255 +msgid " Echo" msgstr "" -#: ../src/v4l2uvc.c:75 -msgid "Red Balance" +#. Reverb FX +#: ../guvcview/gui_gtk3_audioctrls.c:268 +msgid " Reverb" msgstr "" -#: ../src/v4l2uvc.c:76 -msgid "Blue Balance" +#. Fuzz FX +#: ../guvcview/gui_gtk3_audioctrls.c:281 +msgid " Fuzz" msgstr "" -#: ../src/v4l2uvc.c:77 -msgid "Exposure" +#. WahWah FX +#: ../guvcview/gui_gtk3_audioctrls.c:294 +msgid " WahWah" msgstr "" -#: ../src/v4l2uvc.c:78 -msgid "Gain, Automatic" +#. Ducky FX +#: ../guvcview/gui_gtk3_audioctrls.c:307 +msgid " Ducky" msgstr "" -#: ../src/v4l2uvc.c:79 -msgid "Gain" +#: ../guvcview/gui_gtk3.c:310 ../guvcview/gui_gtk3_callbacks.c:749 +msgid "Stop Video (V)" msgstr "" -#: ../src/v4l2uvc.c:80 -msgid "Horizontal Flip" +#. video button +#: ../guvcview/gui_gtk3.c:315 ../guvcview/gui_gtk3.c:600 +#: ../guvcview/gui_gtk3_callbacks.c:755 +msgid "Cap. Video (V)" msgstr "" -#: ../src/v4l2uvc.c:81 -msgid "Vertical Flip" +#: ../guvcview/gui_gtk3.c:376 ../guvcview/gui_gtk3.c:383 +msgid "Error" msgstr "" -#: ../src/v4l2uvc.c:82 -msgid "Horizontal Center" +#: ../guvcview/gui_gtk3.c:379 ../guvcview/gui_gtk3.c:386 +#: ../guvcview/gui_gtk3_callbacks.c:2097 +msgid "_Ok" msgstr "" -#: ../src/v4l2uvc.c:83 -msgid "Vertical Center" +#: ../guvcview/gui_gtk3.c:380 ../guvcview/gui_gtk3_callbacks.c:185 +#: ../guvcview/gui_gtk3_callbacks.c:199 ../guvcview/gui_gtk3_callbacks.c:522 +#: ../guvcview/gui_gtk3_callbacks.c:624 ../guvcview/gui_gtk3_callbacks.c:1755 +#: ../guvcview/gui_gtk3_callbacks.c:2098 +msgid "_Cancel" msgstr "" -#: ../src/v4l2uvc.c:84 -msgid "Chroma AGC" +#: ../guvcview/gui_gtk3.c:407 +msgid "" +"\n" +"You have more than one video device installed.\n" +"Do you want to try another one ?\n" msgstr "" -#: ../src/v4l2uvc.c:85 -msgid "Color Killer" +#. ---- Devices ---- +#: ../guvcview/gui_gtk3.c:414 ../guvcview/gui_gtk3_videoctrls.c:106 +msgid "Device:" msgstr "" -#: ../src/v4l2uvc.c:86 -msgid "Color Effects" +#: ../guvcview/gui_gtk3.c:516 +msgid "Guvcview Video Capture" msgstr "" -#. CAMERA CLASS control strings -#: ../src/v4l2uvc.c:89 -msgid "Camera Controls" +#: ../guvcview/gui_gtk3.c:525 +msgid "Guvcview" msgstr "" -#: ../src/v4l2uvc.c:90 -msgid "Auto Exposure" +#: ../guvcview/gui_gtk3.c:572 +msgid "Stop Cap. (I)" msgstr "" -#: ../src/v4l2uvc.c:91 -msgid "Exposure Time, Absolute" +#: ../guvcview/gui_gtk3.c:578 ../guvcview/gui_gtk3_callbacks.c:720 +#: ../guvcview/video_capture.c:250 +msgid "Cap. Image (I)" msgstr "" -#: ../src/v4l2uvc.c:92 -msgid "Exposure, Dynamic Framerate" +#. quit button +#. GtkWidget *quitButton = gtk_button_new_from_stock(GTK_STOCK_QUIT); +#: ../guvcview/gui_gtk3.c:621 +msgid "_Quit" msgstr "" -#: ../src/v4l2uvc.c:93 -msgid "Pan, Relative" +#: ../guvcview/gui_gtk3.c:667 +msgid "Image Controls" msgstr "" -#: ../src/v4l2uvc.c:94 -msgid "Tilt, Relative" +#: ../guvcview/gui_gtk3.c:703 +msgid "H264 Controls" msgstr "" -#: ../src/v4l2uvc.c:95 -msgid "Pan, Reset" +#: ../guvcview/gui_gtk3.c:742 +msgid "Video Controls" msgstr "" -#: ../src/v4l2uvc.c:96 -msgid "Tilt, Reset" +#: ../guvcview/gui_gtk3.c:777 +msgid "Audio Controls" msgstr "" -#: ../src/v4l2uvc.c:97 -msgid "Pan, Absolute" +#: ../guvcview/gui_gtk3_callbacks.c:182 ../guvcview/gui_gtk3_menu.c:72 +msgid "Save Profile" msgstr "" -#: ../src/v4l2uvc.c:99 -msgid "Focus, Absolute" +#: ../guvcview/gui_gtk3_callbacks.c:186 ../guvcview/gui_gtk3_callbacks.c:523 +#: ../guvcview/gui_gtk3_callbacks.c:625 +msgid "_Save" msgstr "" -#: ../src/v4l2uvc.c:100 -msgid "Focus, Relative" +#: ../guvcview/gui_gtk3_callbacks.c:196 ../guvcview/gui_gtk3_menu.c:71 +msgid "Load Profile" msgstr "" -#: ../src/v4l2uvc.c:101 -msgid "Focus, Automatic" +#: ../guvcview/gui_gtk3_callbacks.c:200 +msgid "_Open" msgstr "" -#: ../src/v4l2uvc.c:102 -msgid "Zoom, Absolute" +#: ../guvcview/gui_gtk3_callbacks.c:208 ../guvcview/gui_gtk3_callbacks.c:531 +#: ../guvcview/gui_gtk3_callbacks.c:634 +msgid "File Format:" msgstr "" -#: ../src/v4l2uvc.c:103 -msgid "Zoom, Relative" +#: ../guvcview/gui_gtk3_callbacks.c:220 +msgid "gpfl (*.gpfl)" msgstr "" -#: ../src/v4l2uvc.c:104 -msgid "Zoom, Continuous" +#: ../guvcview/gui_gtk3_callbacks.c:221 +msgid "any (*.*)" msgstr "" -#: ../src/v4l2uvc.c:105 -msgid "Privacy" +#: ../guvcview/gui_gtk3_callbacks.c:519 +msgid "Photo file name" msgstr "" -#. UVC specific control strings -#: ../src/v4l2uvc.c:108 -msgid "Exposure, Auto" +#: ../guvcview/gui_gtk3_callbacks.c:543 +msgid "Raw (*.raw)" msgstr "" -#: ../src/v4l2uvc.c:109 -msgid "Exposure, Auto Priority" +#: ../guvcview/gui_gtk3_callbacks.c:544 +msgid "Jpeg (*.jpg)" msgstr "" -#: ../src/v4l2uvc.c:110 -msgid "Exposure (Absolute)" +#: ../guvcview/gui_gtk3_callbacks.c:545 +msgid "Png (*.png)" msgstr "" -#: ../src/v4l2uvc.c:111 -msgid "White Balance Temperature, Auto" +#: ../guvcview/gui_gtk3_callbacks.c:546 +msgid "Bmp (*.bmp)" msgstr "" -#: ../src/v4l2uvc.c:112 -msgid "White Balance Temperature" +#: ../guvcview/gui_gtk3_callbacks.c:621 +msgid "Video file name" msgstr "" -#: ../src/v4l2uvc.c:113 -msgid "White Balance Component, Auto" +#: ../guvcview/gui_gtk3_callbacks.c:646 +msgid "Matroska (*.mkv)" msgstr "" -#: ../src/v4l2uvc.c:114 -msgid "White Balance Blue Component" +#: ../guvcview/gui_gtk3_callbacks.c:647 +msgid "WebM (*.webm)" msgstr "" -#: ../src/v4l2uvc.c:115 -msgid "White Balance Red Component" +#: ../guvcview/gui_gtk3_callbacks.c:648 +msgid "Avi (*.avi)" msgstr "" -#. libwebcam specific control strings -#: ../src/v4l2uvc.c:118 -msgid "Focus" +#: ../guvcview/gui_gtk3_callbacks.c:1158 +msgid "start new" msgstr "" -#: ../src/v4l2uvc.c:119 -msgid "Focus (Absolute)" +#: ../guvcview/gui_gtk3_callbacks.c:1161 +msgid "restart" msgstr "" -#: ../src/vcodecs.c:63 -msgid "MJPG - compressed" +#: ../guvcview/gui_gtk3_callbacks.c:1163 +msgid "new" msgstr "" -#: ../src/vcodecs.c:99 -msgid "YUY2 - uncomp YUV" +#: ../guvcview/gui_gtk3_callbacks.c:1165 +msgid "cancel" msgstr "" -#: ../src/vcodecs.c:135 -msgid "RGB - uncomp BMP" +#: ../guvcview/gui_gtk3_callbacks.c:1170 +msgid "" +"launch new process or restart?.\n" +"\n" msgstr "" -#: ../src/vcodecs.c:171 -msgid "MPEG video 1" +#: ../guvcview/gui_gtk3_callbacks.c:1751 +msgid "video codec values" msgstr "" -#: ../src/vcodecs.c:207 -msgid "FLV1 - flash video 1" +#: ../guvcview/gui_gtk3_callbacks.c:1754 +msgid "_OK" msgstr "" -#: ../src/vcodecs.c:243 -msgid "WMV1 - win. med. video 7" +#: ../guvcview/gui_gtk3_callbacks.c:1760 +msgid "" +" encoder fps: \n" +" (0 - use fps combobox value)" msgstr "" -#: ../src/vcodecs.c:279 -msgid "MPG2 - MPG2 format" +#: ../guvcview/gui_gtk3_callbacks.c:1773 +msgid " monotonic pts" msgstr "" -#: ../src/vcodecs.c:315 -msgid "MS MP4 V3" +#. bit rate +#: ../guvcview/gui_gtk3_callbacks.c:1780 ../guvcview/gui_gtk3_callbacks.c:2105 +msgid "bit rate: " msgstr "" -#: ../src/vcodecs.c:351 -msgid "MPEG4-ASP" +#: ../guvcview/gui_gtk3_callbacks.c:1793 +msgid "qmax: " msgstr "" -#: ../src/vcodecs.c:387 -msgid "MPEG4-AVC (H264)" +#: ../guvcview/gui_gtk3_callbacks.c:1806 +msgid "qmin: " msgstr "" -#: ../src/vcodecs.c:427 -msgid "VP8 (VP8)" +#: ../guvcview/gui_gtk3_callbacks.c:1819 +msgid "max. qdiff: " msgstr "" -#: ../src/vcodecs.c:463 -msgid "Theora (ogg theora)" +#: ../guvcview/gui_gtk3_callbacks.c:1832 +msgid "dia size: " msgstr "" -#: ../src/video_format.c:43 -msgid "AVI - avi format" +#: ../guvcview/gui_gtk3_callbacks.c:1845 +msgid "pre dia size: " msgstr "" -#: ../src/video_format.c:52 -msgid "MKV - Matroska format" +#: ../guvcview/gui_gtk3_callbacks.c:1858 +msgid "pre me: " msgstr "" -#: ../src/video_format.c:61 -msgid "WEBM - format" +#: ../guvcview/gui_gtk3_callbacks.c:1871 +msgid "pre cmp: " msgstr "" -#: ../src/video_tab.c:216 -msgid "Frame Rate:" +#: ../guvcview/gui_gtk3_callbacks.c:1884 +msgid "cmp: " msgstr "" -#: ../src/video_tab.c:223 -msgid " Show" +#: ../guvcview/gui_gtk3_callbacks.c:1897 +msgid "sub cmp: " msgstr "" -#: ../src/video_tab.c:245 -msgid "Resolution:" +#: ../guvcview/gui_gtk3_callbacks.c:1910 +msgid "last predictor count: " msgstr "" -#: ../src/video_tab.c:271 -msgid "Camera Output:" +#: ../guvcview/gui_gtk3_callbacks.c:1923 +msgid "gop size: " msgstr "" -#: ../src/video_tab.c:293 -msgid "Apply" +#: ../guvcview/gui_gtk3_callbacks.c:1936 +msgid "qcompress: " msgstr "" -#: ../src/video_tab.c:300 -msgid "Quality:" +#: ../guvcview/gui_gtk3_callbacks.c:1949 +msgid "qblur: " msgstr "" -#: ../src/video_tab.c:310 -msgid "---- Video Filters ----" +#: ../guvcview/gui_gtk3_callbacks.c:1962 +msgid "subq: " msgstr "" -#. Mirror -#: ../src/video_tab.c:329 -msgid " Mirror" +#: ../guvcview/gui_gtk3_callbacks.c:1975 +msgid "framerefs: " msgstr "" -#. Upturn -#: ../src/video_tab.c:340 -msgid " Invert" +#: ../guvcview/gui_gtk3_callbacks.c:1988 +msgid "me method: " msgstr "" -#. Negate -#: ../src/video_tab.c:351 -msgid " Negative" +#: ../guvcview/gui_gtk3_callbacks.c:2001 +msgid "mb decision: " msgstr "" -#. Mono -#: ../src/video_tab.c:362 -msgid " Mono" +#: ../guvcview/gui_gtk3_callbacks.c:2014 +msgid "max B frames: " msgstr "" -#. Pieces -#: ../src/video_tab.c:374 -msgid " Pieces" +#: ../guvcview/gui_gtk3_callbacks.c:2027 +msgid "num threads: " msgstr "" -#. Particles -#: ../src/video_tab.c:386 -msgid " Particles" +#: ../guvcview/gui_gtk3_callbacks.c:2094 +msgid "audio codec values" msgstr "" -#: ../src/uvc_h264.c:596 -msgid "H264 Controls" +#. sample format +#: ../guvcview/gui_gtk3_callbacks.c:2119 +msgid "sample format: " msgstr "" -#: ../src/uvc_h264.c:615 +#: ../guvcview/gui_gtk3_h264ctrls.c:622 msgid "Rate Control Mode:" msgstr "" -#: ../src/uvc_h264.c:626 +#: ../guvcview/gui_gtk3_h264ctrls.c:633 msgid "CBR" msgstr "" -#: ../src/uvc_h264.c:629 +#: ../guvcview/gui_gtk3_h264ctrls.c:636 msgid "VBR" msgstr "" -#: ../src/uvc_h264.c:633 +#: ../guvcview/gui_gtk3_h264ctrls.c:640 msgid "Constant QP" msgstr "" -#: ../src/uvc_h264.c:651 +#: ../guvcview/gui_gtk3_h264ctrls.c:658 msgid "Rate Control Mode flags:" msgstr "" -#: ../src/uvc_h264.c:676 +#: ../guvcview/gui_gtk3_h264ctrls.c:683 msgid "Temporal Scale Mode:" msgstr "" -#: ../src/uvc_h264.c:704 +#: ../guvcview/gui_gtk3_h264ctrls.c:711 msgid "Spatial Scale Mode:" msgstr "" -#: ../src/uvc_h264.c:737 +#: ../guvcview/gui_gtk3_h264ctrls.c:741 msgid "Frame Interval (100ns units):" msgstr "" -#: ../src/uvc_h264.c:772 +#: ../guvcview/gui_gtk3_h264ctrls.c:778 msgid "Bit Rate:" msgstr "" -#: ../src/uvc_h264.c:795 +#: ../guvcview/gui_gtk3_h264ctrls.c:801 msgid "Hints:" msgstr "" -#: ../src/uvc_h264.c:800 +#: ../guvcview/gui_gtk3_h264ctrls.c:806 msgid "Resolution" msgstr "" -#: ../src/uvc_h264.c:804 +#: ../guvcview/gui_gtk3_h264ctrls.c:810 msgid "Profile" msgstr "" -#: ../src/uvc_h264.c:808 +#: ../guvcview/gui_gtk3_h264ctrls.c:814 msgid "Rate Control" msgstr "" -#: ../src/uvc_h264.c:812 +#: ../guvcview/gui_gtk3_h264ctrls.c:818 msgid "Usage Type" msgstr "" -#: ../src/uvc_h264.c:816 +#: ../guvcview/gui_gtk3_h264ctrls.c:822 msgid "Slice Mode" msgstr "" -#: ../src/uvc_h264.c:820 +#: ../guvcview/gui_gtk3_h264ctrls.c:826 msgid "Slice Unit" msgstr "" -#: ../src/uvc_h264.c:824 +#: ../guvcview/gui_gtk3_h264ctrls.c:830 msgid "MVC View" msgstr "" -#: ../src/uvc_h264.c:828 +#: ../guvcview/gui_gtk3_h264ctrls.c:834 msgid "Temporal Scale" msgstr "" -#: ../src/uvc_h264.c:832 +#: ../guvcview/gui_gtk3_h264ctrls.c:838 msgid "SNR Scale" msgstr "" -#: ../src/uvc_h264.c:836 +#: ../guvcview/gui_gtk3_h264ctrls.c:842 msgid "Spatial Scale" msgstr "" -#: ../src/uvc_h264.c:840 +#: ../guvcview/gui_gtk3_h264ctrls.c:846 msgid "Spatial Layer Ratio" msgstr "" -#: ../src/uvc_h264.c:844 +#: ../guvcview/gui_gtk3_h264ctrls.c:850 msgid "Frame Interval" msgstr "" -#: ../src/uvc_h264.c:848 +#: ../guvcview/gui_gtk3_h264ctrls.c:854 msgid "Leaky Bucket Size" msgstr "" -#: ../src/uvc_h264.c:852 +#: ../guvcview/gui_gtk3_h264ctrls.c:858 msgid "Bit Rate" msgstr "" -#: ../src/uvc_h264.c:856 ../src/uvc_h264.c:1250 +#: ../guvcview/gui_gtk3_h264ctrls.c:862 ../guvcview/gui_gtk3_h264ctrls.c:1220 msgid "CABAC" msgstr "" -#: ../src/uvc_h264.c:860 +#: ../guvcview/gui_gtk3_h264ctrls.c:866 msgid "(I) Frame Period" msgstr "" -#: ../src/uvc_h264.c:907 +#: ../guvcview/gui_gtk3_h264ctrls.c:878 msgid "Slice Mode:" msgstr "" -#: ../src/uvc_h264.c:914 +#: ../guvcview/gui_gtk3_h264ctrls.c:885 msgid "no multiple slices" msgstr "" -#: ../src/uvc_h264.c:916 +#: ../guvcview/gui_gtk3_h264ctrls.c:887 msgid "bits/slice" msgstr "" -#: ../src/uvc_h264.c:918 +#: ../guvcview/gui_gtk3_h264ctrls.c:889 msgid "Mbits/slice" msgstr "" -#: ../src/uvc_h264.c:920 +#: ../guvcview/gui_gtk3_h264ctrls.c:891 msgid "slices/frame" msgstr "" -#: ../src/uvc_h264.c:929 +#: ../guvcview/gui_gtk3_h264ctrls.c:900 msgid "Slice Units:" msgstr "" -#: ../src/uvc_h264.c:950 +#: ../guvcview/gui_gtk3_h264ctrls.c:921 msgid "Profile:" msgstr "" -#: ../src/uvc_h264.c:957 +#: ../guvcview/gui_gtk3_h264ctrls.c:928 msgid "Baseline Profile" msgstr "" -#: ../src/uvc_h264.c:959 +#: ../guvcview/gui_gtk3_h264ctrls.c:930 msgid "Main Profile" msgstr "" -#: ../src/uvc_h264.c:961 +#: ../guvcview/gui_gtk3_h264ctrls.c:932 msgid "High Profile" msgstr "" -#: ../src/uvc_h264.c:963 +#: ../guvcview/gui_gtk3_h264ctrls.c:934 msgid "Scalable Baseline Profile" msgstr "" -#: ../src/uvc_h264.c:965 +#: ../guvcview/gui_gtk3_h264ctrls.c:936 msgid "Scalable High Profile" msgstr "" -#: ../src/uvc_h264.c:967 +#: ../guvcview/gui_gtk3_h264ctrls.c:938 msgid "Multiview High Profile" msgstr "" -#: ../src/uvc_h264.c:969 +#: ../guvcview/gui_gtk3_h264ctrls.c:940 msgid "Stereo High Profile" msgstr "" -#: ../src/uvc_h264.c:1008 +#: ../guvcview/gui_gtk3_h264ctrls.c:979 msgid "Profile flags:" msgstr "" -#: ../src/uvc_h264.c:1033 +#: ../guvcview/gui_gtk3_h264ctrls.c:1004 msgid "(I) Frame Period (ms):" msgstr "" -#: ../src/uvc_h264.c:1054 +#: ../guvcview/gui_gtk3_h264ctrls.c:1025 msgid "Estimated Video Delay (ms):" msgstr "" -#: ../src/uvc_h264.c:1075 +#: ../guvcview/gui_gtk3_h264ctrls.c:1046 msgid "Estimated Max Config Delay (ms):" msgstr "" -#: ../src/uvc_h264.c:1096 +#: ../guvcview/gui_gtk3_h264ctrls.c:1067 msgid "Usage Type:" msgstr "" -#: ../src/uvc_h264.c:1103 +#: ../guvcview/gui_gtk3_h264ctrls.c:1074 msgid "Real-time" msgstr "" -#: ../src/uvc_h264.c:1105 +#: ../guvcview/gui_gtk3_h264ctrls.c:1076 msgid "Broadcast" msgstr "" -#: ../src/uvc_h264.c:1107 +#: ../guvcview/gui_gtk3_h264ctrls.c:1078 msgid "Storage" msgstr "" -#: ../src/uvc_h264.c:1109 +#: ../guvcview/gui_gtk3_h264ctrls.c:1080 msgid "(0) Non-scalable single layer AVC" msgstr "" -#: ../src/uvc_h264.c:1111 +#: ../guvcview/gui_gtk3_h264ctrls.c:1082 msgid "(1) SVC temporal scalability with hierarchical P" msgstr "" -#: ../src/uvc_h264.c:1113 +#: ../guvcview/gui_gtk3_h264ctrls.c:1084 msgid "(2q) SVC temporal scalability + Quality/SNR scalability" msgstr "" -#: ../src/uvc_h264.c:1115 +#: ../guvcview/gui_gtk3_h264ctrls.c:1086 msgid "(2s) SVC temporal scalability + spatial scalability" msgstr "" -#: ../src/uvc_h264.c:1117 +#: ../guvcview/gui_gtk3_h264ctrls.c:1088 msgid "(3) Full SVC scalability" msgstr "" -#: ../src/uvc_h264.c:1131 +#: ../guvcview/gui_gtk3_h264ctrls.c:1102 msgid "SNR Control Mode:" msgstr "" -#: ../src/uvc_h264.c:1138 +#: ../guvcview/gui_gtk3_h264ctrls.c:1109 msgid "No SNR Enhancement Layer" msgstr "" -#: ../src/uvc_h264.c:1140 +#: ../guvcview/gui_gtk3_h264ctrls.c:1111 msgid "CGS NonRewrite (2 Layer)" msgstr "" -#: ../src/uvc_h264.c:1142 +#: ../guvcview/gui_gtk3_h264ctrls.c:1113 msgid "CGS NonRewrite (3 Layer)" msgstr "" -#: ../src/uvc_h264.c:1144 +#: ../guvcview/gui_gtk3_h264ctrls.c:1115 msgid "CGS Rewrite (2 Layer)" msgstr "" -#: ../src/uvc_h264.c:1146 +#: ../guvcview/gui_gtk3_h264ctrls.c:1117 msgid "CGS Rewrite (3 Layer)" msgstr "" -#: ../src/uvc_h264.c:1148 +#: ../guvcview/gui_gtk3_h264ctrls.c:1119 msgid "MGS (2 Layer)" msgstr "" -#: ../src/uvc_h264.c:1173 +#: ../guvcview/gui_gtk3_h264ctrls.c:1144 msgid "Stream Mux Enable" msgstr "" -#: ../src/uvc_h264.c:1180 +#: ../guvcview/gui_gtk3_h264ctrls.c:1151 msgid "Embed H.264 aux stream" msgstr "" -#: ../src/uvc_h264.c:1182 +#: ../guvcview/gui_gtk3_h264ctrls.c:1153 msgid "Embed YUY2 aux stream" msgstr "" -#: ../src/uvc_h264.c:1184 +#: ../guvcview/gui_gtk3_h264ctrls.c:1155 msgid "Embed NV12 aux stream" msgstr "" -#: ../src/uvc_h264.c:1204 +#: ../guvcview/gui_gtk3_h264ctrls.c:1175 msgid "MJPG payload container" msgstr "" -#: ../src/uvc_h264.c:1219 +#: ../guvcview/gui_gtk3_h264ctrls.c:1189 msgid "Stream Format:" msgstr "" -#: ../src/uvc_h264.c:1227 +#: ../guvcview/gui_gtk3_h264ctrls.c:1197 msgid "Byte stream format (H.264 Annex-B)" msgstr "" -#: ../src/uvc_h264.c:1229 +#: ../guvcview/gui_gtk3_h264ctrls.c:1199 msgid "NAL stream format" msgstr "" -#: ../src/uvc_h264.c:1240 +#: ../guvcview/gui_gtk3_h264ctrls.c:1210 msgid "Entropy CABAC:" msgstr "" -#: ../src/uvc_h264.c:1248 +#: ../guvcview/gui_gtk3_h264ctrls.c:1218 msgid "CAVLC" msgstr "" -#: ../src/uvc_h264.c:1261 +#: ../guvcview/gui_gtk3_h264ctrls.c:1231 msgid "Picture timing SEI" msgstr "" -#: ../src/uvc_h264.c:1268 +#: ../guvcview/gui_gtk3_h264ctrls.c:1238 msgid "B Frames:" msgstr "" -#: ../src/uvc_h264.c:1293 +#: ../guvcview/gui_gtk3_h264ctrls.c:1263 msgid "Preview Flipped" msgstr "" -#: ../src/uvc_h264.c:1300 +#: ../guvcview/gui_gtk3_h264ctrls.c:1270 msgid "Additional MVC Views:" msgstr "" -#: ../src/uvc_h264.c:1325 +#: ../guvcview/gui_gtk3_h264ctrls.c:1295 msgid "Simulcast stream index:" msgstr "" -#: ../src/uvc_h264.c:1350 +#: ../guvcview/gui_gtk3_h264ctrls.c:1320 msgid "Spatial Layer Ratio:" msgstr "" -#: ../src/uvc_h264.c:1379 +#: ../guvcview/gui_gtk3_h264ctrls.c:1349 msgid "Leaky Bucket Size (ms):" msgstr "" #. encoder reset -#: ../src/uvc_h264.c:1406 +#: ../guvcview/gui_gtk3_h264ctrls.c:1376 msgid "Encoder Reset" msgstr "" -#. -#. h264_controls->probe_button = gtk_button_new_with_label(_("PROBE")); -#. g_signal_connect (GTK_BUTTON(h264_controls->probe_button), "clicked", +#. +#. GtkWidget *probe_button = gtk_button_new_with_label(_("PROBE")); +#. g_signal_connect (GTK_BUTTON(probe_button), "clicked", #. G_CALLBACK (h264_probe_button_clicked), all_data); -#. -#. gtk_grid_attach (GTK_GRID(table), h264_controls->probe_button, 0, line, 1 ,1); -#. gtk_widget_show(h264_controls->probe_button); -#. -#: ../src/uvc_h264.c:1421 +#. +#. gtk_grid_attach (GTK_GRID(h264_controls_grid), probe_button, 0, line, 1 ,1); +#. gtk_widget_show(probe_button); +#. +#: ../guvcview/gui_gtk3_h264ctrls.c:1391 msgid "COMMIT" msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:70 +msgid "Settings" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:73 +msgid "Hardware Defaults" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:81 +msgid "Camera Button" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:86 +msgid "Capture Image" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:91 +msgid "Capture Video" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:134 +msgid "Photo" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:135 ../guvcview/gui_gtk3_menu.c:159 +msgid "File" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:136 ../guvcview/gui_gtk3_menu.c:160 +msgid "Increment Filename" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:158 +msgid "Video" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:175 +msgid "Video Codec" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:202 +msgid "Video Codec Properties" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:208 +msgid "Audio Codec" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:235 +msgid "Audio Codec Properties" +msgstr "" + +#: ../guvcview/gui_gtk3_v4l2ctrls.c:174 +msgid "Left" +msgstr "" + +#: ../guvcview/gui_gtk3_v4l2ctrls.c:175 +msgid "Right" +msgstr "" + +#: ../guvcview/gui_gtk3_v4l2ctrls.c:179 +msgid "Down" +msgstr "" + +#: ../guvcview/gui_gtk3_v4l2ctrls.c:180 +msgid "Up" +msgstr "" + +#. turn it into a menu control +#: ../guvcview/gui_gtk3_v4l2ctrls.c:296 +msgid "8 bit" +msgstr "" + +#: ../guvcview/gui_gtk3_v4l2ctrls.c:296 +msgid "12 bit" +msgstr "" + +#. add a virtual control for software autofocus +#: ../guvcview/gui_gtk3_v4l2ctrls.c:348 +msgid "Auto Focus (continuous)" +msgstr "" + +#: ../guvcview/gui_gtk3_v4l2ctrls.c:349 +msgid "set Focus" +msgstr "" + +#. control_widgets_list[n].widget2 = gtk_button_new_from_stock(GTK_STOCK_APPLY); +#. control_widgets_list[n].widget2= gtk_button_new_from_stock(GTK_STOCK_APPLY); +#. control_widgets_list[n].widget2 = gtk_button_new_from_stock(GTK_STOCK_APPLY); +#: ../guvcview/gui_gtk3_v4l2ctrls.c:433 ../guvcview/gui_gtk3_v4l2ctrls.c:456 +#: ../guvcview/gui_gtk3_v4l2ctrls.c:478 +msgid "_Apply" +msgstr "" + +#: ../guvcview/gui_gtk3_videoctrls.c:144 +msgid "Frame Rate:" +msgstr "" + +#: ../guvcview/gui_gtk3_videoctrls.c:204 +msgid "Resolution:" +msgstr "" + +#: ../guvcview/gui_gtk3_videoctrls.c:254 +msgid "Camera Output:" +msgstr "" + +#: ../guvcview/gui_gtk3_videoctrls.c:287 +msgid "---- Video Filters ----" +msgstr "" + +#. Mirror FX +#: ../guvcview/gui_gtk3_videoctrls.c:307 +msgid " Mirror" +msgstr "" + +#. Upturn FX +#: ../guvcview/gui_gtk3_videoctrls.c:319 +msgid " Invert" +msgstr "" + +#. Negate FX +#: ../guvcview/gui_gtk3_videoctrls.c:331 +msgid " Negative" +msgstr "" + +#. Mono FX +#: ../guvcview/gui_gtk3_videoctrls.c:343 +msgid " Mono" +msgstr "" + +#. Pieces FX +#: ../guvcview/gui_gtk3_videoctrls.c:356 +msgid " Pieces" +msgstr "" + +#. Particles +#: ../guvcview/gui_gtk3_videoctrls.c:369 +msgid " Particles" +msgstr "" + +#: ../guvcview/options.c:51 +msgid "Print help" +msgstr "" + +#: ../guvcview/options.c:58 +msgid "Print version" +msgstr "" + +#: ../guvcview/options.c:64 +msgid "LEVEL" +msgstr "" + +#: ../guvcview/options.c:65 +msgid "Set Verbosity level (def: 0)" +msgstr "" + +#: ../guvcview/options.c:71 +msgid "DEVICE" +msgstr "" + +#: ../guvcview/options.c:72 +msgid "Set device name (def: /dev/video0)" +msgstr "" + +#: ../guvcview/options.c:78 +msgid "METHOD" +msgstr "" + +#: ../guvcview/options.c:79 +msgid "Set capture method [read | mmap (def)]" +msgstr "" + +#: ../guvcview/options.c:85 +msgid "WIDTHxHEIGHT" +msgstr "" + +#: ../guvcview/options.c:86 +msgid "Request resolution (e.g 640x480)" +msgstr "" + +#: ../guvcview/options.c:92 +msgid "FOURCC" +msgstr "" + +#: ../guvcview/options.c:93 +msgid "Request format (e.g MJPG)" +msgstr "" + +#: ../guvcview/options.c:99 +msgid "RENDER_API" +msgstr "" + +#: ../guvcview/options.c:100 +msgid "Select render API (e.g none; sdl)" +msgstr "" + +#: ../guvcview/options.c:106 +msgid "AUDIO_API" +msgstr "" + +#: ../guvcview/options.c:107 +msgid "Select audio API (e.g none; port; pulse)" +msgstr "" + +#: ../guvcview/options.c:113 +msgid "AUDIO_DEVICE" +msgstr "" + +#: ../guvcview/options.c:114 +msgid "Select audio device index for selected api (0..N)" +msgstr "" + +#: ../guvcview/options.c:120 +msgid "GUI_API" +msgstr "" + +#: ../guvcview/options.c:121 +msgid "Select GUI API (e.g none; gtk3)" +msgstr "" + +#: ../guvcview/options.c:127 ../guvcview/options.c:134 +msgid "CODEC" +msgstr "" + +#: ../guvcview/options.c:128 +msgid "Audio codec [pcm mp2 mp3 aac ac3 vorb]" +msgstr "" + +#: ../guvcview/options.c:135 +msgid "Video codec [raw mjpg mpeg flv1 wmv1 mpg2 mp43 dx50 h264 vp80 theo]" +msgstr "" + +#: ../guvcview/options.c:141 ../guvcview/options.c:148 +#: ../guvcview/options.c:155 +msgid "FILENAME" +msgstr "" + +#: ../guvcview/options.c:142 +msgid "load control profile" +msgstr "" + +#: ../guvcview/options.c:149 +msgid "filename for captured video)" +msgstr "" + +#: ../guvcview/options.c:156 +msgid "filename for captured image)" +msgstr "" + +#: ../guvcview/options.c:162 ../guvcview/options.c:169 +msgid "TIME_IN_SEC" +msgstr "" + +#: ../guvcview/options.c:163 +msgid "time (double) in sec. for video capture)" +msgstr "" + +#: ../guvcview/options.c:170 +msgid "time (double) in sec. between captured photos)" +msgstr "" + +#: ../guvcview/options.c:176 +msgid "TOTAL" +msgstr "" + +#: ../guvcview/options.c:177 +msgid "total number of captured photos)" +msgstr "" + +#: ../guvcview/options.c:184 +msgid "Start in control panel mode" +msgstr "" + +#: ../guvcview/options.c:307 +#, c-format +msgid "" +"Guvcview version %s\n" +"\n" +msgstr "" + +#: ../guvcview/options.c:308 +#, c-format +msgid "" +"Usage:\n" +" guvcview [OPTIONS]\n" +"\n" +msgstr "" + +#: ../guvcview/options.c:309 +#, c-format +msgid "OPTIONS:\n" +msgstr "" + +#: ../guvcview/video_capture.c:819 +#, c-format +msgid "saving video to %s" +msgstr "" + +#. if(debug_level > 1) +#. printf("GUVCVIEW: saving image to %s\n", img_filename); +#: ../guvcview/video_capture.c:1069 +#, c-format +msgid "saving image to %s" +msgstr "" diff -Nru guvcview-1.7.3/po/bs.po guvcview-2.0.1+ubuntu1~ppa1/po/bs.po --- guvcview-1.7.3/po/bs.po 2014-03-24 22:56:28.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/po/bs.po 2014-10-05 10:41:44.000000000 +0000 @@ -7,16 +7,16 @@ msgstr "" "Project-Id-Version: guvcview\n" "Report-Msgid-Bugs-To: pj.assis@gmail.com\n" -"POT-Creation-Date: 2013-11-14 22:15+0000\n" +"POT-Creation-Date: 2014-08-17 22:49+0100\n" "PO-Revision-Date: 2011-06-27 19:11+0000\n" "Last-Translator: Stefan Ivanović \n" "Language-Team: Bosnian \n" +"Language: bs\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-12-08 10:36+0000\n" "X-Generator: Launchpad (build 16869)\n" -"Language: bs\n" #: ../data/guvcview.desktop.in.in.h:1 msgid "guvcview" @@ -30,1364 +30,1388 @@ msgid "A video viewer and capturer for the linux uvc driver" msgstr "" -#: ../src/acodecs.c:59 -msgid "PCM - uncompressed (16 bit)" -msgstr "" - -#: ../src/acodecs.c:76 -msgid "MPEG2 - (lavc)" -msgstr "" - -#: ../src/acodecs.c:93 -msgid "MP3 - (lavc)" -msgstr "" - -#: ../src/acodecs.c:110 -msgid "Dolby AC3 - (lavc)" -msgstr "" - -#: ../src/acodecs.c:127 -msgid "ACC Low - (faac)" -msgstr "" - -#: ../src/acodecs.c:144 -msgid "Vorbis" -msgstr "" - -#: ../src/audio_tab.c:87 -msgid "Audio" -msgstr "" - -#: ../src/audio_tab.c:105 -msgid " Sound" -msgstr "" - -#. VU meter on the image (OSD) -#: ../src/audio_tab.c:116 -msgid " Show VU meter" -msgstr "" - -#: ../src/audio_tab.c:128 -msgid "Audio API:" -msgstr "" - -#: ../src/audio_tab.c:139 -msgid "PORTAUDIO" -msgstr "" - -#: ../src/audio_tab.c:140 -msgid "PULSEAUDIO" -msgstr "" - -#: ../src/audio_tab.c:156 ../src/audio_tab.c:179 -msgid "Input Device:" -msgstr "" - -#: ../src/audio_tab.c:189 ../src/audio_tab.c:221 -msgid "Dev. Default" -msgstr "" - -#: ../src/audio_tab.c:211 -msgid "Sample Rate:" -msgstr "" - -#: ../src/audio_tab.c:222 -msgid "1 - mono" -msgstr "" - -#: ../src/audio_tab.c:223 -msgid "2 - stereo" -msgstr "" - -#: ../src/audio_tab.c:258 -msgid "Channels:" -msgstr "" - -#: ../src/audio_tab.c:309 -msgid "---- Audio Effects ----" -msgstr "" - -#. Echo -#: ../src/audio_tab.c:328 -msgid " Echo" -msgstr "" - -#. FUZZ -#: ../src/audio_tab.c:339 -msgid " Fuzz" -msgstr "" - -#. Reverb -#: ../src/audio_tab.c:351 -msgid " Reverb" -msgstr "" - -#. WahWah -#: ../src/audio_tab.c:363 -msgid " WahWah" +#: ../data/guvcview.appdata.xml.in.in.h:1 +msgid "capture video from v4l2 devices" msgstr "" -#. Ducky -#: ../src/audio_tab.c:375 -msgid " Ducky" -msgstr "" - -#: ../src/callbacks.c:109 -msgid "Error" -msgstr "" - -#: ../src/callbacks.c:133 +#: ../data/guvcview.appdata.xml.in.in.h:2 msgid "" -"\n" -"You have more than one video device installed.\n" -"Do you want to try another one ?\n" -msgstr "" - -#. Devices -#: ../src/callbacks.c:140 ../src/video_tab.c:111 -msgid "Device:" -msgstr "" - -#: ../src/callbacks.c:272 -msgid "Save File" -msgstr "" - -#: ../src/callbacks.c:284 -msgid "File Format:" -msgstr "" - -#: ../src/callbacks.c:455 -msgid "codec values" -msgstr "" - -#: ../src/callbacks.c:466 -msgid "" -" encoder fps: \n" -" (0 - use fps combobox value)" -msgstr "" - -#: ../src/callbacks.c:479 -msgid " monotonic pts" -msgstr "" - -#. bit rate -#: ../src/callbacks.c:486 ../src/callbacks.c:809 -msgid "bit rate: " -msgstr "" - -#: ../src/callbacks.c:499 -msgid "qmax: " -msgstr "" - -#: ../src/callbacks.c:512 -msgid "qmin: " -msgstr "" - -#: ../src/callbacks.c:525 -msgid "max. qdiff: " -msgstr "" - -#: ../src/callbacks.c:538 -msgid "dia size: " -msgstr "" - -#: ../src/callbacks.c:551 -msgid "pre dia size: " +"Video capture tool for video4linux2 compliant cameras, with special emphasis " +"on the linux uvc driver. It provides Image (jpg, png, bmp) and Video (mjpeg, " +"flv1, wmv1, mpg2, mpg4,...) capture with sound in several " +"formats( currently: avi and matroska). I also supports a control panel " +"option (--control_only) that is compatible with any other v4l2 app." msgstr "" -#: ../src/callbacks.c:564 -msgid "pre me: " -msgstr "" - -#: ../src/callbacks.c:577 -msgid "pre cmp: " -msgstr "" - -#: ../src/callbacks.c:590 -msgid "cmp: " -msgstr "" - -#: ../src/callbacks.c:603 -msgid "sub cmp: " -msgstr "" - -#: ../src/callbacks.c:616 -msgid "last predictor count: " -msgstr "" - -#: ../src/callbacks.c:629 -msgid "gop size: " -msgstr "" - -#: ../src/callbacks.c:642 -msgid "qcompress: " -msgstr "" - -#: ../src/callbacks.c:655 -msgid "qblur: " -msgstr "" - -#: ../src/callbacks.c:668 -msgid "subq: " -msgstr "" - -#: ../src/callbacks.c:681 -msgid "framerefs: " -msgstr "" - -#: ../src/callbacks.c:694 -msgid "me method: " -msgstr "" - -#: ../src/callbacks.c:707 -msgid "mb decision: " -msgstr "" - -#: ../src/callbacks.c:720 -msgid "max B frames: " -msgstr "" - -#: ../src/callbacks.c:733 -msgid "num threads: " -msgstr "" - -#: ../src/callbacks.c:796 -msgid "audio codec values" -msgstr "" - -#. sample format -#: ../src/callbacks.c:823 -msgid "sample format: " -msgstr "" - -#: ../src/callbacks.c:1311 -msgid "start new" -msgstr "" - -#: ../src/callbacks.c:1314 -msgid "restart" -msgstr "" - -#: ../src/callbacks.c:1316 -msgid "new" -msgstr "" - -#: ../src/callbacks.c:1318 -msgid "cancel" -msgstr "" - -#: ../src/callbacks.c:1323 -msgid "" -"launch new process or restart?.\n" -"\n" -msgstr "" - -#: ../src/callbacks.c:1780 ../src/guvcview.c:565 -msgid "Cap. Image (I)" -msgstr "" - -#. disable image controls -#: ../src/callbacks.c:1791 ../src/guvcview.c:690 ../src/timers.c:101 -msgid "capturing photo to" -msgstr "" - -#: ../src/callbacks.c:1850 ../src/guvcview.c:575 -msgid "Cap. Video (V)" -msgstr "" - -#: ../src/callbacks.c:1876 ../src/guvcview.c:740 -msgid "capturing video to" -msgstr "" - -#. vid capture enabled from start -#: ../src/callbacks.c:1911 ../src/guvcview.c:570 -msgid "Stop Video (V)" -msgstr "" - -#: ../src/callbacks.c:1967 ../src/menubar.c:66 -msgid "Save Profile" -msgstr "" - -#: ../src/callbacks.c:1980 ../src/menubar.c:65 -msgid "Load Profile" -msgstr "" - -#: ../src/create_video.c:1098 ../src/guvcview.c:732 -msgid "Cap. Video" -msgstr "" - -#: ../src/guvcview.c:280 -msgid "Guvcview Video Capture" -msgstr "GUVCVju Snimanje video zapisa" - -#: ../src/guvcview.c:292 -msgid "GUVCViewer Controls" -msgstr "GUVCVjuer Kontrole" - -#. can't open device -#: ../src/guvcview.c:342 -msgid "" -"Guvcview error:\n" -"\n" -"Unable to open device" -msgstr "" -"GUVCVju greĆĄka:\n" -"\n" -"Nije moguće otvoriti uređaj" - -#: ../src/guvcview.c:343 -msgid "" -"Please make sure the camera is connected\n" -"and that the correct driver is installed." -msgstr "" -"Postarajte se da je kamera konektovana\n" -"i da su pravi upravljački programi instalirani." - -#. uvc extension controls OK, give warning and shutdown (called with --add_ctrls) -#: ../src/guvcview.c:348 -msgid "" -"Guvcview:\n" -"\n" -"UVC Extension controls" +#. +#. * needed only for language files (not used) +#. +#. V4L2 control strings +#: ../gview_v4l2core/v4l2_controls.c:49 +msgid "User Controls" msgstr "" -"GUVCVju:\n" -"\n" -"UVC Kontrola dodataka" -#: ../src/guvcview.c:349 -msgid "Extension controls were added to the UVC driver" -msgstr "Kontrola dodataka je dodata na UVC drajver" - -#. uvc extension controls error - EACCES (needs root user) -#: ../src/guvcview.c:356 -msgid "" -"Guvcview error:\n" -"\n" -"UVC Extension controls" +#: ../gview_v4l2core/v4l2_controls.c:50 +msgid "Brightness" msgstr "" -"GUVCVju greĆĄka:\n" -"\n" -"UVC kontrola dodataka" - -#: ../src/guvcview.c:357 -msgid "" -"An error occurred while adding extension\n" -"controls to the UVC driver\n" -"Make sure you run guvcview as root (or sudo)." -msgstr "" -"GreĆĄka se dogodila dok sam dodavao kontrolu\n" -"dodataka na UVC drajver\n" -"Morate pokrenuti GUVCVju kao korjen ili sudo" -#: ../src/guvcview.c:391 ../src/guvcview.c:399 ../src/guvcview.c:477 -msgid "" -"Guvcview error:\n" -"\n" -"Can't set a valid video stream for guvcview" +#: ../gview_v4l2core/v4l2_controls.c:51 +msgid "Contrast" msgstr "" -#: ../src/guvcview.c:392 ../src/guvcview.c:400 ../src/guvcview.c:478 -msgid "" -"Make sure your device driver is v4l2 compliant\n" -"and that it is properly installed." +#: ../gview_v4l2core/v4l2_controls.c:52 +msgid "Hue" msgstr "" -#: ../src/guvcview.c:422 ../src/guvcview.c:444 -msgid "" -"Guvcview error:\n" -"\n" -"Unable to start with minimum setup" +#: ../gview_v4l2core/v4l2_controls.c:53 +msgid "Saturation" msgstr "" -#: ../src/guvcview.c:423 ../src/guvcview.c:445 -msgid "Please reconnect your camera." +#: ../gview_v4l2core/v4l2_controls.c:54 +msgid "Sharpness" msgstr "" -#: ../src/guvcview.c:452 -msgid "" -"Guvcview error:\n" -"\n" -"Couldn't query device capabilities" +#: ../gview_v4l2core/v4l2_controls.c:55 +msgid "Gamma" msgstr "" -#: ../src/guvcview.c:453 -msgid "Make sure the device driver supports v4l2." +#: ../gview_v4l2core/v4l2_controls.c:56 +msgid "Backlight Compensation" msgstr "" -#: ../src/guvcview.c:457 -msgid "" -"Guvcview error:\n" -"\n" -"Read method error" +#: ../gview_v4l2core/v4l2_controls.c:57 +msgid "Power Line Frequency" msgstr "" -#: ../src/guvcview.c:458 -msgid "Please try mmap instead (--capture_method=1)." +#: ../gview_v4l2core/v4l2_controls.c:58 +msgid "Hue, Automatic" msgstr "" -#: ../src/guvcview.c:466 -msgid "" -"Guvcview error:\n" -"\n" -"Unable to allocate Buffers" +#: ../gview_v4l2core/v4l2_controls.c:59 +msgid "Focus, Auto" msgstr "" -#: ../src/guvcview.c:467 -msgid "Please try restarting your system." +#: ../gview_v4l2core/v4l2_controls.c:60 +msgid "Manual Mode" msgstr "" -#: ../src/guvcview.c:518 -msgid "Image Controls" +#: ../gview_v4l2core/v4l2_controls.c:61 +msgid "Auto Mode" msgstr "" -#. image auto capture -#: ../src/guvcview.c:561 -msgid "Stop Auto (I)" +#: ../gview_v4l2core/v4l2_controls.c:62 +msgid "Shutter Priority Mode" msgstr "" -#: ../src/guvcview.c:676 -msgid "" -"Guvcview error:\n" -"\n" -"Unable to create Video Thread" +#: ../gview_v4l2core/v4l2_controls.c:63 +msgid "Aperture Priority Mode" msgstr "" -#: ../src/guvcview.c:677 -msgid "Please report it to http://developer.berlios.de/bugs/?group_id=8179" +#: ../gview_v4l2core/v4l2_controls.c:64 +msgid "Black Level" msgstr "" -#: ../src/img_controls.c:121 -msgid "Auto Focus (continuous)" +#: ../gview_v4l2core/v4l2_controls.c:65 +msgid "White Balance, Automatic" msgstr "" -#: ../src/img_controls.c:122 -msgid "set Focus" +#: ../gview_v4l2core/v4l2_controls.c:66 +msgid "Do White Balance" msgstr "" -#: ../src/image_format.c:35 -msgid "Jpeg (jpg)" +#: ../gview_v4l2core/v4l2_controls.c:67 +msgid "Red Balance" msgstr "" -#: ../src/image_format.c:41 -msgid "Bitmap (Bmp)" +#: ../gview_v4l2core/v4l2_controls.c:68 +msgid "Blue Balance" msgstr "" -#: ../src/image_format.c:47 -msgid "Portable Network Graphics (Png)" +#: ../gview_v4l2core/v4l2_controls.c:69 +msgid "Exposure" msgstr "" -#: ../src/image_format.c:53 -msgid "Raw Image (raw)" +#: ../gview_v4l2core/v4l2_controls.c:70 +msgid "Gain, Automatic" msgstr "" -#. controls menu -#: ../src/menubar.c:64 -msgid "Settings" +#: ../gview_v4l2core/v4l2_controls.c:71 +msgid "Gain" msgstr "" -#: ../src/menubar.c:67 -msgid "Hardware Defaults" +#: ../gview_v4l2core/v4l2_controls.c:72 +msgid "Horizontal Flip" msgstr "" -#: ../src/menubar.c:75 -msgid "Camera Button" +#: ../gview_v4l2core/v4l2_controls.c:73 +msgid "Vertical Flip" msgstr "" -#: ../src/menubar.c:79 -msgid "Capture Image" +#: ../gview_v4l2core/v4l2_controls.c:74 +msgid "Horizontal Center" msgstr "" -#: ../src/menubar.c:84 -msgid "Capture Video" +#: ../gview_v4l2core/v4l2_controls.c:75 +msgid "Vertical Center" msgstr "" -#. video menu -#: ../src/menubar.c:144 ../src/video_tab.c:95 -msgid "Video" +#: ../gview_v4l2core/v4l2_controls.c:76 +msgid "Chroma AGC" msgstr "" -#: ../src/menubar.c:145 ../src/menubar.c:233 -msgid "File" +#: ../gview_v4l2core/v4l2_controls.c:77 +msgid "Color Killer" msgstr "" -#: ../src/menubar.c:146 ../src/menubar.c:234 -msgid "Increment Filename" +#: ../gview_v4l2core/v4l2_controls.c:78 +msgid "Color Effects" msgstr "" -#: ../src/menubar.c:164 -msgid "Video Codec" +#. CAMERA CLASS control strings +#: ../gview_v4l2core/v4l2_controls.c:81 +msgid "Camera Controls" msgstr "" -#: ../src/menubar.c:189 -msgid "Video Codec Properties" +#: ../gview_v4l2core/v4l2_controls.c:82 +msgid "Auto Exposure" msgstr "" -#: ../src/menubar.c:196 -msgid "Audio Codec" +#: ../gview_v4l2core/v4l2_controls.c:83 +msgid "Exposure Time, Absolute" msgstr "" -#: ../src/menubar.c:217 -msgid "Audio Codec Properties" +#: ../gview_v4l2core/v4l2_controls.c:84 +msgid "Exposure, Dynamic Framerate" msgstr "" -#. photo menu -#: ../src/menubar.c:232 -msgid "Photo" +#: ../gview_v4l2core/v4l2_controls.c:85 +msgid "Pan, Relative" msgstr "" -#: ../src/options.c:753 -msgid "Prints version" +#: ../gview_v4l2core/v4l2_controls.c:86 +msgid "Tilt, Relative" msgstr "" -#: ../src/options.c:754 -msgid "Displays debug information" +#: ../gview_v4l2core/v4l2_controls.c:87 +msgid "Pan, Reset" msgstr "" -#: ../src/options.c:755 -msgid "Video Device to use [default: /dev/video0]" +#: ../gview_v4l2core/v4l2_controls.c:88 +msgid "Tilt, Reset" msgstr "" -#: ../src/options.c:756 -msgid "Exit after adding UVC extension controls (needs root/sudo)" +#: ../gview_v4l2core/v4l2_controls.c:89 +msgid "Pan, Absolute" msgstr "" -#: ../src/options.c:757 -msgid "Don't stream video (image controls only)" +#: ../gview_v4l2core/v4l2_controls.c:91 +msgid "Focus, Absolute" msgstr "" -#: ../src/options.c:758 -msgid "Don't display a GUI" +#: ../gview_v4l2core/v4l2_controls.c:92 +msgid "Focus, Relative" msgstr "" -#: ../src/options.c:759 -msgid "Capture method (1-mmap (default) 2-read)" +#: ../gview_v4l2core/v4l2_controls.c:93 +msgid "Focus, Automatic" msgstr "" -#: ../src/options.c:760 -msgid "Configuration file" +#: ../gview_v4l2core/v4l2_controls.c:94 +msgid "Zoom, Absolute" msgstr "" -#: ../src/options.c:761 -msgid "Hardware accelaration (enable(1) | disable(0))" +#: ../gview_v4l2core/v4l2_controls.c:95 +msgid "Zoom, Relative" msgstr "" -#: ../src/options.c:762 -msgid "" -"Pixel " -"format(mjpg|jpeg|yuyv|yvyu|uyvy|yyuv|yu12|yv12|nv12|nv21|nv16|nv61|y41p|grey|" -"y10b|y16 |s501|s505|s508|gbrg|grbg|ba81|rggb|bgr3|rgb3)" +#: ../gview_v4l2core/v4l2_controls.c:96 +msgid "Zoom, Continuous" msgstr "" -#: ../src/options.c:763 -msgid "Frame size, default: 640x480" +#: ../gview_v4l2core/v4l2_controls.c:97 +msgid "Privacy" msgstr "" -#: ../src/options.c:764 -msgid "Image File name" +#. UVC specific control strings +#: ../gview_v4l2core/v4l2_controls.c:100 +msgid "Exposure, Auto" msgstr "" -#: ../src/options.c:765 -msgid "Image capture interval in seconds" +#: ../gview_v4l2core/v4l2_controls.c:101 +msgid "Exposure, Auto Priority" msgstr "" -#: ../src/options.c:766 -msgid "Number of Pictures to capture" +#: ../gview_v4l2core/v4l2_controls.c:102 +msgid "Exposure (Absolute)" msgstr "" -#: ../src/options.c:767 -msgid "Video File name (capture from start)" +#: ../gview_v4l2core/v4l2_controls.c:103 +msgid "White Balance Temperature, Auto" msgstr "" -#: ../src/options.c:768 -msgid "Video capture time (in seconds)" +#: ../gview_v4l2core/v4l2_controls.c:104 +msgid "White Balance Temperature" msgstr "" -#: ../src/options.c:769 -msgid "Exits guvcview after closing video" +#: ../gview_v4l2core/v4l2_controls.c:105 +msgid "White Balance Component, Auto" msgstr "" -#: ../src/options.c:770 -msgid "Number of initial frames to skip" +#: ../gview_v4l2core/v4l2_controls.c:106 +msgid "White Balance Blue Component" msgstr "" -#: ../src/options.c:771 -msgid "Show FPS value (enable(1) | disable (0))" +#: ../gview_v4l2core/v4l2_controls.c:107 +msgid "White Balance Red Component" msgstr "" -#: ../src/options.c:772 -msgid "Load Profile at start" +#. libwebcam specific control strings +#: ../gview_v4l2core/v4l2_controls.c:110 +msgid "Focus" msgstr "" -#: ../src/options.c:773 -msgid "List controls method (0:loop, 1:next_ctrl flag [def])" +#: ../gview_v4l2core/v4l2_controls.c:111 +msgid "Focus (Absolute)" msgstr "" -#: ../src/options.c:779 -msgid "- local options" +#: ../gview_v4l2core/v4l2_xu_ctrls.c:63 ../guvcview/gui_gtk3_v4l2ctrls.c:239 +msgid "Off" msgstr "" -#. gdk_threads_enter(); -#: ../src/timers.c:119 -msgid "Cap. Image" +#: ../gview_v4l2core/v4l2_xu_ctrls.c:64 ../guvcview/gui_gtk3_v4l2ctrls.c:239 +msgid "On" msgstr "" -#: ../src/timers.c:217 -msgid "Guvcview Warning:" +#: ../gview_v4l2core/v4l2_xu_ctrls.c:65 ../guvcview/gui_gtk3_v4l2ctrls.c:239 +msgid "Blinking" msgstr "" -#: ../src/timers.c:217 -msgid "Not enough free space left on disk" +#: ../gview_v4l2core/v4l2_xu_ctrls.c:66 ../guvcview/gui_gtk3_v4l2ctrls.c:239 +msgid "Auto" msgstr "" -#: ../src/v4l2_controls.c:794 -msgid "Left" +#: ../gview_v4l2core/v4l2_xu_ctrls.c:73 +msgid "Pan (relative)" msgstr "" -#: ../src/v4l2_controls.c:795 -msgid "Right" +#: ../gview_v4l2core/v4l2_xu_ctrls.c:86 +msgid "Tilt (relative)" msgstr "" -#: ../src/v4l2_controls.c:799 -msgid "Down" +#: ../gview_v4l2core/v4l2_xu_ctrls.c:99 +msgid "Pan Reset" msgstr "" -#: ../src/v4l2_controls.c:800 -msgid "Up" +#: ../gview_v4l2core/v4l2_xu_ctrls.c:112 +msgid "Tilt Reset" msgstr "" -#: ../src/v4l2_controls.c:845 -msgid "Off" +#: ../gview_v4l2core/v4l2_xu_ctrls.c:125 +msgid "Focus (absolute)" msgstr "" -#: ../src/v4l2_controls.c:845 -msgid "On" +#: ../gview_v4l2core/v4l2_xu_ctrls.c:138 +msgid "LED1 Mode" msgstr "" -#: ../src/v4l2_controls.c:845 -msgid "Blinking" +#: ../gview_v4l2core/v4l2_xu_ctrls.c:151 +msgid "LED1 Frequency" msgstr "" -#: ../src/v4l2_controls.c:845 -msgid "Auto" +#: ../gview_v4l2core/v4l2_xu_ctrls.c:164 +msgid "Disable video processing" msgstr "" -#. turn it into a menu control -#: ../src/v4l2_controls.c:894 -msgid "8 bit" +#: ../gview_v4l2core/v4l2_xu_ctrls.c:177 +msgid "Raw bits per pixel" msgstr "" -#: ../src/v4l2_controls.c:894 -msgid "12 bit" +#: ../gview_encoder/audio_codecs.c:63 +msgid "PCM - uncompressed (float 32 bit)" msgstr "" -#: ../src/v4l2_dyna_ctrls.c:96 -msgid "Pan (relative)" +#: ../gview_encoder/audio_codecs.c:80 +msgid "MP2 (MPEG audio layer 2)" msgstr "" -#: ../src/v4l2_dyna_ctrls.c:109 -msgid "Tilt (relative)" +#: ../gview_encoder/audio_codecs.c:97 +msgid "MP3 (MPEG audio layer 3)" msgstr "" -#: ../src/v4l2_dyna_ctrls.c:122 -msgid "Pan Reset" +#: ../gview_encoder/audio_codecs.c:118 +msgid "AC-3 (ATSC A/52A)" msgstr "" -#: ../src/v4l2_dyna_ctrls.c:135 -msgid "Tilt Reset" +#: ../gview_encoder/audio_codecs.c:139 +msgid "AAC (Advanced Audio Coding)" msgstr "" -#: ../src/v4l2_dyna_ctrls.c:148 -msgid "Focus (absolute)" +#: ../gview_encoder/audio_codecs.c:160 +msgid "Vorbis" msgstr "" -#: ../src/v4l2_dyna_ctrls.c:161 -msgid "LED1 Mode" +#: ../gview_encoder/video_codecs.c:75 +msgid "Raw camera input" msgstr "" -#: ../src/v4l2_dyna_ctrls.c:174 -msgid "LED1 Frequency" +#: ../gview_encoder/video_codecs.c:111 +msgid "MJPG - compressed" msgstr "" -#: ../src/v4l2_dyna_ctrls.c:187 -msgid "Disable video processing" +#: ../gview_encoder/video_codecs.c:147 +msgid "MPEG video 1" msgstr "" -#: ../src/v4l2_dyna_ctrls.c:200 -msgid "Raw bits per pixel" +#: ../gview_encoder/video_codecs.c:183 +msgid "FLV1 - flash video 1" msgstr "" -#. needed only for language files (not used) -#. V4L2 control strings -#: ../src/v4l2uvc.c:57 -msgid "User Controls" +#: ../gview_encoder/video_codecs.c:219 +msgid "WMV1 - win. med. video 7" msgstr "" -#: ../src/v4l2uvc.c:58 -msgid "Brightness" +#: ../gview_encoder/video_codecs.c:255 +msgid "MPG2 - MPG2 format" msgstr "" -#: ../src/v4l2uvc.c:59 -msgid "Contrast" +#: ../gview_encoder/video_codecs.c:291 +msgid "MS MP4 V3" msgstr "" -#: ../src/v4l2uvc.c:60 -msgid "Hue" +#: ../gview_encoder/video_codecs.c:327 +msgid "MPEG4-ASP" msgstr "" -#: ../src/v4l2uvc.c:61 -msgid "Saturation" +#: ../gview_encoder/video_codecs.c:363 +msgid "MPEG4-AVC (H264)" msgstr "" -#: ../src/v4l2uvc.c:62 -msgid "Sharpness" +#: ../gview_encoder/video_codecs.c:403 +msgid "VP8 (VP8)" msgstr "" -#: ../src/v4l2uvc.c:63 -msgid "Gamma" +#: ../gview_encoder/video_codecs.c:439 +msgid "Theora (ogg theora)" msgstr "" -#: ../src/v4l2uvc.c:64 -msgid "Backlight Compensation" +#: ../guvcview/gui_gtk3_audioctrls.c:95 +msgid "Audio API:" msgstr "" -#: ../src/v4l2uvc.c:65 -msgid "Power Line Frequency" +#: ../guvcview/gui_gtk3_audioctrls.c:106 +msgid "NO SOUND" msgstr "" -#: ../src/v4l2uvc.c:66 -msgid "Hue, Automatic" +#: ../guvcview/gui_gtk3_audioctrls.c:107 +msgid "PORTAUDIO" msgstr "" -#: ../src/v4l2uvc.c:67 -msgid "Focus, Auto" +#: ../guvcview/gui_gtk3_audioctrls.c:110 +msgid "PULSEAUDIO" msgstr "" -#: ../src/v4l2uvc.c:68 -msgid "Manual Mode" +#: ../guvcview/gui_gtk3_audioctrls.c:127 +msgid "Input Device:" msgstr "" -#: ../src/v4l2uvc.c:69 -msgid "Auto Mode" +#: ../guvcview/gui_gtk3_audioctrls.c:161 +msgid "Sample Rate:" msgstr "" -#: ../src/v4l2uvc.c:70 -msgid "Shutter Priority Mode" +#: ../guvcview/gui_gtk3_audioctrls.c:168 ../guvcview/gui_gtk3_audioctrls.c:214 +msgid "Dev. Default" msgstr "" -#: ../src/v4l2uvc.c:71 -msgid "Aperture Priority Mode" +#: ../guvcview/gui_gtk3_audioctrls.c:207 +msgid "Channels:" msgstr "" -#: ../src/v4l2uvc.c:72 -msgid "Black Level" +#: ../guvcview/gui_gtk3_audioctrls.c:215 +msgid "1 - mono" msgstr "" -#: ../src/v4l2uvc.c:73 -msgid "White Balance, Automatic" +#: ../guvcview/gui_gtk3_audioctrls.c:216 +msgid "2 - stereo" msgstr "" -#: ../src/v4l2uvc.c:74 -msgid "Do White Balance" +#: ../guvcview/gui_gtk3_audioctrls.c:235 +msgid "---- Audio Filters ----" msgstr "" -#: ../src/v4l2uvc.c:75 -msgid "Red Balance" +#. Echo FX +#: ../guvcview/gui_gtk3_audioctrls.c:255 +msgid " Echo" msgstr "" -#: ../src/v4l2uvc.c:76 -msgid "Blue Balance" +#. Reverb FX +#: ../guvcview/gui_gtk3_audioctrls.c:268 +msgid " Reverb" msgstr "" -#: ../src/v4l2uvc.c:77 -msgid "Exposure" +#. Fuzz FX +#: ../guvcview/gui_gtk3_audioctrls.c:281 +msgid " Fuzz" msgstr "" -#: ../src/v4l2uvc.c:78 -msgid "Gain, Automatic" +#. WahWah FX +#: ../guvcview/gui_gtk3_audioctrls.c:294 +msgid " WahWah" msgstr "" -#: ../src/v4l2uvc.c:79 -msgid "Gain" +#. Ducky FX +#: ../guvcview/gui_gtk3_audioctrls.c:307 +msgid " Ducky" msgstr "" -#: ../src/v4l2uvc.c:80 -msgid "Horizontal Flip" +#: ../guvcview/gui_gtk3.c:310 ../guvcview/gui_gtk3_callbacks.c:749 +msgid "Stop Video (V)" msgstr "" -#: ../src/v4l2uvc.c:81 -msgid "Vertical Flip" +#. video button +#: ../guvcview/gui_gtk3.c:315 ../guvcview/gui_gtk3.c:600 +#: ../guvcview/gui_gtk3_callbacks.c:755 +msgid "Cap. Video (V)" msgstr "" -#: ../src/v4l2uvc.c:82 -msgid "Horizontal Center" +#: ../guvcview/gui_gtk3.c:376 ../guvcview/gui_gtk3.c:383 +msgid "Error" msgstr "" -#: ../src/v4l2uvc.c:83 -msgid "Vertical Center" +#: ../guvcview/gui_gtk3.c:379 ../guvcview/gui_gtk3.c:386 +#: ../guvcview/gui_gtk3_callbacks.c:2097 +msgid "_Ok" msgstr "" -#: ../src/v4l2uvc.c:84 -msgid "Chroma AGC" +#: ../guvcview/gui_gtk3.c:380 ../guvcview/gui_gtk3_callbacks.c:185 +#: ../guvcview/gui_gtk3_callbacks.c:199 ../guvcview/gui_gtk3_callbacks.c:522 +#: ../guvcview/gui_gtk3_callbacks.c:624 ../guvcview/gui_gtk3_callbacks.c:1755 +#: ../guvcview/gui_gtk3_callbacks.c:2098 +msgid "_Cancel" msgstr "" -#: ../src/v4l2uvc.c:85 -msgid "Color Killer" +#: ../guvcview/gui_gtk3.c:407 +msgid "" +"\n" +"You have more than one video device installed.\n" +"Do you want to try another one ?\n" msgstr "" -#: ../src/v4l2uvc.c:86 -msgid "Color Effects" +#. ---- Devices ---- +#: ../guvcview/gui_gtk3.c:414 ../guvcview/gui_gtk3_videoctrls.c:106 +msgid "Device:" msgstr "" -#. CAMERA CLASS control strings -#: ../src/v4l2uvc.c:89 -msgid "Camera Controls" -msgstr "" +#: ../guvcview/gui_gtk3.c:516 +msgid "Guvcview Video Capture" +msgstr "GUVCVju Snimanje video zapisa" -#: ../src/v4l2uvc.c:90 -msgid "Auto Exposure" +#: ../guvcview/gui_gtk3.c:525 +msgid "Guvcview" msgstr "" -#: ../src/v4l2uvc.c:91 -msgid "Exposure Time, Absolute" +#: ../guvcview/gui_gtk3.c:572 +msgid "Stop Cap. (I)" msgstr "" -#: ../src/v4l2uvc.c:92 -msgid "Exposure, Dynamic Framerate" +#: ../guvcview/gui_gtk3.c:578 ../guvcview/gui_gtk3_callbacks.c:720 +#: ../guvcview/video_capture.c:250 +msgid "Cap. Image (I)" msgstr "" -#: ../src/v4l2uvc.c:93 -msgid "Pan, Relative" +#. quit button +#. GtkWidget *quitButton = gtk_button_new_from_stock(GTK_STOCK_QUIT); +#: ../guvcview/gui_gtk3.c:621 +msgid "_Quit" msgstr "" -#: ../src/v4l2uvc.c:94 -msgid "Tilt, Relative" +#: ../guvcview/gui_gtk3.c:667 +msgid "Image Controls" msgstr "" -#: ../src/v4l2uvc.c:95 -msgid "Pan, Reset" -msgstr "" +#: ../guvcview/gui_gtk3.c:703 +#, fuzzy +msgid "H264 Controls" +msgstr "GUVCVjuer Kontrole" -#: ../src/v4l2uvc.c:96 -msgid "Tilt, Reset" -msgstr "" +#: ../guvcview/gui_gtk3.c:742 +#, fuzzy +msgid "Video Controls" +msgstr "GUVCVjuer Kontrole" -#: ../src/v4l2uvc.c:97 -msgid "Pan, Absolute" +#: ../guvcview/gui_gtk3.c:777 +#, fuzzy +msgid "Audio Controls" +msgstr "GUVCVjuer Kontrole" + +#: ../guvcview/gui_gtk3_callbacks.c:182 ../guvcview/gui_gtk3_menu.c:72 +msgid "Save Profile" msgstr "" -#: ../src/v4l2uvc.c:99 -msgid "Focus, Absolute" +#: ../guvcview/gui_gtk3_callbacks.c:186 ../guvcview/gui_gtk3_callbacks.c:523 +#: ../guvcview/gui_gtk3_callbacks.c:625 +msgid "_Save" msgstr "" -#: ../src/v4l2uvc.c:100 -msgid "Focus, Relative" +#: ../guvcview/gui_gtk3_callbacks.c:196 ../guvcview/gui_gtk3_menu.c:71 +msgid "Load Profile" msgstr "" -#: ../src/v4l2uvc.c:101 -msgid "Focus, Automatic" +#: ../guvcview/gui_gtk3_callbacks.c:200 +msgid "_Open" msgstr "" -#: ../src/v4l2uvc.c:102 -msgid "Zoom, Absolute" +#: ../guvcview/gui_gtk3_callbacks.c:208 ../guvcview/gui_gtk3_callbacks.c:531 +#: ../guvcview/gui_gtk3_callbacks.c:634 +msgid "File Format:" msgstr "" -#: ../src/v4l2uvc.c:103 -msgid "Zoom, Relative" +#: ../guvcview/gui_gtk3_callbacks.c:220 +msgid "gpfl (*.gpfl)" msgstr "" -#: ../src/v4l2uvc.c:104 -msgid "Zoom, Continuous" +#: ../guvcview/gui_gtk3_callbacks.c:221 +msgid "any (*.*)" msgstr "" -#: ../src/v4l2uvc.c:105 -msgid "Privacy" +#: ../guvcview/gui_gtk3_callbacks.c:519 +msgid "Photo file name" msgstr "" -#. UVC specific control strings -#: ../src/v4l2uvc.c:108 -msgid "Exposure, Auto" +#: ../guvcview/gui_gtk3_callbacks.c:543 +msgid "Raw (*.raw)" msgstr "" -#: ../src/v4l2uvc.c:109 -msgid "Exposure, Auto Priority" +#: ../guvcview/gui_gtk3_callbacks.c:544 +msgid "Jpeg (*.jpg)" msgstr "" -#: ../src/v4l2uvc.c:110 -msgid "Exposure (Absolute)" +#: ../guvcview/gui_gtk3_callbacks.c:545 +msgid "Png (*.png)" msgstr "" -#: ../src/v4l2uvc.c:111 -msgid "White Balance Temperature, Auto" +#: ../guvcview/gui_gtk3_callbacks.c:546 +msgid "Bmp (*.bmp)" msgstr "" -#: ../src/v4l2uvc.c:112 -msgid "White Balance Temperature" +#: ../guvcview/gui_gtk3_callbacks.c:621 +msgid "Video file name" msgstr "" -#: ../src/v4l2uvc.c:113 -msgid "White Balance Component, Auto" +#: ../guvcview/gui_gtk3_callbacks.c:646 +msgid "Matroska (*.mkv)" msgstr "" -#: ../src/v4l2uvc.c:114 -msgid "White Balance Blue Component" +#: ../guvcview/gui_gtk3_callbacks.c:647 +msgid "WebM (*.webm)" msgstr "" -#: ../src/v4l2uvc.c:115 -msgid "White Balance Red Component" +#: ../guvcview/gui_gtk3_callbacks.c:648 +msgid "Avi (*.avi)" msgstr "" -#. libwebcam specific control strings -#: ../src/v4l2uvc.c:118 -msgid "Focus" +#: ../guvcview/gui_gtk3_callbacks.c:1158 +msgid "start new" msgstr "" -#: ../src/v4l2uvc.c:119 -msgid "Focus (Absolute)" +#: ../guvcview/gui_gtk3_callbacks.c:1161 +msgid "restart" msgstr "" -#: ../src/vcodecs.c:63 -msgid "MJPG - compressed" +#: ../guvcview/gui_gtk3_callbacks.c:1163 +msgid "new" msgstr "" -#: ../src/vcodecs.c:99 -msgid "YUY2 - uncomp YUV" +#: ../guvcview/gui_gtk3_callbacks.c:1165 +msgid "cancel" msgstr "" -#: ../src/vcodecs.c:135 -msgid "RGB - uncomp BMP" +#: ../guvcview/gui_gtk3_callbacks.c:1170 +msgid "" +"launch new process or restart?.\n" +"\n" msgstr "" -#: ../src/vcodecs.c:171 -msgid "MPEG video 1" +#: ../guvcview/gui_gtk3_callbacks.c:1751 +msgid "video codec values" msgstr "" -#: ../src/vcodecs.c:207 -msgid "FLV1 - flash video 1" +#: ../guvcview/gui_gtk3_callbacks.c:1754 +msgid "_OK" msgstr "" -#: ../src/vcodecs.c:243 -msgid "WMV1 - win. med. video 7" +#: ../guvcview/gui_gtk3_callbacks.c:1760 +msgid "" +" encoder fps: \n" +" (0 - use fps combobox value)" msgstr "" -#: ../src/vcodecs.c:279 -msgid "MPG2 - MPG2 format" +#: ../guvcview/gui_gtk3_callbacks.c:1773 +msgid " monotonic pts" msgstr "" -#: ../src/vcodecs.c:315 -msgid "MS MP4 V3" +#. bit rate +#: ../guvcview/gui_gtk3_callbacks.c:1780 ../guvcview/gui_gtk3_callbacks.c:2105 +msgid "bit rate: " msgstr "" -#: ../src/vcodecs.c:351 -msgid "MPEG4-ASP" +#: ../guvcview/gui_gtk3_callbacks.c:1793 +msgid "qmax: " msgstr "" -#: ../src/vcodecs.c:387 -msgid "MPEG4-AVC (H264)" +#: ../guvcview/gui_gtk3_callbacks.c:1806 +msgid "qmin: " msgstr "" -#: ../src/vcodecs.c:427 -msgid "VP8 (VP8)" +#: ../guvcview/gui_gtk3_callbacks.c:1819 +msgid "max. qdiff: " msgstr "" -#: ../src/vcodecs.c:463 -msgid "Theora (ogg theora)" +#: ../guvcview/gui_gtk3_callbacks.c:1832 +msgid "dia size: " msgstr "" -#: ../src/video_format.c:43 -msgid "AVI - avi format" +#: ../guvcview/gui_gtk3_callbacks.c:1845 +msgid "pre dia size: " msgstr "" -#: ../src/video_format.c:52 -msgid "MKV - Matroska format" +#: ../guvcview/gui_gtk3_callbacks.c:1858 +msgid "pre me: " msgstr "" -#: ../src/video_format.c:61 -msgid "WEBM - format" +#: ../guvcview/gui_gtk3_callbacks.c:1871 +msgid "pre cmp: " msgstr "" -#: ../src/video_tab.c:216 -msgid "Frame Rate:" +#: ../guvcview/gui_gtk3_callbacks.c:1884 +msgid "cmp: " msgstr "" -#: ../src/video_tab.c:223 -msgid " Show" +#: ../guvcview/gui_gtk3_callbacks.c:1897 +msgid "sub cmp: " msgstr "" -#: ../src/video_tab.c:245 -msgid "Resolution:" +#: ../guvcview/gui_gtk3_callbacks.c:1910 +msgid "last predictor count: " msgstr "" -#: ../src/video_tab.c:271 -msgid "Camera Output:" +#: ../guvcview/gui_gtk3_callbacks.c:1923 +msgid "gop size: " msgstr "" -#: ../src/video_tab.c:293 -msgid "Apply" +#: ../guvcview/gui_gtk3_callbacks.c:1936 +msgid "qcompress: " msgstr "" -#: ../src/video_tab.c:300 -msgid "Quality:" +#: ../guvcview/gui_gtk3_callbacks.c:1949 +msgid "qblur: " msgstr "" -#: ../src/video_tab.c:310 -msgid "---- Video Filters ----" +#: ../guvcview/gui_gtk3_callbacks.c:1962 +msgid "subq: " msgstr "" -#. Mirror -#: ../src/video_tab.c:329 -msgid " Mirror" +#: ../guvcview/gui_gtk3_callbacks.c:1975 +msgid "framerefs: " msgstr "" -#. Upturn -#: ../src/video_tab.c:340 -msgid " Invert" +#: ../guvcview/gui_gtk3_callbacks.c:1988 +msgid "me method: " msgstr "" -#. Negate -#: ../src/video_tab.c:351 -msgid " Negative" +#: ../guvcview/gui_gtk3_callbacks.c:2001 +msgid "mb decision: " msgstr "" -#. Mono -#: ../src/video_tab.c:362 -msgid " Mono" +#: ../guvcview/gui_gtk3_callbacks.c:2014 +msgid "max B frames: " msgstr "" -#. Pieces -#: ../src/video_tab.c:374 -msgid " Pieces" +#: ../guvcview/gui_gtk3_callbacks.c:2027 +msgid "num threads: " msgstr "" -#. Particles -#: ../src/video_tab.c:386 -msgid " Particles" +#: ../guvcview/gui_gtk3_callbacks.c:2094 +msgid "audio codec values" msgstr "" -#: ../src/uvc_h264.c:596 -msgid "H264 Controls" +#. sample format +#: ../guvcview/gui_gtk3_callbacks.c:2119 +msgid "sample format: " msgstr "" -#: ../src/uvc_h264.c:615 +#: ../guvcview/gui_gtk3_h264ctrls.c:622 msgid "Rate Control Mode:" msgstr "" -#: ../src/uvc_h264.c:626 +#: ../guvcview/gui_gtk3_h264ctrls.c:633 msgid "CBR" msgstr "" -#: ../src/uvc_h264.c:629 +#: ../guvcview/gui_gtk3_h264ctrls.c:636 msgid "VBR" msgstr "" -#: ../src/uvc_h264.c:633 +#: ../guvcview/gui_gtk3_h264ctrls.c:640 msgid "Constant QP" msgstr "" -#: ../src/uvc_h264.c:651 +#: ../guvcview/gui_gtk3_h264ctrls.c:658 msgid "Rate Control Mode flags:" msgstr "" -#: ../src/uvc_h264.c:676 +#: ../guvcview/gui_gtk3_h264ctrls.c:683 msgid "Temporal Scale Mode:" msgstr "" -#: ../src/uvc_h264.c:704 +#: ../guvcview/gui_gtk3_h264ctrls.c:711 msgid "Spatial Scale Mode:" msgstr "" -#: ../src/uvc_h264.c:737 +#: ../guvcview/gui_gtk3_h264ctrls.c:741 msgid "Frame Interval (100ns units):" msgstr "" -#: ../src/uvc_h264.c:772 +#: ../guvcview/gui_gtk3_h264ctrls.c:778 msgid "Bit Rate:" msgstr "" -#: ../src/uvc_h264.c:795 +#: ../guvcview/gui_gtk3_h264ctrls.c:801 msgid "Hints:" msgstr "" -#: ../src/uvc_h264.c:800 +#: ../guvcview/gui_gtk3_h264ctrls.c:806 msgid "Resolution" msgstr "" -#: ../src/uvc_h264.c:804 +#: ../guvcview/gui_gtk3_h264ctrls.c:810 msgid "Profile" msgstr "" -#: ../src/uvc_h264.c:808 +#: ../guvcview/gui_gtk3_h264ctrls.c:814 +#, fuzzy msgid "Rate Control" -msgstr "" +msgstr "GUVCVjuer Kontrole" -#: ../src/uvc_h264.c:812 +#: ../guvcview/gui_gtk3_h264ctrls.c:818 msgid "Usage Type" msgstr "" -#: ../src/uvc_h264.c:816 +#: ../guvcview/gui_gtk3_h264ctrls.c:822 msgid "Slice Mode" msgstr "" -#: ../src/uvc_h264.c:820 +#: ../guvcview/gui_gtk3_h264ctrls.c:826 msgid "Slice Unit" msgstr "" -#: ../src/uvc_h264.c:824 +#: ../guvcview/gui_gtk3_h264ctrls.c:830 msgid "MVC View" msgstr "" -#: ../src/uvc_h264.c:828 +#: ../guvcview/gui_gtk3_h264ctrls.c:834 msgid "Temporal Scale" msgstr "" -#: ../src/uvc_h264.c:832 +#: ../guvcview/gui_gtk3_h264ctrls.c:838 msgid "SNR Scale" msgstr "" -#: ../src/uvc_h264.c:836 +#: ../guvcview/gui_gtk3_h264ctrls.c:842 msgid "Spatial Scale" msgstr "" -#: ../src/uvc_h264.c:840 +#: ../guvcview/gui_gtk3_h264ctrls.c:846 msgid "Spatial Layer Ratio" msgstr "" -#: ../src/uvc_h264.c:844 +#: ../guvcview/gui_gtk3_h264ctrls.c:850 msgid "Frame Interval" msgstr "" -#: ../src/uvc_h264.c:848 +#: ../guvcview/gui_gtk3_h264ctrls.c:854 msgid "Leaky Bucket Size" msgstr "" -#: ../src/uvc_h264.c:852 +#: ../guvcview/gui_gtk3_h264ctrls.c:858 msgid "Bit Rate" msgstr "" -#: ../src/uvc_h264.c:856 ../src/uvc_h264.c:1250 +#: ../guvcview/gui_gtk3_h264ctrls.c:862 ../guvcview/gui_gtk3_h264ctrls.c:1220 msgid "CABAC" msgstr "" -#: ../src/uvc_h264.c:860 +#: ../guvcview/gui_gtk3_h264ctrls.c:866 msgid "(I) Frame Period" msgstr "" -#: ../src/uvc_h264.c:907 +#: ../guvcview/gui_gtk3_h264ctrls.c:878 msgid "Slice Mode:" msgstr "" -#: ../src/uvc_h264.c:914 +#: ../guvcview/gui_gtk3_h264ctrls.c:885 msgid "no multiple slices" msgstr "" -#: ../src/uvc_h264.c:916 +#: ../guvcview/gui_gtk3_h264ctrls.c:887 msgid "bits/slice" msgstr "" -#: ../src/uvc_h264.c:918 +#: ../guvcview/gui_gtk3_h264ctrls.c:889 msgid "Mbits/slice" msgstr "" -#: ../src/uvc_h264.c:920 +#: ../guvcview/gui_gtk3_h264ctrls.c:891 msgid "slices/frame" msgstr "" -#: ../src/uvc_h264.c:929 +#: ../guvcview/gui_gtk3_h264ctrls.c:900 msgid "Slice Units:" msgstr "" -#: ../src/uvc_h264.c:950 +#: ../guvcview/gui_gtk3_h264ctrls.c:921 msgid "Profile:" msgstr "" -#: ../src/uvc_h264.c:957 +#: ../guvcview/gui_gtk3_h264ctrls.c:928 msgid "Baseline Profile" msgstr "" -#: ../src/uvc_h264.c:959 +#: ../guvcview/gui_gtk3_h264ctrls.c:930 msgid "Main Profile" msgstr "" -#: ../src/uvc_h264.c:961 +#: ../guvcview/gui_gtk3_h264ctrls.c:932 msgid "High Profile" msgstr "" -#: ../src/uvc_h264.c:963 +#: ../guvcview/gui_gtk3_h264ctrls.c:934 msgid "Scalable Baseline Profile" msgstr "" -#: ../src/uvc_h264.c:965 +#: ../guvcview/gui_gtk3_h264ctrls.c:936 msgid "Scalable High Profile" msgstr "" -#: ../src/uvc_h264.c:967 +#: ../guvcview/gui_gtk3_h264ctrls.c:938 msgid "Multiview High Profile" msgstr "" -#: ../src/uvc_h264.c:969 +#: ../guvcview/gui_gtk3_h264ctrls.c:940 msgid "Stereo High Profile" msgstr "" -#: ../src/uvc_h264.c:1008 +#: ../guvcview/gui_gtk3_h264ctrls.c:979 msgid "Profile flags:" msgstr "" -#: ../src/uvc_h264.c:1033 +#: ../guvcview/gui_gtk3_h264ctrls.c:1004 msgid "(I) Frame Period (ms):" msgstr "" -#: ../src/uvc_h264.c:1054 +#: ../guvcview/gui_gtk3_h264ctrls.c:1025 msgid "Estimated Video Delay (ms):" msgstr "" -#: ../src/uvc_h264.c:1075 +#: ../guvcview/gui_gtk3_h264ctrls.c:1046 msgid "Estimated Max Config Delay (ms):" msgstr "" -#: ../src/uvc_h264.c:1096 +#: ../guvcview/gui_gtk3_h264ctrls.c:1067 msgid "Usage Type:" msgstr "" -#: ../src/uvc_h264.c:1103 +#: ../guvcview/gui_gtk3_h264ctrls.c:1074 msgid "Real-time" msgstr "" -#: ../src/uvc_h264.c:1105 +#: ../guvcview/gui_gtk3_h264ctrls.c:1076 msgid "Broadcast" msgstr "" -#: ../src/uvc_h264.c:1107 +#: ../guvcview/gui_gtk3_h264ctrls.c:1078 msgid "Storage" msgstr "" -#: ../src/uvc_h264.c:1109 +#: ../guvcview/gui_gtk3_h264ctrls.c:1080 msgid "(0) Non-scalable single layer AVC" msgstr "" -#: ../src/uvc_h264.c:1111 +#: ../guvcview/gui_gtk3_h264ctrls.c:1082 msgid "(1) SVC temporal scalability with hierarchical P" msgstr "" -#: ../src/uvc_h264.c:1113 +#: ../guvcview/gui_gtk3_h264ctrls.c:1084 msgid "(2q) SVC temporal scalability + Quality/SNR scalability" msgstr "" -#: ../src/uvc_h264.c:1115 +#: ../guvcview/gui_gtk3_h264ctrls.c:1086 msgid "(2s) SVC temporal scalability + spatial scalability" msgstr "" -#: ../src/uvc_h264.c:1117 +#: ../guvcview/gui_gtk3_h264ctrls.c:1088 msgid "(3) Full SVC scalability" msgstr "" -#: ../src/uvc_h264.c:1131 +#: ../guvcview/gui_gtk3_h264ctrls.c:1102 msgid "SNR Control Mode:" msgstr "" -#: ../src/uvc_h264.c:1138 +#: ../guvcview/gui_gtk3_h264ctrls.c:1109 msgid "No SNR Enhancement Layer" msgstr "" -#: ../src/uvc_h264.c:1140 +#: ../guvcview/gui_gtk3_h264ctrls.c:1111 msgid "CGS NonRewrite (2 Layer)" msgstr "" -#: ../src/uvc_h264.c:1142 +#: ../guvcview/gui_gtk3_h264ctrls.c:1113 msgid "CGS NonRewrite (3 Layer)" msgstr "" -#: ../src/uvc_h264.c:1144 +#: ../guvcview/gui_gtk3_h264ctrls.c:1115 msgid "CGS Rewrite (2 Layer)" msgstr "" -#: ../src/uvc_h264.c:1146 +#: ../guvcview/gui_gtk3_h264ctrls.c:1117 msgid "CGS Rewrite (3 Layer)" msgstr "" -#: ../src/uvc_h264.c:1148 +#: ../guvcview/gui_gtk3_h264ctrls.c:1119 msgid "MGS (2 Layer)" msgstr "" -#: ../src/uvc_h264.c:1173 +#: ../guvcview/gui_gtk3_h264ctrls.c:1144 msgid "Stream Mux Enable" msgstr "" -#: ../src/uvc_h264.c:1180 +#: ../guvcview/gui_gtk3_h264ctrls.c:1151 msgid "Embed H.264 aux stream" msgstr "" -#: ../src/uvc_h264.c:1182 +#: ../guvcview/gui_gtk3_h264ctrls.c:1153 msgid "Embed YUY2 aux stream" msgstr "" -#: ../src/uvc_h264.c:1184 +#: ../guvcview/gui_gtk3_h264ctrls.c:1155 msgid "Embed NV12 aux stream" msgstr "" -#: ../src/uvc_h264.c:1204 +#: ../guvcview/gui_gtk3_h264ctrls.c:1175 msgid "MJPG payload container" msgstr "" -#: ../src/uvc_h264.c:1219 +#: ../guvcview/gui_gtk3_h264ctrls.c:1189 msgid "Stream Format:" msgstr "" -#: ../src/uvc_h264.c:1227 +#: ../guvcview/gui_gtk3_h264ctrls.c:1197 msgid "Byte stream format (H.264 Annex-B)" msgstr "" -#: ../src/uvc_h264.c:1229 +#: ../guvcview/gui_gtk3_h264ctrls.c:1199 msgid "NAL stream format" msgstr "" -#: ../src/uvc_h264.c:1240 +#: ../guvcview/gui_gtk3_h264ctrls.c:1210 msgid "Entropy CABAC:" msgstr "" -#: ../src/uvc_h264.c:1248 +#: ../guvcview/gui_gtk3_h264ctrls.c:1218 msgid "CAVLC" msgstr "" -#: ../src/uvc_h264.c:1261 +#: ../guvcview/gui_gtk3_h264ctrls.c:1231 msgid "Picture timing SEI" msgstr "" -#: ../src/uvc_h264.c:1268 +#: ../guvcview/gui_gtk3_h264ctrls.c:1238 msgid "B Frames:" msgstr "" -#: ../src/uvc_h264.c:1293 +#: ../guvcview/gui_gtk3_h264ctrls.c:1263 msgid "Preview Flipped" msgstr "" -#: ../src/uvc_h264.c:1300 +#: ../guvcview/gui_gtk3_h264ctrls.c:1270 msgid "Additional MVC Views:" msgstr "" -#: ../src/uvc_h264.c:1325 +#: ../guvcview/gui_gtk3_h264ctrls.c:1295 msgid "Simulcast stream index:" msgstr "" -#: ../src/uvc_h264.c:1350 +#: ../guvcview/gui_gtk3_h264ctrls.c:1320 msgid "Spatial Layer Ratio:" msgstr "" -#: ../src/uvc_h264.c:1379 +#: ../guvcview/gui_gtk3_h264ctrls.c:1349 msgid "Leaky Bucket Size (ms):" msgstr "" #. encoder reset -#: ../src/uvc_h264.c:1406 +#: ../guvcview/gui_gtk3_h264ctrls.c:1376 msgid "Encoder Reset" msgstr "" -#. -#. h264_controls->probe_button = gtk_button_new_with_label(_("PROBE")); -#. g_signal_connect (GTK_BUTTON(h264_controls->probe_button), "clicked", +#. +#. GtkWidget *probe_button = gtk_button_new_with_label(_("PROBE")); +#. g_signal_connect (GTK_BUTTON(probe_button), "clicked", #. G_CALLBACK (h264_probe_button_clicked), all_data); -#. -#. gtk_grid_attach (GTK_GRID(table), h264_controls->probe_button, 0, line, 1 ,1); -#. gtk_widget_show(h264_controls->probe_button); -#. -#: ../src/uvc_h264.c:1421 +#. +#. gtk_grid_attach (GTK_GRID(h264_controls_grid), probe_button, 0, line, 1 ,1); +#. gtk_widget_show(probe_button); +#. +#: ../guvcview/gui_gtk3_h264ctrls.c:1391 msgid "COMMIT" msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:70 +msgid "Settings" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:73 +msgid "Hardware Defaults" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:81 +msgid "Camera Button" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:86 +msgid "Capture Image" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:91 +msgid "Capture Video" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:134 +msgid "Photo" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:135 ../guvcview/gui_gtk3_menu.c:159 +msgid "File" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:136 ../guvcview/gui_gtk3_menu.c:160 +msgid "Increment Filename" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:158 +msgid "Video" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:175 +msgid "Video Codec" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:202 +msgid "Video Codec Properties" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:208 +msgid "Audio Codec" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:235 +msgid "Audio Codec Properties" +msgstr "" + +#: ../guvcview/gui_gtk3_v4l2ctrls.c:174 +msgid "Left" +msgstr "" + +#: ../guvcview/gui_gtk3_v4l2ctrls.c:175 +msgid "Right" +msgstr "" + +#: ../guvcview/gui_gtk3_v4l2ctrls.c:179 +msgid "Down" +msgstr "" + +#: ../guvcview/gui_gtk3_v4l2ctrls.c:180 +msgid "Up" +msgstr "" + +#. turn it into a menu control +#: ../guvcview/gui_gtk3_v4l2ctrls.c:296 +msgid "8 bit" +msgstr "" + +#: ../guvcview/gui_gtk3_v4l2ctrls.c:296 +msgid "12 bit" +msgstr "" + +#. add a virtual control for software autofocus +#: ../guvcview/gui_gtk3_v4l2ctrls.c:348 +msgid "Auto Focus (continuous)" +msgstr "" + +#: ../guvcview/gui_gtk3_v4l2ctrls.c:349 +msgid "set Focus" +msgstr "" + +#. control_widgets_list[n].widget2 = gtk_button_new_from_stock(GTK_STOCK_APPLY); +#. control_widgets_list[n].widget2= gtk_button_new_from_stock(GTK_STOCK_APPLY); +#. control_widgets_list[n].widget2 = gtk_button_new_from_stock(GTK_STOCK_APPLY); +#: ../guvcview/gui_gtk3_v4l2ctrls.c:433 ../guvcview/gui_gtk3_v4l2ctrls.c:456 +#: ../guvcview/gui_gtk3_v4l2ctrls.c:478 +msgid "_Apply" +msgstr "" + +#: ../guvcview/gui_gtk3_videoctrls.c:144 +msgid "Frame Rate:" +msgstr "" + +#: ../guvcview/gui_gtk3_videoctrls.c:204 +msgid "Resolution:" +msgstr "" + +#: ../guvcview/gui_gtk3_videoctrls.c:254 +msgid "Camera Output:" +msgstr "" + +#: ../guvcview/gui_gtk3_videoctrls.c:287 +msgid "---- Video Filters ----" +msgstr "" + +#. Mirror FX +#: ../guvcview/gui_gtk3_videoctrls.c:307 +msgid " Mirror" +msgstr "" + +#. Upturn FX +#: ../guvcview/gui_gtk3_videoctrls.c:319 +msgid " Invert" +msgstr "" + +#. Negate FX +#: ../guvcview/gui_gtk3_videoctrls.c:331 +msgid " Negative" +msgstr "" + +#. Mono FX +#: ../guvcview/gui_gtk3_videoctrls.c:343 +msgid " Mono" +msgstr "" + +#. Pieces FX +#: ../guvcview/gui_gtk3_videoctrls.c:356 +msgid " Pieces" +msgstr "" + +#. Particles +#: ../guvcview/gui_gtk3_videoctrls.c:369 +msgid " Particles" +msgstr "" + +#: ../guvcview/options.c:51 +msgid "Print help" +msgstr "" + +#: ../guvcview/options.c:58 +msgid "Print version" +msgstr "" + +#: ../guvcview/options.c:64 +msgid "LEVEL" +msgstr "" + +#: ../guvcview/options.c:65 +msgid "Set Verbosity level (def: 0)" +msgstr "" + +#: ../guvcview/options.c:71 +msgid "DEVICE" +msgstr "" + +#: ../guvcview/options.c:72 +msgid "Set device name (def: /dev/video0)" +msgstr "" + +#: ../guvcview/options.c:78 +msgid "METHOD" +msgstr "" + +#: ../guvcview/options.c:79 +msgid "Set capture method [read | mmap (def)]" +msgstr "" + +#: ../guvcview/options.c:85 +msgid "WIDTHxHEIGHT" +msgstr "" + +#: ../guvcview/options.c:86 +msgid "Request resolution (e.g 640x480)" +msgstr "" + +#: ../guvcview/options.c:92 +msgid "FOURCC" +msgstr "" + +#: ../guvcview/options.c:93 +msgid "Request format (e.g MJPG)" +msgstr "" + +#: ../guvcview/options.c:99 +msgid "RENDER_API" +msgstr "" + +#: ../guvcview/options.c:100 +msgid "Select render API (e.g none; sdl)" +msgstr "" + +#: ../guvcview/options.c:106 +msgid "AUDIO_API" +msgstr "" + +#: ../guvcview/options.c:107 +msgid "Select audio API (e.g none; port; pulse)" +msgstr "" + +#: ../guvcview/options.c:113 +msgid "AUDIO_DEVICE" +msgstr "" + +#: ../guvcview/options.c:114 +msgid "Select audio device index for selected api (0..N)" +msgstr "" + +#: ../guvcview/options.c:120 +msgid "GUI_API" +msgstr "" + +#: ../guvcview/options.c:121 +msgid "Select GUI API (e.g none; gtk3)" +msgstr "" + +#: ../guvcview/options.c:127 ../guvcview/options.c:134 +msgid "CODEC" +msgstr "" + +#: ../guvcview/options.c:128 +msgid "Audio codec [pcm mp2 mp3 aac ac3 vorb]" +msgstr "" + +#: ../guvcview/options.c:135 +msgid "Video codec [raw mjpg mpeg flv1 wmv1 mpg2 mp43 dx50 h264 vp80 theo]" +msgstr "" + +#: ../guvcview/options.c:141 ../guvcview/options.c:148 +#: ../guvcview/options.c:155 +msgid "FILENAME" +msgstr "" + +#: ../guvcview/options.c:142 +msgid "load control profile" +msgstr "" + +#: ../guvcview/options.c:149 +msgid "filename for captured video)" +msgstr "" + +#: ../guvcview/options.c:156 +msgid "filename for captured image)" +msgstr "" + +#: ../guvcview/options.c:162 ../guvcview/options.c:169 +msgid "TIME_IN_SEC" +msgstr "" + +#: ../guvcview/options.c:163 +msgid "time (double) in sec. for video capture)" +msgstr "" + +#: ../guvcview/options.c:170 +msgid "time (double) in sec. between captured photos)" +msgstr "" + +#: ../guvcview/options.c:176 +msgid "TOTAL" +msgstr "" + +#: ../guvcview/options.c:177 +msgid "total number of captured photos)" +msgstr "" + +#: ../guvcview/options.c:184 +msgid "Start in control panel mode" +msgstr "" + +#: ../guvcview/options.c:307 +#, c-format +msgid "" +"Guvcview version %s\n" +"\n" +msgstr "" + +#: ../guvcview/options.c:308 +#, c-format +msgid "" +"Usage:\n" +" guvcview [OPTIONS]\n" +"\n" +msgstr "" + +#: ../guvcview/options.c:309 +#, c-format +msgid "OPTIONS:\n" +msgstr "" + +#: ../guvcview/video_capture.c:819 +#, c-format +msgid "saving video to %s" +msgstr "" + +#. if(debug_level > 1) +#. printf("GUVCVIEW: saving image to %s\n", img_filename); +#: ../guvcview/video_capture.c:1069 +#, c-format +msgid "saving image to %s" +msgstr "" + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to open device" +#~ msgstr "" +#~ "GUVCVju greĆĄka:\n" +#~ "\n" +#~ "Nije moguće otvoriti uređaj" + +#~ msgid "" +#~ "Please make sure the camera is connected\n" +#~ "and that the correct driver is installed." +#~ msgstr "" +#~ "Postarajte se da je kamera konektovana\n" +#~ "i da su pravi upravljački programi instalirani." + +#~ msgid "" +#~ "Guvcview:\n" +#~ "\n" +#~ "UVC Extension controls" +#~ msgstr "" +#~ "GUVCVju:\n" +#~ "\n" +#~ "UVC Kontrola dodataka" + +#~ msgid "Extension controls were added to the UVC driver" +#~ msgstr "Kontrola dodataka je dodata na UVC drajver" + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "UVC Extension controls" +#~ msgstr "" +#~ "GUVCVju greĆĄka:\n" +#~ "\n" +#~ "UVC kontrola dodataka" + +#~ msgid "" +#~ "An error occurred while adding extension\n" +#~ "controls to the UVC driver\n" +#~ "Make sure you run guvcview as root (or sudo)." +#~ msgstr "" +#~ "GreĆĄka se dogodila dok sam dodavao kontrolu\n" +#~ "dodataka na UVC drajver\n" +#~ "Morate pokrenuti GUVCVju kao korjen ili sudo" diff -Nru guvcview-1.7.3/po/cs.po guvcview-2.0.1+ubuntu1~ppa1/po/cs.po --- guvcview-1.7.3/po/cs.po 2014-03-24 22:56:28.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/po/cs.po 2014-10-05 10:41:44.000000000 +0000 @@ -7,1418 +7,1626 @@ msgstr "" "Project-Id-Version: guvcview\n" "Report-Msgid-Bugs-To: pj.assis@gmail.com\n" -"POT-Creation-Date: 2013-11-14 22:15+0000\n" +"POT-Creation-Date: 2014-08-17 22:49+0100\n" "PO-Revision-Date: 2013-02-25 05:36+0000\n" "Last-Translator: Michal Sittek \n" "Language-Team: Czech \n" +"Language: cs\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-12-08 10:36+0000\n" -"X-Generator: Launchpad (build 16869)\n" -"Language: cs\n" - -#: ../data/guvcview.desktop.in.in.h:1 -msgid "guvcview" -msgstr "guvcview" - -#: ../data/guvcview.desktop.in.in.h:2 -msgid "GTK UVC video viewer" -msgstr "ProhlĂ­ĆŸeč videa GTK UVC" - -#: ../data/guvcview.desktop.in.in.h:3 -msgid "A video viewer and capturer for the linux uvc driver" -msgstr "ProhlĂ­ĆŸenĂ­ a zachytĂĄvĂĄnĂ­ videa z linuxovĂœch uvc ovladačƯ" - -#: ../src/acodecs.c:59 -msgid "PCM - uncompressed (16 bit)" -msgstr "PCM - bez komprese (16 bitĆŻ)" - -#: ../src/acodecs.c:76 -msgid "MPEG2 - (lavc)" -msgstr "MPEG2 - (lavc)" - -#: ../src/acodecs.c:93 -msgid "MP3 - (lavc)" -msgstr "MP3 - (lavc)" - -#: ../src/acodecs.c:110 -msgid "Dolby AC3 - (lavc)" -msgstr "Dolby AC3 - (lavc)" - -#: ../src/acodecs.c:127 -msgid "ACC Low - (faac)" -msgstr "NizkĂ© ACC - (faac)" - -#: ../src/acodecs.c:144 -msgid "Vorbis" -msgstr "" - -#: ../src/audio_tab.c:87 -msgid "Audio" -msgstr "Zvuk" - -#: ../src/audio_tab.c:105 -msgid " Sound" -msgstr " Zvuk" - -#. VU meter on the image (OSD) -#: ../src/audio_tab.c:116 -msgid " Show VU meter" -msgstr " Zobrazit metr VU" - -#: ../src/audio_tab.c:128 -msgid "Audio API:" -msgstr "API audia:" - -#: ../src/audio_tab.c:139 -msgid "PORTAUDIO" -msgstr "PORTAUDIO" - -#: ../src/audio_tab.c:140 -msgid "PULSEAUDIO" -msgstr "PULSEAUDIO" - -#: ../src/audio_tab.c:156 ../src/audio_tab.c:179 -msgid "Input Device:" -msgstr "VstupnĂ­ zaƙízenĂ­:" - -#: ../src/audio_tab.c:189 ../src/audio_tab.c:221 -msgid "Dev. Default" -msgstr "VĂœchozĂ­ zaƙízenĂ­" - -#: ../src/audio_tab.c:211 -msgid "Sample Rate:" -msgstr "VzorkovacĂ­ frekvence:" - -#: ../src/audio_tab.c:222 -msgid "1 - mono" -msgstr "1 - mono" - -#: ../src/audio_tab.c:223 -msgid "2 - stereo" -msgstr "2 - stereo" - -#: ../src/audio_tab.c:258 -msgid "Channels:" -msgstr "KanĂĄly:" - -#: ../src/audio_tab.c:309 -msgid "---- Audio Effects ----" -msgstr "---- ZvukovĂ© efekty ----" - -#. Echo -#: ../src/audio_tab.c:328 -msgid " Echo" -msgstr " Zobrazit" - -#. FUZZ -#: ../src/audio_tab.c:339 -msgid " Fuzz" -msgstr " Fuzz" - -#. Reverb -#: ../src/audio_tab.c:351 -msgid " Reverb" -msgstr " Ozvěna" - -#. WahWah -#: ../src/audio_tab.c:363 -msgid " WahWah" -msgstr " WahWah" - -#. Ducky -#: ../src/audio_tab.c:375 -msgid " Ducky" -msgstr " Ducky" - -#: ../src/callbacks.c:109 -msgid "Error" -msgstr "Chyba" - -#: ../src/callbacks.c:133 -msgid "" -"\n" -"You have more than one video device installed.\n" -"Do you want to try another one ?\n" -msgstr "" -"\n" -"MĂĄte nainstalovĂĄno vĂ­ce neĆŸ jedno zaƙízenĂ­ pro video.\n" -"Chcete zkusit dalĆĄĂ­ ?\n" - -#. Devices -#: ../src/callbacks.c:140 ../src/video_tab.c:111 -msgid "Device:" -msgstr "ZaƙízenĂ­:" - -#: ../src/callbacks.c:272 -msgid "Save File" -msgstr "UloĆŸit soubor" - -#: ../src/callbacks.c:284 -msgid "File Format:" -msgstr "" - -#: ../src/callbacks.c:455 -msgid "codec values" -msgstr "hodnoty kodeku" - -#: ../src/callbacks.c:466 -msgid "" -" encoder fps: \n" -" (0 - use fps combobox value)" -msgstr "" -" fps enkodĂ©ru: \n" -" (0 - pouĆŸĂ­t hodnotu fps z pole)" - -#: ../src/callbacks.c:479 -msgid " monotonic pts" -msgstr " monotĂłnĂ­ch bodĆŻ" - -#. bit rate -#: ../src/callbacks.c:486 ../src/callbacks.c:809 -msgid "bit rate: " -msgstr "pƙenosovĂĄ rychlost: " - -#: ../src/callbacks.c:499 -msgid "qmax: " -msgstr "qmax: " - -#: ../src/callbacks.c:512 -msgid "qmin: " -msgstr "qmin: " - -#: ../src/callbacks.c:525 -msgid "max. qdiff: " -msgstr "max. qdiff: " - -#: ../src/callbacks.c:538 -msgid "dia size: " -msgstr "velikost dia: " - -#: ../src/callbacks.c:551 -msgid "pre dia size: " -msgstr "velikost pre dia: " - -#: ../src/callbacks.c:564 -msgid "pre me: " -msgstr "pre me: " - -#: ../src/callbacks.c:577 -msgid "pre cmp: " -msgstr "pre cmp: " - -#: ../src/callbacks.c:590 -msgid "cmp: " -msgstr "cmp: " - -#: ../src/callbacks.c:603 -msgid "sub cmp: " -msgstr "pod cmp: " - -#: ../src/callbacks.c:616 -msgid "last predictor count: " -msgstr "poslednĂ­ počet prediktoru: " - -#: ../src/callbacks.c:629 -msgid "gop size: " -msgstr "velikost gop: " - -#: ../src/callbacks.c:642 -msgid "qcompress: " -msgstr "qkomprese: " - -#: ../src/callbacks.c:655 -msgid "qblur: " -msgstr "qrozmazĂĄnĂ­: " - -#: ../src/callbacks.c:668 -msgid "subq: " -msgstr "subq: " - -#: ../src/callbacks.c:681 -msgid "framerefs: " -msgstr "framerefs: " - -#: ../src/callbacks.c:694 -msgid "me method: " -msgstr "metoda me: " - -#: ../src/callbacks.c:707 -msgid "mb decision: " -msgstr "rozhodnutĂ­ mb: " - -#: ../src/callbacks.c:720 -msgid "max B frames: " -msgstr "max B rĂĄmečkĆŻ: " - -#: ../src/callbacks.c:733 -msgid "num threads: " -msgstr "počet vlĂĄken: " - -#: ../src/callbacks.c:796 -msgid "audio codec values" -msgstr "hodnoty audio kodeku" - -#. sample format -#: ../src/callbacks.c:823 -msgid "sample format: " -msgstr "" - -#: ../src/callbacks.c:1311 -msgid "start new" -msgstr "spustit novĂœ" - -#: ../src/callbacks.c:1314 -msgid "restart" -msgstr "restart" - -#: ../src/callbacks.c:1316 -msgid "new" -msgstr "novĂœ" - -#: ../src/callbacks.c:1318 -msgid "cancel" -msgstr "zruĆĄit" - -#: ../src/callbacks.c:1323 -msgid "" -"launch new process or restart?.\n" -"\n" -msgstr "" -"Spustit novĂœ proces nebo restartovat?.\n" -"\n" - -#: ../src/callbacks.c:1780 ../src/guvcview.c:565 -msgid "Cap. Image (I)" -msgstr "" - -#. disable image controls -#: ../src/callbacks.c:1791 ../src/guvcview.c:690 ../src/timers.c:101 -msgid "capturing photo to" -msgstr "" - -#: ../src/callbacks.c:1850 ../src/guvcview.c:575 -msgid "Cap. Video (V)" -msgstr "" - -#: ../src/callbacks.c:1876 ../src/guvcview.c:740 -msgid "capturing video to" -msgstr "" - -#. vid capture enabled from start -#: ../src/callbacks.c:1911 ../src/guvcview.c:570 -msgid "Stop Video (V)" -msgstr "" - -#: ../src/callbacks.c:1967 ../src/menubar.c:66 -msgid "Save Profile" -msgstr "" - -#: ../src/callbacks.c:1980 ../src/menubar.c:65 -msgid "Load Profile" -msgstr "" - -#: ../src/create_video.c:1098 ../src/guvcview.c:732 -msgid "Cap. Video" -msgstr "Zazn. Video" - -#: ../src/guvcview.c:280 -msgid "Guvcview Video Capture" -msgstr "ZachycenĂ­ videa Gucview" - -#: ../src/guvcview.c:292 -msgid "GUVCViewer Controls" -msgstr "OvlĂĄdĂĄnĂ­ GUVCViewer" - -#. can't open device -#: ../src/guvcview.c:342 -msgid "" -"Guvcview error:\n" -"\n" -"Unable to open device" -msgstr "" -"ChybaGuvcview:\n" -"\n" -"Nelze otevƙít zaƙízenĂ­" - -#: ../src/guvcview.c:343 -msgid "" -"Please make sure the camera is connected\n" -"and that the correct driver is installed." -msgstr "" -"Ujistěte se prosĂ­m, ĆŸe vaĆĄe kamera je pƙipojena,\n" -"a ĆŸe mĂĄte nainstalovĂĄn sprĂĄvnĂœ ovladač." - -#. uvc extension controls OK, give warning and shutdown (called with --add_ctrls) -#: ../src/guvcview.c:348 -msgid "" -"Guvcview:\n" -"\n" -"UVC Extension controls" -msgstr "" -"Guvcview\n" -"\n" -"RozơíƙenĂ© ovlĂĄdĂĄnĂ­ UVC" - -#: ../src/guvcview.c:349 -msgid "Extension controls were added to the UVC driver" -msgstr "RozơíƙenĂ© ovlĂĄdĂĄnĂ­ bylo pƙidĂĄno do UVC ovladače" - -#. uvc extension controls error - EACCES (needs root user) -#: ../src/guvcview.c:356 -msgid "" -"Guvcview error:\n" -"\n" -"UVC Extension controls" -msgstr "" -"Chyba Guvcview\n" -"\n" -"RozơíƙenĂ© ovlĂĄdĂĄnĂ­ UCV" - -#: ../src/guvcview.c:357 -msgid "" -"An error occurred while adding extension\n" -"controls to the UVC driver\n" -"Make sure you run guvcview as root (or sudo)." -msgstr "" -"Nastala chyba pƙi pƙidĂĄnĂ­ rozơíƙenĂ©ho\n" -"ovlĂĄdĂĄnĂ­ do ovladače UVC\n" -"Ujistěte se, ĆŸe spouĆĄtĂ­te guvcview jako root (či sudo)." - -#: ../src/guvcview.c:391 ../src/guvcview.c:399 ../src/guvcview.c:477 -msgid "" -"Guvcview error:\n" -"\n" -"Can't set a valid video stream for guvcview" -msgstr "" -"Chyba Gucview:\n" -"\n" -"Nelze nastavit platnĂœ proud videa pro gucview" - -#: ../src/guvcview.c:392 ../src/guvcview.c:400 ../src/guvcview.c:478 -msgid "" -"Make sure your device driver is v4l2 compliant\n" -"and that it is properly installed." -msgstr "" -"Ujistěte se, ĆŸe ovladač vaĆĄeho pƙístroje je kompatibilnĂ­ s 4l2\n" -"a ĆŸe je sprĂĄvně nainstalovĂĄn." - -#: ../src/guvcview.c:422 ../src/guvcview.c:444 -msgid "" -"Guvcview error:\n" -"\n" -"Unable to start with minimum setup" -msgstr "" -"Chyba Guvcview:\n" -"\n" -"Nelze spustit minimĂĄlnĂ­ konfguraci" - -#: ../src/guvcview.c:423 ../src/guvcview.c:445 -msgid "Please reconnect your camera." -msgstr "ProsĂ­m pƙipojte znovu kameru." - -#: ../src/guvcview.c:452 -msgid "" -"Guvcview error:\n" -"\n" -"Couldn't query device capabilities" -msgstr "" -"Chyba guvcview:\n" -"\n" -"Nelze zjistit funkce zaƙízenĂ­" - -#: ../src/guvcview.c:453 -msgid "Make sure the device driver supports v4l2." -msgstr "Ujistěte se, ĆŸe ovladač zaƙízenĂ­ podporuje v4l2." - -#: ../src/guvcview.c:457 -msgid "" -"Guvcview error:\n" -"\n" -"Read method error" -msgstr "" -"Chyba guvcview:\n" -"\n" -"Chyba metody čtenĂ­" - -#: ../src/guvcview.c:458 -msgid "Please try mmap instead (--capture_method=1)." -msgstr "MĂ­sto (--capture_method=1) zkuste mmap." - -#: ../src/guvcview.c:466 -msgid "" -"Guvcview error:\n" -"\n" -"Unable to allocate Buffers" -msgstr "" -"Chyba Guvcview:\n" -"\n" -"Nelze alokovat Buffery" - -#: ../src/guvcview.c:467 -msgid "Please try restarting your system." -msgstr "ProsĂ­m zkuste restartovat vĂĄĆĄ systĂ©m." - -#: ../src/guvcview.c:518 -msgid "Image Controls" -msgstr "OvlĂĄdĂĄnĂ­ obrazĆŻ" - -#. image auto capture -#: ../src/guvcview.c:561 -msgid "Stop Auto (I)" -msgstr "" - -#: ../src/guvcview.c:676 -msgid "" -"Guvcview error:\n" -"\n" -"Unable to create Video Thread" -msgstr "" -"Chyba Guvcview:\n" -"\n" -"Nelze zaloĆŸit vlĂĄkno videa" - -#: ../src/guvcview.c:677 -msgid "Please report it to http://developer.berlios.de/bugs/?group_id=8179" -msgstr "" -"ProsĂ­m nahlaĆĄte to na http://developer.berlios.de/bugs/?group_id=8179" - -#: ../src/img_controls.c:121 -msgid "Auto Focus (continuous)" -msgstr "AutomatickĂ© ostƙenĂ­ (pozvolnĂ©)" - -#: ../src/img_controls.c:122 -msgid "set Focus" -msgstr "nastavit OstƙenĂ­" - -#: ../src/image_format.c:35 -msgid "Jpeg (jpg)" -msgstr "" - -#: ../src/image_format.c:41 -msgid "Bitmap (Bmp)" -msgstr "" - -#: ../src/image_format.c:47 -msgid "Portable Network Graphics (Png)" -msgstr "" - -#: ../src/image_format.c:53 -msgid "Raw Image (raw)" -msgstr "" - -#. controls menu -#: ../src/menubar.c:64 -msgid "Settings" -msgstr "" - -#: ../src/menubar.c:67 -msgid "Hardware Defaults" -msgstr "" - -#: ../src/menubar.c:75 -msgid "Camera Button" -msgstr "" - -#: ../src/menubar.c:79 -msgid "Capture Image" -msgstr "" - -#: ../src/menubar.c:84 -msgid "Capture Video" -msgstr "" - -#. video menu -#: ../src/menubar.c:144 ../src/video_tab.c:95 -msgid "Video" -msgstr "" - -#: ../src/menubar.c:145 ../src/menubar.c:233 -msgid "File" -msgstr "" - -#: ../src/menubar.c:146 ../src/menubar.c:234 -msgid "Increment Filename" -msgstr "" - -#: ../src/menubar.c:164 -msgid "Video Codec" -msgstr "" - -#: ../src/menubar.c:189 -msgid "Video Codec Properties" -msgstr "" - -#: ../src/menubar.c:196 -msgid "Audio Codec" -msgstr "" - -#: ../src/menubar.c:217 -msgid "Audio Codec Properties" -msgstr "" - -#. photo menu -#: ../src/menubar.c:232 -msgid "Photo" -msgstr "" - -#: ../src/options.c:753 -msgid "Prints version" -msgstr "VypĂ­ĆĄe verzi" - -#: ../src/options.c:754 -msgid "Displays debug information" -msgstr "ZobrazĂ­ ladĂ­cĂ­ informace" - -#: ../src/options.c:755 -msgid "Video Device to use [default: /dev/video0]" -msgstr "Video zaƙízenĂ­ [vĂœchozĂ­ /dev/video0]" - -#: ../src/options.c:756 -msgid "Exit after adding UVC extension controls (needs root/sudo)" -msgstr "Ukončit po pƙidĂĄnĂ­ kontroly rozơíƙenĂ­ UVC (vyĆŸaduje root/sudo)" - -#: ../src/options.c:757 -msgid "Don't stream video (image controls only)" -msgstr "NeposĂ­lat video (pouze kontroly obrĂĄzku)" - -#: ../src/options.c:758 -msgid "Don't display a GUI" -msgstr "Nezobrazovat rozhranĂ­" - -#: ../src/options.c:759 -msgid "Capture method (1-mmap (default) 2-read)" -msgstr "Metoda zachycenĂ­ (1-mmap (vĂœchozĂ­) 2-read)" - -#: ../src/options.c:760 -msgid "Configuration file" -msgstr "KonfiguračnĂ­ soubor" - -#: ../src/options.c:761 -msgid "Hardware accelaration (enable(1) | disable(0))" -msgstr "HardwarovĂĄ akcelerace (povolit(1) | zakĂĄzat(0))" - -#: ../src/options.c:762 -msgid "" -"Pixel " -"format(mjpg|jpeg|yuyv|yvyu|uyvy|yyuv|yu12|yv12|nv12|nv21|nv16|nv61|y41p|grey|" -"y10b|y16 |s501|s505|s508|gbrg|grbg|ba81|rggb|bgr3|rgb3)" -msgstr "" -"FormĂĄt " -"pixelu(mjpg|jpeg|yuyv|yvyu|uyvy|yyuv|yu12|yv12|nv12|nv21|nv16|nv61|y41p|grey|" -"y10b|y16 |s501|s505|s508|gbrg|grbg|ba81|rggb|bgr3|rgb3)" - -#: ../src/options.c:763 -msgid "Frame size, default: 640x480" -msgstr "Velikost rĂĄmce, vĂœchozĂ­: 640x480" - -#: ../src/options.c:764 -msgid "Image File name" -msgstr "NĂĄzev souboru orazu" - -#: ../src/options.c:765 -msgid "Image capture interval in seconds" -msgstr "Interval snĂ­mĂĄnĂ­ v sekundĂĄch" - -#: ../src/options.c:766 -msgid "Number of Pictures to capture" -msgstr "Počet obrĂĄzkĆŻ k zaznamenĂĄnĂ­" - -#: ../src/options.c:767 -msgid "Video File name (capture from start)" -msgstr "JmĂ©no Video souboru (zĂĄznam od začátku)" - -#: ../src/options.c:768 -msgid "Video capture time (in seconds)" -msgstr "Čas Video zĂĄznamu (v sekundĂĄch)" - -#: ../src/options.c:769 -msgid "Exits guvcview after closing video" -msgstr "Po skončenĂ­ videa ukončit guvcview" - -#: ../src/options.c:770 -msgid "Number of initial frames to skip" -msgstr "Počet prvnĂ­ch vynechanĂœch snĂ­mkĆŻ" - -#: ../src/options.c:771 -msgid "Show FPS value (enable(1) | disable (0))" -msgstr "Zobrazit hodnotu FPS (povolit(1) | zakĂĄzat(0))" - -#: ../src/options.c:772 -msgid "Load Profile at start" -msgstr "Načíst profil pƙi spuĆĄtěnĂ­" - -#: ../src/options.c:773 -msgid "List controls method (0:loop, 1:next_ctrl flag [def])" -msgstr "" - -#: ../src/options.c:779 -msgid "- local options" -msgstr "- mĂ­stnĂ­ nastavenĂ­" - -#. gdk_threads_enter(); -#: ../src/timers.c:119 -msgid "Cap. Image" -msgstr "Zazn. Obraz" - -#: ../src/timers.c:217 -msgid "Guvcview Warning:" -msgstr "VarovĂĄnĂ­ Guvcview:" - -#: ../src/timers.c:217 -msgid "Not enough free space left on disk" -msgstr "Na disku nezbĂœvĂĄ dost volnĂ©ho mĂ­sta" - -#: ../src/v4l2_controls.c:794 -msgid "Left" -msgstr "Vlevo" - -#: ../src/v4l2_controls.c:795 -msgid "Right" -msgstr "Vpravo" - -#: ../src/v4l2_controls.c:799 -msgid "Down" -msgstr "DolĆŻ" - -#: ../src/v4l2_controls.c:800 -msgid "Up" -msgstr "Nahoru" - -#: ../src/v4l2_controls.c:845 -msgid "Off" -msgstr "Vypnuto" - -#: ../src/v4l2_controls.c:845 -msgid "On" -msgstr "Zapnuto" - -#: ../src/v4l2_controls.c:845 -msgid "Blinking" -msgstr "BlikĂĄnĂ­" - -#: ../src/v4l2_controls.c:845 -msgid "Auto" -msgstr "Automaticky" - -#. turn it into a menu control -#: ../src/v4l2_controls.c:894 -msgid "8 bit" -msgstr "8 bitĆŻ" - -#: ../src/v4l2_controls.c:894 -msgid "12 bit" -msgstr "12 bitĆŻ" - -#: ../src/v4l2_dyna_ctrls.c:96 -msgid "Pan (relative)" -msgstr "ZĂĄběr (relativnĂ­)" - -#: ../src/v4l2_dyna_ctrls.c:109 -msgid "Tilt (relative)" -msgstr "ZĂĄběr (relativnĂ­)" - -#: ../src/v4l2_dyna_ctrls.c:122 -msgid "Pan Reset" -msgstr "Reset zĂĄběru" - -#: ../src/v4l2_dyna_ctrls.c:135 -msgid "Tilt Reset" -msgstr "Obnovit" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2013-12-08 10:36+0000\n" +"X-Generator: Launchpad (build 16869)\n" -#: ../src/v4l2_dyna_ctrls.c:148 -msgid "Focus (absolute)" -msgstr "OstƙenĂ­ (absolutnĂ­)" +#: ../data/guvcview.desktop.in.in.h:1 +msgid "guvcview" +msgstr "guvcview" -#: ../src/v4l2_dyna_ctrls.c:161 -msgid "LED1 Mode" -msgstr "MĂłd LED1" +#: ../data/guvcview.desktop.in.in.h:2 +msgid "GTK UVC video viewer" +msgstr "ProhlĂ­ĆŸeč videa GTK UVC" -#: ../src/v4l2_dyna_ctrls.c:174 -msgid "LED1 Frequency" -msgstr "Frekvence LED1" +#: ../data/guvcview.desktop.in.in.h:3 +msgid "A video viewer and capturer for the linux uvc driver" +msgstr "ProhlĂ­ĆŸenĂ­ a zachytĂĄvĂĄnĂ­ videa z linuxovĂœch uvc ovladačƯ" -#: ../src/v4l2_dyna_ctrls.c:187 -msgid "Disable video processing" -msgstr "ZakĂĄzat zpracovĂĄnĂ­ videa" +#: ../data/guvcview.appdata.xml.in.in.h:1 +msgid "capture video from v4l2 devices" +msgstr "" -#: ../src/v4l2_dyna_ctrls.c:200 -msgid "Raw bits per pixel" -msgstr "Raw bity / pxel" +#: ../data/guvcview.appdata.xml.in.in.h:2 +msgid "" +"Video capture tool for video4linux2 compliant cameras, with special emphasis " +"on the linux uvc driver. It provides Image (jpg, png, bmp) and Video (mjpeg, " +"flv1, wmv1, mpg2, mpg4,...) capture with sound in several " +"formats( currently: avi and matroska). I also supports a control panel " +"option (--control_only) that is compatible with any other v4l2 app." +msgstr "" -#. needed only for language files (not used) +#. +#. * needed only for language files (not used) +#. #. V4L2 control strings -#: ../src/v4l2uvc.c:57 +#: ../gview_v4l2core/v4l2_controls.c:49 msgid "User Controls" msgstr "UĆŸivatelkĂĄ nastavenĂ­" -#: ../src/v4l2uvc.c:58 +#: ../gview_v4l2core/v4l2_controls.c:50 msgid "Brightness" msgstr "Jas" -#: ../src/v4l2uvc.c:59 +#: ../gview_v4l2core/v4l2_controls.c:51 msgid "Contrast" msgstr "Kontrast" -#: ../src/v4l2uvc.c:60 +#: ../gview_v4l2core/v4l2_controls.c:52 msgid "Hue" msgstr "OdstĂ­n" -#: ../src/v4l2uvc.c:61 +#: ../gview_v4l2core/v4l2_controls.c:53 msgid "Saturation" msgstr "Sytost" -#: ../src/v4l2uvc.c:62 +#: ../gview_v4l2core/v4l2_controls.c:54 msgid "Sharpness" msgstr "Ostrost" -#: ../src/v4l2uvc.c:63 +#: ../gview_v4l2core/v4l2_controls.c:55 msgid "Gamma" msgstr "Gamma" -#: ../src/v4l2uvc.c:64 +#: ../gview_v4l2core/v4l2_controls.c:56 msgid "Backlight Compensation" msgstr "Komponzace podsvětlenĂ­" -#: ../src/v4l2uvc.c:65 +#: ../gview_v4l2core/v4l2_controls.c:57 msgid "Power Line Frequency" msgstr "Kmitočet sĂ­tě" -#: ../src/v4l2uvc.c:66 +#: ../gview_v4l2core/v4l2_controls.c:58 msgid "Hue, Automatic" msgstr "OdstĂ­n, AutomatickĂœ" -#: ../src/v4l2uvc.c:67 +#: ../gview_v4l2core/v4l2_controls.c:59 msgid "Focus, Auto" msgstr "OstƙenĂ­, Auto" -#: ../src/v4l2uvc.c:68 +#: ../gview_v4l2core/v4l2_controls.c:60 msgid "Manual Mode" msgstr "RučnĂ­ mĂłd" -#: ../src/v4l2uvc.c:69 +#: ../gview_v4l2core/v4l2_controls.c:61 msgid "Auto Mode" msgstr "Auto. mĂłd" -#: ../src/v4l2uvc.c:70 +#: ../gview_v4l2core/v4l2_controls.c:62 msgid "Shutter Priority Mode" msgstr "MĂłd priority clony" -#: ../src/v4l2uvc.c:71 +#: ../gview_v4l2core/v4l2_controls.c:63 msgid "Aperture Priority Mode" msgstr "ReĆŸim priority clony" -#: ../src/v4l2uvc.c:72 +#: ../gview_v4l2core/v4l2_controls.c:64 msgid "Black Level" msgstr "Úroveƈ černĂ©" -#: ../src/v4l2uvc.c:73 +#: ../gview_v4l2core/v4l2_controls.c:65 msgid "White Balance, Automatic" msgstr "VyvĂĄĆŸenĂ­ bĂ­lĂ©, automatickĂ©" -#: ../src/v4l2uvc.c:74 +#: ../gview_v4l2core/v4l2_controls.c:66 msgid "Do White Balance" msgstr "VyvĂĄĆŸit bĂ­lou" -#: ../src/v4l2uvc.c:75 +#: ../gview_v4l2core/v4l2_controls.c:67 msgid "Red Balance" msgstr "VyvĂĄĆŸenĂ­ červenĂ©" -#: ../src/v4l2uvc.c:76 +#: ../gview_v4l2core/v4l2_controls.c:68 msgid "Blue Balance" msgstr "VyvĂĄĆŸenĂ­ modrĂ©" -#: ../src/v4l2uvc.c:77 +#: ../gview_v4l2core/v4l2_controls.c:69 msgid "Exposure" msgstr "Expozice" -#: ../src/v4l2uvc.c:78 +#: ../gview_v4l2core/v4l2_controls.c:70 msgid "Gain, Automatic" msgstr "PƙírĆŻstek, AutomatickĂœ" -#: ../src/v4l2uvc.c:79 +#: ../gview_v4l2core/v4l2_controls.c:71 msgid "Gain" msgstr "Zisk" -#: ../src/v4l2uvc.c:80 +#: ../gview_v4l2core/v4l2_controls.c:72 msgid "Horizontal Flip" msgstr "HorizontĂĄlnĂ­ pƙeklopenĂ­" -#: ../src/v4l2uvc.c:81 +#: ../gview_v4l2core/v4l2_controls.c:73 msgid "Vertical Flip" msgstr "VertikĂĄlnĂ­ pƙeklopenĂ­" -#: ../src/v4l2uvc.c:82 +#: ../gview_v4l2core/v4l2_controls.c:74 msgid "Horizontal Center" msgstr "HorizontĂĄlnĂ­ stƙed" -#: ../src/v4l2uvc.c:83 +#: ../gview_v4l2core/v4l2_controls.c:75 msgid "Vertical Center" msgstr "VertikĂĄlnĂ­ stƙed" -#: ../src/v4l2uvc.c:84 +#: ../gview_v4l2core/v4l2_controls.c:76 msgid "Chroma AGC" msgstr "AKP Sytosti" -#: ../src/v4l2uvc.c:85 +#: ../gview_v4l2core/v4l2_controls.c:77 msgid "Color Killer" msgstr "OdstraněnĂ­ barvy" -#: ../src/v4l2uvc.c:86 +#: ../gview_v4l2core/v4l2_controls.c:78 msgid "Color Effects" msgstr "BarevnĂ© efekty" #. CAMERA CLASS control strings -#: ../src/v4l2uvc.c:89 +#: ../gview_v4l2core/v4l2_controls.c:81 msgid "Camera Controls" msgstr "OvlĂĄdĂĄnĂ­ kamery" -#: ../src/v4l2uvc.c:90 +#: ../gview_v4l2core/v4l2_controls.c:82 msgid "Auto Exposure" msgstr "AutomatickĂĄ korekce zĂĄvěrky" -#: ../src/v4l2uvc.c:91 +#: ../gview_v4l2core/v4l2_controls.c:83 msgid "Exposure Time, Absolute" msgstr "ExpozičnĂ­ Doba, AbsolutnĂ­" -#: ../src/v4l2uvc.c:92 +#: ../gview_v4l2core/v4l2_controls.c:84 msgid "Exposure, Dynamic Framerate" msgstr "Expozie, DynamickĂĄ rychlost snĂ­mkĆŻ" -#: ../src/v4l2uvc.c:93 +#: ../gview_v4l2core/v4l2_controls.c:85 msgid "Pan, Relative" msgstr "SledovĂĄnĂ­ objektu, RelativnĂ­" -#: ../src/v4l2uvc.c:94 +#: ../gview_v4l2core/v4l2_controls.c:86 msgid "Tilt, Relative" msgstr "NĂĄklon, RelativnĂ­" -#: ../src/v4l2uvc.c:95 +#: ../gview_v4l2core/v4l2_controls.c:87 msgid "Pan, Reset" msgstr "SledovĂĄnĂ­ objektu, Reset" -#: ../src/v4l2uvc.c:96 +#: ../gview_v4l2core/v4l2_controls.c:88 msgid "Tilt, Reset" msgstr "NĂĄklon, Reset" -#: ../src/v4l2uvc.c:97 +#: ../gview_v4l2core/v4l2_controls.c:89 msgid "Pan, Absolute" msgstr "SledovĂĄnĂ­ objektu, AbsolutnĂ­" -#: ../src/v4l2uvc.c:99 +#: ../gview_v4l2core/v4l2_controls.c:91 msgid "Focus, Absolute" msgstr "Ohnisko, AbsolutnĂ­" -#: ../src/v4l2uvc.c:100 +#: ../gview_v4l2core/v4l2_controls.c:92 msgid "Focus, Relative" msgstr "Ohnisko, RelativnĂ­" -#: ../src/v4l2uvc.c:101 +#: ../gview_v4l2core/v4l2_controls.c:93 msgid "Focus, Automatic" msgstr "ZaostƙenĂ­, Automaticky" -#: ../src/v4l2uvc.c:102 +#: ../gview_v4l2core/v4l2_controls.c:94 msgid "Zoom, Absolute" msgstr "PƙiblĂ­ĆŸenĂ­, AbsolutnĂ­" -#: ../src/v4l2uvc.c:103 +#: ../gview_v4l2core/v4l2_controls.c:95 msgid "Zoom, Relative" msgstr "PƙiblĂ­ĆŸenĂ­, RelativnĂ­" -#: ../src/v4l2uvc.c:104 +#: ../gview_v4l2core/v4l2_controls.c:96 msgid "Zoom, Continuous" msgstr "PƙiblĂ­ĆŸenĂ­, NepƙetrĆŸitĂ©" -#: ../src/v4l2uvc.c:105 +#: ../gview_v4l2core/v4l2_controls.c:97 msgid "Privacy" msgstr "Ochrana osobnĂ­ch ĂșdajĆŻ" #. UVC specific control strings -#: ../src/v4l2uvc.c:108 +#: ../gview_v4l2core/v4l2_controls.c:100 msgid "Exposure, Auto" msgstr "Expozive, Auto" -#: ../src/v4l2uvc.c:109 +#: ../gview_v4l2core/v4l2_controls.c:101 msgid "Exposure, Auto Priority" msgstr "Expozice Auto. prorita" -#: ../src/v4l2uvc.c:110 +#: ../gview_v4l2core/v4l2_controls.c:102 msgid "Exposure (Absolute)" msgstr "Expozice (AbsolutnĂ­)" -#: ../src/v4l2uvc.c:111 +#: ../gview_v4l2core/v4l2_controls.c:103 msgid "White Balance Temperature, Auto" msgstr "VyvĂĄĆŸenĂ­ bĂ­lĂ©, Auto" -#: ../src/v4l2uvc.c:112 +#: ../gview_v4l2core/v4l2_controls.c:104 msgid "White Balance Temperature" msgstr "VyvĂĄĆŸenĂ­ bĂ­lĂ©" -#: ../src/v4l2uvc.c:113 +#: ../gview_v4l2core/v4l2_controls.c:105 msgid "White Balance Component, Auto" msgstr "Komponenta vyvĂĄĆŸenĂ­ bĂ­lĂ©, Auto" -#: ../src/v4l2uvc.c:114 +#: ../gview_v4l2core/v4l2_controls.c:106 msgid "White Balance Blue Component" msgstr "ModrĂĄ sloĆŸka vyvĂĄĆŸenĂ­ bĂ­lĂ©" -#: ../src/v4l2uvc.c:115 +#: ../gview_v4l2core/v4l2_controls.c:107 msgid "White Balance Red Component" msgstr "ČervenĂĄ sloĆŸka vyvĂĄĆŸenĂ­ bĂ­lĂ©" #. libwebcam specific control strings -#: ../src/v4l2uvc.c:118 +#: ../gview_v4l2core/v4l2_controls.c:110 msgid "Focus" msgstr "ZaostƙenĂ­" -#: ../src/v4l2uvc.c:119 +#: ../gview_v4l2core/v4l2_controls.c:111 msgid "Focus (Absolute)" msgstr "Ohnisko (AbsolutnĂ­)" -#: ../src/vcodecs.c:63 +#: ../gview_v4l2core/v4l2_xu_ctrls.c:63 ../guvcview/gui_gtk3_v4l2ctrls.c:239 +msgid "Off" +msgstr "Vypnuto" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:64 ../guvcview/gui_gtk3_v4l2ctrls.c:239 +msgid "On" +msgstr "Zapnuto" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:65 ../guvcview/gui_gtk3_v4l2ctrls.c:239 +msgid "Blinking" +msgstr "BlikĂĄnĂ­" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:66 ../guvcview/gui_gtk3_v4l2ctrls.c:239 +msgid "Auto" +msgstr "Automaticky" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:73 +msgid "Pan (relative)" +msgstr "ZĂĄběr (relativnĂ­)" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:86 +msgid "Tilt (relative)" +msgstr "ZĂĄběr (relativnĂ­)" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:99 +msgid "Pan Reset" +msgstr "Reset zĂĄběru" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:112 +msgid "Tilt Reset" +msgstr "Obnovit" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:125 +msgid "Focus (absolute)" +msgstr "OstƙenĂ­ (absolutnĂ­)" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:138 +msgid "LED1 Mode" +msgstr "MĂłd LED1" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:151 +msgid "LED1 Frequency" +msgstr "Frekvence LED1" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:164 +msgid "Disable video processing" +msgstr "ZakĂĄzat zpracovĂĄnĂ­ videa" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:177 +msgid "Raw bits per pixel" +msgstr "Raw bity / pxel" + +#: ../gview_encoder/audio_codecs.c:63 +#, fuzzy +msgid "PCM - uncompressed (float 32 bit)" +msgstr "PCM - bez komprese (16 bitĆŻ)" + +#: ../gview_encoder/audio_codecs.c:80 +msgid "MP2 (MPEG audio layer 2)" +msgstr "" + +#: ../gview_encoder/audio_codecs.c:97 +msgid "MP3 (MPEG audio layer 3)" +msgstr "" + +#: ../gview_encoder/audio_codecs.c:118 +msgid "AC-3 (ATSC A/52A)" +msgstr "" + +#: ../gview_encoder/audio_codecs.c:139 +msgid "AAC (Advanced Audio Coding)" +msgstr "" + +#: ../gview_encoder/audio_codecs.c:160 +msgid "Vorbis" +msgstr "" + +#: ../gview_encoder/video_codecs.c:75 +#, fuzzy +msgid "Raw camera input" +msgstr "VĂœstup kamery:" + +#: ../gview_encoder/video_codecs.c:111 msgid "MJPG - compressed" msgstr "MJPG - komprimovanĂœ" -#: ../src/vcodecs.c:99 -msgid "YUY2 - uncomp YUV" -msgstr "YUY2 - uncomp YUV" - -#: ../src/vcodecs.c:135 -msgid "RGB - uncomp BMP" -msgstr "RGB - uncomp BMP" - -#: ../src/vcodecs.c:171 +#: ../gview_encoder/video_codecs.c:147 msgid "MPEG video 1" msgstr "MPEG video 1" -#: ../src/vcodecs.c:207 +#: ../gview_encoder/video_codecs.c:183 msgid "FLV1 - flash video 1" msgstr "FLV1 - flash video 1" -#: ../src/vcodecs.c:243 +#: ../gview_encoder/video_codecs.c:219 msgid "WMV1 - win. med. video 7" msgstr "WM1 - windows media video 7" -#: ../src/vcodecs.c:279 +#: ../gview_encoder/video_codecs.c:255 msgid "MPG2 - MPG2 format" msgstr "MPG2 - formĂĄt MPG2" -#: ../src/vcodecs.c:315 +#: ../gview_encoder/video_codecs.c:291 msgid "MS MP4 V3" msgstr "MS MP4 V3" -#: ../src/vcodecs.c:351 +#: ../gview_encoder/video_codecs.c:327 msgid "MPEG4-ASP" msgstr "MPEG4-ASP" -#: ../src/vcodecs.c:387 +#: ../gview_encoder/video_codecs.c:363 msgid "MPEG4-AVC (H264)" msgstr "MPEG4-AVC (H264)" -#: ../src/vcodecs.c:427 +#: ../gview_encoder/video_codecs.c:403 msgid "VP8 (VP8)" msgstr "" -#: ../src/vcodecs.c:463 -msgid "Theora (ogg theora)" -msgstr "" +#: ../gview_encoder/video_codecs.c:439 +msgid "Theora (ogg theora)" +msgstr "" + +#: ../guvcview/gui_gtk3_audioctrls.c:95 +msgid "Audio API:" +msgstr "API audia:" + +#: ../guvcview/gui_gtk3_audioctrls.c:106 +msgid "NO SOUND" +msgstr "" + +#: ../guvcview/gui_gtk3_audioctrls.c:107 +msgid "PORTAUDIO" +msgstr "PORTAUDIO" + +#: ../guvcview/gui_gtk3_audioctrls.c:110 +msgid "PULSEAUDIO" +msgstr "PULSEAUDIO" + +#: ../guvcview/gui_gtk3_audioctrls.c:127 +msgid "Input Device:" +msgstr "VstupnĂ­ zaƙízenĂ­:" + +#: ../guvcview/gui_gtk3_audioctrls.c:161 +msgid "Sample Rate:" +msgstr "VzorkovacĂ­ frekvence:" + +#: ../guvcview/gui_gtk3_audioctrls.c:168 ../guvcview/gui_gtk3_audioctrls.c:214 +msgid "Dev. Default" +msgstr "VĂœchozĂ­ zaƙízenĂ­" + +#: ../guvcview/gui_gtk3_audioctrls.c:207 +msgid "Channels:" +msgstr "KanĂĄly:" + +#: ../guvcview/gui_gtk3_audioctrls.c:215 +msgid "1 - mono" +msgstr "1 - mono" + +#: ../guvcview/gui_gtk3_audioctrls.c:216 +msgid "2 - stereo" +msgstr "2 - stereo" + +#: ../guvcview/gui_gtk3_audioctrls.c:235 +#, fuzzy +msgid "---- Audio Filters ----" +msgstr "---- Filtry videa ----" + +#. Echo FX +#: ../guvcview/gui_gtk3_audioctrls.c:255 +msgid " Echo" +msgstr " Zobrazit" + +#. Reverb FX +#: ../guvcview/gui_gtk3_audioctrls.c:268 +msgid " Reverb" +msgstr " Ozvěna" + +#. Fuzz FX +#: ../guvcview/gui_gtk3_audioctrls.c:281 +msgid " Fuzz" +msgstr " Fuzz" + +#. WahWah FX +#: ../guvcview/gui_gtk3_audioctrls.c:294 +msgid " WahWah" +msgstr " WahWah" + +#. Ducky FX +#: ../guvcview/gui_gtk3_audioctrls.c:307 +msgid " Ducky" +msgstr " Ducky" + +#: ../guvcview/gui_gtk3.c:310 ../guvcview/gui_gtk3_callbacks.c:749 +msgid "Stop Video (V)" +msgstr "" + +#. video button +#: ../guvcview/gui_gtk3.c:315 ../guvcview/gui_gtk3.c:600 +#: ../guvcview/gui_gtk3_callbacks.c:755 +msgid "Cap. Video (V)" +msgstr "" + +#: ../guvcview/gui_gtk3.c:376 ../guvcview/gui_gtk3.c:383 +msgid "Error" +msgstr "Chyba" + +#: ../guvcview/gui_gtk3.c:379 ../guvcview/gui_gtk3.c:386 +#: ../guvcview/gui_gtk3_callbacks.c:2097 +msgid "_Ok" +msgstr "" + +#: ../guvcview/gui_gtk3.c:380 ../guvcview/gui_gtk3_callbacks.c:185 +#: ../guvcview/gui_gtk3_callbacks.c:199 ../guvcview/gui_gtk3_callbacks.c:522 +#: ../guvcview/gui_gtk3_callbacks.c:624 ../guvcview/gui_gtk3_callbacks.c:1755 +#: ../guvcview/gui_gtk3_callbacks.c:2098 +#, fuzzy +msgid "_Cancel" +msgstr "zruĆĄit" + +#: ../guvcview/gui_gtk3.c:407 +msgid "" +"\n" +"You have more than one video device installed.\n" +"Do you want to try another one ?\n" +msgstr "" +"\n" +"MĂĄte nainstalovĂĄno vĂ­ce neĆŸ jedno zaƙízenĂ­ pro video.\n" +"Chcete zkusit dalĆĄĂ­ ?\n" + +#. ---- Devices ---- +#: ../guvcview/gui_gtk3.c:414 ../guvcview/gui_gtk3_videoctrls.c:106 +msgid "Device:" +msgstr "ZaƙízenĂ­:" + +#: ../guvcview/gui_gtk3.c:516 +msgid "Guvcview Video Capture" +msgstr "ZachycenĂ­ videa Gucview" + +#: ../guvcview/gui_gtk3.c:525 +#, fuzzy +msgid "Guvcview" +msgstr "guvcview" + +#: ../guvcview/gui_gtk3.c:572 +msgid "Stop Cap. (I)" +msgstr "" + +#: ../guvcview/gui_gtk3.c:578 ../guvcview/gui_gtk3_callbacks.c:720 +#: ../guvcview/video_capture.c:250 +msgid "Cap. Image (I)" +msgstr "" + +#. quit button +#. GtkWidget *quitButton = gtk_button_new_from_stock(GTK_STOCK_QUIT); +#: ../guvcview/gui_gtk3.c:621 +msgid "_Quit" +msgstr "" + +#: ../guvcview/gui_gtk3.c:667 +msgid "Image Controls" +msgstr "OvlĂĄdĂĄnĂ­ obrazĆŻ" + +#: ../guvcview/gui_gtk3.c:703 +#, fuzzy +msgid "H264 Controls" +msgstr "UĆŸivatelkĂĄ nastavenĂ­" + +#: ../guvcview/gui_gtk3.c:742 +#, fuzzy +msgid "Video Controls" +msgstr "UĆŸivatelkĂĄ nastavenĂ­" + +#: ../guvcview/gui_gtk3.c:777 +#, fuzzy +msgid "Audio Controls" +msgstr "UĆŸivatelkĂĄ nastavenĂ­" + +#: ../guvcview/gui_gtk3_callbacks.c:182 ../guvcview/gui_gtk3_menu.c:72 +msgid "Save Profile" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:186 ../guvcview/gui_gtk3_callbacks.c:523 +#: ../guvcview/gui_gtk3_callbacks.c:625 +msgid "_Save" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:196 ../guvcview/gui_gtk3_menu.c:71 +msgid "Load Profile" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:200 +msgid "_Open" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:208 ../guvcview/gui_gtk3_callbacks.c:531 +#: ../guvcview/gui_gtk3_callbacks.c:634 +msgid "File Format:" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:220 +msgid "gpfl (*.gpfl)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:221 +msgid "any (*.*)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:519 +#, fuzzy +msgid "Photo file name" +msgstr "NĂĄzev souboru orazu" + +#: ../guvcview/gui_gtk3_callbacks.c:543 +msgid "Raw (*.raw)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:544 +msgid "Jpeg (*.jpg)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:545 +msgid "Png (*.png)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:546 +msgid "Bmp (*.bmp)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:621 +#, fuzzy +msgid "Video file name" +msgstr "NĂĄzev souboru orazu" + +#: ../guvcview/gui_gtk3_callbacks.c:646 +msgid "Matroska (*.mkv)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:647 +msgid "WebM (*.webm)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:648 +msgid "Avi (*.avi)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:1158 +msgid "start new" +msgstr "spustit novĂœ" + +#: ../guvcview/gui_gtk3_callbacks.c:1161 +msgid "restart" +msgstr "restart" + +#: ../guvcview/gui_gtk3_callbacks.c:1163 +msgid "new" +msgstr "novĂœ" + +#: ../guvcview/gui_gtk3_callbacks.c:1165 +msgid "cancel" +msgstr "zruĆĄit" + +#: ../guvcview/gui_gtk3_callbacks.c:1170 +msgid "" +"launch new process or restart?.\n" +"\n" +msgstr "" +"Spustit novĂœ proces nebo restartovat?.\n" +"\n" + +#: ../guvcview/gui_gtk3_callbacks.c:1751 +#, fuzzy +msgid "video codec values" +msgstr "hodnoty audio kodeku" + +#: ../guvcview/gui_gtk3_callbacks.c:1754 +msgid "_OK" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:1760 +msgid "" +" encoder fps: \n" +" (0 - use fps combobox value)" +msgstr "" +" fps enkodĂ©ru: \n" +" (0 - pouĆŸĂ­t hodnotu fps z pole)" + +#: ../guvcview/gui_gtk3_callbacks.c:1773 +msgid " monotonic pts" +msgstr " monotĂłnĂ­ch bodĆŻ" + +#. bit rate +#: ../guvcview/gui_gtk3_callbacks.c:1780 ../guvcview/gui_gtk3_callbacks.c:2105 +msgid "bit rate: " +msgstr "pƙenosovĂĄ rychlost: " + +#: ../guvcview/gui_gtk3_callbacks.c:1793 +msgid "qmax: " +msgstr "qmax: " + +#: ../guvcview/gui_gtk3_callbacks.c:1806 +msgid "qmin: " +msgstr "qmin: " + +#: ../guvcview/gui_gtk3_callbacks.c:1819 +msgid "max. qdiff: " +msgstr "max. qdiff: " + +#: ../guvcview/gui_gtk3_callbacks.c:1832 +msgid "dia size: " +msgstr "velikost dia: " -#: ../src/video_format.c:43 -msgid "AVI - avi format" -msgstr "AVI - formĂĄt avi" +#: ../guvcview/gui_gtk3_callbacks.c:1845 +msgid "pre dia size: " +msgstr "velikost pre dia: " -#: ../src/video_format.c:52 -msgid "MKV - Matroska format" -msgstr "MKV - formĂĄt Matroska" +#: ../guvcview/gui_gtk3_callbacks.c:1858 +msgid "pre me: " +msgstr "pre me: " -#: ../src/video_format.c:61 -msgid "WEBM - format" -msgstr "" +#: ../guvcview/gui_gtk3_callbacks.c:1871 +msgid "pre cmp: " +msgstr "pre cmp: " -#: ../src/video_tab.c:216 -msgid "Frame Rate:" -msgstr "SnĂ­mkovĂœ kmitočet" +#: ../guvcview/gui_gtk3_callbacks.c:1884 +msgid "cmp: " +msgstr "cmp: " -#: ../src/video_tab.c:223 -msgid " Show" -msgstr " Zobrazit" +#: ../guvcview/gui_gtk3_callbacks.c:1897 +msgid "sub cmp: " +msgstr "pod cmp: " -#: ../src/video_tab.c:245 -msgid "Resolution:" -msgstr "RozliĆĄenĂ­:" +#: ../guvcview/gui_gtk3_callbacks.c:1910 +msgid "last predictor count: " +msgstr "poslednĂ­ počet prediktoru: " -#: ../src/video_tab.c:271 -msgid "Camera Output:" -msgstr "VĂœstup kamery:" +#: ../guvcview/gui_gtk3_callbacks.c:1923 +msgid "gop size: " +msgstr "velikost gop: " -#: ../src/video_tab.c:293 -msgid "Apply" -msgstr "PouĆŸĂ­t" +#: ../guvcview/gui_gtk3_callbacks.c:1936 +msgid "qcompress: " +msgstr "qkomprese: " -#: ../src/video_tab.c:300 -msgid "Quality:" -msgstr "Kvalita:" +#: ../guvcview/gui_gtk3_callbacks.c:1949 +msgid "qblur: " +msgstr "qrozmazĂĄnĂ­: " -#: ../src/video_tab.c:310 -msgid "---- Video Filters ----" -msgstr "---- Filtry videa ----" +#: ../guvcview/gui_gtk3_callbacks.c:1962 +msgid "subq: " +msgstr "subq: " -#. Mirror -#: ../src/video_tab.c:329 -msgid " Mirror" -msgstr " Zrcadlo" +#: ../guvcview/gui_gtk3_callbacks.c:1975 +msgid "framerefs: " +msgstr "framerefs: " -#. Upturn -#: ../src/video_tab.c:340 -msgid " Invert" -msgstr " Invertovat" +#: ../guvcview/gui_gtk3_callbacks.c:1988 +msgid "me method: " +msgstr "metoda me: " -#. Negate -#: ../src/video_tab.c:351 -msgid " Negative" -msgstr " Negativ" +#: ../guvcview/gui_gtk3_callbacks.c:2001 +msgid "mb decision: " +msgstr "rozhodnutĂ­ mb: " -#. Mono -#: ../src/video_tab.c:362 -msgid " Mono" -msgstr " Mono" +#: ../guvcview/gui_gtk3_callbacks.c:2014 +msgid "max B frames: " +msgstr "max B rĂĄmečkĆŻ: " -#. Pieces -#: ../src/video_tab.c:374 -msgid " Pieces" -msgstr " KouskĆŻ" +#: ../guvcview/gui_gtk3_callbacks.c:2027 +msgid "num threads: " +msgstr "počet vlĂĄken: " -#. Particles -#: ../src/video_tab.c:386 -msgid " Particles" -msgstr " ČástĂ­" +#: ../guvcview/gui_gtk3_callbacks.c:2094 +msgid "audio codec values" +msgstr "hodnoty audio kodeku" -#: ../src/uvc_h264.c:596 -msgid "H264 Controls" +#. sample format +#: ../guvcview/gui_gtk3_callbacks.c:2119 +msgid "sample format: " msgstr "" -#: ../src/uvc_h264.c:615 +#: ../guvcview/gui_gtk3_h264ctrls.c:622 +#, fuzzy msgid "Rate Control Mode:" -msgstr "" +msgstr "OvlĂĄdĂĄnĂ­ obrazĆŻ" -#: ../src/uvc_h264.c:626 +#: ../guvcview/gui_gtk3_h264ctrls.c:633 msgid "CBR" msgstr "" -#: ../src/uvc_h264.c:629 +#: ../guvcview/gui_gtk3_h264ctrls.c:636 msgid "VBR" msgstr "" -#: ../src/uvc_h264.c:633 +#: ../guvcview/gui_gtk3_h264ctrls.c:640 msgid "Constant QP" msgstr "" -#: ../src/uvc_h264.c:651 +#: ../guvcview/gui_gtk3_h264ctrls.c:658 msgid "Rate Control Mode flags:" msgstr "" -#: ../src/uvc_h264.c:676 +#: ../guvcview/gui_gtk3_h264ctrls.c:683 msgid "Temporal Scale Mode:" msgstr "" -#: ../src/uvc_h264.c:704 +#: ../guvcview/gui_gtk3_h264ctrls.c:711 msgid "Spatial Scale Mode:" msgstr "" -#: ../src/uvc_h264.c:737 +#: ../guvcview/gui_gtk3_h264ctrls.c:741 msgid "Frame Interval (100ns units):" msgstr "" -#: ../src/uvc_h264.c:772 +#: ../guvcview/gui_gtk3_h264ctrls.c:778 +#, fuzzy msgid "Bit Rate:" -msgstr "" +msgstr "pƙenosovĂĄ rychlost: " -#: ../src/uvc_h264.c:795 +#: ../guvcview/gui_gtk3_h264ctrls.c:801 msgid "Hints:" msgstr "" -#: ../src/uvc_h264.c:800 +#: ../guvcview/gui_gtk3_h264ctrls.c:806 +#, fuzzy msgid "Resolution" -msgstr "" +msgstr "RozliĆĄenĂ­:" -#: ../src/uvc_h264.c:804 +#: ../guvcview/gui_gtk3_h264ctrls.c:810 msgid "Profile" msgstr "" -#: ../src/uvc_h264.c:808 +#: ../guvcview/gui_gtk3_h264ctrls.c:814 +#, fuzzy msgid "Rate Control" -msgstr "" +msgstr "OvlĂĄdĂĄnĂ­ obrazĆŻ" -#: ../src/uvc_h264.c:812 +#: ../guvcview/gui_gtk3_h264ctrls.c:818 msgid "Usage Type" msgstr "" -#: ../src/uvc_h264.c:816 +#: ../guvcview/gui_gtk3_h264ctrls.c:822 msgid "Slice Mode" msgstr "" -#: ../src/uvc_h264.c:820 +#: ../guvcview/gui_gtk3_h264ctrls.c:826 msgid "Slice Unit" msgstr "" -#: ../src/uvc_h264.c:824 +#: ../guvcview/gui_gtk3_h264ctrls.c:830 msgid "MVC View" msgstr "" -#: ../src/uvc_h264.c:828 +#: ../guvcview/gui_gtk3_h264ctrls.c:834 msgid "Temporal Scale" msgstr "" -#: ../src/uvc_h264.c:832 +#: ../guvcview/gui_gtk3_h264ctrls.c:838 msgid "SNR Scale" msgstr "" -#: ../src/uvc_h264.c:836 +#: ../guvcview/gui_gtk3_h264ctrls.c:842 msgid "Spatial Scale" msgstr "" -#: ../src/uvc_h264.c:840 +#: ../guvcview/gui_gtk3_h264ctrls.c:846 msgid "Spatial Layer Ratio" msgstr "" -#: ../src/uvc_h264.c:844 +#: ../guvcview/gui_gtk3_h264ctrls.c:850 +#, fuzzy msgid "Frame Interval" -msgstr "" +msgstr "SnĂ­mkovĂœ kmitočet" -#: ../src/uvc_h264.c:848 +#: ../guvcview/gui_gtk3_h264ctrls.c:854 msgid "Leaky Bucket Size" msgstr "" -#: ../src/uvc_h264.c:852 +#: ../guvcview/gui_gtk3_h264ctrls.c:858 msgid "Bit Rate" msgstr "" -#: ../src/uvc_h264.c:856 ../src/uvc_h264.c:1250 +#: ../guvcview/gui_gtk3_h264ctrls.c:862 ../guvcview/gui_gtk3_h264ctrls.c:1220 msgid "CABAC" msgstr "" -#: ../src/uvc_h264.c:860 +#: ../guvcview/gui_gtk3_h264ctrls.c:866 msgid "(I) Frame Period" msgstr "" -#: ../src/uvc_h264.c:907 +#: ../guvcview/gui_gtk3_h264ctrls.c:878 msgid "Slice Mode:" msgstr "" -#: ../src/uvc_h264.c:914 +#: ../guvcview/gui_gtk3_h264ctrls.c:885 msgid "no multiple slices" msgstr "" -#: ../src/uvc_h264.c:916 +#: ../guvcview/gui_gtk3_h264ctrls.c:887 msgid "bits/slice" msgstr "" -#: ../src/uvc_h264.c:918 +#: ../guvcview/gui_gtk3_h264ctrls.c:889 msgid "Mbits/slice" msgstr "" -#: ../src/uvc_h264.c:920 +#: ../guvcview/gui_gtk3_h264ctrls.c:891 msgid "slices/frame" msgstr "" -#: ../src/uvc_h264.c:929 +#: ../guvcview/gui_gtk3_h264ctrls.c:900 msgid "Slice Units:" msgstr "" -#: ../src/uvc_h264.c:950 +#: ../guvcview/gui_gtk3_h264ctrls.c:921 msgid "Profile:" msgstr "" -#: ../src/uvc_h264.c:957 +#: ../guvcview/gui_gtk3_h264ctrls.c:928 msgid "Baseline Profile" msgstr "" -#: ../src/uvc_h264.c:959 +#: ../guvcview/gui_gtk3_h264ctrls.c:930 msgid "Main Profile" msgstr "" -#: ../src/uvc_h264.c:961 +#: ../guvcview/gui_gtk3_h264ctrls.c:932 msgid "High Profile" msgstr "" -#: ../src/uvc_h264.c:963 +#: ../guvcview/gui_gtk3_h264ctrls.c:934 msgid "Scalable Baseline Profile" msgstr "" -#: ../src/uvc_h264.c:965 +#: ../guvcview/gui_gtk3_h264ctrls.c:936 msgid "Scalable High Profile" msgstr "" -#: ../src/uvc_h264.c:967 +#: ../guvcview/gui_gtk3_h264ctrls.c:938 msgid "Multiview High Profile" msgstr "" -#: ../src/uvc_h264.c:969 +#: ../guvcview/gui_gtk3_h264ctrls.c:940 msgid "Stereo High Profile" msgstr "" -#: ../src/uvc_h264.c:1008 +#: ../guvcview/gui_gtk3_h264ctrls.c:979 msgid "Profile flags:" msgstr "" -#: ../src/uvc_h264.c:1033 +#: ../guvcview/gui_gtk3_h264ctrls.c:1004 msgid "(I) Frame Period (ms):" msgstr "" -#: ../src/uvc_h264.c:1054 +#: ../guvcview/gui_gtk3_h264ctrls.c:1025 msgid "Estimated Video Delay (ms):" msgstr "" -#: ../src/uvc_h264.c:1075 +#: ../guvcview/gui_gtk3_h264ctrls.c:1046 msgid "Estimated Max Config Delay (ms):" msgstr "" -#: ../src/uvc_h264.c:1096 +#: ../guvcview/gui_gtk3_h264ctrls.c:1067 msgid "Usage Type:" msgstr "" -#: ../src/uvc_h264.c:1103 +#: ../guvcview/gui_gtk3_h264ctrls.c:1074 msgid "Real-time" msgstr "" -#: ../src/uvc_h264.c:1105 +#: ../guvcview/gui_gtk3_h264ctrls.c:1076 msgid "Broadcast" msgstr "" -#: ../src/uvc_h264.c:1107 +#: ../guvcview/gui_gtk3_h264ctrls.c:1078 msgid "Storage" msgstr "" -#: ../src/uvc_h264.c:1109 +#: ../guvcview/gui_gtk3_h264ctrls.c:1080 msgid "(0) Non-scalable single layer AVC" msgstr "" -#: ../src/uvc_h264.c:1111 +#: ../guvcview/gui_gtk3_h264ctrls.c:1082 msgid "(1) SVC temporal scalability with hierarchical P" msgstr "" -#: ../src/uvc_h264.c:1113 +#: ../guvcview/gui_gtk3_h264ctrls.c:1084 msgid "(2q) SVC temporal scalability + Quality/SNR scalability" msgstr "" -#: ../src/uvc_h264.c:1115 +#: ../guvcview/gui_gtk3_h264ctrls.c:1086 msgid "(2s) SVC temporal scalability + spatial scalability" msgstr "" -#: ../src/uvc_h264.c:1117 +#: ../guvcview/gui_gtk3_h264ctrls.c:1088 msgid "(3) Full SVC scalability" msgstr "" -#: ../src/uvc_h264.c:1131 +#: ../guvcview/gui_gtk3_h264ctrls.c:1102 msgid "SNR Control Mode:" msgstr "" -#: ../src/uvc_h264.c:1138 +#: ../guvcview/gui_gtk3_h264ctrls.c:1109 msgid "No SNR Enhancement Layer" msgstr "" -#: ../src/uvc_h264.c:1140 +#: ../guvcview/gui_gtk3_h264ctrls.c:1111 msgid "CGS NonRewrite (2 Layer)" msgstr "" -#: ../src/uvc_h264.c:1142 +#: ../guvcview/gui_gtk3_h264ctrls.c:1113 msgid "CGS NonRewrite (3 Layer)" msgstr "" -#: ../src/uvc_h264.c:1144 +#: ../guvcview/gui_gtk3_h264ctrls.c:1115 msgid "CGS Rewrite (2 Layer)" msgstr "" -#: ../src/uvc_h264.c:1146 +#: ../guvcview/gui_gtk3_h264ctrls.c:1117 msgid "CGS Rewrite (3 Layer)" msgstr "" -#: ../src/uvc_h264.c:1148 +#: ../guvcview/gui_gtk3_h264ctrls.c:1119 msgid "MGS (2 Layer)" msgstr "" -#: ../src/uvc_h264.c:1173 +#: ../guvcview/gui_gtk3_h264ctrls.c:1144 msgid "Stream Mux Enable" msgstr "" -#: ../src/uvc_h264.c:1180 +#: ../guvcview/gui_gtk3_h264ctrls.c:1151 msgid "Embed H.264 aux stream" msgstr "" -#: ../src/uvc_h264.c:1182 +#: ../guvcview/gui_gtk3_h264ctrls.c:1153 msgid "Embed YUY2 aux stream" msgstr "" -#: ../src/uvc_h264.c:1184 +#: ../guvcview/gui_gtk3_h264ctrls.c:1155 msgid "Embed NV12 aux stream" msgstr "" -#: ../src/uvc_h264.c:1204 +#: ../guvcview/gui_gtk3_h264ctrls.c:1175 msgid "MJPG payload container" msgstr "" -#: ../src/uvc_h264.c:1219 +#: ../guvcview/gui_gtk3_h264ctrls.c:1189 msgid "Stream Format:" msgstr "" -#: ../src/uvc_h264.c:1227 +#: ../guvcview/gui_gtk3_h264ctrls.c:1197 msgid "Byte stream format (H.264 Annex-B)" msgstr "" -#: ../src/uvc_h264.c:1229 +#: ../guvcview/gui_gtk3_h264ctrls.c:1199 +#, fuzzy msgid "NAL stream format" -msgstr "" +msgstr "AVI - formĂĄt avi" -#: ../src/uvc_h264.c:1240 +#: ../guvcview/gui_gtk3_h264ctrls.c:1210 msgid "Entropy CABAC:" msgstr "" -#: ../src/uvc_h264.c:1248 +#: ../guvcview/gui_gtk3_h264ctrls.c:1218 msgid "CAVLC" msgstr "" -#: ../src/uvc_h264.c:1261 +#: ../guvcview/gui_gtk3_h264ctrls.c:1231 msgid "Picture timing SEI" msgstr "" -#: ../src/uvc_h264.c:1268 +#: ../guvcview/gui_gtk3_h264ctrls.c:1238 +#, fuzzy msgid "B Frames:" -msgstr "" +msgstr "max B rĂĄmečkĆŻ: " -#: ../src/uvc_h264.c:1293 +#: ../guvcview/gui_gtk3_h264ctrls.c:1263 msgid "Preview Flipped" msgstr "" -#: ../src/uvc_h264.c:1300 +#: ../guvcview/gui_gtk3_h264ctrls.c:1270 msgid "Additional MVC Views:" msgstr "" -#: ../src/uvc_h264.c:1325 +#: ../guvcview/gui_gtk3_h264ctrls.c:1295 msgid "Simulcast stream index:" msgstr "" -#: ../src/uvc_h264.c:1350 +#: ../guvcview/gui_gtk3_h264ctrls.c:1320 msgid "Spatial Layer Ratio:" msgstr "" -#: ../src/uvc_h264.c:1379 +#: ../guvcview/gui_gtk3_h264ctrls.c:1349 msgid "Leaky Bucket Size (ms):" msgstr "" #. encoder reset -#: ../src/uvc_h264.c:1406 +#: ../guvcview/gui_gtk3_h264ctrls.c:1376 +#, fuzzy msgid "Encoder Reset" -msgstr "" +msgstr "Reset zĂĄběru" -#. -#. h264_controls->probe_button = gtk_button_new_with_label(_("PROBE")); -#. g_signal_connect (GTK_BUTTON(h264_controls->probe_button), "clicked", +#. +#. GtkWidget *probe_button = gtk_button_new_with_label(_("PROBE")); +#. g_signal_connect (GTK_BUTTON(probe_button), "clicked", #. G_CALLBACK (h264_probe_button_clicked), all_data); -#. -#. gtk_grid_attach (GTK_GRID(table), h264_controls->probe_button, 0, line, 1 ,1); -#. gtk_widget_show(h264_controls->probe_button); -#. -#: ../src/uvc_h264.c:1421 +#. +#. gtk_grid_attach (GTK_GRID(h264_controls_grid), probe_button, 0, line, 1 ,1); +#. gtk_widget_show(probe_button); +#. +#: ../guvcview/gui_gtk3_h264ctrls.c:1391 msgid "COMMIT" msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:70 +msgid "Settings" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:73 +msgid "Hardware Defaults" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:81 +msgid "Camera Button" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:86 +msgid "Capture Image" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:91 +msgid "Capture Video" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:134 +msgid "Photo" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:135 ../guvcview/gui_gtk3_menu.c:159 +msgid "File" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:136 ../guvcview/gui_gtk3_menu.c:160 +msgid "Increment Filename" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:158 +msgid "Video" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:175 +msgid "Video Codec" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:202 +msgid "Video Codec Properties" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:208 +msgid "Audio Codec" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:235 +msgid "Audio Codec Properties" +msgstr "" + +#: ../guvcview/gui_gtk3_v4l2ctrls.c:174 +msgid "Left" +msgstr "Vlevo" + +#: ../guvcview/gui_gtk3_v4l2ctrls.c:175 +msgid "Right" +msgstr "Vpravo" + +#: ../guvcview/gui_gtk3_v4l2ctrls.c:179 +msgid "Down" +msgstr "DolĆŻ" + +#: ../guvcview/gui_gtk3_v4l2ctrls.c:180 +msgid "Up" +msgstr "Nahoru" + +#. turn it into a menu control +#: ../guvcview/gui_gtk3_v4l2ctrls.c:296 +msgid "8 bit" +msgstr "8 bitĆŻ" + +#: ../guvcview/gui_gtk3_v4l2ctrls.c:296 +msgid "12 bit" +msgstr "12 bitĆŻ" + +#. add a virtual control for software autofocus +#: ../guvcview/gui_gtk3_v4l2ctrls.c:348 +msgid "Auto Focus (continuous)" +msgstr "AutomatickĂ© ostƙenĂ­ (pozvolnĂ©)" + +#: ../guvcview/gui_gtk3_v4l2ctrls.c:349 +msgid "set Focus" +msgstr "nastavit OstƙenĂ­" + +#. control_widgets_list[n].widget2 = gtk_button_new_from_stock(GTK_STOCK_APPLY); +#. control_widgets_list[n].widget2= gtk_button_new_from_stock(GTK_STOCK_APPLY); +#. control_widgets_list[n].widget2 = gtk_button_new_from_stock(GTK_STOCK_APPLY); +#: ../guvcview/gui_gtk3_v4l2ctrls.c:433 ../guvcview/gui_gtk3_v4l2ctrls.c:456 +#: ../guvcview/gui_gtk3_v4l2ctrls.c:478 +#, fuzzy +msgid "_Apply" +msgstr "PouĆŸĂ­t" + +#: ../guvcview/gui_gtk3_videoctrls.c:144 +msgid "Frame Rate:" +msgstr "SnĂ­mkovĂœ kmitočet" + +#: ../guvcview/gui_gtk3_videoctrls.c:204 +msgid "Resolution:" +msgstr "RozliĆĄenĂ­:" + +#: ../guvcview/gui_gtk3_videoctrls.c:254 +msgid "Camera Output:" +msgstr "VĂœstup kamery:" + +#: ../guvcview/gui_gtk3_videoctrls.c:287 +msgid "---- Video Filters ----" +msgstr "---- Filtry videa ----" + +#. Mirror FX +#: ../guvcview/gui_gtk3_videoctrls.c:307 +msgid " Mirror" +msgstr " Zrcadlo" + +#. Upturn FX +#: ../guvcview/gui_gtk3_videoctrls.c:319 +msgid " Invert" +msgstr " Invertovat" + +#. Negate FX +#: ../guvcview/gui_gtk3_videoctrls.c:331 +msgid " Negative" +msgstr " Negativ" + +#. Mono FX +#: ../guvcview/gui_gtk3_videoctrls.c:343 +msgid " Mono" +msgstr " Mono" + +#. Pieces FX +#: ../guvcview/gui_gtk3_videoctrls.c:356 +msgid " Pieces" +msgstr " KouskĆŻ" + +#. Particles +#: ../guvcview/gui_gtk3_videoctrls.c:369 +msgid " Particles" +msgstr " ČástĂ­" + +#: ../guvcview/options.c:51 +msgid "Print help" +msgstr "" + +#: ../guvcview/options.c:58 +#, fuzzy +msgid "Print version" +msgstr "VypĂ­ĆĄe verzi" + +#: ../guvcview/options.c:64 +msgid "LEVEL" +msgstr "" + +#: ../guvcview/options.c:65 +msgid "Set Verbosity level (def: 0)" +msgstr "" + +#: ../guvcview/options.c:71 +msgid "DEVICE" +msgstr "" + +#: ../guvcview/options.c:72 +#, fuzzy +msgid "Set device name (def: /dev/video0)" +msgstr "Video zaƙízenĂ­ [vĂœchozĂ­ /dev/video0]" + +#: ../guvcview/options.c:78 +msgid "METHOD" +msgstr "" + +#: ../guvcview/options.c:79 +#, fuzzy +msgid "Set capture method [read | mmap (def)]" +msgstr "Metoda zachycenĂ­ (1-mmap (vĂœchozĂ­) 2-read)" + +#: ../guvcview/options.c:85 +msgid "WIDTHxHEIGHT" +msgstr "" + +#: ../guvcview/options.c:86 +msgid "Request resolution (e.g 640x480)" +msgstr "" + +#: ../guvcview/options.c:92 +msgid "FOURCC" +msgstr "" + +#: ../guvcview/options.c:93 +msgid "Request format (e.g MJPG)" +msgstr "" + +#: ../guvcview/options.c:99 +msgid "RENDER_API" +msgstr "" + +#: ../guvcview/options.c:100 +msgid "Select render API (e.g none; sdl)" +msgstr "" + +#: ../guvcview/options.c:106 +msgid "AUDIO_API" +msgstr "" + +#: ../guvcview/options.c:107 +msgid "Select audio API (e.g none; port; pulse)" +msgstr "" + +#: ../guvcview/options.c:113 +msgid "AUDIO_DEVICE" +msgstr "" + +#: ../guvcview/options.c:114 +msgid "Select audio device index for selected api (0..N)" +msgstr "" + +#: ../guvcview/options.c:120 +msgid "GUI_API" +msgstr "" + +#: ../guvcview/options.c:121 +msgid "Select GUI API (e.g none; gtk3)" +msgstr "" + +#: ../guvcview/options.c:127 ../guvcview/options.c:134 +msgid "CODEC" +msgstr "" + +#: ../guvcview/options.c:128 +msgid "Audio codec [pcm mp2 mp3 aac ac3 vorb]" +msgstr "" + +#: ../guvcview/options.c:135 +msgid "Video codec [raw mjpg mpeg flv1 wmv1 mpg2 mp43 dx50 h264 vp80 theo]" +msgstr "" + +#: ../guvcview/options.c:141 ../guvcview/options.c:148 +#: ../guvcview/options.c:155 +msgid "FILENAME" +msgstr "" + +#: ../guvcview/options.c:142 +msgid "load control profile" +msgstr "" + +#: ../guvcview/options.c:149 +msgid "filename for captured video)" +msgstr "" + +#: ../guvcview/options.c:156 +msgid "filename for captured image)" +msgstr "" + +#: ../guvcview/options.c:162 ../guvcview/options.c:169 +msgid "TIME_IN_SEC" +msgstr "" + +#: ../guvcview/options.c:163 +msgid "time (double) in sec. for video capture)" +msgstr "" + +#: ../guvcview/options.c:170 +msgid "time (double) in sec. between captured photos)" +msgstr "" + +#: ../guvcview/options.c:176 +msgid "TOTAL" +msgstr "" + +#: ../guvcview/options.c:177 +msgid "total number of captured photos)" +msgstr "" + +#: ../guvcview/options.c:184 +msgid "Start in control panel mode" +msgstr "" + +#: ../guvcview/options.c:307 +#, fuzzy, c-format +msgid "" +"Guvcview version %s\n" +"\n" +msgstr "VarovĂĄnĂ­ Guvcview:" + +#: ../guvcview/options.c:308 +#, c-format +msgid "" +"Usage:\n" +" guvcview [OPTIONS]\n" +"\n" +msgstr "" + +#: ../guvcview/options.c:309 +#, c-format +msgid "OPTIONS:\n" +msgstr "" + +#: ../guvcview/video_capture.c:819 +#, c-format +msgid "saving video to %s" +msgstr "" + +#. if(debug_level > 1) +#. printf("GUVCVIEW: saving image to %s\n", img_filename); +#: ../guvcview/video_capture.c:1069 +#, c-format +msgid "saving image to %s" +msgstr "" + +#~ msgid "MPEG2 - (lavc)" +#~ msgstr "MPEG2 - (lavc)" + +#~ msgid "MP3 - (lavc)" +#~ msgstr "MP3 - (lavc)" + +#~ msgid "Dolby AC3 - (lavc)" +#~ msgstr "Dolby AC3 - (lavc)" + +#~ msgid "ACC Low - (faac)" +#~ msgstr "NizkĂ© ACC - (faac)" + +#~ msgid "Audio" +#~ msgstr "Zvuk" + +#~ msgid " Sound" +#~ msgstr " Zvuk" + +#~ msgid " Show VU meter" +#~ msgstr " Zobrazit metr VU" + +#~ msgid "---- Audio Effects ----" +#~ msgstr "---- ZvukovĂ© efekty ----" + +#~ msgid "Save File" +#~ msgstr "UloĆŸit soubor" + +#~ msgid "codec values" +#~ msgstr "hodnoty kodeku" + +#~ msgid "Cap. Video" +#~ msgstr "Zazn. Video" + +#~ msgid "GUVCViewer Controls" +#~ msgstr "OvlĂĄdĂĄnĂ­ GUVCViewer" + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to open device" +#~ msgstr "" +#~ "ChybaGuvcview:\n" +#~ "\n" +#~ "Nelze otevƙít zaƙízenĂ­" + +#~ msgid "" +#~ "Please make sure the camera is connected\n" +#~ "and that the correct driver is installed." +#~ msgstr "" +#~ "Ujistěte se prosĂ­m, ĆŸe vaĆĄe kamera je pƙipojena,\n" +#~ "a ĆŸe mĂĄte nainstalovĂĄn sprĂĄvnĂœ ovladač." + +#~ msgid "" +#~ "Guvcview:\n" +#~ "\n" +#~ "UVC Extension controls" +#~ msgstr "" +#~ "Guvcview\n" +#~ "\n" +#~ "RozơíƙenĂ© ovlĂĄdĂĄnĂ­ UVC" + +#~ msgid "Extension controls were added to the UVC driver" +#~ msgstr "RozơíƙenĂ© ovlĂĄdĂĄnĂ­ bylo pƙidĂĄno do UVC ovladače" + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "UVC Extension controls" +#~ msgstr "" +#~ "Chyba Guvcview\n" +#~ "\n" +#~ "RozơíƙenĂ© ovlĂĄdĂĄnĂ­ UCV" + +#~ msgid "" +#~ "An error occurred while adding extension\n" +#~ "controls to the UVC driver\n" +#~ "Make sure you run guvcview as root (or sudo)." +#~ msgstr "" +#~ "Nastala chyba pƙi pƙidĂĄnĂ­ rozơíƙenĂ©ho\n" +#~ "ovlĂĄdĂĄnĂ­ do ovladače UVC\n" +#~ "Ujistěte se, ĆŸe spouĆĄtĂ­te guvcview jako root (či sudo)." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Can't set a valid video stream for guvcview" +#~ msgstr "" +#~ "Chyba Gucview:\n" +#~ "\n" +#~ "Nelze nastavit platnĂœ proud videa pro gucview" + +#~ msgid "" +#~ "Make sure your device driver is v4l2 compliant\n" +#~ "and that it is properly installed." +#~ msgstr "" +#~ "Ujistěte se, ĆŸe ovladač vaĆĄeho pƙístroje je kompatibilnĂ­ s 4l2\n" +#~ "a ĆŸe je sprĂĄvně nainstalovĂĄn." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to start with minimum setup" +#~ msgstr "" +#~ "Chyba Guvcview:\n" +#~ "\n" +#~ "Nelze spustit minimĂĄlnĂ­ konfguraci" + +#~ msgid "Please reconnect your camera." +#~ msgstr "ProsĂ­m pƙipojte znovu kameru." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Couldn't query device capabilities" +#~ msgstr "" +#~ "Chyba guvcview:\n" +#~ "\n" +#~ "Nelze zjistit funkce zaƙízenĂ­" + +#~ msgid "Make sure the device driver supports v4l2." +#~ msgstr "Ujistěte se, ĆŸe ovladač zaƙízenĂ­ podporuje v4l2." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Read method error" +#~ msgstr "" +#~ "Chyba guvcview:\n" +#~ "\n" +#~ "Chyba metody čtenĂ­" + +#~ msgid "Please try mmap instead (--capture_method=1)." +#~ msgstr "MĂ­sto (--capture_method=1) zkuste mmap." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to allocate Buffers" +#~ msgstr "" +#~ "Chyba Guvcview:\n" +#~ "\n" +#~ "Nelze alokovat Buffery" + +#~ msgid "Please try restarting your system." +#~ msgstr "ProsĂ­m zkuste restartovat vĂĄĆĄ systĂ©m." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to create Video Thread" +#~ msgstr "" +#~ "Chyba Guvcview:\n" +#~ "\n" +#~ "Nelze zaloĆŸit vlĂĄkno videa" + +#~ msgid "Please report it to http://developer.berlios.de/bugs/?group_id=8179" +#~ msgstr "" +#~ "ProsĂ­m nahlaĆĄte to na http://developer.berlios.de/bugs/?group_id=8179" + +#~ msgid "Displays debug information" +#~ msgstr "ZobrazĂ­ ladĂ­cĂ­ informace" + +#~ msgid "Exit after adding UVC extension controls (needs root/sudo)" +#~ msgstr "Ukončit po pƙidĂĄnĂ­ kontroly rozơíƙenĂ­ UVC (vyĆŸaduje root/sudo)" + +#~ msgid "Don't stream video (image controls only)" +#~ msgstr "NeposĂ­lat video (pouze kontroly obrĂĄzku)" + +#~ msgid "Don't display a GUI" +#~ msgstr "Nezobrazovat rozhranĂ­" + +#~ msgid "Configuration file" +#~ msgstr "KonfiguračnĂ­ soubor" + +#~ msgid "Hardware accelaration (enable(1) | disable(0))" +#~ msgstr "HardwarovĂĄ akcelerace (povolit(1) | zakĂĄzat(0))" + +#~ msgid "" +#~ "Pixel format(mjpg|jpeg|yuyv|yvyu|uyvy|yyuv|yu12|yv12|nv12|nv21|nv16|nv61|" +#~ "y41p|grey|y10b|y16 |s501|s505|s508|gbrg|grbg|ba81|rggb|bgr3|rgb3)" +#~ msgstr "" +#~ "FormĂĄt pixelu(mjpg|jpeg|yuyv|yvyu|uyvy|yyuv|yu12|yv12|nv12|nv21|nv16|nv61|" +#~ "y41p|grey|y10b|y16 |s501|s505|s508|gbrg|grbg|ba81|rggb|bgr3|rgb3)" + +#~ msgid "Frame size, default: 640x480" +#~ msgstr "Velikost rĂĄmce, vĂœchozĂ­: 640x480" + +#~ msgid "Image capture interval in seconds" +#~ msgstr "Interval snĂ­mĂĄnĂ­ v sekundĂĄch" + +#~ msgid "Number of Pictures to capture" +#~ msgstr "Počet obrĂĄzkĆŻ k zaznamenĂĄnĂ­" + +#~ msgid "Video File name (capture from start)" +#~ msgstr "JmĂ©no Video souboru (zĂĄznam od začátku)" + +#~ msgid "Video capture time (in seconds)" +#~ msgstr "Čas Video zĂĄznamu (v sekundĂĄch)" + +#~ msgid "Exits guvcview after closing video" +#~ msgstr "Po skončenĂ­ videa ukončit guvcview" + +#~ msgid "Number of initial frames to skip" +#~ msgstr "Počet prvnĂ­ch vynechanĂœch snĂ­mkĆŻ" + +#~ msgid "Show FPS value (enable(1) | disable (0))" +#~ msgstr "Zobrazit hodnotu FPS (povolit(1) | zakĂĄzat(0))" + +#~ msgid "Load Profile at start" +#~ msgstr "Načíst profil pƙi spuĆĄtěnĂ­" + +#~ msgid "- local options" +#~ msgstr "- mĂ­stnĂ­ nastavenĂ­" + +#~ msgid "Cap. Image" +#~ msgstr "Zazn. Obraz" + +#~ msgid "Not enough free space left on disk" +#~ msgstr "Na disku nezbĂœvĂĄ dost volnĂ©ho mĂ­sta" + +#~ msgid "YUY2 - uncomp YUV" +#~ msgstr "YUY2 - uncomp YUV" + +#~ msgid "RGB - uncomp BMP" +#~ msgstr "RGB - uncomp BMP" + +#~ msgid "MKV - Matroska format" +#~ msgstr "MKV - formĂĄt Matroska" + +#~ msgid " Show" +#~ msgstr " Zobrazit" + +#~ msgid "Quality:" +#~ msgstr "Kvalita:" diff -Nru guvcview-1.7.3/po/da.po guvcview-2.0.1+ubuntu1~ppa1/po/da.po --- guvcview-1.7.3/po/da.po 2014-03-24 22:56:28.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/po/da.po 2014-10-05 10:41:44.000000000 +0000 @@ -7,16 +7,16 @@ msgstr "" "Project-Id-Version: guvcview\n" "Report-Msgid-Bugs-To: pj.assis@gmail.com\n" -"POT-Creation-Date: 2013-11-14 22:15+0000\n" +"POT-Creation-Date: 2014-08-17 22:49+0100\n" "PO-Revision-Date: 2013-02-25 05:34+0000\n" "Last-Translator: Paulo Assis \n" "Language-Team: Danish \n" +"Language: da\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-12-08 10:36+0000\n" "X-Generator: Launchpad (build 16869)\n" -"Language: da\n" #: ../data/guvcview.desktop.in.in.h:1 msgid "guvcview" @@ -30,1360 +30,1416 @@ msgid "A video viewer and capturer for the linux uvc driver" msgstr "" -#: ../src/acodecs.c:59 -msgid "PCM - uncompressed (16 bit)" -msgstr "" - -#: ../src/acodecs.c:76 -msgid "MPEG2 - (lavc)" -msgstr "" - -#: ../src/acodecs.c:93 -msgid "MP3 - (lavc)" -msgstr "" - -#: ../src/acodecs.c:110 -msgid "Dolby AC3 - (lavc)" -msgstr "" - -#: ../src/acodecs.c:127 -msgid "ACC Low - (faac)" -msgstr "" - -#: ../src/acodecs.c:144 -msgid "Vorbis" -msgstr "" - -#: ../src/audio_tab.c:87 -msgid "Audio" -msgstr "" - -#: ../src/audio_tab.c:105 -msgid " Sound" -msgstr " Lyd" - -#. VU meter on the image (OSD) -#: ../src/audio_tab.c:116 -msgid " Show VU meter" -msgstr "" - -#: ../src/audio_tab.c:128 -msgid "Audio API:" -msgstr "" - -#: ../src/audio_tab.c:139 -msgid "PORTAUDIO" -msgstr "" - -#: ../src/audio_tab.c:140 -msgid "PULSEAUDIO" -msgstr "" - -#: ../src/audio_tab.c:156 ../src/audio_tab.c:179 -msgid "Input Device:" -msgstr "Input udstyr:" - -#: ../src/audio_tab.c:189 ../src/audio_tab.c:221 -msgid "Dev. Default" -msgstr "" - -#: ../src/audio_tab.c:211 -msgid "Sample Rate:" -msgstr "" - -#: ../src/audio_tab.c:222 -msgid "1 - mono" -msgstr "1 - mono" - -#: ../src/audio_tab.c:223 -msgid "2 - stereo" -msgstr "2 - stereo" - -#: ../src/audio_tab.c:258 -msgid "Channels:" -msgstr "Kanaler:" - -#: ../src/audio_tab.c:309 -msgid "---- Audio Effects ----" -msgstr "" - -#. Echo -#: ../src/audio_tab.c:328 -msgid " Echo" -msgstr "" - -#. FUZZ -#: ../src/audio_tab.c:339 -msgid " Fuzz" -msgstr "" - -#. Reverb -#: ../src/audio_tab.c:351 -msgid " Reverb" -msgstr "" - -#. WahWah -#: ../src/audio_tab.c:363 -msgid " WahWah" -msgstr "" - -#. Ducky -#: ../src/audio_tab.c:375 -msgid " Ducky" -msgstr "" - -#: ../src/callbacks.c:109 -msgid "Error" -msgstr "" - -#: ../src/callbacks.c:133 -msgid "" -"\n" -"You have more than one video device installed.\n" -"Do you want to try another one ?\n" -msgstr "" - -#. Devices -#: ../src/callbacks.c:140 ../src/video_tab.c:111 -msgid "Device:" -msgstr "Input udstyr:" - -#: ../src/callbacks.c:272 -msgid "Save File" -msgstr "Gem fil" - -#: ../src/callbacks.c:284 -msgid "File Format:" -msgstr "" - -#: ../src/callbacks.c:455 -msgid "codec values" +#: ../data/guvcview.appdata.xml.in.in.h:1 +msgid "capture video from v4l2 devices" msgstr "" -#: ../src/callbacks.c:466 +#: ../data/guvcview.appdata.xml.in.in.h:2 msgid "" -" encoder fps: \n" -" (0 - use fps combobox value)" -msgstr "" - -#: ../src/callbacks.c:479 -msgid " monotonic pts" -msgstr "" - -#. bit rate -#: ../src/callbacks.c:486 ../src/callbacks.c:809 -msgid "bit rate: " -msgstr "" - -#: ../src/callbacks.c:499 -msgid "qmax: " -msgstr "" - -#: ../src/callbacks.c:512 -msgid "qmin: " +"Video capture tool for video4linux2 compliant cameras, with special emphasis " +"on the linux uvc driver. It provides Image (jpg, png, bmp) and Video (mjpeg, " +"flv1, wmv1, mpg2, mpg4,...) capture with sound in several " +"formats( currently: avi and matroska). I also supports a control panel " +"option (--control_only) that is compatible with any other v4l2 app." msgstr "" -#: ../src/callbacks.c:525 -msgid "max. qdiff: " -msgstr "" - -#: ../src/callbacks.c:538 -msgid "dia size: " -msgstr "" - -#: ../src/callbacks.c:551 -msgid "pre dia size: " +#. +#. * needed only for language files (not used) +#. +#. V4L2 control strings +#: ../gview_v4l2core/v4l2_controls.c:49 +msgid "User Controls" msgstr "" -#: ../src/callbacks.c:564 -msgid "pre me: " -msgstr "" +#: ../gview_v4l2core/v4l2_controls.c:50 +msgid "Brightness" +msgstr "Lysstyrke" -#: ../src/callbacks.c:577 -msgid "pre cmp: " -msgstr "" +#: ../gview_v4l2core/v4l2_controls.c:51 +msgid "Contrast" +msgstr "Kontrast" -#: ../src/callbacks.c:590 -msgid "cmp: " -msgstr "" +#: ../gview_v4l2core/v4l2_controls.c:52 +msgid "Hue" +msgstr "Farvetone" -#: ../src/callbacks.c:603 -msgid "sub cmp: " -msgstr "" +#: ../gview_v4l2core/v4l2_controls.c:53 +msgid "Saturation" +msgstr "FarvemĂŠtning" -#: ../src/callbacks.c:616 -msgid "last predictor count: " -msgstr "" +#: ../gview_v4l2core/v4l2_controls.c:54 +msgid "Sharpness" +msgstr "Skarphed" -#: ../src/callbacks.c:629 -msgid "gop size: " -msgstr "" +#: ../gview_v4l2core/v4l2_controls.c:55 +msgid "Gamma" +msgstr "Gamma" -#: ../src/callbacks.c:642 -msgid "qcompress: " -msgstr "" +#: ../gview_v4l2core/v4l2_controls.c:56 +msgid "Backlight Compensation" +msgstr "Baglys kompensation" -#: ../src/callbacks.c:655 -msgid "qblur: " +#: ../gview_v4l2core/v4l2_controls.c:57 +msgid "Power Line Frequency" msgstr "" -#: ../src/callbacks.c:668 -msgid "subq: " +#: ../gview_v4l2core/v4l2_controls.c:58 +msgid "Hue, Automatic" msgstr "" -#: ../src/callbacks.c:681 -msgid "framerefs: " -msgstr "" +#: ../gview_v4l2core/v4l2_controls.c:59 +msgid "Focus, Auto" +msgstr "Fokus, auto" -#: ../src/callbacks.c:694 -msgid "me method: " -msgstr "" +#: ../gview_v4l2core/v4l2_controls.c:60 +msgid "Manual Mode" +msgstr "Manuel tilstand" -#: ../src/callbacks.c:707 -msgid "mb decision: " -msgstr "" +#: ../gview_v4l2core/v4l2_controls.c:61 +msgid "Auto Mode" +msgstr "Auto tilstand" -#: ../src/callbacks.c:720 -msgid "max B frames: " +#: ../gview_v4l2core/v4l2_controls.c:62 +msgid "Shutter Priority Mode" msgstr "" -#: ../src/callbacks.c:733 -msgid "num threads: " +#: ../gview_v4l2core/v4l2_controls.c:63 +msgid "Aperture Priority Mode" msgstr "" -#: ../src/callbacks.c:796 -msgid "audio codec values" +#: ../gview_v4l2core/v4l2_controls.c:64 +msgid "Black Level" msgstr "" -#. sample format -#: ../src/callbacks.c:823 -msgid "sample format: " +#: ../gview_v4l2core/v4l2_controls.c:65 +msgid "White Balance, Automatic" msgstr "" -#: ../src/callbacks.c:1311 -msgid "start new" +#: ../gview_v4l2core/v4l2_controls.c:66 +msgid "Do White Balance" msgstr "" -#: ../src/callbacks.c:1314 -msgid "restart" +#: ../gview_v4l2core/v4l2_controls.c:67 +msgid "Red Balance" msgstr "" -#: ../src/callbacks.c:1316 -msgid "new" +#: ../gview_v4l2core/v4l2_controls.c:68 +msgid "Blue Balance" msgstr "" -#: ../src/callbacks.c:1318 -msgid "cancel" +#: ../gview_v4l2core/v4l2_controls.c:69 +msgid "Exposure" msgstr "" -#: ../src/callbacks.c:1323 -msgid "" -"launch new process or restart?.\n" -"\n" +#: ../gview_v4l2core/v4l2_controls.c:70 +msgid "Gain, Automatic" msgstr "" -#: ../src/callbacks.c:1780 ../src/guvcview.c:565 -msgid "Cap. Image (I)" -msgstr "" +#: ../gview_v4l2core/v4l2_controls.c:71 +msgid "Gain" +msgstr "ForhĂžjelse" -#. disable image controls -#: ../src/callbacks.c:1791 ../src/guvcview.c:690 ../src/timers.c:101 -msgid "capturing photo to" +#: ../gview_v4l2core/v4l2_controls.c:72 +msgid "Horizontal Flip" msgstr "" -#: ../src/callbacks.c:1850 ../src/guvcview.c:575 -msgid "Cap. Video (V)" +#: ../gview_v4l2core/v4l2_controls.c:73 +msgid "Vertical Flip" msgstr "" -#: ../src/callbacks.c:1876 ../src/guvcview.c:740 -msgid "capturing video to" +#: ../gview_v4l2core/v4l2_controls.c:74 +msgid "Horizontal Center" msgstr "" -#. vid capture enabled from start -#: ../src/callbacks.c:1911 ../src/guvcview.c:570 -msgid "Stop Video (V)" +#: ../gview_v4l2core/v4l2_controls.c:75 +msgid "Vertical Center" msgstr "" -#: ../src/callbacks.c:1967 ../src/menubar.c:66 -msgid "Save Profile" +#: ../gview_v4l2core/v4l2_controls.c:76 +msgid "Chroma AGC" msgstr "" -#: ../src/callbacks.c:1980 ../src/menubar.c:65 -msgid "Load Profile" +#: ../gview_v4l2core/v4l2_controls.c:77 +msgid "Color Killer" msgstr "" -#: ../src/create_video.c:1098 ../src/guvcview.c:732 -msgid "Cap. Video" +#: ../gview_v4l2core/v4l2_controls.c:78 +msgid "Color Effects" msgstr "" -#: ../src/guvcview.c:280 -msgid "Guvcview Video Capture" +#. CAMERA CLASS control strings +#: ../gview_v4l2core/v4l2_controls.c:81 +msgid "Camera Controls" msgstr "" -#: ../src/guvcview.c:292 -msgid "GUVCViewer Controls" -msgstr "GUVCViewer kontroller" - -#. can't open device -#: ../src/guvcview.c:342 -msgid "" -"Guvcview error:\n" -"\n" -"Unable to open device" +#: ../gview_v4l2core/v4l2_controls.c:82 +msgid "Auto Exposure" msgstr "" -"Guvcview fejl:\n" -"\n" -"Kunne ikke Ă„bne udstyr" -#: ../src/guvcview.c:343 -msgid "" -"Please make sure the camera is connected\n" -"and that the correct driver is installed." +#: ../gview_v4l2core/v4l2_controls.c:83 +msgid "Exposure Time, Absolute" msgstr "" -#. uvc extension controls OK, give warning and shutdown (called with --add_ctrls) -#: ../src/guvcview.c:348 -msgid "" -"Guvcview:\n" -"\n" -"UVC Extension controls" +#: ../gview_v4l2core/v4l2_controls.c:84 +msgid "Exposure, Dynamic Framerate" msgstr "" -#: ../src/guvcview.c:349 -msgid "Extension controls were added to the UVC driver" +#: ../gview_v4l2core/v4l2_controls.c:85 +msgid "Pan, Relative" msgstr "" -#. uvc extension controls error - EACCES (needs root user) -#: ../src/guvcview.c:356 -msgid "" -"Guvcview error:\n" -"\n" -"UVC Extension controls" +#: ../gview_v4l2core/v4l2_controls.c:86 +msgid "Tilt, Relative" msgstr "" -#: ../src/guvcview.c:357 -msgid "" -"An error occurred while adding extension\n" -"controls to the UVC driver\n" -"Make sure you run guvcview as root (or sudo)." +#: ../gview_v4l2core/v4l2_controls.c:87 +msgid "Pan, Reset" msgstr "" -#: ../src/guvcview.c:391 ../src/guvcview.c:399 ../src/guvcview.c:477 -msgid "" -"Guvcview error:\n" -"\n" -"Can't set a valid video stream for guvcview" +#: ../gview_v4l2core/v4l2_controls.c:88 +msgid "Tilt, Reset" msgstr "" -#: ../src/guvcview.c:392 ../src/guvcview.c:400 ../src/guvcview.c:478 -msgid "" -"Make sure your device driver is v4l2 compliant\n" -"and that it is properly installed." +#: ../gview_v4l2core/v4l2_controls.c:89 +msgid "Pan, Absolute" msgstr "" -#: ../src/guvcview.c:422 ../src/guvcview.c:444 -msgid "" -"Guvcview error:\n" -"\n" -"Unable to start with minimum setup" +#: ../gview_v4l2core/v4l2_controls.c:91 +msgid "Focus, Absolute" msgstr "" -"Guvcview fejl:\n" -"\n" -"Kunne ikke starte pĂ„ minimum setup" -#: ../src/guvcview.c:423 ../src/guvcview.c:445 -msgid "Please reconnect your camera." -msgstr "VĂŠr venlig at gentilslutte dit kamera." - -#: ../src/guvcview.c:452 -msgid "" -"Guvcview error:\n" -"\n" -"Couldn't query device capabilities" +#: ../gview_v4l2core/v4l2_controls.c:92 +msgid "Focus, Relative" msgstr "" -#: ../src/guvcview.c:453 -msgid "Make sure the device driver supports v4l2." +#: ../gview_v4l2core/v4l2_controls.c:93 +msgid "Focus, Automatic" msgstr "" -#: ../src/guvcview.c:457 -msgid "" -"Guvcview error:\n" -"\n" -"Read method error" +#: ../gview_v4l2core/v4l2_controls.c:94 +msgid "Zoom, Absolute" msgstr "" -#: ../src/guvcview.c:458 -msgid "Please try mmap instead (--capture_method=1)." +#: ../gview_v4l2core/v4l2_controls.c:95 +msgid "Zoom, Relative" msgstr "" -#: ../src/guvcview.c:466 -msgid "" -"Guvcview error:\n" -"\n" -"Unable to allocate Buffers" +#: ../gview_v4l2core/v4l2_controls.c:96 +msgid "Zoom, Continuous" msgstr "" -#: ../src/guvcview.c:467 -msgid "Please try restarting your system." -msgstr "PrĂžv venligst at genstarte dit system." - -#: ../src/guvcview.c:518 -msgid "Image Controls" -msgstr "Billed kontroller" - -#. image auto capture -#: ../src/guvcview.c:561 -msgid "Stop Auto (I)" +#: ../gview_v4l2core/v4l2_controls.c:97 +msgid "Privacy" msgstr "" -#: ../src/guvcview.c:676 -msgid "" -"Guvcview error:\n" -"\n" -"Unable to create Video Thread" +#. UVC specific control strings +#: ../gview_v4l2core/v4l2_controls.c:100 +msgid "Exposure, Auto" msgstr "" -"Guvcview fejl:\n" -"\n" -"Kunne ikke skabe video trĂ„d" -#: ../src/guvcview.c:677 -msgid "Please report it to http://developer.berlios.de/bugs/?group_id=8179" +#: ../gview_v4l2core/v4l2_controls.c:101 +msgid "Exposure, Auto Priority" msgstr "" -"Rapporter det venligst til http://developer.berlios.de/bugs/?group_id=8179" -#: ../src/img_controls.c:121 -msgid "Auto Focus (continuous)" -msgstr "Auto fokus (fortsat)" - -#: ../src/img_controls.c:122 -msgid "set Focus" -msgstr "sĂŠt fokus" - -#: ../src/image_format.c:35 -msgid "Jpeg (jpg)" +#: ../gview_v4l2core/v4l2_controls.c:102 +msgid "Exposure (Absolute)" msgstr "" -#: ../src/image_format.c:41 -msgid "Bitmap (Bmp)" -msgstr "" +#: ../gview_v4l2core/v4l2_controls.c:103 +msgid "White Balance Temperature, Auto" +msgstr "Hvid balance temperatur, auto" -#: ../src/image_format.c:47 -msgid "Portable Network Graphics (Png)" -msgstr "" +#: ../gview_v4l2core/v4l2_controls.c:104 +msgid "White Balance Temperature" +msgstr "Hvid balance temperatur" -#: ../src/image_format.c:53 -msgid "Raw Image (raw)" -msgstr "" +#: ../gview_v4l2core/v4l2_controls.c:105 +msgid "White Balance Component, Auto" +msgstr "Hvid balance komponent, auto" -#. controls menu -#: ../src/menubar.c:64 -msgid "Settings" -msgstr "" +#: ../gview_v4l2core/v4l2_controls.c:106 +msgid "White Balance Blue Component" +msgstr "Hvid balance blĂ„ komponent" -#: ../src/menubar.c:67 -msgid "Hardware Defaults" -msgstr "" +#: ../gview_v4l2core/v4l2_controls.c:107 +msgid "White Balance Red Component" +msgstr "Hvid balance rĂžd komponent" -#: ../src/menubar.c:75 -msgid "Camera Button" +#. libwebcam specific control strings +#: ../gview_v4l2core/v4l2_controls.c:110 +msgid "Focus" msgstr "" -#: ../src/menubar.c:79 -msgid "Capture Image" +#: ../gview_v4l2core/v4l2_controls.c:111 +msgid "Focus (Absolute)" msgstr "" -#: ../src/menubar.c:84 -msgid "Capture Video" +#: ../gview_v4l2core/v4l2_xu_ctrls.c:63 ../guvcview/gui_gtk3_v4l2ctrls.c:239 +msgid "Off" msgstr "" -#. video menu -#: ../src/menubar.c:144 ../src/video_tab.c:95 -msgid "Video" +#: ../gview_v4l2core/v4l2_xu_ctrls.c:64 ../guvcview/gui_gtk3_v4l2ctrls.c:239 +msgid "On" msgstr "" -#: ../src/menubar.c:145 ../src/menubar.c:233 -msgid "File" +#: ../gview_v4l2core/v4l2_xu_ctrls.c:65 ../guvcview/gui_gtk3_v4l2ctrls.c:239 +msgid "Blinking" msgstr "" -#: ../src/menubar.c:146 ../src/menubar.c:234 -msgid "Increment Filename" +#: ../gview_v4l2core/v4l2_xu_ctrls.c:66 ../guvcview/gui_gtk3_v4l2ctrls.c:239 +msgid "Auto" msgstr "" -#: ../src/menubar.c:164 -msgid "Video Codec" +#: ../gview_v4l2core/v4l2_xu_ctrls.c:73 +msgid "Pan (relative)" msgstr "" -#: ../src/menubar.c:189 -msgid "Video Codec Properties" +#: ../gview_v4l2core/v4l2_xu_ctrls.c:86 +msgid "Tilt (relative)" msgstr "" -#: ../src/menubar.c:196 -msgid "Audio Codec" +#: ../gview_v4l2core/v4l2_xu_ctrls.c:99 +msgid "Pan Reset" msgstr "" -#: ../src/menubar.c:217 -msgid "Audio Codec Properties" +#: ../gview_v4l2core/v4l2_xu_ctrls.c:112 +msgid "Tilt Reset" msgstr "" -#. photo menu -#: ../src/menubar.c:232 -msgid "Photo" -msgstr "" +#: ../gview_v4l2core/v4l2_xu_ctrls.c:125 +msgid "Focus (absolute)" +msgstr "Fokus (absolut)" -#: ../src/options.c:753 -msgid "Prints version" -msgstr "" +#: ../gview_v4l2core/v4l2_xu_ctrls.c:138 +msgid "LED1 Mode" +msgstr "LED1 tilstand" -#: ../src/options.c:754 -msgid "Displays debug information" -msgstr "Vis debug information" +#: ../gview_v4l2core/v4l2_xu_ctrls.c:151 +msgid "LED1 Frequency" +msgstr "LED1 frekvens" -#: ../src/options.c:755 -msgid "Video Device to use [default: /dev/video0]" -msgstr "Video udstyr at benyttet [default: /dev/video0]" +#: ../gview_v4l2core/v4l2_xu_ctrls.c:164 +msgid "Disable video processing" +msgstr "SlĂ„ video processer fra" -#: ../src/options.c:756 -msgid "Exit after adding UVC extension controls (needs root/sudo)" -msgstr "" +#: ../gview_v4l2core/v4l2_xu_ctrls.c:177 +msgid "Raw bits per pixel" +msgstr "RĂ„ bits pr. pixel" -#: ../src/options.c:757 -msgid "Don't stream video (image controls only)" +#: ../gview_encoder/audio_codecs.c:63 +msgid "PCM - uncompressed (float 32 bit)" msgstr "" -#: ../src/options.c:758 -msgid "Don't display a GUI" +#: ../gview_encoder/audio_codecs.c:80 +msgid "MP2 (MPEG audio layer 2)" msgstr "" -#: ../src/options.c:759 -msgid "Capture method (1-mmap (default) 2-read)" +#: ../gview_encoder/audio_codecs.c:97 +msgid "MP3 (MPEG audio layer 3)" msgstr "" -#: ../src/options.c:760 -msgid "Configuration file" +#: ../gview_encoder/audio_codecs.c:118 +msgid "AC-3 (ATSC A/52A)" msgstr "" -#: ../src/options.c:761 -msgid "Hardware accelaration (enable(1) | disable(0))" +#: ../gview_encoder/audio_codecs.c:139 +msgid "AAC (Advanced Audio Coding)" msgstr "" -#: ../src/options.c:762 -msgid "" -"Pixel " -"format(mjpg|jpeg|yuyv|yvyu|uyvy|yyuv|yu12|yv12|nv12|nv21|nv16|nv61|y41p|grey|" -"y10b|y16 |s501|s505|s508|gbrg|grbg|ba81|rggb|bgr3|rgb3)" +#: ../gview_encoder/audio_codecs.c:160 +msgid "Vorbis" msgstr "" -#: ../src/options.c:763 -msgid "Frame size, default: 640x480" -msgstr "Ramme stĂžrrelse, standard: 640x480" +#: ../gview_encoder/video_codecs.c:75 +#, fuzzy +msgid "Raw camera input" +msgstr "Kamera output:" -#: ../src/options.c:764 -msgid "Image File name" -msgstr "Billedfil navn" +#: ../gview_encoder/video_codecs.c:111 +msgid "MJPG - compressed" +msgstr "MJPG - komprimeret" -#: ../src/options.c:765 -msgid "Image capture interval in seconds" +#: ../gview_encoder/video_codecs.c:147 +msgid "MPEG video 1" msgstr "" -#: ../src/options.c:766 -msgid "Number of Pictures to capture" +#: ../gview_encoder/video_codecs.c:183 +msgid "FLV1 - flash video 1" msgstr "" -#: ../src/options.c:767 -msgid "Video File name (capture from start)" +#: ../gview_encoder/video_codecs.c:219 +msgid "WMV1 - win. med. video 7" msgstr "" -#: ../src/options.c:768 -msgid "Video capture time (in seconds)" +#: ../gview_encoder/video_codecs.c:255 +msgid "MPG2 - MPG2 format" msgstr "" -#: ../src/options.c:769 -msgid "Exits guvcview after closing video" +#: ../gview_encoder/video_codecs.c:291 +msgid "MS MP4 V3" msgstr "" -#: ../src/options.c:770 -msgid "Number of initial frames to skip" +#: ../gview_encoder/video_codecs.c:327 +msgid "MPEG4-ASP" msgstr "" -#: ../src/options.c:771 -msgid "Show FPS value (enable(1) | disable (0))" +#: ../gview_encoder/video_codecs.c:363 +msgid "MPEG4-AVC (H264)" msgstr "" -#: ../src/options.c:772 -msgid "Load Profile at start" -msgstr "IndlĂŠs profil ved start" - -#: ../src/options.c:773 -msgid "List controls method (0:loop, 1:next_ctrl flag [def])" +#: ../gview_encoder/video_codecs.c:403 +msgid "VP8 (VP8)" msgstr "" -#: ../src/options.c:779 -msgid "- local options" -msgstr "- lokale valgmuligheder" - -#. gdk_threads_enter(); -#: ../src/timers.c:119 -msgid "Cap. Image" +#: ../gview_encoder/video_codecs.c:439 +msgid "Theora (ogg theora)" msgstr "" -#: ../src/timers.c:217 -msgid "Guvcview Warning:" +#: ../guvcview/gui_gtk3_audioctrls.c:95 +msgid "Audio API:" msgstr "" -#: ../src/timers.c:217 -msgid "Not enough free space left on disk" +#: ../guvcview/gui_gtk3_audioctrls.c:106 +msgid "NO SOUND" msgstr "" -#: ../src/v4l2_controls.c:794 -msgid "Left" -msgstr "Venstre" - -#: ../src/v4l2_controls.c:795 -msgid "Right" -msgstr "HĂžjre" - -#: ../src/v4l2_controls.c:799 -msgid "Down" -msgstr "Ned" - -#: ../src/v4l2_controls.c:800 -msgid "Up" -msgstr "Op" - -#: ../src/v4l2_controls.c:845 -msgid "Off" +#: ../guvcview/gui_gtk3_audioctrls.c:107 +msgid "PORTAUDIO" msgstr "" -#: ../src/v4l2_controls.c:845 -msgid "On" +#: ../guvcview/gui_gtk3_audioctrls.c:110 +msgid "PULSEAUDIO" msgstr "" -#: ../src/v4l2_controls.c:845 -msgid "Blinking" -msgstr "" +#: ../guvcview/gui_gtk3_audioctrls.c:127 +msgid "Input Device:" +msgstr "Input udstyr:" -#: ../src/v4l2_controls.c:845 -msgid "Auto" +#: ../guvcview/gui_gtk3_audioctrls.c:161 +msgid "Sample Rate:" msgstr "" -#. turn it into a menu control -#: ../src/v4l2_controls.c:894 -msgid "8 bit" +#: ../guvcview/gui_gtk3_audioctrls.c:168 ../guvcview/gui_gtk3_audioctrls.c:214 +msgid "Dev. Default" msgstr "" -#: ../src/v4l2_controls.c:894 -msgid "12 bit" -msgstr "" +#: ../guvcview/gui_gtk3_audioctrls.c:207 +msgid "Channels:" +msgstr "Kanaler:" -#: ../src/v4l2_dyna_ctrls.c:96 -msgid "Pan (relative)" -msgstr "" +#: ../guvcview/gui_gtk3_audioctrls.c:215 +msgid "1 - mono" +msgstr "1 - mono" -#: ../src/v4l2_dyna_ctrls.c:109 -msgid "Tilt (relative)" -msgstr "" +#: ../guvcview/gui_gtk3_audioctrls.c:216 +msgid "2 - stereo" +msgstr "2 - stereo" -#: ../src/v4l2_dyna_ctrls.c:122 -msgid "Pan Reset" -msgstr "" +#: ../guvcview/gui_gtk3_audioctrls.c:235 +#, fuzzy +msgid "---- Audio Filters ----" +msgstr "---- Video filtre ----" -#: ../src/v4l2_dyna_ctrls.c:135 -msgid "Tilt Reset" +#. Echo FX +#: ../guvcview/gui_gtk3_audioctrls.c:255 +msgid " Echo" msgstr "" -#: ../src/v4l2_dyna_ctrls.c:148 -msgid "Focus (absolute)" -msgstr "Fokus (absolut)" - -#: ../src/v4l2_dyna_ctrls.c:161 -msgid "LED1 Mode" -msgstr "LED1 tilstand" - -#: ../src/v4l2_dyna_ctrls.c:174 -msgid "LED1 Frequency" -msgstr "LED1 frekvens" - -#: ../src/v4l2_dyna_ctrls.c:187 -msgid "Disable video processing" -msgstr "SlĂ„ video processer fra" - -#: ../src/v4l2_dyna_ctrls.c:200 -msgid "Raw bits per pixel" -msgstr "RĂ„ bits pr. pixel" - -#. needed only for language files (not used) -#. V4L2 control strings -#: ../src/v4l2uvc.c:57 -msgid "User Controls" +#. Reverb FX +#: ../guvcview/gui_gtk3_audioctrls.c:268 +msgid " Reverb" msgstr "" -#: ../src/v4l2uvc.c:58 -msgid "Brightness" -msgstr "Lysstyrke" - -#: ../src/v4l2uvc.c:59 -msgid "Contrast" -msgstr "Kontrast" - -#: ../src/v4l2uvc.c:60 -msgid "Hue" -msgstr "Farvetone" - -#: ../src/v4l2uvc.c:61 -msgid "Saturation" -msgstr "FarvemĂŠtning" - -#: ../src/v4l2uvc.c:62 -msgid "Sharpness" -msgstr "Skarphed" - -#: ../src/v4l2uvc.c:63 -msgid "Gamma" -msgstr "Gamma" - -#: ../src/v4l2uvc.c:64 -msgid "Backlight Compensation" -msgstr "Baglys kompensation" - -#: ../src/v4l2uvc.c:65 -msgid "Power Line Frequency" +#. Fuzz FX +#: ../guvcview/gui_gtk3_audioctrls.c:281 +msgid " Fuzz" msgstr "" -#: ../src/v4l2uvc.c:66 -msgid "Hue, Automatic" +#. WahWah FX +#: ../guvcview/gui_gtk3_audioctrls.c:294 +msgid " WahWah" msgstr "" -#: ../src/v4l2uvc.c:67 -msgid "Focus, Auto" -msgstr "Fokus, auto" - -#: ../src/v4l2uvc.c:68 -msgid "Manual Mode" -msgstr "Manuel tilstand" - -#: ../src/v4l2uvc.c:69 -msgid "Auto Mode" -msgstr "Auto tilstand" - -#: ../src/v4l2uvc.c:70 -msgid "Shutter Priority Mode" +#. Ducky FX +#: ../guvcview/gui_gtk3_audioctrls.c:307 +msgid " Ducky" msgstr "" -#: ../src/v4l2uvc.c:71 -msgid "Aperture Priority Mode" +#: ../guvcview/gui_gtk3.c:310 ../guvcview/gui_gtk3_callbacks.c:749 +msgid "Stop Video (V)" msgstr "" -#: ../src/v4l2uvc.c:72 -msgid "Black Level" +#. video button +#: ../guvcview/gui_gtk3.c:315 ../guvcview/gui_gtk3.c:600 +#: ../guvcview/gui_gtk3_callbacks.c:755 +msgid "Cap. Video (V)" msgstr "" -#: ../src/v4l2uvc.c:73 -msgid "White Balance, Automatic" +#: ../guvcview/gui_gtk3.c:376 ../guvcview/gui_gtk3.c:383 +msgid "Error" msgstr "" -#: ../src/v4l2uvc.c:74 -msgid "Do White Balance" +#: ../guvcview/gui_gtk3.c:379 ../guvcview/gui_gtk3.c:386 +#: ../guvcview/gui_gtk3_callbacks.c:2097 +msgid "_Ok" msgstr "" -#: ../src/v4l2uvc.c:75 -msgid "Red Balance" +#: ../guvcview/gui_gtk3.c:380 ../guvcview/gui_gtk3_callbacks.c:185 +#: ../guvcview/gui_gtk3_callbacks.c:199 ../guvcview/gui_gtk3_callbacks.c:522 +#: ../guvcview/gui_gtk3_callbacks.c:624 ../guvcview/gui_gtk3_callbacks.c:1755 +#: ../guvcview/gui_gtk3_callbacks.c:2098 +msgid "_Cancel" msgstr "" -#: ../src/v4l2uvc.c:76 -msgid "Blue Balance" +#: ../guvcview/gui_gtk3.c:407 +msgid "" +"\n" +"You have more than one video device installed.\n" +"Do you want to try another one ?\n" msgstr "" -#: ../src/v4l2uvc.c:77 -msgid "Exposure" -msgstr "" +#. ---- Devices ---- +#: ../guvcview/gui_gtk3.c:414 ../guvcview/gui_gtk3_videoctrls.c:106 +msgid "Device:" +msgstr "Input udstyr:" -#: ../src/v4l2uvc.c:78 -msgid "Gain, Automatic" +#: ../guvcview/gui_gtk3.c:516 +msgid "Guvcview Video Capture" msgstr "" -#: ../src/v4l2uvc.c:79 -msgid "Gain" -msgstr "ForhĂžjelse" - -#: ../src/v4l2uvc.c:80 -msgid "Horizontal Flip" +#: ../guvcview/gui_gtk3.c:525 +msgid "Guvcview" msgstr "" -#: ../src/v4l2uvc.c:81 -msgid "Vertical Flip" +#: ../guvcview/gui_gtk3.c:572 +msgid "Stop Cap. (I)" msgstr "" -#: ../src/v4l2uvc.c:82 -msgid "Horizontal Center" +#: ../guvcview/gui_gtk3.c:578 ../guvcview/gui_gtk3_callbacks.c:720 +#: ../guvcview/video_capture.c:250 +msgid "Cap. Image (I)" msgstr "" -#: ../src/v4l2uvc.c:83 -msgid "Vertical Center" +#. quit button +#. GtkWidget *quitButton = gtk_button_new_from_stock(GTK_STOCK_QUIT); +#: ../guvcview/gui_gtk3.c:621 +msgid "_Quit" msgstr "" -#: ../src/v4l2uvc.c:84 -msgid "Chroma AGC" -msgstr "" +#: ../guvcview/gui_gtk3.c:667 +msgid "Image Controls" +msgstr "Billed kontroller" -#: ../src/v4l2uvc.c:85 -msgid "Color Killer" -msgstr "" +#: ../guvcview/gui_gtk3.c:703 +#, fuzzy +msgid "H264 Controls" +msgstr "Billed kontroller" -#: ../src/v4l2uvc.c:86 -msgid "Color Effects" -msgstr "" +#: ../guvcview/gui_gtk3.c:742 +#, fuzzy +msgid "Video Controls" +msgstr "GUVCViewer kontroller" -#. CAMERA CLASS control strings -#: ../src/v4l2uvc.c:89 -msgid "Camera Controls" -msgstr "" +#: ../guvcview/gui_gtk3.c:777 +#, fuzzy +msgid "Audio Controls" +msgstr "Billed kontroller" -#: ../src/v4l2uvc.c:90 -msgid "Auto Exposure" +#: ../guvcview/gui_gtk3_callbacks.c:182 ../guvcview/gui_gtk3_menu.c:72 +msgid "Save Profile" msgstr "" -#: ../src/v4l2uvc.c:91 -msgid "Exposure Time, Absolute" +#: ../guvcview/gui_gtk3_callbacks.c:186 ../guvcview/gui_gtk3_callbacks.c:523 +#: ../guvcview/gui_gtk3_callbacks.c:625 +msgid "_Save" msgstr "" -#: ../src/v4l2uvc.c:92 -msgid "Exposure, Dynamic Framerate" +#: ../guvcview/gui_gtk3_callbacks.c:196 ../guvcview/gui_gtk3_menu.c:71 +msgid "Load Profile" msgstr "" -#: ../src/v4l2uvc.c:93 -msgid "Pan, Relative" +#: ../guvcview/gui_gtk3_callbacks.c:200 +msgid "_Open" msgstr "" -#: ../src/v4l2uvc.c:94 -msgid "Tilt, Relative" +#: ../guvcview/gui_gtk3_callbacks.c:208 ../guvcview/gui_gtk3_callbacks.c:531 +#: ../guvcview/gui_gtk3_callbacks.c:634 +msgid "File Format:" msgstr "" -#: ../src/v4l2uvc.c:95 -msgid "Pan, Reset" +#: ../guvcview/gui_gtk3_callbacks.c:220 +msgid "gpfl (*.gpfl)" msgstr "" -#: ../src/v4l2uvc.c:96 -msgid "Tilt, Reset" +#: ../guvcview/gui_gtk3_callbacks.c:221 +msgid "any (*.*)" msgstr "" -#: ../src/v4l2uvc.c:97 -msgid "Pan, Absolute" -msgstr "" +#: ../guvcview/gui_gtk3_callbacks.c:519 +#, fuzzy +msgid "Photo file name" +msgstr "Billedfil navn" -#: ../src/v4l2uvc.c:99 -msgid "Focus, Absolute" +#: ../guvcview/gui_gtk3_callbacks.c:543 +msgid "Raw (*.raw)" msgstr "" -#: ../src/v4l2uvc.c:100 -msgid "Focus, Relative" +#: ../guvcview/gui_gtk3_callbacks.c:544 +msgid "Jpeg (*.jpg)" msgstr "" -#: ../src/v4l2uvc.c:101 -msgid "Focus, Automatic" +#: ../guvcview/gui_gtk3_callbacks.c:545 +msgid "Png (*.png)" msgstr "" -#: ../src/v4l2uvc.c:102 -msgid "Zoom, Absolute" +#: ../guvcview/gui_gtk3_callbacks.c:546 +msgid "Bmp (*.bmp)" msgstr "" -#: ../src/v4l2uvc.c:103 -msgid "Zoom, Relative" -msgstr "" +#: ../guvcview/gui_gtk3_callbacks.c:621 +#, fuzzy +msgid "Video file name" +msgstr "Billedfil navn" -#: ../src/v4l2uvc.c:104 -msgid "Zoom, Continuous" +#: ../guvcview/gui_gtk3_callbacks.c:646 +msgid "Matroska (*.mkv)" msgstr "" -#: ../src/v4l2uvc.c:105 -msgid "Privacy" +#: ../guvcview/gui_gtk3_callbacks.c:647 +msgid "WebM (*.webm)" msgstr "" -#. UVC specific control strings -#: ../src/v4l2uvc.c:108 -msgid "Exposure, Auto" +#: ../guvcview/gui_gtk3_callbacks.c:648 +msgid "Avi (*.avi)" msgstr "" -#: ../src/v4l2uvc.c:109 -msgid "Exposure, Auto Priority" +#: ../guvcview/gui_gtk3_callbacks.c:1158 +msgid "start new" msgstr "" -#: ../src/v4l2uvc.c:110 -msgid "Exposure (Absolute)" +#: ../guvcview/gui_gtk3_callbacks.c:1161 +msgid "restart" msgstr "" -#: ../src/v4l2uvc.c:111 -msgid "White Balance Temperature, Auto" -msgstr "Hvid balance temperatur, auto" - -#: ../src/v4l2uvc.c:112 -msgid "White Balance Temperature" -msgstr "Hvid balance temperatur" - -#: ../src/v4l2uvc.c:113 -msgid "White Balance Component, Auto" -msgstr "Hvid balance komponent, auto" - -#: ../src/v4l2uvc.c:114 -msgid "White Balance Blue Component" -msgstr "Hvid balance blĂ„ komponent" - -#: ../src/v4l2uvc.c:115 -msgid "White Balance Red Component" -msgstr "Hvid balance rĂžd komponent" - -#. libwebcam specific control strings -#: ../src/v4l2uvc.c:118 -msgid "Focus" +#: ../guvcview/gui_gtk3_callbacks.c:1163 +msgid "new" msgstr "" -#: ../src/v4l2uvc.c:119 -msgid "Focus (Absolute)" +#: ../guvcview/gui_gtk3_callbacks.c:1165 +msgid "cancel" msgstr "" -#: ../src/vcodecs.c:63 -msgid "MJPG - compressed" -msgstr "MJPG - komprimeret" - -#: ../src/vcodecs.c:99 -msgid "YUY2 - uncomp YUV" -msgstr "YUY2 - ukomprimeret YUV" - -#: ../src/vcodecs.c:135 -msgid "RGB - uncomp BMP" -msgstr "RGB - ukomprimeret BMP" +#: ../guvcview/gui_gtk3_callbacks.c:1170 +msgid "" +"launch new process or restart?.\n" +"\n" +msgstr "" -#: ../src/vcodecs.c:171 -msgid "MPEG video 1" +#: ../guvcview/gui_gtk3_callbacks.c:1751 +msgid "video codec values" msgstr "" -#: ../src/vcodecs.c:207 -msgid "FLV1 - flash video 1" +#: ../guvcview/gui_gtk3_callbacks.c:1754 +msgid "_OK" msgstr "" -#: ../src/vcodecs.c:243 -msgid "WMV1 - win. med. video 7" +#: ../guvcview/gui_gtk3_callbacks.c:1760 +msgid "" +" encoder fps: \n" +" (0 - use fps combobox value)" msgstr "" -#: ../src/vcodecs.c:279 -msgid "MPG2 - MPG2 format" +#: ../guvcview/gui_gtk3_callbacks.c:1773 +msgid " monotonic pts" msgstr "" -#: ../src/vcodecs.c:315 -msgid "MS MP4 V3" +#. bit rate +#: ../guvcview/gui_gtk3_callbacks.c:1780 ../guvcview/gui_gtk3_callbacks.c:2105 +msgid "bit rate: " msgstr "" -#: ../src/vcodecs.c:351 -msgid "MPEG4-ASP" +#: ../guvcview/gui_gtk3_callbacks.c:1793 +msgid "qmax: " msgstr "" -#: ../src/vcodecs.c:387 -msgid "MPEG4-AVC (H264)" +#: ../guvcview/gui_gtk3_callbacks.c:1806 +msgid "qmin: " msgstr "" -#: ../src/vcodecs.c:427 -msgid "VP8 (VP8)" +#: ../guvcview/gui_gtk3_callbacks.c:1819 +msgid "max. qdiff: " msgstr "" -#: ../src/vcodecs.c:463 -msgid "Theora (ogg theora)" +#: ../guvcview/gui_gtk3_callbacks.c:1832 +msgid "dia size: " msgstr "" -#: ../src/video_format.c:43 -msgid "AVI - avi format" +#: ../guvcview/gui_gtk3_callbacks.c:1845 +msgid "pre dia size: " msgstr "" -#: ../src/video_format.c:52 -msgid "MKV - Matroska format" +#: ../guvcview/gui_gtk3_callbacks.c:1858 +msgid "pre me: " msgstr "" -#: ../src/video_format.c:61 -msgid "WEBM - format" +#: ../guvcview/gui_gtk3_callbacks.c:1871 +msgid "pre cmp: " msgstr "" -#: ../src/video_tab.c:216 -msgid "Frame Rate:" -msgstr "Billedrate:" +#: ../guvcview/gui_gtk3_callbacks.c:1884 +msgid "cmp: " +msgstr "" -#: ../src/video_tab.c:223 -msgid " Show" -msgstr " Vis" +#: ../guvcview/gui_gtk3_callbacks.c:1897 +msgid "sub cmp: " +msgstr "" -#: ../src/video_tab.c:245 -msgid "Resolution:" -msgstr "OplĂžsning:" +#: ../guvcview/gui_gtk3_callbacks.c:1910 +msgid "last predictor count: " +msgstr "" -#: ../src/video_tab.c:271 -msgid "Camera Output:" -msgstr "Kamera output:" +#: ../guvcview/gui_gtk3_callbacks.c:1923 +msgid "gop size: " +msgstr "" -#: ../src/video_tab.c:293 -msgid "Apply" +#: ../guvcview/gui_gtk3_callbacks.c:1936 +msgid "qcompress: " msgstr "" -#: ../src/video_tab.c:300 -msgid "Quality:" +#: ../guvcview/gui_gtk3_callbacks.c:1949 +msgid "qblur: " msgstr "" -#: ../src/video_tab.c:310 -msgid "---- Video Filters ----" -msgstr "---- Video filtre ----" +#: ../guvcview/gui_gtk3_callbacks.c:1962 +msgid "subq: " +msgstr "" -#. Mirror -#: ../src/video_tab.c:329 -msgid " Mirror" -msgstr " Spejl" +#: ../guvcview/gui_gtk3_callbacks.c:1975 +msgid "framerefs: " +msgstr "" -#. Upturn -#: ../src/video_tab.c:340 -msgid " Invert" -msgstr " Vend" +#: ../guvcview/gui_gtk3_callbacks.c:1988 +msgid "me method: " +msgstr "" -#. Negate -#: ../src/video_tab.c:351 -msgid " Negative" -msgstr " Negativ" +#: ../guvcview/gui_gtk3_callbacks.c:2001 +msgid "mb decision: " +msgstr "" -#. Mono -#: ../src/video_tab.c:362 -msgid " Mono" -msgstr " Mono" +#: ../guvcview/gui_gtk3_callbacks.c:2014 +msgid "max B frames: " +msgstr "" -#. Pieces -#: ../src/video_tab.c:374 -msgid " Pieces" +#: ../guvcview/gui_gtk3_callbacks.c:2027 +msgid "num threads: " msgstr "" -#. Particles -#: ../src/video_tab.c:386 -msgid " Particles" +#: ../guvcview/gui_gtk3_callbacks.c:2094 +msgid "audio codec values" msgstr "" -#: ../src/uvc_h264.c:596 -msgid "H264 Controls" +#. sample format +#: ../guvcview/gui_gtk3_callbacks.c:2119 +msgid "sample format: " msgstr "" -#: ../src/uvc_h264.c:615 +#: ../guvcview/gui_gtk3_h264ctrls.c:622 +#, fuzzy msgid "Rate Control Mode:" -msgstr "" +msgstr "Billed kontroller" -#: ../src/uvc_h264.c:626 +#: ../guvcview/gui_gtk3_h264ctrls.c:633 msgid "CBR" msgstr "" -#: ../src/uvc_h264.c:629 +#: ../guvcview/gui_gtk3_h264ctrls.c:636 msgid "VBR" msgstr "" -#: ../src/uvc_h264.c:633 +#: ../guvcview/gui_gtk3_h264ctrls.c:640 msgid "Constant QP" msgstr "" -#: ../src/uvc_h264.c:651 +#: ../guvcview/gui_gtk3_h264ctrls.c:658 msgid "Rate Control Mode flags:" msgstr "" -#: ../src/uvc_h264.c:676 +#: ../guvcview/gui_gtk3_h264ctrls.c:683 msgid "Temporal Scale Mode:" msgstr "" -#: ../src/uvc_h264.c:704 +#: ../guvcview/gui_gtk3_h264ctrls.c:711 msgid "Spatial Scale Mode:" msgstr "" -#: ../src/uvc_h264.c:737 +#: ../guvcview/gui_gtk3_h264ctrls.c:741 msgid "Frame Interval (100ns units):" msgstr "" -#: ../src/uvc_h264.c:772 +#: ../guvcview/gui_gtk3_h264ctrls.c:778 +#, fuzzy msgid "Bit Rate:" -msgstr "" +msgstr "Billedrate:" -#: ../src/uvc_h264.c:795 +#: ../guvcview/gui_gtk3_h264ctrls.c:801 msgid "Hints:" msgstr "" -#: ../src/uvc_h264.c:800 +#: ../guvcview/gui_gtk3_h264ctrls.c:806 +#, fuzzy msgid "Resolution" -msgstr "" +msgstr "OplĂžsning:" -#: ../src/uvc_h264.c:804 +#: ../guvcview/gui_gtk3_h264ctrls.c:810 msgid "Profile" msgstr "" -#: ../src/uvc_h264.c:808 +#: ../guvcview/gui_gtk3_h264ctrls.c:814 +#, fuzzy msgid "Rate Control" -msgstr "" +msgstr "Billed kontroller" -#: ../src/uvc_h264.c:812 +#: ../guvcview/gui_gtk3_h264ctrls.c:818 msgid "Usage Type" msgstr "" -#: ../src/uvc_h264.c:816 +#: ../guvcview/gui_gtk3_h264ctrls.c:822 msgid "Slice Mode" msgstr "" -#: ../src/uvc_h264.c:820 +#: ../guvcview/gui_gtk3_h264ctrls.c:826 msgid "Slice Unit" msgstr "" -#: ../src/uvc_h264.c:824 +#: ../guvcview/gui_gtk3_h264ctrls.c:830 msgid "MVC View" msgstr "" -#: ../src/uvc_h264.c:828 +#: ../guvcview/gui_gtk3_h264ctrls.c:834 msgid "Temporal Scale" msgstr "" -#: ../src/uvc_h264.c:832 +#: ../guvcview/gui_gtk3_h264ctrls.c:838 msgid "SNR Scale" msgstr "" -#: ../src/uvc_h264.c:836 +#: ../guvcview/gui_gtk3_h264ctrls.c:842 msgid "Spatial Scale" msgstr "" -#: ../src/uvc_h264.c:840 +#: ../guvcview/gui_gtk3_h264ctrls.c:846 msgid "Spatial Layer Ratio" msgstr "" -#: ../src/uvc_h264.c:844 +#: ../guvcview/gui_gtk3_h264ctrls.c:850 +#, fuzzy msgid "Frame Interval" -msgstr "" +msgstr "Billedrate:" -#: ../src/uvc_h264.c:848 +#: ../guvcview/gui_gtk3_h264ctrls.c:854 msgid "Leaky Bucket Size" msgstr "" -#: ../src/uvc_h264.c:852 +#: ../guvcview/gui_gtk3_h264ctrls.c:858 msgid "Bit Rate" msgstr "" -#: ../src/uvc_h264.c:856 ../src/uvc_h264.c:1250 +#: ../guvcview/gui_gtk3_h264ctrls.c:862 ../guvcview/gui_gtk3_h264ctrls.c:1220 msgid "CABAC" msgstr "" -#: ../src/uvc_h264.c:860 +#: ../guvcview/gui_gtk3_h264ctrls.c:866 msgid "(I) Frame Period" msgstr "" -#: ../src/uvc_h264.c:907 +#: ../guvcview/gui_gtk3_h264ctrls.c:878 msgid "Slice Mode:" msgstr "" -#: ../src/uvc_h264.c:914 +#: ../guvcview/gui_gtk3_h264ctrls.c:885 msgid "no multiple slices" msgstr "" -#: ../src/uvc_h264.c:916 +#: ../guvcview/gui_gtk3_h264ctrls.c:887 msgid "bits/slice" msgstr "" -#: ../src/uvc_h264.c:918 +#: ../guvcview/gui_gtk3_h264ctrls.c:889 msgid "Mbits/slice" msgstr "" -#: ../src/uvc_h264.c:920 +#: ../guvcview/gui_gtk3_h264ctrls.c:891 msgid "slices/frame" msgstr "" -#: ../src/uvc_h264.c:929 +#: ../guvcview/gui_gtk3_h264ctrls.c:900 msgid "Slice Units:" msgstr "" -#: ../src/uvc_h264.c:950 +#: ../guvcview/gui_gtk3_h264ctrls.c:921 msgid "Profile:" msgstr "" -#: ../src/uvc_h264.c:957 +#: ../guvcview/gui_gtk3_h264ctrls.c:928 msgid "Baseline Profile" msgstr "" -#: ../src/uvc_h264.c:959 +#: ../guvcview/gui_gtk3_h264ctrls.c:930 msgid "Main Profile" msgstr "" -#: ../src/uvc_h264.c:961 +#: ../guvcview/gui_gtk3_h264ctrls.c:932 msgid "High Profile" msgstr "" -#: ../src/uvc_h264.c:963 +#: ../guvcview/gui_gtk3_h264ctrls.c:934 msgid "Scalable Baseline Profile" msgstr "" -#: ../src/uvc_h264.c:965 +#: ../guvcview/gui_gtk3_h264ctrls.c:936 msgid "Scalable High Profile" msgstr "" -#: ../src/uvc_h264.c:967 +#: ../guvcview/gui_gtk3_h264ctrls.c:938 msgid "Multiview High Profile" msgstr "" -#: ../src/uvc_h264.c:969 +#: ../guvcview/gui_gtk3_h264ctrls.c:940 msgid "Stereo High Profile" msgstr "" -#: ../src/uvc_h264.c:1008 +#: ../guvcview/gui_gtk3_h264ctrls.c:979 msgid "Profile flags:" msgstr "" -#: ../src/uvc_h264.c:1033 +#: ../guvcview/gui_gtk3_h264ctrls.c:1004 msgid "(I) Frame Period (ms):" msgstr "" -#: ../src/uvc_h264.c:1054 +#: ../guvcview/gui_gtk3_h264ctrls.c:1025 msgid "Estimated Video Delay (ms):" msgstr "" -#: ../src/uvc_h264.c:1075 +#: ../guvcview/gui_gtk3_h264ctrls.c:1046 msgid "Estimated Max Config Delay (ms):" msgstr "" -#: ../src/uvc_h264.c:1096 +#: ../guvcview/gui_gtk3_h264ctrls.c:1067 msgid "Usage Type:" msgstr "" -#: ../src/uvc_h264.c:1103 +#: ../guvcview/gui_gtk3_h264ctrls.c:1074 msgid "Real-time" msgstr "" -#: ../src/uvc_h264.c:1105 +#: ../guvcview/gui_gtk3_h264ctrls.c:1076 msgid "Broadcast" msgstr "" -#: ../src/uvc_h264.c:1107 +#: ../guvcview/gui_gtk3_h264ctrls.c:1078 msgid "Storage" msgstr "" -#: ../src/uvc_h264.c:1109 +#: ../guvcview/gui_gtk3_h264ctrls.c:1080 msgid "(0) Non-scalable single layer AVC" msgstr "" -#: ../src/uvc_h264.c:1111 +#: ../guvcview/gui_gtk3_h264ctrls.c:1082 msgid "(1) SVC temporal scalability with hierarchical P" msgstr "" -#: ../src/uvc_h264.c:1113 +#: ../guvcview/gui_gtk3_h264ctrls.c:1084 msgid "(2q) SVC temporal scalability + Quality/SNR scalability" msgstr "" -#: ../src/uvc_h264.c:1115 +#: ../guvcview/gui_gtk3_h264ctrls.c:1086 msgid "(2s) SVC temporal scalability + spatial scalability" msgstr "" -#: ../src/uvc_h264.c:1117 +#: ../guvcview/gui_gtk3_h264ctrls.c:1088 msgid "(3) Full SVC scalability" msgstr "" -#: ../src/uvc_h264.c:1131 +#: ../guvcview/gui_gtk3_h264ctrls.c:1102 msgid "SNR Control Mode:" msgstr "" -#: ../src/uvc_h264.c:1138 +#: ../guvcview/gui_gtk3_h264ctrls.c:1109 msgid "No SNR Enhancement Layer" msgstr "" -#: ../src/uvc_h264.c:1140 +#: ../guvcview/gui_gtk3_h264ctrls.c:1111 msgid "CGS NonRewrite (2 Layer)" msgstr "" -#: ../src/uvc_h264.c:1142 +#: ../guvcview/gui_gtk3_h264ctrls.c:1113 msgid "CGS NonRewrite (3 Layer)" msgstr "" -#: ../src/uvc_h264.c:1144 +#: ../guvcview/gui_gtk3_h264ctrls.c:1115 msgid "CGS Rewrite (2 Layer)" msgstr "" -#: ../src/uvc_h264.c:1146 +#: ../guvcview/gui_gtk3_h264ctrls.c:1117 msgid "CGS Rewrite (3 Layer)" msgstr "" -#: ../src/uvc_h264.c:1148 +#: ../guvcview/gui_gtk3_h264ctrls.c:1119 msgid "MGS (2 Layer)" msgstr "" -#: ../src/uvc_h264.c:1173 +#: ../guvcview/gui_gtk3_h264ctrls.c:1144 msgid "Stream Mux Enable" msgstr "" -#: ../src/uvc_h264.c:1180 +#: ../guvcview/gui_gtk3_h264ctrls.c:1151 msgid "Embed H.264 aux stream" msgstr "" -#: ../src/uvc_h264.c:1182 +#: ../guvcview/gui_gtk3_h264ctrls.c:1153 msgid "Embed YUY2 aux stream" msgstr "" -#: ../src/uvc_h264.c:1184 +#: ../guvcview/gui_gtk3_h264ctrls.c:1155 msgid "Embed NV12 aux stream" msgstr "" -#: ../src/uvc_h264.c:1204 +#: ../guvcview/gui_gtk3_h264ctrls.c:1175 msgid "MJPG payload container" msgstr "" -#: ../src/uvc_h264.c:1219 +#: ../guvcview/gui_gtk3_h264ctrls.c:1189 msgid "Stream Format:" msgstr "" -#: ../src/uvc_h264.c:1227 +#: ../guvcview/gui_gtk3_h264ctrls.c:1197 msgid "Byte stream format (H.264 Annex-B)" msgstr "" -#: ../src/uvc_h264.c:1229 +#: ../guvcview/gui_gtk3_h264ctrls.c:1199 msgid "NAL stream format" msgstr "" -#: ../src/uvc_h264.c:1240 +#: ../guvcview/gui_gtk3_h264ctrls.c:1210 msgid "Entropy CABAC:" msgstr "" -#: ../src/uvc_h264.c:1248 +#: ../guvcview/gui_gtk3_h264ctrls.c:1218 msgid "CAVLC" msgstr "" -#: ../src/uvc_h264.c:1261 +#: ../guvcview/gui_gtk3_h264ctrls.c:1231 msgid "Picture timing SEI" msgstr "" -#: ../src/uvc_h264.c:1268 +#: ../guvcview/gui_gtk3_h264ctrls.c:1238 +#, fuzzy msgid "B Frames:" -msgstr "" +msgstr "Billedrate:" -#: ../src/uvc_h264.c:1293 +#: ../guvcview/gui_gtk3_h264ctrls.c:1263 msgid "Preview Flipped" msgstr "" -#: ../src/uvc_h264.c:1300 +#: ../guvcview/gui_gtk3_h264ctrls.c:1270 msgid "Additional MVC Views:" msgstr "" -#: ../src/uvc_h264.c:1325 +#: ../guvcview/gui_gtk3_h264ctrls.c:1295 msgid "Simulcast stream index:" msgstr "" -#: ../src/uvc_h264.c:1350 +#: ../guvcview/gui_gtk3_h264ctrls.c:1320 msgid "Spatial Layer Ratio:" msgstr "" -#: ../src/uvc_h264.c:1379 +#: ../guvcview/gui_gtk3_h264ctrls.c:1349 msgid "Leaky Bucket Size (ms):" msgstr "" #. encoder reset -#: ../src/uvc_h264.c:1406 +#: ../guvcview/gui_gtk3_h264ctrls.c:1376 msgid "Encoder Reset" msgstr "" -#. -#. h264_controls->probe_button = gtk_button_new_with_label(_("PROBE")); -#. g_signal_connect (GTK_BUTTON(h264_controls->probe_button), "clicked", +#. +#. GtkWidget *probe_button = gtk_button_new_with_label(_("PROBE")); +#. g_signal_connect (GTK_BUTTON(probe_button), "clicked", #. G_CALLBACK (h264_probe_button_clicked), all_data); -#. -#. gtk_grid_attach (GTK_GRID(table), h264_controls->probe_button, 0, line, 1 ,1); -#. gtk_widget_show(h264_controls->probe_button); -#. -#: ../src/uvc_h264.c:1421 +#. +#. gtk_grid_attach (GTK_GRID(h264_controls_grid), probe_button, 0, line, 1 ,1); +#. gtk_widget_show(probe_button); +#. +#: ../guvcview/gui_gtk3_h264ctrls.c:1391 msgid "COMMIT" msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:70 +msgid "Settings" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:73 +msgid "Hardware Defaults" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:81 +msgid "Camera Button" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:86 +msgid "Capture Image" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:91 +msgid "Capture Video" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:134 +msgid "Photo" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:135 ../guvcview/gui_gtk3_menu.c:159 +msgid "File" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:136 ../guvcview/gui_gtk3_menu.c:160 +msgid "Increment Filename" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:158 +msgid "Video" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:175 +msgid "Video Codec" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:202 +msgid "Video Codec Properties" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:208 +msgid "Audio Codec" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:235 +msgid "Audio Codec Properties" +msgstr "" + +#: ../guvcview/gui_gtk3_v4l2ctrls.c:174 +msgid "Left" +msgstr "Venstre" + +#: ../guvcview/gui_gtk3_v4l2ctrls.c:175 +msgid "Right" +msgstr "HĂžjre" + +#: ../guvcview/gui_gtk3_v4l2ctrls.c:179 +msgid "Down" +msgstr "Ned" + +#: ../guvcview/gui_gtk3_v4l2ctrls.c:180 +msgid "Up" +msgstr "Op" + +#. turn it into a menu control +#: ../guvcview/gui_gtk3_v4l2ctrls.c:296 +msgid "8 bit" +msgstr "" + +#: ../guvcview/gui_gtk3_v4l2ctrls.c:296 +msgid "12 bit" +msgstr "" + +#. add a virtual control for software autofocus +#: ../guvcview/gui_gtk3_v4l2ctrls.c:348 +msgid "Auto Focus (continuous)" +msgstr "Auto fokus (fortsat)" + +#: ../guvcview/gui_gtk3_v4l2ctrls.c:349 +msgid "set Focus" +msgstr "sĂŠt fokus" + +#. control_widgets_list[n].widget2 = gtk_button_new_from_stock(GTK_STOCK_APPLY); +#. control_widgets_list[n].widget2= gtk_button_new_from_stock(GTK_STOCK_APPLY); +#. control_widgets_list[n].widget2 = gtk_button_new_from_stock(GTK_STOCK_APPLY); +#: ../guvcview/gui_gtk3_v4l2ctrls.c:433 ../guvcview/gui_gtk3_v4l2ctrls.c:456 +#: ../guvcview/gui_gtk3_v4l2ctrls.c:478 +msgid "_Apply" +msgstr "" + +#: ../guvcview/gui_gtk3_videoctrls.c:144 +msgid "Frame Rate:" +msgstr "Billedrate:" + +#: ../guvcview/gui_gtk3_videoctrls.c:204 +msgid "Resolution:" +msgstr "OplĂžsning:" + +#: ../guvcview/gui_gtk3_videoctrls.c:254 +msgid "Camera Output:" +msgstr "Kamera output:" + +#: ../guvcview/gui_gtk3_videoctrls.c:287 +msgid "---- Video Filters ----" +msgstr "---- Video filtre ----" + +#. Mirror FX +#: ../guvcview/gui_gtk3_videoctrls.c:307 +msgid " Mirror" +msgstr " Spejl" + +#. Upturn FX +#: ../guvcview/gui_gtk3_videoctrls.c:319 +msgid " Invert" +msgstr " Vend" + +#. Negate FX +#: ../guvcview/gui_gtk3_videoctrls.c:331 +msgid " Negative" +msgstr " Negativ" + +#. Mono FX +#: ../guvcview/gui_gtk3_videoctrls.c:343 +msgid " Mono" +msgstr " Mono" + +#. Pieces FX +#: ../guvcview/gui_gtk3_videoctrls.c:356 +msgid " Pieces" +msgstr "" + +#. Particles +#: ../guvcview/gui_gtk3_videoctrls.c:369 +msgid " Particles" +msgstr "" + +#: ../guvcview/options.c:51 +msgid "Print help" +msgstr "" + +#: ../guvcview/options.c:58 +msgid "Print version" +msgstr "" + +#: ../guvcview/options.c:64 +msgid "LEVEL" +msgstr "" + +#: ../guvcview/options.c:65 +msgid "Set Verbosity level (def: 0)" +msgstr "" + +#: ../guvcview/options.c:71 +msgid "DEVICE" +msgstr "" + +#: ../guvcview/options.c:72 +#, fuzzy +msgid "Set device name (def: /dev/video0)" +msgstr "Video udstyr at benyttet [default: /dev/video0]" + +#: ../guvcview/options.c:78 +msgid "METHOD" +msgstr "" + +#: ../guvcview/options.c:79 +msgid "Set capture method [read | mmap (def)]" +msgstr "" + +#: ../guvcview/options.c:85 +msgid "WIDTHxHEIGHT" +msgstr "" + +#: ../guvcview/options.c:86 +msgid "Request resolution (e.g 640x480)" +msgstr "" + +#: ../guvcview/options.c:92 +msgid "FOURCC" +msgstr "" + +#: ../guvcview/options.c:93 +msgid "Request format (e.g MJPG)" +msgstr "" + +#: ../guvcview/options.c:99 +msgid "RENDER_API" +msgstr "" + +#: ../guvcview/options.c:100 +msgid "Select render API (e.g none; sdl)" +msgstr "" + +#: ../guvcview/options.c:106 +msgid "AUDIO_API" +msgstr "" + +#: ../guvcview/options.c:107 +msgid "Select audio API (e.g none; port; pulse)" +msgstr "" + +#: ../guvcview/options.c:113 +msgid "AUDIO_DEVICE" +msgstr "" + +#: ../guvcview/options.c:114 +msgid "Select audio device index for selected api (0..N)" +msgstr "" + +#: ../guvcview/options.c:120 +msgid "GUI_API" +msgstr "" + +#: ../guvcview/options.c:121 +msgid "Select GUI API (e.g none; gtk3)" +msgstr "" + +#: ../guvcview/options.c:127 ../guvcview/options.c:134 +msgid "CODEC" +msgstr "" + +#: ../guvcview/options.c:128 +msgid "Audio codec [pcm mp2 mp3 aac ac3 vorb]" +msgstr "" + +#: ../guvcview/options.c:135 +msgid "Video codec [raw mjpg mpeg flv1 wmv1 mpg2 mp43 dx50 h264 vp80 theo]" +msgstr "" + +#: ../guvcview/options.c:141 ../guvcview/options.c:148 +#: ../guvcview/options.c:155 +msgid "FILENAME" +msgstr "" + +#: ../guvcview/options.c:142 +msgid "load control profile" +msgstr "" + +#: ../guvcview/options.c:149 +msgid "filename for captured video)" +msgstr "" + +#: ../guvcview/options.c:156 +msgid "filename for captured image)" +msgstr "" + +#: ../guvcview/options.c:162 ../guvcview/options.c:169 +msgid "TIME_IN_SEC" +msgstr "" + +#: ../guvcview/options.c:163 +msgid "time (double) in sec. for video capture)" +msgstr "" + +#: ../guvcview/options.c:170 +msgid "time (double) in sec. between captured photos)" +msgstr "" + +#: ../guvcview/options.c:176 +msgid "TOTAL" +msgstr "" + +#: ../guvcview/options.c:177 +msgid "total number of captured photos)" +msgstr "" + +#: ../guvcview/options.c:184 +msgid "Start in control panel mode" +msgstr "" + +#: ../guvcview/options.c:307 +#, c-format +msgid "" +"Guvcview version %s\n" +"\n" +msgstr "" + +#: ../guvcview/options.c:308 +#, c-format +msgid "" +"Usage:\n" +" guvcview [OPTIONS]\n" +"\n" +msgstr "" + +#: ../guvcview/options.c:309 +#, c-format +msgid "OPTIONS:\n" +msgstr "" + +#: ../guvcview/video_capture.c:819 +#, c-format +msgid "saving video to %s" +msgstr "" + +#. if(debug_level > 1) +#. printf("GUVCVIEW: saving image to %s\n", img_filename); +#: ../guvcview/video_capture.c:1069 +#, c-format +msgid "saving image to %s" +msgstr "" + +#~ msgid " Sound" +#~ msgstr " Lyd" + +#~ msgid "Save File" +#~ msgstr "Gem fil" + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to open device" +#~ msgstr "" +#~ "Guvcview fejl:\n" +#~ "\n" +#~ "Kunne ikke Ă„bne udstyr" + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to start with minimum setup" +#~ msgstr "" +#~ "Guvcview fejl:\n" +#~ "\n" +#~ "Kunne ikke starte pĂ„ minimum setup" + +#~ msgid "Please reconnect your camera." +#~ msgstr "VĂŠr venlig at gentilslutte dit kamera." + +#~ msgid "Please try restarting your system." +#~ msgstr "PrĂžv venligst at genstarte dit system." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to create Video Thread" +#~ msgstr "" +#~ "Guvcview fejl:\n" +#~ "\n" +#~ "Kunne ikke skabe video trĂ„d" + +#~ msgid "Please report it to http://developer.berlios.de/bugs/?group_id=8179" +#~ msgstr "" +#~ "Rapporter det venligst til http://developer.berlios.de/bugs/?group_id=8179" + +#~ msgid "Displays debug information" +#~ msgstr "Vis debug information" + +#~ msgid "Frame size, default: 640x480" +#~ msgstr "Ramme stĂžrrelse, standard: 640x480" + +#~ msgid "Load Profile at start" +#~ msgstr "IndlĂŠs profil ved start" + +#~ msgid "- local options" +#~ msgstr "- lokale valgmuligheder" + +#~ msgid "YUY2 - uncomp YUV" +#~ msgstr "YUY2 - ukomprimeret YUV" + +#~ msgid "RGB - uncomp BMP" +#~ msgstr "RGB - ukomprimeret BMP" + +#~ msgid " Show" +#~ msgstr " Vis" diff -Nru guvcview-1.7.3/po/de.po guvcview-2.0.1+ubuntu1~ppa1/po/de.po --- guvcview-1.7.3/po/de.po 2014-03-24 22:56:28.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/po/de.po 2014-10-05 10:41:44.000000000 +0000 @@ -10,16 +10,16 @@ msgstr "" "Project-Id-Version: de\n" "Report-Msgid-Bugs-To: pj.assis@gmail.com\n" -"POT-Creation-Date: 2013-11-14 22:15+0000\n" +"POT-Creation-Date: 2014-08-17 22:49+0100\n" "PO-Revision-Date: 2013-02-25 05:34+0000\n" "Last-Translator: Paulo Assis \n" "Language-Team: Portuguese \n" +"Language: pt\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-12-08 10:36+0000\n" "X-Generator: Launchpad (build 16869)\n" -"Language: pt\n" #: ../data/guvcview.desktop.in.in.h:1 msgid "guvcview" @@ -31,1400 +31,1632 @@ #: ../data/guvcview.desktop.in.in.h:3 msgid "A video viewer and capturer for the linux uvc driver" -msgstr "Ein Video-Betrachter und Aufnahmewerkzeug fĂŒr den Linux-UVC-Treiber" - -#: ../src/acodecs.c:59 -msgid "PCM - uncompressed (16 bit)" -msgstr "PCM – Unkomprimiert (16 Bit)" - -#: ../src/acodecs.c:76 -msgid "MPEG2 - (lavc)" -msgstr "MPEG2 – (lavc)" - -#: ../src/acodecs.c:93 -msgid "MP3 - (lavc)" -msgstr "MP3 – (lavc)" - -#: ../src/acodecs.c:110 -msgid "Dolby AC3 - (lavc)" -msgstr "Dolby AC3 – (lavc)" - -#: ../src/acodecs.c:127 -msgid "ACC Low - (faac)" -msgstr "ACC Niedrig – (faac)" - -#: ../src/acodecs.c:144 -msgid "Vorbis" -msgstr "Vorbis" - -#: ../src/audio_tab.c:87 -msgid "Audio" -msgstr "Audio" - -#: ../src/audio_tab.c:105 -msgid " Sound" -msgstr " Audio" - -#. VU meter on the image (OSD) -#: ../src/audio_tab.c:116 -msgid " Show VU meter" -msgstr " VU-Meter anzeigen" - -#: ../src/audio_tab.c:128 -msgid "Audio API:" -msgstr "Audio API:" - -#: ../src/audio_tab.c:139 -msgid "PORTAUDIO" -msgstr "PORTAUDIO" - -#: ../src/audio_tab.c:140 -msgid "PULSEAUDIO" -msgstr "PULSEAUDIO" - -#: ../src/audio_tab.c:156 ../src/audio_tab.c:179 -msgid "Input Device:" -msgstr "EingabegerĂ€t:" - -#: ../src/audio_tab.c:189 ../src/audio_tab.c:221 -msgid "Dev. Default" -msgstr "Standard" - -#: ../src/audio_tab.c:211 -msgid "Sample Rate:" -msgstr "Samplingrate:" - -#: ../src/audio_tab.c:222 -msgid "1 - mono" -msgstr "1 - Mono" - -#: ../src/audio_tab.c:223 -msgid "2 - stereo" -msgstr "2 - Stereo" - -#: ../src/audio_tab.c:258 -msgid "Channels:" -msgstr "KanĂ€le:" - -#: ../src/audio_tab.c:309 -msgid "---- Audio Effects ----" -msgstr "— Audio-Filter —" - -#. Echo -#: ../src/audio_tab.c:328 -msgid " Echo" -msgstr " Echo" - -#. FUZZ -#: ../src/audio_tab.c:339 -msgid " Fuzz" -msgstr " Fuzz" - -#. Reverb -#: ../src/audio_tab.c:351 -msgid " Reverb" -msgstr " Hall" - -#. WahWah -#: ../src/audio_tab.c:363 -msgid " WahWah" -msgstr " Wah-Wah" - -#. Ducky -#: ../src/audio_tab.c:375 -msgid " Ducky" -msgstr " Ente" - -#: ../src/callbacks.c:109 -msgid "Error" -msgstr "Fehler" - -#: ../src/callbacks.c:133 -msgid "" -"\n" -"You have more than one video device installed.\n" -"Do you want to try another one ?\n" -msgstr "" -"\n" -"Sie haben mehr als ein Video-GerĂ€t installiert\n" -"Möchten Sie ein weiteres versuchen?\n" - -#. Devices -#: ../src/callbacks.c:140 ../src/video_tab.c:111 -msgid "Device:" -msgstr "EingabegerĂ€t:" - -#: ../src/callbacks.c:272 -msgid "Save File" -msgstr "Datei speichern" - -#: ../src/callbacks.c:284 -msgid "File Format:" -msgstr "Dateiformat:" - -#: ../src/callbacks.c:455 -msgid "codec values" -msgstr "Codec-Werte" - -#: ../src/callbacks.c:466 -msgid "" -" encoder fps: \n" -" (0 - use fps combobox value)" -msgstr "" -" Kodierer Bilder/s: \n" -" (0 – FPS-Wert aus Auswahlliste)" - -#: ../src/callbacks.c:479 -msgid " monotonic pts" -msgstr " Monoton ansteigender PTS" - -#. bit rate -#: ../src/callbacks.c:486 ../src/callbacks.c:809 -msgid "bit rate: " -msgstr "Bitrate: " - -#: ../src/callbacks.c:499 -msgid "qmax: " -msgstr "qmax: " - -#: ../src/callbacks.c:512 -msgid "qmin: " -msgstr "qmin: " - -#: ../src/callbacks.c:525 -msgid "max. qdiff: " -msgstr "max. qdiff: " - -#: ../src/callbacks.c:538 -msgid "dia size: " -msgstr "DIA, GrĂ¶ĂŸe: " - -#: ../src/callbacks.c:551 -msgid "pre dia size: " -msgstr "PrĂ€d.-DIA, GrĂ¶ĂŸe: " - -#: ../src/callbacks.c:564 -msgid "pre me: " -msgstr "PrĂ€d.-ME: " - -#: ../src/callbacks.c:577 -msgid "pre cmp: " -msgstr "PrĂ€d.-CMP: " - -#: ../src/callbacks.c:590 -msgid "cmp: " -msgstr "cmp: " - -#: ../src/callbacks.c:603 -msgid "sub cmp: " -msgstr "sub cmp: " - -#: ../src/callbacks.c:616 -msgid "last predictor count: " -msgstr "Letzter PrĂ€diktorzĂ€hlstand: " - -#: ../src/callbacks.c:629 -msgid "gop size: " -msgstr "GOP, GrĂ¶ĂŸe: " - -#: ../src/callbacks.c:642 -msgid "qcompress: " -msgstr "QCompress: " - -#: ../src/callbacks.c:655 -msgid "qblur: " -msgstr "QBlur: " - -#: ../src/callbacks.c:668 -msgid "subq: " -msgstr "Subq: " - -#: ../src/callbacks.c:681 -msgid "framerefs: " -msgstr "FrameRefs: " - -#: ../src/callbacks.c:694 -msgid "me method: " -msgstr "ME, Methode: " - -#: ../src/callbacks.c:707 -msgid "mb decision: " -msgstr "MD, Entscheidung: " - -#: ../src/callbacks.c:720 -msgid "max B frames: " -msgstr "Max. B-Frames: " - -#: ../src/callbacks.c:733 -msgid "num threads: " -msgstr "Anzahl Threads: " - -#: ../src/callbacks.c:796 -msgid "audio codec values" -msgstr "Audio-Codec-Werte" - -#. sample format -#: ../src/callbacks.c:823 -msgid "sample format: " -msgstr "Sample-Format: " - -#: ../src/callbacks.c:1311 -msgid "start new" -msgstr "beginnen neue" - -#: ../src/callbacks.c:1314 -msgid "restart" -msgstr "Neustart" - -#: ../src/callbacks.c:1316 -msgid "new" -msgstr "Neue" - -#: ../src/callbacks.c:1318 -msgid "cancel" -msgstr "Abbrechen" - -#: ../src/callbacks.c:1323 -msgid "" -"launch new process or restart?.\n" -"\n" -msgstr "" -"Neuer prozess oder programm neustarten?\n" -"\n" - -#: ../src/callbacks.c:1780 ../src/guvcview.c:565 -msgid "Cap. Image (I)" -msgstr "Bild aufnehmen (I)" - -#. disable image controls -#: ../src/callbacks.c:1791 ../src/guvcview.c:690 ../src/timers.c:101 -msgid "capturing photo to" -msgstr "Foto speichern in" - -#: ../src/callbacks.c:1850 ../src/guvcview.c:575 -msgid "Cap. Video (V)" -msgstr "Video aufnehmen (V)" - -#: ../src/callbacks.c:1876 ../src/guvcview.c:740 -msgid "capturing video to" -msgstr "Video speichern in" - -#. vid capture enabled from start -#: ../src/callbacks.c:1911 ../src/guvcview.c:570 -msgid "Stop Video (V)" -msgstr "Video stoppen (V)" - -#: ../src/callbacks.c:1967 ../src/menubar.c:66 -msgid "Save Profile" -msgstr "Profil speichern" - -#: ../src/callbacks.c:1980 ../src/menubar.c:65 -msgid "Load Profile" -msgstr "Profil laden" - -#: ../src/create_video.c:1098 ../src/guvcview.c:732 -msgid "Cap. Video" -msgstr "Video aufnehmen" - -#: ../src/guvcview.c:280 -msgid "Guvcview Video Capture" -msgstr "GUVCView-Video-Aufnahme" - -#: ../src/guvcview.c:292 -msgid "GUVCViewer Controls" -msgstr "GUVCViewer-Bedienfeld" - -#. can't open device -#: ../src/guvcview.c:342 -msgid "" -"Guvcview error:\n" -"\n" -"Unable to open device" -msgstr "" -"GUVCView-Fehler:\n" -"\n" -"Das GerĂ€t konnte nicht geöffnet werden" - -#: ../src/guvcview.c:343 -msgid "" -"Please make sure the camera is connected\n" -"and that the correct driver is installed." -msgstr "" -"Bitte stellen Sie sicher, dass die Kamera angeschlossen wird\n" -"und dass die driver angebracht ist." - -#. uvc extension controls OK, give warning and shutdown (called with --add_ctrls) -#: ../src/guvcview.c:348 -msgid "" -"Guvcview:\n" -"\n" -"UVC Extension controls" -msgstr "" -"GUVCView:\n" -"\n" -"Erweiterte UVC-Bedienelemente" - -#: ../src/guvcview.c:349 -msgid "Extension controls were added to the UVC driver" -msgstr "Erweiterte Bedienelemente wurden zum UVC-Treiber hinzugefĂŒgt" - -#. uvc extension controls error - EACCES (needs root user) -#: ../src/guvcview.c:356 -msgid "" -"Guvcview error:\n" -"\n" -"UVC Extension controls" -msgstr "" -"GUVCView-Fehler:\n" -"\n" -"Erweiterte UVC-Bedienelemente" - -#: ../src/guvcview.c:357 -msgid "" -"An error occurred while adding extension\n" -"controls to the UVC driver\n" -"Make sure you run guvcview as root (or sudo)." -msgstr "" -"Ein Fehler ist beim HinzufĂŒgen der erweiterten\n" -"Bedienelemente zum UVC-Treiber aufgetreten.\n" -"Stellen Sie sicher, dass Sie »guvcview« als Systemverwalter\n" -"(Benutzer »root) ausfĂŒhren oder mit »sudo«." - -#: ../src/guvcview.c:391 ../src/guvcview.c:399 ../src/guvcview.c:477 -msgid "" -"Guvcview error:\n" -"\n" -"Can't set a valid video stream for guvcview" -msgstr "" -"GUVCView-Fehler:\n" -"\n" -"Es kann kein gĂŒltiger Video-Stream fĂŒr guvcview festgelegt werden" - -#: ../src/guvcview.c:392 ../src/guvcview.c:400 ../src/guvcview.c:478 -msgid "" -"Make sure your device driver is v4l2 compliant\n" -"and that it is properly installed." -msgstr "" -"Stellen Sie bitte sicher, dass Sie sowohl eine v4l2 kompatible Kamera " -"besitzen als auch den Treiber geladen haben." - -#: ../src/guvcview.c:422 ../src/guvcview.c:444 -msgid "" -"Guvcview error:\n" -"\n" -"Unable to start with minimum setup" -msgstr "" -"GUVCView-Fehler:\n" -"\n" -"Es konnte nicht im minimalen Modus gestartet werden" - -#: ../src/guvcview.c:423 ../src/guvcview.c:445 -msgid "Please reconnect your camera." -msgstr "Bitte schließen Sie Ihre Kamera erneut an." - -#: ../src/guvcview.c:452 -msgid "" -"Guvcview error:\n" -"\n" -"Couldn't query device capabilities" -msgstr "" -"GUVCView-Fehler:\n" -"\n" -"GerĂ€teeigenschaften konnten nicht abgefragt werden" - -#: ../src/guvcview.c:453 -msgid "Make sure the device driver supports v4l2." -msgstr "Stellen Sie sicher, dass der GerĂ€tetreiber v4l2 unterstĂŒtzt." - -#: ../src/guvcview.c:457 -msgid "" -"Guvcview error:\n" -"\n" -"Read method error" -msgstr "" -"GUVCView-Fehler:\n" -"\n" -"Fehler der Lesemethode" - -#: ../src/guvcview.c:458 -msgid "Please try mmap instead (--capture_method=1)." -msgstr "Bitte versuchen sie es mit mmap (--capture_method=1)" - -#: ../src/guvcview.c:466 -msgid "" -"Guvcview error:\n" -"\n" -"Unable to allocate Buffers" -msgstr "" -"GUVCView-Fehler:\n" -"\n" -"Puffer konnten nicht angelegt werden" - -#: ../src/guvcview.c:467 -msgid "Please try restarting your system." -msgstr "Bitte System neu starten." - -#: ../src/guvcview.c:518 -msgid "Image Controls" -msgstr "Bildsteuerung" - -#. image auto capture -#: ../src/guvcview.c:561 -msgid "Stop Auto (I)" -msgstr "Automatisch anhalten (I)" - -#: ../src/guvcview.c:676 -msgid "" -"Guvcview error:\n" -"\n" -"Unable to create Video Thread" -msgstr "" -"GUVCView-Fehler:\n" -"\n" -"Video-Thread konnte nicht erzeugt werden" - -#: ../src/guvcview.c:677 -msgid "Please report it to http://developer.berlios.de/bugs/?group_id=8179" -msgstr "" -"Bitte melden Sie dies an http://developer.berlios.de/bugs/?group_id=8179" - -#: ../src/img_controls.c:121 -msgid "Auto Focus (continuous)" -msgstr "Automatisch Fokus (andauernd)" - -#: ../src/img_controls.c:122 -msgid "set Focus" -msgstr "Fokus" - -#: ../src/image_format.c:35 -msgid "Jpeg (jpg)" -msgstr "JPEG (jpg)" - -#: ../src/image_format.c:41 -msgid "Bitmap (Bmp)" -msgstr "Bitmap (bmp)" - -#: ../src/image_format.c:47 -msgid "Portable Network Graphics (Png)" -msgstr "Portable Network Graphics (png)" - -#: ../src/image_format.c:53 -msgid "Raw Image (raw)" -msgstr "Rohdatenbild (raw)" - -#. controls menu -#: ../src/menubar.c:64 -msgid "Settings" -msgstr "Einstellungen" - -#: ../src/menubar.c:67 -msgid "Hardware Defaults" -msgstr "Hardware-Standards" - -#: ../src/menubar.c:75 -msgid "Camera Button" -msgstr "Kameraknopf" - -#: ../src/menubar.c:79 -msgid "Capture Image" -msgstr "Bild aufnehmen" - -#: ../src/menubar.c:84 -msgid "Capture Video" -msgstr "Video aufnehmen" - -#. video menu -#: ../src/menubar.c:144 ../src/video_tab.c:95 -msgid "Video" -msgstr "Video" - -#: ../src/menubar.c:145 ../src/menubar.c:233 -msgid "File" -msgstr "Datei" - -#: ../src/menubar.c:146 ../src/menubar.c:234 -msgid "Increment Filename" -msgstr "Dateinamen hochzĂ€hlen" - -#: ../src/menubar.c:164 -msgid "Video Codec" -msgstr "Video-Codec" - -#: ../src/menubar.c:189 -msgid "Video Codec Properties" -msgstr "Video-Codec-Eigenschaften" - -#: ../src/menubar.c:196 -msgid "Audio Codec" -msgstr "Audio-Codec" - -#: ../src/menubar.c:217 -msgid "Audio Codec Properties" -msgstr "Audio-Codec-Eigenschaften" - -#. photo menu -#: ../src/menubar.c:232 -msgid "Photo" -msgstr "Foto" - -#: ../src/options.c:753 -msgid "Prints version" -msgstr "Zeigt die Version an" - -#: ../src/options.c:754 -msgid "Displays debug information" -msgstr "Extra Informationen anzeigen" - -#: ../src/options.c:755 -msgid "Video Device to use [default: /dev/video0]" -msgstr "Verwendetes Video-GerĂ€t [Standard: /dev/video0]" - -#: ../src/options.c:756 -msgid "Exit after adding UVC extension controls (needs root/sudo)" -msgstr "" -"Nach HinzufĂŒgen der erweiterten UVC-Bedienelemente beenden (root/sudo " -"erforderlich)" - -#: ../src/options.c:757 -msgid "Don't stream video (image controls only)" -msgstr "Video nicht streamen (nur Bildsteuerung)" - -#: ../src/options.c:758 -msgid "Don't display a GUI" -msgstr "Keine grafische BenutzeroberflĂ€che anzeigen" - -#: ../src/options.c:759 -msgid "Capture method (1-mmap (default) 2-read)" -msgstr "Aufnahmemethode (1-mmap (Vorgabe) 2-read)" - -#: ../src/options.c:760 -msgid "Configuration file" -msgstr "Konfigurationsdatei" - -#: ../src/options.c:761 -msgid "Hardware accelaration (enable(1) | disable(0))" -msgstr "Hardware accel. (aktivieren(1) | inaktivieren(0))" - -#: ../src/options.c:762 -msgid "" -"Pixel " -"format(mjpg|jpeg|yuyv|yvyu|uyvy|yyuv|yu12|yv12|nv12|nv21|nv16|nv61|y41p|grey|" -"y10b|y16 |s501|s505|s508|gbrg|grbg|ba81|rggb|bgr3|rgb3)" -msgstr "" -"Pixel-Format " -"(mjpg|jpeg|yuyv|yvyu|uyvy|yyuv|yu12|yv12|nv12|nv21|nv16|nv61|y41p|grey|y10b|y" -"16 |s501|s505|s508|gbrg|grbg|ba81|rggb|bgr3|rgb3)" - -#: ../src/options.c:763 -msgid "Frame size, default: 640x480" -msgstr "Auflösung (Standard: 640x480)" - -#: ../src/options.c:764 -msgid "Image File name" -msgstr "Bilddatei" - -#: ../src/options.c:765 -msgid "Image capture interval in seconds" -msgstr "Bild aufnehmenabgelaufen (sekunden)" - -#: ../src/options.c:766 -msgid "Number of Pictures to capture" -msgstr "BildquantitĂ€t" - -#: ../src/options.c:767 -msgid "Video File name (capture from start)" -msgstr "Video-Dateiname (Aufnahme von Anfang)" - -#: ../src/options.c:768 -msgid "Video capture time (in seconds)" -msgstr "Video-Aufnahmedauer (Sek)" - -#: ../src/options.c:769 -msgid "Exits guvcview after closing video" -msgstr "GUVCView beenden, nachdem Video geschlossen wurde" - -#: ../src/options.c:770 -msgid "Number of initial frames to skip" -msgstr "Anzahl der am Anfang zu ĂŒberspringenden Einzelbilder" - -#: ../src/options.c:771 -msgid "Show FPS value (enable(1) | disable (0))" -msgstr "FPS anzeigen (aktivieren(1)|inaktivieren(0))" - -#: ../src/options.c:772 -msgid "Load Profile at start" -msgstr "kontrollen - Datei öffnen" - -#: ../src/options.c:773 -msgid "List controls method (0:loop, 1:next_ctrl flag [def])" -msgstr "" - -#: ../src/options.c:779 -msgid "- local options" -msgstr "- lokale Wahlen" - -#. gdk_threads_enter(); -#: ../src/timers.c:119 -msgid "Cap. Image" -msgstr "Bild aufnehmen" - -#: ../src/timers.c:217 -msgid "Guvcview Warning:" -msgstr "GUVCView-Warnung:" - -#: ../src/timers.c:217 -msgid "Not enough free space left on disk" -msgstr "Nicht genĂŒgend freier Speicherplatz vorhanden" - -#: ../src/v4l2_controls.c:794 -msgid "Left" -msgstr "Links" - -#: ../src/v4l2_controls.c:795 -msgid "Right" -msgstr "Rechts" - -#: ../src/v4l2_controls.c:799 -msgid "Down" -msgstr "Runter" - -#: ../src/v4l2_controls.c:800 -msgid "Up" -msgstr "Hoch" - -#: ../src/v4l2_controls.c:845 -msgid "Off" -msgstr "Aus" - -#: ../src/v4l2_controls.c:845 -msgid "On" -msgstr "An" - -#: ../src/v4l2_controls.c:845 -msgid "Blinking" -msgstr "Blinken" - -#: ../src/v4l2_controls.c:845 -msgid "Auto" -msgstr "Automatisch" - -#. turn it into a menu control -#: ../src/v4l2_controls.c:894 -msgid "8 bit" -msgstr "8 Bit" - -#: ../src/v4l2_controls.c:894 -msgid "12 bit" -msgstr "12 Bit" - -#: ../src/v4l2_dyna_ctrls.c:96 -msgid "Pan (relative)" -msgstr "Umdrehung (relativ)" - -#: ../src/v4l2_dyna_ctrls.c:109 -msgid "Tilt (relative)" -msgstr "Neigung (relativ)" - -#: ../src/v4l2_dyna_ctrls.c:122 -msgid "Pan Reset" -msgstr "Umdrehung (ZurĂŒckstellen)" - -#: ../src/v4l2_dyna_ctrls.c:135 -msgid "Tilt Reset" -msgstr "Neigung (ZurĂŒckstellen)" - -#: ../src/v4l2_dyna_ctrls.c:148 -msgid "Focus (absolute)" -msgstr "Fokus (absolut)" - -#: ../src/v4l2_dyna_ctrls.c:161 -msgid "LED1 Mode" -msgstr "Modus LED1" - -#: ../src/v4l2_dyna_ctrls.c:174 -msgid "LED1 Frequency" -msgstr "Frequenz LED1" +msgstr "Ein Video-Betrachter und Aufnahmewerkzeug fĂŒr den Linux-UVC-Treiber" -#: ../src/v4l2_dyna_ctrls.c:187 -msgid "Disable video processing" -msgstr "Video-Verarbeitung ausschalten" +#: ../data/guvcview.appdata.xml.in.in.h:1 +msgid "capture video from v4l2 devices" +msgstr "" -#: ../src/v4l2_dyna_ctrls.c:200 -msgid "Raw bits per pixel" -msgstr "Rohe Bits pro Pixel" +#: ../data/guvcview.appdata.xml.in.in.h:2 +msgid "" +"Video capture tool for video4linux2 compliant cameras, with special emphasis " +"on the linux uvc driver. It provides Image (jpg, png, bmp) and Video (mjpeg, " +"flv1, wmv1, mpg2, mpg4,...) capture with sound in several " +"formats( currently: avi and matroska). I also supports a control panel " +"option (--control_only) that is compatible with any other v4l2 app." +msgstr "" -#. needed only for language files (not used) +#. +#. * needed only for language files (not used) +#. #. V4L2 control strings -#: ../src/v4l2uvc.c:57 +#: ../gview_v4l2core/v4l2_controls.c:49 msgid "User Controls" msgstr "Benutzersteuerung" -#: ../src/v4l2uvc.c:58 +#: ../gview_v4l2core/v4l2_controls.c:50 msgid "Brightness" msgstr "Helligkeit" -#: ../src/v4l2uvc.c:59 +#: ../gview_v4l2core/v4l2_controls.c:51 msgid "Contrast" msgstr "Kontrast" -#: ../src/v4l2uvc.c:60 +#: ../gview_v4l2core/v4l2_controls.c:52 msgid "Hue" msgstr "Farbe" -#: ../src/v4l2uvc.c:61 +#: ../gview_v4l2core/v4l2_controls.c:53 msgid "Saturation" msgstr "SĂ€ttigung" -#: ../src/v4l2uvc.c:62 +#: ../gview_v4l2core/v4l2_controls.c:54 msgid "Sharpness" msgstr "SchĂ€rfe" -#: ../src/v4l2uvc.c:63 +#: ../gview_v4l2core/v4l2_controls.c:55 msgid "Gamma" msgstr "Gamma" -#: ../src/v4l2uvc.c:64 +#: ../gview_v4l2core/v4l2_controls.c:56 msgid "Backlight Compensation" msgstr "Korrektur der Hintergrundbeleuchtung" -#: ../src/v4l2uvc.c:65 +#: ../gview_v4l2core/v4l2_controls.c:57 msgid "Power Line Frequency" msgstr "Netzfrequenz" -#: ../src/v4l2uvc.c:66 +#: ../gview_v4l2core/v4l2_controls.c:58 msgid "Hue, Automatic" msgstr "Farbton, automatisch" -#: ../src/v4l2uvc.c:67 +#: ../gview_v4l2core/v4l2_controls.c:59 msgid "Focus, Auto" msgstr "Fokus, automatisch" -#: ../src/v4l2uvc.c:68 +#: ../gview_v4l2core/v4l2_controls.c:60 msgid "Manual Mode" msgstr "HĂ€ndischer Modus" -#: ../src/v4l2uvc.c:69 +#: ../gview_v4l2core/v4l2_controls.c:61 msgid "Auto Mode" msgstr "Automatischer Modus" -#: ../src/v4l2uvc.c:70 +#: ../gview_v4l2core/v4l2_controls.c:62 msgid "Shutter Priority Mode" msgstr "Blendenautomatik-Modus" -#: ../src/v4l2uvc.c:71 +#: ../gview_v4l2core/v4l2_controls.c:63 msgid "Aperture Priority Mode" msgstr "BlendenprioritĂ€t-Modus" -#: ../src/v4l2uvc.c:72 +#: ../gview_v4l2core/v4l2_controls.c:64 msgid "Black Level" msgstr "Schwarzwert" -#: ../src/v4l2uvc.c:73 +#: ../gview_v4l2core/v4l2_controls.c:65 msgid "White Balance, Automatic" msgstr "Weißabgleich, automatisch" -#: ../src/v4l2uvc.c:74 +#: ../gview_v4l2core/v4l2_controls.c:66 msgid "Do White Balance" msgstr "Weißabgleich durchfĂŒhren" -#: ../src/v4l2uvc.c:75 +#: ../gview_v4l2core/v4l2_controls.c:67 msgid "Red Balance" msgstr "Rotabgleich" -#: ../src/v4l2uvc.c:76 +#: ../gview_v4l2core/v4l2_controls.c:68 msgid "Blue Balance" msgstr "Blauabgleich" -#: ../src/v4l2uvc.c:77 +#: ../gview_v4l2core/v4l2_controls.c:69 msgid "Exposure" msgstr "Belichtung" -#: ../src/v4l2uvc.c:78 +#: ../gview_v4l2core/v4l2_controls.c:70 msgid "Gain, Automatic" msgstr "VerstĂ€rkung, automatisch" -#: ../src/v4l2uvc.c:79 +#: ../gview_v4l2core/v4l2_controls.c:71 msgid "Gain" msgstr "VerstĂ€rkung" -#: ../src/v4l2uvc.c:80 +#: ../gview_v4l2core/v4l2_controls.c:72 msgid "Horizontal Flip" msgstr "Horizontal spiegeln" -#: ../src/v4l2uvc.c:81 +#: ../gview_v4l2core/v4l2_controls.c:73 msgid "Vertical Flip" msgstr "Vertikal spiegeln" -#: ../src/v4l2uvc.c:82 +#: ../gview_v4l2core/v4l2_controls.c:74 msgid "Horizontal Center" msgstr "Horizontal zentrieren" -#: ../src/v4l2uvc.c:83 +#: ../gview_v4l2core/v4l2_controls.c:75 msgid "Vertical Center" msgstr "Vertikal zentrieren" -#: ../src/v4l2uvc.c:84 +#: ../gview_v4l2core/v4l2_controls.c:76 msgid "Chroma AGC" msgstr "Automatische Chrominanz-VerstĂ€rkung" -#: ../src/v4l2uvc.c:85 +#: ../gview_v4l2core/v4l2_controls.c:77 msgid "Color Killer" msgstr "EntsĂ€ttigen" -#: ../src/v4l2uvc.c:86 +#: ../gview_v4l2core/v4l2_controls.c:78 msgid "Color Effects" msgstr "Farbeffekte" #. CAMERA CLASS control strings -#: ../src/v4l2uvc.c:89 +#: ../gview_v4l2core/v4l2_controls.c:81 msgid "Camera Controls" msgstr "Kamerasteuerung" -#: ../src/v4l2uvc.c:90 +#: ../gview_v4l2core/v4l2_controls.c:82 msgid "Auto Exposure" msgstr "Automatische Belichtung" -#: ../src/v4l2uvc.c:91 +#: ../gview_v4l2core/v4l2_controls.c:83 msgid "Exposure Time, Absolute" msgstr "Belichtungszeit, direkt" -#: ../src/v4l2uvc.c:92 +#: ../gview_v4l2core/v4l2_controls.c:84 msgid "Exposure, Dynamic Framerate" msgstr "Belichtung, dynamische Bildwiederholrate" -#: ../src/v4l2uvc.c:93 +#: ../gview_v4l2core/v4l2_controls.c:85 msgid "Pan, Relative" msgstr "Schwenken, relativ" -#: ../src/v4l2uvc.c:94 +#: ../gview_v4l2core/v4l2_controls.c:86 msgid "Tilt, Relative" msgstr "Neigen, relativ" -#: ../src/v4l2uvc.c:95 +#: ../gview_v4l2core/v4l2_controls.c:87 msgid "Pan, Reset" msgstr "Schwenken zurĂŒcksetzen" -#: ../src/v4l2uvc.c:96 +#: ../gview_v4l2core/v4l2_controls.c:88 msgid "Tilt, Reset" msgstr "Neigung zurĂŒcksetzen" -#: ../src/v4l2uvc.c:97 +#: ../gview_v4l2core/v4l2_controls.c:89 msgid "Pan, Absolute" msgstr "Schwenken, direkt" -#: ../src/v4l2uvc.c:99 +#: ../gview_v4l2core/v4l2_controls.c:91 msgid "Focus, Absolute" msgstr "Fokus, direkt" -#: ../src/v4l2uvc.c:100 +#: ../gview_v4l2core/v4l2_controls.c:92 msgid "Focus, Relative" msgstr "Fokus, relativ" -#: ../src/v4l2uvc.c:101 +#: ../gview_v4l2core/v4l2_controls.c:93 msgid "Focus, Automatic" msgstr "Fokus, automatisch" -#: ../src/v4l2uvc.c:102 +#: ../gview_v4l2core/v4l2_controls.c:94 msgid "Zoom, Absolute" msgstr "VergrĂ¶ĂŸerung, direkt" -#: ../src/v4l2uvc.c:103 +#: ../gview_v4l2core/v4l2_controls.c:95 msgid "Zoom, Relative" msgstr "VergrĂ¶ĂŸerung, relativ" -#: ../src/v4l2uvc.c:104 +#: ../gview_v4l2core/v4l2_controls.c:96 msgid "Zoom, Continuous" msgstr "VergrĂ¶ĂŸerung, fortlaufend" -#: ../src/v4l2uvc.c:105 +#: ../gview_v4l2core/v4l2_controls.c:97 msgid "Privacy" msgstr "PrivatsphĂ€re" #. UVC specific control strings -#: ../src/v4l2uvc.c:108 +#: ../gview_v4l2core/v4l2_controls.c:100 msgid "Exposure, Auto" msgstr "Belichtung, automatisch" -#: ../src/v4l2uvc.c:109 +#: ../gview_v4l2core/v4l2_controls.c:101 msgid "Exposure, Auto Priority" msgstr "Belichtung, automatische PrioritĂ€t" -#: ../src/v4l2uvc.c:110 +#: ../gview_v4l2core/v4l2_controls.c:102 msgid "Exposure (Absolute)" msgstr "Belichtung (Absolut)" -#: ../src/v4l2uvc.c:111 +#: ../gview_v4l2core/v4l2_controls.c:103 msgid "White Balance Temperature, Auto" msgstr "Automatischer Weißabgleich (Temperatur)" -#: ../src/v4l2uvc.c:112 +#: ../gview_v4l2core/v4l2_controls.c:104 msgid "White Balance Temperature" msgstr "Weißabgleich (Temperatur)" -#: ../src/v4l2uvc.c:113 +#: ../gview_v4l2core/v4l2_controls.c:105 msgid "White Balance Component, Auto" msgstr "Automatischer Weißabgleich (Komponente)" -#: ../src/v4l2uvc.c:114 +#: ../gview_v4l2core/v4l2_controls.c:106 msgid "White Balance Blue Component" msgstr "Weißabgleich (Blau)" -#: ../src/v4l2uvc.c:115 +#: ../gview_v4l2core/v4l2_controls.c:107 msgid "White Balance Red Component" msgstr "Weißabgleich (Rot)" #. libwebcam specific control strings -#: ../src/v4l2uvc.c:118 +#: ../gview_v4l2core/v4l2_controls.c:110 msgid "Focus" msgstr "Fokus" -#: ../src/v4l2uvc.c:119 +#: ../gview_v4l2core/v4l2_controls.c:111 msgid "Focus (Absolute)" msgstr "Focus (direkt)" -#: ../src/vcodecs.c:63 +#: ../gview_v4l2core/v4l2_xu_ctrls.c:63 ../guvcview/gui_gtk3_v4l2ctrls.c:239 +msgid "Off" +msgstr "Aus" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:64 ../guvcview/gui_gtk3_v4l2ctrls.c:239 +msgid "On" +msgstr "An" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:65 ../guvcview/gui_gtk3_v4l2ctrls.c:239 +msgid "Blinking" +msgstr "Blinken" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:66 ../guvcview/gui_gtk3_v4l2ctrls.c:239 +msgid "Auto" +msgstr "Automatisch" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:73 +msgid "Pan (relative)" +msgstr "Umdrehung (relativ)" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:86 +msgid "Tilt (relative)" +msgstr "Neigung (relativ)" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:99 +msgid "Pan Reset" +msgstr "Umdrehung (ZurĂŒckstellen)" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:112 +msgid "Tilt Reset" +msgstr "Neigung (ZurĂŒckstellen)" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:125 +msgid "Focus (absolute)" +msgstr "Fokus (absolut)" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:138 +msgid "LED1 Mode" +msgstr "Modus LED1" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:151 +msgid "LED1 Frequency" +msgstr "Frequenz LED1" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:164 +msgid "Disable video processing" +msgstr "Video-Verarbeitung ausschalten" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:177 +msgid "Raw bits per pixel" +msgstr "Rohe Bits pro Pixel" + +#: ../gview_encoder/audio_codecs.c:63 +#, fuzzy +msgid "PCM - uncompressed (float 32 bit)" +msgstr "PCM – Unkomprimiert (16 Bit)" + +#: ../gview_encoder/audio_codecs.c:80 +msgid "MP2 (MPEG audio layer 2)" +msgstr "" + +#: ../gview_encoder/audio_codecs.c:97 +msgid "MP3 (MPEG audio layer 3)" +msgstr "" + +#: ../gview_encoder/audio_codecs.c:118 +msgid "AC-3 (ATSC A/52A)" +msgstr "" + +#: ../gview_encoder/audio_codecs.c:139 +msgid "AAC (Advanced Audio Coding)" +msgstr "" + +#: ../gview_encoder/audio_codecs.c:160 +msgid "Vorbis" +msgstr "Vorbis" + +#: ../gview_encoder/video_codecs.c:75 +#, fuzzy +msgid "Raw camera input" +msgstr "Farbmodell:" + +#: ../gview_encoder/video_codecs.c:111 msgid "MJPG - compressed" msgstr "MJPG - komprimiert" -#: ../src/vcodecs.c:99 -msgid "YUY2 - uncomp YUV" -msgstr "YUY2 - keine Komp. YUV" - -#: ../src/vcodecs.c:135 -msgid "RGB - uncomp BMP" -msgstr "RGB - keine Komp. BMP" - -#: ../src/vcodecs.c:171 +#: ../gview_encoder/video_codecs.c:147 msgid "MPEG video 1" msgstr "MPEG-Video 1" -#: ../src/vcodecs.c:207 +#: ../gview_encoder/video_codecs.c:183 msgid "FLV1 - flash video 1" msgstr "FLV1 – Flash-Video 1" -#: ../src/vcodecs.c:243 +#: ../gview_encoder/video_codecs.c:219 msgid "WMV1 - win. med. video 7" msgstr "WMV1 – Win.-Med.-Video 7" -#: ../src/vcodecs.c:279 +#: ../gview_encoder/video_codecs.c:255 msgid "MPG2 - MPG2 format" msgstr "MPG2 – MPEG-2-Format" -#: ../src/vcodecs.c:315 +#: ../gview_encoder/video_codecs.c:291 msgid "MS MP4 V3" msgstr "MS MP4 V3" -#: ../src/vcodecs.c:351 +#: ../gview_encoder/video_codecs.c:327 msgid "MPEG4-ASP" msgstr "MPEG4-ASP" -#: ../src/vcodecs.c:387 +#: ../gview_encoder/video_codecs.c:363 msgid "MPEG4-AVC (H264)" msgstr "MPEG4-AVC (H264)" -#: ../src/vcodecs.c:427 +#: ../gview_encoder/video_codecs.c:403 msgid "VP8 (VP8)" msgstr "VP8 (VP8)" -#: ../src/vcodecs.c:463 +#: ../gview_encoder/video_codecs.c:439 msgid "Theora (ogg theora)" msgstr "Theora (Ogg-Theora)" -#: ../src/video_format.c:43 -msgid "AVI - avi format" -msgstr "AVI – Avi-Format" +#: ../guvcview/gui_gtk3_audioctrls.c:95 +msgid "Audio API:" +msgstr "Audio API:" -#: ../src/video_format.c:52 -msgid "MKV - Matroska format" -msgstr "MKV – Matroska-Format" - -#: ../src/video_format.c:61 -msgid "WEBM - format" -msgstr "WEBM-Format" +#: ../guvcview/gui_gtk3_audioctrls.c:106 +msgid "NO SOUND" +msgstr "" -#: ../src/video_tab.c:216 -msgid "Frame Rate:" -msgstr "Bildrate:" +#: ../guvcview/gui_gtk3_audioctrls.c:107 +msgid "PORTAUDIO" +msgstr "PORTAUDIO" + +#: ../guvcview/gui_gtk3_audioctrls.c:110 +msgid "PULSEAUDIO" +msgstr "PULSEAUDIO" -#: ../src/video_tab.c:223 -msgid " Show" -msgstr " Anzeigen" +#: ../guvcview/gui_gtk3_audioctrls.c:127 +msgid "Input Device:" +msgstr "EingabegerĂ€t:" -#: ../src/video_tab.c:245 -msgid "Resolution:" -msgstr "Auflösung:" +#: ../guvcview/gui_gtk3_audioctrls.c:161 +msgid "Sample Rate:" +msgstr "Samplingrate:" + +#: ../guvcview/gui_gtk3_audioctrls.c:168 ../guvcview/gui_gtk3_audioctrls.c:214 +msgid "Dev. Default" +msgstr "Standard" + +#: ../guvcview/gui_gtk3_audioctrls.c:207 +msgid "Channels:" +msgstr "KanĂ€le:" + +#: ../guvcview/gui_gtk3_audioctrls.c:215 +msgid "1 - mono" +msgstr "1 - Mono" + +#: ../guvcview/gui_gtk3_audioctrls.c:216 +msgid "2 - stereo" +msgstr "2 - Stereo" + +#: ../guvcview/gui_gtk3_audioctrls.c:235 +#, fuzzy +msgid "---- Audio Filters ----" +msgstr "— Video-Filter —" + +#. Echo FX +#: ../guvcview/gui_gtk3_audioctrls.c:255 +msgid " Echo" +msgstr " Echo" + +#. Reverb FX +#: ../guvcview/gui_gtk3_audioctrls.c:268 +msgid " Reverb" +msgstr " Hall" + +#. Fuzz FX +#: ../guvcview/gui_gtk3_audioctrls.c:281 +msgid " Fuzz" +msgstr " Fuzz" + +#. WahWah FX +#: ../guvcview/gui_gtk3_audioctrls.c:294 +msgid " WahWah" +msgstr " Wah-Wah" + +#. Ducky FX +#: ../guvcview/gui_gtk3_audioctrls.c:307 +msgid " Ducky" +msgstr " Ente" + +#: ../guvcview/gui_gtk3.c:310 ../guvcview/gui_gtk3_callbacks.c:749 +msgid "Stop Video (V)" +msgstr "Video stoppen (V)" + +#. video button +#: ../guvcview/gui_gtk3.c:315 ../guvcview/gui_gtk3.c:600 +#: ../guvcview/gui_gtk3_callbacks.c:755 +msgid "Cap. Video (V)" +msgstr "Video aufnehmen (V)" + +#: ../guvcview/gui_gtk3.c:376 ../guvcview/gui_gtk3.c:383 +msgid "Error" +msgstr "Fehler" + +#: ../guvcview/gui_gtk3.c:379 ../guvcview/gui_gtk3.c:386 +#: ../guvcview/gui_gtk3_callbacks.c:2097 +msgid "_Ok" +msgstr "" + +#: ../guvcview/gui_gtk3.c:380 ../guvcview/gui_gtk3_callbacks.c:185 +#: ../guvcview/gui_gtk3_callbacks.c:199 ../guvcview/gui_gtk3_callbacks.c:522 +#: ../guvcview/gui_gtk3_callbacks.c:624 ../guvcview/gui_gtk3_callbacks.c:1755 +#: ../guvcview/gui_gtk3_callbacks.c:2098 +#, fuzzy +msgid "_Cancel" +msgstr "Abbrechen" + +#: ../guvcview/gui_gtk3.c:407 +msgid "" +"\n" +"You have more than one video device installed.\n" +"Do you want to try another one ?\n" +msgstr "" +"\n" +"Sie haben mehr als ein Video-GerĂ€t installiert\n" +"Möchten Sie ein weiteres versuchen?\n" + +#. ---- Devices ---- +#: ../guvcview/gui_gtk3.c:414 ../guvcview/gui_gtk3_videoctrls.c:106 +msgid "Device:" +msgstr "EingabegerĂ€t:" + +#: ../guvcview/gui_gtk3.c:516 +msgid "Guvcview Video Capture" +msgstr "GUVCView-Video-Aufnahme" + +#: ../guvcview/gui_gtk3.c:525 +#, fuzzy +msgid "Guvcview" +msgstr "GUVCView" + +#: ../guvcview/gui_gtk3.c:572 +#, fuzzy +msgid "Stop Cap. (I)" +msgstr "Automatisch anhalten (I)" + +#: ../guvcview/gui_gtk3.c:578 ../guvcview/gui_gtk3_callbacks.c:720 +#: ../guvcview/video_capture.c:250 +msgid "Cap. Image (I)" +msgstr "Bild aufnehmen (I)" + +#. quit button +#. GtkWidget *quitButton = gtk_button_new_from_stock(GTK_STOCK_QUIT); +#: ../guvcview/gui_gtk3.c:621 +msgid "_Quit" +msgstr "" + +#: ../guvcview/gui_gtk3.c:667 +msgid "Image Controls" +msgstr "Bildsteuerung" + +#: ../guvcview/gui_gtk3.c:703 +#, fuzzy +msgid "H264 Controls" +msgstr "Benutzersteuerung" + +#: ../guvcview/gui_gtk3.c:742 +#, fuzzy +msgid "Video Controls" +msgstr "Benutzersteuerung" + +#: ../guvcview/gui_gtk3.c:777 +#, fuzzy +msgid "Audio Controls" +msgstr "Benutzersteuerung" + +#: ../guvcview/gui_gtk3_callbacks.c:182 ../guvcview/gui_gtk3_menu.c:72 +msgid "Save Profile" +msgstr "Profil speichern" + +#: ../guvcview/gui_gtk3_callbacks.c:186 ../guvcview/gui_gtk3_callbacks.c:523 +#: ../guvcview/gui_gtk3_callbacks.c:625 +msgid "_Save" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:196 ../guvcview/gui_gtk3_menu.c:71 +msgid "Load Profile" +msgstr "Profil laden" + +#: ../guvcview/gui_gtk3_callbacks.c:200 +msgid "_Open" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:208 ../guvcview/gui_gtk3_callbacks.c:531 +#: ../guvcview/gui_gtk3_callbacks.c:634 +msgid "File Format:" +msgstr "Dateiformat:" + +#: ../guvcview/gui_gtk3_callbacks.c:220 +msgid "gpfl (*.gpfl)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:221 +msgid "any (*.*)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:519 +#, fuzzy +msgid "Photo file name" +msgstr "Bilddatei" + +#: ../guvcview/gui_gtk3_callbacks.c:543 +#, fuzzy +msgid "Raw (*.raw)" +msgstr "Rohdatenbild (raw)" + +#: ../guvcview/gui_gtk3_callbacks.c:544 +#, fuzzy +msgid "Jpeg (*.jpg)" +msgstr "JPEG (jpg)" + +#: ../guvcview/gui_gtk3_callbacks.c:545 +msgid "Png (*.png)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:546 +msgid "Bmp (*.bmp)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:621 +#, fuzzy +msgid "Video file name" +msgstr "Bilddatei" + +#: ../guvcview/gui_gtk3_callbacks.c:646 +msgid "Matroska (*.mkv)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:647 +msgid "WebM (*.webm)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:648 +msgid "Avi (*.avi)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:1158 +msgid "start new" +msgstr "beginnen neue" + +#: ../guvcview/gui_gtk3_callbacks.c:1161 +msgid "restart" +msgstr "Neustart" + +#: ../guvcview/gui_gtk3_callbacks.c:1163 +msgid "new" +msgstr "Neue" + +#: ../guvcview/gui_gtk3_callbacks.c:1165 +msgid "cancel" +msgstr "Abbrechen" + +#: ../guvcview/gui_gtk3_callbacks.c:1170 +msgid "" +"launch new process or restart?.\n" +"\n" +msgstr "" +"Neuer prozess oder programm neustarten?\n" +"\n" + +#: ../guvcview/gui_gtk3_callbacks.c:1751 +#, fuzzy +msgid "video codec values" +msgstr "Audio-Codec-Werte" + +#: ../guvcview/gui_gtk3_callbacks.c:1754 +msgid "_OK" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:1760 +msgid "" +" encoder fps: \n" +" (0 - use fps combobox value)" +msgstr "" +" Kodierer Bilder/s: \n" +" (0 – FPS-Wert aus Auswahlliste)" + +#: ../guvcview/gui_gtk3_callbacks.c:1773 +msgid " monotonic pts" +msgstr " Monoton ansteigender PTS" + +#. bit rate +#: ../guvcview/gui_gtk3_callbacks.c:1780 ../guvcview/gui_gtk3_callbacks.c:2105 +msgid "bit rate: " +msgstr "Bitrate: " + +#: ../guvcview/gui_gtk3_callbacks.c:1793 +msgid "qmax: " +msgstr "qmax: " + +#: ../guvcview/gui_gtk3_callbacks.c:1806 +msgid "qmin: " +msgstr "qmin: " + +#: ../guvcview/gui_gtk3_callbacks.c:1819 +msgid "max. qdiff: " +msgstr "max. qdiff: " + +#: ../guvcview/gui_gtk3_callbacks.c:1832 +msgid "dia size: " +msgstr "DIA, GrĂ¶ĂŸe: " + +#: ../guvcview/gui_gtk3_callbacks.c:1845 +msgid "pre dia size: " +msgstr "PrĂ€d.-DIA, GrĂ¶ĂŸe: " + +#: ../guvcview/gui_gtk3_callbacks.c:1858 +msgid "pre me: " +msgstr "PrĂ€d.-ME: " + +#: ../guvcview/gui_gtk3_callbacks.c:1871 +msgid "pre cmp: " +msgstr "PrĂ€d.-CMP: " + +#: ../guvcview/gui_gtk3_callbacks.c:1884 +msgid "cmp: " +msgstr "cmp: " + +#: ../guvcview/gui_gtk3_callbacks.c:1897 +msgid "sub cmp: " +msgstr "sub cmp: " + +#: ../guvcview/gui_gtk3_callbacks.c:1910 +msgid "last predictor count: " +msgstr "Letzter PrĂ€diktorzĂ€hlstand: " -#: ../src/video_tab.c:271 -msgid "Camera Output:" -msgstr "Farbmodell:" +#: ../guvcview/gui_gtk3_callbacks.c:1923 +msgid "gop size: " +msgstr "GOP, GrĂ¶ĂŸe: " -#: ../src/video_tab.c:293 -msgid "Apply" -msgstr "Anwenden" +#: ../guvcview/gui_gtk3_callbacks.c:1936 +msgid "qcompress: " +msgstr "QCompress: " -#: ../src/video_tab.c:300 -msgid "Quality:" -msgstr "QualitĂ€t:" +#: ../guvcview/gui_gtk3_callbacks.c:1949 +msgid "qblur: " +msgstr "QBlur: " -#: ../src/video_tab.c:310 -msgid "---- Video Filters ----" -msgstr "— Video-Filter —" +#: ../guvcview/gui_gtk3_callbacks.c:1962 +msgid "subq: " +msgstr "Subq: " -#. Mirror -#: ../src/video_tab.c:329 -msgid " Mirror" -msgstr " Gespiegelt" +#: ../guvcview/gui_gtk3_callbacks.c:1975 +msgid "framerefs: " +msgstr "FrameRefs: " -#. Upturn -#: ../src/video_tab.c:340 -msgid " Invert" -msgstr " Gedreht" +#: ../guvcview/gui_gtk3_callbacks.c:1988 +msgid "me method: " +msgstr "ME, Methode: " -#. Negate -#: ../src/video_tab.c:351 -msgid " Negative" -msgstr " Negativ" +#: ../guvcview/gui_gtk3_callbacks.c:2001 +msgid "mb decision: " +msgstr "MD, Entscheidung: " -#. Mono -#: ../src/video_tab.c:362 -msgid " Mono" -msgstr " Monochrom" +#: ../guvcview/gui_gtk3_callbacks.c:2014 +msgid "max B frames: " +msgstr "Max. B-Frames: " -#. Pieces -#: ../src/video_tab.c:374 -msgid " Pieces" -msgstr " Bausteine" +#: ../guvcview/gui_gtk3_callbacks.c:2027 +msgid "num threads: " +msgstr "Anzahl Threads: " -#. Particles -#: ../src/video_tab.c:386 -msgid " Particles" -msgstr " Partikel" +#: ../guvcview/gui_gtk3_callbacks.c:2094 +msgid "audio codec values" +msgstr "Audio-Codec-Werte" -#: ../src/uvc_h264.c:596 -msgid "H264 Controls" -msgstr "" +#. sample format +#: ../guvcview/gui_gtk3_callbacks.c:2119 +msgid "sample format: " +msgstr "Sample-Format: " -#: ../src/uvc_h264.c:615 +#: ../guvcview/gui_gtk3_h264ctrls.c:622 +#, fuzzy msgid "Rate Control Mode:" -msgstr "" +msgstr "Bildsteuerung" -#: ../src/uvc_h264.c:626 +#: ../guvcview/gui_gtk3_h264ctrls.c:633 msgid "CBR" msgstr "" -#: ../src/uvc_h264.c:629 +#: ../guvcview/gui_gtk3_h264ctrls.c:636 msgid "VBR" msgstr "" -#: ../src/uvc_h264.c:633 +#: ../guvcview/gui_gtk3_h264ctrls.c:640 msgid "Constant QP" msgstr "" -#: ../src/uvc_h264.c:651 +#: ../guvcview/gui_gtk3_h264ctrls.c:658 msgid "Rate Control Mode flags:" msgstr "" -#: ../src/uvc_h264.c:676 +#: ../guvcview/gui_gtk3_h264ctrls.c:683 msgid "Temporal Scale Mode:" msgstr "" -#: ../src/uvc_h264.c:704 +#: ../guvcview/gui_gtk3_h264ctrls.c:711 msgid "Spatial Scale Mode:" msgstr "" -#: ../src/uvc_h264.c:737 +#: ../guvcview/gui_gtk3_h264ctrls.c:741 msgid "Frame Interval (100ns units):" msgstr "" -#: ../src/uvc_h264.c:772 +#: ../guvcview/gui_gtk3_h264ctrls.c:778 +#, fuzzy msgid "Bit Rate:" -msgstr "" +msgstr "Bitrate: " -#: ../src/uvc_h264.c:795 +#: ../guvcview/gui_gtk3_h264ctrls.c:801 msgid "Hints:" msgstr "" -#: ../src/uvc_h264.c:800 +#: ../guvcview/gui_gtk3_h264ctrls.c:806 +#, fuzzy msgid "Resolution" -msgstr "" +msgstr "Auflösung:" -#: ../src/uvc_h264.c:804 +#: ../guvcview/gui_gtk3_h264ctrls.c:810 +#, fuzzy msgid "Profile" -msgstr "" +msgstr "Profil speichern" -#: ../src/uvc_h264.c:808 +#: ../guvcview/gui_gtk3_h264ctrls.c:814 +#, fuzzy msgid "Rate Control" -msgstr "" +msgstr "Bildsteuerung" -#: ../src/uvc_h264.c:812 +#: ../guvcview/gui_gtk3_h264ctrls.c:818 msgid "Usage Type" msgstr "" -#: ../src/uvc_h264.c:816 +#: ../guvcview/gui_gtk3_h264ctrls.c:822 msgid "Slice Mode" msgstr "" -#: ../src/uvc_h264.c:820 +#: ../guvcview/gui_gtk3_h264ctrls.c:826 msgid "Slice Unit" msgstr "" -#: ../src/uvc_h264.c:824 +#: ../guvcview/gui_gtk3_h264ctrls.c:830 msgid "MVC View" msgstr "" -#: ../src/uvc_h264.c:828 +#: ../guvcview/gui_gtk3_h264ctrls.c:834 msgid "Temporal Scale" msgstr "" -#: ../src/uvc_h264.c:832 +#: ../guvcview/gui_gtk3_h264ctrls.c:838 msgid "SNR Scale" msgstr "" -#: ../src/uvc_h264.c:836 +#: ../guvcview/gui_gtk3_h264ctrls.c:842 msgid "Spatial Scale" msgstr "" -#: ../src/uvc_h264.c:840 +#: ../guvcview/gui_gtk3_h264ctrls.c:846 msgid "Spatial Layer Ratio" msgstr "" -#: ../src/uvc_h264.c:844 +#: ../guvcview/gui_gtk3_h264ctrls.c:850 +#, fuzzy msgid "Frame Interval" -msgstr "" +msgstr "Bildrate:" -#: ../src/uvc_h264.c:848 +#: ../guvcview/gui_gtk3_h264ctrls.c:854 msgid "Leaky Bucket Size" msgstr "" -#: ../src/uvc_h264.c:852 +#: ../guvcview/gui_gtk3_h264ctrls.c:858 msgid "Bit Rate" msgstr "" -#: ../src/uvc_h264.c:856 ../src/uvc_h264.c:1250 +#: ../guvcview/gui_gtk3_h264ctrls.c:862 ../guvcview/gui_gtk3_h264ctrls.c:1220 msgid "CABAC" msgstr "" -#: ../src/uvc_h264.c:860 +#: ../guvcview/gui_gtk3_h264ctrls.c:866 msgid "(I) Frame Period" msgstr "" -#: ../src/uvc_h264.c:907 +#: ../guvcview/gui_gtk3_h264ctrls.c:878 msgid "Slice Mode:" msgstr "" -#: ../src/uvc_h264.c:914 +#: ../guvcview/gui_gtk3_h264ctrls.c:885 msgid "no multiple slices" msgstr "" -#: ../src/uvc_h264.c:916 +#: ../guvcview/gui_gtk3_h264ctrls.c:887 msgid "bits/slice" msgstr "" -#: ../src/uvc_h264.c:918 +#: ../guvcview/gui_gtk3_h264ctrls.c:889 msgid "Mbits/slice" msgstr "" -#: ../src/uvc_h264.c:920 +#: ../guvcview/gui_gtk3_h264ctrls.c:891 msgid "slices/frame" msgstr "" -#: ../src/uvc_h264.c:929 +#: ../guvcview/gui_gtk3_h264ctrls.c:900 msgid "Slice Units:" msgstr "" -#: ../src/uvc_h264.c:950 +#: ../guvcview/gui_gtk3_h264ctrls.c:921 +#, fuzzy msgid "Profile:" -msgstr "" +msgstr "Profil speichern" -#: ../src/uvc_h264.c:957 +#: ../guvcview/gui_gtk3_h264ctrls.c:928 +#, fuzzy msgid "Baseline Profile" -msgstr "" +msgstr "Profil speichern" -#: ../src/uvc_h264.c:959 +#: ../guvcview/gui_gtk3_h264ctrls.c:930 +#, fuzzy msgid "Main Profile" -msgstr "" +msgstr "Profil speichern" -#: ../src/uvc_h264.c:961 +#: ../guvcview/gui_gtk3_h264ctrls.c:932 +#, fuzzy msgid "High Profile" -msgstr "" +msgstr "Profil speichern" -#: ../src/uvc_h264.c:963 +#: ../guvcview/gui_gtk3_h264ctrls.c:934 msgid "Scalable Baseline Profile" msgstr "" -#: ../src/uvc_h264.c:965 +#: ../guvcview/gui_gtk3_h264ctrls.c:936 +#, fuzzy msgid "Scalable High Profile" -msgstr "" +msgstr "Profil speichern" -#: ../src/uvc_h264.c:967 +#: ../guvcview/gui_gtk3_h264ctrls.c:938 msgid "Multiview High Profile" msgstr "" -#: ../src/uvc_h264.c:969 +#: ../guvcview/gui_gtk3_h264ctrls.c:940 +#, fuzzy msgid "Stereo High Profile" -msgstr "" +msgstr "Profil speichern" -#: ../src/uvc_h264.c:1008 +#: ../guvcview/gui_gtk3_h264ctrls.c:979 msgid "Profile flags:" msgstr "" -#: ../src/uvc_h264.c:1033 +#: ../guvcview/gui_gtk3_h264ctrls.c:1004 msgid "(I) Frame Period (ms):" msgstr "" -#: ../src/uvc_h264.c:1054 +#: ../guvcview/gui_gtk3_h264ctrls.c:1025 msgid "Estimated Video Delay (ms):" msgstr "" -#: ../src/uvc_h264.c:1075 +#: ../guvcview/gui_gtk3_h264ctrls.c:1046 msgid "Estimated Max Config Delay (ms):" msgstr "" -#: ../src/uvc_h264.c:1096 +#: ../guvcview/gui_gtk3_h264ctrls.c:1067 msgid "Usage Type:" msgstr "" -#: ../src/uvc_h264.c:1103 +#: ../guvcview/gui_gtk3_h264ctrls.c:1074 msgid "Real-time" msgstr "" -#: ../src/uvc_h264.c:1105 +#: ../guvcview/gui_gtk3_h264ctrls.c:1076 msgid "Broadcast" msgstr "" -#: ../src/uvc_h264.c:1107 +#: ../guvcview/gui_gtk3_h264ctrls.c:1078 msgid "Storage" msgstr "" -#: ../src/uvc_h264.c:1109 +#: ../guvcview/gui_gtk3_h264ctrls.c:1080 msgid "(0) Non-scalable single layer AVC" msgstr "" -#: ../src/uvc_h264.c:1111 +#: ../guvcview/gui_gtk3_h264ctrls.c:1082 msgid "(1) SVC temporal scalability with hierarchical P" msgstr "" -#: ../src/uvc_h264.c:1113 +#: ../guvcview/gui_gtk3_h264ctrls.c:1084 msgid "(2q) SVC temporal scalability + Quality/SNR scalability" msgstr "" -#: ../src/uvc_h264.c:1115 +#: ../guvcview/gui_gtk3_h264ctrls.c:1086 msgid "(2s) SVC temporal scalability + spatial scalability" msgstr "" -#: ../src/uvc_h264.c:1117 +#: ../guvcview/gui_gtk3_h264ctrls.c:1088 msgid "(3) Full SVC scalability" msgstr "" -#: ../src/uvc_h264.c:1131 +#: ../guvcview/gui_gtk3_h264ctrls.c:1102 msgid "SNR Control Mode:" msgstr "" -#: ../src/uvc_h264.c:1138 +#: ../guvcview/gui_gtk3_h264ctrls.c:1109 msgid "No SNR Enhancement Layer" msgstr "" -#: ../src/uvc_h264.c:1140 +#: ../guvcview/gui_gtk3_h264ctrls.c:1111 msgid "CGS NonRewrite (2 Layer)" msgstr "" -#: ../src/uvc_h264.c:1142 +#: ../guvcview/gui_gtk3_h264ctrls.c:1113 msgid "CGS NonRewrite (3 Layer)" msgstr "" -#: ../src/uvc_h264.c:1144 +#: ../guvcview/gui_gtk3_h264ctrls.c:1115 msgid "CGS Rewrite (2 Layer)" msgstr "" -#: ../src/uvc_h264.c:1146 +#: ../guvcview/gui_gtk3_h264ctrls.c:1117 msgid "CGS Rewrite (3 Layer)" msgstr "" -#: ../src/uvc_h264.c:1148 +#: ../guvcview/gui_gtk3_h264ctrls.c:1119 msgid "MGS (2 Layer)" msgstr "" -#: ../src/uvc_h264.c:1173 +#: ../guvcview/gui_gtk3_h264ctrls.c:1144 msgid "Stream Mux Enable" msgstr "" -#: ../src/uvc_h264.c:1180 +#: ../guvcview/gui_gtk3_h264ctrls.c:1151 msgid "Embed H.264 aux stream" msgstr "" -#: ../src/uvc_h264.c:1182 +#: ../guvcview/gui_gtk3_h264ctrls.c:1153 msgid "Embed YUY2 aux stream" msgstr "" -#: ../src/uvc_h264.c:1184 +#: ../guvcview/gui_gtk3_h264ctrls.c:1155 msgid "Embed NV12 aux stream" msgstr "" -#: ../src/uvc_h264.c:1204 +#: ../guvcview/gui_gtk3_h264ctrls.c:1175 msgid "MJPG payload container" msgstr "" -#: ../src/uvc_h264.c:1219 +#: ../guvcview/gui_gtk3_h264ctrls.c:1189 +#, fuzzy msgid "Stream Format:" -msgstr "" +msgstr "Dateiformat:" -#: ../src/uvc_h264.c:1227 +#: ../guvcview/gui_gtk3_h264ctrls.c:1197 msgid "Byte stream format (H.264 Annex-B)" msgstr "" -#: ../src/uvc_h264.c:1229 +#: ../guvcview/gui_gtk3_h264ctrls.c:1199 +#, fuzzy msgid "NAL stream format" -msgstr "" +msgstr "AVI – Avi-Format" -#: ../src/uvc_h264.c:1240 +#: ../guvcview/gui_gtk3_h264ctrls.c:1210 msgid "Entropy CABAC:" msgstr "" -#: ../src/uvc_h264.c:1248 +#: ../guvcview/gui_gtk3_h264ctrls.c:1218 msgid "CAVLC" msgstr "" -#: ../src/uvc_h264.c:1261 +#: ../guvcview/gui_gtk3_h264ctrls.c:1231 msgid "Picture timing SEI" msgstr "" -#: ../src/uvc_h264.c:1268 +#: ../guvcview/gui_gtk3_h264ctrls.c:1238 +#, fuzzy msgid "B Frames:" -msgstr "" +msgstr "Max. B-Frames: " -#: ../src/uvc_h264.c:1293 +#: ../guvcview/gui_gtk3_h264ctrls.c:1263 msgid "Preview Flipped" msgstr "" -#: ../src/uvc_h264.c:1300 +#: ../guvcview/gui_gtk3_h264ctrls.c:1270 msgid "Additional MVC Views:" msgstr "" -#: ../src/uvc_h264.c:1325 +#: ../guvcview/gui_gtk3_h264ctrls.c:1295 msgid "Simulcast stream index:" msgstr "" -#: ../src/uvc_h264.c:1350 +#: ../guvcview/gui_gtk3_h264ctrls.c:1320 msgid "Spatial Layer Ratio:" msgstr "" -#: ../src/uvc_h264.c:1379 +#: ../guvcview/gui_gtk3_h264ctrls.c:1349 msgid "Leaky Bucket Size (ms):" msgstr "" #. encoder reset -#: ../src/uvc_h264.c:1406 +#: ../guvcview/gui_gtk3_h264ctrls.c:1376 +#, fuzzy msgid "Encoder Reset" -msgstr "" +msgstr "Umdrehung (ZurĂŒckstellen)" -#. -#. h264_controls->probe_button = gtk_button_new_with_label(_("PROBE")); -#. g_signal_connect (GTK_BUTTON(h264_controls->probe_button), "clicked", +#. +#. GtkWidget *probe_button = gtk_button_new_with_label(_("PROBE")); +#. g_signal_connect (GTK_BUTTON(probe_button), "clicked", #. G_CALLBACK (h264_probe_button_clicked), all_data); -#. -#. gtk_grid_attach (GTK_GRID(table), h264_controls->probe_button, 0, line, 1 ,1); -#. gtk_widget_show(h264_controls->probe_button); -#. -#: ../src/uvc_h264.c:1421 +#. +#. gtk_grid_attach (GTK_GRID(h264_controls_grid), probe_button, 0, line, 1 ,1); +#. gtk_widget_show(probe_button); +#. +#: ../guvcview/gui_gtk3_h264ctrls.c:1391 msgid "COMMIT" msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:70 +msgid "Settings" +msgstr "Einstellungen" + +#: ../guvcview/gui_gtk3_menu.c:73 +msgid "Hardware Defaults" +msgstr "Hardware-Standards" + +#: ../guvcview/gui_gtk3_menu.c:81 +msgid "Camera Button" +msgstr "Kameraknopf" + +#: ../guvcview/gui_gtk3_menu.c:86 +msgid "Capture Image" +msgstr "Bild aufnehmen" + +#: ../guvcview/gui_gtk3_menu.c:91 +msgid "Capture Video" +msgstr "Video aufnehmen" + +#: ../guvcview/gui_gtk3_menu.c:134 +msgid "Photo" +msgstr "Foto" + +#: ../guvcview/gui_gtk3_menu.c:135 ../guvcview/gui_gtk3_menu.c:159 +msgid "File" +msgstr "Datei" + +#: ../guvcview/gui_gtk3_menu.c:136 ../guvcview/gui_gtk3_menu.c:160 +msgid "Increment Filename" +msgstr "Dateinamen hochzĂ€hlen" + +#: ../guvcview/gui_gtk3_menu.c:158 +msgid "Video" +msgstr "Video" + +#: ../guvcview/gui_gtk3_menu.c:175 +msgid "Video Codec" +msgstr "Video-Codec" + +#: ../guvcview/gui_gtk3_menu.c:202 +msgid "Video Codec Properties" +msgstr "Video-Codec-Eigenschaften" + +#: ../guvcview/gui_gtk3_menu.c:208 +msgid "Audio Codec" +msgstr "Audio-Codec" + +#: ../guvcview/gui_gtk3_menu.c:235 +msgid "Audio Codec Properties" +msgstr "Audio-Codec-Eigenschaften" + +#: ../guvcview/gui_gtk3_v4l2ctrls.c:174 +msgid "Left" +msgstr "Links" + +#: ../guvcview/gui_gtk3_v4l2ctrls.c:175 +msgid "Right" +msgstr "Rechts" + +#: ../guvcview/gui_gtk3_v4l2ctrls.c:179 +msgid "Down" +msgstr "Runter" + +#: ../guvcview/gui_gtk3_v4l2ctrls.c:180 +msgid "Up" +msgstr "Hoch" + +#. turn it into a menu control +#: ../guvcview/gui_gtk3_v4l2ctrls.c:296 +msgid "8 bit" +msgstr "8 Bit" + +#: ../guvcview/gui_gtk3_v4l2ctrls.c:296 +msgid "12 bit" +msgstr "12 Bit" + +#. add a virtual control for software autofocus +#: ../guvcview/gui_gtk3_v4l2ctrls.c:348 +msgid "Auto Focus (continuous)" +msgstr "Automatisch Fokus (andauernd)" + +#: ../guvcview/gui_gtk3_v4l2ctrls.c:349 +msgid "set Focus" +msgstr "Fokus" + +#. control_widgets_list[n].widget2 = gtk_button_new_from_stock(GTK_STOCK_APPLY); +#. control_widgets_list[n].widget2= gtk_button_new_from_stock(GTK_STOCK_APPLY); +#. control_widgets_list[n].widget2 = gtk_button_new_from_stock(GTK_STOCK_APPLY); +#: ../guvcview/gui_gtk3_v4l2ctrls.c:433 ../guvcview/gui_gtk3_v4l2ctrls.c:456 +#: ../guvcview/gui_gtk3_v4l2ctrls.c:478 +#, fuzzy +msgid "_Apply" +msgstr "Anwenden" + +#: ../guvcview/gui_gtk3_videoctrls.c:144 +msgid "Frame Rate:" +msgstr "Bildrate:" + +#: ../guvcview/gui_gtk3_videoctrls.c:204 +msgid "Resolution:" +msgstr "Auflösung:" + +#: ../guvcview/gui_gtk3_videoctrls.c:254 +msgid "Camera Output:" +msgstr "Farbmodell:" + +#: ../guvcview/gui_gtk3_videoctrls.c:287 +msgid "---- Video Filters ----" +msgstr "— Video-Filter —" + +#. Mirror FX +#: ../guvcview/gui_gtk3_videoctrls.c:307 +msgid " Mirror" +msgstr " Gespiegelt" + +#. Upturn FX +#: ../guvcview/gui_gtk3_videoctrls.c:319 +msgid " Invert" +msgstr " Gedreht" + +#. Negate FX +#: ../guvcview/gui_gtk3_videoctrls.c:331 +msgid " Negative" +msgstr " Negativ" + +#. Mono FX +#: ../guvcview/gui_gtk3_videoctrls.c:343 +msgid " Mono" +msgstr " Monochrom" + +#. Pieces FX +#: ../guvcview/gui_gtk3_videoctrls.c:356 +msgid " Pieces" +msgstr " Bausteine" + +#. Particles +#: ../guvcview/gui_gtk3_videoctrls.c:369 +msgid " Particles" +msgstr " Partikel" + +#: ../guvcview/options.c:51 +msgid "Print help" +msgstr "" + +#: ../guvcview/options.c:58 +#, fuzzy +msgid "Print version" +msgstr "Zeigt die Version an" + +#: ../guvcview/options.c:64 +msgid "LEVEL" +msgstr "" + +#: ../guvcview/options.c:65 +msgid "Set Verbosity level (def: 0)" +msgstr "" + +#: ../guvcview/options.c:71 +msgid "DEVICE" +msgstr "" + +#: ../guvcview/options.c:72 +#, fuzzy +msgid "Set device name (def: /dev/video0)" +msgstr "Verwendetes Video-GerĂ€t [Standard: /dev/video0]" + +#: ../guvcview/options.c:78 +msgid "METHOD" +msgstr "" + +#: ../guvcview/options.c:79 +#, fuzzy +msgid "Set capture method [read | mmap (def)]" +msgstr "Aufnahmemethode (1-mmap (Vorgabe) 2-read)" + +#: ../guvcview/options.c:85 +msgid "WIDTHxHEIGHT" +msgstr "" + +#: ../guvcview/options.c:86 +msgid "Request resolution (e.g 640x480)" +msgstr "" + +#: ../guvcview/options.c:92 +msgid "FOURCC" +msgstr "" + +#: ../guvcview/options.c:93 +msgid "Request format (e.g MJPG)" +msgstr "" + +#: ../guvcview/options.c:99 +msgid "RENDER_API" +msgstr "" + +#: ../guvcview/options.c:100 +msgid "Select render API (e.g none; sdl)" +msgstr "" + +#: ../guvcview/options.c:106 +msgid "AUDIO_API" +msgstr "" + +#: ../guvcview/options.c:107 +msgid "Select audio API (e.g none; port; pulse)" +msgstr "" + +#: ../guvcview/options.c:113 +msgid "AUDIO_DEVICE" +msgstr "" + +#: ../guvcview/options.c:114 +msgid "Select audio device index for selected api (0..N)" +msgstr "" + +#: ../guvcview/options.c:120 +msgid "GUI_API" +msgstr "" + +#: ../guvcview/options.c:121 +msgid "Select GUI API (e.g none; gtk3)" +msgstr "" + +#: ../guvcview/options.c:127 ../guvcview/options.c:134 +msgid "CODEC" +msgstr "" + +#: ../guvcview/options.c:128 +msgid "Audio codec [pcm mp2 mp3 aac ac3 vorb]" +msgstr "" + +#: ../guvcview/options.c:135 +msgid "Video codec [raw mjpg mpeg flv1 wmv1 mpg2 mp43 dx50 h264 vp80 theo]" +msgstr "" + +#: ../guvcview/options.c:141 ../guvcview/options.c:148 +#: ../guvcview/options.c:155 +msgid "FILENAME" +msgstr "" + +#: ../guvcview/options.c:142 +#, fuzzy +msgid "load control profile" +msgstr "Profil laden" + +#: ../guvcview/options.c:149 +msgid "filename for captured video)" +msgstr "" + +#: ../guvcview/options.c:156 +msgid "filename for captured image)" +msgstr "" + +#: ../guvcview/options.c:162 ../guvcview/options.c:169 +msgid "TIME_IN_SEC" +msgstr "" + +#: ../guvcview/options.c:163 +msgid "time (double) in sec. for video capture)" +msgstr "" + +#: ../guvcview/options.c:170 +msgid "time (double) in sec. between captured photos)" +msgstr "" + +#: ../guvcview/options.c:176 +msgid "TOTAL" +msgstr "" + +#: ../guvcview/options.c:177 +msgid "total number of captured photos)" +msgstr "" + +#: ../guvcview/options.c:184 +msgid "Start in control panel mode" +msgstr "" + +#: ../guvcview/options.c:307 +#, fuzzy, c-format +msgid "" +"Guvcview version %s\n" +"\n" +msgstr "GUVCView-Warnung:" + +#: ../guvcview/options.c:308 +#, c-format +msgid "" +"Usage:\n" +" guvcview [OPTIONS]\n" +"\n" +msgstr "" + +#: ../guvcview/options.c:309 +#, c-format +msgid "OPTIONS:\n" +msgstr "" + +#: ../guvcview/video_capture.c:819 +#, fuzzy, c-format +msgid "saving video to %s" +msgstr "Video speichern in" + +#. if(debug_level > 1) +#. printf("GUVCVIEW: saving image to %s\n", img_filename); +#: ../guvcview/video_capture.c:1069 +#, c-format +msgid "saving image to %s" +msgstr "" + +#~ msgid "MPEG2 - (lavc)" +#~ msgstr "MPEG2 – (lavc)" + +#~ msgid "MP3 - (lavc)" +#~ msgstr "MP3 – (lavc)" + +#~ msgid "Dolby AC3 - (lavc)" +#~ msgstr "Dolby AC3 – (lavc)" + +#~ msgid "ACC Low - (faac)" +#~ msgstr "ACC Niedrig – (faac)" + +#~ msgid "Audio" +#~ msgstr "Audio" + +#~ msgid " Sound" +#~ msgstr " Audio" + +#~ msgid " Show VU meter" +#~ msgstr " VU-Meter anzeigen" + +#~ msgid "---- Audio Effects ----" +#~ msgstr "— Audio-Filter —" + +#~ msgid "Save File" +#~ msgstr "Datei speichern" + +#~ msgid "codec values" +#~ msgstr "Codec-Werte" + +#~ msgid "capturing photo to" +#~ msgstr "Foto speichern in" + +#~ msgid "Cap. Video" +#~ msgstr "Video aufnehmen" + +#~ msgid "GUVCViewer Controls" +#~ msgstr "GUVCViewer-Bedienfeld" + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to open device" +#~ msgstr "" +#~ "GUVCView-Fehler:\n" +#~ "\n" +#~ "Das GerĂ€t konnte nicht geöffnet werden" + +#~ msgid "" +#~ "Please make sure the camera is connected\n" +#~ "and that the correct driver is installed." +#~ msgstr "" +#~ "Bitte stellen Sie sicher, dass die Kamera angeschlossen wird\n" +#~ "und dass die driver angebracht ist." + +#~ msgid "" +#~ "Guvcview:\n" +#~ "\n" +#~ "UVC Extension controls" +#~ msgstr "" +#~ "GUVCView:\n" +#~ "\n" +#~ "Erweiterte UVC-Bedienelemente" + +#~ msgid "Extension controls were added to the UVC driver" +#~ msgstr "Erweiterte Bedienelemente wurden zum UVC-Treiber hinzugefĂŒgt" + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "UVC Extension controls" +#~ msgstr "" +#~ "GUVCView-Fehler:\n" +#~ "\n" +#~ "Erweiterte UVC-Bedienelemente" + +#~ msgid "" +#~ "An error occurred while adding extension\n" +#~ "controls to the UVC driver\n" +#~ "Make sure you run guvcview as root (or sudo)." +#~ msgstr "" +#~ "Ein Fehler ist beim HinzufĂŒgen der erweiterten\n" +#~ "Bedienelemente zum UVC-Treiber aufgetreten.\n" +#~ "Stellen Sie sicher, dass Sie »guvcview« als Systemverwalter\n" +#~ "(Benutzer »root) ausfĂŒhren oder mit »sudo«." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Can't set a valid video stream for guvcview" +#~ msgstr "" +#~ "GUVCView-Fehler:\n" +#~ "\n" +#~ "Es kann kein gĂŒltiger Video-Stream fĂŒr guvcview festgelegt werden" + +#~ msgid "" +#~ "Make sure your device driver is v4l2 compliant\n" +#~ "and that it is properly installed." +#~ msgstr "" +#~ "Stellen Sie bitte sicher, dass Sie sowohl eine v4l2 kompatible Kamera " +#~ "besitzen als auch den Treiber geladen haben." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to start with minimum setup" +#~ msgstr "" +#~ "GUVCView-Fehler:\n" +#~ "\n" +#~ "Es konnte nicht im minimalen Modus gestartet werden" + +#~ msgid "Please reconnect your camera." +#~ msgstr "Bitte schließen Sie Ihre Kamera erneut an." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Couldn't query device capabilities" +#~ msgstr "" +#~ "GUVCView-Fehler:\n" +#~ "\n" +#~ "GerĂ€teeigenschaften konnten nicht abgefragt werden" + +#~ msgid "Make sure the device driver supports v4l2." +#~ msgstr "Stellen Sie sicher, dass der GerĂ€tetreiber v4l2 unterstĂŒtzt." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Read method error" +#~ msgstr "" +#~ "GUVCView-Fehler:\n" +#~ "\n" +#~ "Fehler der Lesemethode" + +#~ msgid "Please try mmap instead (--capture_method=1)." +#~ msgstr "Bitte versuchen sie es mit mmap (--capture_method=1)" + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to allocate Buffers" +#~ msgstr "" +#~ "GUVCView-Fehler:\n" +#~ "\n" +#~ "Puffer konnten nicht angelegt werden" + +#~ msgid "Please try restarting your system." +#~ msgstr "Bitte System neu starten." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to create Video Thread" +#~ msgstr "" +#~ "GUVCView-Fehler:\n" +#~ "\n" +#~ "Video-Thread konnte nicht erzeugt werden" + +#~ msgid "Please report it to http://developer.berlios.de/bugs/?group_id=8179" +#~ msgstr "" +#~ "Bitte melden Sie dies an http://developer.berlios.de/bugs/?group_id=8179" + +#~ msgid "Bitmap (Bmp)" +#~ msgstr "Bitmap (bmp)" + +#~ msgid "Portable Network Graphics (Png)" +#~ msgstr "Portable Network Graphics (png)" + +#~ msgid "Displays debug information" +#~ msgstr "Extra Informationen anzeigen" + +#~ msgid "Exit after adding UVC extension controls (needs root/sudo)" +#~ msgstr "" +#~ "Nach HinzufĂŒgen der erweiterten UVC-Bedienelemente beenden (root/sudo " +#~ "erforderlich)" + +#~ msgid "Don't stream video (image controls only)" +#~ msgstr "Video nicht streamen (nur Bildsteuerung)" + +#~ msgid "Don't display a GUI" +#~ msgstr "Keine grafische BenutzeroberflĂ€che anzeigen" + +#~ msgid "Configuration file" +#~ msgstr "Konfigurationsdatei" + +#~ msgid "Hardware accelaration (enable(1) | disable(0))" +#~ msgstr "Hardware accel. (aktivieren(1) | inaktivieren(0))" + +#~ msgid "" +#~ "Pixel format(mjpg|jpeg|yuyv|yvyu|uyvy|yyuv|yu12|yv12|nv12|nv21|nv16|nv61|" +#~ "y41p|grey|y10b|y16 |s501|s505|s508|gbrg|grbg|ba81|rggb|bgr3|rgb3)" +#~ msgstr "" +#~ "Pixel-Format (mjpg|jpeg|yuyv|yvyu|uyvy|yyuv|yu12|yv12|nv12|nv21|nv16|nv61|" +#~ "y41p|grey|y10b|y16 |s501|s505|s508|gbrg|grbg|ba81|rggb|bgr3|rgb3)" + +#~ msgid "Frame size, default: 640x480" +#~ msgstr "Auflösung (Standard: 640x480)" + +#~ msgid "Image capture interval in seconds" +#~ msgstr "Bild aufnehmenabgelaufen (sekunden)" + +#~ msgid "Number of Pictures to capture" +#~ msgstr "BildquantitĂ€t" + +#~ msgid "Video File name (capture from start)" +#~ msgstr "Video-Dateiname (Aufnahme von Anfang)" + +#~ msgid "Video capture time (in seconds)" +#~ msgstr "Video-Aufnahmedauer (Sek)" + +#~ msgid "Exits guvcview after closing video" +#~ msgstr "GUVCView beenden, nachdem Video geschlossen wurde" + +#~ msgid "Number of initial frames to skip" +#~ msgstr "Anzahl der am Anfang zu ĂŒberspringenden Einzelbilder" + +#~ msgid "Show FPS value (enable(1) | disable (0))" +#~ msgstr "FPS anzeigen (aktivieren(1)|inaktivieren(0))" + +#~ msgid "Load Profile at start" +#~ msgstr "kontrollen - Datei öffnen" + +#~ msgid "- local options" +#~ msgstr "- lokale Wahlen" + +#~ msgid "Cap. Image" +#~ msgstr "Bild aufnehmen" + +#~ msgid "Not enough free space left on disk" +#~ msgstr "Nicht genĂŒgend freier Speicherplatz vorhanden" + +#~ msgid "YUY2 - uncomp YUV" +#~ msgstr "YUY2 - keine Komp. YUV" + +#~ msgid "RGB - uncomp BMP" +#~ msgstr "RGB - keine Komp. BMP" + +#~ msgid "MKV - Matroska format" +#~ msgstr "MKV – Matroska-Format" + +#~ msgid "WEBM - format" +#~ msgstr "WEBM-Format" + +#~ msgid " Show" +#~ msgstr " Anzeigen" + +#~ msgid "Quality:" +#~ msgstr "QualitĂ€t:" diff -Nru guvcview-1.7.3/po/en_AU.po guvcview-2.0.1+ubuntu1~ppa1/po/en_AU.po --- guvcview-1.7.3/po/en_AU.po 2014-03-24 22:56:28.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/po/en_AU.po 2014-10-05 10:41:44.000000000 +0000 @@ -7,16 +7,16 @@ msgstr "" "Project-Id-Version: guvcview\n" "Report-Msgid-Bugs-To: pj.assis@gmail.com\n" -"POT-Creation-Date: 2013-11-14 22:15+0000\n" +"POT-Creation-Date: 2014-08-17 22:49+0100\n" "PO-Revision-Date: 2013-06-18 07:11+0000\n" "Last-Translator: Jackson Doak \n" "Language-Team: English (Australia) \n" +"Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-12-08 10:36+0000\n" "X-Generator: Launchpad (build 16869)\n" -"Language: \n" #: ../data/guvcview.desktop.in.in.h:1 msgid "guvcview" @@ -28,1396 +28,1628 @@ #: ../data/guvcview.desktop.in.in.h:3 msgid "A video viewer and capturer for the linux uvc driver" -msgstr "A video viewer and capturer for the linux uvc driver" - -#: ../src/acodecs.c:59 -msgid "PCM - uncompressed (16 bit)" -msgstr "PCM - uncompressed (16 bit)" - -#: ../src/acodecs.c:76 -msgid "MPEG2 - (lavc)" -msgstr "MPEG2 - (lavc)" - -#: ../src/acodecs.c:93 -msgid "MP3 - (lavc)" -msgstr "MP3 - (lavc)" - -#: ../src/acodecs.c:110 -msgid "Dolby AC3 - (lavc)" -msgstr "Dolby AC3 - (lavc)" - -#: ../src/acodecs.c:127 -msgid "ACC Low - (faac)" -msgstr "ACC Low - (faac)" - -#: ../src/acodecs.c:144 -msgid "Vorbis" -msgstr "Vorbis" - -#: ../src/audio_tab.c:87 -msgid "Audio" -msgstr "Audio" - -#: ../src/audio_tab.c:105 -msgid " Sound" -msgstr " Sound" - -#. VU meter on the image (OSD) -#: ../src/audio_tab.c:116 -msgid " Show VU meter" -msgstr " Show VU meter" - -#: ../src/audio_tab.c:128 -msgid "Audio API:" -msgstr "Audio API:" - -#: ../src/audio_tab.c:139 -msgid "PORTAUDIO" -msgstr "PORTAUDIO" - -#: ../src/audio_tab.c:140 -msgid "PULSEAUDIO" -msgstr "PULSEAUDIO" - -#: ../src/audio_tab.c:156 ../src/audio_tab.c:179 -msgid "Input Device:" -msgstr "Input Device:" - -#: ../src/audio_tab.c:189 ../src/audio_tab.c:221 -msgid "Dev. Default" -msgstr "Dev. Default" - -#: ../src/audio_tab.c:211 -msgid "Sample Rate:" -msgstr "Sample Rate:" - -#: ../src/audio_tab.c:222 -msgid "1 - mono" -msgstr "1 - mono" - -#: ../src/audio_tab.c:223 -msgid "2 - stereo" -msgstr "2 - stereo" - -#: ../src/audio_tab.c:258 -msgid "Channels:" -msgstr "Channels:" - -#: ../src/audio_tab.c:309 -msgid "---- Audio Effects ----" -msgstr "---- Audio Effects ----" - -#. Echo -#: ../src/audio_tab.c:328 -msgid " Echo" -msgstr " Echo" - -#. FUZZ -#: ../src/audio_tab.c:339 -msgid " Fuzz" -msgstr " Fuzz" - -#. Reverb -#: ../src/audio_tab.c:351 -msgid " Reverb" -msgstr " Reverb" - -#. WahWah -#: ../src/audio_tab.c:363 -msgid " WahWah" -msgstr " WahWah" - -#. Ducky -#: ../src/audio_tab.c:375 -msgid " Ducky" -msgstr " Ducky" - -#: ../src/callbacks.c:109 -msgid "Error" -msgstr "Error" - -#: ../src/callbacks.c:133 -msgid "" -"\n" -"You have more than one video device installed.\n" -"Do you want to try another one ?\n" -msgstr "" -"\n" -"You have more than one video device installed.\n" -"Do you want to try another one?\n" - -#. Devices -#: ../src/callbacks.c:140 ../src/video_tab.c:111 -msgid "Device:" -msgstr "Device:" - -#: ../src/callbacks.c:272 -msgid "Save File" -msgstr "Save File" - -#: ../src/callbacks.c:284 -msgid "File Format:" -msgstr "File Format:" - -#: ../src/callbacks.c:455 -msgid "codec values" -msgstr "codec values" - -#: ../src/callbacks.c:466 -msgid "" -" encoder fps: \n" -" (0 - use fps combobox value)" -msgstr "" -" encoder fps: \n" -" (0 - use fps combobox value)" - -#: ../src/callbacks.c:479 -msgid " monotonic pts" -msgstr " monotonic pts" - -#. bit rate -#: ../src/callbacks.c:486 ../src/callbacks.c:809 -msgid "bit rate: " -msgstr "bit rate: " - -#: ../src/callbacks.c:499 -msgid "qmax: " -msgstr "qmax: " - -#: ../src/callbacks.c:512 -msgid "qmin: " -msgstr "qmin: " - -#: ../src/callbacks.c:525 -msgid "max. qdiff: " -msgstr "max. qdiff: " - -#: ../src/callbacks.c:538 -msgid "dia size: " -msgstr "dia size: " - -#: ../src/callbacks.c:551 -msgid "pre dia size: " -msgstr "pre dia size: " - -#: ../src/callbacks.c:564 -msgid "pre me: " -msgstr "pre me: " - -#: ../src/callbacks.c:577 -msgid "pre cmp: " -msgstr "pre cmp: " - -#: ../src/callbacks.c:590 -msgid "cmp: " -msgstr "cmp: " - -#: ../src/callbacks.c:603 -msgid "sub cmp: " -msgstr "sub cmp: " - -#: ../src/callbacks.c:616 -msgid "last predictor count: " -msgstr "last predictor count: " - -#: ../src/callbacks.c:629 -msgid "gop size: " -msgstr "gop size: " - -#: ../src/callbacks.c:642 -msgid "qcompress: " -msgstr "qcompress: " - -#: ../src/callbacks.c:655 -msgid "qblur: " -msgstr "qblur: " - -#: ../src/callbacks.c:668 -msgid "subq: " -msgstr "subq: " - -#: ../src/callbacks.c:681 -msgid "framerefs: " -msgstr "framerefs: " - -#: ../src/callbacks.c:694 -msgid "me method: " -msgstr "me method: " - -#: ../src/callbacks.c:707 -msgid "mb decision: " -msgstr "mb decision: " - -#: ../src/callbacks.c:720 -msgid "max B frames: " -msgstr "max B frames: " - -#: ../src/callbacks.c:733 -msgid "num threads: " -msgstr "num threads: " - -#: ../src/callbacks.c:796 -msgid "audio codec values" -msgstr "audio codec values" - -#. sample format -#: ../src/callbacks.c:823 -msgid "sample format: " -msgstr "sample format: " - -#: ../src/callbacks.c:1311 -msgid "start new" -msgstr "start new" - -#: ../src/callbacks.c:1314 -msgid "restart" -msgstr "restart" - -#: ../src/callbacks.c:1316 -msgid "new" -msgstr "new" - -#: ../src/callbacks.c:1318 -msgid "cancel" -msgstr "cancel" - -#: ../src/callbacks.c:1323 -msgid "" -"launch new process or restart?.\n" -"\n" -msgstr "" -"launch new process or restart?.\n" -"\n" - -#: ../src/callbacks.c:1780 ../src/guvcview.c:565 -msgid "Cap. Image (I)" -msgstr "Cap. Image (I)" - -#. disable image controls -#: ../src/callbacks.c:1791 ../src/guvcview.c:690 ../src/timers.c:101 -msgid "capturing photo to" -msgstr "capturing photo to" - -#: ../src/callbacks.c:1850 ../src/guvcview.c:575 -msgid "Cap. Video (V)" -msgstr "Cap. Video (V)" - -#: ../src/callbacks.c:1876 ../src/guvcview.c:740 -msgid "capturing video to" -msgstr "capturing video to" - -#. vid capture enabled from start -#: ../src/callbacks.c:1911 ../src/guvcview.c:570 -msgid "Stop Video (V)" -msgstr "Stop Video (V)" - -#: ../src/callbacks.c:1967 ../src/menubar.c:66 -msgid "Save Profile" -msgstr "Save Profile" - -#: ../src/callbacks.c:1980 ../src/menubar.c:65 -msgid "Load Profile" -msgstr "Load Profile" - -#: ../src/create_video.c:1098 ../src/guvcview.c:732 -msgid "Cap. Video" -msgstr "Cap. Video" - -#: ../src/guvcview.c:280 -msgid "Guvcview Video Capture" -msgstr "Guvcview Video Capture" - -#: ../src/guvcview.c:292 -msgid "GUVCViewer Controls" -msgstr "GUVCViewer Controls" - -#. can't open device -#: ../src/guvcview.c:342 -msgid "" -"Guvcview error:\n" -"\n" -"Unable to open device" -msgstr "" -"Guvcview error:\n" -"\n" -"Unable to open device" - -#: ../src/guvcview.c:343 -msgid "" -"Please make sure the camera is connected\n" -"and that the correct driver is installed." -msgstr "" -"Please make sure the camera is connected\n" -"and that the correct driver is installed." - -#. uvc extension controls OK, give warning and shutdown (called with --add_ctrls) -#: ../src/guvcview.c:348 -msgid "" -"Guvcview:\n" -"\n" -"UVC Extension controls" -msgstr "" -"Guvcview:\n" -"\n" -"UVC Extension controls" - -#: ../src/guvcview.c:349 -msgid "Extension controls were added to the UVC driver" -msgstr "Extension controls were added to the UVC driver" - -#. uvc extension controls error - EACCES (needs root user) -#: ../src/guvcview.c:356 -msgid "" -"Guvcview error:\n" -"\n" -"UVC Extension controls" -msgstr "" -"Guvcview error:\n" -"\n" -"UVC Extension controls" - -#: ../src/guvcview.c:357 -msgid "" -"An error occurred while adding extension\n" -"controls to the UVC driver\n" -"Make sure you run guvcview as root (or sudo)." -msgstr "" -"An error occurred while adding extension\n" -"controls to the UVC driver\n" -"Make sure you run guvcview as root (or sudo)." - -#: ../src/guvcview.c:391 ../src/guvcview.c:399 ../src/guvcview.c:477 -msgid "" -"Guvcview error:\n" -"\n" -"Can't set a valid video stream for guvcview" -msgstr "" -"Guvcview error:\n" -"\n" -"Can't set a valid video stream for guvcview" - -#: ../src/guvcview.c:392 ../src/guvcview.c:400 ../src/guvcview.c:478 -msgid "" -"Make sure your device driver is v4l2 compliant\n" -"and that it is properly installed." -msgstr "" -"Make sure your device driver is v4l2 compliant\n" -"and that it is properly installed." - -#: ../src/guvcview.c:422 ../src/guvcview.c:444 -msgid "" -"Guvcview error:\n" -"\n" -"Unable to start with minimum setup" -msgstr "" -"Guvcview error:\n" -"\n" -"Unable to start with minimum setup" - -#: ../src/guvcview.c:423 ../src/guvcview.c:445 -msgid "Please reconnect your camera." -msgstr "Please reconnect your camera." - -#: ../src/guvcview.c:452 -msgid "" -"Guvcview error:\n" -"\n" -"Couldn't query device capabilities" -msgstr "" -"Guvcview error:\n" -"\n" -"Couldn't query device capabilities" - -#: ../src/guvcview.c:453 -msgid "Make sure the device driver supports v4l2." -msgstr "Make sure the device driver supports v4l2." - -#: ../src/guvcview.c:457 -msgid "" -"Guvcview error:\n" -"\n" -"Read method error" -msgstr "" -"Guvcview error:\n" -"\n" -"Read method error" - -#: ../src/guvcview.c:458 -msgid "Please try mmap instead (--capture_method=1)." -msgstr "Please try mmap instead (--capture_method=1)." - -#: ../src/guvcview.c:466 -msgid "" -"Guvcview error:\n" -"\n" -"Unable to allocate Buffers" -msgstr "" -"Guvcview error:\n" -"\n" -"Unable to allocate Buffers" - -#: ../src/guvcview.c:467 -msgid "Please try restarting your system." -msgstr "Please try restarting your system." - -#: ../src/guvcview.c:518 -msgid "Image Controls" -msgstr "Image Controls" - -#. image auto capture -#: ../src/guvcview.c:561 -msgid "Stop Auto (I)" -msgstr "Stop Auto (I)" - -#: ../src/guvcview.c:676 -msgid "" -"Guvcview error:\n" -"\n" -"Unable to create Video Thread" -msgstr "" -"Guvcview error:\n" -"\n" -"Unable to create Video Thread" - -#: ../src/guvcview.c:677 -msgid "Please report it to http://developer.berlios.de/bugs/?group_id=8179" -msgstr "Please report it to http://developer.berlios.de/bugs/?group_id=8179" - -#: ../src/img_controls.c:121 -msgid "Auto Focus (continuous)" -msgstr "Auto Focus (continuous)" - -#: ../src/img_controls.c:122 -msgid "set Focus" -msgstr "set Focus" - -#: ../src/image_format.c:35 -msgid "Jpeg (jpg)" -msgstr "Jpeg (jpg)" - -#: ../src/image_format.c:41 -msgid "Bitmap (Bmp)" -msgstr "Bitmap (Bmp)" - -#: ../src/image_format.c:47 -msgid "Portable Network Graphics (Png)" -msgstr "Portable Network Graphics (Png)" - -#: ../src/image_format.c:53 -msgid "Raw Image (raw)" -msgstr "Raw Image (raw)" - -#. controls menu -#: ../src/menubar.c:64 -msgid "Settings" -msgstr "Settings" - -#: ../src/menubar.c:67 -msgid "Hardware Defaults" -msgstr "Hardware Defaults" - -#: ../src/menubar.c:75 -msgid "Camera Button" -msgstr "Camera Button" - -#: ../src/menubar.c:79 -msgid "Capture Image" -msgstr "Capture Image" - -#: ../src/menubar.c:84 -msgid "Capture Video" -msgstr "Capture Video" - -#. video menu -#: ../src/menubar.c:144 ../src/video_tab.c:95 -msgid "Video" -msgstr "Video" - -#: ../src/menubar.c:145 ../src/menubar.c:233 -msgid "File" -msgstr "File" - -#: ../src/menubar.c:146 ../src/menubar.c:234 -msgid "Increment Filename" -msgstr "Increment Filename" - -#: ../src/menubar.c:164 -msgid "Video Codec" -msgstr "Video Codec" - -#: ../src/menubar.c:189 -msgid "Video Codec Properties" -msgstr "Video Codec Properties" - -#: ../src/menubar.c:196 -msgid "Audio Codec" -msgstr "Audio Codec" - -#: ../src/menubar.c:217 -msgid "Audio Codec Properties" -msgstr "Audio Codec Properties" - -#. photo menu -#: ../src/menubar.c:232 -msgid "Photo" -msgstr "Photo" - -#: ../src/options.c:753 -msgid "Prints version" -msgstr "Prints version" - -#: ../src/options.c:754 -msgid "Displays debug information" -msgstr "Displays debug information" - -#: ../src/options.c:755 -msgid "Video Device to use [default: /dev/video0]" -msgstr "Video Device to use [default: /dev/video0]" - -#: ../src/options.c:756 -msgid "Exit after adding UVC extension controls (needs root/sudo)" -msgstr "Exit after adding UVC extension controls (needs root/sudo)" - -#: ../src/options.c:757 -msgid "Don't stream video (image controls only)" -msgstr "Don't stream video (image controls only)" - -#: ../src/options.c:758 -msgid "Don't display a GUI" -msgstr "Don't display a GUI" - -#: ../src/options.c:759 -msgid "Capture method (1-mmap (default) 2-read)" -msgstr "Capture method (1-mmap (default) 2-read)" - -#: ../src/options.c:760 -msgid "Configuration file" -msgstr "Configuration file" - -#: ../src/options.c:761 -msgid "Hardware accelaration (enable(1) | disable(0))" -msgstr "Hardware accelaration (enable(1) | disable(0))" - -#: ../src/options.c:762 -msgid "" -"Pixel " -"format(mjpg|jpeg|yuyv|yvyu|uyvy|yyuv|yu12|yv12|nv12|nv21|nv16|nv61|y41p|grey|" -"y10b|y16 |s501|s505|s508|gbrg|grbg|ba81|rggb|bgr3|rgb3)" -msgstr "" -"Pixel " -"format(mjpg|jpeg|yuyv|yvyu|uyvy|yyuv|yu12|yv12|nv12|nv21|nv16|nv61|y41p|grey|" -"y10b|y16 |s501|s505|s508|gbrg|grbg|ba81|rggb|bgr3|rgb3)" - -#: ../src/options.c:763 -msgid "Frame size, default: 640x480" -msgstr "Frame size, default: 640x480" - -#: ../src/options.c:764 -msgid "Image File name" -msgstr "Image File name" - -#: ../src/options.c:765 -msgid "Image capture interval in seconds" -msgstr "Image capture interval in seconds" - -#: ../src/options.c:766 -msgid "Number of Pictures to capture" -msgstr "Number of Pictures to capture" - -#: ../src/options.c:767 -msgid "Video File name (capture from start)" -msgstr "Video File name (capture from start)" - -#: ../src/options.c:768 -msgid "Video capture time (in seconds)" -msgstr "Video capture time (in seconds)" - -#: ../src/options.c:769 -msgid "Exits guvcview after closing video" -msgstr "Exits guvcview after closing video" - -#: ../src/options.c:770 -msgid "Number of initial frames to skip" -msgstr "Number of initial frames to skip" - -#: ../src/options.c:771 -msgid "Show FPS value (enable(1) | disable (0))" -msgstr "Show FPS value (enable(1) | disable (0))" - -#: ../src/options.c:772 -msgid "Load Profile at start" -msgstr "Load Profile at start" - -#: ../src/options.c:773 -msgid "List controls method (0:loop, 1:next_ctrl flag [def])" -msgstr "" - -#: ../src/options.c:779 -msgid "- local options" -msgstr "- local options" - -#. gdk_threads_enter(); -#: ../src/timers.c:119 -msgid "Cap. Image" -msgstr "Cap. Image" - -#: ../src/timers.c:217 -msgid "Guvcview Warning:" -msgstr "Guvcview Warning:" - -#: ../src/timers.c:217 -msgid "Not enough free space left on disk" -msgstr "Not enough free space left on disk" - -#: ../src/v4l2_controls.c:794 -msgid "Left" -msgstr "Left" - -#: ../src/v4l2_controls.c:795 -msgid "Right" -msgstr "Right" - -#: ../src/v4l2_controls.c:799 -msgid "Down" -msgstr "Down" - -#: ../src/v4l2_controls.c:800 -msgid "Up" -msgstr "Up" - -#: ../src/v4l2_controls.c:845 -msgid "Off" -msgstr "Off" - -#: ../src/v4l2_controls.c:845 -msgid "On" -msgstr "On" - -#: ../src/v4l2_controls.c:845 -msgid "Blinking" -msgstr "Blinking" - -#: ../src/v4l2_controls.c:845 -msgid "Auto" -msgstr "Auto" - -#. turn it into a menu control -#: ../src/v4l2_controls.c:894 -msgid "8 bit" -msgstr "8 bit" - -#: ../src/v4l2_controls.c:894 -msgid "12 bit" -msgstr "12 bit" - -#: ../src/v4l2_dyna_ctrls.c:96 -msgid "Pan (relative)" -msgstr "Pan (relative)" - -#: ../src/v4l2_dyna_ctrls.c:109 -msgid "Tilt (relative)" -msgstr "Tilt (relative)" - -#: ../src/v4l2_dyna_ctrls.c:122 -msgid "Pan Reset" -msgstr "Pan Reset" - -#: ../src/v4l2_dyna_ctrls.c:135 -msgid "Tilt Reset" -msgstr "Tilt Reset" - -#: ../src/v4l2_dyna_ctrls.c:148 -msgid "Focus (absolute)" -msgstr "Focus (absolute)" - -#: ../src/v4l2_dyna_ctrls.c:161 -msgid "LED1 Mode" -msgstr "LED1 Mode" - -#: ../src/v4l2_dyna_ctrls.c:174 -msgid "LED1 Frequency" -msgstr "LED1 Frequency" +msgstr "A video viewer and capturer for the linux uvc driver" -#: ../src/v4l2_dyna_ctrls.c:187 -msgid "Disable video processing" -msgstr "Disable video processing" +#: ../data/guvcview.appdata.xml.in.in.h:1 +msgid "capture video from v4l2 devices" +msgstr "" -#: ../src/v4l2_dyna_ctrls.c:200 -msgid "Raw bits per pixel" -msgstr "Raw bits per pixel" +#: ../data/guvcview.appdata.xml.in.in.h:2 +msgid "" +"Video capture tool for video4linux2 compliant cameras, with special emphasis " +"on the linux uvc driver. It provides Image (jpg, png, bmp) and Video (mjpeg, " +"flv1, wmv1, mpg2, mpg4,...) capture with sound in several " +"formats( currently: avi and matroska). I also supports a control panel " +"option (--control_only) that is compatible with any other v4l2 app." +msgstr "" -#. needed only for language files (not used) +#. +#. * needed only for language files (not used) +#. #. V4L2 control strings -#: ../src/v4l2uvc.c:57 +#: ../gview_v4l2core/v4l2_controls.c:49 msgid "User Controls" msgstr "User Controls" -#: ../src/v4l2uvc.c:58 +#: ../gview_v4l2core/v4l2_controls.c:50 msgid "Brightness" msgstr "Brightness" -#: ../src/v4l2uvc.c:59 +#: ../gview_v4l2core/v4l2_controls.c:51 msgid "Contrast" msgstr "Contrast" -#: ../src/v4l2uvc.c:60 +#: ../gview_v4l2core/v4l2_controls.c:52 msgid "Hue" msgstr "Hue" -#: ../src/v4l2uvc.c:61 +#: ../gview_v4l2core/v4l2_controls.c:53 msgid "Saturation" msgstr "Saturation" -#: ../src/v4l2uvc.c:62 +#: ../gview_v4l2core/v4l2_controls.c:54 msgid "Sharpness" msgstr "Sharpness" -#: ../src/v4l2uvc.c:63 +#: ../gview_v4l2core/v4l2_controls.c:55 msgid "Gamma" msgstr "Gamma" -#: ../src/v4l2uvc.c:64 +#: ../gview_v4l2core/v4l2_controls.c:56 msgid "Backlight Compensation" msgstr "Backlight Compensation" -#: ../src/v4l2uvc.c:65 +#: ../gview_v4l2core/v4l2_controls.c:57 msgid "Power Line Frequency" msgstr "Power Line Frequency" -#: ../src/v4l2uvc.c:66 +#: ../gview_v4l2core/v4l2_controls.c:58 msgid "Hue, Automatic" msgstr "Hue, Automatic" -#: ../src/v4l2uvc.c:67 +#: ../gview_v4l2core/v4l2_controls.c:59 msgid "Focus, Auto" msgstr "Focus, Auto" -#: ../src/v4l2uvc.c:68 +#: ../gview_v4l2core/v4l2_controls.c:60 msgid "Manual Mode" msgstr "Manual Mode" -#: ../src/v4l2uvc.c:69 +#: ../gview_v4l2core/v4l2_controls.c:61 msgid "Auto Mode" msgstr "Auto Mode" -#: ../src/v4l2uvc.c:70 +#: ../gview_v4l2core/v4l2_controls.c:62 msgid "Shutter Priority Mode" msgstr "Shutter Priority Mode" -#: ../src/v4l2uvc.c:71 +#: ../gview_v4l2core/v4l2_controls.c:63 msgid "Aperture Priority Mode" msgstr "Aperture Priority Mode" -#: ../src/v4l2uvc.c:72 +#: ../gview_v4l2core/v4l2_controls.c:64 msgid "Black Level" msgstr "Black Level" -#: ../src/v4l2uvc.c:73 +#: ../gview_v4l2core/v4l2_controls.c:65 msgid "White Balance, Automatic" msgstr "White Balance, Automatic" -#: ../src/v4l2uvc.c:74 +#: ../gview_v4l2core/v4l2_controls.c:66 msgid "Do White Balance" msgstr "Do White Balance" -#: ../src/v4l2uvc.c:75 +#: ../gview_v4l2core/v4l2_controls.c:67 msgid "Red Balance" msgstr "Red Balance" -#: ../src/v4l2uvc.c:76 +#: ../gview_v4l2core/v4l2_controls.c:68 msgid "Blue Balance" msgstr "Blue Balance" -#: ../src/v4l2uvc.c:77 +#: ../gview_v4l2core/v4l2_controls.c:69 msgid "Exposure" msgstr "Exposure" -#: ../src/v4l2uvc.c:78 +#: ../gview_v4l2core/v4l2_controls.c:70 msgid "Gain, Automatic" msgstr "Gain, Automatic" -#: ../src/v4l2uvc.c:79 +#: ../gview_v4l2core/v4l2_controls.c:71 msgid "Gain" msgstr "Gain" -#: ../src/v4l2uvc.c:80 +#: ../gview_v4l2core/v4l2_controls.c:72 msgid "Horizontal Flip" msgstr "Horizontal Flip" -#: ../src/v4l2uvc.c:81 +#: ../gview_v4l2core/v4l2_controls.c:73 msgid "Vertical Flip" msgstr "Vertical Flip" -#: ../src/v4l2uvc.c:82 +#: ../gview_v4l2core/v4l2_controls.c:74 msgid "Horizontal Center" msgstr "Horizontal Centre" -#: ../src/v4l2uvc.c:83 +#: ../gview_v4l2core/v4l2_controls.c:75 msgid "Vertical Center" msgstr "Vertical Centre" -#: ../src/v4l2uvc.c:84 +#: ../gview_v4l2core/v4l2_controls.c:76 msgid "Chroma AGC" msgstr "Chroma AGC" -#: ../src/v4l2uvc.c:85 +#: ../gview_v4l2core/v4l2_controls.c:77 msgid "Color Killer" msgstr "Colour Killer" -#: ../src/v4l2uvc.c:86 +#: ../gview_v4l2core/v4l2_controls.c:78 msgid "Color Effects" msgstr "Colour Effects" #. CAMERA CLASS control strings -#: ../src/v4l2uvc.c:89 +#: ../gview_v4l2core/v4l2_controls.c:81 msgid "Camera Controls" msgstr "Camera Controls" -#: ../src/v4l2uvc.c:90 +#: ../gview_v4l2core/v4l2_controls.c:82 msgid "Auto Exposure" msgstr "Auto Exposure" -#: ../src/v4l2uvc.c:91 +#: ../gview_v4l2core/v4l2_controls.c:83 msgid "Exposure Time, Absolute" msgstr "Exposure Time, Absolute" -#: ../src/v4l2uvc.c:92 +#: ../gview_v4l2core/v4l2_controls.c:84 msgid "Exposure, Dynamic Framerate" msgstr "Exposure, Dynamic Framerate" -#: ../src/v4l2uvc.c:93 +#: ../gview_v4l2core/v4l2_controls.c:85 msgid "Pan, Relative" msgstr "Pan, Relative" -#: ../src/v4l2uvc.c:94 +#: ../gview_v4l2core/v4l2_controls.c:86 msgid "Tilt, Relative" msgstr "Tilt, Relative" -#: ../src/v4l2uvc.c:95 +#: ../gview_v4l2core/v4l2_controls.c:87 msgid "Pan, Reset" msgstr "Pan, Reset" -#: ../src/v4l2uvc.c:96 +#: ../gview_v4l2core/v4l2_controls.c:88 msgid "Tilt, Reset" msgstr "Tilt, Reset" -#: ../src/v4l2uvc.c:97 +#: ../gview_v4l2core/v4l2_controls.c:89 msgid "Pan, Absolute" msgstr "Pan, Absolute" -#: ../src/v4l2uvc.c:99 +#: ../gview_v4l2core/v4l2_controls.c:91 msgid "Focus, Absolute" msgstr "Focus, Absolute" -#: ../src/v4l2uvc.c:100 +#: ../gview_v4l2core/v4l2_controls.c:92 msgid "Focus, Relative" msgstr "Focus, Relative" -#: ../src/v4l2uvc.c:101 +#: ../gview_v4l2core/v4l2_controls.c:93 msgid "Focus, Automatic" msgstr "Focus, Automatic" -#: ../src/v4l2uvc.c:102 +#: ../gview_v4l2core/v4l2_controls.c:94 msgid "Zoom, Absolute" msgstr "Zoom, Absolute" -#: ../src/v4l2uvc.c:103 +#: ../gview_v4l2core/v4l2_controls.c:95 msgid "Zoom, Relative" msgstr "Zoom, Relative" -#: ../src/v4l2uvc.c:104 +#: ../gview_v4l2core/v4l2_controls.c:96 msgid "Zoom, Continuous" msgstr "Zoom, Continuous" -#: ../src/v4l2uvc.c:105 +#: ../gview_v4l2core/v4l2_controls.c:97 msgid "Privacy" msgstr "Privacy" #. UVC specific control strings -#: ../src/v4l2uvc.c:108 +#: ../gview_v4l2core/v4l2_controls.c:100 msgid "Exposure, Auto" msgstr "Exposure, Auto" -#: ../src/v4l2uvc.c:109 +#: ../gview_v4l2core/v4l2_controls.c:101 msgid "Exposure, Auto Priority" msgstr "Exposure, Auto Priority" -#: ../src/v4l2uvc.c:110 +#: ../gview_v4l2core/v4l2_controls.c:102 msgid "Exposure (Absolute)" msgstr "Exposure (Absolute)" -#: ../src/v4l2uvc.c:111 +#: ../gview_v4l2core/v4l2_controls.c:103 msgid "White Balance Temperature, Auto" msgstr "White Balance Temperature, Auto" -#: ../src/v4l2uvc.c:112 +#: ../gview_v4l2core/v4l2_controls.c:104 msgid "White Balance Temperature" msgstr "White Balance Temperature" -#: ../src/v4l2uvc.c:113 +#: ../gview_v4l2core/v4l2_controls.c:105 msgid "White Balance Component, Auto" msgstr "White Balance Component, Auto" -#: ../src/v4l2uvc.c:114 +#: ../gview_v4l2core/v4l2_controls.c:106 msgid "White Balance Blue Component" msgstr "White Balance Blue Component" -#: ../src/v4l2uvc.c:115 +#: ../gview_v4l2core/v4l2_controls.c:107 msgid "White Balance Red Component" msgstr "White Balance Red Component" #. libwebcam specific control strings -#: ../src/v4l2uvc.c:118 +#: ../gview_v4l2core/v4l2_controls.c:110 msgid "Focus" msgstr "Focus" -#: ../src/v4l2uvc.c:119 +#: ../gview_v4l2core/v4l2_controls.c:111 msgid "Focus (Absolute)" msgstr "Focus (Absolute)" -#: ../src/vcodecs.c:63 +#: ../gview_v4l2core/v4l2_xu_ctrls.c:63 ../guvcview/gui_gtk3_v4l2ctrls.c:239 +msgid "Off" +msgstr "Off" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:64 ../guvcview/gui_gtk3_v4l2ctrls.c:239 +msgid "On" +msgstr "On" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:65 ../guvcview/gui_gtk3_v4l2ctrls.c:239 +msgid "Blinking" +msgstr "Blinking" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:66 ../guvcview/gui_gtk3_v4l2ctrls.c:239 +msgid "Auto" +msgstr "Auto" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:73 +msgid "Pan (relative)" +msgstr "Pan (relative)" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:86 +msgid "Tilt (relative)" +msgstr "Tilt (relative)" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:99 +msgid "Pan Reset" +msgstr "Pan Reset" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:112 +msgid "Tilt Reset" +msgstr "Tilt Reset" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:125 +msgid "Focus (absolute)" +msgstr "Focus (absolute)" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:138 +msgid "LED1 Mode" +msgstr "LED1 Mode" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:151 +msgid "LED1 Frequency" +msgstr "LED1 Frequency" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:164 +msgid "Disable video processing" +msgstr "Disable video processing" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:177 +msgid "Raw bits per pixel" +msgstr "Raw bits per pixel" + +#: ../gview_encoder/audio_codecs.c:63 +#, fuzzy +msgid "PCM - uncompressed (float 32 bit)" +msgstr "PCM - uncompressed (16 bit)" + +#: ../gview_encoder/audio_codecs.c:80 +msgid "MP2 (MPEG audio layer 2)" +msgstr "" + +#: ../gview_encoder/audio_codecs.c:97 +msgid "MP3 (MPEG audio layer 3)" +msgstr "" + +#: ../gview_encoder/audio_codecs.c:118 +msgid "AC-3 (ATSC A/52A)" +msgstr "" + +#: ../gview_encoder/audio_codecs.c:139 +msgid "AAC (Advanced Audio Coding)" +msgstr "" + +#: ../gview_encoder/audio_codecs.c:160 +msgid "Vorbis" +msgstr "Vorbis" + +#: ../gview_encoder/video_codecs.c:75 +#, fuzzy +msgid "Raw camera input" +msgstr "Camera Output:" + +#: ../gview_encoder/video_codecs.c:111 msgid "MJPG - compressed" msgstr "MJPG - compressed" -#: ../src/vcodecs.c:99 -msgid "YUY2 - uncomp YUV" -msgstr "YUY2 - uncomp YUV" - -#: ../src/vcodecs.c:135 -msgid "RGB - uncomp BMP" -msgstr "RGB - uncomp BMP" - -#: ../src/vcodecs.c:171 +#: ../gview_encoder/video_codecs.c:147 msgid "MPEG video 1" msgstr "MPEG video 1" -#: ../src/vcodecs.c:207 +#: ../gview_encoder/video_codecs.c:183 msgid "FLV1 - flash video 1" msgstr "FLV1 - flash video 1" -#: ../src/vcodecs.c:243 +#: ../gview_encoder/video_codecs.c:219 msgid "WMV1 - win. med. video 7" msgstr "WMV1 - win. med. video 7" -#: ../src/vcodecs.c:279 +#: ../gview_encoder/video_codecs.c:255 msgid "MPG2 - MPG2 format" msgstr "MPG2 - MPG2 format" -#: ../src/vcodecs.c:315 +#: ../gview_encoder/video_codecs.c:291 msgid "MS MP4 V3" msgstr "MS MP4 V3" -#: ../src/vcodecs.c:351 +#: ../gview_encoder/video_codecs.c:327 msgid "MPEG4-ASP" msgstr "MPEG4-ASP" -#: ../src/vcodecs.c:387 +#: ../gview_encoder/video_codecs.c:363 msgid "MPEG4-AVC (H264)" msgstr "MPEG4-AVC (H264)" -#: ../src/vcodecs.c:427 +#: ../gview_encoder/video_codecs.c:403 msgid "VP8 (VP8)" msgstr "VP8 (VP8)" -#: ../src/vcodecs.c:463 +#: ../gview_encoder/video_codecs.c:439 msgid "Theora (ogg theora)" msgstr "Theora (ogg theora)" -#: ../src/video_format.c:43 -msgid "AVI - avi format" -msgstr "AVI - avi format" +#: ../guvcview/gui_gtk3_audioctrls.c:95 +msgid "Audio API:" +msgstr "Audio API:" -#: ../src/video_format.c:52 -msgid "MKV - Matroska format" -msgstr "MKV - Matroska format" - -#: ../src/video_format.c:61 -msgid "WEBM - format" -msgstr "WEBM - format" +#: ../guvcview/gui_gtk3_audioctrls.c:106 +msgid "NO SOUND" +msgstr "" -#: ../src/video_tab.c:216 -msgid "Frame Rate:" -msgstr "Frame Rate:" +#: ../guvcview/gui_gtk3_audioctrls.c:107 +msgid "PORTAUDIO" +msgstr "PORTAUDIO" + +#: ../guvcview/gui_gtk3_audioctrls.c:110 +msgid "PULSEAUDIO" +msgstr "PULSEAUDIO" -#: ../src/video_tab.c:223 -msgid " Show" -msgstr " Show" +#: ../guvcview/gui_gtk3_audioctrls.c:127 +msgid "Input Device:" +msgstr "Input Device:" -#: ../src/video_tab.c:245 -msgid "Resolution:" -msgstr "Resolution:" +#: ../guvcview/gui_gtk3_audioctrls.c:161 +msgid "Sample Rate:" +msgstr "Sample Rate:" + +#: ../guvcview/gui_gtk3_audioctrls.c:168 ../guvcview/gui_gtk3_audioctrls.c:214 +msgid "Dev. Default" +msgstr "Dev. Default" + +#: ../guvcview/gui_gtk3_audioctrls.c:207 +msgid "Channels:" +msgstr "Channels:" + +#: ../guvcview/gui_gtk3_audioctrls.c:215 +msgid "1 - mono" +msgstr "1 - mono" + +#: ../guvcview/gui_gtk3_audioctrls.c:216 +msgid "2 - stereo" +msgstr "2 - stereo" + +#: ../guvcview/gui_gtk3_audioctrls.c:235 +#, fuzzy +msgid "---- Audio Filters ----" +msgstr "---- Video Filters ----" + +#. Echo FX +#: ../guvcview/gui_gtk3_audioctrls.c:255 +msgid " Echo" +msgstr " Echo" + +#. Reverb FX +#: ../guvcview/gui_gtk3_audioctrls.c:268 +msgid " Reverb" +msgstr " Reverb" + +#. Fuzz FX +#: ../guvcview/gui_gtk3_audioctrls.c:281 +msgid " Fuzz" +msgstr " Fuzz" + +#. WahWah FX +#: ../guvcview/gui_gtk3_audioctrls.c:294 +msgid " WahWah" +msgstr " WahWah" + +#. Ducky FX +#: ../guvcview/gui_gtk3_audioctrls.c:307 +msgid " Ducky" +msgstr " Ducky" + +#: ../guvcview/gui_gtk3.c:310 ../guvcview/gui_gtk3_callbacks.c:749 +msgid "Stop Video (V)" +msgstr "Stop Video (V)" + +#. video button +#: ../guvcview/gui_gtk3.c:315 ../guvcview/gui_gtk3.c:600 +#: ../guvcview/gui_gtk3_callbacks.c:755 +msgid "Cap. Video (V)" +msgstr "Cap. Video (V)" + +#: ../guvcview/gui_gtk3.c:376 ../guvcview/gui_gtk3.c:383 +msgid "Error" +msgstr "Error" + +#: ../guvcview/gui_gtk3.c:379 ../guvcview/gui_gtk3.c:386 +#: ../guvcview/gui_gtk3_callbacks.c:2097 +msgid "_Ok" +msgstr "" + +#: ../guvcview/gui_gtk3.c:380 ../guvcview/gui_gtk3_callbacks.c:185 +#: ../guvcview/gui_gtk3_callbacks.c:199 ../guvcview/gui_gtk3_callbacks.c:522 +#: ../guvcview/gui_gtk3_callbacks.c:624 ../guvcview/gui_gtk3_callbacks.c:1755 +#: ../guvcview/gui_gtk3_callbacks.c:2098 +#, fuzzy +msgid "_Cancel" +msgstr "cancel" + +#: ../guvcview/gui_gtk3.c:407 +msgid "" +"\n" +"You have more than one video device installed.\n" +"Do you want to try another one ?\n" +msgstr "" +"\n" +"You have more than one video device installed.\n" +"Do you want to try another one?\n" + +#. ---- Devices ---- +#: ../guvcview/gui_gtk3.c:414 ../guvcview/gui_gtk3_videoctrls.c:106 +msgid "Device:" +msgstr "Device:" + +#: ../guvcview/gui_gtk3.c:516 +msgid "Guvcview Video Capture" +msgstr "Guvcview Video Capture" + +#: ../guvcview/gui_gtk3.c:525 +#, fuzzy +msgid "Guvcview" +msgstr "guvcview" + +#: ../guvcview/gui_gtk3.c:572 +#, fuzzy +msgid "Stop Cap. (I)" +msgstr "Stop Auto (I)" + +#: ../guvcview/gui_gtk3.c:578 ../guvcview/gui_gtk3_callbacks.c:720 +#: ../guvcview/video_capture.c:250 +msgid "Cap. Image (I)" +msgstr "Cap. Image (I)" + +#. quit button +#. GtkWidget *quitButton = gtk_button_new_from_stock(GTK_STOCK_QUIT); +#: ../guvcview/gui_gtk3.c:621 +msgid "_Quit" +msgstr "" + +#: ../guvcview/gui_gtk3.c:667 +msgid "Image Controls" +msgstr "Image Controls" + +#: ../guvcview/gui_gtk3.c:703 +#, fuzzy +msgid "H264 Controls" +msgstr "User Controls" + +#: ../guvcview/gui_gtk3.c:742 +#, fuzzy +msgid "Video Controls" +msgstr "User Controls" + +#: ../guvcview/gui_gtk3.c:777 +#, fuzzy +msgid "Audio Controls" +msgstr "User Controls" + +#: ../guvcview/gui_gtk3_callbacks.c:182 ../guvcview/gui_gtk3_menu.c:72 +msgid "Save Profile" +msgstr "Save Profile" + +#: ../guvcview/gui_gtk3_callbacks.c:186 ../guvcview/gui_gtk3_callbacks.c:523 +#: ../guvcview/gui_gtk3_callbacks.c:625 +msgid "_Save" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:196 ../guvcview/gui_gtk3_menu.c:71 +msgid "Load Profile" +msgstr "Load Profile" + +#: ../guvcview/gui_gtk3_callbacks.c:200 +msgid "_Open" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:208 ../guvcview/gui_gtk3_callbacks.c:531 +#: ../guvcview/gui_gtk3_callbacks.c:634 +msgid "File Format:" +msgstr "File Format:" + +#: ../guvcview/gui_gtk3_callbacks.c:220 +msgid "gpfl (*.gpfl)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:221 +msgid "any (*.*)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:519 +#, fuzzy +msgid "Photo file name" +msgstr "Image File name" + +#: ../guvcview/gui_gtk3_callbacks.c:543 +#, fuzzy +msgid "Raw (*.raw)" +msgstr "Raw Image (raw)" + +#: ../guvcview/gui_gtk3_callbacks.c:544 +#, fuzzy +msgid "Jpeg (*.jpg)" +msgstr "Jpeg (jpg)" + +#: ../guvcview/gui_gtk3_callbacks.c:545 +msgid "Png (*.png)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:546 +msgid "Bmp (*.bmp)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:621 +#, fuzzy +msgid "Video file name" +msgstr "Image File name" + +#: ../guvcview/gui_gtk3_callbacks.c:646 +msgid "Matroska (*.mkv)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:647 +msgid "WebM (*.webm)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:648 +msgid "Avi (*.avi)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:1158 +msgid "start new" +msgstr "start new" + +#: ../guvcview/gui_gtk3_callbacks.c:1161 +msgid "restart" +msgstr "restart" + +#: ../guvcview/gui_gtk3_callbacks.c:1163 +msgid "new" +msgstr "new" + +#: ../guvcview/gui_gtk3_callbacks.c:1165 +msgid "cancel" +msgstr "cancel" + +#: ../guvcview/gui_gtk3_callbacks.c:1170 +msgid "" +"launch new process or restart?.\n" +"\n" +msgstr "" +"launch new process or restart?.\n" +"\n" + +#: ../guvcview/gui_gtk3_callbacks.c:1751 +#, fuzzy +msgid "video codec values" +msgstr "audio codec values" + +#: ../guvcview/gui_gtk3_callbacks.c:1754 +msgid "_OK" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:1760 +msgid "" +" encoder fps: \n" +" (0 - use fps combobox value)" +msgstr "" +" encoder fps: \n" +" (0 - use fps combobox value)" + +#: ../guvcview/gui_gtk3_callbacks.c:1773 +msgid " monotonic pts" +msgstr " monotonic pts" + +#. bit rate +#: ../guvcview/gui_gtk3_callbacks.c:1780 ../guvcview/gui_gtk3_callbacks.c:2105 +msgid "bit rate: " +msgstr "bit rate: " + +#: ../guvcview/gui_gtk3_callbacks.c:1793 +msgid "qmax: " +msgstr "qmax: " + +#: ../guvcview/gui_gtk3_callbacks.c:1806 +msgid "qmin: " +msgstr "qmin: " + +#: ../guvcview/gui_gtk3_callbacks.c:1819 +msgid "max. qdiff: " +msgstr "max. qdiff: " + +#: ../guvcview/gui_gtk3_callbacks.c:1832 +msgid "dia size: " +msgstr "dia size: " + +#: ../guvcview/gui_gtk3_callbacks.c:1845 +msgid "pre dia size: " +msgstr "pre dia size: " + +#: ../guvcview/gui_gtk3_callbacks.c:1858 +msgid "pre me: " +msgstr "pre me: " + +#: ../guvcview/gui_gtk3_callbacks.c:1871 +msgid "pre cmp: " +msgstr "pre cmp: " + +#: ../guvcview/gui_gtk3_callbacks.c:1884 +msgid "cmp: " +msgstr "cmp: " + +#: ../guvcview/gui_gtk3_callbacks.c:1897 +msgid "sub cmp: " +msgstr "sub cmp: " + +#: ../guvcview/gui_gtk3_callbacks.c:1910 +msgid "last predictor count: " +msgstr "last predictor count: " -#: ../src/video_tab.c:271 -msgid "Camera Output:" -msgstr "Camera Output:" +#: ../guvcview/gui_gtk3_callbacks.c:1923 +msgid "gop size: " +msgstr "gop size: " -#: ../src/video_tab.c:293 -msgid "Apply" -msgstr "Apply" +#: ../guvcview/gui_gtk3_callbacks.c:1936 +msgid "qcompress: " +msgstr "qcompress: " -#: ../src/video_tab.c:300 -msgid "Quality:" -msgstr "Quality:" +#: ../guvcview/gui_gtk3_callbacks.c:1949 +msgid "qblur: " +msgstr "qblur: " -#: ../src/video_tab.c:310 -msgid "---- Video Filters ----" -msgstr "---- Video Filters ----" +#: ../guvcview/gui_gtk3_callbacks.c:1962 +msgid "subq: " +msgstr "subq: " -#. Mirror -#: ../src/video_tab.c:329 -msgid " Mirror" -msgstr " Mirror" +#: ../guvcview/gui_gtk3_callbacks.c:1975 +msgid "framerefs: " +msgstr "framerefs: " -#. Upturn -#: ../src/video_tab.c:340 -msgid " Invert" -msgstr " Invert" +#: ../guvcview/gui_gtk3_callbacks.c:1988 +msgid "me method: " +msgstr "me method: " -#. Negate -#: ../src/video_tab.c:351 -msgid " Negative" -msgstr " Negative" +#: ../guvcview/gui_gtk3_callbacks.c:2001 +msgid "mb decision: " +msgstr "mb decision: " -#. Mono -#: ../src/video_tab.c:362 -msgid " Mono" -msgstr " Mono" +#: ../guvcview/gui_gtk3_callbacks.c:2014 +msgid "max B frames: " +msgstr "max B frames: " -#. Pieces -#: ../src/video_tab.c:374 -msgid " Pieces" -msgstr " Pieces" +#: ../guvcview/gui_gtk3_callbacks.c:2027 +msgid "num threads: " +msgstr "num threads: " -#. Particles -#: ../src/video_tab.c:386 -msgid " Particles" -msgstr " Particles" +#: ../guvcview/gui_gtk3_callbacks.c:2094 +msgid "audio codec values" +msgstr "audio codec values" -#: ../src/uvc_h264.c:596 -msgid "H264 Controls" -msgstr "" +#. sample format +#: ../guvcview/gui_gtk3_callbacks.c:2119 +msgid "sample format: " +msgstr "sample format: " -#: ../src/uvc_h264.c:615 +#: ../guvcview/gui_gtk3_h264ctrls.c:622 +#, fuzzy msgid "Rate Control Mode:" -msgstr "" +msgstr "Image Controls" -#: ../src/uvc_h264.c:626 +#: ../guvcview/gui_gtk3_h264ctrls.c:633 msgid "CBR" msgstr "" -#: ../src/uvc_h264.c:629 +#: ../guvcview/gui_gtk3_h264ctrls.c:636 msgid "VBR" msgstr "" -#: ../src/uvc_h264.c:633 +#: ../guvcview/gui_gtk3_h264ctrls.c:640 msgid "Constant QP" msgstr "" -#: ../src/uvc_h264.c:651 +#: ../guvcview/gui_gtk3_h264ctrls.c:658 msgid "Rate Control Mode flags:" msgstr "" -#: ../src/uvc_h264.c:676 +#: ../guvcview/gui_gtk3_h264ctrls.c:683 msgid "Temporal Scale Mode:" msgstr "" -#: ../src/uvc_h264.c:704 +#: ../guvcview/gui_gtk3_h264ctrls.c:711 msgid "Spatial Scale Mode:" msgstr "" -#: ../src/uvc_h264.c:737 +#: ../guvcview/gui_gtk3_h264ctrls.c:741 msgid "Frame Interval (100ns units):" msgstr "" -#: ../src/uvc_h264.c:772 +#: ../guvcview/gui_gtk3_h264ctrls.c:778 +#, fuzzy msgid "Bit Rate:" -msgstr "" +msgstr "bit rate: " -#: ../src/uvc_h264.c:795 +#: ../guvcview/gui_gtk3_h264ctrls.c:801 msgid "Hints:" msgstr "" -#: ../src/uvc_h264.c:800 +#: ../guvcview/gui_gtk3_h264ctrls.c:806 +#, fuzzy msgid "Resolution" -msgstr "" +msgstr "Resolution:" -#: ../src/uvc_h264.c:804 +#: ../guvcview/gui_gtk3_h264ctrls.c:810 +#, fuzzy msgid "Profile" -msgstr "" +msgstr "Save Profile" -#: ../src/uvc_h264.c:808 +#: ../guvcview/gui_gtk3_h264ctrls.c:814 +#, fuzzy msgid "Rate Control" -msgstr "" +msgstr "Image Controls" -#: ../src/uvc_h264.c:812 +#: ../guvcview/gui_gtk3_h264ctrls.c:818 msgid "Usage Type" msgstr "" -#: ../src/uvc_h264.c:816 +#: ../guvcview/gui_gtk3_h264ctrls.c:822 msgid "Slice Mode" msgstr "" -#: ../src/uvc_h264.c:820 +#: ../guvcview/gui_gtk3_h264ctrls.c:826 msgid "Slice Unit" msgstr "" -#: ../src/uvc_h264.c:824 +#: ../guvcview/gui_gtk3_h264ctrls.c:830 msgid "MVC View" msgstr "" -#: ../src/uvc_h264.c:828 +#: ../guvcview/gui_gtk3_h264ctrls.c:834 msgid "Temporal Scale" msgstr "" -#: ../src/uvc_h264.c:832 +#: ../guvcview/gui_gtk3_h264ctrls.c:838 msgid "SNR Scale" msgstr "" -#: ../src/uvc_h264.c:836 +#: ../guvcview/gui_gtk3_h264ctrls.c:842 msgid "Spatial Scale" msgstr "" -#: ../src/uvc_h264.c:840 +#: ../guvcview/gui_gtk3_h264ctrls.c:846 msgid "Spatial Layer Ratio" msgstr "" -#: ../src/uvc_h264.c:844 +#: ../guvcview/gui_gtk3_h264ctrls.c:850 +#, fuzzy msgid "Frame Interval" -msgstr "" +msgstr "Frame Rate:" -#: ../src/uvc_h264.c:848 +#: ../guvcview/gui_gtk3_h264ctrls.c:854 msgid "Leaky Bucket Size" msgstr "" -#: ../src/uvc_h264.c:852 +#: ../guvcview/gui_gtk3_h264ctrls.c:858 msgid "Bit Rate" msgstr "" -#: ../src/uvc_h264.c:856 ../src/uvc_h264.c:1250 +#: ../guvcview/gui_gtk3_h264ctrls.c:862 ../guvcview/gui_gtk3_h264ctrls.c:1220 msgid "CABAC" msgstr "" -#: ../src/uvc_h264.c:860 +#: ../guvcview/gui_gtk3_h264ctrls.c:866 msgid "(I) Frame Period" msgstr "" -#: ../src/uvc_h264.c:907 +#: ../guvcview/gui_gtk3_h264ctrls.c:878 msgid "Slice Mode:" msgstr "" -#: ../src/uvc_h264.c:914 +#: ../guvcview/gui_gtk3_h264ctrls.c:885 msgid "no multiple slices" msgstr "" -#: ../src/uvc_h264.c:916 +#: ../guvcview/gui_gtk3_h264ctrls.c:887 msgid "bits/slice" msgstr "" -#: ../src/uvc_h264.c:918 +#: ../guvcview/gui_gtk3_h264ctrls.c:889 msgid "Mbits/slice" msgstr "" -#: ../src/uvc_h264.c:920 +#: ../guvcview/gui_gtk3_h264ctrls.c:891 msgid "slices/frame" msgstr "" -#: ../src/uvc_h264.c:929 +#: ../guvcview/gui_gtk3_h264ctrls.c:900 msgid "Slice Units:" msgstr "" -#: ../src/uvc_h264.c:950 +#: ../guvcview/gui_gtk3_h264ctrls.c:921 +#, fuzzy msgid "Profile:" -msgstr "" +msgstr "Save Profile" -#: ../src/uvc_h264.c:957 +#: ../guvcview/gui_gtk3_h264ctrls.c:928 +#, fuzzy msgid "Baseline Profile" -msgstr "" +msgstr "Save Profile" -#: ../src/uvc_h264.c:959 +#: ../guvcview/gui_gtk3_h264ctrls.c:930 +#, fuzzy msgid "Main Profile" -msgstr "" +msgstr "Save Profile" -#: ../src/uvc_h264.c:961 +#: ../guvcview/gui_gtk3_h264ctrls.c:932 +#, fuzzy msgid "High Profile" -msgstr "" +msgstr "Save Profile" -#: ../src/uvc_h264.c:963 +#: ../guvcview/gui_gtk3_h264ctrls.c:934 msgid "Scalable Baseline Profile" msgstr "" -#: ../src/uvc_h264.c:965 +#: ../guvcview/gui_gtk3_h264ctrls.c:936 +#, fuzzy msgid "Scalable High Profile" -msgstr "" +msgstr "Save Profile" -#: ../src/uvc_h264.c:967 +#: ../guvcview/gui_gtk3_h264ctrls.c:938 msgid "Multiview High Profile" msgstr "" -#: ../src/uvc_h264.c:969 +#: ../guvcview/gui_gtk3_h264ctrls.c:940 +#, fuzzy msgid "Stereo High Profile" -msgstr "" +msgstr "Save Profile" -#: ../src/uvc_h264.c:1008 +#: ../guvcview/gui_gtk3_h264ctrls.c:979 msgid "Profile flags:" msgstr "" -#: ../src/uvc_h264.c:1033 +#: ../guvcview/gui_gtk3_h264ctrls.c:1004 msgid "(I) Frame Period (ms):" msgstr "" -#: ../src/uvc_h264.c:1054 +#: ../guvcview/gui_gtk3_h264ctrls.c:1025 msgid "Estimated Video Delay (ms):" msgstr "" -#: ../src/uvc_h264.c:1075 +#: ../guvcview/gui_gtk3_h264ctrls.c:1046 msgid "Estimated Max Config Delay (ms):" msgstr "" -#: ../src/uvc_h264.c:1096 +#: ../guvcview/gui_gtk3_h264ctrls.c:1067 msgid "Usage Type:" msgstr "" -#: ../src/uvc_h264.c:1103 +#: ../guvcview/gui_gtk3_h264ctrls.c:1074 msgid "Real-time" msgstr "" -#: ../src/uvc_h264.c:1105 +#: ../guvcview/gui_gtk3_h264ctrls.c:1076 msgid "Broadcast" msgstr "" -#: ../src/uvc_h264.c:1107 +#: ../guvcview/gui_gtk3_h264ctrls.c:1078 msgid "Storage" msgstr "" -#: ../src/uvc_h264.c:1109 +#: ../guvcview/gui_gtk3_h264ctrls.c:1080 msgid "(0) Non-scalable single layer AVC" msgstr "" -#: ../src/uvc_h264.c:1111 +#: ../guvcview/gui_gtk3_h264ctrls.c:1082 msgid "(1) SVC temporal scalability with hierarchical P" msgstr "" -#: ../src/uvc_h264.c:1113 +#: ../guvcview/gui_gtk3_h264ctrls.c:1084 msgid "(2q) SVC temporal scalability + Quality/SNR scalability" msgstr "" -#: ../src/uvc_h264.c:1115 +#: ../guvcview/gui_gtk3_h264ctrls.c:1086 msgid "(2s) SVC temporal scalability + spatial scalability" msgstr "" -#: ../src/uvc_h264.c:1117 +#: ../guvcview/gui_gtk3_h264ctrls.c:1088 msgid "(3) Full SVC scalability" msgstr "" -#: ../src/uvc_h264.c:1131 +#: ../guvcview/gui_gtk3_h264ctrls.c:1102 msgid "SNR Control Mode:" msgstr "" -#: ../src/uvc_h264.c:1138 +#: ../guvcview/gui_gtk3_h264ctrls.c:1109 msgid "No SNR Enhancement Layer" msgstr "" -#: ../src/uvc_h264.c:1140 +#: ../guvcview/gui_gtk3_h264ctrls.c:1111 msgid "CGS NonRewrite (2 Layer)" msgstr "" -#: ../src/uvc_h264.c:1142 +#: ../guvcview/gui_gtk3_h264ctrls.c:1113 msgid "CGS NonRewrite (3 Layer)" msgstr "" -#: ../src/uvc_h264.c:1144 +#: ../guvcview/gui_gtk3_h264ctrls.c:1115 msgid "CGS Rewrite (2 Layer)" msgstr "" -#: ../src/uvc_h264.c:1146 +#: ../guvcview/gui_gtk3_h264ctrls.c:1117 msgid "CGS Rewrite (3 Layer)" msgstr "" -#: ../src/uvc_h264.c:1148 +#: ../guvcview/gui_gtk3_h264ctrls.c:1119 msgid "MGS (2 Layer)" msgstr "" -#: ../src/uvc_h264.c:1173 +#: ../guvcview/gui_gtk3_h264ctrls.c:1144 msgid "Stream Mux Enable" msgstr "" -#: ../src/uvc_h264.c:1180 +#: ../guvcview/gui_gtk3_h264ctrls.c:1151 msgid "Embed H.264 aux stream" msgstr "" -#: ../src/uvc_h264.c:1182 +#: ../guvcview/gui_gtk3_h264ctrls.c:1153 msgid "Embed YUY2 aux stream" msgstr "" -#: ../src/uvc_h264.c:1184 +#: ../guvcview/gui_gtk3_h264ctrls.c:1155 msgid "Embed NV12 aux stream" msgstr "" -#: ../src/uvc_h264.c:1204 +#: ../guvcview/gui_gtk3_h264ctrls.c:1175 msgid "MJPG payload container" msgstr "" -#: ../src/uvc_h264.c:1219 +#: ../guvcview/gui_gtk3_h264ctrls.c:1189 +#, fuzzy msgid "Stream Format:" -msgstr "" +msgstr "File Format:" -#: ../src/uvc_h264.c:1227 +#: ../guvcview/gui_gtk3_h264ctrls.c:1197 msgid "Byte stream format (H.264 Annex-B)" msgstr "" -#: ../src/uvc_h264.c:1229 +#: ../guvcview/gui_gtk3_h264ctrls.c:1199 +#, fuzzy msgid "NAL stream format" -msgstr "" +msgstr "AVI - avi format" -#: ../src/uvc_h264.c:1240 +#: ../guvcview/gui_gtk3_h264ctrls.c:1210 msgid "Entropy CABAC:" msgstr "" -#: ../src/uvc_h264.c:1248 +#: ../guvcview/gui_gtk3_h264ctrls.c:1218 msgid "CAVLC" msgstr "" -#: ../src/uvc_h264.c:1261 +#: ../guvcview/gui_gtk3_h264ctrls.c:1231 msgid "Picture timing SEI" msgstr "" -#: ../src/uvc_h264.c:1268 +#: ../guvcview/gui_gtk3_h264ctrls.c:1238 +#, fuzzy msgid "B Frames:" -msgstr "" +msgstr "max B frames: " -#: ../src/uvc_h264.c:1293 +#: ../guvcview/gui_gtk3_h264ctrls.c:1263 msgid "Preview Flipped" msgstr "" -#: ../src/uvc_h264.c:1300 +#: ../guvcview/gui_gtk3_h264ctrls.c:1270 msgid "Additional MVC Views:" msgstr "" -#: ../src/uvc_h264.c:1325 +#: ../guvcview/gui_gtk3_h264ctrls.c:1295 msgid "Simulcast stream index:" msgstr "" -#: ../src/uvc_h264.c:1350 +#: ../guvcview/gui_gtk3_h264ctrls.c:1320 msgid "Spatial Layer Ratio:" msgstr "" -#: ../src/uvc_h264.c:1379 +#: ../guvcview/gui_gtk3_h264ctrls.c:1349 msgid "Leaky Bucket Size (ms):" msgstr "" #. encoder reset -#: ../src/uvc_h264.c:1406 +#: ../guvcview/gui_gtk3_h264ctrls.c:1376 +#, fuzzy msgid "Encoder Reset" -msgstr "" +msgstr "Pan Reset" -#. -#. h264_controls->probe_button = gtk_button_new_with_label(_("PROBE")); -#. g_signal_connect (GTK_BUTTON(h264_controls->probe_button), "clicked", +#. +#. GtkWidget *probe_button = gtk_button_new_with_label(_("PROBE")); +#. g_signal_connect (GTK_BUTTON(probe_button), "clicked", #. G_CALLBACK (h264_probe_button_clicked), all_data); -#. -#. gtk_grid_attach (GTK_GRID(table), h264_controls->probe_button, 0, line, 1 ,1); -#. gtk_widget_show(h264_controls->probe_button); -#. -#: ../src/uvc_h264.c:1421 +#. +#. gtk_grid_attach (GTK_GRID(h264_controls_grid), probe_button, 0, line, 1 ,1); +#. gtk_widget_show(probe_button); +#. +#: ../guvcview/gui_gtk3_h264ctrls.c:1391 msgid "COMMIT" msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:70 +msgid "Settings" +msgstr "Settings" + +#: ../guvcview/gui_gtk3_menu.c:73 +msgid "Hardware Defaults" +msgstr "Hardware Defaults" + +#: ../guvcview/gui_gtk3_menu.c:81 +msgid "Camera Button" +msgstr "Camera Button" + +#: ../guvcview/gui_gtk3_menu.c:86 +msgid "Capture Image" +msgstr "Capture Image" + +#: ../guvcview/gui_gtk3_menu.c:91 +msgid "Capture Video" +msgstr "Capture Video" + +#: ../guvcview/gui_gtk3_menu.c:134 +msgid "Photo" +msgstr "Photo" + +#: ../guvcview/gui_gtk3_menu.c:135 ../guvcview/gui_gtk3_menu.c:159 +msgid "File" +msgstr "File" + +#: ../guvcview/gui_gtk3_menu.c:136 ../guvcview/gui_gtk3_menu.c:160 +msgid "Increment Filename" +msgstr "Increment Filename" + +#: ../guvcview/gui_gtk3_menu.c:158 +msgid "Video" +msgstr "Video" + +#: ../guvcview/gui_gtk3_menu.c:175 +msgid "Video Codec" +msgstr "Video Codec" + +#: ../guvcview/gui_gtk3_menu.c:202 +msgid "Video Codec Properties" +msgstr "Video Codec Properties" + +#: ../guvcview/gui_gtk3_menu.c:208 +msgid "Audio Codec" +msgstr "Audio Codec" + +#: ../guvcview/gui_gtk3_menu.c:235 +msgid "Audio Codec Properties" +msgstr "Audio Codec Properties" + +#: ../guvcview/gui_gtk3_v4l2ctrls.c:174 +msgid "Left" +msgstr "Left" + +#: ../guvcview/gui_gtk3_v4l2ctrls.c:175 +msgid "Right" +msgstr "Right" + +#: ../guvcview/gui_gtk3_v4l2ctrls.c:179 +msgid "Down" +msgstr "Down" + +#: ../guvcview/gui_gtk3_v4l2ctrls.c:180 +msgid "Up" +msgstr "Up" + +#. turn it into a menu control +#: ../guvcview/gui_gtk3_v4l2ctrls.c:296 +msgid "8 bit" +msgstr "8 bit" + +#: ../guvcview/gui_gtk3_v4l2ctrls.c:296 +msgid "12 bit" +msgstr "12 bit" + +#. add a virtual control for software autofocus +#: ../guvcview/gui_gtk3_v4l2ctrls.c:348 +msgid "Auto Focus (continuous)" +msgstr "Auto Focus (continuous)" + +#: ../guvcview/gui_gtk3_v4l2ctrls.c:349 +msgid "set Focus" +msgstr "set Focus" + +#. control_widgets_list[n].widget2 = gtk_button_new_from_stock(GTK_STOCK_APPLY); +#. control_widgets_list[n].widget2= gtk_button_new_from_stock(GTK_STOCK_APPLY); +#. control_widgets_list[n].widget2 = gtk_button_new_from_stock(GTK_STOCK_APPLY); +#: ../guvcview/gui_gtk3_v4l2ctrls.c:433 ../guvcview/gui_gtk3_v4l2ctrls.c:456 +#: ../guvcview/gui_gtk3_v4l2ctrls.c:478 +#, fuzzy +msgid "_Apply" +msgstr "Apply" + +#: ../guvcview/gui_gtk3_videoctrls.c:144 +msgid "Frame Rate:" +msgstr "Frame Rate:" + +#: ../guvcview/gui_gtk3_videoctrls.c:204 +msgid "Resolution:" +msgstr "Resolution:" + +#: ../guvcview/gui_gtk3_videoctrls.c:254 +msgid "Camera Output:" +msgstr "Camera Output:" + +#: ../guvcview/gui_gtk3_videoctrls.c:287 +msgid "---- Video Filters ----" +msgstr "---- Video Filters ----" + +#. Mirror FX +#: ../guvcview/gui_gtk3_videoctrls.c:307 +msgid " Mirror" +msgstr " Mirror" + +#. Upturn FX +#: ../guvcview/gui_gtk3_videoctrls.c:319 +msgid " Invert" +msgstr " Invert" + +#. Negate FX +#: ../guvcview/gui_gtk3_videoctrls.c:331 +msgid " Negative" +msgstr " Negative" + +#. Mono FX +#: ../guvcview/gui_gtk3_videoctrls.c:343 +msgid " Mono" +msgstr " Mono" + +#. Pieces FX +#: ../guvcview/gui_gtk3_videoctrls.c:356 +msgid " Pieces" +msgstr " Pieces" + +#. Particles +#: ../guvcview/gui_gtk3_videoctrls.c:369 +msgid " Particles" +msgstr " Particles" + +#: ../guvcview/options.c:51 +msgid "Print help" +msgstr "" + +#: ../guvcview/options.c:58 +#, fuzzy +msgid "Print version" +msgstr "Prints version" + +#: ../guvcview/options.c:64 +msgid "LEVEL" +msgstr "" + +#: ../guvcview/options.c:65 +msgid "Set Verbosity level (def: 0)" +msgstr "" + +#: ../guvcview/options.c:71 +msgid "DEVICE" +msgstr "" + +#: ../guvcview/options.c:72 +#, fuzzy +msgid "Set device name (def: /dev/video0)" +msgstr "Video Device to use [default: /dev/video0]" + +#: ../guvcview/options.c:78 +msgid "METHOD" +msgstr "" + +#: ../guvcview/options.c:79 +#, fuzzy +msgid "Set capture method [read | mmap (def)]" +msgstr "Capture method (1-mmap (default) 2-read)" + +#: ../guvcview/options.c:85 +msgid "WIDTHxHEIGHT" +msgstr "" + +#: ../guvcview/options.c:86 +msgid "Request resolution (e.g 640x480)" +msgstr "" + +#: ../guvcview/options.c:92 +msgid "FOURCC" +msgstr "" + +#: ../guvcview/options.c:93 +msgid "Request format (e.g MJPG)" +msgstr "" + +#: ../guvcview/options.c:99 +msgid "RENDER_API" +msgstr "" + +#: ../guvcview/options.c:100 +msgid "Select render API (e.g none; sdl)" +msgstr "" + +#: ../guvcview/options.c:106 +msgid "AUDIO_API" +msgstr "" + +#: ../guvcview/options.c:107 +msgid "Select audio API (e.g none; port; pulse)" +msgstr "" + +#: ../guvcview/options.c:113 +msgid "AUDIO_DEVICE" +msgstr "" + +#: ../guvcview/options.c:114 +msgid "Select audio device index for selected api (0..N)" +msgstr "" + +#: ../guvcview/options.c:120 +msgid "GUI_API" +msgstr "" + +#: ../guvcview/options.c:121 +msgid "Select GUI API (e.g none; gtk3)" +msgstr "" + +#: ../guvcview/options.c:127 ../guvcview/options.c:134 +msgid "CODEC" +msgstr "" + +#: ../guvcview/options.c:128 +msgid "Audio codec [pcm mp2 mp3 aac ac3 vorb]" +msgstr "" + +#: ../guvcview/options.c:135 +msgid "Video codec [raw mjpg mpeg flv1 wmv1 mpg2 mp43 dx50 h264 vp80 theo]" +msgstr "" + +#: ../guvcview/options.c:141 ../guvcview/options.c:148 +#: ../guvcview/options.c:155 +msgid "FILENAME" +msgstr "" + +#: ../guvcview/options.c:142 +#, fuzzy +msgid "load control profile" +msgstr "Load Profile" + +#: ../guvcview/options.c:149 +msgid "filename for captured video)" +msgstr "" + +#: ../guvcview/options.c:156 +msgid "filename for captured image)" +msgstr "" + +#: ../guvcview/options.c:162 ../guvcview/options.c:169 +msgid "TIME_IN_SEC" +msgstr "" + +#: ../guvcview/options.c:163 +msgid "time (double) in sec. for video capture)" +msgstr "" + +#: ../guvcview/options.c:170 +msgid "time (double) in sec. between captured photos)" +msgstr "" + +#: ../guvcview/options.c:176 +msgid "TOTAL" +msgstr "" + +#: ../guvcview/options.c:177 +msgid "total number of captured photos)" +msgstr "" + +#: ../guvcview/options.c:184 +msgid "Start in control panel mode" +msgstr "" + +#: ../guvcview/options.c:307 +#, fuzzy, c-format +msgid "" +"Guvcview version %s\n" +"\n" +msgstr "Guvcview Warning:" + +#: ../guvcview/options.c:308 +#, c-format +msgid "" +"Usage:\n" +" guvcview [OPTIONS]\n" +"\n" +msgstr "" + +#: ../guvcview/options.c:309 +#, c-format +msgid "OPTIONS:\n" +msgstr "" + +#: ../guvcview/video_capture.c:819 +#, fuzzy, c-format +msgid "saving video to %s" +msgstr "capturing video to" + +#. if(debug_level > 1) +#. printf("GUVCVIEW: saving image to %s\n", img_filename); +#: ../guvcview/video_capture.c:1069 +#, c-format +msgid "saving image to %s" +msgstr "" + +#~ msgid "MPEG2 - (lavc)" +#~ msgstr "MPEG2 - (lavc)" + +#~ msgid "MP3 - (lavc)" +#~ msgstr "MP3 - (lavc)" + +#~ msgid "Dolby AC3 - (lavc)" +#~ msgstr "Dolby AC3 - (lavc)" + +#~ msgid "ACC Low - (faac)" +#~ msgstr "ACC Low - (faac)" + +#~ msgid "Audio" +#~ msgstr "Audio" + +#~ msgid " Sound" +#~ msgstr " Sound" + +#~ msgid " Show VU meter" +#~ msgstr " Show VU meter" + +#~ msgid "---- Audio Effects ----" +#~ msgstr "---- Audio Effects ----" + +#~ msgid "Save File" +#~ msgstr "Save File" + +#~ msgid "codec values" +#~ msgstr "codec values" + +#~ msgid "capturing photo to" +#~ msgstr "capturing photo to" + +#~ msgid "Cap. Video" +#~ msgstr "Cap. Video" + +#~ msgid "GUVCViewer Controls" +#~ msgstr "GUVCViewer Controls" + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to open device" +#~ msgstr "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to open device" + +#~ msgid "" +#~ "Please make sure the camera is connected\n" +#~ "and that the correct driver is installed." +#~ msgstr "" +#~ "Please make sure the camera is connected\n" +#~ "and that the correct driver is installed." + +#~ msgid "" +#~ "Guvcview:\n" +#~ "\n" +#~ "UVC Extension controls" +#~ msgstr "" +#~ "Guvcview:\n" +#~ "\n" +#~ "UVC Extension controls" + +#~ msgid "Extension controls were added to the UVC driver" +#~ msgstr "Extension controls were added to the UVC driver" + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "UVC Extension controls" +#~ msgstr "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "UVC Extension controls" + +#~ msgid "" +#~ "An error occurred while adding extension\n" +#~ "controls to the UVC driver\n" +#~ "Make sure you run guvcview as root (or sudo)." +#~ msgstr "" +#~ "An error occurred while adding extension\n" +#~ "controls to the UVC driver\n" +#~ "Make sure you run guvcview as root (or sudo)." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Can't set a valid video stream for guvcview" +#~ msgstr "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Can't set a valid video stream for guvcview" + +#~ msgid "" +#~ "Make sure your device driver is v4l2 compliant\n" +#~ "and that it is properly installed." +#~ msgstr "" +#~ "Make sure your device driver is v4l2 compliant\n" +#~ "and that it is properly installed." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to start with minimum setup" +#~ msgstr "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to start with minimum setup" + +#~ msgid "Please reconnect your camera." +#~ msgstr "Please reconnect your camera." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Couldn't query device capabilities" +#~ msgstr "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Couldn't query device capabilities" + +#~ msgid "Make sure the device driver supports v4l2." +#~ msgstr "Make sure the device driver supports v4l2." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Read method error" +#~ msgstr "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Read method error" + +#~ msgid "Please try mmap instead (--capture_method=1)." +#~ msgstr "Please try mmap instead (--capture_method=1)." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to allocate Buffers" +#~ msgstr "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to allocate Buffers" + +#~ msgid "Please try restarting your system." +#~ msgstr "Please try restarting your system." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to create Video Thread" +#~ msgstr "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to create Video Thread" + +#~ msgid "Please report it to http://developer.berlios.de/bugs/?group_id=8179" +#~ msgstr "Please report it to http://developer.berlios.de/bugs/?group_id=8179" + +#~ msgid "Bitmap (Bmp)" +#~ msgstr "Bitmap (Bmp)" + +#~ msgid "Portable Network Graphics (Png)" +#~ msgstr "Portable Network Graphics (Png)" + +#~ msgid "Displays debug information" +#~ msgstr "Displays debug information" + +#~ msgid "Exit after adding UVC extension controls (needs root/sudo)" +#~ msgstr "Exit after adding UVC extension controls (needs root/sudo)" + +#~ msgid "Don't stream video (image controls only)" +#~ msgstr "Don't stream video (image controls only)" + +#~ msgid "Don't display a GUI" +#~ msgstr "Don't display a GUI" + +#~ msgid "Configuration file" +#~ msgstr "Configuration file" + +#~ msgid "Hardware accelaration (enable(1) | disable(0))" +#~ msgstr "Hardware accelaration (enable(1) | disable(0))" + +#~ msgid "" +#~ "Pixel format(mjpg|jpeg|yuyv|yvyu|uyvy|yyuv|yu12|yv12|nv12|nv21|nv16|nv61|" +#~ "y41p|grey|y10b|y16 |s501|s505|s508|gbrg|grbg|ba81|rggb|bgr3|rgb3)" +#~ msgstr "" +#~ "Pixel format(mjpg|jpeg|yuyv|yvyu|uyvy|yyuv|yu12|yv12|nv12|nv21|nv16|nv61|" +#~ "y41p|grey|y10b|y16 |s501|s505|s508|gbrg|grbg|ba81|rggb|bgr3|rgb3)" + +#~ msgid "Frame size, default: 640x480" +#~ msgstr "Frame size, default: 640x480" + +#~ msgid "Image capture interval in seconds" +#~ msgstr "Image capture interval in seconds" + +#~ msgid "Number of Pictures to capture" +#~ msgstr "Number of Pictures to capture" + +#~ msgid "Video File name (capture from start)" +#~ msgstr "Video File name (capture from start)" + +#~ msgid "Video capture time (in seconds)" +#~ msgstr "Video capture time (in seconds)" + +#~ msgid "Exits guvcview after closing video" +#~ msgstr "Exits guvcview after closing video" + +#~ msgid "Number of initial frames to skip" +#~ msgstr "Number of initial frames to skip" + +#~ msgid "Show FPS value (enable(1) | disable (0))" +#~ msgstr "Show FPS value (enable(1) | disable (0))" + +#~ msgid "Load Profile at start" +#~ msgstr "Load Profile at start" + +#~ msgid "- local options" +#~ msgstr "- local options" + +#~ msgid "Cap. Image" +#~ msgstr "Cap. Image" + +#~ msgid "Not enough free space left on disk" +#~ msgstr "Not enough free space left on disk" + +#~ msgid "YUY2 - uncomp YUV" +#~ msgstr "YUY2 - uncomp YUV" + +#~ msgid "RGB - uncomp BMP" +#~ msgstr "RGB - uncomp BMP" + +#~ msgid "MKV - Matroska format" +#~ msgstr "MKV - Matroska format" + +#~ msgid "WEBM - format" +#~ msgstr "WEBM - format" + +#~ msgid " Show" +#~ msgstr " Show" + +#~ msgid "Quality:" +#~ msgstr "Quality:" diff -Nru guvcview-1.7.3/po/es.po guvcview-2.0.1+ubuntu1~ppa1/po/es.po --- guvcview-1.7.3/po/es.po 2014-03-24 22:56:28.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/po/es.po 2014-10-05 10:41:44.000000000 +0000 @@ -9,1411 +9,1613 @@ msgstr "" "Project-Id-Version: es\n" "Report-Msgid-Bugs-To: pj.assis@gmail.com\n" -"POT-Creation-Date: 2013-11-14 22:15+0000\n" +"POT-Creation-Date: 2014-08-17 22:49+0100\n" "PO-Revision-Date: 2013-02-25 05:38+0000\n" "Last-Translator: Adolfo Jayme \n" "Language-Team: Portuguese \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-12-08 10:36+0000\n" -"X-Generator: Launchpad (build 16869)\n" -"Language: pt\n" - -#: ../data/guvcview.desktop.in.in.h:1 -msgid "guvcview" -msgstr "guvcview" - -#: ../data/guvcview.desktop.in.in.h:2 -msgid "GTK UVC video viewer" -msgstr "Reproductor video GTK UVC" - -#: ../data/guvcview.desktop.in.in.h:3 -msgid "A video viewer and capturer for the linux uvc driver" -msgstr "" -"Un reproductor y capturador de vĂ­deo para el controlador uvc de Linux" - -#: ../src/acodecs.c:59 -msgid "PCM - uncompressed (16 bit)" -msgstr "PCM - sin compresiĂłn (16 bit)" - -#: ../src/acodecs.c:76 -msgid "MPEG2 - (lavc)" -msgstr "MPEG2 - (lavc)" - -#: ../src/acodecs.c:93 -msgid "MP3 - (lavc)" -msgstr "MP3 - (lavc)" - -#: ../src/acodecs.c:110 -msgid "Dolby AC3 - (lavc)" -msgstr "Dolby AC3 - (lavc)" - -#: ../src/acodecs.c:127 -msgid "ACC Low - (faac)" -msgstr "ACC Low - (faac)" - -#: ../src/acodecs.c:144 -msgid "Vorbis" -msgstr "" - -#: ../src/audio_tab.c:87 -msgid "Audio" -msgstr "Audio" - -#: ../src/audio_tab.c:105 -msgid " Sound" -msgstr " Sonido" - -#. VU meter on the image (OSD) -#: ../src/audio_tab.c:116 -msgid " Show VU meter" -msgstr "" - -#: ../src/audio_tab.c:128 -msgid "Audio API:" -msgstr "Audio API" - -#: ../src/audio_tab.c:139 -msgid "PORTAUDIO" -msgstr "PORTAUDIO" - -#: ../src/audio_tab.c:140 -msgid "PULSEAUDIO" -msgstr "PULSEAUDIO" - -#: ../src/audio_tab.c:156 ../src/audio_tab.c:179 -msgid "Input Device:" -msgstr "Dispositivo de entrada:" - -#: ../src/audio_tab.c:189 ../src/audio_tab.c:221 -msgid "Dev. Default" -msgstr "AutomĂĄtico" - -#: ../src/audio_tab.c:211 -msgid "Sample Rate:" -msgstr "Sample Rate:" - -#: ../src/audio_tab.c:222 -msgid "1 - mono" -msgstr "1 - mono" - -#: ../src/audio_tab.c:223 -msgid "2 - stereo" -msgstr "2 - stereo" - -#: ../src/audio_tab.c:258 -msgid "Channels:" -msgstr "Canales:" - -#: ../src/audio_tab.c:309 -msgid "---- Audio Effects ----" -msgstr "---- Efectos de Audio ----" - -#. Echo -#: ../src/audio_tab.c:328 -msgid " Echo" -msgstr " Eco" - -#. FUZZ -#: ../src/audio_tab.c:339 -msgid " Fuzz" -msgstr " Ruido" - -#. Reverb -#: ../src/audio_tab.c:351 -msgid " Reverb" -msgstr " Reverb" - -#. WahWah -#: ../src/audio_tab.c:363 -msgid " WahWah" -msgstr " WahWah" - -#. Ducky -#: ../src/audio_tab.c:375 -msgid " Ducky" -msgstr " Pato" - -#: ../src/callbacks.c:109 -msgid "Error" -msgstr "Error" - -#: ../src/callbacks.c:133 -msgid "" -"\n" -"You have more than one video device installed.\n" -"Do you want to try another one ?\n" -msgstr "" - -#. Devices -#: ../src/callbacks.c:140 ../src/video_tab.c:111 -msgid "Device:" -msgstr "Dispositivo de entrada:" - -#: ../src/callbacks.c:272 -msgid "Save File" -msgstr "Guardar Archivo" - -#: ../src/callbacks.c:284 -msgid "File Format:" -msgstr "" - -#: ../src/callbacks.c:455 -msgid "codec values" -msgstr "valores de cĂłdecs" - -#: ../src/callbacks.c:466 -msgid "" -" encoder fps: \n" -" (0 - use fps combobox value)" -msgstr "" - -#: ../src/callbacks.c:479 -msgid " monotonic pts" -msgstr "" - -#. bit rate -#: ../src/callbacks.c:486 ../src/callbacks.c:809 -msgid "bit rate: " -msgstr "media de bits: " - -#: ../src/callbacks.c:499 -msgid "qmax: " -msgstr "qmĂĄx: " - -#: ../src/callbacks.c:512 -msgid "qmin: " -msgstr "qmin: " - -#: ../src/callbacks.c:525 -msgid "max. qdiff: " -msgstr "mĂĄx. qdiff: " - -#: ../src/callbacks.c:538 -msgid "dia size: " -msgstr "tamaño dia: " - -#: ../src/callbacks.c:551 -msgid "pre dia size: " -msgstr "tamaño pre dia: " - -#: ../src/callbacks.c:564 -msgid "pre me: " -msgstr "pre me: " - -#: ../src/callbacks.c:577 -msgid "pre cmp: " -msgstr "" - -#: ../src/callbacks.c:590 -msgid "cmp: " -msgstr "cmp: " - -#: ../src/callbacks.c:603 -msgid "sub cmp: " -msgstr "" - -#: ../src/callbacks.c:616 -msgid "last predictor count: " -msgstr "" - -#: ../src/callbacks.c:629 -msgid "gop size: " -msgstr "tamaño gop: " - -#: ../src/callbacks.c:642 -msgid "qcompress: " -msgstr "" - -#: ../src/callbacks.c:655 -msgid "qblur: " -msgstr "" - -#: ../src/callbacks.c:668 -msgid "subq: " -msgstr "" - -#: ../src/callbacks.c:681 -msgid "framerefs: " -msgstr "" - -#: ../src/callbacks.c:694 -msgid "me method: " -msgstr "Metodo me " - -#: ../src/callbacks.c:707 -msgid "mb decision: " -msgstr "mb desiciĂłn " - -#: ../src/callbacks.c:720 -msgid "max B frames: " -msgstr "" - -#: ../src/callbacks.c:733 -msgid "num threads: " -msgstr "" - -#: ../src/callbacks.c:796 -msgid "audio codec values" -msgstr "valores de codec de audio" - -#. sample format -#: ../src/callbacks.c:823 -msgid "sample format: " -msgstr "" - -#: ../src/callbacks.c:1311 -msgid "start new" -msgstr "Comenzar nuevo" - -#: ../src/callbacks.c:1314 -msgid "restart" -msgstr "Recomenzar aplicaciĂłn" - -#: ../src/callbacks.c:1316 -msgid "new" -msgstr "nuevo" - -#: ../src/callbacks.c:1318 -msgid "cancel" -msgstr "cancelar" - -#: ../src/callbacks.c:1323 -msgid "" -"launch new process or restart?.\n" -"\n" -msgstr "" -"nuevo proceso o recomenzar?\n" -"\n" - -#: ../src/callbacks.c:1780 ../src/guvcview.c:565 -msgid "Cap. Image (I)" -msgstr "Cap. imagen (I)" - -#. disable image controls -#: ../src/callbacks.c:1791 ../src/guvcview.c:690 ../src/timers.c:101 -msgid "capturing photo to" -msgstr "" - -#: ../src/callbacks.c:1850 ../src/guvcview.c:575 -msgid "Cap. Video (V)" -msgstr "Cap. vĂ­deo (V)" - -#: ../src/callbacks.c:1876 ../src/guvcview.c:740 -msgid "capturing video to" -msgstr "" - -#. vid capture enabled from start -#: ../src/callbacks.c:1911 ../src/guvcview.c:570 -msgid "Stop Video (V)" -msgstr "Detener vĂ­deo (V)" - -#: ../src/callbacks.c:1967 ../src/menubar.c:66 -msgid "Save Profile" -msgstr "" - -#: ../src/callbacks.c:1980 ../src/menubar.c:65 -msgid "Load Profile" -msgstr "" - -#: ../src/create_video.c:1098 ../src/guvcview.c:732 -msgid "Cap. Video" -msgstr "Cap. vĂ­deo" - -#: ../src/guvcview.c:280 -msgid "Guvcview Video Capture" -msgstr "Captura de vĂ­deo Guvcview" - -#: ../src/guvcview.c:292 -msgid "GUVCViewer Controls" -msgstr "Controles de GUVCViewer" - -#. can't open device -#: ../src/guvcview.c:342 -msgid "" -"Guvcview error:\n" -"\n" -"Unable to open device" -msgstr "" -"Error de Guvcview:\n" -"\n" -"No se pudo abrir el dispositivo" - -#: ../src/guvcview.c:343 -msgid "" -"Please make sure the camera is connected\n" -"and that the correct driver is installed." -msgstr "" -"Por favor, verifique de que la cĂĄmara estĂ© conectada\n" -"y que se instalĂł el controlador correcto." - -#. uvc extension controls OK, give warning and shutdown (called with --add_ctrls) -#: ../src/guvcview.c:348 -msgid "" -"Guvcview:\n" -"\n" -"UVC Extension controls" -msgstr "" -"Guvcview:\n" -"\n" -"Controles de la extensiĂłn UVC" - -#: ../src/guvcview.c:349 -msgid "Extension controls were added to the UVC driver" -msgstr "Los controles de extensiĂłn se añadieron al controlador de UVC" - -#. uvc extension controls error - EACCES (needs root user) -#: ../src/guvcview.c:356 -msgid "" -"Guvcview error:\n" -"\n" -"UVC Extension controls" -msgstr "" -"Error de Guvcview:\n" -"\n" -"Controles de extensiĂłn UVC" - -#: ../src/guvcview.c:357 -msgid "" -"An error occurred while adding extension\n" -"controls to the UVC driver\n" -"Make sure you run guvcview as root (or sudo)." -msgstr "" -"OcurriĂł un error al añadir los controles\n" -"de extensiĂłn al controlador UVC\n" -"AsegĂșrese de que ejecuta guvcview como root (o sudo)." - -#: ../src/guvcview.c:391 ../src/guvcview.c:399 ../src/guvcview.c:477 -msgid "" -"Guvcview error:\n" -"\n" -"Can't set a valid video stream for guvcview" -msgstr "" -"Guvcview error:\n" -"\n" -"Incapaz de establecer video stream" - -#: ../src/guvcview.c:392 ../src/guvcview.c:400 ../src/guvcview.c:478 -msgid "" -"Make sure your device driver is v4l2 compliant\n" -"and that it is properly installed." -msgstr "" -"AsegĂșrese de que tiene un controlador v4l2\n" -"y que estĂĄ instalado." - -#: ../src/guvcview.c:422 ../src/guvcview.c:444 -msgid "" -"Guvcview error:\n" -"\n" -"Unable to start with minimum setup" -msgstr "" -"Guvcview error:\n" -"\n" -"No se pudo iniciar con la configuraciĂłn mĂ­nima" - -#: ../src/guvcview.c:423 ../src/guvcview.c:445 -msgid "Please reconnect your camera." -msgstr "Vuelva a conectar su cĂĄmara." - -#: ../src/guvcview.c:452 -msgid "" -"Guvcview error:\n" -"\n" -"Couldn't query device capabilities" -msgstr "" -"Guvcview error:\n" -"\n" -"No se pudo abrir el dispositivo" - -#: ../src/guvcview.c:453 -msgid "Make sure the device driver supports v4l2." -msgstr "AsegĂșrese de que el controlador del dispositivo soporta v4l2." - -#: ../src/guvcview.c:457 -msgid "" -"Guvcview error:\n" -"\n" -"Read method error" -msgstr "" -"Error de Guvcview:\n" -"\n" -"error de mĂ©todo Read" - -#: ../src/guvcview.c:458 -msgid "Please try mmap instead (--capture_method=1)." -msgstr "Intente, en vez de eso, mmap (--capture_method=1)." - -#: ../src/guvcview.c:466 -msgid "" -"Guvcview error:\n" -"\n" -"Unable to allocate Buffers" -msgstr "" -"Error de Guvcview:\n" -"\n" -"No se pudieron asignar bĂșferes" - -#: ../src/guvcview.c:467 -msgid "Please try restarting your system." -msgstr "Pruebe a reiniciar su sistema." - -#: ../src/guvcview.c:518 -msgid "Image Controls" -msgstr "Controles de la imagen" - -#. image auto capture -#: ../src/guvcview.c:561 -msgid "Stop Auto (I)" -msgstr "Detener auto (I)" - -#: ../src/guvcview.c:676 -msgid "" -"Guvcview error:\n" -"\n" -"Unable to create Video Thread" -msgstr "" -"Error de Guvcview:\n" -"\n" -"No se pudo crear hilo de vĂ­deo" - -#: ../src/guvcview.c:677 -msgid "Please report it to http://developer.berlios.de/bugs/?group_id=8179" -msgstr "RepĂłrtelo a http://developer.berlios.de/bugs/?group_id=8179" - -#: ../src/img_controls.c:121 -msgid "Auto Focus (continuous)" -msgstr "Foco Automatico (continuo)" - -#: ../src/img_controls.c:122 -msgid "set Focus" -msgstr "Focar" - -#: ../src/image_format.c:35 -msgid "Jpeg (jpg)" -msgstr "" - -#: ../src/image_format.c:41 -msgid "Bitmap (Bmp)" -msgstr "" - -#: ../src/image_format.c:47 -msgid "Portable Network Graphics (Png)" -msgstr "" - -#: ../src/image_format.c:53 -msgid "Raw Image (raw)" -msgstr "" - -#. controls menu -#: ../src/menubar.c:64 -msgid "Settings" -msgstr "" - -#: ../src/menubar.c:67 -msgid "Hardware Defaults" -msgstr "" - -#: ../src/menubar.c:75 -msgid "Camera Button" -msgstr "" - -#: ../src/menubar.c:79 -msgid "Capture Image" -msgstr "" - -#: ../src/menubar.c:84 -msgid "Capture Video" -msgstr "" - -#. video menu -#: ../src/menubar.c:144 ../src/video_tab.c:95 -msgid "Video" -msgstr "" - -#: ../src/menubar.c:145 ../src/menubar.c:233 -msgid "File" -msgstr "" - -#: ../src/menubar.c:146 ../src/menubar.c:234 -msgid "Increment Filename" -msgstr "" - -#: ../src/menubar.c:164 -msgid "Video Codec" -msgstr "" - -#: ../src/menubar.c:189 -msgid "Video Codec Properties" -msgstr "" - -#: ../src/menubar.c:196 -msgid "Audio Codec" -msgstr "" - -#: ../src/menubar.c:217 -msgid "Audio Codec Properties" -msgstr "" - -#. photo menu -#: ../src/menubar.c:232 -msgid "Photo" -msgstr "" - -#: ../src/options.c:753 -msgid "Prints version" -msgstr "Imprimir versiĂłn" - -#: ../src/options.c:754 -msgid "Displays debug information" -msgstr "Exhibir information de depuracion" - -#: ../src/options.c:755 -msgid "Video Device to use [default: /dev/video0]" -msgstr "Dispositivo de video [pred: /dev/video0]" - -#: ../src/options.c:756 -msgid "Exit after adding UVC extension controls (needs root/sudo)" -msgstr "" -"Salir despuĂ©s de añadir los controles de extensiĂłn UVC (requiere root/sudo)" - -#: ../src/options.c:757 -msgid "Don't stream video (image controls only)" -msgstr "No hacer streaming de vĂ­deo (sĂłlo controles)" - -#: ../src/options.c:758 -msgid "Don't display a GUI" -msgstr "No mostrar interfaz grĂĄfica" - -#: ../src/options.c:759 -msgid "Capture method (1-mmap (default) 2-read)" -msgstr "MĂ©todo de captura (1-mmap (predeterminado) 2-read)" - -#: ../src/options.c:760 -msgid "Configuration file" -msgstr "Archivo de configuraciĂłn" - -#: ../src/options.c:761 -msgid "Hardware accelaration (enable(1) | disable(0))" -msgstr "Accel. del hardware (habilitar(1)|deshabil.(0))" - -#: ../src/options.c:762 -msgid "" -"Pixel " -"format(mjpg|jpeg|yuyv|yvyu|uyvy|yyuv|yu12|yv12|nv12|nv21|nv16|nv61|y41p|grey|" -"y10b|y16 |s501|s505|s508|gbrg|grbg|ba81|rggb|bgr3|rgb3)" -msgstr "" - -#: ../src/options.c:763 -msgid "Frame size, default: 640x480" -msgstr "ResoluciĂłn (defect: 640x480)" - -#: ../src/options.c:764 -msgid "Image File name" -msgstr "Archivo de Imagen" - -#: ../src/options.c:765 -msgid "Image capture interval in seconds" -msgstr "Intervalo de captura Imagen en segundos" - -#: ../src/options.c:766 -msgid "Number of Pictures to capture" -msgstr "NĂșmero de imagens a capturar" - -#: ../src/options.c:767 -msgid "Video File name (capture from start)" -msgstr "Archivo video (captura del arranque)" - -#: ../src/options.c:768 -msgid "Video capture time (in seconds)" -msgstr "Tiempo de la captura video (segundos)" - -#: ../src/options.c:769 -msgid "Exits guvcview after closing video" -msgstr "Salir de guvcview despuĂ©s de cerrar el vĂ­deo" - -#: ../src/options.c:770 -msgid "Number of initial frames to skip" -msgstr "NĂșmero de fotogramas iniciales a omitir" - -#: ../src/options.c:771 -msgid "Show FPS value (enable(1) | disable (0))" -msgstr "Exhibir FPS (habilitar(1) | deshabilitar(0))" - -#: ../src/options.c:772 -msgid "Load Profile at start" -msgstr "Cargar perfil al inicio" - -#: ../src/options.c:773 -msgid "List controls method (0:loop, 1:next_ctrl flag [def])" -msgstr "" - -#: ../src/options.c:779 -msgid "- local options" -msgstr "- opciones locales" - -#. gdk_threads_enter(); -#: ../src/timers.c:119 -msgid "Cap. Image" -msgstr "Cap. imagen" - -#: ../src/timers.c:217 -msgid "Guvcview Warning:" -msgstr "Aviso de Guvcview:" - -#: ../src/timers.c:217 -msgid "Not enough free space left on disk" -msgstr "No hay suficiente espacio libre en disco" - -#: ../src/v4l2_controls.c:794 -msgid "Left" -msgstr "Izquierda" - -#: ../src/v4l2_controls.c:795 -msgid "Right" -msgstr "Derecha" - -#: ../src/v4l2_controls.c:799 -msgid "Down" -msgstr "Abajo" - -#: ../src/v4l2_controls.c:800 -msgid "Up" -msgstr "Arriba" - -#: ../src/v4l2_controls.c:845 -msgid "Off" -msgstr "Apagado" - -#: ../src/v4l2_controls.c:845 -msgid "On" -msgstr "Encendido" - -#: ../src/v4l2_controls.c:845 -msgid "Blinking" -msgstr "Parpadeo" - -#: ../src/v4l2_controls.c:845 -msgid "Auto" -msgstr "Auto" - -#. turn it into a menu control -#: ../src/v4l2_controls.c:894 -msgid "8 bit" -msgstr "8 bit" - -#: ../src/v4l2_controls.c:894 -msgid "12 bit" -msgstr "12 bit" - -#: ../src/v4l2_dyna_ctrls.c:96 -msgid "Pan (relative)" -msgstr "RotaciĂłn (relativo)" - -#: ../src/v4l2_dyna_ctrls.c:109 -msgid "Tilt (relative)" -msgstr "InclinaciĂłn (relativa)" - -#: ../src/v4l2_dyna_ctrls.c:122 -msgid "Pan Reset" -msgstr "RotaciĂłn (reajuste)" - -#: ../src/v4l2_dyna_ctrls.c:135 -msgid "Tilt Reset" -msgstr "InclinaciĂłn (reajuste)" +"Language: pt\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2013-12-08 10:36+0000\n" +"X-Generator: Launchpad (build 16869)\n" -#: ../src/v4l2_dyna_ctrls.c:148 -msgid "Focus (absolute)" -msgstr "Foco (absoluto)" +#: ../data/guvcview.desktop.in.in.h:1 +msgid "guvcview" +msgstr "guvcview" -#: ../src/v4l2_dyna_ctrls.c:161 -msgid "LED1 Mode" -msgstr "Modo LED1" +#: ../data/guvcview.desktop.in.in.h:2 +msgid "GTK UVC video viewer" +msgstr "Reproductor video GTK UVC" -#: ../src/v4l2_dyna_ctrls.c:174 -msgid "LED1 Frequency" -msgstr "Frecuencia LED1" +#: ../data/guvcview.desktop.in.in.h:3 +msgid "A video viewer and capturer for the linux uvc driver" +msgstr "Un reproductor y capturador de vĂ­deo para el controlador uvc de Linux" -#: ../src/v4l2_dyna_ctrls.c:187 -msgid "Disable video processing" -msgstr "Parar el proceso de vĂ­deo" +#: ../data/guvcview.appdata.xml.in.in.h:1 +msgid "capture video from v4l2 devices" +msgstr "" -#: ../src/v4l2_dyna_ctrls.c:200 -msgid "Raw bits per pixel" -msgstr "Bits por pixel (Raw)" +#: ../data/guvcview.appdata.xml.in.in.h:2 +msgid "" +"Video capture tool for video4linux2 compliant cameras, with special emphasis " +"on the linux uvc driver. It provides Image (jpg, png, bmp) and Video (mjpeg, " +"flv1, wmv1, mpg2, mpg4,...) capture with sound in several " +"formats( currently: avi and matroska). I also supports a control panel " +"option (--control_only) that is compatible with any other v4l2 app." +msgstr "" -#. needed only for language files (not used) +#. +#. * needed only for language files (not used) +#. #. V4L2 control strings -#: ../src/v4l2uvc.c:57 +#: ../gview_v4l2core/v4l2_controls.c:49 msgid "User Controls" msgstr "Controles de usuario" -#: ../src/v4l2uvc.c:58 +#: ../gview_v4l2core/v4l2_controls.c:50 msgid "Brightness" msgstr "Brillo" -#: ../src/v4l2uvc.c:59 +#: ../gview_v4l2core/v4l2_controls.c:51 msgid "Contrast" msgstr "Contraste" -#: ../src/v4l2uvc.c:60 +#: ../gview_v4l2core/v4l2_controls.c:52 msgid "Hue" msgstr "Matiz" -#: ../src/v4l2uvc.c:61 +#: ../gview_v4l2core/v4l2_controls.c:53 msgid "Saturation" msgstr "SaturaciĂłn" -#: ../src/v4l2uvc.c:62 +#: ../gview_v4l2core/v4l2_controls.c:54 msgid "Sharpness" msgstr "Nitidez" -#: ../src/v4l2uvc.c:63 +#: ../gview_v4l2core/v4l2_controls.c:55 msgid "Gamma" msgstr "Gamma" -#: ../src/v4l2uvc.c:64 +#: ../gview_v4l2core/v4l2_controls.c:56 msgid "Backlight Compensation" msgstr "CompensaciĂłn de retroiluminaciĂłn" -#: ../src/v4l2uvc.c:65 +#: ../gview_v4l2core/v4l2_controls.c:57 msgid "Power Line Frequency" msgstr "Frecuencia de la lĂ­nea elĂ©ctrica" -#: ../src/v4l2uvc.c:66 +#: ../gview_v4l2core/v4l2_controls.c:58 msgid "Hue, Automatic" msgstr "Matiz, automĂĄtico" -#: ../src/v4l2uvc.c:67 +#: ../gview_v4l2core/v4l2_controls.c:59 msgid "Focus, Auto" msgstr "Foco, Auto" -#: ../src/v4l2uvc.c:68 +#: ../gview_v4l2core/v4l2_controls.c:60 msgid "Manual Mode" msgstr "Modo manual" -#: ../src/v4l2uvc.c:69 +#: ../gview_v4l2core/v4l2_controls.c:61 msgid "Auto Mode" msgstr "Modo automĂĄtico" -#: ../src/v4l2uvc.c:70 +#: ../gview_v4l2core/v4l2_controls.c:62 msgid "Shutter Priority Mode" msgstr "Modo prioridad del obturador" -#: ../src/v4l2uvc.c:71 +#: ../gview_v4l2core/v4l2_controls.c:63 msgid "Aperture Priority Mode" msgstr "Modo prioridad de la abertura" -#: ../src/v4l2uvc.c:72 +#: ../gview_v4l2core/v4l2_controls.c:64 msgid "Black Level" msgstr "Nivel de negros" -#: ../src/v4l2uvc.c:73 +#: ../gview_v4l2core/v4l2_controls.c:65 msgid "White Balance, Automatic" msgstr "Balance de blancos, automĂĄtico" -#: ../src/v4l2uvc.c:74 +#: ../gview_v4l2core/v4l2_controls.c:66 msgid "Do White Balance" msgstr "Hacer balance de blancos" -#: ../src/v4l2uvc.c:75 +#: ../gview_v4l2core/v4l2_controls.c:67 msgid "Red Balance" msgstr "Balance de rojos" -#: ../src/v4l2uvc.c:76 +#: ../gview_v4l2core/v4l2_controls.c:68 msgid "Blue Balance" msgstr "Balance de azules" -#: ../src/v4l2uvc.c:77 +#: ../gview_v4l2core/v4l2_controls.c:69 msgid "Exposure" msgstr "ExposiciĂłn" -#: ../src/v4l2uvc.c:78 +#: ../gview_v4l2core/v4l2_controls.c:70 msgid "Gain, Automatic" msgstr "Ganancia, automĂĄtico" -#: ../src/v4l2uvc.c:79 +#: ../gview_v4l2core/v4l2_controls.c:71 msgid "Gain" msgstr "Ganancia" -#: ../src/v4l2uvc.c:80 +#: ../gview_v4l2core/v4l2_controls.c:72 msgid "Horizontal Flip" msgstr "Giro horizontal" -#: ../src/v4l2uvc.c:81 +#: ../gview_v4l2core/v4l2_controls.c:73 msgid "Vertical Flip" msgstr "Giro vertical" -#: ../src/v4l2uvc.c:82 +#: ../gview_v4l2core/v4l2_controls.c:74 msgid "Horizontal Center" msgstr "Centrado horizontal" -#: ../src/v4l2uvc.c:83 +#: ../gview_v4l2core/v4l2_controls.c:75 msgid "Vertical Center" msgstr "Centrado vertical" -#: ../src/v4l2uvc.c:84 +#: ../gview_v4l2core/v4l2_controls.c:76 msgid "Chroma AGC" msgstr "AGC de croma" -#: ../src/v4l2uvc.c:85 +#: ../gview_v4l2core/v4l2_controls.c:77 msgid "Color Killer" msgstr "Anulador de color" -#: ../src/v4l2uvc.c:86 +#: ../gview_v4l2core/v4l2_controls.c:78 msgid "Color Effects" msgstr "Efectos de color" #. CAMERA CLASS control strings -#: ../src/v4l2uvc.c:89 +#: ../gview_v4l2core/v4l2_controls.c:81 msgid "Camera Controls" msgstr "Controles de cĂĄmara" -#: ../src/v4l2uvc.c:90 +#: ../gview_v4l2core/v4l2_controls.c:82 msgid "Auto Exposure" msgstr "ExposiciĂłn automĂĄtica" -#: ../src/v4l2uvc.c:91 +#: ../gview_v4l2core/v4l2_controls.c:83 msgid "Exposure Time, Absolute" msgstr "Tiempo de exposiciĂłn, absoluto" -#: ../src/v4l2uvc.c:92 +#: ../gview_v4l2core/v4l2_controls.c:84 msgid "Exposure, Dynamic Framerate" msgstr "ExposiciĂłn, tasa de fotogramas dinĂĄmica" -#: ../src/v4l2uvc.c:93 +#: ../gview_v4l2core/v4l2_controls.c:85 msgid "Pan, Relative" msgstr "" -#: ../src/v4l2uvc.c:94 +#: ../gview_v4l2core/v4l2_controls.c:86 msgid "Tilt, Relative" msgstr "" -#: ../src/v4l2uvc.c:95 +#: ../gview_v4l2core/v4l2_controls.c:87 msgid "Pan, Reset" msgstr "" -#: ../src/v4l2uvc.c:96 +#: ../gview_v4l2core/v4l2_controls.c:88 msgid "Tilt, Reset" msgstr "" -#: ../src/v4l2uvc.c:97 +#: ../gview_v4l2core/v4l2_controls.c:89 msgid "Pan, Absolute" msgstr "" -#: ../src/v4l2uvc.c:99 +#: ../gview_v4l2core/v4l2_controls.c:91 msgid "Focus, Absolute" msgstr "Enfoque, Absoluto" -#: ../src/v4l2uvc.c:100 +#: ../gview_v4l2core/v4l2_controls.c:92 msgid "Focus, Relative" msgstr "Enfoque, relativo" -#: ../src/v4l2uvc.c:101 +#: ../gview_v4l2core/v4l2_controls.c:93 msgid "Focus, Automatic" msgstr "Enfoque, automĂĄtico" -#: ../src/v4l2uvc.c:102 +#: ../gview_v4l2core/v4l2_controls.c:94 msgid "Zoom, Absolute" msgstr "Zoom, absoluto" -#: ../src/v4l2uvc.c:103 +#: ../gview_v4l2core/v4l2_controls.c:95 msgid "Zoom, Relative" msgstr "Zoom, relativo" -#: ../src/v4l2uvc.c:104 +#: ../gview_v4l2core/v4l2_controls.c:96 msgid "Zoom, Continuous" msgstr "Zoom, continuo" -#: ../src/v4l2uvc.c:105 +#: ../gview_v4l2core/v4l2_controls.c:97 msgid "Privacy" msgstr "Privacidad" #. UVC specific control strings -#: ../src/v4l2uvc.c:108 +#: ../gview_v4l2core/v4l2_controls.c:100 msgid "Exposure, Auto" msgstr "ExposiciĂłn, auto" -#: ../src/v4l2uvc.c:109 +#: ../gview_v4l2core/v4l2_controls.c:101 msgid "Exposure, Auto Priority" msgstr "ExposiciĂłn, Prioridad Auto" -#: ../src/v4l2uvc.c:110 +#: ../gview_v4l2core/v4l2_controls.c:102 msgid "Exposure (Absolute)" msgstr "ExposiciĂłn (Absoluta)" -#: ../src/v4l2uvc.c:111 +#: ../gview_v4l2core/v4l2_controls.c:103 msgid "White Balance Temperature, Auto" msgstr "Equilibrio blanco, auto" -#: ../src/v4l2uvc.c:112 +#: ../gview_v4l2core/v4l2_controls.c:104 msgid "White Balance Temperature" msgstr "Blanco (Temp. de color)" -#: ../src/v4l2uvc.c:113 +#: ../gview_v4l2core/v4l2_controls.c:105 msgid "White Balance Component, Auto" msgstr "Componente de color, Auto" -#: ../src/v4l2uvc.c:114 +#: ../gview_v4l2core/v4l2_controls.c:106 msgid "White Balance Blue Component" msgstr "Componente Azul" -#: ../src/v4l2uvc.c:115 +#: ../gview_v4l2core/v4l2_controls.c:107 msgid "White Balance Red Component" msgstr "Componente Rojo" #. libwebcam specific control strings -#: ../src/v4l2uvc.c:118 +#: ../gview_v4l2core/v4l2_controls.c:110 msgid "Focus" msgstr "Enfoque" -#: ../src/v4l2uvc.c:119 +#: ../gview_v4l2core/v4l2_controls.c:111 msgid "Focus (Absolute)" msgstr "Enfoque (absoluto)" -#: ../src/vcodecs.c:63 +#: ../gview_v4l2core/v4l2_xu_ctrls.c:63 ../guvcview/gui_gtk3_v4l2ctrls.c:239 +msgid "Off" +msgstr "Apagado" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:64 ../guvcview/gui_gtk3_v4l2ctrls.c:239 +msgid "On" +msgstr "Encendido" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:65 ../guvcview/gui_gtk3_v4l2ctrls.c:239 +msgid "Blinking" +msgstr "Parpadeo" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:66 ../guvcview/gui_gtk3_v4l2ctrls.c:239 +msgid "Auto" +msgstr "Auto" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:73 +msgid "Pan (relative)" +msgstr "RotaciĂłn (relativo)" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:86 +msgid "Tilt (relative)" +msgstr "InclinaciĂłn (relativa)" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:99 +msgid "Pan Reset" +msgstr "RotaciĂłn (reajuste)" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:112 +msgid "Tilt Reset" +msgstr "InclinaciĂłn (reajuste)" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:125 +msgid "Focus (absolute)" +msgstr "Foco (absoluto)" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:138 +msgid "LED1 Mode" +msgstr "Modo LED1" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:151 +msgid "LED1 Frequency" +msgstr "Frecuencia LED1" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:164 +msgid "Disable video processing" +msgstr "Parar el proceso de vĂ­deo" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:177 +msgid "Raw bits per pixel" +msgstr "Bits por pixel (Raw)" + +#: ../gview_encoder/audio_codecs.c:63 +#, fuzzy +msgid "PCM - uncompressed (float 32 bit)" +msgstr "PCM - sin compresiĂłn (16 bit)" + +#: ../gview_encoder/audio_codecs.c:80 +msgid "MP2 (MPEG audio layer 2)" +msgstr "" + +#: ../gview_encoder/audio_codecs.c:97 +msgid "MP3 (MPEG audio layer 3)" +msgstr "" + +#: ../gview_encoder/audio_codecs.c:118 +msgid "AC-3 (ATSC A/52A)" +msgstr "" + +#: ../gview_encoder/audio_codecs.c:139 +msgid "AAC (Advanced Audio Coding)" +msgstr "" + +#: ../gview_encoder/audio_codecs.c:160 +msgid "Vorbis" +msgstr "" + +#: ../gview_encoder/video_codecs.c:75 +#, fuzzy +msgid "Raw camera input" +msgstr "Salida de la cĂĄmara:" + +#: ../gview_encoder/video_codecs.c:111 msgid "MJPG - compressed" msgstr "MJPG - comprimido" -#: ../src/vcodecs.c:99 -msgid "YUY2 - uncomp YUV" -msgstr "YUY2 - s/comp YUV" - -#: ../src/vcodecs.c:135 -msgid "RGB - uncomp BMP" -msgstr "RGB - s/comp BMP" - -#: ../src/vcodecs.c:171 +#: ../gview_encoder/video_codecs.c:147 msgid "MPEG video 1" msgstr "MPEG video 1" -#: ../src/vcodecs.c:207 +#: ../gview_encoder/video_codecs.c:183 msgid "FLV1 - flash video 1" msgstr "FLV1 - flash video 1" -#: ../src/vcodecs.c:243 +#: ../gview_encoder/video_codecs.c:219 msgid "WMV1 - win. med. video 7" msgstr "WMV1 - win. med. video 7" -#: ../src/vcodecs.c:279 +#: ../gview_encoder/video_codecs.c:255 msgid "MPG2 - MPG2 format" msgstr "MPG2 - MPG2 format" -#: ../src/vcodecs.c:315 +#: ../gview_encoder/video_codecs.c:291 msgid "MS MP4 V3" msgstr "MS MP4 V3" -#: ../src/vcodecs.c:351 +#: ../gview_encoder/video_codecs.c:327 msgid "MPEG4-ASP" msgstr "MPEG4-ASP" -#: ../src/vcodecs.c:387 +#: ../gview_encoder/video_codecs.c:363 msgid "MPEG4-AVC (H264)" msgstr "MPEG4-AVC (H264)" -#: ../src/vcodecs.c:427 -msgid "VP8 (VP8)" -msgstr "" +#: ../gview_encoder/video_codecs.c:403 +msgid "VP8 (VP8)" +msgstr "" + +#: ../gview_encoder/video_codecs.c:439 +msgid "Theora (ogg theora)" +msgstr "" + +#: ../guvcview/gui_gtk3_audioctrls.c:95 +msgid "Audio API:" +msgstr "Audio API" + +#: ../guvcview/gui_gtk3_audioctrls.c:106 +msgid "NO SOUND" +msgstr "" + +#: ../guvcview/gui_gtk3_audioctrls.c:107 +msgid "PORTAUDIO" +msgstr "PORTAUDIO" + +#: ../guvcview/gui_gtk3_audioctrls.c:110 +msgid "PULSEAUDIO" +msgstr "PULSEAUDIO" + +#: ../guvcview/gui_gtk3_audioctrls.c:127 +msgid "Input Device:" +msgstr "Dispositivo de entrada:" + +#: ../guvcview/gui_gtk3_audioctrls.c:161 +msgid "Sample Rate:" +msgstr "Sample Rate:" + +#: ../guvcview/gui_gtk3_audioctrls.c:168 ../guvcview/gui_gtk3_audioctrls.c:214 +msgid "Dev. Default" +msgstr "AutomĂĄtico" + +#: ../guvcview/gui_gtk3_audioctrls.c:207 +msgid "Channels:" +msgstr "Canales:" + +#: ../guvcview/gui_gtk3_audioctrls.c:215 +msgid "1 - mono" +msgstr "1 - mono" + +#: ../guvcview/gui_gtk3_audioctrls.c:216 +msgid "2 - stereo" +msgstr "2 - stereo" + +#: ../guvcview/gui_gtk3_audioctrls.c:235 +#, fuzzy +msgid "---- Audio Filters ----" +msgstr "---- Filtros Video ----" + +#. Echo FX +#: ../guvcview/gui_gtk3_audioctrls.c:255 +msgid " Echo" +msgstr " Eco" + +#. Reverb FX +#: ../guvcview/gui_gtk3_audioctrls.c:268 +msgid " Reverb" +msgstr " Reverb" + +#. Fuzz FX +#: ../guvcview/gui_gtk3_audioctrls.c:281 +msgid " Fuzz" +msgstr " Ruido" + +#. WahWah FX +#: ../guvcview/gui_gtk3_audioctrls.c:294 +msgid " WahWah" +msgstr " WahWah" + +#. Ducky FX +#: ../guvcview/gui_gtk3_audioctrls.c:307 +msgid " Ducky" +msgstr " Pato" + +#: ../guvcview/gui_gtk3.c:310 ../guvcview/gui_gtk3_callbacks.c:749 +msgid "Stop Video (V)" +msgstr "Detener vĂ­deo (V)" + +#. video button +#: ../guvcview/gui_gtk3.c:315 ../guvcview/gui_gtk3.c:600 +#: ../guvcview/gui_gtk3_callbacks.c:755 +msgid "Cap. Video (V)" +msgstr "Cap. vĂ­deo (V)" + +#: ../guvcview/gui_gtk3.c:376 ../guvcview/gui_gtk3.c:383 +msgid "Error" +msgstr "Error" + +#: ../guvcview/gui_gtk3.c:379 ../guvcview/gui_gtk3.c:386 +#: ../guvcview/gui_gtk3_callbacks.c:2097 +msgid "_Ok" +msgstr "" + +#: ../guvcview/gui_gtk3.c:380 ../guvcview/gui_gtk3_callbacks.c:185 +#: ../guvcview/gui_gtk3_callbacks.c:199 ../guvcview/gui_gtk3_callbacks.c:522 +#: ../guvcview/gui_gtk3_callbacks.c:624 ../guvcview/gui_gtk3_callbacks.c:1755 +#: ../guvcview/gui_gtk3_callbacks.c:2098 +#, fuzzy +msgid "_Cancel" +msgstr "cancelar" + +#: ../guvcview/gui_gtk3.c:407 +msgid "" +"\n" +"You have more than one video device installed.\n" +"Do you want to try another one ?\n" +msgstr "" + +#. ---- Devices ---- +#: ../guvcview/gui_gtk3.c:414 ../guvcview/gui_gtk3_videoctrls.c:106 +msgid "Device:" +msgstr "Dispositivo de entrada:" + +#: ../guvcview/gui_gtk3.c:516 +msgid "Guvcview Video Capture" +msgstr "Captura de vĂ­deo Guvcview" + +#: ../guvcview/gui_gtk3.c:525 +#, fuzzy +msgid "Guvcview" +msgstr "guvcview" + +#: ../guvcview/gui_gtk3.c:572 +#, fuzzy +msgid "Stop Cap. (I)" +msgstr "Detener auto (I)" + +#: ../guvcview/gui_gtk3.c:578 ../guvcview/gui_gtk3_callbacks.c:720 +#: ../guvcview/video_capture.c:250 +msgid "Cap. Image (I)" +msgstr "Cap. imagen (I)" + +#. quit button +#. GtkWidget *quitButton = gtk_button_new_from_stock(GTK_STOCK_QUIT); +#: ../guvcview/gui_gtk3.c:621 +msgid "_Quit" +msgstr "" + +#: ../guvcview/gui_gtk3.c:667 +msgid "Image Controls" +msgstr "Controles de la imagen" + +#: ../guvcview/gui_gtk3.c:703 +#, fuzzy +msgid "H264 Controls" +msgstr "Controles de usuario" + +#: ../guvcview/gui_gtk3.c:742 +#, fuzzy +msgid "Video Controls" +msgstr "Controles de usuario" + +#: ../guvcview/gui_gtk3.c:777 +#, fuzzy +msgid "Audio Controls" +msgstr "Controles de usuario" + +#: ../guvcview/gui_gtk3_callbacks.c:182 ../guvcview/gui_gtk3_menu.c:72 +msgid "Save Profile" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:186 ../guvcview/gui_gtk3_callbacks.c:523 +#: ../guvcview/gui_gtk3_callbacks.c:625 +msgid "_Save" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:196 ../guvcview/gui_gtk3_menu.c:71 +msgid "Load Profile" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:200 +msgid "_Open" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:208 ../guvcview/gui_gtk3_callbacks.c:531 +#: ../guvcview/gui_gtk3_callbacks.c:634 +msgid "File Format:" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:220 +msgid "gpfl (*.gpfl)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:221 +msgid "any (*.*)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:519 +#, fuzzy +msgid "Photo file name" +msgstr "Archivo de Imagen" + +#: ../guvcview/gui_gtk3_callbacks.c:543 +msgid "Raw (*.raw)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:544 +msgid "Jpeg (*.jpg)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:545 +msgid "Png (*.png)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:546 +msgid "Bmp (*.bmp)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:621 +#, fuzzy +msgid "Video file name" +msgstr "Archivo de Imagen" + +#: ../guvcview/gui_gtk3_callbacks.c:646 +msgid "Matroska (*.mkv)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:647 +msgid "WebM (*.webm)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:648 +msgid "Avi (*.avi)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:1158 +msgid "start new" +msgstr "Comenzar nuevo" + +#: ../guvcview/gui_gtk3_callbacks.c:1161 +msgid "restart" +msgstr "Recomenzar aplicaciĂłn" + +#: ../guvcview/gui_gtk3_callbacks.c:1163 +msgid "new" +msgstr "nuevo" + +#: ../guvcview/gui_gtk3_callbacks.c:1165 +msgid "cancel" +msgstr "cancelar" + +#: ../guvcview/gui_gtk3_callbacks.c:1170 +msgid "" +"launch new process or restart?.\n" +"\n" +msgstr "" +"nuevo proceso o recomenzar?\n" +"\n" + +#: ../guvcview/gui_gtk3_callbacks.c:1751 +#, fuzzy +msgid "video codec values" +msgstr "valores de codec de audio" + +#: ../guvcview/gui_gtk3_callbacks.c:1754 +msgid "_OK" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:1760 +msgid "" +" encoder fps: \n" +" (0 - use fps combobox value)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:1773 +msgid " monotonic pts" +msgstr "" + +#. bit rate +#: ../guvcview/gui_gtk3_callbacks.c:1780 ../guvcview/gui_gtk3_callbacks.c:2105 +msgid "bit rate: " +msgstr "media de bits: " + +#: ../guvcview/gui_gtk3_callbacks.c:1793 +msgid "qmax: " +msgstr "qmĂĄx: " + +#: ../guvcview/gui_gtk3_callbacks.c:1806 +msgid "qmin: " +msgstr "qmin: " + +#: ../guvcview/gui_gtk3_callbacks.c:1819 +msgid "max. qdiff: " +msgstr "mĂĄx. qdiff: " -#: ../src/vcodecs.c:463 -msgid "Theora (ogg theora)" -msgstr "" +#: ../guvcview/gui_gtk3_callbacks.c:1832 +msgid "dia size: " +msgstr "tamaño dia: " -#: ../src/video_format.c:43 -msgid "AVI - avi format" -msgstr "AVI - formato avi" +#: ../guvcview/gui_gtk3_callbacks.c:1845 +msgid "pre dia size: " +msgstr "tamaño pre dia: " -#: ../src/video_format.c:52 -msgid "MKV - Matroska format" -msgstr "MKV - formato Matroska" +#: ../guvcview/gui_gtk3_callbacks.c:1858 +msgid "pre me: " +msgstr "pre me: " -#: ../src/video_format.c:61 -msgid "WEBM - format" +#: ../guvcview/gui_gtk3_callbacks.c:1871 +msgid "pre cmp: " msgstr "" -#: ../src/video_tab.c:216 -msgid "Frame Rate:" -msgstr "FPS:" +#: ../guvcview/gui_gtk3_callbacks.c:1884 +msgid "cmp: " +msgstr "cmp: " -#: ../src/video_tab.c:223 -msgid " Show" -msgstr " Mostrar" +#: ../guvcview/gui_gtk3_callbacks.c:1897 +msgid "sub cmp: " +msgstr "" -#: ../src/video_tab.c:245 -msgid "Resolution:" -msgstr "ResoluciĂłn:" +#: ../guvcview/gui_gtk3_callbacks.c:1910 +msgid "last predictor count: " +msgstr "" -#: ../src/video_tab.c:271 -msgid "Camera Output:" -msgstr "Salida de la cĂĄmara:" +#: ../guvcview/gui_gtk3_callbacks.c:1923 +msgid "gop size: " +msgstr "tamaño gop: " -#: ../src/video_tab.c:293 -msgid "Apply" -msgstr "Aplicar" +#: ../guvcview/gui_gtk3_callbacks.c:1936 +msgid "qcompress: " +msgstr "" -#: ../src/video_tab.c:300 -msgid "Quality:" -msgstr "Calidad:" +#: ../guvcview/gui_gtk3_callbacks.c:1949 +msgid "qblur: " +msgstr "" -#: ../src/video_tab.c:310 -msgid "---- Video Filters ----" -msgstr "---- Filtros Video ----" +#: ../guvcview/gui_gtk3_callbacks.c:1962 +msgid "subq: " +msgstr "" -#. Mirror -#: ../src/video_tab.c:329 -msgid " Mirror" -msgstr " Espejo" +#: ../guvcview/gui_gtk3_callbacks.c:1975 +msgid "framerefs: " +msgstr "" -#. Upturn -#: ../src/video_tab.c:340 -msgid " Invert" -msgstr " Invertido" +#: ../guvcview/gui_gtk3_callbacks.c:1988 +msgid "me method: " +msgstr "Metodo me " -#. Negate -#: ../src/video_tab.c:351 -msgid " Negative" -msgstr " Negativo" +#: ../guvcview/gui_gtk3_callbacks.c:2001 +msgid "mb decision: " +msgstr "mb desiciĂłn " -#. Mono -#: ../src/video_tab.c:362 -msgid " Mono" -msgstr " Gris" +#: ../guvcview/gui_gtk3_callbacks.c:2014 +msgid "max B frames: " +msgstr "" -#. Pieces -#: ../src/video_tab.c:374 -msgid " Pieces" -msgstr " Pedazos" +#: ../guvcview/gui_gtk3_callbacks.c:2027 +msgid "num threads: " +msgstr "" -#. Particles -#: ../src/video_tab.c:386 -msgid " Particles" -msgstr " PartĂ­culas" +#: ../guvcview/gui_gtk3_callbacks.c:2094 +msgid "audio codec values" +msgstr "valores de codec de audio" -#: ../src/uvc_h264.c:596 -msgid "H264 Controls" +#. sample format +#: ../guvcview/gui_gtk3_callbacks.c:2119 +msgid "sample format: " msgstr "" -#: ../src/uvc_h264.c:615 +#: ../guvcview/gui_gtk3_h264ctrls.c:622 +#, fuzzy msgid "Rate Control Mode:" -msgstr "" +msgstr "Controles de la imagen" -#: ../src/uvc_h264.c:626 +#: ../guvcview/gui_gtk3_h264ctrls.c:633 msgid "CBR" msgstr "" -#: ../src/uvc_h264.c:629 +#: ../guvcview/gui_gtk3_h264ctrls.c:636 msgid "VBR" msgstr "" -#: ../src/uvc_h264.c:633 +#: ../guvcview/gui_gtk3_h264ctrls.c:640 msgid "Constant QP" msgstr "" -#: ../src/uvc_h264.c:651 +#: ../guvcview/gui_gtk3_h264ctrls.c:658 msgid "Rate Control Mode flags:" msgstr "" -#: ../src/uvc_h264.c:676 +#: ../guvcview/gui_gtk3_h264ctrls.c:683 msgid "Temporal Scale Mode:" msgstr "" -#: ../src/uvc_h264.c:704 +#: ../guvcview/gui_gtk3_h264ctrls.c:711 msgid "Spatial Scale Mode:" msgstr "" -#: ../src/uvc_h264.c:737 +#: ../guvcview/gui_gtk3_h264ctrls.c:741 msgid "Frame Interval (100ns units):" msgstr "" -#: ../src/uvc_h264.c:772 +#: ../guvcview/gui_gtk3_h264ctrls.c:778 +#, fuzzy msgid "Bit Rate:" -msgstr "" +msgstr "media de bits: " -#: ../src/uvc_h264.c:795 +#: ../guvcview/gui_gtk3_h264ctrls.c:801 msgid "Hints:" msgstr "" -#: ../src/uvc_h264.c:800 +#: ../guvcview/gui_gtk3_h264ctrls.c:806 +#, fuzzy msgid "Resolution" -msgstr "" +msgstr "ResoluciĂłn:" -#: ../src/uvc_h264.c:804 +#: ../guvcview/gui_gtk3_h264ctrls.c:810 msgid "Profile" msgstr "" -#: ../src/uvc_h264.c:808 +#: ../guvcview/gui_gtk3_h264ctrls.c:814 +#, fuzzy msgid "Rate Control" -msgstr "" +msgstr "Controles de la imagen" -#: ../src/uvc_h264.c:812 +#: ../guvcview/gui_gtk3_h264ctrls.c:818 msgid "Usage Type" msgstr "" -#: ../src/uvc_h264.c:816 +#: ../guvcview/gui_gtk3_h264ctrls.c:822 msgid "Slice Mode" msgstr "" -#: ../src/uvc_h264.c:820 +#: ../guvcview/gui_gtk3_h264ctrls.c:826 msgid "Slice Unit" msgstr "" -#: ../src/uvc_h264.c:824 +#: ../guvcview/gui_gtk3_h264ctrls.c:830 msgid "MVC View" msgstr "" -#: ../src/uvc_h264.c:828 +#: ../guvcview/gui_gtk3_h264ctrls.c:834 msgid "Temporal Scale" msgstr "" -#: ../src/uvc_h264.c:832 +#: ../guvcview/gui_gtk3_h264ctrls.c:838 msgid "SNR Scale" msgstr "" -#: ../src/uvc_h264.c:836 +#: ../guvcview/gui_gtk3_h264ctrls.c:842 msgid "Spatial Scale" msgstr "" -#: ../src/uvc_h264.c:840 +#: ../guvcview/gui_gtk3_h264ctrls.c:846 msgid "Spatial Layer Ratio" msgstr "" -#: ../src/uvc_h264.c:844 +#: ../guvcview/gui_gtk3_h264ctrls.c:850 +#, fuzzy msgid "Frame Interval" -msgstr "" +msgstr "FPS:" -#: ../src/uvc_h264.c:848 +#: ../guvcview/gui_gtk3_h264ctrls.c:854 msgid "Leaky Bucket Size" msgstr "" -#: ../src/uvc_h264.c:852 +#: ../guvcview/gui_gtk3_h264ctrls.c:858 msgid "Bit Rate" msgstr "" -#: ../src/uvc_h264.c:856 ../src/uvc_h264.c:1250 +#: ../guvcview/gui_gtk3_h264ctrls.c:862 ../guvcview/gui_gtk3_h264ctrls.c:1220 msgid "CABAC" msgstr "" -#: ../src/uvc_h264.c:860 +#: ../guvcview/gui_gtk3_h264ctrls.c:866 msgid "(I) Frame Period" msgstr "" -#: ../src/uvc_h264.c:907 +#: ../guvcview/gui_gtk3_h264ctrls.c:878 msgid "Slice Mode:" msgstr "" -#: ../src/uvc_h264.c:914 +#: ../guvcview/gui_gtk3_h264ctrls.c:885 msgid "no multiple slices" msgstr "" -#: ../src/uvc_h264.c:916 +#: ../guvcview/gui_gtk3_h264ctrls.c:887 msgid "bits/slice" msgstr "" -#: ../src/uvc_h264.c:918 +#: ../guvcview/gui_gtk3_h264ctrls.c:889 msgid "Mbits/slice" msgstr "" -#: ../src/uvc_h264.c:920 +#: ../guvcview/gui_gtk3_h264ctrls.c:891 msgid "slices/frame" msgstr "" -#: ../src/uvc_h264.c:929 +#: ../guvcview/gui_gtk3_h264ctrls.c:900 msgid "Slice Units:" msgstr "" -#: ../src/uvc_h264.c:950 +#: ../guvcview/gui_gtk3_h264ctrls.c:921 msgid "Profile:" msgstr "" -#: ../src/uvc_h264.c:957 +#: ../guvcview/gui_gtk3_h264ctrls.c:928 msgid "Baseline Profile" msgstr "" -#: ../src/uvc_h264.c:959 +#: ../guvcview/gui_gtk3_h264ctrls.c:930 msgid "Main Profile" msgstr "" -#: ../src/uvc_h264.c:961 +#: ../guvcview/gui_gtk3_h264ctrls.c:932 msgid "High Profile" msgstr "" -#: ../src/uvc_h264.c:963 +#: ../guvcview/gui_gtk3_h264ctrls.c:934 msgid "Scalable Baseline Profile" msgstr "" -#: ../src/uvc_h264.c:965 +#: ../guvcview/gui_gtk3_h264ctrls.c:936 msgid "Scalable High Profile" msgstr "" -#: ../src/uvc_h264.c:967 +#: ../guvcview/gui_gtk3_h264ctrls.c:938 msgid "Multiview High Profile" msgstr "" -#: ../src/uvc_h264.c:969 +#: ../guvcview/gui_gtk3_h264ctrls.c:940 msgid "Stereo High Profile" msgstr "" -#: ../src/uvc_h264.c:1008 +#: ../guvcview/gui_gtk3_h264ctrls.c:979 msgid "Profile flags:" msgstr "" -#: ../src/uvc_h264.c:1033 +#: ../guvcview/gui_gtk3_h264ctrls.c:1004 msgid "(I) Frame Period (ms):" msgstr "" -#: ../src/uvc_h264.c:1054 +#: ../guvcview/gui_gtk3_h264ctrls.c:1025 msgid "Estimated Video Delay (ms):" msgstr "" -#: ../src/uvc_h264.c:1075 +#: ../guvcview/gui_gtk3_h264ctrls.c:1046 msgid "Estimated Max Config Delay (ms):" msgstr "" -#: ../src/uvc_h264.c:1096 +#: ../guvcview/gui_gtk3_h264ctrls.c:1067 msgid "Usage Type:" msgstr "" -#: ../src/uvc_h264.c:1103 +#: ../guvcview/gui_gtk3_h264ctrls.c:1074 msgid "Real-time" msgstr "" -#: ../src/uvc_h264.c:1105 +#: ../guvcview/gui_gtk3_h264ctrls.c:1076 msgid "Broadcast" msgstr "" -#: ../src/uvc_h264.c:1107 +#: ../guvcview/gui_gtk3_h264ctrls.c:1078 msgid "Storage" msgstr "" -#: ../src/uvc_h264.c:1109 +#: ../guvcview/gui_gtk3_h264ctrls.c:1080 msgid "(0) Non-scalable single layer AVC" msgstr "" -#: ../src/uvc_h264.c:1111 +#: ../guvcview/gui_gtk3_h264ctrls.c:1082 msgid "(1) SVC temporal scalability with hierarchical P" msgstr "" -#: ../src/uvc_h264.c:1113 +#: ../guvcview/gui_gtk3_h264ctrls.c:1084 msgid "(2q) SVC temporal scalability + Quality/SNR scalability" msgstr "" -#: ../src/uvc_h264.c:1115 +#: ../guvcview/gui_gtk3_h264ctrls.c:1086 msgid "(2s) SVC temporal scalability + spatial scalability" msgstr "" -#: ../src/uvc_h264.c:1117 +#: ../guvcview/gui_gtk3_h264ctrls.c:1088 msgid "(3) Full SVC scalability" msgstr "" -#: ../src/uvc_h264.c:1131 +#: ../guvcview/gui_gtk3_h264ctrls.c:1102 msgid "SNR Control Mode:" msgstr "" -#: ../src/uvc_h264.c:1138 +#: ../guvcview/gui_gtk3_h264ctrls.c:1109 msgid "No SNR Enhancement Layer" msgstr "" -#: ../src/uvc_h264.c:1140 +#: ../guvcview/gui_gtk3_h264ctrls.c:1111 msgid "CGS NonRewrite (2 Layer)" msgstr "" -#: ../src/uvc_h264.c:1142 +#: ../guvcview/gui_gtk3_h264ctrls.c:1113 msgid "CGS NonRewrite (3 Layer)" msgstr "" -#: ../src/uvc_h264.c:1144 +#: ../guvcview/gui_gtk3_h264ctrls.c:1115 msgid "CGS Rewrite (2 Layer)" msgstr "" -#: ../src/uvc_h264.c:1146 +#: ../guvcview/gui_gtk3_h264ctrls.c:1117 msgid "CGS Rewrite (3 Layer)" msgstr "" -#: ../src/uvc_h264.c:1148 +#: ../guvcview/gui_gtk3_h264ctrls.c:1119 msgid "MGS (2 Layer)" msgstr "" -#: ../src/uvc_h264.c:1173 +#: ../guvcview/gui_gtk3_h264ctrls.c:1144 msgid "Stream Mux Enable" msgstr "" -#: ../src/uvc_h264.c:1180 +#: ../guvcview/gui_gtk3_h264ctrls.c:1151 msgid "Embed H.264 aux stream" msgstr "" -#: ../src/uvc_h264.c:1182 +#: ../guvcview/gui_gtk3_h264ctrls.c:1153 msgid "Embed YUY2 aux stream" msgstr "" -#: ../src/uvc_h264.c:1184 +#: ../guvcview/gui_gtk3_h264ctrls.c:1155 msgid "Embed NV12 aux stream" msgstr "" -#: ../src/uvc_h264.c:1204 +#: ../guvcview/gui_gtk3_h264ctrls.c:1175 msgid "MJPG payload container" msgstr "" -#: ../src/uvc_h264.c:1219 +#: ../guvcview/gui_gtk3_h264ctrls.c:1189 msgid "Stream Format:" msgstr "" -#: ../src/uvc_h264.c:1227 +#: ../guvcview/gui_gtk3_h264ctrls.c:1197 msgid "Byte stream format (H.264 Annex-B)" msgstr "" -#: ../src/uvc_h264.c:1229 +#: ../guvcview/gui_gtk3_h264ctrls.c:1199 +#, fuzzy msgid "NAL stream format" -msgstr "" +msgstr "AVI - formato avi" -#: ../src/uvc_h264.c:1240 +#: ../guvcview/gui_gtk3_h264ctrls.c:1210 msgid "Entropy CABAC:" msgstr "" -#: ../src/uvc_h264.c:1248 +#: ../guvcview/gui_gtk3_h264ctrls.c:1218 msgid "CAVLC" msgstr "" -#: ../src/uvc_h264.c:1261 +#: ../guvcview/gui_gtk3_h264ctrls.c:1231 msgid "Picture timing SEI" msgstr "" -#: ../src/uvc_h264.c:1268 +#: ../guvcview/gui_gtk3_h264ctrls.c:1238 +#, fuzzy msgid "B Frames:" -msgstr "" +msgstr "FPS:" -#: ../src/uvc_h264.c:1293 +#: ../guvcview/gui_gtk3_h264ctrls.c:1263 msgid "Preview Flipped" msgstr "" -#: ../src/uvc_h264.c:1300 +#: ../guvcview/gui_gtk3_h264ctrls.c:1270 msgid "Additional MVC Views:" msgstr "" -#: ../src/uvc_h264.c:1325 +#: ../guvcview/gui_gtk3_h264ctrls.c:1295 msgid "Simulcast stream index:" msgstr "" -#: ../src/uvc_h264.c:1350 +#: ../guvcview/gui_gtk3_h264ctrls.c:1320 msgid "Spatial Layer Ratio:" msgstr "" -#: ../src/uvc_h264.c:1379 +#: ../guvcview/gui_gtk3_h264ctrls.c:1349 msgid "Leaky Bucket Size (ms):" msgstr "" #. encoder reset -#: ../src/uvc_h264.c:1406 +#: ../guvcview/gui_gtk3_h264ctrls.c:1376 +#, fuzzy msgid "Encoder Reset" -msgstr "" +msgstr "RotaciĂłn (reajuste)" -#. -#. h264_controls->probe_button = gtk_button_new_with_label(_("PROBE")); -#. g_signal_connect (GTK_BUTTON(h264_controls->probe_button), "clicked", +#. +#. GtkWidget *probe_button = gtk_button_new_with_label(_("PROBE")); +#. g_signal_connect (GTK_BUTTON(probe_button), "clicked", #. G_CALLBACK (h264_probe_button_clicked), all_data); -#. -#. gtk_grid_attach (GTK_GRID(table), h264_controls->probe_button, 0, line, 1 ,1); -#. gtk_widget_show(h264_controls->probe_button); -#. -#: ../src/uvc_h264.c:1421 +#. +#. gtk_grid_attach (GTK_GRID(h264_controls_grid), probe_button, 0, line, 1 ,1); +#. gtk_widget_show(probe_button); +#. +#: ../guvcview/gui_gtk3_h264ctrls.c:1391 msgid "COMMIT" msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:70 +msgid "Settings" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:73 +msgid "Hardware Defaults" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:81 +msgid "Camera Button" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:86 +msgid "Capture Image" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:91 +msgid "Capture Video" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:134 +msgid "Photo" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:135 ../guvcview/gui_gtk3_menu.c:159 +msgid "File" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:136 ../guvcview/gui_gtk3_menu.c:160 +msgid "Increment Filename" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:158 +msgid "Video" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:175 +msgid "Video Codec" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:202 +msgid "Video Codec Properties" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:208 +msgid "Audio Codec" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:235 +msgid "Audio Codec Properties" +msgstr "" + +#: ../guvcview/gui_gtk3_v4l2ctrls.c:174 +msgid "Left" +msgstr "Izquierda" + +#: ../guvcview/gui_gtk3_v4l2ctrls.c:175 +msgid "Right" +msgstr "Derecha" + +#: ../guvcview/gui_gtk3_v4l2ctrls.c:179 +msgid "Down" +msgstr "Abajo" + +#: ../guvcview/gui_gtk3_v4l2ctrls.c:180 +msgid "Up" +msgstr "Arriba" + +#. turn it into a menu control +#: ../guvcview/gui_gtk3_v4l2ctrls.c:296 +msgid "8 bit" +msgstr "8 bit" + +#: ../guvcview/gui_gtk3_v4l2ctrls.c:296 +msgid "12 bit" +msgstr "12 bit" + +#. add a virtual control for software autofocus +#: ../guvcview/gui_gtk3_v4l2ctrls.c:348 +msgid "Auto Focus (continuous)" +msgstr "Foco Automatico (continuo)" + +#: ../guvcview/gui_gtk3_v4l2ctrls.c:349 +msgid "set Focus" +msgstr "Focar" + +#. control_widgets_list[n].widget2 = gtk_button_new_from_stock(GTK_STOCK_APPLY); +#. control_widgets_list[n].widget2= gtk_button_new_from_stock(GTK_STOCK_APPLY); +#. control_widgets_list[n].widget2 = gtk_button_new_from_stock(GTK_STOCK_APPLY); +#: ../guvcview/gui_gtk3_v4l2ctrls.c:433 ../guvcview/gui_gtk3_v4l2ctrls.c:456 +#: ../guvcview/gui_gtk3_v4l2ctrls.c:478 +#, fuzzy +msgid "_Apply" +msgstr "Aplicar" + +#: ../guvcview/gui_gtk3_videoctrls.c:144 +msgid "Frame Rate:" +msgstr "FPS:" + +#: ../guvcview/gui_gtk3_videoctrls.c:204 +msgid "Resolution:" +msgstr "ResoluciĂłn:" + +#: ../guvcview/gui_gtk3_videoctrls.c:254 +msgid "Camera Output:" +msgstr "Salida de la cĂĄmara:" + +#: ../guvcview/gui_gtk3_videoctrls.c:287 +msgid "---- Video Filters ----" +msgstr "---- Filtros Video ----" + +#. Mirror FX +#: ../guvcview/gui_gtk3_videoctrls.c:307 +msgid " Mirror" +msgstr " Espejo" + +#. Upturn FX +#: ../guvcview/gui_gtk3_videoctrls.c:319 +msgid " Invert" +msgstr " Invertido" + +#. Negate FX +#: ../guvcview/gui_gtk3_videoctrls.c:331 +msgid " Negative" +msgstr " Negativo" + +#. Mono FX +#: ../guvcview/gui_gtk3_videoctrls.c:343 +msgid " Mono" +msgstr " Gris" + +#. Pieces FX +#: ../guvcview/gui_gtk3_videoctrls.c:356 +msgid " Pieces" +msgstr " Pedazos" + +#. Particles +#: ../guvcview/gui_gtk3_videoctrls.c:369 +msgid " Particles" +msgstr " PartĂ­culas" + +#: ../guvcview/options.c:51 +msgid "Print help" +msgstr "" + +#: ../guvcview/options.c:58 +#, fuzzy +msgid "Print version" +msgstr "Imprimir versiĂłn" + +#: ../guvcview/options.c:64 +msgid "LEVEL" +msgstr "" + +#: ../guvcview/options.c:65 +msgid "Set Verbosity level (def: 0)" +msgstr "" + +#: ../guvcview/options.c:71 +msgid "DEVICE" +msgstr "" + +#: ../guvcview/options.c:72 +#, fuzzy +msgid "Set device name (def: /dev/video0)" +msgstr "Dispositivo de video [pred: /dev/video0]" + +#: ../guvcview/options.c:78 +msgid "METHOD" +msgstr "" + +#: ../guvcview/options.c:79 +#, fuzzy +msgid "Set capture method [read | mmap (def)]" +msgstr "MĂ©todo de captura (1-mmap (predeterminado) 2-read)" + +#: ../guvcview/options.c:85 +msgid "WIDTHxHEIGHT" +msgstr "" + +#: ../guvcview/options.c:86 +msgid "Request resolution (e.g 640x480)" +msgstr "" + +#: ../guvcview/options.c:92 +msgid "FOURCC" +msgstr "" + +#: ../guvcview/options.c:93 +msgid "Request format (e.g MJPG)" +msgstr "" + +#: ../guvcview/options.c:99 +msgid "RENDER_API" +msgstr "" + +#: ../guvcview/options.c:100 +msgid "Select render API (e.g none; sdl)" +msgstr "" + +#: ../guvcview/options.c:106 +msgid "AUDIO_API" +msgstr "" + +#: ../guvcview/options.c:107 +msgid "Select audio API (e.g none; port; pulse)" +msgstr "" + +#: ../guvcview/options.c:113 +msgid "AUDIO_DEVICE" +msgstr "" + +#: ../guvcview/options.c:114 +msgid "Select audio device index for selected api (0..N)" +msgstr "" + +#: ../guvcview/options.c:120 +msgid "GUI_API" +msgstr "" + +#: ../guvcview/options.c:121 +msgid "Select GUI API (e.g none; gtk3)" +msgstr "" + +#: ../guvcview/options.c:127 ../guvcview/options.c:134 +msgid "CODEC" +msgstr "" + +#: ../guvcview/options.c:128 +msgid "Audio codec [pcm mp2 mp3 aac ac3 vorb]" +msgstr "" + +#: ../guvcview/options.c:135 +msgid "Video codec [raw mjpg mpeg flv1 wmv1 mpg2 mp43 dx50 h264 vp80 theo]" +msgstr "" + +#: ../guvcview/options.c:141 ../guvcview/options.c:148 +#: ../guvcview/options.c:155 +msgid "FILENAME" +msgstr "" + +#: ../guvcview/options.c:142 +msgid "load control profile" +msgstr "" + +#: ../guvcview/options.c:149 +msgid "filename for captured video)" +msgstr "" + +#: ../guvcview/options.c:156 +msgid "filename for captured image)" +msgstr "" + +#: ../guvcview/options.c:162 ../guvcview/options.c:169 +msgid "TIME_IN_SEC" +msgstr "" + +#: ../guvcview/options.c:163 +msgid "time (double) in sec. for video capture)" +msgstr "" + +#: ../guvcview/options.c:170 +msgid "time (double) in sec. between captured photos)" +msgstr "" + +#: ../guvcview/options.c:176 +msgid "TOTAL" +msgstr "" + +#: ../guvcview/options.c:177 +msgid "total number of captured photos)" +msgstr "" + +#: ../guvcview/options.c:184 +msgid "Start in control panel mode" +msgstr "" + +#: ../guvcview/options.c:307 +#, fuzzy, c-format +msgid "" +"Guvcview version %s\n" +"\n" +msgstr "Aviso de Guvcview:" + +#: ../guvcview/options.c:308 +#, c-format +msgid "" +"Usage:\n" +" guvcview [OPTIONS]\n" +"\n" +msgstr "" + +#: ../guvcview/options.c:309 +#, c-format +msgid "OPTIONS:\n" +msgstr "" + +#: ../guvcview/video_capture.c:819 +#, c-format +msgid "saving video to %s" +msgstr "" + +#. if(debug_level > 1) +#. printf("GUVCVIEW: saving image to %s\n", img_filename); +#: ../guvcview/video_capture.c:1069 +#, c-format +msgid "saving image to %s" +msgstr "" + +#~ msgid "MPEG2 - (lavc)" +#~ msgstr "MPEG2 - (lavc)" + +#~ msgid "MP3 - (lavc)" +#~ msgstr "MP3 - (lavc)" + +#~ msgid "Dolby AC3 - (lavc)" +#~ msgstr "Dolby AC3 - (lavc)" + +#~ msgid "ACC Low - (faac)" +#~ msgstr "ACC Low - (faac)" + +#~ msgid "Audio" +#~ msgstr "Audio" + +#~ msgid " Sound" +#~ msgstr " Sonido" + +#~ msgid "---- Audio Effects ----" +#~ msgstr "---- Efectos de Audio ----" + +#~ msgid "Save File" +#~ msgstr "Guardar Archivo" + +#~ msgid "codec values" +#~ msgstr "valores de cĂłdecs" + +#~ msgid "Cap. Video" +#~ msgstr "Cap. vĂ­deo" + +#~ msgid "GUVCViewer Controls" +#~ msgstr "Controles de GUVCViewer" + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to open device" +#~ msgstr "" +#~ "Error de Guvcview:\n" +#~ "\n" +#~ "No se pudo abrir el dispositivo" + +#~ msgid "" +#~ "Please make sure the camera is connected\n" +#~ "and that the correct driver is installed." +#~ msgstr "" +#~ "Por favor, verifique de que la cĂĄmara estĂ© conectada\n" +#~ "y que se instalĂł el controlador correcto." + +#~ msgid "" +#~ "Guvcview:\n" +#~ "\n" +#~ "UVC Extension controls" +#~ msgstr "" +#~ "Guvcview:\n" +#~ "\n" +#~ "Controles de la extensiĂłn UVC" + +#~ msgid "Extension controls were added to the UVC driver" +#~ msgstr "Los controles de extensiĂłn se añadieron al controlador de UVC" + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "UVC Extension controls" +#~ msgstr "" +#~ "Error de Guvcview:\n" +#~ "\n" +#~ "Controles de extensiĂłn UVC" + +#~ msgid "" +#~ "An error occurred while adding extension\n" +#~ "controls to the UVC driver\n" +#~ "Make sure you run guvcview as root (or sudo)." +#~ msgstr "" +#~ "OcurriĂł un error al añadir los controles\n" +#~ "de extensiĂłn al controlador UVC\n" +#~ "AsegĂșrese de que ejecuta guvcview como root (o sudo)." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Can't set a valid video stream for guvcview" +#~ msgstr "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Incapaz de establecer video stream" + +#~ msgid "" +#~ "Make sure your device driver is v4l2 compliant\n" +#~ "and that it is properly installed." +#~ msgstr "" +#~ "AsegĂșrese de que tiene un controlador v4l2\n" +#~ "y que estĂĄ instalado." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to start with minimum setup" +#~ msgstr "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "No se pudo iniciar con la configuraciĂłn mĂ­nima" + +#~ msgid "Please reconnect your camera." +#~ msgstr "Vuelva a conectar su cĂĄmara." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Couldn't query device capabilities" +#~ msgstr "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "No se pudo abrir el dispositivo" + +#~ msgid "Make sure the device driver supports v4l2." +#~ msgstr "AsegĂșrese de que el controlador del dispositivo soporta v4l2." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Read method error" +#~ msgstr "" +#~ "Error de Guvcview:\n" +#~ "\n" +#~ "error de mĂ©todo Read" + +#~ msgid "Please try mmap instead (--capture_method=1)." +#~ msgstr "Intente, en vez de eso, mmap (--capture_method=1)." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to allocate Buffers" +#~ msgstr "" +#~ "Error de Guvcview:\n" +#~ "\n" +#~ "No se pudieron asignar bĂșferes" + +#~ msgid "Please try restarting your system." +#~ msgstr "Pruebe a reiniciar su sistema." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to create Video Thread" +#~ msgstr "" +#~ "Error de Guvcview:\n" +#~ "\n" +#~ "No se pudo crear hilo de vĂ­deo" + +#~ msgid "Please report it to http://developer.berlios.de/bugs/?group_id=8179" +#~ msgstr "RepĂłrtelo a http://developer.berlios.de/bugs/?group_id=8179" + +#~ msgid "Displays debug information" +#~ msgstr "Exhibir information de depuracion" + +#~ msgid "Exit after adding UVC extension controls (needs root/sudo)" +#~ msgstr "" +#~ "Salir despuĂ©s de añadir los controles de extensiĂłn UVC (requiere root/" +#~ "sudo)" + +#~ msgid "Don't stream video (image controls only)" +#~ msgstr "No hacer streaming de vĂ­deo (sĂłlo controles)" + +#~ msgid "Don't display a GUI" +#~ msgstr "No mostrar interfaz grĂĄfica" + +#~ msgid "Configuration file" +#~ msgstr "Archivo de configuraciĂłn" + +#~ msgid "Hardware accelaration (enable(1) | disable(0))" +#~ msgstr "Accel. del hardware (habilitar(1)|deshabil.(0))" + +#~ msgid "Frame size, default: 640x480" +#~ msgstr "ResoluciĂłn (defect: 640x480)" + +#~ msgid "Image capture interval in seconds" +#~ msgstr "Intervalo de captura Imagen en segundos" + +#~ msgid "Number of Pictures to capture" +#~ msgstr "NĂșmero de imagens a capturar" + +#~ msgid "Video File name (capture from start)" +#~ msgstr "Archivo video (captura del arranque)" + +#~ msgid "Video capture time (in seconds)" +#~ msgstr "Tiempo de la captura video (segundos)" + +#~ msgid "Exits guvcview after closing video" +#~ msgstr "Salir de guvcview despuĂ©s de cerrar el vĂ­deo" + +#~ msgid "Number of initial frames to skip" +#~ msgstr "NĂșmero de fotogramas iniciales a omitir" + +#~ msgid "Show FPS value (enable(1) | disable (0))" +#~ msgstr "Exhibir FPS (habilitar(1) | deshabilitar(0))" + +#~ msgid "Load Profile at start" +#~ msgstr "Cargar perfil al inicio" + +#~ msgid "- local options" +#~ msgstr "- opciones locales" + +#~ msgid "Cap. Image" +#~ msgstr "Cap. imagen" + +#~ msgid "Not enough free space left on disk" +#~ msgstr "No hay suficiente espacio libre en disco" + +#~ msgid "YUY2 - uncomp YUV" +#~ msgstr "YUY2 - s/comp YUV" + +#~ msgid "RGB - uncomp BMP" +#~ msgstr "RGB - s/comp BMP" + +#~ msgid "MKV - Matroska format" +#~ msgstr "MKV - formato Matroska" + +#~ msgid " Show" +#~ msgstr " Mostrar" + +#~ msgid "Quality:" +#~ msgstr "Calidad:" diff -Nru guvcview-1.7.3/po/eu.po guvcview-2.0.1+ubuntu1~ppa1/po/eu.po --- guvcview-1.7.3/po/eu.po 2014-03-24 22:56:28.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/po/eu.po 2014-10-05 10:41:44.000000000 +0000 @@ -7,20 +7,21 @@ msgstr "" "Project-Id-Version: guvcview\n" "Report-Msgid-Bugs-To: pj.assis@gmail.com\n" -"POT-Creation-Date: 2013-11-14 22:15+0000\n" +"POT-Creation-Date: 2014-08-17 22:49+0100\n" "PO-Revision-Date: 2013-02-25 05:37+0000\n" "Last-Translator: Pablo Zubiaurre \n" "Language-Team: Basque \n" +"Language: eu\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-12-08 10:36+0000\n" "X-Generator: Launchpad (build 16869)\n" -"Language: eu\n" #: ../data/guvcview.desktop.in.in.h:1 +#, fuzzy msgid "guvcview" -msgstr "" +msgstr "Gucview oharra:" #: ../data/guvcview.desktop.in.in.h:2 msgid "GTK UVC video viewer" @@ -30,1380 +31,1457 @@ msgid "A video viewer and capturer for the linux uvc driver" msgstr "" -#: ../src/acodecs.c:59 -msgid "PCM - uncompressed (16 bit)" -msgstr "" - -#: ../src/acodecs.c:76 -msgid "MPEG2 - (lavc)" -msgstr "" - -#: ../src/acodecs.c:93 -msgid "MP3 - (lavc)" -msgstr "" - -#: ../src/acodecs.c:110 -msgid "Dolby AC3 - (lavc)" -msgstr "" - -#: ../src/acodecs.c:127 -msgid "ACC Low - (faac)" -msgstr "" - -#: ../src/acodecs.c:144 -msgid "Vorbis" -msgstr "" - -#: ../src/audio_tab.c:87 -msgid "Audio" -msgstr "" - -#: ../src/audio_tab.c:105 -msgid " Sound" -msgstr "" - -#. VU meter on the image (OSD) -#: ../src/audio_tab.c:116 -msgid " Show VU meter" -msgstr "" - -#: ../src/audio_tab.c:128 -msgid "Audio API:" -msgstr "" - -#: ../src/audio_tab.c:139 -msgid "PORTAUDIO" -msgstr "" - -#: ../src/audio_tab.c:140 -msgid "PULSEAUDIO" -msgstr "" - -#: ../src/audio_tab.c:156 ../src/audio_tab.c:179 -msgid "Input Device:" -msgstr "" - -#: ../src/audio_tab.c:189 ../src/audio_tab.c:221 -msgid "Dev. Default" -msgstr "" - -#: ../src/audio_tab.c:211 -msgid "Sample Rate:" -msgstr "" - -#: ../src/audio_tab.c:222 -msgid "1 - mono" -msgstr "" - -#: ../src/audio_tab.c:223 -msgid "2 - stereo" -msgstr "" - -#: ../src/audio_tab.c:258 -msgid "Channels:" -msgstr "" - -#: ../src/audio_tab.c:309 -msgid "---- Audio Effects ----" -msgstr "" - -#. Echo -#: ../src/audio_tab.c:328 -msgid " Echo" -msgstr "" - -#. FUZZ -#: ../src/audio_tab.c:339 -msgid " Fuzz" -msgstr "" - -#. Reverb -#: ../src/audio_tab.c:351 -msgid " Reverb" -msgstr "" - -#. WahWah -#: ../src/audio_tab.c:363 -msgid " WahWah" -msgstr "" - -#. Ducky -#: ../src/audio_tab.c:375 -msgid " Ducky" -msgstr "" - -#: ../src/callbacks.c:109 -msgid "Error" +#: ../data/guvcview.appdata.xml.in.in.h:1 +msgid "capture video from v4l2 devices" msgstr "" -#: ../src/callbacks.c:133 +#: ../data/guvcview.appdata.xml.in.in.h:2 msgid "" -"\n" -"You have more than one video device installed.\n" -"Do you want to try another one ?\n" -msgstr "" - -#. Devices -#: ../src/callbacks.c:140 ../src/video_tab.c:111 -msgid "Device:" -msgstr "" - -#: ../src/callbacks.c:272 -msgid "Save File" -msgstr "" - -#: ../src/callbacks.c:284 -msgid "File Format:" -msgstr "" - -#: ../src/callbacks.c:455 -msgid "codec values" -msgstr "" - -#: ../src/callbacks.c:466 -msgid "" -" encoder fps: \n" -" (0 - use fps combobox value)" -msgstr "" - -#: ../src/callbacks.c:479 -msgid " monotonic pts" -msgstr "" - -#. bit rate -#: ../src/callbacks.c:486 ../src/callbacks.c:809 -msgid "bit rate: " +"Video capture tool for video4linux2 compliant cameras, with special emphasis " +"on the linux uvc driver. It provides Image (jpg, png, bmp) and Video (mjpeg, " +"flv1, wmv1, mpg2, mpg4,...) capture with sound in several " +"formats( currently: avi and matroska). I also supports a control panel " +"option (--control_only) that is compatible with any other v4l2 app." msgstr "" -#: ../src/callbacks.c:499 -msgid "qmax: " -msgstr "" - -#: ../src/callbacks.c:512 -msgid "qmin: " -msgstr "" - -#: ../src/callbacks.c:525 -msgid "max. qdiff: " -msgstr "" - -#: ../src/callbacks.c:538 -msgid "dia size: " -msgstr "" - -#: ../src/callbacks.c:551 -msgid "pre dia size: " -msgstr "" - -#: ../src/callbacks.c:564 -msgid "pre me: " -msgstr "" - -#: ../src/callbacks.c:577 -msgid "pre cmp: " +#. +#. * needed only for language files (not used) +#. +#. V4L2 control strings +#: ../gview_v4l2core/v4l2_controls.c:49 +msgid "User Controls" msgstr "" -#: ../src/callbacks.c:590 -msgid "cmp: " -msgstr "" +#: ../gview_v4l2core/v4l2_controls.c:50 +msgid "Brightness" +msgstr "Distira" -#: ../src/callbacks.c:603 -msgid "sub cmp: " -msgstr "" +#: ../gview_v4l2core/v4l2_controls.c:51 +msgid "Contrast" +msgstr "Kontrastea" -#: ../src/callbacks.c:616 -msgid "last predictor count: " -msgstr "" +#: ../gview_v4l2core/v4l2_controls.c:52 +msgid "Hue" +msgstr "Ñabardura" -#: ../src/callbacks.c:629 -msgid "gop size: " -msgstr "" +#: ../gview_v4l2core/v4l2_controls.c:53 +msgid "Saturation" +msgstr "Asetasuna" -#: ../src/callbacks.c:642 -msgid "qcompress: " -msgstr "" +#: ../gview_v4l2core/v4l2_controls.c:54 +msgid "Sharpness" +msgstr "Garbitasuna" -#: ../src/callbacks.c:655 -msgid "qblur: " -msgstr "" +#: ../gview_v4l2core/v4l2_controls.c:55 +msgid "Gamma" +msgstr "Gamma" -#: ../src/callbacks.c:668 -msgid "subq: " +#: ../gview_v4l2core/v4l2_controls.c:56 +msgid "Backlight Compensation" msgstr "" -#: ../src/callbacks.c:681 -msgid "framerefs: " +#: ../gview_v4l2core/v4l2_controls.c:57 +msgid "Power Line Frequency" msgstr "" -#: ../src/callbacks.c:694 -msgid "me method: " +#: ../gview_v4l2core/v4l2_controls.c:58 +msgid "Hue, Automatic" msgstr "" -#: ../src/callbacks.c:707 -msgid "mb decision: " -msgstr "" +#: ../gview_v4l2core/v4l2_controls.c:59 +msgid "Focus, Auto" +msgstr "Foku automatikoa" -#: ../src/callbacks.c:720 -msgid "max B frames: " -msgstr "" +#: ../gview_v4l2core/v4l2_controls.c:60 +msgid "Manual Mode" +msgstr "Eskuzko modua" -#: ../src/callbacks.c:733 -msgid "num threads: " -msgstr "" +#: ../gview_v4l2core/v4l2_controls.c:61 +msgid "Auto Mode" +msgstr "Modu automatikoa" -#: ../src/callbacks.c:796 -msgid "audio codec values" -msgstr "" +#: ../gview_v4l2core/v4l2_controls.c:62 +msgid "Shutter Priority Mode" +msgstr "Obturadore lehentasun modua" -#. sample format -#: ../src/callbacks.c:823 -msgid "sample format: " +#: ../gview_v4l2core/v4l2_controls.c:63 +msgid "Aperture Priority Mode" msgstr "" -#: ../src/callbacks.c:1311 -msgid "start new" -msgstr "Berria hasi" - -#: ../src/callbacks.c:1314 -msgid "restart" -msgstr "berrabiarazi" +#: ../gview_v4l2core/v4l2_controls.c:64 +msgid "Black Level" +msgstr "Beltz-maila" -#: ../src/callbacks.c:1316 -msgid "new" -msgstr "berria" +#: ../gview_v4l2core/v4l2_controls.c:65 +msgid "White Balance, Automatic" +msgstr "Zuri-balantzea,automatikoa" -#: ../src/callbacks.c:1318 -msgid "cancel" -msgstr "utzi" +#: ../gview_v4l2core/v4l2_controls.c:66 +msgid "Do White Balance" +msgstr "Zuri-balantzea egin" -#: ../src/callbacks.c:1323 -msgid "" -"launch new process or restart?.\n" -"\n" -msgstr "" -"prozesu berria hasi edo berrabiarazi?\n" -"\n" +#: ../gview_v4l2core/v4l2_controls.c:67 +msgid "Red Balance" +msgstr "Gorri balantzea" -#: ../src/callbacks.c:1780 ../src/guvcview.c:565 -msgid "Cap. Image (I)" -msgstr "Kaptura (I):" +#: ../gview_v4l2core/v4l2_controls.c:68 +msgid "Blue Balance" +msgstr "Urdin balantzea" -#. disable image controls -#: ../src/callbacks.c:1791 ../src/guvcview.c:690 ../src/timers.c:101 -msgid "capturing photo to" -msgstr "" +#: ../gview_v4l2core/v4l2_controls.c:69 +msgid "Exposure" +msgstr "Esposizioa" -#: ../src/callbacks.c:1850 ../src/guvcview.c:575 -msgid "Cap. Video (V)" -msgstr "Kaptura (V):" +#: ../gview_v4l2core/v4l2_controls.c:70 +msgid "Gain, Automatic" +msgstr "Irabazia, Automatikoa" -#: ../src/callbacks.c:1876 ../src/guvcview.c:740 -msgid "capturing video to" -msgstr "" +#: ../gview_v4l2core/v4l2_controls.c:71 +msgid "Gain" +msgstr "Irabazia" -#. vid capture enabled from start -#: ../src/callbacks.c:1911 ../src/guvcview.c:570 -msgid "Stop Video (V)" -msgstr "Bideoa gelditu (V)" +#: ../gview_v4l2core/v4l2_controls.c:72 +msgid "Horizontal Flip" +msgstr "Irauli horizontalki" -#: ../src/callbacks.c:1967 ../src/menubar.c:66 -msgid "Save Profile" -msgstr "" +#: ../gview_v4l2core/v4l2_controls.c:73 +msgid "Vertical Flip" +msgstr "Irauli bertikalki" -#: ../src/callbacks.c:1980 ../src/menubar.c:65 -msgid "Load Profile" +#: ../gview_v4l2core/v4l2_controls.c:74 +msgid "Horizontal Center" msgstr "" -#: ../src/create_video.c:1098 ../src/guvcview.c:732 -msgid "Cap. Video" +#: ../gview_v4l2core/v4l2_controls.c:75 +msgid "Vertical Center" msgstr "" -#: ../src/guvcview.c:280 -msgid "Guvcview Video Capture" +#: ../gview_v4l2core/v4l2_controls.c:76 +msgid "Chroma AGC" msgstr "" -#: ../src/guvcview.c:292 -msgid "GUVCViewer Controls" -msgstr "GUVCViewer kontrolak" - -#. can't open device -#: ../src/guvcview.c:342 -msgid "" -"Guvcview error:\n" -"\n" -"Unable to open device" +#: ../gview_v4l2core/v4l2_controls.c:77 +msgid "Color Killer" msgstr "" -"Gucview errorea:\n" -"\n" -"Ez da posible gailua zabaltzea" -#: ../src/guvcview.c:343 -msgid "" -"Please make sure the camera is connected\n" -"and that the correct driver is installed." +#: ../gview_v4l2core/v4l2_controls.c:78 +msgid "Color Effects" msgstr "" -"Ziurtatu kamera konektatua\n" -"eta driver-a instalatuta dagoela" -#. uvc extension controls OK, give warning and shutdown (called with --add_ctrls) -#: ../src/guvcview.c:348 -msgid "" -"Guvcview:\n" -"\n" -"UVC Extension controls" +#. CAMERA CLASS control strings +#: ../gview_v4l2core/v4l2_controls.c:81 +msgid "Camera Controls" msgstr "" -"Gucview:\n" -"\n" -"UVC luzapenaren kontrolak" - -#: ../src/guvcview.c:349 -msgid "Extension controls were added to the UVC driver" -msgstr "Luzapen kontrolak UVC kontroladoreari gehitu zaizkio" -#. uvc extension controls error - EACCES (needs root user) -#: ../src/guvcview.c:356 -msgid "" -"Guvcview error:\n" -"\n" -"UVC Extension controls" +#: ../gview_v4l2core/v4l2_controls.c:82 +msgid "Auto Exposure" msgstr "" -"Gucview errorea:\n" -"\n" -"UVC luzapenaren kontrolak" -#: ../src/guvcview.c:357 -msgid "" -"An error occurred while adding extension\n" -"controls to the UVC driver\n" -"Make sure you run guvcview as root (or sudo)." +#: ../gview_v4l2core/v4l2_controls.c:83 +msgid "Exposure Time, Absolute" msgstr "" -#: ../src/guvcview.c:391 ../src/guvcview.c:399 ../src/guvcview.c:477 -msgid "" -"Guvcview error:\n" -"\n" -"Can't set a valid video stream for guvcview" +#: ../gview_v4l2core/v4l2_controls.c:84 +msgid "Exposure, Dynamic Framerate" msgstr "" -"Gucview errorea:\n" -"\n" -"Ezin izan da bideo-korrontea ezarri" -#: ../src/guvcview.c:392 ../src/guvcview.c:400 ../src/guvcview.c:478 -msgid "" -"Make sure your device driver is v4l2 compliant\n" -"and that it is properly installed." +#: ../gview_v4l2core/v4l2_controls.c:85 +msgid "Pan, Relative" msgstr "" -"Mesedez,egiaztatu v4I2 kontrolatzailea duzula\n" -"eta instalatuta dagoela." -#: ../src/guvcview.c:422 ../src/guvcview.c:444 -msgid "" -"Guvcview error:\n" -"\n" -"Unable to start with minimum setup" +#: ../gview_v4l2core/v4l2_controls.c:86 +msgid "Tilt, Relative" msgstr "" -"Gucview errorea:\n" -"\n" -"Ezin izan da konfigurazio minimoarekin abiarazi" -#: ../src/guvcview.c:423 ../src/guvcview.c:445 -msgid "Please reconnect your camera." -msgstr "Mesedez, kamera berriro konektatu" - -#: ../src/guvcview.c:452 -msgid "" -"Guvcview error:\n" -"\n" -"Couldn't query device capabilities" +#: ../gview_v4l2core/v4l2_controls.c:87 +msgid "Pan, Reset" msgstr "" -"Gucview errorea:\n" -"\n" -"Ezin izan da gailua ireki" -#: ../src/guvcview.c:453 -msgid "Make sure the device driver supports v4l2." -msgstr "Ziurtatu gailuaren kontrolatzaileak v4I2 eusten duela" - -#: ../src/guvcview.c:457 -msgid "" -"Guvcview error:\n" -"\n" -"Read method error" +#: ../gview_v4l2core/v4l2_controls.c:88 +msgid "Tilt, Reset" msgstr "" -"Gucview errorea:\n" -"\n" -"Irakurketametodoaren errorea" -#: ../src/guvcview.c:458 -msgid "Please try mmap instead (--capture_method=1)." +#: ../gview_v4l2core/v4l2_controls.c:89 +msgid "Pan, Absolute" msgstr "" -#: ../src/guvcview.c:466 -msgid "" -"Guvcview error:\n" -"\n" -"Unable to allocate Buffers" +#: ../gview_v4l2core/v4l2_controls.c:91 +msgid "Focus, Absolute" msgstr "" -"Gucview errorea:\n" -"\n" -"Ezin izan dira bufferrak esleitu" - -#: ../src/guvcview.c:467 -msgid "Please try restarting your system." -msgstr "Mesedez saiatu sistema berrabiarazten." - -#: ../src/guvcview.c:518 -msgid "Image Controls" -msgstr "Irudi kontrolak" -#. image auto capture -#: ../src/guvcview.c:561 -msgid "Stop Auto (I)" +#: ../gview_v4l2core/v4l2_controls.c:92 +msgid "Focus, Relative" msgstr "" -#: ../src/guvcview.c:676 -msgid "" -"Guvcview error:\n" -"\n" -"Unable to create Video Thread" +#: ../gview_v4l2core/v4l2_controls.c:93 +msgid "Focus, Automatic" msgstr "" -#: ../src/guvcview.c:677 -msgid "Please report it to http://developer.berlios.de/bugs/?group_id=8179" +#: ../gview_v4l2core/v4l2_controls.c:94 +msgid "Zoom, Absolute" msgstr "" -#: ../src/img_controls.c:121 -msgid "Auto Focus (continuous)" +#: ../gview_v4l2core/v4l2_controls.c:95 +msgid "Zoom, Relative" msgstr "" -#: ../src/img_controls.c:122 -msgid "set Focus" -msgstr "Fokatu" - -#: ../src/image_format.c:35 -msgid "Jpeg (jpg)" +#: ../gview_v4l2core/v4l2_controls.c:96 +msgid "Zoom, Continuous" msgstr "" -#: ../src/image_format.c:41 -msgid "Bitmap (Bmp)" +#: ../gview_v4l2core/v4l2_controls.c:97 +msgid "Privacy" msgstr "" -#: ../src/image_format.c:47 -msgid "Portable Network Graphics (Png)" +#. UVC specific control strings +#: ../gview_v4l2core/v4l2_controls.c:100 +msgid "Exposure, Auto" msgstr "" -#: ../src/image_format.c:53 -msgid "Raw Image (raw)" +#: ../gview_v4l2core/v4l2_controls.c:101 +msgid "Exposure, Auto Priority" msgstr "" -#. controls menu -#: ../src/menubar.c:64 -msgid "Settings" +#: ../gview_v4l2core/v4l2_controls.c:102 +msgid "Exposure (Absolute)" msgstr "" -#: ../src/menubar.c:67 -msgid "Hardware Defaults" +#: ../gview_v4l2core/v4l2_controls.c:103 +msgid "White Balance Temperature, Auto" msgstr "" -#: ../src/menubar.c:75 -msgid "Camera Button" +#: ../gview_v4l2core/v4l2_controls.c:104 +msgid "White Balance Temperature" msgstr "" -#: ../src/menubar.c:79 -msgid "Capture Image" +#: ../gview_v4l2core/v4l2_controls.c:105 +msgid "White Balance Component, Auto" msgstr "" -#: ../src/menubar.c:84 -msgid "Capture Video" +#: ../gview_v4l2core/v4l2_controls.c:106 +msgid "White Balance Blue Component" msgstr "" -#. video menu -#: ../src/menubar.c:144 ../src/video_tab.c:95 -msgid "Video" +#: ../gview_v4l2core/v4l2_controls.c:107 +msgid "White Balance Red Component" msgstr "" -#: ../src/menubar.c:145 ../src/menubar.c:233 -msgid "File" +#. libwebcam specific control strings +#: ../gview_v4l2core/v4l2_controls.c:110 +msgid "Focus" msgstr "" -#: ../src/menubar.c:146 ../src/menubar.c:234 -msgid "Increment Filename" +#: ../gview_v4l2core/v4l2_controls.c:111 +msgid "Focus (Absolute)" msgstr "" -#: ../src/menubar.c:164 -msgid "Video Codec" +#: ../gview_v4l2core/v4l2_xu_ctrls.c:63 ../guvcview/gui_gtk3_v4l2ctrls.c:239 +msgid "Off" msgstr "" -#: ../src/menubar.c:189 -msgid "Video Codec Properties" +#: ../gview_v4l2core/v4l2_xu_ctrls.c:64 ../guvcview/gui_gtk3_v4l2ctrls.c:239 +msgid "On" msgstr "" -#: ../src/menubar.c:196 -msgid "Audio Codec" +#: ../gview_v4l2core/v4l2_xu_ctrls.c:65 ../guvcview/gui_gtk3_v4l2ctrls.c:239 +msgid "Blinking" msgstr "" -#: ../src/menubar.c:217 -msgid "Audio Codec Properties" +#: ../gview_v4l2core/v4l2_xu_ctrls.c:66 ../guvcview/gui_gtk3_v4l2ctrls.c:239 +msgid "Auto" msgstr "" -#. photo menu -#: ../src/menubar.c:232 -msgid "Photo" +#: ../gview_v4l2core/v4l2_xu_ctrls.c:73 +msgid "Pan (relative)" msgstr "" -#: ../src/options.c:753 -msgid "Prints version" +#: ../gview_v4l2core/v4l2_xu_ctrls.c:86 +msgid "Tilt (relative)" msgstr "" -#: ../src/options.c:754 -msgid "Displays debug information" +#: ../gview_v4l2core/v4l2_xu_ctrls.c:99 +msgid "Pan Reset" msgstr "" -#: ../src/options.c:755 -msgid "Video Device to use [default: /dev/video0]" +#: ../gview_v4l2core/v4l2_xu_ctrls.c:112 +msgid "Tilt Reset" msgstr "" -#: ../src/options.c:756 -msgid "Exit after adding UVC extension controls (needs root/sudo)" +#: ../gview_v4l2core/v4l2_xu_ctrls.c:125 +msgid "Focus (absolute)" msgstr "" -#: ../src/options.c:757 -msgid "Don't stream video (image controls only)" +#: ../gview_v4l2core/v4l2_xu_ctrls.c:138 +msgid "LED1 Mode" msgstr "" -#: ../src/options.c:758 -msgid "Don't display a GUI" +#: ../gview_v4l2core/v4l2_xu_ctrls.c:151 +msgid "LED1 Frequency" msgstr "" -#: ../src/options.c:759 -msgid "Capture method (1-mmap (default) 2-read)" +#: ../gview_v4l2core/v4l2_xu_ctrls.c:164 +msgid "Disable video processing" msgstr "" -#: ../src/options.c:760 -msgid "Configuration file" +#: ../gview_v4l2core/v4l2_xu_ctrls.c:177 +msgid "Raw bits per pixel" msgstr "" -#: ../src/options.c:761 -msgid "Hardware accelaration (enable(1) | disable(0))" +#: ../gview_encoder/audio_codecs.c:63 +msgid "PCM - uncompressed (float 32 bit)" msgstr "" -#: ../src/options.c:762 -msgid "" -"Pixel " -"format(mjpg|jpeg|yuyv|yvyu|uyvy|yyuv|yu12|yv12|nv12|nv21|nv16|nv61|y41p|grey|" -"y10b|y16 |s501|s505|s508|gbrg|grbg|ba81|rggb|bgr3|rgb3)" +#: ../gview_encoder/audio_codecs.c:80 +msgid "MP2 (MPEG audio layer 2)" msgstr "" -#: ../src/options.c:763 -msgid "Frame size, default: 640x480" +#: ../gview_encoder/audio_codecs.c:97 +msgid "MP3 (MPEG audio layer 3)" msgstr "" -#: ../src/options.c:764 -msgid "Image File name" +#: ../gview_encoder/audio_codecs.c:118 +msgid "AC-3 (ATSC A/52A)" msgstr "" -#: ../src/options.c:765 -msgid "Image capture interval in seconds" +#: ../gview_encoder/audio_codecs.c:139 +msgid "AAC (Advanced Audio Coding)" msgstr "" -#: ../src/options.c:766 -msgid "Number of Pictures to capture" -msgstr "Kapturatu beharreko argazki kopurua" - -#: ../src/options.c:767 -msgid "Video File name (capture from start)" +#: ../gview_encoder/audio_codecs.c:160 +msgid "Vorbis" msgstr "" -#: ../src/options.c:768 -msgid "Video capture time (in seconds)" +#: ../gview_encoder/video_codecs.c:75 +msgid "Raw camera input" msgstr "" -#: ../src/options.c:769 -msgid "Exits guvcview after closing video" +#: ../gview_encoder/video_codecs.c:111 +msgid "MJPG - compressed" msgstr "" -#: ../src/options.c:770 -msgid "Number of initial frames to skip" +#: ../gview_encoder/video_codecs.c:147 +msgid "MPEG video 1" msgstr "" -#: ../src/options.c:771 -msgid "Show FPS value (enable(1) | disable (0))" +#: ../gview_encoder/video_codecs.c:183 +msgid "FLV1 - flash video 1" msgstr "" -#: ../src/options.c:772 -msgid "Load Profile at start" -msgstr "Profila kargatu hastean" - -#: ../src/options.c:773 -msgid "List controls method (0:loop, 1:next_ctrl flag [def])" +#: ../gview_encoder/video_codecs.c:219 +msgid "WMV1 - win. med. video 7" msgstr "" -#: ../src/options.c:779 -msgid "- local options" -msgstr "-aukera lokalak" - -#. gdk_threads_enter(); -#: ../src/timers.c:119 -msgid "Cap. Image" +#: ../gview_encoder/video_codecs.c:255 +msgid "MPG2 - MPG2 format" msgstr "" -#: ../src/timers.c:217 -msgid "Guvcview Warning:" -msgstr "Gucview oharra:" - -#: ../src/timers.c:217 -msgid "Not enough free space left on disk" -msgstr "Ez dago leku nahikorik diskoan" - -#: ../src/v4l2_controls.c:794 -msgid "Left" -msgstr "Ezkerrera" - -#: ../src/v4l2_controls.c:795 -msgid "Right" -msgstr "Eskuina" - -#: ../src/v4l2_controls.c:799 -msgid "Down" -msgstr "Behera" - -#: ../src/v4l2_controls.c:800 -msgid "Up" -msgstr "Gora" - -#: ../src/v4l2_controls.c:845 -msgid "Off" +#: ../gview_encoder/video_codecs.c:291 +msgid "MS MP4 V3" msgstr "" -#: ../src/v4l2_controls.c:845 -msgid "On" +#: ../gview_encoder/video_codecs.c:327 +msgid "MPEG4-ASP" msgstr "" -#: ../src/v4l2_controls.c:845 -msgid "Blinking" +#: ../gview_encoder/video_codecs.c:363 +msgid "MPEG4-AVC (H264)" msgstr "" -#: ../src/v4l2_controls.c:845 -msgid "Auto" +#: ../gview_encoder/video_codecs.c:403 +msgid "VP8 (VP8)" msgstr "" -#. turn it into a menu control -#: ../src/v4l2_controls.c:894 -msgid "8 bit" +#: ../gview_encoder/video_codecs.c:439 +msgid "Theora (ogg theora)" msgstr "" -#: ../src/v4l2_controls.c:894 -msgid "12 bit" +#: ../guvcview/gui_gtk3_audioctrls.c:95 +msgid "Audio API:" msgstr "" -#: ../src/v4l2_dyna_ctrls.c:96 -msgid "Pan (relative)" +#: ../guvcview/gui_gtk3_audioctrls.c:106 +msgid "NO SOUND" msgstr "" -#: ../src/v4l2_dyna_ctrls.c:109 -msgid "Tilt (relative)" +#: ../guvcview/gui_gtk3_audioctrls.c:107 +msgid "PORTAUDIO" msgstr "" -#: ../src/v4l2_dyna_ctrls.c:122 -msgid "Pan Reset" +#: ../guvcview/gui_gtk3_audioctrls.c:110 +msgid "PULSEAUDIO" msgstr "" -#: ../src/v4l2_dyna_ctrls.c:135 -msgid "Tilt Reset" +#: ../guvcview/gui_gtk3_audioctrls.c:127 +msgid "Input Device:" msgstr "" -#: ../src/v4l2_dyna_ctrls.c:148 -msgid "Focus (absolute)" +#: ../guvcview/gui_gtk3_audioctrls.c:161 +msgid "Sample Rate:" msgstr "" -#: ../src/v4l2_dyna_ctrls.c:161 -msgid "LED1 Mode" +#: ../guvcview/gui_gtk3_audioctrls.c:168 ../guvcview/gui_gtk3_audioctrls.c:214 +msgid "Dev. Default" msgstr "" -#: ../src/v4l2_dyna_ctrls.c:174 -msgid "LED1 Frequency" +#: ../guvcview/gui_gtk3_audioctrls.c:207 +msgid "Channels:" msgstr "" -#: ../src/v4l2_dyna_ctrls.c:187 -msgid "Disable video processing" +#: ../guvcview/gui_gtk3_audioctrls.c:215 +msgid "1 - mono" msgstr "" -#: ../src/v4l2_dyna_ctrls.c:200 -msgid "Raw bits per pixel" +#: ../guvcview/gui_gtk3_audioctrls.c:216 +msgid "2 - stereo" msgstr "" -#. needed only for language files (not used) -#. V4L2 control strings -#: ../src/v4l2uvc.c:57 -msgid "User Controls" +#: ../guvcview/gui_gtk3_audioctrls.c:235 +msgid "---- Audio Filters ----" msgstr "" -#: ../src/v4l2uvc.c:58 -msgid "Brightness" -msgstr "Distira" - -#: ../src/v4l2uvc.c:59 -msgid "Contrast" -msgstr "Kontrastea" - -#: ../src/v4l2uvc.c:60 -msgid "Hue" -msgstr "Ñabardura" - -#: ../src/v4l2uvc.c:61 -msgid "Saturation" -msgstr "Asetasuna" - -#: ../src/v4l2uvc.c:62 -msgid "Sharpness" -msgstr "Garbitasuna" - -#: ../src/v4l2uvc.c:63 -msgid "Gamma" -msgstr "Gamma" - -#: ../src/v4l2uvc.c:64 -msgid "Backlight Compensation" +#. Echo FX +#: ../guvcview/gui_gtk3_audioctrls.c:255 +msgid " Echo" msgstr "" -#: ../src/v4l2uvc.c:65 -msgid "Power Line Frequency" +#. Reverb FX +#: ../guvcview/gui_gtk3_audioctrls.c:268 +msgid " Reverb" msgstr "" -#: ../src/v4l2uvc.c:66 -msgid "Hue, Automatic" +#. Fuzz FX +#: ../guvcview/gui_gtk3_audioctrls.c:281 +msgid " Fuzz" msgstr "" -#: ../src/v4l2uvc.c:67 -msgid "Focus, Auto" -msgstr "Foku automatikoa" - -#: ../src/v4l2uvc.c:68 -msgid "Manual Mode" -msgstr "Eskuzko modua" - -#: ../src/v4l2uvc.c:69 -msgid "Auto Mode" -msgstr "Modu automatikoa" - -#: ../src/v4l2uvc.c:70 -msgid "Shutter Priority Mode" -msgstr "Obturadore lehentasun modua" - -#: ../src/v4l2uvc.c:71 -msgid "Aperture Priority Mode" +#. WahWah FX +#: ../guvcview/gui_gtk3_audioctrls.c:294 +msgid " WahWah" msgstr "" -#: ../src/v4l2uvc.c:72 -msgid "Black Level" -msgstr "Beltz-maila" - -#: ../src/v4l2uvc.c:73 -msgid "White Balance, Automatic" -msgstr "Zuri-balantzea,automatikoa" - -#: ../src/v4l2uvc.c:74 -msgid "Do White Balance" -msgstr "Zuri-balantzea egin" - -#: ../src/v4l2uvc.c:75 -msgid "Red Balance" -msgstr "Gorri balantzea" - -#: ../src/v4l2uvc.c:76 -msgid "Blue Balance" -msgstr "Urdin balantzea" - -#: ../src/v4l2uvc.c:77 -msgid "Exposure" -msgstr "Esposizioa" - -#: ../src/v4l2uvc.c:78 -msgid "Gain, Automatic" -msgstr "Irabazia, Automatikoa" - -#: ../src/v4l2uvc.c:79 -msgid "Gain" -msgstr "Irabazia" - -#: ../src/v4l2uvc.c:80 -msgid "Horizontal Flip" -msgstr "Irauli horizontalki" - -#: ../src/v4l2uvc.c:81 -msgid "Vertical Flip" -msgstr "Irauli bertikalki" - -#: ../src/v4l2uvc.c:82 -msgid "Horizontal Center" +#. Ducky FX +#: ../guvcview/gui_gtk3_audioctrls.c:307 +msgid " Ducky" msgstr "" -#: ../src/v4l2uvc.c:83 -msgid "Vertical Center" -msgstr "" +#: ../guvcview/gui_gtk3.c:310 ../guvcview/gui_gtk3_callbacks.c:749 +msgid "Stop Video (V)" +msgstr "Bideoa gelditu (V)" -#: ../src/v4l2uvc.c:84 -msgid "Chroma AGC" -msgstr "" +#. video button +#: ../guvcview/gui_gtk3.c:315 ../guvcview/gui_gtk3.c:600 +#: ../guvcview/gui_gtk3_callbacks.c:755 +msgid "Cap. Video (V)" +msgstr "Kaptura (V):" -#: ../src/v4l2uvc.c:85 -msgid "Color Killer" +#: ../guvcview/gui_gtk3.c:376 ../guvcview/gui_gtk3.c:383 +msgid "Error" msgstr "" -#: ../src/v4l2uvc.c:86 -msgid "Color Effects" +#: ../guvcview/gui_gtk3.c:379 ../guvcview/gui_gtk3.c:386 +#: ../guvcview/gui_gtk3_callbacks.c:2097 +msgid "_Ok" msgstr "" -#. CAMERA CLASS control strings -#: ../src/v4l2uvc.c:89 -msgid "Camera Controls" -msgstr "" +#: ../guvcview/gui_gtk3.c:380 ../guvcview/gui_gtk3_callbacks.c:185 +#: ../guvcview/gui_gtk3_callbacks.c:199 ../guvcview/gui_gtk3_callbacks.c:522 +#: ../guvcview/gui_gtk3_callbacks.c:624 ../guvcview/gui_gtk3_callbacks.c:1755 +#: ../guvcview/gui_gtk3_callbacks.c:2098 +#, fuzzy +msgid "_Cancel" +msgstr "utzi" -#: ../src/v4l2uvc.c:90 -msgid "Auto Exposure" +#: ../guvcview/gui_gtk3.c:407 +msgid "" +"\n" +"You have more than one video device installed.\n" +"Do you want to try another one ?\n" msgstr "" -#: ../src/v4l2uvc.c:91 -msgid "Exposure Time, Absolute" +#. ---- Devices ---- +#: ../guvcview/gui_gtk3.c:414 ../guvcview/gui_gtk3_videoctrls.c:106 +msgid "Device:" msgstr "" -#: ../src/v4l2uvc.c:92 -msgid "Exposure, Dynamic Framerate" +#: ../guvcview/gui_gtk3.c:516 +msgid "Guvcview Video Capture" msgstr "" -#: ../src/v4l2uvc.c:93 -msgid "Pan, Relative" -msgstr "" +#: ../guvcview/gui_gtk3.c:525 +#, fuzzy +msgid "Guvcview" +msgstr "Gucview oharra:" -#: ../src/v4l2uvc.c:94 -msgid "Tilt, Relative" +#: ../guvcview/gui_gtk3.c:572 +msgid "Stop Cap. (I)" msgstr "" -#: ../src/v4l2uvc.c:95 -msgid "Pan, Reset" -msgstr "" +#: ../guvcview/gui_gtk3.c:578 ../guvcview/gui_gtk3_callbacks.c:720 +#: ../guvcview/video_capture.c:250 +msgid "Cap. Image (I)" +msgstr "Kaptura (I):" -#: ../src/v4l2uvc.c:96 -msgid "Tilt, Reset" +#. quit button +#. GtkWidget *quitButton = gtk_button_new_from_stock(GTK_STOCK_QUIT); +#: ../guvcview/gui_gtk3.c:621 +msgid "_Quit" msgstr "" -#: ../src/v4l2uvc.c:97 -msgid "Pan, Absolute" -msgstr "" +#: ../guvcview/gui_gtk3.c:667 +msgid "Image Controls" +msgstr "Irudi kontrolak" -#: ../src/v4l2uvc.c:99 -msgid "Focus, Absolute" -msgstr "" +#: ../guvcview/gui_gtk3.c:703 +#, fuzzy +msgid "H264 Controls" +msgstr "Irudi kontrolak" -#: ../src/v4l2uvc.c:100 -msgid "Focus, Relative" -msgstr "" +#: ../guvcview/gui_gtk3.c:742 +#, fuzzy +msgid "Video Controls" +msgstr "GUVCViewer kontrolak" -#: ../src/v4l2uvc.c:101 -msgid "Focus, Automatic" -msgstr "" +#: ../guvcview/gui_gtk3.c:777 +#, fuzzy +msgid "Audio Controls" +msgstr "Irudi kontrolak" -#: ../src/v4l2uvc.c:102 -msgid "Zoom, Absolute" +#: ../guvcview/gui_gtk3_callbacks.c:182 ../guvcview/gui_gtk3_menu.c:72 +msgid "Save Profile" msgstr "" -#: ../src/v4l2uvc.c:103 -msgid "Zoom, Relative" +#: ../guvcview/gui_gtk3_callbacks.c:186 ../guvcview/gui_gtk3_callbacks.c:523 +#: ../guvcview/gui_gtk3_callbacks.c:625 +msgid "_Save" msgstr "" -#: ../src/v4l2uvc.c:104 -msgid "Zoom, Continuous" +#: ../guvcview/gui_gtk3_callbacks.c:196 ../guvcview/gui_gtk3_menu.c:71 +msgid "Load Profile" msgstr "" -#: ../src/v4l2uvc.c:105 -msgid "Privacy" +#: ../guvcview/gui_gtk3_callbacks.c:200 +msgid "_Open" msgstr "" -#. UVC specific control strings -#: ../src/v4l2uvc.c:108 -msgid "Exposure, Auto" +#: ../guvcview/gui_gtk3_callbacks.c:208 ../guvcview/gui_gtk3_callbacks.c:531 +#: ../guvcview/gui_gtk3_callbacks.c:634 +msgid "File Format:" msgstr "" -#: ../src/v4l2uvc.c:109 -msgid "Exposure, Auto Priority" +#: ../guvcview/gui_gtk3_callbacks.c:220 +msgid "gpfl (*.gpfl)" msgstr "" -#: ../src/v4l2uvc.c:110 -msgid "Exposure (Absolute)" +#: ../guvcview/gui_gtk3_callbacks.c:221 +msgid "any (*.*)" msgstr "" -#: ../src/v4l2uvc.c:111 -msgid "White Balance Temperature, Auto" +#: ../guvcview/gui_gtk3_callbacks.c:519 +msgid "Photo file name" msgstr "" -#: ../src/v4l2uvc.c:112 -msgid "White Balance Temperature" +#: ../guvcview/gui_gtk3_callbacks.c:543 +msgid "Raw (*.raw)" msgstr "" -#: ../src/v4l2uvc.c:113 -msgid "White Balance Component, Auto" +#: ../guvcview/gui_gtk3_callbacks.c:544 +msgid "Jpeg (*.jpg)" msgstr "" -#: ../src/v4l2uvc.c:114 -msgid "White Balance Blue Component" +#: ../guvcview/gui_gtk3_callbacks.c:545 +msgid "Png (*.png)" msgstr "" -#: ../src/v4l2uvc.c:115 -msgid "White Balance Red Component" +#: ../guvcview/gui_gtk3_callbacks.c:546 +msgid "Bmp (*.bmp)" msgstr "" -#. libwebcam specific control strings -#: ../src/v4l2uvc.c:118 -msgid "Focus" +#: ../guvcview/gui_gtk3_callbacks.c:621 +msgid "Video file name" msgstr "" -#: ../src/v4l2uvc.c:119 -msgid "Focus (Absolute)" +#: ../guvcview/gui_gtk3_callbacks.c:646 +msgid "Matroska (*.mkv)" msgstr "" -#: ../src/vcodecs.c:63 -msgid "MJPG - compressed" +#: ../guvcview/gui_gtk3_callbacks.c:647 +msgid "WebM (*.webm)" msgstr "" -#: ../src/vcodecs.c:99 -msgid "YUY2 - uncomp YUV" +#: ../guvcview/gui_gtk3_callbacks.c:648 +msgid "Avi (*.avi)" msgstr "" -#: ../src/vcodecs.c:135 -msgid "RGB - uncomp BMP" +#: ../guvcview/gui_gtk3_callbacks.c:1158 +msgid "start new" +msgstr "Berria hasi" + +#: ../guvcview/gui_gtk3_callbacks.c:1161 +msgid "restart" +msgstr "berrabiarazi" + +#: ../guvcview/gui_gtk3_callbacks.c:1163 +msgid "new" +msgstr "berria" + +#: ../guvcview/gui_gtk3_callbacks.c:1165 +msgid "cancel" +msgstr "utzi" + +#: ../guvcview/gui_gtk3_callbacks.c:1170 +msgid "" +"launch new process or restart?.\n" +"\n" msgstr "" +"prozesu berria hasi edo berrabiarazi?\n" +"\n" -#: ../src/vcodecs.c:171 -msgid "MPEG video 1" +#: ../guvcview/gui_gtk3_callbacks.c:1751 +msgid "video codec values" msgstr "" -#: ../src/vcodecs.c:207 -msgid "FLV1 - flash video 1" +#: ../guvcview/gui_gtk3_callbacks.c:1754 +msgid "_OK" msgstr "" -#: ../src/vcodecs.c:243 -msgid "WMV1 - win. med. video 7" +#: ../guvcview/gui_gtk3_callbacks.c:1760 +msgid "" +" encoder fps: \n" +" (0 - use fps combobox value)" msgstr "" -#: ../src/vcodecs.c:279 -msgid "MPG2 - MPG2 format" +#: ../guvcview/gui_gtk3_callbacks.c:1773 +msgid " monotonic pts" msgstr "" -#: ../src/vcodecs.c:315 -msgid "MS MP4 V3" +#. bit rate +#: ../guvcview/gui_gtk3_callbacks.c:1780 ../guvcview/gui_gtk3_callbacks.c:2105 +msgid "bit rate: " msgstr "" -#: ../src/vcodecs.c:351 -msgid "MPEG4-ASP" +#: ../guvcview/gui_gtk3_callbacks.c:1793 +msgid "qmax: " msgstr "" -#: ../src/vcodecs.c:387 -msgid "MPEG4-AVC (H264)" +#: ../guvcview/gui_gtk3_callbacks.c:1806 +msgid "qmin: " msgstr "" -#: ../src/vcodecs.c:427 -msgid "VP8 (VP8)" +#: ../guvcview/gui_gtk3_callbacks.c:1819 +msgid "max. qdiff: " msgstr "" -#: ../src/vcodecs.c:463 -msgid "Theora (ogg theora)" +#: ../guvcview/gui_gtk3_callbacks.c:1832 +msgid "dia size: " msgstr "" -#: ../src/video_format.c:43 -msgid "AVI - avi format" +#: ../guvcview/gui_gtk3_callbacks.c:1845 +msgid "pre dia size: " msgstr "" -#: ../src/video_format.c:52 -msgid "MKV - Matroska format" +#: ../guvcview/gui_gtk3_callbacks.c:1858 +msgid "pre me: " msgstr "" -#: ../src/video_format.c:61 -msgid "WEBM - format" +#: ../guvcview/gui_gtk3_callbacks.c:1871 +msgid "pre cmp: " msgstr "" -#: ../src/video_tab.c:216 -msgid "Frame Rate:" +#: ../guvcview/gui_gtk3_callbacks.c:1884 +msgid "cmp: " msgstr "" -#: ../src/video_tab.c:223 -msgid " Show" +#: ../guvcview/gui_gtk3_callbacks.c:1897 +msgid "sub cmp: " msgstr "" -#: ../src/video_tab.c:245 -msgid "Resolution:" +#: ../guvcview/gui_gtk3_callbacks.c:1910 +msgid "last predictor count: " msgstr "" -#: ../src/video_tab.c:271 -msgid "Camera Output:" +#: ../guvcview/gui_gtk3_callbacks.c:1923 +msgid "gop size: " msgstr "" -#: ../src/video_tab.c:293 -msgid "Apply" +#: ../guvcview/gui_gtk3_callbacks.c:1936 +msgid "qcompress: " msgstr "" -#: ../src/video_tab.c:300 -msgid "Quality:" +#: ../guvcview/gui_gtk3_callbacks.c:1949 +msgid "qblur: " msgstr "" -#: ../src/video_tab.c:310 -msgid "---- Video Filters ----" +#: ../guvcview/gui_gtk3_callbacks.c:1962 +msgid "subq: " msgstr "" -#. Mirror -#: ../src/video_tab.c:329 -msgid " Mirror" +#: ../guvcview/gui_gtk3_callbacks.c:1975 +msgid "framerefs: " msgstr "" -#. Upturn -#: ../src/video_tab.c:340 -msgid " Invert" +#: ../guvcview/gui_gtk3_callbacks.c:1988 +msgid "me method: " msgstr "" -#. Negate -#: ../src/video_tab.c:351 -msgid " Negative" +#: ../guvcview/gui_gtk3_callbacks.c:2001 +msgid "mb decision: " msgstr "" -#. Mono -#: ../src/video_tab.c:362 -msgid " Mono" +#: ../guvcview/gui_gtk3_callbacks.c:2014 +msgid "max B frames: " msgstr "" -#. Pieces -#: ../src/video_tab.c:374 -msgid " Pieces" +#: ../guvcview/gui_gtk3_callbacks.c:2027 +msgid "num threads: " msgstr "" -#. Particles -#: ../src/video_tab.c:386 -msgid " Particles" +#: ../guvcview/gui_gtk3_callbacks.c:2094 +msgid "audio codec values" msgstr "" -#: ../src/uvc_h264.c:596 -msgid "H264 Controls" +#. sample format +#: ../guvcview/gui_gtk3_callbacks.c:2119 +msgid "sample format: " msgstr "" -#: ../src/uvc_h264.c:615 +#: ../guvcview/gui_gtk3_h264ctrls.c:622 +#, fuzzy msgid "Rate Control Mode:" -msgstr "" +msgstr "Irudi kontrolak" -#: ../src/uvc_h264.c:626 +#: ../guvcview/gui_gtk3_h264ctrls.c:633 msgid "CBR" msgstr "" -#: ../src/uvc_h264.c:629 +#: ../guvcview/gui_gtk3_h264ctrls.c:636 msgid "VBR" msgstr "" -#: ../src/uvc_h264.c:633 +#: ../guvcview/gui_gtk3_h264ctrls.c:640 msgid "Constant QP" msgstr "" -#: ../src/uvc_h264.c:651 +#: ../guvcview/gui_gtk3_h264ctrls.c:658 msgid "Rate Control Mode flags:" msgstr "" -#: ../src/uvc_h264.c:676 +#: ../guvcview/gui_gtk3_h264ctrls.c:683 msgid "Temporal Scale Mode:" msgstr "" -#: ../src/uvc_h264.c:704 +#: ../guvcview/gui_gtk3_h264ctrls.c:711 msgid "Spatial Scale Mode:" msgstr "" -#: ../src/uvc_h264.c:737 +#: ../guvcview/gui_gtk3_h264ctrls.c:741 msgid "Frame Interval (100ns units):" msgstr "" -#: ../src/uvc_h264.c:772 +#: ../guvcview/gui_gtk3_h264ctrls.c:778 msgid "Bit Rate:" msgstr "" -#: ../src/uvc_h264.c:795 +#: ../guvcview/gui_gtk3_h264ctrls.c:801 msgid "Hints:" msgstr "" -#: ../src/uvc_h264.c:800 +#: ../guvcview/gui_gtk3_h264ctrls.c:806 msgid "Resolution" msgstr "" -#: ../src/uvc_h264.c:804 +#: ../guvcview/gui_gtk3_h264ctrls.c:810 msgid "Profile" msgstr "" -#: ../src/uvc_h264.c:808 +#: ../guvcview/gui_gtk3_h264ctrls.c:814 +#, fuzzy msgid "Rate Control" -msgstr "" +msgstr "Irudi kontrolak" -#: ../src/uvc_h264.c:812 +#: ../guvcview/gui_gtk3_h264ctrls.c:818 msgid "Usage Type" msgstr "" -#: ../src/uvc_h264.c:816 +#: ../guvcview/gui_gtk3_h264ctrls.c:822 msgid "Slice Mode" msgstr "" -#: ../src/uvc_h264.c:820 +#: ../guvcview/gui_gtk3_h264ctrls.c:826 msgid "Slice Unit" msgstr "" -#: ../src/uvc_h264.c:824 +#: ../guvcview/gui_gtk3_h264ctrls.c:830 msgid "MVC View" msgstr "" -#: ../src/uvc_h264.c:828 +#: ../guvcview/gui_gtk3_h264ctrls.c:834 msgid "Temporal Scale" msgstr "" -#: ../src/uvc_h264.c:832 +#: ../guvcview/gui_gtk3_h264ctrls.c:838 msgid "SNR Scale" msgstr "" -#: ../src/uvc_h264.c:836 +#: ../guvcview/gui_gtk3_h264ctrls.c:842 msgid "Spatial Scale" msgstr "" -#: ../src/uvc_h264.c:840 +#: ../guvcview/gui_gtk3_h264ctrls.c:846 msgid "Spatial Layer Ratio" msgstr "" -#: ../src/uvc_h264.c:844 +#: ../guvcview/gui_gtk3_h264ctrls.c:850 msgid "Frame Interval" msgstr "" -#: ../src/uvc_h264.c:848 +#: ../guvcview/gui_gtk3_h264ctrls.c:854 msgid "Leaky Bucket Size" msgstr "" -#: ../src/uvc_h264.c:852 +#: ../guvcview/gui_gtk3_h264ctrls.c:858 msgid "Bit Rate" msgstr "" -#: ../src/uvc_h264.c:856 ../src/uvc_h264.c:1250 +#: ../guvcview/gui_gtk3_h264ctrls.c:862 ../guvcview/gui_gtk3_h264ctrls.c:1220 msgid "CABAC" msgstr "" -#: ../src/uvc_h264.c:860 +#: ../guvcview/gui_gtk3_h264ctrls.c:866 msgid "(I) Frame Period" msgstr "" -#: ../src/uvc_h264.c:907 +#: ../guvcview/gui_gtk3_h264ctrls.c:878 msgid "Slice Mode:" msgstr "" -#: ../src/uvc_h264.c:914 +#: ../guvcview/gui_gtk3_h264ctrls.c:885 msgid "no multiple slices" msgstr "" -#: ../src/uvc_h264.c:916 +#: ../guvcview/gui_gtk3_h264ctrls.c:887 msgid "bits/slice" msgstr "" -#: ../src/uvc_h264.c:918 +#: ../guvcview/gui_gtk3_h264ctrls.c:889 msgid "Mbits/slice" msgstr "" -#: ../src/uvc_h264.c:920 +#: ../guvcview/gui_gtk3_h264ctrls.c:891 msgid "slices/frame" msgstr "" -#: ../src/uvc_h264.c:929 +#: ../guvcview/gui_gtk3_h264ctrls.c:900 msgid "Slice Units:" msgstr "" -#: ../src/uvc_h264.c:950 +#: ../guvcview/gui_gtk3_h264ctrls.c:921 msgid "Profile:" msgstr "" -#: ../src/uvc_h264.c:957 +#: ../guvcview/gui_gtk3_h264ctrls.c:928 msgid "Baseline Profile" msgstr "" -#: ../src/uvc_h264.c:959 +#: ../guvcview/gui_gtk3_h264ctrls.c:930 msgid "Main Profile" msgstr "" -#: ../src/uvc_h264.c:961 +#: ../guvcview/gui_gtk3_h264ctrls.c:932 msgid "High Profile" msgstr "" -#: ../src/uvc_h264.c:963 +#: ../guvcview/gui_gtk3_h264ctrls.c:934 msgid "Scalable Baseline Profile" msgstr "" -#: ../src/uvc_h264.c:965 +#: ../guvcview/gui_gtk3_h264ctrls.c:936 msgid "Scalable High Profile" msgstr "" -#: ../src/uvc_h264.c:967 +#: ../guvcview/gui_gtk3_h264ctrls.c:938 msgid "Multiview High Profile" msgstr "" -#: ../src/uvc_h264.c:969 +#: ../guvcview/gui_gtk3_h264ctrls.c:940 msgid "Stereo High Profile" msgstr "" -#: ../src/uvc_h264.c:1008 +#: ../guvcview/gui_gtk3_h264ctrls.c:979 msgid "Profile flags:" msgstr "" -#: ../src/uvc_h264.c:1033 +#: ../guvcview/gui_gtk3_h264ctrls.c:1004 msgid "(I) Frame Period (ms):" msgstr "" -#: ../src/uvc_h264.c:1054 +#: ../guvcview/gui_gtk3_h264ctrls.c:1025 msgid "Estimated Video Delay (ms):" msgstr "" -#: ../src/uvc_h264.c:1075 +#: ../guvcview/gui_gtk3_h264ctrls.c:1046 msgid "Estimated Max Config Delay (ms):" msgstr "" -#: ../src/uvc_h264.c:1096 +#: ../guvcview/gui_gtk3_h264ctrls.c:1067 msgid "Usage Type:" msgstr "" -#: ../src/uvc_h264.c:1103 +#: ../guvcview/gui_gtk3_h264ctrls.c:1074 msgid "Real-time" msgstr "" -#: ../src/uvc_h264.c:1105 +#: ../guvcview/gui_gtk3_h264ctrls.c:1076 msgid "Broadcast" msgstr "" -#: ../src/uvc_h264.c:1107 +#: ../guvcview/gui_gtk3_h264ctrls.c:1078 msgid "Storage" msgstr "" -#: ../src/uvc_h264.c:1109 +#: ../guvcview/gui_gtk3_h264ctrls.c:1080 msgid "(0) Non-scalable single layer AVC" msgstr "" -#: ../src/uvc_h264.c:1111 +#: ../guvcview/gui_gtk3_h264ctrls.c:1082 msgid "(1) SVC temporal scalability with hierarchical P" msgstr "" -#: ../src/uvc_h264.c:1113 +#: ../guvcview/gui_gtk3_h264ctrls.c:1084 msgid "(2q) SVC temporal scalability + Quality/SNR scalability" msgstr "" -#: ../src/uvc_h264.c:1115 +#: ../guvcview/gui_gtk3_h264ctrls.c:1086 msgid "(2s) SVC temporal scalability + spatial scalability" msgstr "" -#: ../src/uvc_h264.c:1117 +#: ../guvcview/gui_gtk3_h264ctrls.c:1088 msgid "(3) Full SVC scalability" msgstr "" -#: ../src/uvc_h264.c:1131 +#: ../guvcview/gui_gtk3_h264ctrls.c:1102 msgid "SNR Control Mode:" msgstr "" -#: ../src/uvc_h264.c:1138 +#: ../guvcview/gui_gtk3_h264ctrls.c:1109 msgid "No SNR Enhancement Layer" msgstr "" -#: ../src/uvc_h264.c:1140 +#: ../guvcview/gui_gtk3_h264ctrls.c:1111 msgid "CGS NonRewrite (2 Layer)" msgstr "" -#: ../src/uvc_h264.c:1142 +#: ../guvcview/gui_gtk3_h264ctrls.c:1113 msgid "CGS NonRewrite (3 Layer)" msgstr "" -#: ../src/uvc_h264.c:1144 +#: ../guvcview/gui_gtk3_h264ctrls.c:1115 msgid "CGS Rewrite (2 Layer)" msgstr "" -#: ../src/uvc_h264.c:1146 +#: ../guvcview/gui_gtk3_h264ctrls.c:1117 msgid "CGS Rewrite (3 Layer)" msgstr "" -#: ../src/uvc_h264.c:1148 +#: ../guvcview/gui_gtk3_h264ctrls.c:1119 msgid "MGS (2 Layer)" msgstr "" -#: ../src/uvc_h264.c:1173 +#: ../guvcview/gui_gtk3_h264ctrls.c:1144 msgid "Stream Mux Enable" msgstr "" -#: ../src/uvc_h264.c:1180 +#: ../guvcview/gui_gtk3_h264ctrls.c:1151 msgid "Embed H.264 aux stream" msgstr "" -#: ../src/uvc_h264.c:1182 +#: ../guvcview/gui_gtk3_h264ctrls.c:1153 msgid "Embed YUY2 aux stream" msgstr "" -#: ../src/uvc_h264.c:1184 +#: ../guvcview/gui_gtk3_h264ctrls.c:1155 msgid "Embed NV12 aux stream" msgstr "" -#: ../src/uvc_h264.c:1204 +#: ../guvcview/gui_gtk3_h264ctrls.c:1175 msgid "MJPG payload container" msgstr "" -#: ../src/uvc_h264.c:1219 +#: ../guvcview/gui_gtk3_h264ctrls.c:1189 msgid "Stream Format:" msgstr "" -#: ../src/uvc_h264.c:1227 +#: ../guvcview/gui_gtk3_h264ctrls.c:1197 msgid "Byte stream format (H.264 Annex-B)" msgstr "" -#: ../src/uvc_h264.c:1229 +#: ../guvcview/gui_gtk3_h264ctrls.c:1199 msgid "NAL stream format" msgstr "" -#: ../src/uvc_h264.c:1240 +#: ../guvcview/gui_gtk3_h264ctrls.c:1210 msgid "Entropy CABAC:" msgstr "" -#: ../src/uvc_h264.c:1248 +#: ../guvcview/gui_gtk3_h264ctrls.c:1218 msgid "CAVLC" msgstr "" -#: ../src/uvc_h264.c:1261 +#: ../guvcview/gui_gtk3_h264ctrls.c:1231 msgid "Picture timing SEI" msgstr "" -#: ../src/uvc_h264.c:1268 +#: ../guvcview/gui_gtk3_h264ctrls.c:1238 msgid "B Frames:" msgstr "" -#: ../src/uvc_h264.c:1293 +#: ../guvcview/gui_gtk3_h264ctrls.c:1263 msgid "Preview Flipped" msgstr "" -#: ../src/uvc_h264.c:1300 +#: ../guvcview/gui_gtk3_h264ctrls.c:1270 msgid "Additional MVC Views:" msgstr "" -#: ../src/uvc_h264.c:1325 +#: ../guvcview/gui_gtk3_h264ctrls.c:1295 msgid "Simulcast stream index:" msgstr "" -#: ../src/uvc_h264.c:1350 +#: ../guvcview/gui_gtk3_h264ctrls.c:1320 msgid "Spatial Layer Ratio:" msgstr "" -#: ../src/uvc_h264.c:1379 +#: ../guvcview/gui_gtk3_h264ctrls.c:1349 msgid "Leaky Bucket Size (ms):" msgstr "" #. encoder reset -#: ../src/uvc_h264.c:1406 +#: ../guvcview/gui_gtk3_h264ctrls.c:1376 msgid "Encoder Reset" msgstr "" -#. -#. h264_controls->probe_button = gtk_button_new_with_label(_("PROBE")); -#. g_signal_connect (GTK_BUTTON(h264_controls->probe_button), "clicked", +#. +#. GtkWidget *probe_button = gtk_button_new_with_label(_("PROBE")); +#. g_signal_connect (GTK_BUTTON(probe_button), "clicked", #. G_CALLBACK (h264_probe_button_clicked), all_data); -#. -#. gtk_grid_attach (GTK_GRID(table), h264_controls->probe_button, 0, line, 1 ,1); -#. gtk_widget_show(h264_controls->probe_button); -#. -#: ../src/uvc_h264.c:1421 +#. +#. gtk_grid_attach (GTK_GRID(h264_controls_grid), probe_button, 0, line, 1 ,1); +#. gtk_widget_show(probe_button); +#. +#: ../guvcview/gui_gtk3_h264ctrls.c:1391 msgid "COMMIT" msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:70 +msgid "Settings" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:73 +msgid "Hardware Defaults" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:81 +msgid "Camera Button" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:86 +msgid "Capture Image" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:91 +msgid "Capture Video" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:134 +msgid "Photo" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:135 ../guvcview/gui_gtk3_menu.c:159 +msgid "File" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:136 ../guvcview/gui_gtk3_menu.c:160 +msgid "Increment Filename" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:158 +msgid "Video" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:175 +msgid "Video Codec" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:202 +msgid "Video Codec Properties" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:208 +msgid "Audio Codec" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:235 +msgid "Audio Codec Properties" +msgstr "" + +#: ../guvcview/gui_gtk3_v4l2ctrls.c:174 +msgid "Left" +msgstr "Ezkerrera" + +#: ../guvcview/gui_gtk3_v4l2ctrls.c:175 +msgid "Right" +msgstr "Eskuina" + +#: ../guvcview/gui_gtk3_v4l2ctrls.c:179 +msgid "Down" +msgstr "Behera" + +#: ../guvcview/gui_gtk3_v4l2ctrls.c:180 +msgid "Up" +msgstr "Gora" + +#. turn it into a menu control +#: ../guvcview/gui_gtk3_v4l2ctrls.c:296 +msgid "8 bit" +msgstr "" + +#: ../guvcview/gui_gtk3_v4l2ctrls.c:296 +msgid "12 bit" +msgstr "" + +#. add a virtual control for software autofocus +#: ../guvcview/gui_gtk3_v4l2ctrls.c:348 +msgid "Auto Focus (continuous)" +msgstr "" + +#: ../guvcview/gui_gtk3_v4l2ctrls.c:349 +msgid "set Focus" +msgstr "Fokatu" + +#. control_widgets_list[n].widget2 = gtk_button_new_from_stock(GTK_STOCK_APPLY); +#. control_widgets_list[n].widget2= gtk_button_new_from_stock(GTK_STOCK_APPLY); +#. control_widgets_list[n].widget2 = gtk_button_new_from_stock(GTK_STOCK_APPLY); +#: ../guvcview/gui_gtk3_v4l2ctrls.c:433 ../guvcview/gui_gtk3_v4l2ctrls.c:456 +#: ../guvcview/gui_gtk3_v4l2ctrls.c:478 +msgid "_Apply" +msgstr "" + +#: ../guvcview/gui_gtk3_videoctrls.c:144 +msgid "Frame Rate:" +msgstr "" + +#: ../guvcview/gui_gtk3_videoctrls.c:204 +msgid "Resolution:" +msgstr "" + +#: ../guvcview/gui_gtk3_videoctrls.c:254 +msgid "Camera Output:" +msgstr "" + +#: ../guvcview/gui_gtk3_videoctrls.c:287 +msgid "---- Video Filters ----" +msgstr "" + +#. Mirror FX +#: ../guvcview/gui_gtk3_videoctrls.c:307 +msgid " Mirror" +msgstr "" + +#. Upturn FX +#: ../guvcview/gui_gtk3_videoctrls.c:319 +msgid " Invert" +msgstr "" + +#. Negate FX +#: ../guvcview/gui_gtk3_videoctrls.c:331 +msgid " Negative" +msgstr "" + +#. Mono FX +#: ../guvcview/gui_gtk3_videoctrls.c:343 +msgid " Mono" +msgstr "" + +#. Pieces FX +#: ../guvcview/gui_gtk3_videoctrls.c:356 +msgid " Pieces" +msgstr "" + +#. Particles +#: ../guvcview/gui_gtk3_videoctrls.c:369 +msgid " Particles" +msgstr "" + +#: ../guvcview/options.c:51 +msgid "Print help" +msgstr "" + +#: ../guvcview/options.c:58 +msgid "Print version" +msgstr "" + +#: ../guvcview/options.c:64 +msgid "LEVEL" +msgstr "" + +#: ../guvcview/options.c:65 +msgid "Set Verbosity level (def: 0)" +msgstr "" + +#: ../guvcview/options.c:71 +msgid "DEVICE" +msgstr "" + +#: ../guvcview/options.c:72 +msgid "Set device name (def: /dev/video0)" +msgstr "" + +#: ../guvcview/options.c:78 +msgid "METHOD" +msgstr "" + +#: ../guvcview/options.c:79 +msgid "Set capture method [read | mmap (def)]" +msgstr "" + +#: ../guvcview/options.c:85 +msgid "WIDTHxHEIGHT" +msgstr "" + +#: ../guvcview/options.c:86 +msgid "Request resolution (e.g 640x480)" +msgstr "" + +#: ../guvcview/options.c:92 +msgid "FOURCC" +msgstr "" + +#: ../guvcview/options.c:93 +msgid "Request format (e.g MJPG)" +msgstr "" + +#: ../guvcview/options.c:99 +msgid "RENDER_API" +msgstr "" + +#: ../guvcview/options.c:100 +msgid "Select render API (e.g none; sdl)" +msgstr "" + +#: ../guvcview/options.c:106 +msgid "AUDIO_API" +msgstr "" + +#: ../guvcview/options.c:107 +msgid "Select audio API (e.g none; port; pulse)" +msgstr "" + +#: ../guvcview/options.c:113 +msgid "AUDIO_DEVICE" +msgstr "" + +#: ../guvcview/options.c:114 +msgid "Select audio device index for selected api (0..N)" +msgstr "" + +#: ../guvcview/options.c:120 +msgid "GUI_API" +msgstr "" + +#: ../guvcview/options.c:121 +msgid "Select GUI API (e.g none; gtk3)" +msgstr "" + +#: ../guvcview/options.c:127 ../guvcview/options.c:134 +msgid "CODEC" +msgstr "" + +#: ../guvcview/options.c:128 +msgid "Audio codec [pcm mp2 mp3 aac ac3 vorb]" +msgstr "" + +#: ../guvcview/options.c:135 +msgid "Video codec [raw mjpg mpeg flv1 wmv1 mpg2 mp43 dx50 h264 vp80 theo]" +msgstr "" + +#: ../guvcview/options.c:141 ../guvcview/options.c:148 +#: ../guvcview/options.c:155 +msgid "FILENAME" +msgstr "" + +#: ../guvcview/options.c:142 +msgid "load control profile" +msgstr "" + +#: ../guvcview/options.c:149 +msgid "filename for captured video)" +msgstr "" + +#: ../guvcview/options.c:156 +msgid "filename for captured image)" +msgstr "" + +#: ../guvcview/options.c:162 ../guvcview/options.c:169 +msgid "TIME_IN_SEC" +msgstr "" + +#: ../guvcview/options.c:163 +msgid "time (double) in sec. for video capture)" +msgstr "" + +#: ../guvcview/options.c:170 +msgid "time (double) in sec. between captured photos)" +msgstr "" + +#: ../guvcview/options.c:176 +msgid "TOTAL" +msgstr "" + +#: ../guvcview/options.c:177 +msgid "total number of captured photos)" +msgstr "" + +#: ../guvcview/options.c:184 +msgid "Start in control panel mode" +msgstr "" + +#: ../guvcview/options.c:307 +#, fuzzy, c-format +msgid "" +"Guvcview version %s\n" +"\n" +msgstr "Gucview oharra:" + +#: ../guvcview/options.c:308 +#, c-format +msgid "" +"Usage:\n" +" guvcview [OPTIONS]\n" +"\n" +msgstr "" + +#: ../guvcview/options.c:309 +#, c-format +msgid "OPTIONS:\n" +msgstr "" + +#: ../guvcview/video_capture.c:819 +#, c-format +msgid "saving video to %s" +msgstr "" + +#. if(debug_level > 1) +#. printf("GUVCVIEW: saving image to %s\n", img_filename); +#: ../guvcview/video_capture.c:1069 +#, c-format +msgid "saving image to %s" +msgstr "" + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to open device" +#~ msgstr "" +#~ "Gucview errorea:\n" +#~ "\n" +#~ "Ez da posible gailua zabaltzea" + +#~ msgid "" +#~ "Please make sure the camera is connected\n" +#~ "and that the correct driver is installed." +#~ msgstr "" +#~ "Ziurtatu kamera konektatua\n" +#~ "eta driver-a instalatuta dagoela" + +#~ msgid "" +#~ "Guvcview:\n" +#~ "\n" +#~ "UVC Extension controls" +#~ msgstr "" +#~ "Gucview:\n" +#~ "\n" +#~ "UVC luzapenaren kontrolak" + +#~ msgid "Extension controls were added to the UVC driver" +#~ msgstr "Luzapen kontrolak UVC kontroladoreari gehitu zaizkio" + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "UVC Extension controls" +#~ msgstr "" +#~ "Gucview errorea:\n" +#~ "\n" +#~ "UVC luzapenaren kontrolak" + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Can't set a valid video stream for guvcview" +#~ msgstr "" +#~ "Gucview errorea:\n" +#~ "\n" +#~ "Ezin izan da bideo-korrontea ezarri" + +#~ msgid "" +#~ "Make sure your device driver is v4l2 compliant\n" +#~ "and that it is properly installed." +#~ msgstr "" +#~ "Mesedez,egiaztatu v4I2 kontrolatzailea duzula\n" +#~ "eta instalatuta dagoela." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to start with minimum setup" +#~ msgstr "" +#~ "Gucview errorea:\n" +#~ "\n" +#~ "Ezin izan da konfigurazio minimoarekin abiarazi" + +#~ msgid "Please reconnect your camera." +#~ msgstr "Mesedez, kamera berriro konektatu" + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Couldn't query device capabilities" +#~ msgstr "" +#~ "Gucview errorea:\n" +#~ "\n" +#~ "Ezin izan da gailua ireki" + +#~ msgid "Make sure the device driver supports v4l2." +#~ msgstr "Ziurtatu gailuaren kontrolatzaileak v4I2 eusten duela" + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Read method error" +#~ msgstr "" +#~ "Gucview errorea:\n" +#~ "\n" +#~ "Irakurketametodoaren errorea" + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to allocate Buffers" +#~ msgstr "" +#~ "Gucview errorea:\n" +#~ "\n" +#~ "Ezin izan dira bufferrak esleitu" + +#~ msgid "Please try restarting your system." +#~ msgstr "Mesedez saiatu sistema berrabiarazten." + +#~ msgid "Number of Pictures to capture" +#~ msgstr "Kapturatu beharreko argazki kopurua" + +#~ msgid "Load Profile at start" +#~ msgstr "Profila kargatu hastean" + +#~ msgid "- local options" +#~ msgstr "-aukera lokalak" + +#~ msgid "Not enough free space left on disk" +#~ msgstr "Ez dago leku nahikorik diskoan" diff -Nru guvcview-1.7.3/po/fo.po guvcview-2.0.1+ubuntu1~ppa1/po/fo.po --- guvcview-1.7.3/po/fo.po 2014-03-24 22:56:28.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/po/fo.po 2014-10-05 10:41:44.000000000 +0000 @@ -7,16 +7,16 @@ msgstr "" "Project-Id-Version: guvcview\n" "Report-Msgid-Bugs-To: pj.assis@gmail.com\n" -"POT-Creation-Date: 2013-11-14 22:15+0000\n" +"POT-Creation-Date: 2014-08-17 22:49+0100\n" "PO-Revision-Date: 2010-08-05 18:25+0000\n" "Last-Translator: Gunleif Joensen \n" "Language-Team: Faroese \n" +"Language: fo\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-12-08 10:36+0000\n" "X-Generator: Launchpad (build 16869)\n" -"Language: fo\n" #: ../data/guvcview.desktop.in.in.h:1 msgid "guvcview" @@ -30,1353 +30,1347 @@ msgid "A video viewer and capturer for the linux uvc driver" msgstr "" -#: ../src/acodecs.c:59 -msgid "PCM - uncompressed (16 bit)" -msgstr "" - -#: ../src/acodecs.c:76 -msgid "MPEG2 - (lavc)" -msgstr "" - -#: ../src/acodecs.c:93 -msgid "MP3 - (lavc)" -msgstr "" - -#: ../src/acodecs.c:110 -msgid "Dolby AC3 - (lavc)" -msgstr "" - -#: ../src/acodecs.c:127 -msgid "ACC Low - (faac)" -msgstr "" - -#: ../src/acodecs.c:144 -msgid "Vorbis" -msgstr "" - -#: ../src/audio_tab.c:87 -msgid "Audio" -msgstr "" - -#: ../src/audio_tab.c:105 -msgid " Sound" -msgstr "" - -#. VU meter on the image (OSD) -#: ../src/audio_tab.c:116 -msgid " Show VU meter" -msgstr "" - -#: ../src/audio_tab.c:128 -msgid "Audio API:" -msgstr "" - -#: ../src/audio_tab.c:139 -msgid "PORTAUDIO" -msgstr "" - -#: ../src/audio_tab.c:140 -msgid "PULSEAUDIO" -msgstr "" - -#: ../src/audio_tab.c:156 ../src/audio_tab.c:179 -msgid "Input Device:" -msgstr "" - -#: ../src/audio_tab.c:189 ../src/audio_tab.c:221 -msgid "Dev. Default" -msgstr "" - -#: ../src/audio_tab.c:211 -msgid "Sample Rate:" -msgstr "" - -#: ../src/audio_tab.c:222 -msgid "1 - mono" -msgstr "" - -#: ../src/audio_tab.c:223 -msgid "2 - stereo" -msgstr "" - -#: ../src/audio_tab.c:258 -msgid "Channels:" +#: ../data/guvcview.appdata.xml.in.in.h:1 +msgid "capture video from v4l2 devices" msgstr "" -#: ../src/audio_tab.c:309 -msgid "---- Audio Effects ----" -msgstr "" - -#. Echo -#: ../src/audio_tab.c:328 -msgid " Echo" -msgstr "" - -#. FUZZ -#: ../src/audio_tab.c:339 -msgid " Fuzz" -msgstr "" - -#. Reverb -#: ../src/audio_tab.c:351 -msgid " Reverb" -msgstr "" - -#. WahWah -#: ../src/audio_tab.c:363 -msgid " WahWah" -msgstr "" - -#. Ducky -#: ../src/audio_tab.c:375 -msgid " Ducky" -msgstr "" - -#: ../src/callbacks.c:109 -msgid "Error" -msgstr "" - -#: ../src/callbacks.c:133 +#: ../data/guvcview.appdata.xml.in.in.h:2 msgid "" -"\n" -"You have more than one video device installed.\n" -"Do you want to try another one ?\n" -msgstr "" - -#. Devices -#: ../src/callbacks.c:140 ../src/video_tab.c:111 -msgid "Device:" -msgstr "" - -#: ../src/callbacks.c:272 -msgid "Save File" -msgstr "" - -#: ../src/callbacks.c:284 -msgid "File Format:" -msgstr "" - -#: ../src/callbacks.c:455 -msgid "codec values" -msgstr "" - -#: ../src/callbacks.c:466 -msgid "" -" encoder fps: \n" -" (0 - use fps combobox value)" -msgstr "" - -#: ../src/callbacks.c:479 -msgid " monotonic pts" -msgstr "" - -#. bit rate -#: ../src/callbacks.c:486 ../src/callbacks.c:809 -msgid "bit rate: " -msgstr "" - -#: ../src/callbacks.c:499 -msgid "qmax: " -msgstr "" - -#: ../src/callbacks.c:512 -msgid "qmin: " -msgstr "" - -#: ../src/callbacks.c:525 -msgid "max. qdiff: " -msgstr "" - -#: ../src/callbacks.c:538 -msgid "dia size: " +"Video capture tool for video4linux2 compliant cameras, with special emphasis " +"on the linux uvc driver. It provides Image (jpg, png, bmp) and Video (mjpeg, " +"flv1, wmv1, mpg2, mpg4,...) capture with sound in several " +"formats( currently: avi and matroska). I also supports a control panel " +"option (--control_only) that is compatible with any other v4l2 app." msgstr "" -#: ../src/callbacks.c:551 -msgid "pre dia size: " -msgstr "" - -#: ../src/callbacks.c:564 -msgid "pre me: " -msgstr "" - -#: ../src/callbacks.c:577 -msgid "pre cmp: " -msgstr "" - -#: ../src/callbacks.c:590 -msgid "cmp: " -msgstr "" - -#: ../src/callbacks.c:603 -msgid "sub cmp: " -msgstr "" - -#: ../src/callbacks.c:616 -msgid "last predictor count: " -msgstr "" - -#: ../src/callbacks.c:629 -msgid "gop size: " -msgstr "" - -#: ../src/callbacks.c:642 -msgid "qcompress: " -msgstr "" - -#: ../src/callbacks.c:655 -msgid "qblur: " -msgstr "" - -#: ../src/callbacks.c:668 -msgid "subq: " -msgstr "" - -#: ../src/callbacks.c:681 -msgid "framerefs: " -msgstr "" - -#: ../src/callbacks.c:694 -msgid "me method: " -msgstr "" - -#: ../src/callbacks.c:707 -msgid "mb decision: " -msgstr "" - -#: ../src/callbacks.c:720 -msgid "max B frames: " -msgstr "" - -#: ../src/callbacks.c:733 -msgid "num threads: " -msgstr "" - -#: ../src/callbacks.c:796 -msgid "audio codec values" -msgstr "" - -#. sample format -#: ../src/callbacks.c:823 -msgid "sample format: " -msgstr "" - -#: ../src/callbacks.c:1311 -msgid "start new" -msgstr "" - -#: ../src/callbacks.c:1314 -msgid "restart" -msgstr "" - -#: ../src/callbacks.c:1316 -msgid "new" -msgstr "" - -#: ../src/callbacks.c:1318 -msgid "cancel" -msgstr "" - -#: ../src/callbacks.c:1323 -msgid "" -"launch new process or restart?.\n" -"\n" -msgstr "" - -#: ../src/callbacks.c:1780 ../src/guvcview.c:565 -msgid "Cap. Image (I)" -msgstr "" - -#. disable image controls -#: ../src/callbacks.c:1791 ../src/guvcview.c:690 ../src/timers.c:101 -msgid "capturing photo to" -msgstr "" - -#: ../src/callbacks.c:1850 ../src/guvcview.c:575 -msgid "Cap. Video (V)" -msgstr "" - -#: ../src/callbacks.c:1876 ../src/guvcview.c:740 -msgid "capturing video to" -msgstr "" - -#. vid capture enabled from start -#: ../src/callbacks.c:1911 ../src/guvcview.c:570 -msgid "Stop Video (V)" -msgstr "" - -#: ../src/callbacks.c:1967 ../src/menubar.c:66 -msgid "Save Profile" -msgstr "" - -#: ../src/callbacks.c:1980 ../src/menubar.c:65 -msgid "Load Profile" -msgstr "" - -#: ../src/create_video.c:1098 ../src/guvcview.c:732 -msgid "Cap. Video" -msgstr "" - -#: ../src/guvcview.c:280 -msgid "Guvcview Video Capture" -msgstr "" - -#: ../src/guvcview.c:292 -msgid "GUVCViewer Controls" -msgstr "" - -#. can't open device -#: ../src/guvcview.c:342 -msgid "" -"Guvcview error:\n" -"\n" -"Unable to open device" -msgstr "" -"Guvcview villa:\n" -"\n" -"Kundi ikki lata tĂłleind upp" - -#: ../src/guvcview.c:343 -msgid "" -"Please make sure the camera is connected\n" -"and that the correct driver is installed." -msgstr "" - -#. uvc extension controls OK, give warning and shutdown (called with --add_ctrls) -#: ../src/guvcview.c:348 -msgid "" -"Guvcview:\n" -"\n" -"UVC Extension controls" -msgstr "" - -#: ../src/guvcview.c:349 -msgid "Extension controls were added to the UVC driver" +#. +#. * needed only for language files (not used) +#. +#. V4L2 control strings +#: ../gview_v4l2core/v4l2_controls.c:49 +msgid "User Controls" msgstr "" -#. uvc extension controls error - EACCES (needs root user) -#: ../src/guvcview.c:356 -msgid "" -"Guvcview error:\n" -"\n" -"UVC Extension controls" +#: ../gview_v4l2core/v4l2_controls.c:50 +msgid "Brightness" msgstr "" -#: ../src/guvcview.c:357 -msgid "" -"An error occurred while adding extension\n" -"controls to the UVC driver\n" -"Make sure you run guvcview as root (or sudo)." +#: ../gview_v4l2core/v4l2_controls.c:51 +msgid "Contrast" msgstr "" -#: ../src/guvcview.c:391 ../src/guvcview.c:399 ../src/guvcview.c:477 -msgid "" -"Guvcview error:\n" -"\n" -"Can't set a valid video stream for guvcview" +#: ../gview_v4l2core/v4l2_controls.c:52 +msgid "Hue" msgstr "" -#: ../src/guvcview.c:392 ../src/guvcview.c:400 ../src/guvcview.c:478 -msgid "" -"Make sure your device driver is v4l2 compliant\n" -"and that it is properly installed." +#: ../gview_v4l2core/v4l2_controls.c:53 +msgid "Saturation" msgstr "" -#: ../src/guvcview.c:422 ../src/guvcview.c:444 -msgid "" -"Guvcview error:\n" -"\n" -"Unable to start with minimum setup" +#: ../gview_v4l2core/v4l2_controls.c:54 +msgid "Sharpness" msgstr "" -#: ../src/guvcview.c:423 ../src/guvcview.c:445 -msgid "Please reconnect your camera." +#: ../gview_v4l2core/v4l2_controls.c:55 +msgid "Gamma" msgstr "" -#: ../src/guvcview.c:452 -msgid "" -"Guvcview error:\n" -"\n" -"Couldn't query device capabilities" +#: ../gview_v4l2core/v4l2_controls.c:56 +msgid "Backlight Compensation" msgstr "" -#: ../src/guvcview.c:453 -msgid "Make sure the device driver supports v4l2." +#: ../gview_v4l2core/v4l2_controls.c:57 +msgid "Power Line Frequency" msgstr "" -#: ../src/guvcview.c:457 -msgid "" -"Guvcview error:\n" -"\n" -"Read method error" +#: ../gview_v4l2core/v4l2_controls.c:58 +msgid "Hue, Automatic" msgstr "" -#: ../src/guvcview.c:458 -msgid "Please try mmap instead (--capture_method=1)." +#: ../gview_v4l2core/v4l2_controls.c:59 +msgid "Focus, Auto" msgstr "" -#: ../src/guvcview.c:466 -msgid "" -"Guvcview error:\n" -"\n" -"Unable to allocate Buffers" +#: ../gview_v4l2core/v4l2_controls.c:60 +msgid "Manual Mode" msgstr "" -#: ../src/guvcview.c:467 -msgid "Please try restarting your system." +#: ../gview_v4l2core/v4l2_controls.c:61 +msgid "Auto Mode" msgstr "" -#: ../src/guvcview.c:518 -msgid "Image Controls" +#: ../gview_v4l2core/v4l2_controls.c:62 +msgid "Shutter Priority Mode" msgstr "" -#. image auto capture -#: ../src/guvcview.c:561 -msgid "Stop Auto (I)" +#: ../gview_v4l2core/v4l2_controls.c:63 +msgid "Aperture Priority Mode" msgstr "" -#: ../src/guvcview.c:676 -msgid "" -"Guvcview error:\n" -"\n" -"Unable to create Video Thread" +#: ../gview_v4l2core/v4l2_controls.c:64 +msgid "Black Level" msgstr "" -#: ../src/guvcview.c:677 -msgid "Please report it to http://developer.berlios.de/bugs/?group_id=8179" +#: ../gview_v4l2core/v4l2_controls.c:65 +msgid "White Balance, Automatic" msgstr "" -#: ../src/img_controls.c:121 -msgid "Auto Focus (continuous)" +#: ../gview_v4l2core/v4l2_controls.c:66 +msgid "Do White Balance" msgstr "" -#: ../src/img_controls.c:122 -msgid "set Focus" +#: ../gview_v4l2core/v4l2_controls.c:67 +msgid "Red Balance" msgstr "" -#: ../src/image_format.c:35 -msgid "Jpeg (jpg)" +#: ../gview_v4l2core/v4l2_controls.c:68 +msgid "Blue Balance" msgstr "" -#: ../src/image_format.c:41 -msgid "Bitmap (Bmp)" +#: ../gview_v4l2core/v4l2_controls.c:69 +msgid "Exposure" msgstr "" -#: ../src/image_format.c:47 -msgid "Portable Network Graphics (Png)" +#: ../gview_v4l2core/v4l2_controls.c:70 +msgid "Gain, Automatic" msgstr "" -#: ../src/image_format.c:53 -msgid "Raw Image (raw)" +#: ../gview_v4l2core/v4l2_controls.c:71 +msgid "Gain" msgstr "" -#. controls menu -#: ../src/menubar.c:64 -msgid "Settings" +#: ../gview_v4l2core/v4l2_controls.c:72 +msgid "Horizontal Flip" msgstr "" -#: ../src/menubar.c:67 -msgid "Hardware Defaults" +#: ../gview_v4l2core/v4l2_controls.c:73 +msgid "Vertical Flip" msgstr "" -#: ../src/menubar.c:75 -msgid "Camera Button" +#: ../gview_v4l2core/v4l2_controls.c:74 +msgid "Horizontal Center" msgstr "" -#: ../src/menubar.c:79 -msgid "Capture Image" +#: ../gview_v4l2core/v4l2_controls.c:75 +msgid "Vertical Center" msgstr "" -#: ../src/menubar.c:84 -msgid "Capture Video" +#: ../gview_v4l2core/v4l2_controls.c:76 +msgid "Chroma AGC" msgstr "" -#. video menu -#: ../src/menubar.c:144 ../src/video_tab.c:95 -msgid "Video" +#: ../gview_v4l2core/v4l2_controls.c:77 +msgid "Color Killer" msgstr "" -#: ../src/menubar.c:145 ../src/menubar.c:233 -msgid "File" +#: ../gview_v4l2core/v4l2_controls.c:78 +msgid "Color Effects" msgstr "" -#: ../src/menubar.c:146 ../src/menubar.c:234 -msgid "Increment Filename" +#. CAMERA CLASS control strings +#: ../gview_v4l2core/v4l2_controls.c:81 +msgid "Camera Controls" msgstr "" -#: ../src/menubar.c:164 -msgid "Video Codec" +#: ../gview_v4l2core/v4l2_controls.c:82 +msgid "Auto Exposure" msgstr "" -#: ../src/menubar.c:189 -msgid "Video Codec Properties" +#: ../gview_v4l2core/v4l2_controls.c:83 +msgid "Exposure Time, Absolute" msgstr "" -#: ../src/menubar.c:196 -msgid "Audio Codec" +#: ../gview_v4l2core/v4l2_controls.c:84 +msgid "Exposure, Dynamic Framerate" msgstr "" -#: ../src/menubar.c:217 -msgid "Audio Codec Properties" +#: ../gview_v4l2core/v4l2_controls.c:85 +msgid "Pan, Relative" msgstr "" -#. photo menu -#: ../src/menubar.c:232 -msgid "Photo" +#: ../gview_v4l2core/v4l2_controls.c:86 +msgid "Tilt, Relative" msgstr "" -#: ../src/options.c:753 -msgid "Prints version" +#: ../gview_v4l2core/v4l2_controls.c:87 +msgid "Pan, Reset" msgstr "" -#: ../src/options.c:754 -msgid "Displays debug information" +#: ../gview_v4l2core/v4l2_controls.c:88 +msgid "Tilt, Reset" msgstr "" -#: ../src/options.c:755 -msgid "Video Device to use [default: /dev/video0]" +#: ../gview_v4l2core/v4l2_controls.c:89 +msgid "Pan, Absolute" msgstr "" -#: ../src/options.c:756 -msgid "Exit after adding UVC extension controls (needs root/sudo)" +#: ../gview_v4l2core/v4l2_controls.c:91 +msgid "Focus, Absolute" msgstr "" -#: ../src/options.c:757 -msgid "Don't stream video (image controls only)" +#: ../gview_v4l2core/v4l2_controls.c:92 +msgid "Focus, Relative" msgstr "" -#: ../src/options.c:758 -msgid "Don't display a GUI" +#: ../gview_v4l2core/v4l2_controls.c:93 +msgid "Focus, Automatic" msgstr "" -#: ../src/options.c:759 -msgid "Capture method (1-mmap (default) 2-read)" +#: ../gview_v4l2core/v4l2_controls.c:94 +msgid "Zoom, Absolute" msgstr "" -#: ../src/options.c:760 -msgid "Configuration file" +#: ../gview_v4l2core/v4l2_controls.c:95 +msgid "Zoom, Relative" msgstr "" -#: ../src/options.c:761 -msgid "Hardware accelaration (enable(1) | disable(0))" +#: ../gview_v4l2core/v4l2_controls.c:96 +msgid "Zoom, Continuous" msgstr "" -#: ../src/options.c:762 -msgid "" -"Pixel " -"format(mjpg|jpeg|yuyv|yvyu|uyvy|yyuv|yu12|yv12|nv12|nv21|nv16|nv61|y41p|grey|" -"y10b|y16 |s501|s505|s508|gbrg|grbg|ba81|rggb|bgr3|rgb3)" +#: ../gview_v4l2core/v4l2_controls.c:97 +msgid "Privacy" msgstr "" -#: ../src/options.c:763 -msgid "Frame size, default: 640x480" +#. UVC specific control strings +#: ../gview_v4l2core/v4l2_controls.c:100 +msgid "Exposure, Auto" msgstr "" -#: ../src/options.c:764 -msgid "Image File name" +#: ../gview_v4l2core/v4l2_controls.c:101 +msgid "Exposure, Auto Priority" msgstr "" -#: ../src/options.c:765 -msgid "Image capture interval in seconds" +#: ../gview_v4l2core/v4l2_controls.c:102 +msgid "Exposure (Absolute)" msgstr "" -#: ../src/options.c:766 -msgid "Number of Pictures to capture" +#: ../gview_v4l2core/v4l2_controls.c:103 +msgid "White Balance Temperature, Auto" msgstr "" -#: ../src/options.c:767 -msgid "Video File name (capture from start)" +#: ../gview_v4l2core/v4l2_controls.c:104 +msgid "White Balance Temperature" msgstr "" -#: ../src/options.c:768 -msgid "Video capture time (in seconds)" +#: ../gview_v4l2core/v4l2_controls.c:105 +msgid "White Balance Component, Auto" msgstr "" -#: ../src/options.c:769 -msgid "Exits guvcview after closing video" +#: ../gview_v4l2core/v4l2_controls.c:106 +msgid "White Balance Blue Component" msgstr "" -#: ../src/options.c:770 -msgid "Number of initial frames to skip" +#: ../gview_v4l2core/v4l2_controls.c:107 +msgid "White Balance Red Component" msgstr "" -#: ../src/options.c:771 -msgid "Show FPS value (enable(1) | disable (0))" +#. libwebcam specific control strings +#: ../gview_v4l2core/v4l2_controls.c:110 +msgid "Focus" msgstr "" -#: ../src/options.c:772 -msgid "Load Profile at start" +#: ../gview_v4l2core/v4l2_controls.c:111 +msgid "Focus (Absolute)" msgstr "" -#: ../src/options.c:773 -msgid "List controls method (0:loop, 1:next_ctrl flag [def])" +#: ../gview_v4l2core/v4l2_xu_ctrls.c:63 ../guvcview/gui_gtk3_v4l2ctrls.c:239 +msgid "Off" msgstr "" -#: ../src/options.c:779 -msgid "- local options" +#: ../gview_v4l2core/v4l2_xu_ctrls.c:64 ../guvcview/gui_gtk3_v4l2ctrls.c:239 +msgid "On" msgstr "" -#. gdk_threads_enter(); -#: ../src/timers.c:119 -msgid "Cap. Image" +#: ../gview_v4l2core/v4l2_xu_ctrls.c:65 ../guvcview/gui_gtk3_v4l2ctrls.c:239 +msgid "Blinking" msgstr "" -#: ../src/timers.c:217 -msgid "Guvcview Warning:" +#: ../gview_v4l2core/v4l2_xu_ctrls.c:66 ../guvcview/gui_gtk3_v4l2ctrls.c:239 +msgid "Auto" msgstr "" -#: ../src/timers.c:217 -msgid "Not enough free space left on disk" +#: ../gview_v4l2core/v4l2_xu_ctrls.c:73 +msgid "Pan (relative)" msgstr "" -#: ../src/v4l2_controls.c:794 -msgid "Left" +#: ../gview_v4l2core/v4l2_xu_ctrls.c:86 +msgid "Tilt (relative)" msgstr "" -#: ../src/v4l2_controls.c:795 -msgid "Right" +#: ../gview_v4l2core/v4l2_xu_ctrls.c:99 +msgid "Pan Reset" msgstr "" -#: ../src/v4l2_controls.c:799 -msgid "Down" +#: ../gview_v4l2core/v4l2_xu_ctrls.c:112 +msgid "Tilt Reset" msgstr "" -#: ../src/v4l2_controls.c:800 -msgid "Up" +#: ../gview_v4l2core/v4l2_xu_ctrls.c:125 +msgid "Focus (absolute)" msgstr "" -#: ../src/v4l2_controls.c:845 -msgid "Off" +#: ../gview_v4l2core/v4l2_xu_ctrls.c:138 +msgid "LED1 Mode" msgstr "" -#: ../src/v4l2_controls.c:845 -msgid "On" +#: ../gview_v4l2core/v4l2_xu_ctrls.c:151 +msgid "LED1 Frequency" msgstr "" -#: ../src/v4l2_controls.c:845 -msgid "Blinking" +#: ../gview_v4l2core/v4l2_xu_ctrls.c:164 +msgid "Disable video processing" msgstr "" -#: ../src/v4l2_controls.c:845 -msgid "Auto" +#: ../gview_v4l2core/v4l2_xu_ctrls.c:177 +msgid "Raw bits per pixel" msgstr "" -#. turn it into a menu control -#: ../src/v4l2_controls.c:894 -msgid "8 bit" +#: ../gview_encoder/audio_codecs.c:63 +msgid "PCM - uncompressed (float 32 bit)" msgstr "" -#: ../src/v4l2_controls.c:894 -msgid "12 bit" +#: ../gview_encoder/audio_codecs.c:80 +msgid "MP2 (MPEG audio layer 2)" msgstr "" -#: ../src/v4l2_dyna_ctrls.c:96 -msgid "Pan (relative)" +#: ../gview_encoder/audio_codecs.c:97 +msgid "MP3 (MPEG audio layer 3)" msgstr "" -#: ../src/v4l2_dyna_ctrls.c:109 -msgid "Tilt (relative)" +#: ../gview_encoder/audio_codecs.c:118 +msgid "AC-3 (ATSC A/52A)" msgstr "" -#: ../src/v4l2_dyna_ctrls.c:122 -msgid "Pan Reset" +#: ../gview_encoder/audio_codecs.c:139 +msgid "AAC (Advanced Audio Coding)" msgstr "" -#: ../src/v4l2_dyna_ctrls.c:135 -msgid "Tilt Reset" +#: ../gview_encoder/audio_codecs.c:160 +msgid "Vorbis" msgstr "" -#: ../src/v4l2_dyna_ctrls.c:148 -msgid "Focus (absolute)" +#: ../gview_encoder/video_codecs.c:75 +msgid "Raw camera input" msgstr "" -#: ../src/v4l2_dyna_ctrls.c:161 -msgid "LED1 Mode" +#: ../gview_encoder/video_codecs.c:111 +msgid "MJPG - compressed" msgstr "" -#: ../src/v4l2_dyna_ctrls.c:174 -msgid "LED1 Frequency" +#: ../gview_encoder/video_codecs.c:147 +msgid "MPEG video 1" msgstr "" -#: ../src/v4l2_dyna_ctrls.c:187 -msgid "Disable video processing" +#: ../gview_encoder/video_codecs.c:183 +msgid "FLV1 - flash video 1" msgstr "" -#: ../src/v4l2_dyna_ctrls.c:200 -msgid "Raw bits per pixel" +#: ../gview_encoder/video_codecs.c:219 +msgid "WMV1 - win. med. video 7" msgstr "" -#. needed only for language files (not used) -#. V4L2 control strings -#: ../src/v4l2uvc.c:57 -msgid "User Controls" +#: ../gview_encoder/video_codecs.c:255 +msgid "MPG2 - MPG2 format" msgstr "" -#: ../src/v4l2uvc.c:58 -msgid "Brightness" +#: ../gview_encoder/video_codecs.c:291 +msgid "MS MP4 V3" msgstr "" -#: ../src/v4l2uvc.c:59 -msgid "Contrast" +#: ../gview_encoder/video_codecs.c:327 +msgid "MPEG4-ASP" msgstr "" -#: ../src/v4l2uvc.c:60 -msgid "Hue" +#: ../gview_encoder/video_codecs.c:363 +msgid "MPEG4-AVC (H264)" msgstr "" -#: ../src/v4l2uvc.c:61 -msgid "Saturation" +#: ../gview_encoder/video_codecs.c:403 +msgid "VP8 (VP8)" msgstr "" -#: ../src/v4l2uvc.c:62 -msgid "Sharpness" +#: ../gview_encoder/video_codecs.c:439 +msgid "Theora (ogg theora)" msgstr "" -#: ../src/v4l2uvc.c:63 -msgid "Gamma" +#: ../guvcview/gui_gtk3_audioctrls.c:95 +msgid "Audio API:" msgstr "" -#: ../src/v4l2uvc.c:64 -msgid "Backlight Compensation" +#: ../guvcview/gui_gtk3_audioctrls.c:106 +msgid "NO SOUND" msgstr "" -#: ../src/v4l2uvc.c:65 -msgid "Power Line Frequency" +#: ../guvcview/gui_gtk3_audioctrls.c:107 +msgid "PORTAUDIO" msgstr "" -#: ../src/v4l2uvc.c:66 -msgid "Hue, Automatic" +#: ../guvcview/gui_gtk3_audioctrls.c:110 +msgid "PULSEAUDIO" msgstr "" -#: ../src/v4l2uvc.c:67 -msgid "Focus, Auto" +#: ../guvcview/gui_gtk3_audioctrls.c:127 +msgid "Input Device:" msgstr "" -#: ../src/v4l2uvc.c:68 -msgid "Manual Mode" +#: ../guvcview/gui_gtk3_audioctrls.c:161 +msgid "Sample Rate:" msgstr "" -#: ../src/v4l2uvc.c:69 -msgid "Auto Mode" +#: ../guvcview/gui_gtk3_audioctrls.c:168 ../guvcview/gui_gtk3_audioctrls.c:214 +msgid "Dev. Default" msgstr "" -#: ../src/v4l2uvc.c:70 -msgid "Shutter Priority Mode" +#: ../guvcview/gui_gtk3_audioctrls.c:207 +msgid "Channels:" msgstr "" -#: ../src/v4l2uvc.c:71 -msgid "Aperture Priority Mode" +#: ../guvcview/gui_gtk3_audioctrls.c:215 +msgid "1 - mono" msgstr "" -#: ../src/v4l2uvc.c:72 -msgid "Black Level" +#: ../guvcview/gui_gtk3_audioctrls.c:216 +msgid "2 - stereo" msgstr "" -#: ../src/v4l2uvc.c:73 -msgid "White Balance, Automatic" +#: ../guvcview/gui_gtk3_audioctrls.c:235 +msgid "---- Audio Filters ----" msgstr "" -#: ../src/v4l2uvc.c:74 -msgid "Do White Balance" +#. Echo FX +#: ../guvcview/gui_gtk3_audioctrls.c:255 +msgid " Echo" msgstr "" -#: ../src/v4l2uvc.c:75 -msgid "Red Balance" +#. Reverb FX +#: ../guvcview/gui_gtk3_audioctrls.c:268 +msgid " Reverb" msgstr "" -#: ../src/v4l2uvc.c:76 -msgid "Blue Balance" +#. Fuzz FX +#: ../guvcview/gui_gtk3_audioctrls.c:281 +msgid " Fuzz" msgstr "" -#: ../src/v4l2uvc.c:77 -msgid "Exposure" +#. WahWah FX +#: ../guvcview/gui_gtk3_audioctrls.c:294 +msgid " WahWah" msgstr "" -#: ../src/v4l2uvc.c:78 -msgid "Gain, Automatic" +#. Ducky FX +#: ../guvcview/gui_gtk3_audioctrls.c:307 +msgid " Ducky" msgstr "" -#: ../src/v4l2uvc.c:79 -msgid "Gain" +#: ../guvcview/gui_gtk3.c:310 ../guvcview/gui_gtk3_callbacks.c:749 +msgid "Stop Video (V)" msgstr "" -#: ../src/v4l2uvc.c:80 -msgid "Horizontal Flip" +#. video button +#: ../guvcview/gui_gtk3.c:315 ../guvcview/gui_gtk3.c:600 +#: ../guvcview/gui_gtk3_callbacks.c:755 +msgid "Cap. Video (V)" msgstr "" -#: ../src/v4l2uvc.c:81 -msgid "Vertical Flip" +#: ../guvcview/gui_gtk3.c:376 ../guvcview/gui_gtk3.c:383 +msgid "Error" msgstr "" -#: ../src/v4l2uvc.c:82 -msgid "Horizontal Center" +#: ../guvcview/gui_gtk3.c:379 ../guvcview/gui_gtk3.c:386 +#: ../guvcview/gui_gtk3_callbacks.c:2097 +msgid "_Ok" msgstr "" -#: ../src/v4l2uvc.c:83 -msgid "Vertical Center" +#: ../guvcview/gui_gtk3.c:380 ../guvcview/gui_gtk3_callbacks.c:185 +#: ../guvcview/gui_gtk3_callbacks.c:199 ../guvcview/gui_gtk3_callbacks.c:522 +#: ../guvcview/gui_gtk3_callbacks.c:624 ../guvcview/gui_gtk3_callbacks.c:1755 +#: ../guvcview/gui_gtk3_callbacks.c:2098 +msgid "_Cancel" msgstr "" -#: ../src/v4l2uvc.c:84 -msgid "Chroma AGC" +#: ../guvcview/gui_gtk3.c:407 +msgid "" +"\n" +"You have more than one video device installed.\n" +"Do you want to try another one ?\n" msgstr "" -#: ../src/v4l2uvc.c:85 -msgid "Color Killer" +#. ---- Devices ---- +#: ../guvcview/gui_gtk3.c:414 ../guvcview/gui_gtk3_videoctrls.c:106 +msgid "Device:" msgstr "" -#: ../src/v4l2uvc.c:86 -msgid "Color Effects" +#: ../guvcview/gui_gtk3.c:516 +msgid "Guvcview Video Capture" msgstr "" -#. CAMERA CLASS control strings -#: ../src/v4l2uvc.c:89 -msgid "Camera Controls" +#: ../guvcview/gui_gtk3.c:525 +msgid "Guvcview" msgstr "" -#: ../src/v4l2uvc.c:90 -msgid "Auto Exposure" +#: ../guvcview/gui_gtk3.c:572 +msgid "Stop Cap. (I)" msgstr "" -#: ../src/v4l2uvc.c:91 -msgid "Exposure Time, Absolute" +#: ../guvcview/gui_gtk3.c:578 ../guvcview/gui_gtk3_callbacks.c:720 +#: ../guvcview/video_capture.c:250 +msgid "Cap. Image (I)" msgstr "" -#: ../src/v4l2uvc.c:92 -msgid "Exposure, Dynamic Framerate" +#. quit button +#. GtkWidget *quitButton = gtk_button_new_from_stock(GTK_STOCK_QUIT); +#: ../guvcview/gui_gtk3.c:621 +msgid "_Quit" msgstr "" -#: ../src/v4l2uvc.c:93 -msgid "Pan, Relative" +#: ../guvcview/gui_gtk3.c:667 +msgid "Image Controls" msgstr "" -#: ../src/v4l2uvc.c:94 -msgid "Tilt, Relative" +#: ../guvcview/gui_gtk3.c:703 +msgid "H264 Controls" msgstr "" -#: ../src/v4l2uvc.c:95 -msgid "Pan, Reset" +#: ../guvcview/gui_gtk3.c:742 +msgid "Video Controls" msgstr "" -#: ../src/v4l2uvc.c:96 -msgid "Tilt, Reset" +#: ../guvcview/gui_gtk3.c:777 +msgid "Audio Controls" msgstr "" -#: ../src/v4l2uvc.c:97 -msgid "Pan, Absolute" +#: ../guvcview/gui_gtk3_callbacks.c:182 ../guvcview/gui_gtk3_menu.c:72 +msgid "Save Profile" msgstr "" -#: ../src/v4l2uvc.c:99 -msgid "Focus, Absolute" +#: ../guvcview/gui_gtk3_callbacks.c:186 ../guvcview/gui_gtk3_callbacks.c:523 +#: ../guvcview/gui_gtk3_callbacks.c:625 +msgid "_Save" msgstr "" -#: ../src/v4l2uvc.c:100 -msgid "Focus, Relative" +#: ../guvcview/gui_gtk3_callbacks.c:196 ../guvcview/gui_gtk3_menu.c:71 +msgid "Load Profile" msgstr "" -#: ../src/v4l2uvc.c:101 -msgid "Focus, Automatic" +#: ../guvcview/gui_gtk3_callbacks.c:200 +msgid "_Open" msgstr "" -#: ../src/v4l2uvc.c:102 -msgid "Zoom, Absolute" +#: ../guvcview/gui_gtk3_callbacks.c:208 ../guvcview/gui_gtk3_callbacks.c:531 +#: ../guvcview/gui_gtk3_callbacks.c:634 +msgid "File Format:" msgstr "" -#: ../src/v4l2uvc.c:103 -msgid "Zoom, Relative" +#: ../guvcview/gui_gtk3_callbacks.c:220 +msgid "gpfl (*.gpfl)" msgstr "" -#: ../src/v4l2uvc.c:104 -msgid "Zoom, Continuous" +#: ../guvcview/gui_gtk3_callbacks.c:221 +msgid "any (*.*)" msgstr "" -#: ../src/v4l2uvc.c:105 -msgid "Privacy" +#: ../guvcview/gui_gtk3_callbacks.c:519 +msgid "Photo file name" msgstr "" -#. UVC specific control strings -#: ../src/v4l2uvc.c:108 -msgid "Exposure, Auto" +#: ../guvcview/gui_gtk3_callbacks.c:543 +msgid "Raw (*.raw)" msgstr "" -#: ../src/v4l2uvc.c:109 -msgid "Exposure, Auto Priority" +#: ../guvcview/gui_gtk3_callbacks.c:544 +msgid "Jpeg (*.jpg)" msgstr "" -#: ../src/v4l2uvc.c:110 -msgid "Exposure (Absolute)" +#: ../guvcview/gui_gtk3_callbacks.c:545 +msgid "Png (*.png)" msgstr "" -#: ../src/v4l2uvc.c:111 -msgid "White Balance Temperature, Auto" +#: ../guvcview/gui_gtk3_callbacks.c:546 +msgid "Bmp (*.bmp)" msgstr "" -#: ../src/v4l2uvc.c:112 -msgid "White Balance Temperature" +#: ../guvcview/gui_gtk3_callbacks.c:621 +msgid "Video file name" msgstr "" -#: ../src/v4l2uvc.c:113 -msgid "White Balance Component, Auto" +#: ../guvcview/gui_gtk3_callbacks.c:646 +msgid "Matroska (*.mkv)" msgstr "" -#: ../src/v4l2uvc.c:114 -msgid "White Balance Blue Component" +#: ../guvcview/gui_gtk3_callbacks.c:647 +msgid "WebM (*.webm)" msgstr "" -#: ../src/v4l2uvc.c:115 -msgid "White Balance Red Component" +#: ../guvcview/gui_gtk3_callbacks.c:648 +msgid "Avi (*.avi)" msgstr "" -#. libwebcam specific control strings -#: ../src/v4l2uvc.c:118 -msgid "Focus" +#: ../guvcview/gui_gtk3_callbacks.c:1158 +msgid "start new" msgstr "" -#: ../src/v4l2uvc.c:119 -msgid "Focus (Absolute)" +#: ../guvcview/gui_gtk3_callbacks.c:1161 +msgid "restart" msgstr "" -#: ../src/vcodecs.c:63 -msgid "MJPG - compressed" +#: ../guvcview/gui_gtk3_callbacks.c:1163 +msgid "new" msgstr "" -#: ../src/vcodecs.c:99 -msgid "YUY2 - uncomp YUV" +#: ../guvcview/gui_gtk3_callbacks.c:1165 +msgid "cancel" msgstr "" -#: ../src/vcodecs.c:135 -msgid "RGB - uncomp BMP" +#: ../guvcview/gui_gtk3_callbacks.c:1170 +msgid "" +"launch new process or restart?.\n" +"\n" msgstr "" -#: ../src/vcodecs.c:171 -msgid "MPEG video 1" +#: ../guvcview/gui_gtk3_callbacks.c:1751 +msgid "video codec values" msgstr "" -#: ../src/vcodecs.c:207 -msgid "FLV1 - flash video 1" +#: ../guvcview/gui_gtk3_callbacks.c:1754 +msgid "_OK" msgstr "" -#: ../src/vcodecs.c:243 -msgid "WMV1 - win. med. video 7" +#: ../guvcview/gui_gtk3_callbacks.c:1760 +msgid "" +" encoder fps: \n" +" (0 - use fps combobox value)" msgstr "" -#: ../src/vcodecs.c:279 -msgid "MPG2 - MPG2 format" +#: ../guvcview/gui_gtk3_callbacks.c:1773 +msgid " monotonic pts" msgstr "" -#: ../src/vcodecs.c:315 -msgid "MS MP4 V3" +#. bit rate +#: ../guvcview/gui_gtk3_callbacks.c:1780 ../guvcview/gui_gtk3_callbacks.c:2105 +msgid "bit rate: " msgstr "" -#: ../src/vcodecs.c:351 -msgid "MPEG4-ASP" +#: ../guvcview/gui_gtk3_callbacks.c:1793 +msgid "qmax: " msgstr "" -#: ../src/vcodecs.c:387 -msgid "MPEG4-AVC (H264)" +#: ../guvcview/gui_gtk3_callbacks.c:1806 +msgid "qmin: " msgstr "" -#: ../src/vcodecs.c:427 -msgid "VP8 (VP8)" +#: ../guvcview/gui_gtk3_callbacks.c:1819 +msgid "max. qdiff: " msgstr "" -#: ../src/vcodecs.c:463 -msgid "Theora (ogg theora)" +#: ../guvcview/gui_gtk3_callbacks.c:1832 +msgid "dia size: " msgstr "" -#: ../src/video_format.c:43 -msgid "AVI - avi format" +#: ../guvcview/gui_gtk3_callbacks.c:1845 +msgid "pre dia size: " msgstr "" -#: ../src/video_format.c:52 -msgid "MKV - Matroska format" +#: ../guvcview/gui_gtk3_callbacks.c:1858 +msgid "pre me: " msgstr "" -#: ../src/video_format.c:61 -msgid "WEBM - format" +#: ../guvcview/gui_gtk3_callbacks.c:1871 +msgid "pre cmp: " msgstr "" -#: ../src/video_tab.c:216 -msgid "Frame Rate:" +#: ../guvcview/gui_gtk3_callbacks.c:1884 +msgid "cmp: " msgstr "" -#: ../src/video_tab.c:223 -msgid " Show" +#: ../guvcview/gui_gtk3_callbacks.c:1897 +msgid "sub cmp: " msgstr "" -#: ../src/video_tab.c:245 -msgid "Resolution:" +#: ../guvcview/gui_gtk3_callbacks.c:1910 +msgid "last predictor count: " msgstr "" -#: ../src/video_tab.c:271 -msgid "Camera Output:" +#: ../guvcview/gui_gtk3_callbacks.c:1923 +msgid "gop size: " msgstr "" -#: ../src/video_tab.c:293 -msgid "Apply" +#: ../guvcview/gui_gtk3_callbacks.c:1936 +msgid "qcompress: " msgstr "" -#: ../src/video_tab.c:300 -msgid "Quality:" +#: ../guvcview/gui_gtk3_callbacks.c:1949 +msgid "qblur: " msgstr "" -#: ../src/video_tab.c:310 -msgid "---- Video Filters ----" +#: ../guvcview/gui_gtk3_callbacks.c:1962 +msgid "subq: " msgstr "" -#. Mirror -#: ../src/video_tab.c:329 -msgid " Mirror" +#: ../guvcview/gui_gtk3_callbacks.c:1975 +msgid "framerefs: " msgstr "" -#. Upturn -#: ../src/video_tab.c:340 -msgid " Invert" +#: ../guvcview/gui_gtk3_callbacks.c:1988 +msgid "me method: " msgstr "" -#. Negate -#: ../src/video_tab.c:351 -msgid " Negative" +#: ../guvcview/gui_gtk3_callbacks.c:2001 +msgid "mb decision: " msgstr "" -#. Mono -#: ../src/video_tab.c:362 -msgid " Mono" +#: ../guvcview/gui_gtk3_callbacks.c:2014 +msgid "max B frames: " msgstr "" -#. Pieces -#: ../src/video_tab.c:374 -msgid " Pieces" +#: ../guvcview/gui_gtk3_callbacks.c:2027 +msgid "num threads: " msgstr "" -#. Particles -#: ../src/video_tab.c:386 -msgid " Particles" +#: ../guvcview/gui_gtk3_callbacks.c:2094 +msgid "audio codec values" msgstr "" -#: ../src/uvc_h264.c:596 -msgid "H264 Controls" +#. sample format +#: ../guvcview/gui_gtk3_callbacks.c:2119 +msgid "sample format: " msgstr "" -#: ../src/uvc_h264.c:615 +#: ../guvcview/gui_gtk3_h264ctrls.c:622 msgid "Rate Control Mode:" msgstr "" -#: ../src/uvc_h264.c:626 +#: ../guvcview/gui_gtk3_h264ctrls.c:633 msgid "CBR" msgstr "" -#: ../src/uvc_h264.c:629 +#: ../guvcview/gui_gtk3_h264ctrls.c:636 msgid "VBR" msgstr "" -#: ../src/uvc_h264.c:633 +#: ../guvcview/gui_gtk3_h264ctrls.c:640 msgid "Constant QP" msgstr "" -#: ../src/uvc_h264.c:651 +#: ../guvcview/gui_gtk3_h264ctrls.c:658 msgid "Rate Control Mode flags:" msgstr "" -#: ../src/uvc_h264.c:676 +#: ../guvcview/gui_gtk3_h264ctrls.c:683 msgid "Temporal Scale Mode:" msgstr "" -#: ../src/uvc_h264.c:704 +#: ../guvcview/gui_gtk3_h264ctrls.c:711 msgid "Spatial Scale Mode:" msgstr "" -#: ../src/uvc_h264.c:737 +#: ../guvcview/gui_gtk3_h264ctrls.c:741 msgid "Frame Interval (100ns units):" msgstr "" -#: ../src/uvc_h264.c:772 +#: ../guvcview/gui_gtk3_h264ctrls.c:778 msgid "Bit Rate:" msgstr "" -#: ../src/uvc_h264.c:795 +#: ../guvcview/gui_gtk3_h264ctrls.c:801 msgid "Hints:" msgstr "" -#: ../src/uvc_h264.c:800 +#: ../guvcview/gui_gtk3_h264ctrls.c:806 msgid "Resolution" msgstr "" -#: ../src/uvc_h264.c:804 +#: ../guvcview/gui_gtk3_h264ctrls.c:810 msgid "Profile" msgstr "" -#: ../src/uvc_h264.c:808 +#: ../guvcview/gui_gtk3_h264ctrls.c:814 msgid "Rate Control" msgstr "" -#: ../src/uvc_h264.c:812 +#: ../guvcview/gui_gtk3_h264ctrls.c:818 msgid "Usage Type" msgstr "" -#: ../src/uvc_h264.c:816 +#: ../guvcview/gui_gtk3_h264ctrls.c:822 msgid "Slice Mode" msgstr "" -#: ../src/uvc_h264.c:820 +#: ../guvcview/gui_gtk3_h264ctrls.c:826 msgid "Slice Unit" msgstr "" -#: ../src/uvc_h264.c:824 +#: ../guvcview/gui_gtk3_h264ctrls.c:830 msgid "MVC View" msgstr "" -#: ../src/uvc_h264.c:828 +#: ../guvcview/gui_gtk3_h264ctrls.c:834 msgid "Temporal Scale" msgstr "" -#: ../src/uvc_h264.c:832 +#: ../guvcview/gui_gtk3_h264ctrls.c:838 msgid "SNR Scale" msgstr "" -#: ../src/uvc_h264.c:836 +#: ../guvcview/gui_gtk3_h264ctrls.c:842 msgid "Spatial Scale" msgstr "" -#: ../src/uvc_h264.c:840 +#: ../guvcview/gui_gtk3_h264ctrls.c:846 msgid "Spatial Layer Ratio" msgstr "" -#: ../src/uvc_h264.c:844 +#: ../guvcview/gui_gtk3_h264ctrls.c:850 msgid "Frame Interval" msgstr "" -#: ../src/uvc_h264.c:848 +#: ../guvcview/gui_gtk3_h264ctrls.c:854 msgid "Leaky Bucket Size" msgstr "" -#: ../src/uvc_h264.c:852 +#: ../guvcview/gui_gtk3_h264ctrls.c:858 msgid "Bit Rate" msgstr "" -#: ../src/uvc_h264.c:856 ../src/uvc_h264.c:1250 +#: ../guvcview/gui_gtk3_h264ctrls.c:862 ../guvcview/gui_gtk3_h264ctrls.c:1220 msgid "CABAC" msgstr "" -#: ../src/uvc_h264.c:860 +#: ../guvcview/gui_gtk3_h264ctrls.c:866 msgid "(I) Frame Period" msgstr "" -#: ../src/uvc_h264.c:907 +#: ../guvcview/gui_gtk3_h264ctrls.c:878 msgid "Slice Mode:" msgstr "" -#: ../src/uvc_h264.c:914 +#: ../guvcview/gui_gtk3_h264ctrls.c:885 msgid "no multiple slices" msgstr "" -#: ../src/uvc_h264.c:916 +#: ../guvcview/gui_gtk3_h264ctrls.c:887 msgid "bits/slice" msgstr "" -#: ../src/uvc_h264.c:918 +#: ../guvcview/gui_gtk3_h264ctrls.c:889 msgid "Mbits/slice" msgstr "" -#: ../src/uvc_h264.c:920 +#: ../guvcview/gui_gtk3_h264ctrls.c:891 msgid "slices/frame" msgstr "" -#: ../src/uvc_h264.c:929 +#: ../guvcview/gui_gtk3_h264ctrls.c:900 msgid "Slice Units:" msgstr "" -#: ../src/uvc_h264.c:950 +#: ../guvcview/gui_gtk3_h264ctrls.c:921 msgid "Profile:" msgstr "" -#: ../src/uvc_h264.c:957 +#: ../guvcview/gui_gtk3_h264ctrls.c:928 msgid "Baseline Profile" msgstr "" -#: ../src/uvc_h264.c:959 +#: ../guvcview/gui_gtk3_h264ctrls.c:930 msgid "Main Profile" msgstr "" -#: ../src/uvc_h264.c:961 +#: ../guvcview/gui_gtk3_h264ctrls.c:932 msgid "High Profile" msgstr "" -#: ../src/uvc_h264.c:963 +#: ../guvcview/gui_gtk3_h264ctrls.c:934 msgid "Scalable Baseline Profile" msgstr "" -#: ../src/uvc_h264.c:965 +#: ../guvcview/gui_gtk3_h264ctrls.c:936 msgid "Scalable High Profile" msgstr "" -#: ../src/uvc_h264.c:967 +#: ../guvcview/gui_gtk3_h264ctrls.c:938 msgid "Multiview High Profile" msgstr "" -#: ../src/uvc_h264.c:969 +#: ../guvcview/gui_gtk3_h264ctrls.c:940 msgid "Stereo High Profile" msgstr "" -#: ../src/uvc_h264.c:1008 +#: ../guvcview/gui_gtk3_h264ctrls.c:979 msgid "Profile flags:" msgstr "" -#: ../src/uvc_h264.c:1033 +#: ../guvcview/gui_gtk3_h264ctrls.c:1004 msgid "(I) Frame Period (ms):" msgstr "" -#: ../src/uvc_h264.c:1054 +#: ../guvcview/gui_gtk3_h264ctrls.c:1025 msgid "Estimated Video Delay (ms):" msgstr "" -#: ../src/uvc_h264.c:1075 +#: ../guvcview/gui_gtk3_h264ctrls.c:1046 msgid "Estimated Max Config Delay (ms):" msgstr "" -#: ../src/uvc_h264.c:1096 +#: ../guvcview/gui_gtk3_h264ctrls.c:1067 msgid "Usage Type:" msgstr "" -#: ../src/uvc_h264.c:1103 +#: ../guvcview/gui_gtk3_h264ctrls.c:1074 msgid "Real-time" msgstr "" -#: ../src/uvc_h264.c:1105 +#: ../guvcview/gui_gtk3_h264ctrls.c:1076 msgid "Broadcast" msgstr "" -#: ../src/uvc_h264.c:1107 +#: ../guvcview/gui_gtk3_h264ctrls.c:1078 msgid "Storage" msgstr "" -#: ../src/uvc_h264.c:1109 +#: ../guvcview/gui_gtk3_h264ctrls.c:1080 msgid "(0) Non-scalable single layer AVC" msgstr "" -#: ../src/uvc_h264.c:1111 +#: ../guvcview/gui_gtk3_h264ctrls.c:1082 msgid "(1) SVC temporal scalability with hierarchical P" msgstr "" -#: ../src/uvc_h264.c:1113 +#: ../guvcview/gui_gtk3_h264ctrls.c:1084 msgid "(2q) SVC temporal scalability + Quality/SNR scalability" msgstr "" -#: ../src/uvc_h264.c:1115 +#: ../guvcview/gui_gtk3_h264ctrls.c:1086 msgid "(2s) SVC temporal scalability + spatial scalability" msgstr "" -#: ../src/uvc_h264.c:1117 +#: ../guvcview/gui_gtk3_h264ctrls.c:1088 msgid "(3) Full SVC scalability" msgstr "" -#: ../src/uvc_h264.c:1131 +#: ../guvcview/gui_gtk3_h264ctrls.c:1102 msgid "SNR Control Mode:" msgstr "" -#: ../src/uvc_h264.c:1138 +#: ../guvcview/gui_gtk3_h264ctrls.c:1109 msgid "No SNR Enhancement Layer" msgstr "" -#: ../src/uvc_h264.c:1140 +#: ../guvcview/gui_gtk3_h264ctrls.c:1111 msgid "CGS NonRewrite (2 Layer)" msgstr "" -#: ../src/uvc_h264.c:1142 +#: ../guvcview/gui_gtk3_h264ctrls.c:1113 msgid "CGS NonRewrite (3 Layer)" msgstr "" -#: ../src/uvc_h264.c:1144 +#: ../guvcview/gui_gtk3_h264ctrls.c:1115 msgid "CGS Rewrite (2 Layer)" msgstr "" -#: ../src/uvc_h264.c:1146 +#: ../guvcview/gui_gtk3_h264ctrls.c:1117 msgid "CGS Rewrite (3 Layer)" msgstr "" -#: ../src/uvc_h264.c:1148 +#: ../guvcview/gui_gtk3_h264ctrls.c:1119 msgid "MGS (2 Layer)" msgstr "" -#: ../src/uvc_h264.c:1173 +#: ../guvcview/gui_gtk3_h264ctrls.c:1144 msgid "Stream Mux Enable" msgstr "" -#: ../src/uvc_h264.c:1180 +#: ../guvcview/gui_gtk3_h264ctrls.c:1151 msgid "Embed H.264 aux stream" msgstr "" -#: ../src/uvc_h264.c:1182 +#: ../guvcview/gui_gtk3_h264ctrls.c:1153 msgid "Embed YUY2 aux stream" msgstr "" -#: ../src/uvc_h264.c:1184 +#: ../guvcview/gui_gtk3_h264ctrls.c:1155 msgid "Embed NV12 aux stream" msgstr "" -#: ../src/uvc_h264.c:1204 +#: ../guvcview/gui_gtk3_h264ctrls.c:1175 msgid "MJPG payload container" msgstr "" -#: ../src/uvc_h264.c:1219 +#: ../guvcview/gui_gtk3_h264ctrls.c:1189 msgid "Stream Format:" msgstr "" -#: ../src/uvc_h264.c:1227 +#: ../guvcview/gui_gtk3_h264ctrls.c:1197 msgid "Byte stream format (H.264 Annex-B)" msgstr "" -#: ../src/uvc_h264.c:1229 +#: ../guvcview/gui_gtk3_h264ctrls.c:1199 msgid "NAL stream format" msgstr "" -#: ../src/uvc_h264.c:1240 +#: ../guvcview/gui_gtk3_h264ctrls.c:1210 msgid "Entropy CABAC:" msgstr "" -#: ../src/uvc_h264.c:1248 +#: ../guvcview/gui_gtk3_h264ctrls.c:1218 msgid "CAVLC" msgstr "" -#: ../src/uvc_h264.c:1261 +#: ../guvcview/gui_gtk3_h264ctrls.c:1231 msgid "Picture timing SEI" msgstr "" -#: ../src/uvc_h264.c:1268 +#: ../guvcview/gui_gtk3_h264ctrls.c:1238 msgid "B Frames:" msgstr "" -#: ../src/uvc_h264.c:1293 +#: ../guvcview/gui_gtk3_h264ctrls.c:1263 msgid "Preview Flipped" msgstr "" -#: ../src/uvc_h264.c:1300 +#: ../guvcview/gui_gtk3_h264ctrls.c:1270 msgid "Additional MVC Views:" msgstr "" -#: ../src/uvc_h264.c:1325 +#: ../guvcview/gui_gtk3_h264ctrls.c:1295 msgid "Simulcast stream index:" msgstr "" -#: ../src/uvc_h264.c:1350 +#: ../guvcview/gui_gtk3_h264ctrls.c:1320 msgid "Spatial Layer Ratio:" msgstr "" -#: ../src/uvc_h264.c:1379 +#: ../guvcview/gui_gtk3_h264ctrls.c:1349 msgid "Leaky Bucket Size (ms):" msgstr "" #. encoder reset -#: ../src/uvc_h264.c:1406 +#: ../guvcview/gui_gtk3_h264ctrls.c:1376 msgid "Encoder Reset" msgstr "" -#. -#. h264_controls->probe_button = gtk_button_new_with_label(_("PROBE")); -#. g_signal_connect (GTK_BUTTON(h264_controls->probe_button), "clicked", +#. +#. GtkWidget *probe_button = gtk_button_new_with_label(_("PROBE")); +#. g_signal_connect (GTK_BUTTON(probe_button), "clicked", #. G_CALLBACK (h264_probe_button_clicked), all_data); -#. -#. gtk_grid_attach (GTK_GRID(table), h264_controls->probe_button, 0, line, 1 ,1); -#. gtk_widget_show(h264_controls->probe_button); -#. -#: ../src/uvc_h264.c:1421 +#. +#. gtk_grid_attach (GTK_GRID(h264_controls_grid), probe_button, 0, line, 1 ,1); +#. gtk_widget_show(probe_button); +#. +#: ../guvcview/gui_gtk3_h264ctrls.c:1391 msgid "COMMIT" msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:70 +msgid "Settings" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:73 +msgid "Hardware Defaults" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:81 +msgid "Camera Button" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:86 +msgid "Capture Image" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:91 +msgid "Capture Video" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:134 +msgid "Photo" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:135 ../guvcview/gui_gtk3_menu.c:159 +msgid "File" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:136 ../guvcview/gui_gtk3_menu.c:160 +msgid "Increment Filename" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:158 +msgid "Video" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:175 +msgid "Video Codec" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:202 +msgid "Video Codec Properties" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:208 +msgid "Audio Codec" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:235 +msgid "Audio Codec Properties" +msgstr "" + +#: ../guvcview/gui_gtk3_v4l2ctrls.c:174 +msgid "Left" +msgstr "" + +#: ../guvcview/gui_gtk3_v4l2ctrls.c:175 +msgid "Right" +msgstr "" + +#: ../guvcview/gui_gtk3_v4l2ctrls.c:179 +msgid "Down" +msgstr "" + +#: ../guvcview/gui_gtk3_v4l2ctrls.c:180 +msgid "Up" +msgstr "" + +#. turn it into a menu control +#: ../guvcview/gui_gtk3_v4l2ctrls.c:296 +msgid "8 bit" +msgstr "" + +#: ../guvcview/gui_gtk3_v4l2ctrls.c:296 +msgid "12 bit" +msgstr "" + +#. add a virtual control for software autofocus +#: ../guvcview/gui_gtk3_v4l2ctrls.c:348 +msgid "Auto Focus (continuous)" +msgstr "" + +#: ../guvcview/gui_gtk3_v4l2ctrls.c:349 +msgid "set Focus" +msgstr "" + +#. control_widgets_list[n].widget2 = gtk_button_new_from_stock(GTK_STOCK_APPLY); +#. control_widgets_list[n].widget2= gtk_button_new_from_stock(GTK_STOCK_APPLY); +#. control_widgets_list[n].widget2 = gtk_button_new_from_stock(GTK_STOCK_APPLY); +#: ../guvcview/gui_gtk3_v4l2ctrls.c:433 ../guvcview/gui_gtk3_v4l2ctrls.c:456 +#: ../guvcview/gui_gtk3_v4l2ctrls.c:478 +msgid "_Apply" +msgstr "" + +#: ../guvcview/gui_gtk3_videoctrls.c:144 +msgid "Frame Rate:" +msgstr "" + +#: ../guvcview/gui_gtk3_videoctrls.c:204 +msgid "Resolution:" +msgstr "" + +#: ../guvcview/gui_gtk3_videoctrls.c:254 +msgid "Camera Output:" +msgstr "" + +#: ../guvcview/gui_gtk3_videoctrls.c:287 +msgid "---- Video Filters ----" +msgstr "" + +#. Mirror FX +#: ../guvcview/gui_gtk3_videoctrls.c:307 +msgid " Mirror" +msgstr "" + +#. Upturn FX +#: ../guvcview/gui_gtk3_videoctrls.c:319 +msgid " Invert" +msgstr "" + +#. Negate FX +#: ../guvcview/gui_gtk3_videoctrls.c:331 +msgid " Negative" +msgstr "" + +#. Mono FX +#: ../guvcview/gui_gtk3_videoctrls.c:343 +msgid " Mono" +msgstr "" + +#. Pieces FX +#: ../guvcview/gui_gtk3_videoctrls.c:356 +msgid " Pieces" +msgstr "" + +#. Particles +#: ../guvcview/gui_gtk3_videoctrls.c:369 +msgid " Particles" +msgstr "" + +#: ../guvcview/options.c:51 +msgid "Print help" +msgstr "" + +#: ../guvcview/options.c:58 +msgid "Print version" +msgstr "" + +#: ../guvcview/options.c:64 +msgid "LEVEL" +msgstr "" + +#: ../guvcview/options.c:65 +msgid "Set Verbosity level (def: 0)" +msgstr "" + +#: ../guvcview/options.c:71 +msgid "DEVICE" +msgstr "" + +#: ../guvcview/options.c:72 +msgid "Set device name (def: /dev/video0)" +msgstr "" + +#: ../guvcview/options.c:78 +msgid "METHOD" +msgstr "" + +#: ../guvcview/options.c:79 +msgid "Set capture method [read | mmap (def)]" +msgstr "" + +#: ../guvcview/options.c:85 +msgid "WIDTHxHEIGHT" +msgstr "" + +#: ../guvcview/options.c:86 +msgid "Request resolution (e.g 640x480)" +msgstr "" + +#: ../guvcview/options.c:92 +msgid "FOURCC" +msgstr "" + +#: ../guvcview/options.c:93 +msgid "Request format (e.g MJPG)" +msgstr "" + +#: ../guvcview/options.c:99 +msgid "RENDER_API" +msgstr "" + +#: ../guvcview/options.c:100 +msgid "Select render API (e.g none; sdl)" +msgstr "" + +#: ../guvcview/options.c:106 +msgid "AUDIO_API" +msgstr "" + +#: ../guvcview/options.c:107 +msgid "Select audio API (e.g none; port; pulse)" +msgstr "" + +#: ../guvcview/options.c:113 +msgid "AUDIO_DEVICE" +msgstr "" + +#: ../guvcview/options.c:114 +msgid "Select audio device index for selected api (0..N)" +msgstr "" + +#: ../guvcview/options.c:120 +msgid "GUI_API" +msgstr "" + +#: ../guvcview/options.c:121 +msgid "Select GUI API (e.g none; gtk3)" +msgstr "" + +#: ../guvcview/options.c:127 ../guvcview/options.c:134 +msgid "CODEC" +msgstr "" + +#: ../guvcview/options.c:128 +msgid "Audio codec [pcm mp2 mp3 aac ac3 vorb]" +msgstr "" + +#: ../guvcview/options.c:135 +msgid "Video codec [raw mjpg mpeg flv1 wmv1 mpg2 mp43 dx50 h264 vp80 theo]" +msgstr "" + +#: ../guvcview/options.c:141 ../guvcview/options.c:148 +#: ../guvcview/options.c:155 +msgid "FILENAME" +msgstr "" + +#: ../guvcview/options.c:142 +msgid "load control profile" +msgstr "" + +#: ../guvcview/options.c:149 +msgid "filename for captured video)" +msgstr "" + +#: ../guvcview/options.c:156 +msgid "filename for captured image)" +msgstr "" + +#: ../guvcview/options.c:162 ../guvcview/options.c:169 +msgid "TIME_IN_SEC" +msgstr "" + +#: ../guvcview/options.c:163 +msgid "time (double) in sec. for video capture)" +msgstr "" + +#: ../guvcview/options.c:170 +msgid "time (double) in sec. between captured photos)" +msgstr "" + +#: ../guvcview/options.c:176 +msgid "TOTAL" +msgstr "" + +#: ../guvcview/options.c:177 +msgid "total number of captured photos)" +msgstr "" + +#: ../guvcview/options.c:184 +msgid "Start in control panel mode" +msgstr "" + +#: ../guvcview/options.c:307 +#, c-format +msgid "" +"Guvcview version %s\n" +"\n" +msgstr "" + +#: ../guvcview/options.c:308 +#, c-format +msgid "" +"Usage:\n" +" guvcview [OPTIONS]\n" +"\n" +msgstr "" + +#: ../guvcview/options.c:309 +#, c-format +msgid "OPTIONS:\n" +msgstr "" + +#: ../guvcview/video_capture.c:819 +#, c-format +msgid "saving video to %s" +msgstr "" + +#. if(debug_level > 1) +#. printf("GUVCVIEW: saving image to %s\n", img_filename); +#: ../guvcview/video_capture.c:1069 +#, c-format +msgid "saving image to %s" +msgstr "" + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to open device" +#~ msgstr "" +#~ "Guvcview villa:\n" +#~ "\n" +#~ "Kundi ikki lata tĂłleind upp" diff -Nru guvcview-1.7.3/po/fr.po guvcview-2.0.1+ubuntu1~ppa1/po/fr.po --- guvcview-1.7.3/po/fr.po 2014-03-24 22:56:28.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/po/fr.po 2014-10-05 10:41:44.000000000 +0000 @@ -10,1421 +10,1630 @@ msgstr "" "Project-Id-Version: fr\n" "Report-Msgid-Bugs-To: pj.assis@gmail.com\n" -"POT-Creation-Date: 2013-11-14 22:15+0000\n" +"POT-Creation-Date: 2014-08-17 22:49+0100\n" "PO-Revision-Date: 2013-02-25 05:33+0000\n" "Last-Translator: Paulo Assis \n" "Language-Team: Portuguese \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-12-08 10:36+0000\n" -"X-Generator: Launchpad (build 16869)\n" "Language: pt\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2013-12-08 10:36+0000\n" +"X-Generator: Launchpad (build 16869)\n" -#: ../data/guvcview.desktop.in.in.h:1 -msgid "guvcview" -msgstr "guvcview" - -#: ../data/guvcview.desktop.in.in.h:2 -msgid "GTK UVC video viewer" -msgstr "Logiciel GTK de visualisation de vidĂ©o UVC" - -#: ../data/guvcview.desktop.in.in.h:3 -msgid "A video viewer and capturer for the linux uvc driver" -msgstr "" -"Logiciel de visualisation et de capture vidĂ©o pour le pilote uvc Linux" - -#: ../src/acodecs.c:59 -msgid "PCM - uncompressed (16 bit)" -msgstr "PCM - non compressĂ© (16 bit)" - -#: ../src/acodecs.c:76 -msgid "MPEG2 - (lavc)" -msgstr "MPEG2 - (lavc)" - -#: ../src/acodecs.c:93 -msgid "MP3 - (lavc)" -msgstr "MP3 - (lavc)" - -#: ../src/acodecs.c:110 -msgid "Dolby AC3 - (lavc)" -msgstr "Dolby AC3 - (lavc)" - -#: ../src/acodecs.c:127 -msgid "ACC Low - (faac)" -msgstr "AAC Low - (faac)" - -#: ../src/acodecs.c:144 -msgid "Vorbis" -msgstr "" - -#: ../src/audio_tab.c:87 -msgid "Audio" -msgstr "Audio" - -#: ../src/audio_tab.c:105 -msgid " Sound" -msgstr " Son" - -#. VU meter on the image (OSD) -#: ../src/audio_tab.c:116 -msgid " Show VU meter" -msgstr " Afficher le VU-mĂštre" - -#: ../src/audio_tab.c:128 -msgid "Audio API:" -msgstr "Audio API:" - -#: ../src/audio_tab.c:139 -msgid "PORTAUDIO" -msgstr "PORTAUDIO" - -#: ../src/audio_tab.c:140 -msgid "PULSEAUDIO" -msgstr "PULSEAUDIO" - -#: ../src/audio_tab.c:156 ../src/audio_tab.c:179 -msgid "Input Device:" -msgstr "PĂ©riphĂ©rique d'EntrĂ©e:" - -#: ../src/audio_tab.c:189 ../src/audio_tab.c:221 -msgid "Dev. Default" -msgstr "Valeur par DĂ©faut" - -#: ../src/audio_tab.c:211 -msgid "Sample Rate:" -msgstr "Taux d'Ă©chantillonage:" - -#: ../src/audio_tab.c:222 -msgid "1 - mono" -msgstr "1 - mono" - -#: ../src/audio_tab.c:223 -msgid "2 - stereo" -msgstr "2 - stĂ©rĂ©o" - -#: ../src/audio_tab.c:258 -msgid "Channels:" -msgstr "Canaux:" - -#: ../src/audio_tab.c:309 -msgid "---- Audio Effects ----" -msgstr "---- Effets Audio ----" - -#. Echo -#: ../src/audio_tab.c:328 -msgid " Echo" -msgstr " Echo" - -#. FUZZ -#: ../src/audio_tab.c:339 -msgid " Fuzz" -msgstr " Bruit" - -#. Reverb -#: ../src/audio_tab.c:351 -msgid " Reverb" -msgstr " Reverb" - -#. WahWah -#: ../src/audio_tab.c:363 -msgid " WahWah" -msgstr " WahWah" - -#. Ducky -#: ../src/audio_tab.c:375 -msgid " Ducky" -msgstr " Canard" - -#: ../src/callbacks.c:109 -msgid "Error" -msgstr "Erreur" - -#: ../src/callbacks.c:133 -msgid "" -"\n" -"You have more than one video device installed.\n" -"Do you want to try another one ?\n" -msgstr "" -"\n" -"Vous avez plus d'un pĂ©riphĂ©rique vidĂ©o installĂ©.\n" -"Voulez-vous en essayer un autre ?\n" - -#. Devices -#: ../src/callbacks.c:140 ../src/video_tab.c:111 -msgid "Device:" -msgstr "PĂ©riphĂ©rique d'EntrĂ©e:" - -#: ../src/callbacks.c:272 -msgid "Save File" -msgstr "Enregistrer le Fichier" - -#: ../src/callbacks.c:284 -msgid "File Format:" -msgstr "" - -#: ../src/callbacks.c:455 -msgid "codec values" -msgstr "valeurs codec" - -#: ../src/callbacks.c:466 -msgid "" -" encoder fps: \n" -" (0 - use fps combobox value)" -msgstr "" -" encodeur ips: \n" -" (0 - utilise la valeur ips de la combobox)" - -#: ../src/callbacks.c:479 -msgid " monotonic pts" -msgstr " Pts monotones" - -#. bit rate -#: ../src/callbacks.c:486 ../src/callbacks.c:809 -msgid "bit rate: " -msgstr "bit rate : " - -#: ../src/callbacks.c:499 -msgid "qmax: " -msgstr "qmax : " - -#: ../src/callbacks.c:512 -msgid "qmin: " -msgstr "qmin : " - -#: ../src/callbacks.c:525 -msgid "max. qdiff: " -msgstr "qdiff max.: " - -#: ../src/callbacks.c:538 -msgid "dia size: " -msgstr "taille dia: " - -#: ../src/callbacks.c:551 -msgid "pre dia size: " -msgstr "taille pre dia: " - -#: ../src/callbacks.c:564 -msgid "pre me: " -msgstr "pre me: " - -#: ../src/callbacks.c:577 -msgid "pre cmp: " -msgstr "pre cmp: " - -#: ../src/callbacks.c:590 -msgid "cmp: " -msgstr "cmp: " - -#: ../src/callbacks.c:603 -msgid "sub cmp: " -msgstr "sous cmp: " - -#: ../src/callbacks.c:616 -msgid "last predictor count: " -msgstr "compte du dernier indicateur: " - -#: ../src/callbacks.c:629 -msgid "gop size: " -msgstr "taille gop: " - -#: ../src/callbacks.c:642 -msgid "qcompress: " -msgstr "qcompress: " - -#: ../src/callbacks.c:655 -msgid "qblur: " -msgstr "qblur: " - -#: ../src/callbacks.c:668 -msgid "subq: " -msgstr "subq: " - -#: ../src/callbacks.c:681 -msgid "framerefs: " -msgstr "framerefs: " - -#: ../src/callbacks.c:694 -msgid "me method: " -msgstr "mĂ©thode me: " - -#: ../src/callbacks.c:707 -msgid "mb decision: " -msgstr "dĂ©cision mb: " - -#: ../src/callbacks.c:720 -msgid "max B frames: " -msgstr "nombre max d'images B: " - -#: ../src/callbacks.c:733 -msgid "num threads: " -msgstr "nb threads: " - -#: ../src/callbacks.c:796 -msgid "audio codec values" -msgstr "valeurs du codec audio" - -#. sample format -#: ../src/callbacks.c:823 -msgid "sample format: " -msgstr "" - -#: ../src/callbacks.c:1311 -msgid "start new" -msgstr "commencez nouveau" - -#: ../src/callbacks.c:1314 -msgid "restart" -msgstr "RedĂ©marrer l'application" - -#: ../src/callbacks.c:1316 -msgid "new" -msgstr "nouveau" - -#: ../src/callbacks.c:1318 -msgid "cancel" -msgstr "Annuler" - -#: ../src/callbacks.c:1323 -msgid "" -"launch new process or restart?.\n" -"\n" -msgstr "" -"nouveau processus ou redĂ©marrage?\n" -"\n" - -#: ../src/callbacks.c:1780 ../src/guvcview.c:565 -msgid "Cap. Image (I)" -msgstr "Enr. Image (I)" - -#. disable image controls -#: ../src/callbacks.c:1791 ../src/guvcview.c:690 ../src/timers.c:101 -msgid "capturing photo to" -msgstr "" - -#: ../src/callbacks.c:1850 ../src/guvcview.c:575 -msgid "Cap. Video (V)" -msgstr "Enr. Video (V)" - -#: ../src/callbacks.c:1876 ../src/guvcview.c:740 -msgid "capturing video to" -msgstr "" - -#. vid capture enabled from start -#: ../src/callbacks.c:1911 ../src/guvcview.c:570 -msgid "Stop Video (V)" -msgstr "ArrĂȘter la vidĂ©o (V)" - -#: ../src/callbacks.c:1967 ../src/menubar.c:66 -msgid "Save Profile" -msgstr "" - -#: ../src/callbacks.c:1980 ../src/menubar.c:65 -msgid "Load Profile" -msgstr "" - -#: ../src/create_video.c:1098 ../src/guvcview.c:732 -msgid "Cap. Video" -msgstr "Enr. Video" - -#: ../src/guvcview.c:280 -msgid "Guvcview Video Capture" -msgstr "Capture de vidĂ©o Guvcview" - -#: ../src/guvcview.c:292 -msgid "GUVCViewer Controls" -msgstr "RĂ©glages GUVCViewer" - -#. can't open device -#: ../src/guvcview.c:342 -msgid "" -"Guvcview error:\n" -"\n" -"Unable to open device" -msgstr "" -"Erreur de Guvcview :\n" -"\n" -"Incapable d'accĂ©der au pĂ©riphĂ©rique" - -#: ../src/guvcview.c:343 -msgid "" -"Please make sure the camera is connected\n" -"and that the correct driver is installed." -msgstr "" -"Svp, assurez-vous que le pĂ©riphĂ©rique est connectĂ©\n" -"et que le pilote est installĂ©." - -#. uvc extension controls OK, give warning and shutdown (called with --add_ctrls) -#: ../src/guvcview.c:348 -msgid "" -"Guvcview:\n" -"\n" -"UVC Extension controls" -msgstr "" -"Guvcview :\n" -"\n" -"ContrĂŽles de l'extension UVC" - -#: ../src/guvcview.c:349 -msgid "Extension controls were added to the UVC driver" -msgstr "Les contrĂŽles de l'extension ont Ă©tĂ© ajoutĂ©s au pilote UVC" - -#. uvc extension controls error - EACCES (needs root user) -#: ../src/guvcview.c:356 -msgid "" -"Guvcview error:\n" -"\n" -"UVC Extension controls" -msgstr "" -"Erreur de Guvcview :\n" -"\n" -"ContrĂŽles de l'extension UVC" - -#: ../src/guvcview.c:357 -msgid "" -"An error occurred while adding extension\n" -"controls to the UVC driver\n" -"Make sure you run guvcview as root (or sudo)." -msgstr "" -"Une erreur est survenue lors de l'ajout \n" -"des contrĂŽles d'extension du pilote UVC.\n" -"Assurez-vous d'avoir lancĂ© guvcview \n" -"en tant qu'utilisateur root (ou sudo)." - -#: ../src/guvcview.c:391 ../src/guvcview.c:399 ../src/guvcview.c:477 -msgid "" -"Guvcview error:\n" -"\n" -"Can't set a valid video stream for guvcview" -msgstr "" -"Erreur de Gubcview :\n" -"\n" -"Incapable de gĂ©rer le flux vidĂ©o" - -#: ../src/guvcview.c:392 ../src/guvcview.c:400 ../src/guvcview.c:478 -msgid "" -"Make sure your device driver is v4l2 compliant\n" -"and that it is properly installed." -msgstr "" -"VĂ©rifiez que vous avez un pilote compatible v4l2\n" -"et qu'il est correctement installĂ©." - -#: ../src/guvcview.c:422 ../src/guvcview.c:444 -msgid "" -"Guvcview error:\n" -"\n" -"Unable to start with minimum setup" -msgstr "" -"Erreur de Guvcview :\n" -"\n" -"Incapable de dĂ©marrer avec des rĂ©glages minimum" - -#: ../src/guvcview.c:423 ../src/guvcview.c:445 -msgid "Please reconnect your camera." -msgstr "Veuillez rebrancher votre pĂ©riphĂ©rique." - -#: ../src/guvcview.c:452 -msgid "" -"Guvcview error:\n" -"\n" -"Couldn't query device capabilities" -msgstr "" -"Erreur de Guvcview:\n" -"\n" -"Incapable d'accĂ©der au pĂ©riphĂ©rique" - -#: ../src/guvcview.c:453 -msgid "Make sure the device driver supports v4l2." -msgstr "Veuillez vĂ©rifier que le driver du matĂ©riel supporte V4L2." - -#: ../src/guvcview.c:457 -msgid "" -"Guvcview error:\n" -"\n" -"Read method error" -msgstr "" -"Erreur de Gubvcviewr :\n" -"\n" -"erreur de lecteure" - -#: ../src/guvcview.c:458 -msgid "Please try mmap instead (--capture_method=1)." -msgstr "Veuillez essayer mmap (--capture_method=1) Ă  la place." - -#: ../src/guvcview.c:466 -msgid "" -"Guvcview error:\n" -"\n" -"Unable to allocate Buffers" -msgstr "" -"Erreur de Guvcview:\n" -"\n" -"Incapable d'assigner des tampons mĂ©moires" - -#: ../src/guvcview.c:467 -msgid "Please try restarting your system." -msgstr "Veuillez essayer de redĂ©marrer votre systĂšme." - -#: ../src/guvcview.c:518 -msgid "Image Controls" -msgstr "RĂ©glages de l'image" - -#. image auto capture -#: ../src/guvcview.c:561 -msgid "Stop Auto (I)" -msgstr "ArrĂȘt Automatique (I)" - -#: ../src/guvcview.c:676 -msgid "" -"Guvcview error:\n" -"\n" -"Unable to create Video Thread" -msgstr "" -"Erreur de Gubcview :\n" -"\n" -"Incapable de crĂ©er le flux vidĂ©o" - -#: ../src/guvcview.c:677 -msgid "Please report it to http://developer.berlios.de/bugs/?group_id=8179" -msgstr "" -"Veuillez le reporter Ă  http://developer.berlios.de/bugs/?group_id=8179" - -#: ../src/img_controls.c:121 -msgid "Auto Focus (continuous)" -msgstr "Mise au Point (continu)" - -#: ../src/img_controls.c:122 -msgid "set Focus" -msgstr "Mise au Point" - -#: ../src/image_format.c:35 -msgid "Jpeg (jpg)" -msgstr "" - -#: ../src/image_format.c:41 -msgid "Bitmap (Bmp)" -msgstr "" - -#: ../src/image_format.c:47 -msgid "Portable Network Graphics (Png)" -msgstr "" - -#: ../src/image_format.c:53 -msgid "Raw Image (raw)" -msgstr "" - -#. controls menu -#: ../src/menubar.c:64 -msgid "Settings" -msgstr "" - -#: ../src/menubar.c:67 -msgid "Hardware Defaults" -msgstr "" - -#: ../src/menubar.c:75 -msgid "Camera Button" -msgstr "" - -#: ../src/menubar.c:79 -msgid "Capture Image" -msgstr "" - -#: ../src/menubar.c:84 -msgid "Capture Video" -msgstr "" - -#. video menu -#: ../src/menubar.c:144 ../src/video_tab.c:95 -msgid "Video" -msgstr "" - -#: ../src/menubar.c:145 ../src/menubar.c:233 -msgid "File" -msgstr "" - -#: ../src/menubar.c:146 ../src/menubar.c:234 -msgid "Increment Filename" -msgstr "" - -#: ../src/menubar.c:164 -msgid "Video Codec" -msgstr "" - -#: ../src/menubar.c:189 -msgid "Video Codec Properties" -msgstr "" - -#: ../src/menubar.c:196 -msgid "Audio Codec" -msgstr "" - -#: ../src/menubar.c:217 -msgid "Audio Codec Properties" -msgstr "" - -#. photo menu -#: ../src/menubar.c:232 -msgid "Photo" -msgstr "" - -#: ../src/options.c:753 -msgid "Prints version" -msgstr "Affiche la version" - -#: ../src/options.c:754 -msgid "Displays debug information" -msgstr "Afficher information extra" - -#: ../src/options.c:755 -msgid "Video Device to use [default: /dev/video0]" -msgstr "PĂ©riphĂ©rique video (dĂ©faut: /dev/video0)" - -#: ../src/options.c:756 -msgid "Exit after adding UVC extension controls (needs root/sudo)" -msgstr "" -"Quitter aprĂšs avoir ajouter les contrĂŽles d'extension (nĂ©cessite root/sudo)" - -#: ../src/options.c:757 -msgid "Don't stream video (image controls only)" -msgstr "Ne pas activer le flux vidĂ©o (seulement contrĂŽle d'image)" - -#: ../src/options.c:758 -msgid "Don't display a GUI" -msgstr "Ne pas afficher d'interface graphique" - -#: ../src/options.c:759 -msgid "Capture method (1-mmap (default) 2-read)" -msgstr "MĂ©thode de capture (1-mmap (par dĂ©faut) 2-read)" - -#: ../src/options.c:760 -msgid "Configuration file" -msgstr "Fichier de configuration" - -#: ../src/options.c:761 -msgid "Hardware accelaration (enable(1) | disable(0))" -msgstr "Accel. matĂ©rielle (activer(1) | desactiver(0))" - -#: ../src/options.c:762 -msgid "" -"Pixel " -"format(mjpg|jpeg|yuyv|yvyu|uyvy|yyuv|yu12|yv12|nv12|nv21|nv16|nv61|y41p|grey|" -"y10b|y16 |s501|s505|s508|gbrg|grbg|ba81|rggb|bgr3|rgb3)" -msgstr "" -"Format " -"matriciel(mjpg|jpeg|yuyv|yvyu|uyvy|yyuv|yu12|yv12|nv12|nv21|nv16|nv61|y41p|gr" -"ey|y10b|y16 |s501|s505|s508|gbrg|grbg|ba81|rggb|bgr3|rgb3)" - -#: ../src/options.c:763 -msgid "Frame size, default: 640x480" -msgstr "RĂ©solution, dĂ©faut: 640x480" - -#: ../src/options.c:764 -msgid "Image File name" -msgstr "Ficher Image" - -#: ../src/options.c:765 -msgid "Image capture interval in seconds" -msgstr "Interval d'enr. des images (secondes)" - -#: ../src/options.c:766 -msgid "Number of Pictures to capture" -msgstr "Nombre d'images Ă  enregistrer" - -#: ../src/options.c:767 -msgid "Video File name (capture from start)" -msgstr "Fichier video (enr. de dĂ©but)" - -#: ../src/options.c:768 -msgid "Video capture time (in seconds)" -msgstr "DurĂ©e de l'enr. video (secondes)" - -#: ../src/options.c:769 -msgid "Exits guvcview after closing video" -msgstr "Quitte guvcview aprĂšs avoir fermĂ© la vidĂ©o" - -#: ../src/options.c:770 -msgid "Number of initial frames to skip" -msgstr "Nombre d'images initiales Ă  sauter" - -#: ../src/options.c:771 -msgid "Show FPS value (enable(1) | disable (0))" -msgstr "Afficher img/sec (activer(1) | desactiver(0))" - -#: ../src/options.c:772 -msgid "Load Profile at start" -msgstr "Charger rĂ©glages personnalisĂ©s" - -#: ../src/options.c:773 -msgid "List controls method (0:loop, 1:next_ctrl flag [def])" -msgstr "" - -#: ../src/options.c:779 -msgid "- local options" -msgstr "- options locales" - -#. gdk_threads_enter(); -#: ../src/timers.c:119 -msgid "Cap. Image" -msgstr "Enr. Image" - -#: ../src/timers.c:217 -msgid "Guvcview Warning:" -msgstr "Avertissement Guvcview :" - -#: ../src/timers.c:217 -msgid "Not enough free space left on disk" -msgstr "Il ne reste pas assez d'espace libre sur le disque" - -#: ../src/v4l2_controls.c:794 -msgid "Left" -msgstr "Gauche" - -#: ../src/v4l2_controls.c:795 -msgid "Right" -msgstr "Droite" - -#: ../src/v4l2_controls.c:799 -msgid "Down" -msgstr "Bas" - -#: ../src/v4l2_controls.c:800 -msgid "Up" -msgstr "Haut" - -#: ../src/v4l2_controls.c:845 -msgid "Off" -msgstr "DĂ©sactivĂ©" - -#: ../src/v4l2_controls.c:845 -msgid "On" -msgstr "ActivĂ©" - -#: ../src/v4l2_controls.c:845 -msgid "Blinking" -msgstr "Clignotement" - -#: ../src/v4l2_controls.c:845 -msgid "Auto" -msgstr "Automatique" - -#. turn it into a menu control -#: ../src/v4l2_controls.c:894 -msgid "8 bit" -msgstr "8 bit" - -#: ../src/v4l2_controls.c:894 -msgid "12 bit" -msgstr "12 bit" - -#: ../src/v4l2_dyna_ctrls.c:96 -msgid "Pan (relative)" -msgstr "Rotation Horizontale (valeur relative)" - -#: ../src/v4l2_dyna_ctrls.c:109 -msgid "Tilt (relative)" -msgstr "Rotation Verticale (valeur relative)" - -#: ../src/v4l2_dyna_ctrls.c:122 -msgid "Pan Reset" -msgstr "Rotation Horizontale (remise Ă  zero)" - -#: ../src/v4l2_dyna_ctrls.c:135 -msgid "Tilt Reset" -msgstr "Rotation Verticale (remise Ă  zero)" - -#: ../src/v4l2_dyna_ctrls.c:148 -msgid "Focus (absolute)" -msgstr "Mise au Point (valeur absolue)" +#: ../data/guvcview.desktop.in.in.h:1 +msgid "guvcview" +msgstr "guvcview" -#: ../src/v4l2_dyna_ctrls.c:161 -msgid "LED1 Mode" -msgstr "Mode DEL1" +#: ../data/guvcview.desktop.in.in.h:2 +msgid "GTK UVC video viewer" +msgstr "Logiciel GTK de visualisation de vidĂ©o UVC" -#: ../src/v4l2_dyna_ctrls.c:174 -msgid "LED1 Frequency" -msgstr "FrĂ©quence DEL1" +#: ../data/guvcview.desktop.in.in.h:3 +msgid "A video viewer and capturer for the linux uvc driver" +msgstr "Logiciel de visualisation et de capture vidĂ©o pour le pilote uvc Linux" -#: ../src/v4l2_dyna_ctrls.c:187 -msgid "Disable video processing" -msgstr "DĂ©sactiver le post-traitement vidĂ©o" +#: ../data/guvcview.appdata.xml.in.in.h:1 +msgid "capture video from v4l2 devices" +msgstr "" -#: ../src/v4l2_dyna_ctrls.c:200 -msgid "Raw bits per pixel" -msgstr "DonnĂ©es brutes par pixel" +#: ../data/guvcview.appdata.xml.in.in.h:2 +msgid "" +"Video capture tool for video4linux2 compliant cameras, with special emphasis " +"on the linux uvc driver. It provides Image (jpg, png, bmp) and Video (mjpeg, " +"flv1, wmv1, mpg2, mpg4,...) capture with sound in several " +"formats( currently: avi and matroska). I also supports a control panel " +"option (--control_only) that is compatible with any other v4l2 app." +msgstr "" -#. needed only for language files (not used) +#. +#. * needed only for language files (not used) +#. #. V4L2 control strings -#: ../src/v4l2uvc.c:57 +#: ../gview_v4l2core/v4l2_controls.c:49 msgid "User Controls" msgstr "Raccourcis claviers" -#: ../src/v4l2uvc.c:58 +#: ../gview_v4l2core/v4l2_controls.c:50 msgid "Brightness" msgstr "LuminositĂ©" -#: ../src/v4l2uvc.c:59 +#: ../gview_v4l2core/v4l2_controls.c:51 msgid "Contrast" msgstr "Contraste" -#: ../src/v4l2uvc.c:60 +#: ../gview_v4l2core/v4l2_controls.c:52 msgid "Hue" msgstr "Teinte" -#: ../src/v4l2uvc.c:61 +#: ../gview_v4l2core/v4l2_controls.c:53 msgid "Saturation" msgstr "Saturation" -#: ../src/v4l2uvc.c:62 +#: ../gview_v4l2core/v4l2_controls.c:54 msgid "Sharpness" msgstr "NettetĂ©" -#: ../src/v4l2uvc.c:63 +#: ../gview_v4l2core/v4l2_controls.c:55 msgid "Gamma" msgstr "Gamma" -#: ../src/v4l2uvc.c:64 +#: ../gview_v4l2core/v4l2_controls.c:56 msgid "Backlight Compensation" msgstr "Correction de contre-jour" -#: ../src/v4l2uvc.c:65 +#: ../gview_v4l2core/v4l2_controls.c:57 msgid "Power Line Frequency" msgstr "FrĂ©quence de rafraĂźchissement" -#: ../src/v4l2uvc.c:66 +#: ../gview_v4l2core/v4l2_controls.c:58 msgid "Hue, Automatic" msgstr "Teinte, Automatique" -#: ../src/v4l2uvc.c:67 +#: ../gview_v4l2core/v4l2_controls.c:59 msgid "Focus, Auto" msgstr "Mise au Point Automatique" -#: ../src/v4l2uvc.c:68 +#: ../gview_v4l2core/v4l2_controls.c:60 msgid "Manual Mode" msgstr "Mode Manuel" -#: ../src/v4l2uvc.c:69 +#: ../gview_v4l2core/v4l2_controls.c:61 msgid "Auto Mode" msgstr "Mode Auto" -#: ../src/v4l2uvc.c:70 +#: ../gview_v4l2core/v4l2_controls.c:62 msgid "Shutter Priority Mode" msgstr "Mode PrioritĂ© Vitesse" -#: ../src/v4l2uvc.c:71 +#: ../gview_v4l2core/v4l2_controls.c:63 msgid "Aperture Priority Mode" msgstr "Mode PrioritĂ© Ouverture" -#: ../src/v4l2uvc.c:72 +#: ../gview_v4l2core/v4l2_controls.c:64 msgid "Black Level" msgstr "Niveau de noir" -#: ../src/v4l2uvc.c:73 +#: ../gview_v4l2core/v4l2_controls.c:65 msgid "White Balance, Automatic" msgstr "Balance des blancs, Automatique" -#: ../src/v4l2uvc.c:74 +#: ../gview_v4l2core/v4l2_controls.c:66 msgid "Do White Balance" msgstr "RĂ©gler la balance des blancs" -#: ../src/v4l2uvc.c:75 +#: ../gview_v4l2core/v4l2_controls.c:67 msgid "Red Balance" msgstr "Balance des rouges" -#: ../src/v4l2uvc.c:76 +#: ../gview_v4l2core/v4l2_controls.c:68 msgid "Blue Balance" msgstr "Balance des bleus" -#: ../src/v4l2uvc.c:77 +#: ../gview_v4l2core/v4l2_controls.c:69 msgid "Exposure" msgstr "Exposition" -#: ../src/v4l2uvc.c:78 +#: ../gview_v4l2core/v4l2_controls.c:70 msgid "Gain, Automatic" msgstr "Gain, Automatique" -#: ../src/v4l2uvc.c:79 +#: ../gview_v4l2core/v4l2_controls.c:71 msgid "Gain" msgstr "Gain" -#: ../src/v4l2uvc.c:80 +#: ../gview_v4l2core/v4l2_controls.c:72 msgid "Horizontal Flip" msgstr "Miroir horizontal" -#: ../src/v4l2uvc.c:81 +#: ../gview_v4l2core/v4l2_controls.c:73 msgid "Vertical Flip" msgstr "Miroir vertical" -#: ../src/v4l2uvc.c:82 +#: ../gview_v4l2core/v4l2_controls.c:74 msgid "Horizontal Center" msgstr "CentrĂ© Horizontalement" -#: ../src/v4l2uvc.c:83 +#: ../gview_v4l2core/v4l2_controls.c:75 msgid "Vertical Center" msgstr "Centrer verticalement" -#: ../src/v4l2uvc.c:84 +#: ../gview_v4l2core/v4l2_controls.c:76 msgid "Chroma AGC" msgstr "Chroma CAG" -#: ../src/v4l2uvc.c:85 +#: ../gview_v4l2core/v4l2_controls.c:77 msgid "Color Killer" msgstr "Tueur de couleur" -#: ../src/v4l2uvc.c:86 +#: ../gview_v4l2core/v4l2_controls.c:78 msgid "Color Effects" msgstr "Effets de couleur" #. CAMERA CLASS control strings -#: ../src/v4l2uvc.c:89 +#: ../gview_v4l2core/v4l2_controls.c:81 msgid "Camera Controls" msgstr "Commande de la camĂ©ra" -#: ../src/v4l2uvc.c:90 +#: ../gview_v4l2core/v4l2_controls.c:82 msgid "Auto Exposure" msgstr "Exposition automatique" -#: ../src/v4l2uvc.c:91 +#: ../gview_v4l2core/v4l2_controls.c:83 msgid "Exposure Time, Absolute" msgstr "Temps d'exposition, Absolu" -#: ../src/v4l2uvc.c:92 +#: ../gview_v4l2core/v4l2_controls.c:84 msgid "Exposure, Dynamic Framerate" msgstr "Exposition, Nombre d'images par seconde dynamique" -#: ../src/v4l2uvc.c:93 +#: ../gview_v4l2core/v4l2_controls.c:85 msgid "Pan, Relative" msgstr "Panoramique, Relatif" -#: ../src/v4l2uvc.c:94 +#: ../gview_v4l2core/v4l2_controls.c:86 msgid "Tilt, Relative" msgstr "Inclinaison, Relatif" -#: ../src/v4l2uvc.c:95 +#: ../gview_v4l2core/v4l2_controls.c:87 msgid "Pan, Reset" msgstr "Panoramique, Remise Ă  zĂ©ro" -#: ../src/v4l2uvc.c:96 +#: ../gview_v4l2core/v4l2_controls.c:88 msgid "Tilt, Reset" msgstr "Inclinaison, Remise Ă  zĂ©ro" -#: ../src/v4l2uvc.c:97 +#: ../gview_v4l2core/v4l2_controls.c:89 msgid "Pan, Absolute" msgstr "Panoramique, Absolu" -#: ../src/v4l2uvc.c:99 +#: ../gview_v4l2core/v4l2_controls.c:91 msgid "Focus, Absolute" msgstr "Focale, Absolu" -#: ../src/v4l2uvc.c:100 +#: ../gview_v4l2core/v4l2_controls.c:92 msgid "Focus, Relative" msgstr "Focale, Relatif" -#: ../src/v4l2uvc.c:101 +#: ../gview_v4l2core/v4l2_controls.c:93 msgid "Focus, Automatic" msgstr "Focale, Automatique" -#: ../src/v4l2uvc.c:102 +#: ../gview_v4l2core/v4l2_controls.c:94 msgid "Zoom, Absolute" msgstr "Zoom, Absolu" -#: ../src/v4l2uvc.c:103 +#: ../gview_v4l2core/v4l2_controls.c:95 msgid "Zoom, Relative" msgstr "Zoom, Relatif" -#: ../src/v4l2uvc.c:104 +#: ../gview_v4l2core/v4l2_controls.c:96 msgid "Zoom, Continuous" msgstr "Zoom, Continu" -#: ../src/v4l2uvc.c:105 +#: ../gview_v4l2core/v4l2_controls.c:97 msgid "Privacy" msgstr "ConfidentialitĂ©" #. UVC specific control strings -#: ../src/v4l2uvc.c:108 +#: ../gview_v4l2core/v4l2_controls.c:100 msgid "Exposure, Auto" msgstr "Exposition, Auto" -#: ../src/v4l2uvc.c:109 +#: ../gview_v4l2core/v4l2_controls.c:101 msgid "Exposure, Auto Priority" msgstr "Exposition, mode automatique" -#: ../src/v4l2uvc.c:110 +#: ../gview_v4l2core/v4l2_controls.c:102 msgid "Exposure (Absolute)" msgstr "Exposition (valeur absolue)" -#: ../src/v4l2uvc.c:111 +#: ../gview_v4l2core/v4l2_controls.c:103 msgid "White Balance Temperature, Auto" msgstr "Balance des blancs, Auto" -#: ../src/v4l2uvc.c:112 +#: ../gview_v4l2core/v4l2_controls.c:104 msgid "White Balance Temperature" msgstr "Balance des blancs" -#: ../src/v4l2uvc.c:113 +#: ../gview_v4l2core/v4l2_controls.c:105 msgid "White Balance Component, Auto" msgstr "Balance des blancs par canal, Auto" -#: ../src/v4l2uvc.c:114 +#: ../gview_v4l2core/v4l2_controls.c:106 msgid "White Balance Blue Component" msgstr "Balance des Blancs, Canal Bleu" -#: ../src/v4l2uvc.c:115 +#: ../gview_v4l2core/v4l2_controls.c:107 msgid "White Balance Red Component" msgstr "Balance des Blancs, Canal Rouge" #. libwebcam specific control strings -#: ../src/v4l2uvc.c:118 +#: ../gview_v4l2core/v4l2_controls.c:110 msgid "Focus" msgstr "Mise au point" -#: ../src/v4l2uvc.c:119 +#: ../gview_v4l2core/v4l2_controls.c:111 msgid "Focus (Absolute)" msgstr "Mise au point (Absolue)" -#: ../src/vcodecs.c:63 +#: ../gview_v4l2core/v4l2_xu_ctrls.c:63 ../guvcview/gui_gtk3_v4l2ctrls.c:239 +msgid "Off" +msgstr "DĂ©sactivĂ©" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:64 ../guvcview/gui_gtk3_v4l2ctrls.c:239 +msgid "On" +msgstr "ActivĂ©" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:65 ../guvcview/gui_gtk3_v4l2ctrls.c:239 +msgid "Blinking" +msgstr "Clignotement" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:66 ../guvcview/gui_gtk3_v4l2ctrls.c:239 +msgid "Auto" +msgstr "Automatique" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:73 +msgid "Pan (relative)" +msgstr "Rotation Horizontale (valeur relative)" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:86 +msgid "Tilt (relative)" +msgstr "Rotation Verticale (valeur relative)" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:99 +msgid "Pan Reset" +msgstr "Rotation Horizontale (remise Ă  zero)" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:112 +msgid "Tilt Reset" +msgstr "Rotation Verticale (remise Ă  zero)" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:125 +msgid "Focus (absolute)" +msgstr "Mise au Point (valeur absolue)" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:138 +msgid "LED1 Mode" +msgstr "Mode DEL1" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:151 +msgid "LED1 Frequency" +msgstr "FrĂ©quence DEL1" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:164 +msgid "Disable video processing" +msgstr "DĂ©sactiver le post-traitement vidĂ©o" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:177 +msgid "Raw bits per pixel" +msgstr "DonnĂ©es brutes par pixel" + +#: ../gview_encoder/audio_codecs.c:63 +#, fuzzy +msgid "PCM - uncompressed (float 32 bit)" +msgstr "PCM - non compressĂ© (16 bit)" + +#: ../gview_encoder/audio_codecs.c:80 +msgid "MP2 (MPEG audio layer 2)" +msgstr "" + +#: ../gview_encoder/audio_codecs.c:97 +msgid "MP3 (MPEG audio layer 3)" +msgstr "" + +#: ../gview_encoder/audio_codecs.c:118 +msgid "AC-3 (ATSC A/52A)" +msgstr "" + +#: ../gview_encoder/audio_codecs.c:139 +msgid "AAC (Advanced Audio Coding)" +msgstr "" + +#: ../gview_encoder/audio_codecs.c:160 +msgid "Vorbis" +msgstr "" + +#: ../gview_encoder/video_codecs.c:75 +#, fuzzy +msgid "Raw camera input" +msgstr "Sortie CamĂ©ra :" + +#: ../gview_encoder/video_codecs.c:111 msgid "MJPG - compressed" msgstr "MJPG - compressĂ©" -#: ../src/vcodecs.c:99 -msgid "YUY2 - uncomp YUV" -msgstr "YUY2 - YUV non compressĂ©" - -#: ../src/vcodecs.c:135 -msgid "RGB - uncomp BMP" -msgstr "RVB - BMP non compressĂ©" - -#: ../src/vcodecs.c:171 +#: ../gview_encoder/video_codecs.c:147 msgid "MPEG video 1" msgstr "MPEG video 1" -#: ../src/vcodecs.c:207 +#: ../gview_encoder/video_codecs.c:183 msgid "FLV1 - flash video 1" msgstr "FLV1 - flash video 1" -#: ../src/vcodecs.c:243 +#: ../gview_encoder/video_codecs.c:219 msgid "WMV1 - win. med. video 7" msgstr "WMV1 - wind. med. video 7" -#: ../src/vcodecs.c:279 +#: ../gview_encoder/video_codecs.c:255 msgid "MPG2 - MPG2 format" msgstr "MPG2 - Mpeg video 2" -#: ../src/vcodecs.c:315 +#: ../gview_encoder/video_codecs.c:291 msgid "MS MP4 V3" msgstr "MP4 - MS Mpeg 4 V3" -#: ../src/vcodecs.c:351 +#: ../gview_encoder/video_codecs.c:327 msgid "MPEG4-ASP" msgstr "MPEG4-ASP" -#: ../src/vcodecs.c:387 +#: ../gview_encoder/video_codecs.c:363 msgid "MPEG4-AVC (H264)" msgstr "MPEG4-AVC (H264)" -#: ../src/vcodecs.c:427 +#: ../gview_encoder/video_codecs.c:403 msgid "VP8 (VP8)" msgstr "" -#: ../src/vcodecs.c:463 -msgid "Theora (ogg theora)" -msgstr "" +#: ../gview_encoder/video_codecs.c:439 +msgid "Theora (ogg theora)" +msgstr "" + +#: ../guvcview/gui_gtk3_audioctrls.c:95 +msgid "Audio API:" +msgstr "Audio API:" + +#: ../guvcview/gui_gtk3_audioctrls.c:106 +msgid "NO SOUND" +msgstr "" + +#: ../guvcview/gui_gtk3_audioctrls.c:107 +msgid "PORTAUDIO" +msgstr "PORTAUDIO" + +#: ../guvcview/gui_gtk3_audioctrls.c:110 +msgid "PULSEAUDIO" +msgstr "PULSEAUDIO" + +#: ../guvcview/gui_gtk3_audioctrls.c:127 +msgid "Input Device:" +msgstr "PĂ©riphĂ©rique d'EntrĂ©e:" + +#: ../guvcview/gui_gtk3_audioctrls.c:161 +msgid "Sample Rate:" +msgstr "Taux d'Ă©chantillonage:" + +#: ../guvcview/gui_gtk3_audioctrls.c:168 ../guvcview/gui_gtk3_audioctrls.c:214 +msgid "Dev. Default" +msgstr "Valeur par DĂ©faut" + +#: ../guvcview/gui_gtk3_audioctrls.c:207 +msgid "Channels:" +msgstr "Canaux:" + +#: ../guvcview/gui_gtk3_audioctrls.c:215 +msgid "1 - mono" +msgstr "1 - mono" + +#: ../guvcview/gui_gtk3_audioctrls.c:216 +msgid "2 - stereo" +msgstr "2 - stĂ©rĂ©o" + +#: ../guvcview/gui_gtk3_audioctrls.c:235 +#, fuzzy +msgid "---- Audio Filters ----" +msgstr "---- Filtres VidĂ©o ----" + +#. Echo FX +#: ../guvcview/gui_gtk3_audioctrls.c:255 +msgid " Echo" +msgstr " Echo" + +#. Reverb FX +#: ../guvcview/gui_gtk3_audioctrls.c:268 +msgid " Reverb" +msgstr " Reverb" + +#. Fuzz FX +#: ../guvcview/gui_gtk3_audioctrls.c:281 +msgid " Fuzz" +msgstr " Bruit" + +#. WahWah FX +#: ../guvcview/gui_gtk3_audioctrls.c:294 +msgid " WahWah" +msgstr " WahWah" + +#. Ducky FX +#: ../guvcview/gui_gtk3_audioctrls.c:307 +msgid " Ducky" +msgstr " Canard" + +#: ../guvcview/gui_gtk3.c:310 ../guvcview/gui_gtk3_callbacks.c:749 +msgid "Stop Video (V)" +msgstr "ArrĂȘter la vidĂ©o (V)" + +#. video button +#: ../guvcview/gui_gtk3.c:315 ../guvcview/gui_gtk3.c:600 +#: ../guvcview/gui_gtk3_callbacks.c:755 +msgid "Cap. Video (V)" +msgstr "Enr. Video (V)" + +#: ../guvcview/gui_gtk3.c:376 ../guvcview/gui_gtk3.c:383 +msgid "Error" +msgstr "Erreur" + +#: ../guvcview/gui_gtk3.c:379 ../guvcview/gui_gtk3.c:386 +#: ../guvcview/gui_gtk3_callbacks.c:2097 +msgid "_Ok" +msgstr "" + +#: ../guvcview/gui_gtk3.c:380 ../guvcview/gui_gtk3_callbacks.c:185 +#: ../guvcview/gui_gtk3_callbacks.c:199 ../guvcview/gui_gtk3_callbacks.c:522 +#: ../guvcview/gui_gtk3_callbacks.c:624 ../guvcview/gui_gtk3_callbacks.c:1755 +#: ../guvcview/gui_gtk3_callbacks.c:2098 +#, fuzzy +msgid "_Cancel" +msgstr "Annuler" + +#: ../guvcview/gui_gtk3.c:407 +msgid "" +"\n" +"You have more than one video device installed.\n" +"Do you want to try another one ?\n" +msgstr "" +"\n" +"Vous avez plus d'un pĂ©riphĂ©rique vidĂ©o installĂ©.\n" +"Voulez-vous en essayer un autre ?\n" + +#. ---- Devices ---- +#: ../guvcview/gui_gtk3.c:414 ../guvcview/gui_gtk3_videoctrls.c:106 +msgid "Device:" +msgstr "PĂ©riphĂ©rique d'EntrĂ©e:" + +#: ../guvcview/gui_gtk3.c:516 +msgid "Guvcview Video Capture" +msgstr "Capture de vidĂ©o Guvcview" + +#: ../guvcview/gui_gtk3.c:525 +#, fuzzy +msgid "Guvcview" +msgstr "guvcview" + +#: ../guvcview/gui_gtk3.c:572 +#, fuzzy +msgid "Stop Cap. (I)" +msgstr "ArrĂȘt Automatique (I)" + +#: ../guvcview/gui_gtk3.c:578 ../guvcview/gui_gtk3_callbacks.c:720 +#: ../guvcview/video_capture.c:250 +msgid "Cap. Image (I)" +msgstr "Enr. Image (I)" + +#. quit button +#. GtkWidget *quitButton = gtk_button_new_from_stock(GTK_STOCK_QUIT); +#: ../guvcview/gui_gtk3.c:621 +msgid "_Quit" +msgstr "" + +#: ../guvcview/gui_gtk3.c:667 +msgid "Image Controls" +msgstr "RĂ©glages de l'image" + +#: ../guvcview/gui_gtk3.c:703 +#, fuzzy +msgid "H264 Controls" +msgstr "Raccourcis claviers" + +#: ../guvcview/gui_gtk3.c:742 +#, fuzzy +msgid "Video Controls" +msgstr "Raccourcis claviers" + +#: ../guvcview/gui_gtk3.c:777 +#, fuzzy +msgid "Audio Controls" +msgstr "Raccourcis claviers" + +#: ../guvcview/gui_gtk3_callbacks.c:182 ../guvcview/gui_gtk3_menu.c:72 +msgid "Save Profile" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:186 ../guvcview/gui_gtk3_callbacks.c:523 +#: ../guvcview/gui_gtk3_callbacks.c:625 +msgid "_Save" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:196 ../guvcview/gui_gtk3_menu.c:71 +msgid "Load Profile" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:200 +msgid "_Open" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:208 ../guvcview/gui_gtk3_callbacks.c:531 +#: ../guvcview/gui_gtk3_callbacks.c:634 +msgid "File Format:" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:220 +msgid "gpfl (*.gpfl)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:221 +msgid "any (*.*)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:519 +#, fuzzy +msgid "Photo file name" +msgstr "Ficher Image" + +#: ../guvcview/gui_gtk3_callbacks.c:543 +msgid "Raw (*.raw)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:544 +msgid "Jpeg (*.jpg)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:545 +msgid "Png (*.png)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:546 +msgid "Bmp (*.bmp)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:621 +#, fuzzy +msgid "Video file name" +msgstr "Ficher Image" + +#: ../guvcview/gui_gtk3_callbacks.c:646 +msgid "Matroska (*.mkv)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:647 +msgid "WebM (*.webm)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:648 +msgid "Avi (*.avi)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:1158 +msgid "start new" +msgstr "commencez nouveau" + +#: ../guvcview/gui_gtk3_callbacks.c:1161 +msgid "restart" +msgstr "RedĂ©marrer l'application" + +#: ../guvcview/gui_gtk3_callbacks.c:1163 +msgid "new" +msgstr "nouveau" + +#: ../guvcview/gui_gtk3_callbacks.c:1165 +msgid "cancel" +msgstr "Annuler" + +#: ../guvcview/gui_gtk3_callbacks.c:1170 +msgid "" +"launch new process or restart?.\n" +"\n" +msgstr "" +"nouveau processus ou redĂ©marrage?\n" +"\n" + +#: ../guvcview/gui_gtk3_callbacks.c:1751 +#, fuzzy +msgid "video codec values" +msgstr "valeurs du codec audio" + +#: ../guvcview/gui_gtk3_callbacks.c:1754 +msgid "_OK" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:1760 +msgid "" +" encoder fps: \n" +" (0 - use fps combobox value)" +msgstr "" +" encodeur ips: \n" +" (0 - utilise la valeur ips de la combobox)" + +#: ../guvcview/gui_gtk3_callbacks.c:1773 +msgid " monotonic pts" +msgstr " Pts monotones" + +#. bit rate +#: ../guvcview/gui_gtk3_callbacks.c:1780 ../guvcview/gui_gtk3_callbacks.c:2105 +msgid "bit rate: " +msgstr "bit rate : " + +#: ../guvcview/gui_gtk3_callbacks.c:1793 +msgid "qmax: " +msgstr "qmax : " + +#: ../guvcview/gui_gtk3_callbacks.c:1806 +msgid "qmin: " +msgstr "qmin : " + +#: ../guvcview/gui_gtk3_callbacks.c:1819 +msgid "max. qdiff: " +msgstr "qdiff max.: " + +#: ../guvcview/gui_gtk3_callbacks.c:1832 +msgid "dia size: " +msgstr "taille dia: " -#: ../src/video_format.c:43 -msgid "AVI - avi format" -msgstr "AVI - format avi" +#: ../guvcview/gui_gtk3_callbacks.c:1845 +msgid "pre dia size: " +msgstr "taille pre dia: " -#: ../src/video_format.c:52 -msgid "MKV - Matroska format" -msgstr "MKV - format Matroska" +#: ../guvcview/gui_gtk3_callbacks.c:1858 +msgid "pre me: " +msgstr "pre me: " -#: ../src/video_format.c:61 -msgid "WEBM - format" -msgstr "" +#: ../guvcview/gui_gtk3_callbacks.c:1871 +msgid "pre cmp: " +msgstr "pre cmp: " -#: ../src/video_tab.c:216 -msgid "Frame Rate:" -msgstr "FrĂ©quence d'image:" +#: ../guvcview/gui_gtk3_callbacks.c:1884 +msgid "cmp: " +msgstr "cmp: " -#: ../src/video_tab.c:223 -msgid " Show" -msgstr " Afficher" +#: ../guvcview/gui_gtk3_callbacks.c:1897 +msgid "sub cmp: " +msgstr "sous cmp: " -#: ../src/video_tab.c:245 -msgid "Resolution:" -msgstr "RĂ©solution :" +#: ../guvcview/gui_gtk3_callbacks.c:1910 +msgid "last predictor count: " +msgstr "compte du dernier indicateur: " -#: ../src/video_tab.c:271 -msgid "Camera Output:" -msgstr "Sortie CamĂ©ra :" +#: ../guvcview/gui_gtk3_callbacks.c:1923 +msgid "gop size: " +msgstr "taille gop: " -#: ../src/video_tab.c:293 -msgid "Apply" -msgstr "Assigner" +#: ../guvcview/gui_gtk3_callbacks.c:1936 +msgid "qcompress: " +msgstr "qcompress: " -#: ../src/video_tab.c:300 -msgid "Quality:" -msgstr "QualitĂ©:" +#: ../guvcview/gui_gtk3_callbacks.c:1949 +msgid "qblur: " +msgstr "qblur: " -#: ../src/video_tab.c:310 -msgid "---- Video Filters ----" -msgstr "---- Filtres VidĂ©o ----" +#: ../guvcview/gui_gtk3_callbacks.c:1962 +msgid "subq: " +msgstr "subq: " -#. Mirror -#: ../src/video_tab.c:329 -msgid " Mirror" -msgstr " Miroir" +#: ../guvcview/gui_gtk3_callbacks.c:1975 +msgid "framerefs: " +msgstr "framerefs: " -#. Upturn -#: ../src/video_tab.c:340 -msgid " Invert" -msgstr " Inverser" +#: ../guvcview/gui_gtk3_callbacks.c:1988 +msgid "me method: " +msgstr "mĂ©thode me: " -#. Negate -#: ../src/video_tab.c:351 -msgid " Negative" -msgstr " NĂ©gatif" +#: ../guvcview/gui_gtk3_callbacks.c:2001 +msgid "mb decision: " +msgstr "dĂ©cision mb: " -#. Mono -#: ../src/video_tab.c:362 -msgid " Mono" -msgstr " Monochrome" +#: ../guvcview/gui_gtk3_callbacks.c:2014 +msgid "max B frames: " +msgstr "nombre max d'images B: " -#. Pieces -#: ../src/video_tab.c:374 -msgid " Pieces" -msgstr " Morceaux" +#: ../guvcview/gui_gtk3_callbacks.c:2027 +msgid "num threads: " +msgstr "nb threads: " -#. Particles -#: ../src/video_tab.c:386 -msgid " Particles" -msgstr " Particules" +#: ../guvcview/gui_gtk3_callbacks.c:2094 +msgid "audio codec values" +msgstr "valeurs du codec audio" -#: ../src/uvc_h264.c:596 -msgid "H264 Controls" +#. sample format +#: ../guvcview/gui_gtk3_callbacks.c:2119 +msgid "sample format: " msgstr "" -#: ../src/uvc_h264.c:615 +#: ../guvcview/gui_gtk3_h264ctrls.c:622 +#, fuzzy msgid "Rate Control Mode:" -msgstr "" +msgstr "RĂ©glages de l'image" -#: ../src/uvc_h264.c:626 +#: ../guvcview/gui_gtk3_h264ctrls.c:633 msgid "CBR" msgstr "" -#: ../src/uvc_h264.c:629 +#: ../guvcview/gui_gtk3_h264ctrls.c:636 msgid "VBR" msgstr "" -#: ../src/uvc_h264.c:633 +#: ../guvcview/gui_gtk3_h264ctrls.c:640 msgid "Constant QP" msgstr "" -#: ../src/uvc_h264.c:651 +#: ../guvcview/gui_gtk3_h264ctrls.c:658 msgid "Rate Control Mode flags:" msgstr "" -#: ../src/uvc_h264.c:676 +#: ../guvcview/gui_gtk3_h264ctrls.c:683 msgid "Temporal Scale Mode:" msgstr "" -#: ../src/uvc_h264.c:704 +#: ../guvcview/gui_gtk3_h264ctrls.c:711 msgid "Spatial Scale Mode:" msgstr "" -#: ../src/uvc_h264.c:737 +#: ../guvcview/gui_gtk3_h264ctrls.c:741 msgid "Frame Interval (100ns units):" msgstr "" -#: ../src/uvc_h264.c:772 +#: ../guvcview/gui_gtk3_h264ctrls.c:778 +#, fuzzy msgid "Bit Rate:" -msgstr "" +msgstr "bit rate : " -#: ../src/uvc_h264.c:795 +#: ../guvcview/gui_gtk3_h264ctrls.c:801 msgid "Hints:" msgstr "" -#: ../src/uvc_h264.c:800 +#: ../guvcview/gui_gtk3_h264ctrls.c:806 +#, fuzzy msgid "Resolution" -msgstr "" +msgstr "RĂ©solution :" -#: ../src/uvc_h264.c:804 +#: ../guvcview/gui_gtk3_h264ctrls.c:810 msgid "Profile" msgstr "" -#: ../src/uvc_h264.c:808 +#: ../guvcview/gui_gtk3_h264ctrls.c:814 +#, fuzzy msgid "Rate Control" -msgstr "" +msgstr "RĂ©glages de l'image" -#: ../src/uvc_h264.c:812 +#: ../guvcview/gui_gtk3_h264ctrls.c:818 msgid "Usage Type" msgstr "" -#: ../src/uvc_h264.c:816 +#: ../guvcview/gui_gtk3_h264ctrls.c:822 msgid "Slice Mode" msgstr "" -#: ../src/uvc_h264.c:820 +#: ../guvcview/gui_gtk3_h264ctrls.c:826 msgid "Slice Unit" msgstr "" -#: ../src/uvc_h264.c:824 +#: ../guvcview/gui_gtk3_h264ctrls.c:830 msgid "MVC View" msgstr "" -#: ../src/uvc_h264.c:828 +#: ../guvcview/gui_gtk3_h264ctrls.c:834 msgid "Temporal Scale" msgstr "" -#: ../src/uvc_h264.c:832 +#: ../guvcview/gui_gtk3_h264ctrls.c:838 msgid "SNR Scale" msgstr "" -#: ../src/uvc_h264.c:836 +#: ../guvcview/gui_gtk3_h264ctrls.c:842 msgid "Spatial Scale" msgstr "" -#: ../src/uvc_h264.c:840 +#: ../guvcview/gui_gtk3_h264ctrls.c:846 msgid "Spatial Layer Ratio" msgstr "" -#: ../src/uvc_h264.c:844 +#: ../guvcview/gui_gtk3_h264ctrls.c:850 +#, fuzzy msgid "Frame Interval" -msgstr "" +msgstr "FrĂ©quence d'image:" -#: ../src/uvc_h264.c:848 +#: ../guvcview/gui_gtk3_h264ctrls.c:854 msgid "Leaky Bucket Size" msgstr "" -#: ../src/uvc_h264.c:852 +#: ../guvcview/gui_gtk3_h264ctrls.c:858 msgid "Bit Rate" msgstr "" -#: ../src/uvc_h264.c:856 ../src/uvc_h264.c:1250 +#: ../guvcview/gui_gtk3_h264ctrls.c:862 ../guvcview/gui_gtk3_h264ctrls.c:1220 msgid "CABAC" msgstr "" -#: ../src/uvc_h264.c:860 +#: ../guvcview/gui_gtk3_h264ctrls.c:866 msgid "(I) Frame Period" msgstr "" -#: ../src/uvc_h264.c:907 +#: ../guvcview/gui_gtk3_h264ctrls.c:878 msgid "Slice Mode:" msgstr "" -#: ../src/uvc_h264.c:914 +#: ../guvcview/gui_gtk3_h264ctrls.c:885 msgid "no multiple slices" msgstr "" -#: ../src/uvc_h264.c:916 +#: ../guvcview/gui_gtk3_h264ctrls.c:887 msgid "bits/slice" msgstr "" -#: ../src/uvc_h264.c:918 +#: ../guvcview/gui_gtk3_h264ctrls.c:889 msgid "Mbits/slice" msgstr "" -#: ../src/uvc_h264.c:920 +#: ../guvcview/gui_gtk3_h264ctrls.c:891 msgid "slices/frame" msgstr "" -#: ../src/uvc_h264.c:929 +#: ../guvcview/gui_gtk3_h264ctrls.c:900 msgid "Slice Units:" msgstr "" -#: ../src/uvc_h264.c:950 +#: ../guvcview/gui_gtk3_h264ctrls.c:921 msgid "Profile:" msgstr "" -#: ../src/uvc_h264.c:957 +#: ../guvcview/gui_gtk3_h264ctrls.c:928 msgid "Baseline Profile" msgstr "" -#: ../src/uvc_h264.c:959 +#: ../guvcview/gui_gtk3_h264ctrls.c:930 msgid "Main Profile" msgstr "" -#: ../src/uvc_h264.c:961 +#: ../guvcview/gui_gtk3_h264ctrls.c:932 msgid "High Profile" msgstr "" -#: ../src/uvc_h264.c:963 +#: ../guvcview/gui_gtk3_h264ctrls.c:934 msgid "Scalable Baseline Profile" msgstr "" -#: ../src/uvc_h264.c:965 +#: ../guvcview/gui_gtk3_h264ctrls.c:936 msgid "Scalable High Profile" msgstr "" -#: ../src/uvc_h264.c:967 +#: ../guvcview/gui_gtk3_h264ctrls.c:938 msgid "Multiview High Profile" msgstr "" -#: ../src/uvc_h264.c:969 +#: ../guvcview/gui_gtk3_h264ctrls.c:940 msgid "Stereo High Profile" msgstr "" -#: ../src/uvc_h264.c:1008 +#: ../guvcview/gui_gtk3_h264ctrls.c:979 msgid "Profile flags:" msgstr "" -#: ../src/uvc_h264.c:1033 +#: ../guvcview/gui_gtk3_h264ctrls.c:1004 msgid "(I) Frame Period (ms):" msgstr "" -#: ../src/uvc_h264.c:1054 +#: ../guvcview/gui_gtk3_h264ctrls.c:1025 msgid "Estimated Video Delay (ms):" msgstr "" -#: ../src/uvc_h264.c:1075 +#: ../guvcview/gui_gtk3_h264ctrls.c:1046 msgid "Estimated Max Config Delay (ms):" msgstr "" -#: ../src/uvc_h264.c:1096 +#: ../guvcview/gui_gtk3_h264ctrls.c:1067 msgid "Usage Type:" msgstr "" -#: ../src/uvc_h264.c:1103 +#: ../guvcview/gui_gtk3_h264ctrls.c:1074 msgid "Real-time" msgstr "" -#: ../src/uvc_h264.c:1105 +#: ../guvcview/gui_gtk3_h264ctrls.c:1076 msgid "Broadcast" msgstr "" -#: ../src/uvc_h264.c:1107 +#: ../guvcview/gui_gtk3_h264ctrls.c:1078 msgid "Storage" msgstr "" -#: ../src/uvc_h264.c:1109 +#: ../guvcview/gui_gtk3_h264ctrls.c:1080 msgid "(0) Non-scalable single layer AVC" msgstr "" -#: ../src/uvc_h264.c:1111 +#: ../guvcview/gui_gtk3_h264ctrls.c:1082 msgid "(1) SVC temporal scalability with hierarchical P" msgstr "" -#: ../src/uvc_h264.c:1113 +#: ../guvcview/gui_gtk3_h264ctrls.c:1084 msgid "(2q) SVC temporal scalability + Quality/SNR scalability" msgstr "" -#: ../src/uvc_h264.c:1115 +#: ../guvcview/gui_gtk3_h264ctrls.c:1086 msgid "(2s) SVC temporal scalability + spatial scalability" msgstr "" -#: ../src/uvc_h264.c:1117 +#: ../guvcview/gui_gtk3_h264ctrls.c:1088 msgid "(3) Full SVC scalability" msgstr "" -#: ../src/uvc_h264.c:1131 +#: ../guvcview/gui_gtk3_h264ctrls.c:1102 msgid "SNR Control Mode:" msgstr "" -#: ../src/uvc_h264.c:1138 +#: ../guvcview/gui_gtk3_h264ctrls.c:1109 msgid "No SNR Enhancement Layer" msgstr "" -#: ../src/uvc_h264.c:1140 +#: ../guvcview/gui_gtk3_h264ctrls.c:1111 msgid "CGS NonRewrite (2 Layer)" msgstr "" -#: ../src/uvc_h264.c:1142 +#: ../guvcview/gui_gtk3_h264ctrls.c:1113 msgid "CGS NonRewrite (3 Layer)" msgstr "" -#: ../src/uvc_h264.c:1144 +#: ../guvcview/gui_gtk3_h264ctrls.c:1115 msgid "CGS Rewrite (2 Layer)" msgstr "" -#: ../src/uvc_h264.c:1146 +#: ../guvcview/gui_gtk3_h264ctrls.c:1117 msgid "CGS Rewrite (3 Layer)" msgstr "" -#: ../src/uvc_h264.c:1148 +#: ../guvcview/gui_gtk3_h264ctrls.c:1119 msgid "MGS (2 Layer)" msgstr "" -#: ../src/uvc_h264.c:1173 +#: ../guvcview/gui_gtk3_h264ctrls.c:1144 msgid "Stream Mux Enable" msgstr "" -#: ../src/uvc_h264.c:1180 +#: ../guvcview/gui_gtk3_h264ctrls.c:1151 msgid "Embed H.264 aux stream" msgstr "" -#: ../src/uvc_h264.c:1182 +#: ../guvcview/gui_gtk3_h264ctrls.c:1153 msgid "Embed YUY2 aux stream" msgstr "" -#: ../src/uvc_h264.c:1184 +#: ../guvcview/gui_gtk3_h264ctrls.c:1155 msgid "Embed NV12 aux stream" msgstr "" -#: ../src/uvc_h264.c:1204 +#: ../guvcview/gui_gtk3_h264ctrls.c:1175 msgid "MJPG payload container" msgstr "" -#: ../src/uvc_h264.c:1219 +#: ../guvcview/gui_gtk3_h264ctrls.c:1189 msgid "Stream Format:" msgstr "" -#: ../src/uvc_h264.c:1227 +#: ../guvcview/gui_gtk3_h264ctrls.c:1197 msgid "Byte stream format (H.264 Annex-B)" msgstr "" -#: ../src/uvc_h264.c:1229 +#: ../guvcview/gui_gtk3_h264ctrls.c:1199 +#, fuzzy msgid "NAL stream format" -msgstr "" +msgstr "AVI - format avi" -#: ../src/uvc_h264.c:1240 +#: ../guvcview/gui_gtk3_h264ctrls.c:1210 msgid "Entropy CABAC:" msgstr "" -#: ../src/uvc_h264.c:1248 +#: ../guvcview/gui_gtk3_h264ctrls.c:1218 msgid "CAVLC" msgstr "" -#: ../src/uvc_h264.c:1261 +#: ../guvcview/gui_gtk3_h264ctrls.c:1231 msgid "Picture timing SEI" msgstr "" -#: ../src/uvc_h264.c:1268 +#: ../guvcview/gui_gtk3_h264ctrls.c:1238 +#, fuzzy msgid "B Frames:" -msgstr "" +msgstr "nombre max d'images B: " -#: ../src/uvc_h264.c:1293 +#: ../guvcview/gui_gtk3_h264ctrls.c:1263 msgid "Preview Flipped" msgstr "" -#: ../src/uvc_h264.c:1300 +#: ../guvcview/gui_gtk3_h264ctrls.c:1270 msgid "Additional MVC Views:" msgstr "" -#: ../src/uvc_h264.c:1325 +#: ../guvcview/gui_gtk3_h264ctrls.c:1295 msgid "Simulcast stream index:" msgstr "" -#: ../src/uvc_h264.c:1350 +#: ../guvcview/gui_gtk3_h264ctrls.c:1320 msgid "Spatial Layer Ratio:" msgstr "" -#: ../src/uvc_h264.c:1379 +#: ../guvcview/gui_gtk3_h264ctrls.c:1349 msgid "Leaky Bucket Size (ms):" msgstr "" #. encoder reset -#: ../src/uvc_h264.c:1406 +#: ../guvcview/gui_gtk3_h264ctrls.c:1376 +#, fuzzy msgid "Encoder Reset" -msgstr "" +msgstr "Rotation Horizontale (remise Ă  zero)" -#. -#. h264_controls->probe_button = gtk_button_new_with_label(_("PROBE")); -#. g_signal_connect (GTK_BUTTON(h264_controls->probe_button), "clicked", +#. +#. GtkWidget *probe_button = gtk_button_new_with_label(_("PROBE")); +#. g_signal_connect (GTK_BUTTON(probe_button), "clicked", #. G_CALLBACK (h264_probe_button_clicked), all_data); -#. -#. gtk_grid_attach (GTK_GRID(table), h264_controls->probe_button, 0, line, 1 ,1); -#. gtk_widget_show(h264_controls->probe_button); -#. -#: ../src/uvc_h264.c:1421 +#. +#. gtk_grid_attach (GTK_GRID(h264_controls_grid), probe_button, 0, line, 1 ,1); +#. gtk_widget_show(probe_button); +#. +#: ../guvcview/gui_gtk3_h264ctrls.c:1391 msgid "COMMIT" msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:70 +msgid "Settings" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:73 +msgid "Hardware Defaults" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:81 +msgid "Camera Button" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:86 +msgid "Capture Image" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:91 +msgid "Capture Video" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:134 +msgid "Photo" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:135 ../guvcview/gui_gtk3_menu.c:159 +msgid "File" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:136 ../guvcview/gui_gtk3_menu.c:160 +msgid "Increment Filename" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:158 +msgid "Video" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:175 +msgid "Video Codec" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:202 +msgid "Video Codec Properties" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:208 +msgid "Audio Codec" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:235 +msgid "Audio Codec Properties" +msgstr "" + +#: ../guvcview/gui_gtk3_v4l2ctrls.c:174 +msgid "Left" +msgstr "Gauche" + +#: ../guvcview/gui_gtk3_v4l2ctrls.c:175 +msgid "Right" +msgstr "Droite" + +#: ../guvcview/gui_gtk3_v4l2ctrls.c:179 +msgid "Down" +msgstr "Bas" + +#: ../guvcview/gui_gtk3_v4l2ctrls.c:180 +msgid "Up" +msgstr "Haut" + +#. turn it into a menu control +#: ../guvcview/gui_gtk3_v4l2ctrls.c:296 +msgid "8 bit" +msgstr "8 bit" + +#: ../guvcview/gui_gtk3_v4l2ctrls.c:296 +msgid "12 bit" +msgstr "12 bit" + +#. add a virtual control for software autofocus +#: ../guvcview/gui_gtk3_v4l2ctrls.c:348 +msgid "Auto Focus (continuous)" +msgstr "Mise au Point (continu)" + +#: ../guvcview/gui_gtk3_v4l2ctrls.c:349 +msgid "set Focus" +msgstr "Mise au Point" + +#. control_widgets_list[n].widget2 = gtk_button_new_from_stock(GTK_STOCK_APPLY); +#. control_widgets_list[n].widget2= gtk_button_new_from_stock(GTK_STOCK_APPLY); +#. control_widgets_list[n].widget2 = gtk_button_new_from_stock(GTK_STOCK_APPLY); +#: ../guvcview/gui_gtk3_v4l2ctrls.c:433 ../guvcview/gui_gtk3_v4l2ctrls.c:456 +#: ../guvcview/gui_gtk3_v4l2ctrls.c:478 +#, fuzzy +msgid "_Apply" +msgstr "Assigner" + +#: ../guvcview/gui_gtk3_videoctrls.c:144 +msgid "Frame Rate:" +msgstr "FrĂ©quence d'image:" + +#: ../guvcview/gui_gtk3_videoctrls.c:204 +msgid "Resolution:" +msgstr "RĂ©solution :" + +#: ../guvcview/gui_gtk3_videoctrls.c:254 +msgid "Camera Output:" +msgstr "Sortie CamĂ©ra :" + +#: ../guvcview/gui_gtk3_videoctrls.c:287 +msgid "---- Video Filters ----" +msgstr "---- Filtres VidĂ©o ----" + +#. Mirror FX +#: ../guvcview/gui_gtk3_videoctrls.c:307 +msgid " Mirror" +msgstr " Miroir" + +#. Upturn FX +#: ../guvcview/gui_gtk3_videoctrls.c:319 +msgid " Invert" +msgstr " Inverser" + +#. Negate FX +#: ../guvcview/gui_gtk3_videoctrls.c:331 +msgid " Negative" +msgstr " NĂ©gatif" + +#. Mono FX +#: ../guvcview/gui_gtk3_videoctrls.c:343 +msgid " Mono" +msgstr " Monochrome" + +#. Pieces FX +#: ../guvcview/gui_gtk3_videoctrls.c:356 +msgid " Pieces" +msgstr " Morceaux" + +#. Particles +#: ../guvcview/gui_gtk3_videoctrls.c:369 +msgid " Particles" +msgstr " Particules" + +#: ../guvcview/options.c:51 +msgid "Print help" +msgstr "" + +#: ../guvcview/options.c:58 +#, fuzzy +msgid "Print version" +msgstr "Affiche la version" + +#: ../guvcview/options.c:64 +msgid "LEVEL" +msgstr "" + +#: ../guvcview/options.c:65 +msgid "Set Verbosity level (def: 0)" +msgstr "" + +#: ../guvcview/options.c:71 +msgid "DEVICE" +msgstr "" + +#: ../guvcview/options.c:72 +#, fuzzy +msgid "Set device name (def: /dev/video0)" +msgstr "PĂ©riphĂ©rique video (dĂ©faut: /dev/video0)" + +#: ../guvcview/options.c:78 +msgid "METHOD" +msgstr "" + +#: ../guvcview/options.c:79 +#, fuzzy +msgid "Set capture method [read | mmap (def)]" +msgstr "MĂ©thode de capture (1-mmap (par dĂ©faut) 2-read)" + +#: ../guvcview/options.c:85 +msgid "WIDTHxHEIGHT" +msgstr "" + +#: ../guvcview/options.c:86 +msgid "Request resolution (e.g 640x480)" +msgstr "" + +#: ../guvcview/options.c:92 +msgid "FOURCC" +msgstr "" + +#: ../guvcview/options.c:93 +msgid "Request format (e.g MJPG)" +msgstr "" + +#: ../guvcview/options.c:99 +msgid "RENDER_API" +msgstr "" + +#: ../guvcview/options.c:100 +msgid "Select render API (e.g none; sdl)" +msgstr "" + +#: ../guvcview/options.c:106 +msgid "AUDIO_API" +msgstr "" + +#: ../guvcview/options.c:107 +msgid "Select audio API (e.g none; port; pulse)" +msgstr "" + +#: ../guvcview/options.c:113 +msgid "AUDIO_DEVICE" +msgstr "" + +#: ../guvcview/options.c:114 +msgid "Select audio device index for selected api (0..N)" +msgstr "" + +#: ../guvcview/options.c:120 +msgid "GUI_API" +msgstr "" + +#: ../guvcview/options.c:121 +msgid "Select GUI API (e.g none; gtk3)" +msgstr "" + +#: ../guvcview/options.c:127 ../guvcview/options.c:134 +msgid "CODEC" +msgstr "" + +#: ../guvcview/options.c:128 +msgid "Audio codec [pcm mp2 mp3 aac ac3 vorb]" +msgstr "" + +#: ../guvcview/options.c:135 +msgid "Video codec [raw mjpg mpeg flv1 wmv1 mpg2 mp43 dx50 h264 vp80 theo]" +msgstr "" + +#: ../guvcview/options.c:141 ../guvcview/options.c:148 +#: ../guvcview/options.c:155 +msgid "FILENAME" +msgstr "" + +#: ../guvcview/options.c:142 +msgid "load control profile" +msgstr "" + +#: ../guvcview/options.c:149 +msgid "filename for captured video)" +msgstr "" + +#: ../guvcview/options.c:156 +msgid "filename for captured image)" +msgstr "" + +#: ../guvcview/options.c:162 ../guvcview/options.c:169 +msgid "TIME_IN_SEC" +msgstr "" + +#: ../guvcview/options.c:163 +msgid "time (double) in sec. for video capture)" +msgstr "" + +#: ../guvcview/options.c:170 +msgid "time (double) in sec. between captured photos)" +msgstr "" + +#: ../guvcview/options.c:176 +msgid "TOTAL" +msgstr "" + +#: ../guvcview/options.c:177 +msgid "total number of captured photos)" +msgstr "" + +#: ../guvcview/options.c:184 +msgid "Start in control panel mode" +msgstr "" + +#: ../guvcview/options.c:307 +#, fuzzy, c-format +msgid "" +"Guvcview version %s\n" +"\n" +msgstr "Avertissement Guvcview :" + +#: ../guvcview/options.c:308 +#, c-format +msgid "" +"Usage:\n" +" guvcview [OPTIONS]\n" +"\n" +msgstr "" + +#: ../guvcview/options.c:309 +#, c-format +msgid "OPTIONS:\n" +msgstr "" + +#: ../guvcview/video_capture.c:819 +#, c-format +msgid "saving video to %s" +msgstr "" + +#. if(debug_level > 1) +#. printf("GUVCVIEW: saving image to %s\n", img_filename); +#: ../guvcview/video_capture.c:1069 +#, c-format +msgid "saving image to %s" +msgstr "" + +#~ msgid "MPEG2 - (lavc)" +#~ msgstr "MPEG2 - (lavc)" + +#~ msgid "MP3 - (lavc)" +#~ msgstr "MP3 - (lavc)" + +#~ msgid "Dolby AC3 - (lavc)" +#~ msgstr "Dolby AC3 - (lavc)" + +#~ msgid "ACC Low - (faac)" +#~ msgstr "AAC Low - (faac)" + +#~ msgid "Audio" +#~ msgstr "Audio" + +#~ msgid " Sound" +#~ msgstr " Son" + +#~ msgid " Show VU meter" +#~ msgstr " Afficher le VU-mĂštre" + +#~ msgid "---- Audio Effects ----" +#~ msgstr "---- Effets Audio ----" + +#~ msgid "Save File" +#~ msgstr "Enregistrer le Fichier" + +#~ msgid "codec values" +#~ msgstr "valeurs codec" + +#~ msgid "Cap. Video" +#~ msgstr "Enr. Video" + +#~ msgid "GUVCViewer Controls" +#~ msgstr "RĂ©glages GUVCViewer" + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to open device" +#~ msgstr "" +#~ "Erreur de Guvcview :\n" +#~ "\n" +#~ "Incapable d'accĂ©der au pĂ©riphĂ©rique" + +#~ msgid "" +#~ "Please make sure the camera is connected\n" +#~ "and that the correct driver is installed." +#~ msgstr "" +#~ "Svp, assurez-vous que le pĂ©riphĂ©rique est connectĂ©\n" +#~ "et que le pilote est installĂ©." + +#~ msgid "" +#~ "Guvcview:\n" +#~ "\n" +#~ "UVC Extension controls" +#~ msgstr "" +#~ "Guvcview :\n" +#~ "\n" +#~ "ContrĂŽles de l'extension UVC" + +#~ msgid "Extension controls were added to the UVC driver" +#~ msgstr "Les contrĂŽles de l'extension ont Ă©tĂ© ajoutĂ©s au pilote UVC" + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "UVC Extension controls" +#~ msgstr "" +#~ "Erreur de Guvcview :\n" +#~ "\n" +#~ "ContrĂŽles de l'extension UVC" + +#~ msgid "" +#~ "An error occurred while adding extension\n" +#~ "controls to the UVC driver\n" +#~ "Make sure you run guvcview as root (or sudo)." +#~ msgstr "" +#~ "Une erreur est survenue lors de l'ajout \n" +#~ "des contrĂŽles d'extension du pilote UVC.\n" +#~ "Assurez-vous d'avoir lancĂ© guvcview \n" +#~ "en tant qu'utilisateur root (ou sudo)." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Can't set a valid video stream for guvcview" +#~ msgstr "" +#~ "Erreur de Gubcview :\n" +#~ "\n" +#~ "Incapable de gĂ©rer le flux vidĂ©o" + +#~ msgid "" +#~ "Make sure your device driver is v4l2 compliant\n" +#~ "and that it is properly installed." +#~ msgstr "" +#~ "VĂ©rifiez que vous avez un pilote compatible v4l2\n" +#~ "et qu'il est correctement installĂ©." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to start with minimum setup" +#~ msgstr "" +#~ "Erreur de Guvcview :\n" +#~ "\n" +#~ "Incapable de dĂ©marrer avec des rĂ©glages minimum" + +#~ msgid "Please reconnect your camera." +#~ msgstr "Veuillez rebrancher votre pĂ©riphĂ©rique." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Couldn't query device capabilities" +#~ msgstr "" +#~ "Erreur de Guvcview:\n" +#~ "\n" +#~ "Incapable d'accĂ©der au pĂ©riphĂ©rique" + +#~ msgid "Make sure the device driver supports v4l2." +#~ msgstr "Veuillez vĂ©rifier que le driver du matĂ©riel supporte V4L2." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Read method error" +#~ msgstr "" +#~ "Erreur de Gubvcviewr :\n" +#~ "\n" +#~ "erreur de lecteure" + +#~ msgid "Please try mmap instead (--capture_method=1)." +#~ msgstr "Veuillez essayer mmap (--capture_method=1) Ă  la place." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to allocate Buffers" +#~ msgstr "" +#~ "Erreur de Guvcview:\n" +#~ "\n" +#~ "Incapable d'assigner des tampons mĂ©moires" + +#~ msgid "Please try restarting your system." +#~ msgstr "Veuillez essayer de redĂ©marrer votre systĂšme." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to create Video Thread" +#~ msgstr "" +#~ "Erreur de Gubcview :\n" +#~ "\n" +#~ "Incapable de crĂ©er le flux vidĂ©o" + +#~ msgid "Please report it to http://developer.berlios.de/bugs/?group_id=8179" +#~ msgstr "" +#~ "Veuillez le reporter Ă  http://developer.berlios.de/bugs/?group_id=8179" + +#~ msgid "Displays debug information" +#~ msgstr "Afficher information extra" + +#~ msgid "Exit after adding UVC extension controls (needs root/sudo)" +#~ msgstr "" +#~ "Quitter aprĂšs avoir ajouter les contrĂŽles d'extension (nĂ©cessite root/" +#~ "sudo)" + +#~ msgid "Don't stream video (image controls only)" +#~ msgstr "Ne pas activer le flux vidĂ©o (seulement contrĂŽle d'image)" + +#~ msgid "Don't display a GUI" +#~ msgstr "Ne pas afficher d'interface graphique" + +#~ msgid "Configuration file" +#~ msgstr "Fichier de configuration" + +#~ msgid "Hardware accelaration (enable(1) | disable(0))" +#~ msgstr "Accel. matĂ©rielle (activer(1) | desactiver(0))" + +#~ msgid "" +#~ "Pixel format(mjpg|jpeg|yuyv|yvyu|uyvy|yyuv|yu12|yv12|nv12|nv21|nv16|nv61|" +#~ "y41p|grey|y10b|y16 |s501|s505|s508|gbrg|grbg|ba81|rggb|bgr3|rgb3)" +#~ msgstr "" +#~ "Format matriciel(mjpg|jpeg|yuyv|yvyu|uyvy|yyuv|yu12|yv12|nv12|nv21|nv16|" +#~ "nv61|y41p|grey|y10b|y16 |s501|s505|s508|gbrg|grbg|ba81|rggb|bgr3|rgb3)" + +#~ msgid "Frame size, default: 640x480" +#~ msgstr "RĂ©solution, dĂ©faut: 640x480" + +#~ msgid "Image capture interval in seconds" +#~ msgstr "Interval d'enr. des images (secondes)" + +#~ msgid "Number of Pictures to capture" +#~ msgstr "Nombre d'images Ă  enregistrer" + +#~ msgid "Video File name (capture from start)" +#~ msgstr "Fichier video (enr. de dĂ©but)" + +#~ msgid "Video capture time (in seconds)" +#~ msgstr "DurĂ©e de l'enr. video (secondes)" + +#~ msgid "Exits guvcview after closing video" +#~ msgstr "Quitte guvcview aprĂšs avoir fermĂ© la vidĂ©o" + +#~ msgid "Number of initial frames to skip" +#~ msgstr "Nombre d'images initiales Ă  sauter" + +#~ msgid "Show FPS value (enable(1) | disable (0))" +#~ msgstr "Afficher img/sec (activer(1) | desactiver(0))" + +#~ msgid "Load Profile at start" +#~ msgstr "Charger rĂ©glages personnalisĂ©s" + +#~ msgid "- local options" +#~ msgstr "- options locales" + +#~ msgid "Cap. Image" +#~ msgstr "Enr. Image" + +#~ msgid "Not enough free space left on disk" +#~ msgstr "Il ne reste pas assez d'espace libre sur le disque" + +#~ msgid "YUY2 - uncomp YUV" +#~ msgstr "YUY2 - YUV non compressĂ©" + +#~ msgid "RGB - uncomp BMP" +#~ msgstr "RVB - BMP non compressĂ©" + +#~ msgid "MKV - Matroska format" +#~ msgstr "MKV - format Matroska" + +#~ msgid " Show" +#~ msgstr " Afficher" + +#~ msgid "Quality:" +#~ msgstr "QualitĂ©:" diff -Nru guvcview-1.7.3/po/gl.po guvcview-2.0.1+ubuntu1~ppa1/po/gl.po --- guvcview-1.7.3/po/gl.po 2014-03-24 22:56:28.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/po/gl.po 2014-10-05 10:41:44.000000000 +0000 @@ -8,1391 +8,1468 @@ msgstr "" "Project-Id-Version: guvcview\n" "Report-Msgid-Bugs-To: pj.assis@gmail.com\n" -"POT-Creation-Date: 2013-11-14 22:15+0000\n" +"POT-Creation-Date: 2014-08-17 22:49+0100\n" "PO-Revision-Date: 2013-02-25 05:34+0000\n" "Last-Translator: Dario \n" "Language-Team: Galician \n" +"Language: gl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-12-08 10:36+0000\n" -"X-Generator: Launchpad (build 16869)\n" -"Language: gl\n" - -#: ../data/guvcview.desktop.in.in.h:1 -msgid "guvcview" -msgstr "" - -#: ../data/guvcview.desktop.in.in.h:2 -msgid "GTK UVC video viewer" -msgstr "" - -#: ../data/guvcview.desktop.in.in.h:3 -msgid "A video viewer and capturer for the linux uvc driver" -msgstr "" - -#: ../src/acodecs.c:59 -msgid "PCM - uncompressed (16 bit)" -msgstr "" - -#: ../src/acodecs.c:76 -msgid "MPEG2 - (lavc)" -msgstr "" - -#: ../src/acodecs.c:93 -msgid "MP3 - (lavc)" -msgstr "" - -#: ../src/acodecs.c:110 -msgid "Dolby AC3 - (lavc)" -msgstr "" - -#: ../src/acodecs.c:127 -msgid "ACC Low - (faac)" -msgstr "" - -#: ../src/acodecs.c:144 -msgid "Vorbis" -msgstr "" - -#: ../src/audio_tab.c:87 -msgid "Audio" -msgstr "Son" - -#: ../src/audio_tab.c:105 -msgid " Sound" -msgstr " Son" - -#. VU meter on the image (OSD) -#: ../src/audio_tab.c:116 -msgid " Show VU meter" -msgstr "" - -#: ../src/audio_tab.c:128 -msgid "Audio API:" -msgstr "" - -#: ../src/audio_tab.c:139 -msgid "PORTAUDIO" -msgstr "" - -#: ../src/audio_tab.c:140 -msgid "PULSEAUDIO" -msgstr "PULSEAUDIO" - -#: ../src/audio_tab.c:156 ../src/audio_tab.c:179 -msgid "Input Device:" -msgstr "Dispositivo de entrada:" - -#: ../src/audio_tab.c:189 ../src/audio_tab.c:221 -msgid "Dev. Default" -msgstr "" - -#: ../src/audio_tab.c:211 -msgid "Sample Rate:" -msgstr "Taxa de mostraxe:" - -#: ../src/audio_tab.c:222 -msgid "1 - mono" -msgstr "1 - mono" - -#: ../src/audio_tab.c:223 -msgid "2 - stereo" -msgstr "2 - stereo" - -#: ../src/audio_tab.c:258 -msgid "Channels:" -msgstr "Canles:" - -#: ../src/audio_tab.c:309 -msgid "---- Audio Effects ----" -msgstr "" - -#. Echo -#: ../src/audio_tab.c:328 -msgid " Echo" -msgstr " Echo" - -#. FUZZ -#: ../src/audio_tab.c:339 -msgid " Fuzz" -msgstr " Difuso" - -#. Reverb -#: ../src/audio_tab.c:351 -msgid " Reverb" -msgstr " Reverberar" - -#. WahWah -#: ../src/audio_tab.c:363 -msgid " WahWah" -msgstr "" - -#. Ducky -#: ../src/audio_tab.c:375 -msgid " Ducky" -msgstr "" - -#: ../src/callbacks.c:109 -msgid "Error" -msgstr "Erro" - -#: ../src/callbacks.c:133 -msgid "" -"\n" -"You have more than one video device installed.\n" -"Do you want to try another one ?\n" -msgstr "" - -#. Devices -#: ../src/callbacks.c:140 ../src/video_tab.c:111 -msgid "Device:" -msgstr "Dispositivo:" - -#: ../src/callbacks.c:272 -msgid "Save File" -msgstr "Gardar o ficheiro" - -#: ../src/callbacks.c:284 -msgid "File Format:" -msgstr "" - -#: ../src/callbacks.c:455 -msgid "codec values" -msgstr "" - -#: ../src/callbacks.c:466 -msgid "" -" encoder fps: \n" -" (0 - use fps combobox value)" -msgstr "" - -#: ../src/callbacks.c:479 -msgid " monotonic pts" -msgstr "" - -#. bit rate -#: ../src/callbacks.c:486 ../src/callbacks.c:809 -msgid "bit rate: " -msgstr "Taxa de bits: " - -#: ../src/callbacks.c:499 -msgid "qmax: " -msgstr "qmax: " - -#: ../src/callbacks.c:512 -msgid "qmin: " -msgstr "qmin: " - -#: ../src/callbacks.c:525 -msgid "max. qdiff: " -msgstr "max. qdiff: " - -#: ../src/callbacks.c:538 -msgid "dia size: " -msgstr "" - -#: ../src/callbacks.c:551 -msgid "pre dia size: " -msgstr "" - -#: ../src/callbacks.c:564 -msgid "pre me: " -msgstr "pre me: " - -#: ../src/callbacks.c:577 -msgid "pre cmp: " -msgstr "pre cmp: " - -#: ../src/callbacks.c:590 -msgid "cmp: " -msgstr "cmp: " - -#: ../src/callbacks.c:603 -msgid "sub cmp: " -msgstr "sub cmp: " - -#: ../src/callbacks.c:616 -msgid "last predictor count: " -msgstr "" - -#: ../src/callbacks.c:629 -msgid "gop size: " -msgstr "Tamaño do gop: " - -#: ../src/callbacks.c:642 -msgid "qcompress: " -msgstr "" - -#: ../src/callbacks.c:655 -msgid "qblur: " -msgstr "" - -#: ../src/callbacks.c:668 -msgid "subq: " -msgstr "" - -#: ../src/callbacks.c:681 -msgid "framerefs: " -msgstr "" - -#: ../src/callbacks.c:694 -msgid "me method: " -msgstr "" - -#: ../src/callbacks.c:707 -msgid "mb decision: " -msgstr "" - -#: ../src/callbacks.c:720 -msgid "max B frames: " -msgstr "" - -#: ../src/callbacks.c:733 -msgid "num threads: " -msgstr "" - -#: ../src/callbacks.c:796 -msgid "audio codec values" -msgstr "" - -#. sample format -#: ../src/callbacks.c:823 -msgid "sample format: " -msgstr "" - -#: ../src/callbacks.c:1311 -msgid "start new" -msgstr "" - -#: ../src/callbacks.c:1314 -msgid "restart" -msgstr "reiniciar" - -#: ../src/callbacks.c:1316 -msgid "new" -msgstr "novo" - -#: ../src/callbacks.c:1318 -msgid "cancel" -msgstr "cancelar" - -#: ../src/callbacks.c:1323 -msgid "" -"launch new process or restart?.\n" -"\n" -msgstr "" - -#: ../src/callbacks.c:1780 ../src/guvcview.c:565 -msgid "Cap. Image (I)" -msgstr "Cap. Imaxe (I)" - -#. disable image controls -#: ../src/callbacks.c:1791 ../src/guvcview.c:690 ../src/timers.c:101 -msgid "capturing photo to" -msgstr "" - -#: ../src/callbacks.c:1850 ../src/guvcview.c:575 -msgid "Cap. Video (V)" -msgstr "Cap. Video (V)" - -#: ../src/callbacks.c:1876 ../src/guvcview.c:740 -msgid "capturing video to" -msgstr "" - -#. vid capture enabled from start -#: ../src/callbacks.c:1911 ../src/guvcview.c:570 -msgid "Stop Video (V)" -msgstr "Deter vĂ­deo (V)" - -#: ../src/callbacks.c:1967 ../src/menubar.c:66 -msgid "Save Profile" -msgstr "" - -#: ../src/callbacks.c:1980 ../src/menubar.c:65 -msgid "Load Profile" -msgstr "" - -#: ../src/create_video.c:1098 ../src/guvcview.c:732 -msgid "Cap. Video" -msgstr "Cap. Video" - -#: ../src/guvcview.c:280 -msgid "Guvcview Video Capture" -msgstr "Capturador de vĂ­deo GUVCView" - -#: ../src/guvcview.c:292 -msgid "GUVCViewer Controls" -msgstr "Controles de GUVCViewer" - -#. can't open device -#: ../src/guvcview.c:342 -msgid "" -"Guvcview error:\n" -"\n" -"Unable to open device" -msgstr "" -"Erro de GUVCView:\n" -"\n" -"Non foi posĂ­bel conectar a cĂĄmara" - -#: ../src/guvcview.c:343 -msgid "" -"Please make sure the camera is connected\n" -"and that the correct driver is installed." -msgstr "" -"AsegĂșrese de que a sĂșa cĂĄmara estĂĄ conectada\n" -"e que o controlador estĂĄ correctamente instalada." - -#. uvc extension controls OK, give warning and shutdown (called with --add_ctrls) -#: ../src/guvcview.c:348 -msgid "" -"Guvcview:\n" -"\n" -"UVC Extension controls" -msgstr "" - -#: ../src/guvcview.c:349 -msgid "Extension controls were added to the UVC driver" -msgstr "" - -#. uvc extension controls error - EACCES (needs root user) -#: ../src/guvcview.c:356 -msgid "" -"Guvcview error:\n" -"\n" -"UVC Extension controls" -msgstr "" - -#: ../src/guvcview.c:357 -msgid "" -"An error occurred while adding extension\n" -"controls to the UVC driver\n" -"Make sure you run guvcview as root (or sudo)." -msgstr "" - -#: ../src/guvcview.c:391 ../src/guvcview.c:399 ../src/guvcview.c:477 -msgid "" -"Guvcview error:\n" -"\n" -"Can't set a valid video stream for guvcview" -msgstr "" - -#: ../src/guvcview.c:392 ../src/guvcview.c:400 ../src/guvcview.c:478 -msgid "" -"Make sure your device driver is v4l2 compliant\n" -"and that it is properly installed." -msgstr "" - -#: ../src/guvcview.c:422 ../src/guvcview.c:444 -msgid "" -"Guvcview error:\n" -"\n" -"Unable to start with minimum setup" -msgstr "" - -#: ../src/guvcview.c:423 ../src/guvcview.c:445 -msgid "Please reconnect your camera." -msgstr "Conecte de novo a sĂșa cĂĄmara." - -#: ../src/guvcview.c:452 -msgid "" -"Guvcview error:\n" -"\n" -"Couldn't query device capabilities" -msgstr "" -"Erro de GUVCView:\n" -"\n" -"Non se poideron consultar as capacidades do dispositivo" - -#: ../src/guvcview.c:453 -msgid "Make sure the device driver supports v4l2." -msgstr "AsegĂșrese de que o controlador do dispositivo soporta v4l2." - -#: ../src/guvcview.c:457 -msgid "" -"Guvcview error:\n" -"\n" -"Read method error" -msgstr "" -"Erro de GUVCView:\n" -"\n" -"Erro no mĂ©todo de lectura" - -#: ../src/guvcview.c:458 -msgid "Please try mmap instead (--capture_method=1)." -msgstr "Probe mmap no seu lugar (--capture_method=1)." - -#: ../src/guvcview.c:466 -msgid "" -"Guvcview error:\n" -"\n" -"Unable to allocate Buffers" -msgstr "" -"Erro de GUVCView:\n" -"\n" -"Non foi posĂ­bel asignarlle memoria aos bĂșferes" - -#: ../src/guvcview.c:467 -msgid "Please try restarting your system." -msgstr "Probe reiniciando o seu sistema." - -#: ../src/guvcview.c:518 -msgid "Image Controls" -msgstr "" - -#. image auto capture -#: ../src/guvcview.c:561 -msgid "Stop Auto (I)" -msgstr "" - -#: ../src/guvcview.c:676 -msgid "" -"Guvcview error:\n" -"\n" -"Unable to create Video Thread" -msgstr "" -"Erro en GUVCView:\n" -"\n" -"Non foi posĂ­ble crear un fĂ­o de execuciĂłn de vĂ­deo" - -#: ../src/guvcview.c:677 -msgid "Please report it to http://developer.berlios.de/bugs/?group_id=8179" -msgstr "" -"Por favor, informe do erro a http://developer.berlios.de/bugs/?group_id=8179" - -#: ../src/img_controls.c:121 -msgid "Auto Focus (continuous)" -msgstr "Foco automĂĄtico(continuo)" - -#: ../src/img_controls.c:122 -msgid "set Focus" -msgstr "Definir foco" - -#: ../src/image_format.c:35 -msgid "Jpeg (jpg)" -msgstr "" - -#: ../src/image_format.c:41 -msgid "Bitmap (Bmp)" -msgstr "" - -#: ../src/image_format.c:47 -msgid "Portable Network Graphics (Png)" -msgstr "" - -#: ../src/image_format.c:53 -msgid "Raw Image (raw)" -msgstr "" - -#. controls menu -#: ../src/menubar.c:64 -msgid "Settings" -msgstr "" - -#: ../src/menubar.c:67 -msgid "Hardware Defaults" -msgstr "" - -#: ../src/menubar.c:75 -msgid "Camera Button" -msgstr "" - -#: ../src/menubar.c:79 -msgid "Capture Image" -msgstr "" - -#: ../src/menubar.c:84 -msgid "Capture Video" -msgstr "" - -#. video menu -#: ../src/menubar.c:144 ../src/video_tab.c:95 -msgid "Video" -msgstr "" - -#: ../src/menubar.c:145 ../src/menubar.c:233 -msgid "File" -msgstr "" - -#: ../src/menubar.c:146 ../src/menubar.c:234 -msgid "Increment Filename" -msgstr "" - -#: ../src/menubar.c:164 -msgid "Video Codec" -msgstr "" - -#: ../src/menubar.c:189 -msgid "Video Codec Properties" -msgstr "" - -#: ../src/menubar.c:196 -msgid "Audio Codec" -msgstr "" - -#: ../src/menubar.c:217 -msgid "Audio Codec Properties" -msgstr "" - -#. photo menu -#: ../src/menubar.c:232 -msgid "Photo" -msgstr "" - -#: ../src/options.c:753 -msgid "Prints version" -msgstr "Mostrar a versiĂłn" - -#: ../src/options.c:754 -msgid "Displays debug information" -msgstr "" - -#: ../src/options.c:755 -msgid "Video Device to use [default: /dev/video0]" -msgstr "" - -#: ../src/options.c:756 -msgid "Exit after adding UVC extension controls (needs root/sudo)" -msgstr "" - -#: ../src/options.c:757 -msgid "Don't stream video (image controls only)" -msgstr "" - -#: ../src/options.c:758 -msgid "Don't display a GUI" -msgstr "" - -#: ../src/options.c:759 -msgid "Capture method (1-mmap (default) 2-read)" -msgstr "" - -#: ../src/options.c:760 -msgid "Configuration file" -msgstr "" - -#: ../src/options.c:761 -msgid "Hardware accelaration (enable(1) | disable(0))" -msgstr "" - -#: ../src/options.c:762 -msgid "" -"Pixel " -"format(mjpg|jpeg|yuyv|yvyu|uyvy|yyuv|yu12|yv12|nv12|nv21|nv16|nv61|y41p|grey|" -"y10b|y16 |s501|s505|s508|gbrg|grbg|ba81|rggb|bgr3|rgb3)" -msgstr "" - -#: ../src/options.c:763 -msgid "Frame size, default: 640x480" -msgstr "Tamaño predeterminado do marco:640x480" - -#: ../src/options.c:764 -msgid "Image File name" -msgstr "Nome da imaxe" - -#: ../src/options.c:765 -msgid "Image capture interval in seconds" -msgstr "" - -#: ../src/options.c:766 -msgid "Number of Pictures to capture" -msgstr "" - -#: ../src/options.c:767 -msgid "Video File name (capture from start)" -msgstr "" - -#: ../src/options.c:768 -msgid "Video capture time (in seconds)" -msgstr "" - -#: ../src/options.c:769 -msgid "Exits guvcview after closing video" -msgstr "" - -#: ../src/options.c:770 -msgid "Number of initial frames to skip" -msgstr "" - -#: ../src/options.c:771 -msgid "Show FPS value (enable(1) | disable (0))" -msgstr "" - -#: ../src/options.c:772 -msgid "Load Profile at start" -msgstr "" - -#: ../src/options.c:773 -msgid "List controls method (0:loop, 1:next_ctrl flag [def])" -msgstr "" - -#: ../src/options.c:779 -msgid "- local options" -msgstr "" - -#. gdk_threads_enter(); -#: ../src/timers.c:119 -msgid "Cap. Image" -msgstr "Cap. Imaxe" - -#: ../src/timers.c:217 -msgid "Guvcview Warning:" -msgstr "" - -#: ../src/timers.c:217 -msgid "Not enough free space left on disk" -msgstr "" - -#: ../src/v4l2_controls.c:794 -msgid "Left" -msgstr "Esquerda" - -#: ../src/v4l2_controls.c:795 -msgid "Right" -msgstr "Dereita" - -#: ../src/v4l2_controls.c:799 -msgid "Down" -msgstr "Abaixo" - -#: ../src/v4l2_controls.c:800 -msgid "Up" -msgstr "Arriba" - -#: ../src/v4l2_controls.c:845 -msgid "Off" -msgstr "" - -#: ../src/v4l2_controls.c:845 -msgid "On" -msgstr "" - -#: ../src/v4l2_controls.c:845 -msgid "Blinking" -msgstr "" - -#: ../src/v4l2_controls.c:845 -msgid "Auto" -msgstr "" - -#. turn it into a menu control -#: ../src/v4l2_controls.c:894 -msgid "8 bit" -msgstr "" - -#: ../src/v4l2_controls.c:894 -msgid "12 bit" -msgstr "" - -#: ../src/v4l2_dyna_ctrls.c:96 -msgid "Pan (relative)" -msgstr "" - -#: ../src/v4l2_dyna_ctrls.c:109 -msgid "Tilt (relative)" -msgstr "" - -#: ../src/v4l2_dyna_ctrls.c:122 -msgid "Pan Reset" -msgstr "" - -#: ../src/v4l2_dyna_ctrls.c:135 -msgid "Tilt Reset" -msgstr "" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2013-12-08 10:36+0000\n" +"X-Generator: Launchpad (build 16869)\n" -#: ../src/v4l2_dyna_ctrls.c:148 -msgid "Focus (absolute)" +#: ../data/guvcview.desktop.in.in.h:1 +msgid "guvcview" msgstr "" -#: ../src/v4l2_dyna_ctrls.c:161 -msgid "LED1 Mode" +#: ../data/guvcview.desktop.in.in.h:2 +msgid "GTK UVC video viewer" msgstr "" -#: ../src/v4l2_dyna_ctrls.c:174 -msgid "LED1 Frequency" +#: ../data/guvcview.desktop.in.in.h:3 +msgid "A video viewer and capturer for the linux uvc driver" msgstr "" -#: ../src/v4l2_dyna_ctrls.c:187 -msgid "Disable video processing" +#: ../data/guvcview.appdata.xml.in.in.h:1 +msgid "capture video from v4l2 devices" msgstr "" -#: ../src/v4l2_dyna_ctrls.c:200 -msgid "Raw bits per pixel" +#: ../data/guvcview.appdata.xml.in.in.h:2 +msgid "" +"Video capture tool for video4linux2 compliant cameras, with special emphasis " +"on the linux uvc driver. It provides Image (jpg, png, bmp) and Video (mjpeg, " +"flv1, wmv1, mpg2, mpg4,...) capture with sound in several " +"formats( currently: avi and matroska). I also supports a control panel " +"option (--control_only) that is compatible with any other v4l2 app." msgstr "" -#. needed only for language files (not used) +#. +#. * needed only for language files (not used) +#. #. V4L2 control strings -#: ../src/v4l2uvc.c:57 +#: ../gview_v4l2core/v4l2_controls.c:49 msgid "User Controls" msgstr "" -#: ../src/v4l2uvc.c:58 +#: ../gview_v4l2core/v4l2_controls.c:50 msgid "Brightness" msgstr "Brillo" -#: ../src/v4l2uvc.c:59 +#: ../gview_v4l2core/v4l2_controls.c:51 msgid "Contrast" msgstr "Contraste" -#: ../src/v4l2uvc.c:60 +#: ../gview_v4l2core/v4l2_controls.c:52 msgid "Hue" msgstr "Ton" -#: ../src/v4l2uvc.c:61 +#: ../gview_v4l2core/v4l2_controls.c:53 msgid "Saturation" msgstr "SaturaciĂłn" -#: ../src/v4l2uvc.c:62 +#: ../gview_v4l2core/v4l2_controls.c:54 msgid "Sharpness" msgstr "FocalizaciĂłn" -#: ../src/v4l2uvc.c:63 +#: ../gview_v4l2core/v4l2_controls.c:55 msgid "Gamma" msgstr "Gamma" -#: ../src/v4l2uvc.c:64 +#: ../gview_v4l2core/v4l2_controls.c:56 msgid "Backlight Compensation" msgstr "" -#: ../src/v4l2uvc.c:65 +#: ../gview_v4l2core/v4l2_controls.c:57 msgid "Power Line Frequency" msgstr "" -#: ../src/v4l2uvc.c:66 +#: ../gview_v4l2core/v4l2_controls.c:58 msgid "Hue, Automatic" msgstr "Matiz, AutomĂĄtico" -#: ../src/v4l2uvc.c:67 +#: ../gview_v4l2core/v4l2_controls.c:59 msgid "Focus, Auto" msgstr "Foco, AutomĂĄtico" -#: ../src/v4l2uvc.c:68 +#: ../gview_v4l2core/v4l2_controls.c:60 msgid "Manual Mode" msgstr "Modo Manual" -#: ../src/v4l2uvc.c:69 +#: ../gview_v4l2core/v4l2_controls.c:61 msgid "Auto Mode" msgstr "Modo AutomĂĄtico" -#: ../src/v4l2uvc.c:70 +#: ../gview_v4l2core/v4l2_controls.c:62 msgid "Shutter Priority Mode" msgstr "" -#: ../src/v4l2uvc.c:71 +#: ../gview_v4l2core/v4l2_controls.c:63 msgid "Aperture Priority Mode" msgstr "" -#: ../src/v4l2uvc.c:72 +#: ../gview_v4l2core/v4l2_controls.c:64 msgid "Black Level" msgstr "Nivel de negro" -#: ../src/v4l2uvc.c:73 +#: ../gview_v4l2core/v4l2_controls.c:65 msgid "White Balance, Automatic" msgstr "" -#: ../src/v4l2uvc.c:74 +#: ../gview_v4l2core/v4l2_controls.c:66 msgid "Do White Balance" msgstr "" -#: ../src/v4l2uvc.c:75 +#: ../gview_v4l2core/v4l2_controls.c:67 msgid "Red Balance" msgstr "Balance vermello" -#: ../src/v4l2uvc.c:76 +#: ../gview_v4l2core/v4l2_controls.c:68 msgid "Blue Balance" msgstr "Balance azul" -#: ../src/v4l2uvc.c:77 +#: ../gview_v4l2core/v4l2_controls.c:69 msgid "Exposure" msgstr "ExposiciĂłn" -#: ../src/v4l2uvc.c:78 +#: ../gview_v4l2core/v4l2_controls.c:70 msgid "Gain, Automatic" msgstr "Ganancia, AutomĂĄtica" -#: ../src/v4l2uvc.c:79 +#: ../gview_v4l2core/v4l2_controls.c:71 msgid "Gain" msgstr "Ganancia" -#: ../src/v4l2uvc.c:80 +#: ../gview_v4l2core/v4l2_controls.c:72 msgid "Horizontal Flip" msgstr "Xiro horizontal" -#: ../src/v4l2uvc.c:81 +#: ../gview_v4l2core/v4l2_controls.c:73 msgid "Vertical Flip" msgstr "Xiro vertical" -#: ../src/v4l2uvc.c:82 +#: ../gview_v4l2core/v4l2_controls.c:74 msgid "Horizontal Center" msgstr "" -#: ../src/v4l2uvc.c:83 +#: ../gview_v4l2core/v4l2_controls.c:75 msgid "Vertical Center" msgstr "" -#: ../src/v4l2uvc.c:84 +#: ../gview_v4l2core/v4l2_controls.c:76 msgid "Chroma AGC" msgstr "" -#: ../src/v4l2uvc.c:85 +#: ../gview_v4l2core/v4l2_controls.c:77 msgid "Color Killer" msgstr "" -#: ../src/v4l2uvc.c:86 +#: ../gview_v4l2core/v4l2_controls.c:78 msgid "Color Effects" msgstr "Efectos de cor" #. CAMERA CLASS control strings -#: ../src/v4l2uvc.c:89 +#: ../gview_v4l2core/v4l2_controls.c:81 msgid "Camera Controls" msgstr "" -#: ../src/v4l2uvc.c:90 +#: ../gview_v4l2core/v4l2_controls.c:82 msgid "Auto Exposure" msgstr "ExposiciĂłn automĂĄtica" -#: ../src/v4l2uvc.c:91 +#: ../gview_v4l2core/v4l2_controls.c:83 msgid "Exposure Time, Absolute" msgstr "Tempo de exposiciĂłn, Absoluto" -#: ../src/v4l2uvc.c:92 +#: ../gview_v4l2core/v4l2_controls.c:84 msgid "Exposure, Dynamic Framerate" msgstr "" -#: ../src/v4l2uvc.c:93 +#: ../gview_v4l2core/v4l2_controls.c:85 msgid "Pan, Relative" msgstr "" -#: ../src/v4l2uvc.c:94 +#: ../gview_v4l2core/v4l2_controls.c:86 msgid "Tilt, Relative" msgstr "InclinaciĂłn, relativo" -#: ../src/v4l2uvc.c:95 +#: ../gview_v4l2core/v4l2_controls.c:87 msgid "Pan, Reset" msgstr "" -#: ../src/v4l2uvc.c:96 +#: ../gview_v4l2core/v4l2_controls.c:88 msgid "Tilt, Reset" msgstr "InclinaciĂłn, Restabelecer" -#: ../src/v4l2uvc.c:97 +#: ../gview_v4l2core/v4l2_controls.c:89 msgid "Pan, Absolute" msgstr "" -#: ../src/v4l2uvc.c:99 +#: ../gview_v4l2core/v4l2_controls.c:91 msgid "Focus, Absolute" msgstr "Foco, absoluto" -#: ../src/v4l2uvc.c:100 +#: ../gview_v4l2core/v4l2_controls.c:92 msgid "Focus, Relative" msgstr "Foco, relativo" -#: ../src/v4l2uvc.c:101 +#: ../gview_v4l2core/v4l2_controls.c:93 msgid "Focus, Automatic" msgstr "Foco, automĂĄtico" -#: ../src/v4l2uvc.c:102 +#: ../gview_v4l2core/v4l2_controls.c:94 msgid "Zoom, Absolute" msgstr "" -#: ../src/v4l2uvc.c:103 +#: ../gview_v4l2core/v4l2_controls.c:95 msgid "Zoom, Relative" msgstr "" -#: ../src/v4l2uvc.c:104 +#: ../gview_v4l2core/v4l2_controls.c:96 msgid "Zoom, Continuous" msgstr "" -#: ../src/v4l2uvc.c:105 +#: ../gview_v4l2core/v4l2_controls.c:97 msgid "Privacy" msgstr "Privacidade" #. UVC specific control strings -#: ../src/v4l2uvc.c:108 +#: ../gview_v4l2core/v4l2_controls.c:100 msgid "Exposure, Auto" msgstr "ExposiciĂłn, AutomĂĄtico" -#: ../src/v4l2uvc.c:109 +#: ../gview_v4l2core/v4l2_controls.c:101 msgid "Exposure, Auto Priority" msgstr "ExposiciĂłn, Prioridade automĂĄtica" -#: ../src/v4l2uvc.c:110 +#: ../gview_v4l2core/v4l2_controls.c:102 msgid "Exposure (Absolute)" msgstr "ExposiciĂłn (absoluto)" -#: ../src/v4l2uvc.c:111 +#: ../gview_v4l2core/v4l2_controls.c:103 msgid "White Balance Temperature, Auto" msgstr "" -#: ../src/v4l2uvc.c:112 +#: ../gview_v4l2core/v4l2_controls.c:104 msgid "White Balance Temperature" msgstr "" -#: ../src/v4l2uvc.c:113 +#: ../gview_v4l2core/v4l2_controls.c:105 msgid "White Balance Component, Auto" msgstr "" -#: ../src/v4l2uvc.c:114 +#: ../gview_v4l2core/v4l2_controls.c:106 msgid "White Balance Blue Component" msgstr "" -#: ../src/v4l2uvc.c:115 +#: ../gview_v4l2core/v4l2_controls.c:107 msgid "White Balance Red Component" msgstr "" #. libwebcam specific control strings -#: ../src/v4l2uvc.c:118 +#: ../gview_v4l2core/v4l2_controls.c:110 msgid "Focus" msgstr "Foco" -#: ../src/v4l2uvc.c:119 +#: ../gview_v4l2core/v4l2_controls.c:111 msgid "Focus (Absolute)" msgstr "Foco(absoluto)" -#: ../src/vcodecs.c:63 -msgid "MJPG - compressed" +#: ../gview_v4l2core/v4l2_xu_ctrls.c:63 ../guvcview/gui_gtk3_v4l2ctrls.c:239 +msgid "Off" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:64 ../guvcview/gui_gtk3_v4l2ctrls.c:239 +msgid "On" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:65 ../guvcview/gui_gtk3_v4l2ctrls.c:239 +msgid "Blinking" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:66 ../guvcview/gui_gtk3_v4l2ctrls.c:239 +msgid "Auto" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:73 +msgid "Pan (relative)" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:86 +msgid "Tilt (relative)" msgstr "" -#: ../src/vcodecs.c:99 -msgid "YUY2 - uncomp YUV" +#: ../gview_v4l2core/v4l2_xu_ctrls.c:99 +msgid "Pan Reset" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:112 +msgid "Tilt Reset" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:125 +msgid "Focus (absolute)" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:138 +msgid "LED1 Mode" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:151 +msgid "LED1 Frequency" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:164 +msgid "Disable video processing" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:177 +msgid "Raw bits per pixel" +msgstr "" + +#: ../gview_encoder/audio_codecs.c:63 +msgid "PCM - uncompressed (float 32 bit)" +msgstr "" + +#: ../gview_encoder/audio_codecs.c:80 +msgid "MP2 (MPEG audio layer 2)" +msgstr "" + +#: ../gview_encoder/audio_codecs.c:97 +msgid "MP3 (MPEG audio layer 3)" +msgstr "" + +#: ../gview_encoder/audio_codecs.c:118 +msgid "AC-3 (ATSC A/52A)" +msgstr "" + +#: ../gview_encoder/audio_codecs.c:139 +msgid "AAC (Advanced Audio Coding)" +msgstr "" + +#: ../gview_encoder/audio_codecs.c:160 +msgid "Vorbis" msgstr "" -#: ../src/vcodecs.c:135 -msgid "RGB - uncomp BMP" +#: ../gview_encoder/video_codecs.c:75 +#, fuzzy +msgid "Raw camera input" +msgstr "SaĂ­da da cĂĄmara:" + +#: ../gview_encoder/video_codecs.c:111 +msgid "MJPG - compressed" msgstr "" -#: ../src/vcodecs.c:171 +#: ../gview_encoder/video_codecs.c:147 msgid "MPEG video 1" msgstr "" -#: ../src/vcodecs.c:207 -msgid "FLV1 - flash video 1" +#: ../gview_encoder/video_codecs.c:183 +msgid "FLV1 - flash video 1" +msgstr "" + +#: ../gview_encoder/video_codecs.c:219 +msgid "WMV1 - win. med. video 7" +msgstr "" + +#: ../gview_encoder/video_codecs.c:255 +msgid "MPG2 - MPG2 format" +msgstr "" + +#: ../gview_encoder/video_codecs.c:291 +msgid "MS MP4 V3" +msgstr "MS MP4 V3" + +#: ../gview_encoder/video_codecs.c:327 +msgid "MPEG4-ASP" +msgstr "MPEG4-ASP" + +#: ../gview_encoder/video_codecs.c:363 +msgid "MPEG4-AVC (H264)" +msgstr "MPEG4-AVC (H264)" + +#: ../gview_encoder/video_codecs.c:403 +msgid "VP8 (VP8)" +msgstr "" + +#: ../gview_encoder/video_codecs.c:439 +msgid "Theora (ogg theora)" +msgstr "" + +#: ../guvcview/gui_gtk3_audioctrls.c:95 +msgid "Audio API:" +msgstr "" + +#: ../guvcview/gui_gtk3_audioctrls.c:106 +msgid "NO SOUND" +msgstr "" + +#: ../guvcview/gui_gtk3_audioctrls.c:107 +msgid "PORTAUDIO" +msgstr "" + +#: ../guvcview/gui_gtk3_audioctrls.c:110 +msgid "PULSEAUDIO" +msgstr "PULSEAUDIO" + +#: ../guvcview/gui_gtk3_audioctrls.c:127 +msgid "Input Device:" +msgstr "Dispositivo de entrada:" + +#: ../guvcview/gui_gtk3_audioctrls.c:161 +msgid "Sample Rate:" +msgstr "Taxa de mostraxe:" + +#: ../guvcview/gui_gtk3_audioctrls.c:168 ../guvcview/gui_gtk3_audioctrls.c:214 +msgid "Dev. Default" +msgstr "" + +#: ../guvcview/gui_gtk3_audioctrls.c:207 +msgid "Channels:" +msgstr "Canles:" + +#: ../guvcview/gui_gtk3_audioctrls.c:215 +msgid "1 - mono" +msgstr "1 - mono" + +#: ../guvcview/gui_gtk3_audioctrls.c:216 +msgid "2 - stereo" +msgstr "2 - stereo" + +#: ../guvcview/gui_gtk3_audioctrls.c:235 +msgid "---- Audio Filters ----" +msgstr "" + +#. Echo FX +#: ../guvcview/gui_gtk3_audioctrls.c:255 +msgid " Echo" +msgstr " Echo" + +#. Reverb FX +#: ../guvcview/gui_gtk3_audioctrls.c:268 +msgid " Reverb" +msgstr " Reverberar" + +#. Fuzz FX +#: ../guvcview/gui_gtk3_audioctrls.c:281 +msgid " Fuzz" +msgstr " Difuso" + +#. WahWah FX +#: ../guvcview/gui_gtk3_audioctrls.c:294 +msgid " WahWah" +msgstr "" + +#. Ducky FX +#: ../guvcview/gui_gtk3_audioctrls.c:307 +msgid " Ducky" +msgstr "" + +#: ../guvcview/gui_gtk3.c:310 ../guvcview/gui_gtk3_callbacks.c:749 +msgid "Stop Video (V)" +msgstr "Deter vĂ­deo (V)" + +#. video button +#: ../guvcview/gui_gtk3.c:315 ../guvcview/gui_gtk3.c:600 +#: ../guvcview/gui_gtk3_callbacks.c:755 +msgid "Cap. Video (V)" +msgstr "Cap. Video (V)" + +#: ../guvcview/gui_gtk3.c:376 ../guvcview/gui_gtk3.c:383 +msgid "Error" +msgstr "Erro" + +#: ../guvcview/gui_gtk3.c:379 ../guvcview/gui_gtk3.c:386 +#: ../guvcview/gui_gtk3_callbacks.c:2097 +msgid "_Ok" +msgstr "" + +#: ../guvcview/gui_gtk3.c:380 ../guvcview/gui_gtk3_callbacks.c:185 +#: ../guvcview/gui_gtk3_callbacks.c:199 ../guvcview/gui_gtk3_callbacks.c:522 +#: ../guvcview/gui_gtk3_callbacks.c:624 ../guvcview/gui_gtk3_callbacks.c:1755 +#: ../guvcview/gui_gtk3_callbacks.c:2098 +#, fuzzy +msgid "_Cancel" +msgstr "cancelar" + +#: ../guvcview/gui_gtk3.c:407 +msgid "" +"\n" +"You have more than one video device installed.\n" +"Do you want to try another one ?\n" +msgstr "" + +#. ---- Devices ---- +#: ../guvcview/gui_gtk3.c:414 ../guvcview/gui_gtk3_videoctrls.c:106 +msgid "Device:" +msgstr "Dispositivo:" + +#: ../guvcview/gui_gtk3.c:516 +msgid "Guvcview Video Capture" +msgstr "Capturador de vĂ­deo GUVCView" + +#: ../guvcview/gui_gtk3.c:525 +msgid "Guvcview" +msgstr "" + +#: ../guvcview/gui_gtk3.c:572 +msgid "Stop Cap. (I)" +msgstr "" + +#: ../guvcview/gui_gtk3.c:578 ../guvcview/gui_gtk3_callbacks.c:720 +#: ../guvcview/video_capture.c:250 +msgid "Cap. Image (I)" +msgstr "Cap. Imaxe (I)" + +#. quit button +#. GtkWidget *quitButton = gtk_button_new_from_stock(GTK_STOCK_QUIT); +#: ../guvcview/gui_gtk3.c:621 +msgid "_Quit" +msgstr "" + +#: ../guvcview/gui_gtk3.c:667 +msgid "Image Controls" +msgstr "" + +#: ../guvcview/gui_gtk3.c:703 +#, fuzzy +msgid "H264 Controls" +msgstr "Controles de GUVCViewer" + +#: ../guvcview/gui_gtk3.c:742 +#, fuzzy +msgid "Video Controls" +msgstr "Controles de GUVCViewer" + +#: ../guvcview/gui_gtk3.c:777 +#, fuzzy +msgid "Audio Controls" +msgstr "Controles de GUVCViewer" + +#: ../guvcview/gui_gtk3_callbacks.c:182 ../guvcview/gui_gtk3_menu.c:72 +msgid "Save Profile" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:186 ../guvcview/gui_gtk3_callbacks.c:523 +#: ../guvcview/gui_gtk3_callbacks.c:625 +msgid "_Save" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:196 ../guvcview/gui_gtk3_menu.c:71 +msgid "Load Profile" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:200 +msgid "_Open" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:208 ../guvcview/gui_gtk3_callbacks.c:531 +#: ../guvcview/gui_gtk3_callbacks.c:634 +msgid "File Format:" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:220 +msgid "gpfl (*.gpfl)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:221 +msgid "any (*.*)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:519 +#, fuzzy +msgid "Photo file name" +msgstr "Nome da imaxe" + +#: ../guvcview/gui_gtk3_callbacks.c:543 +msgid "Raw (*.raw)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:544 +msgid "Jpeg (*.jpg)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:545 +msgid "Png (*.png)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:546 +msgid "Bmp (*.bmp)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:621 +#, fuzzy +msgid "Video file name" +msgstr "Nome da imaxe" + +#: ../guvcview/gui_gtk3_callbacks.c:646 +msgid "Matroska (*.mkv)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:647 +msgid "WebM (*.webm)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:648 +msgid "Avi (*.avi)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:1158 +msgid "start new" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:1161 +msgid "restart" +msgstr "reiniciar" + +#: ../guvcview/gui_gtk3_callbacks.c:1163 +msgid "new" +msgstr "novo" + +#: ../guvcview/gui_gtk3_callbacks.c:1165 +msgid "cancel" +msgstr "cancelar" + +#: ../guvcview/gui_gtk3_callbacks.c:1170 +msgid "" +"launch new process or restart?.\n" +"\n" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:1751 +msgid "video codec values" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:1754 +msgid "_OK" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:1760 +msgid "" +" encoder fps: \n" +" (0 - use fps combobox value)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:1773 +msgid " monotonic pts" +msgstr "" + +#. bit rate +#: ../guvcview/gui_gtk3_callbacks.c:1780 ../guvcview/gui_gtk3_callbacks.c:2105 +msgid "bit rate: " +msgstr "Taxa de bits: " + +#: ../guvcview/gui_gtk3_callbacks.c:1793 +msgid "qmax: " +msgstr "qmax: " + +#: ../guvcview/gui_gtk3_callbacks.c:1806 +msgid "qmin: " +msgstr "qmin: " + +#: ../guvcview/gui_gtk3_callbacks.c:1819 +msgid "max. qdiff: " +msgstr "max. qdiff: " + +#: ../guvcview/gui_gtk3_callbacks.c:1832 +msgid "dia size: " msgstr "" -#: ../src/vcodecs.c:243 -msgid "WMV1 - win. med. video 7" +#: ../guvcview/gui_gtk3_callbacks.c:1845 +msgid "pre dia size: " msgstr "" -#: ../src/vcodecs.c:279 -msgid "MPG2 - MPG2 format" -msgstr "" +#: ../guvcview/gui_gtk3_callbacks.c:1858 +msgid "pre me: " +msgstr "pre me: " -#: ../src/vcodecs.c:315 -msgid "MS MP4 V3" -msgstr "MS MP4 V3" +#: ../guvcview/gui_gtk3_callbacks.c:1871 +msgid "pre cmp: " +msgstr "pre cmp: " -#: ../src/vcodecs.c:351 -msgid "MPEG4-ASP" -msgstr "MPEG4-ASP" +#: ../guvcview/gui_gtk3_callbacks.c:1884 +msgid "cmp: " +msgstr "cmp: " -#: ../src/vcodecs.c:387 -msgid "MPEG4-AVC (H264)" -msgstr "MPEG4-AVC (H264)" +#: ../guvcview/gui_gtk3_callbacks.c:1897 +msgid "sub cmp: " +msgstr "sub cmp: " -#: ../src/vcodecs.c:427 -msgid "VP8 (VP8)" +#: ../guvcview/gui_gtk3_callbacks.c:1910 +msgid "last predictor count: " msgstr "" -#: ../src/vcodecs.c:463 -msgid "Theora (ogg theora)" -msgstr "" +#: ../guvcview/gui_gtk3_callbacks.c:1923 +msgid "gop size: " +msgstr "Tamaño do gop: " -#: ../src/video_format.c:43 -msgid "AVI - avi format" +#: ../guvcview/gui_gtk3_callbacks.c:1936 +msgid "qcompress: " msgstr "" -#: ../src/video_format.c:52 -msgid "MKV - Matroska format" +#: ../guvcview/gui_gtk3_callbacks.c:1949 +msgid "qblur: " msgstr "" -#: ../src/video_format.c:61 -msgid "WEBM - format" +#: ../guvcview/gui_gtk3_callbacks.c:1962 +msgid "subq: " msgstr "" -#: ../src/video_tab.c:216 -msgid "Frame Rate:" -msgstr "Taxa de fotogramas:" - -#: ../src/video_tab.c:223 -msgid " Show" -msgstr " Mostrar" - -#: ../src/video_tab.c:245 -msgid "Resolution:" -msgstr "Resolution:" - -#: ../src/video_tab.c:271 -msgid "Camera Output:" -msgstr "SaĂ­da da cĂĄmara:" - -#: ../src/video_tab.c:293 -msgid "Apply" -msgstr "Aplicar" - -#: ../src/video_tab.c:300 -msgid "Quality:" -msgstr "Calidade:" - -#: ../src/video_tab.c:310 -msgid "---- Video Filters ----" +#: ../guvcview/gui_gtk3_callbacks.c:1975 +msgid "framerefs: " msgstr "" -#. Mirror -#: ../src/video_tab.c:329 -msgid " Mirror" -msgstr " Espello" - -#. Upturn -#: ../src/video_tab.c:340 -msgid " Invert" -msgstr " Inverter" +#: ../guvcview/gui_gtk3_callbacks.c:1988 +msgid "me method: " +msgstr "" -#. Negate -#: ../src/video_tab.c:351 -msgid " Negative" -msgstr " Negativo" +#: ../guvcview/gui_gtk3_callbacks.c:2001 +msgid "mb decision: " +msgstr "" -#. Mono -#: ../src/video_tab.c:362 -msgid " Mono" -msgstr " Mono" +#: ../guvcview/gui_gtk3_callbacks.c:2014 +msgid "max B frames: " +msgstr "" -#. Pieces -#: ../src/video_tab.c:374 -msgid " Pieces" +#: ../guvcview/gui_gtk3_callbacks.c:2027 +msgid "num threads: " msgstr "" -#. Particles -#: ../src/video_tab.c:386 -msgid " Particles" -msgstr " PartĂ­culas" +#: ../guvcview/gui_gtk3_callbacks.c:2094 +msgid "audio codec values" +msgstr "" -#: ../src/uvc_h264.c:596 -msgid "H264 Controls" +#. sample format +#: ../guvcview/gui_gtk3_callbacks.c:2119 +msgid "sample format: " msgstr "" -#: ../src/uvc_h264.c:615 +#: ../guvcview/gui_gtk3_h264ctrls.c:622 msgid "Rate Control Mode:" msgstr "" -#: ../src/uvc_h264.c:626 +#: ../guvcview/gui_gtk3_h264ctrls.c:633 msgid "CBR" msgstr "" -#: ../src/uvc_h264.c:629 +#: ../guvcview/gui_gtk3_h264ctrls.c:636 msgid "VBR" msgstr "" -#: ../src/uvc_h264.c:633 +#: ../guvcview/gui_gtk3_h264ctrls.c:640 msgid "Constant QP" msgstr "" -#: ../src/uvc_h264.c:651 +#: ../guvcview/gui_gtk3_h264ctrls.c:658 msgid "Rate Control Mode flags:" msgstr "" -#: ../src/uvc_h264.c:676 +#: ../guvcview/gui_gtk3_h264ctrls.c:683 msgid "Temporal Scale Mode:" msgstr "" -#: ../src/uvc_h264.c:704 +#: ../guvcview/gui_gtk3_h264ctrls.c:711 msgid "Spatial Scale Mode:" msgstr "" -#: ../src/uvc_h264.c:737 +#: ../guvcview/gui_gtk3_h264ctrls.c:741 msgid "Frame Interval (100ns units):" msgstr "" -#: ../src/uvc_h264.c:772 +#: ../guvcview/gui_gtk3_h264ctrls.c:778 +#, fuzzy msgid "Bit Rate:" -msgstr "" +msgstr "Taxa de bits: " -#: ../src/uvc_h264.c:795 +#: ../guvcview/gui_gtk3_h264ctrls.c:801 msgid "Hints:" msgstr "" -#: ../src/uvc_h264.c:800 +#: ../guvcview/gui_gtk3_h264ctrls.c:806 +#, fuzzy msgid "Resolution" -msgstr "" +msgstr "Resolution:" -#: ../src/uvc_h264.c:804 +#: ../guvcview/gui_gtk3_h264ctrls.c:810 msgid "Profile" msgstr "" -#: ../src/uvc_h264.c:808 +#: ../guvcview/gui_gtk3_h264ctrls.c:814 +#, fuzzy msgid "Rate Control" -msgstr "" +msgstr "Controles de GUVCViewer" -#: ../src/uvc_h264.c:812 +#: ../guvcview/gui_gtk3_h264ctrls.c:818 msgid "Usage Type" msgstr "" -#: ../src/uvc_h264.c:816 +#: ../guvcview/gui_gtk3_h264ctrls.c:822 msgid "Slice Mode" msgstr "" -#: ../src/uvc_h264.c:820 +#: ../guvcview/gui_gtk3_h264ctrls.c:826 msgid "Slice Unit" msgstr "" -#: ../src/uvc_h264.c:824 +#: ../guvcview/gui_gtk3_h264ctrls.c:830 msgid "MVC View" msgstr "" -#: ../src/uvc_h264.c:828 +#: ../guvcview/gui_gtk3_h264ctrls.c:834 msgid "Temporal Scale" msgstr "" -#: ../src/uvc_h264.c:832 +#: ../guvcview/gui_gtk3_h264ctrls.c:838 msgid "SNR Scale" msgstr "" -#: ../src/uvc_h264.c:836 +#: ../guvcview/gui_gtk3_h264ctrls.c:842 msgid "Spatial Scale" msgstr "" -#: ../src/uvc_h264.c:840 +#: ../guvcview/gui_gtk3_h264ctrls.c:846 msgid "Spatial Layer Ratio" msgstr "" -#: ../src/uvc_h264.c:844 +#: ../guvcview/gui_gtk3_h264ctrls.c:850 +#, fuzzy msgid "Frame Interval" -msgstr "" +msgstr "Taxa de fotogramas:" -#: ../src/uvc_h264.c:848 +#: ../guvcview/gui_gtk3_h264ctrls.c:854 msgid "Leaky Bucket Size" msgstr "" -#: ../src/uvc_h264.c:852 +#: ../guvcview/gui_gtk3_h264ctrls.c:858 msgid "Bit Rate" msgstr "" -#: ../src/uvc_h264.c:856 ../src/uvc_h264.c:1250 +#: ../guvcview/gui_gtk3_h264ctrls.c:862 ../guvcview/gui_gtk3_h264ctrls.c:1220 msgid "CABAC" msgstr "" -#: ../src/uvc_h264.c:860 +#: ../guvcview/gui_gtk3_h264ctrls.c:866 msgid "(I) Frame Period" msgstr "" -#: ../src/uvc_h264.c:907 +#: ../guvcview/gui_gtk3_h264ctrls.c:878 msgid "Slice Mode:" msgstr "" -#: ../src/uvc_h264.c:914 +#: ../guvcview/gui_gtk3_h264ctrls.c:885 msgid "no multiple slices" msgstr "" -#: ../src/uvc_h264.c:916 +#: ../guvcview/gui_gtk3_h264ctrls.c:887 msgid "bits/slice" msgstr "" -#: ../src/uvc_h264.c:918 +#: ../guvcview/gui_gtk3_h264ctrls.c:889 msgid "Mbits/slice" msgstr "" -#: ../src/uvc_h264.c:920 +#: ../guvcview/gui_gtk3_h264ctrls.c:891 msgid "slices/frame" msgstr "" -#: ../src/uvc_h264.c:929 +#: ../guvcview/gui_gtk3_h264ctrls.c:900 msgid "Slice Units:" msgstr "" -#: ../src/uvc_h264.c:950 +#: ../guvcview/gui_gtk3_h264ctrls.c:921 msgid "Profile:" msgstr "" -#: ../src/uvc_h264.c:957 +#: ../guvcview/gui_gtk3_h264ctrls.c:928 msgid "Baseline Profile" msgstr "" -#: ../src/uvc_h264.c:959 +#: ../guvcview/gui_gtk3_h264ctrls.c:930 msgid "Main Profile" msgstr "" -#: ../src/uvc_h264.c:961 +#: ../guvcview/gui_gtk3_h264ctrls.c:932 msgid "High Profile" msgstr "" -#: ../src/uvc_h264.c:963 +#: ../guvcview/gui_gtk3_h264ctrls.c:934 msgid "Scalable Baseline Profile" msgstr "" -#: ../src/uvc_h264.c:965 +#: ../guvcview/gui_gtk3_h264ctrls.c:936 msgid "Scalable High Profile" msgstr "" -#: ../src/uvc_h264.c:967 +#: ../guvcview/gui_gtk3_h264ctrls.c:938 msgid "Multiview High Profile" msgstr "" -#: ../src/uvc_h264.c:969 +#: ../guvcview/gui_gtk3_h264ctrls.c:940 msgid "Stereo High Profile" msgstr "" -#: ../src/uvc_h264.c:1008 +#: ../guvcview/gui_gtk3_h264ctrls.c:979 msgid "Profile flags:" msgstr "" -#: ../src/uvc_h264.c:1033 +#: ../guvcview/gui_gtk3_h264ctrls.c:1004 msgid "(I) Frame Period (ms):" msgstr "" -#: ../src/uvc_h264.c:1054 +#: ../guvcview/gui_gtk3_h264ctrls.c:1025 msgid "Estimated Video Delay (ms):" msgstr "" -#: ../src/uvc_h264.c:1075 +#: ../guvcview/gui_gtk3_h264ctrls.c:1046 msgid "Estimated Max Config Delay (ms):" msgstr "" -#: ../src/uvc_h264.c:1096 +#: ../guvcview/gui_gtk3_h264ctrls.c:1067 msgid "Usage Type:" msgstr "" -#: ../src/uvc_h264.c:1103 +#: ../guvcview/gui_gtk3_h264ctrls.c:1074 msgid "Real-time" msgstr "" -#: ../src/uvc_h264.c:1105 +#: ../guvcview/gui_gtk3_h264ctrls.c:1076 msgid "Broadcast" msgstr "" -#: ../src/uvc_h264.c:1107 +#: ../guvcview/gui_gtk3_h264ctrls.c:1078 msgid "Storage" msgstr "" -#: ../src/uvc_h264.c:1109 +#: ../guvcview/gui_gtk3_h264ctrls.c:1080 msgid "(0) Non-scalable single layer AVC" msgstr "" -#: ../src/uvc_h264.c:1111 +#: ../guvcview/gui_gtk3_h264ctrls.c:1082 msgid "(1) SVC temporal scalability with hierarchical P" msgstr "" -#: ../src/uvc_h264.c:1113 +#: ../guvcview/gui_gtk3_h264ctrls.c:1084 msgid "(2q) SVC temporal scalability + Quality/SNR scalability" msgstr "" -#: ../src/uvc_h264.c:1115 +#: ../guvcview/gui_gtk3_h264ctrls.c:1086 msgid "(2s) SVC temporal scalability + spatial scalability" msgstr "" -#: ../src/uvc_h264.c:1117 +#: ../guvcview/gui_gtk3_h264ctrls.c:1088 msgid "(3) Full SVC scalability" msgstr "" -#: ../src/uvc_h264.c:1131 +#: ../guvcview/gui_gtk3_h264ctrls.c:1102 msgid "SNR Control Mode:" msgstr "" -#: ../src/uvc_h264.c:1138 +#: ../guvcview/gui_gtk3_h264ctrls.c:1109 msgid "No SNR Enhancement Layer" msgstr "" -#: ../src/uvc_h264.c:1140 +#: ../guvcview/gui_gtk3_h264ctrls.c:1111 msgid "CGS NonRewrite (2 Layer)" msgstr "" -#: ../src/uvc_h264.c:1142 +#: ../guvcview/gui_gtk3_h264ctrls.c:1113 msgid "CGS NonRewrite (3 Layer)" msgstr "" -#: ../src/uvc_h264.c:1144 +#: ../guvcview/gui_gtk3_h264ctrls.c:1115 msgid "CGS Rewrite (2 Layer)" msgstr "" -#: ../src/uvc_h264.c:1146 +#: ../guvcview/gui_gtk3_h264ctrls.c:1117 msgid "CGS Rewrite (3 Layer)" msgstr "" -#: ../src/uvc_h264.c:1148 +#: ../guvcview/gui_gtk3_h264ctrls.c:1119 msgid "MGS (2 Layer)" msgstr "" -#: ../src/uvc_h264.c:1173 +#: ../guvcview/gui_gtk3_h264ctrls.c:1144 msgid "Stream Mux Enable" msgstr "" -#: ../src/uvc_h264.c:1180 +#: ../guvcview/gui_gtk3_h264ctrls.c:1151 msgid "Embed H.264 aux stream" msgstr "" -#: ../src/uvc_h264.c:1182 +#: ../guvcview/gui_gtk3_h264ctrls.c:1153 msgid "Embed YUY2 aux stream" msgstr "" -#: ../src/uvc_h264.c:1184 +#: ../guvcview/gui_gtk3_h264ctrls.c:1155 msgid "Embed NV12 aux stream" msgstr "" -#: ../src/uvc_h264.c:1204 +#: ../guvcview/gui_gtk3_h264ctrls.c:1175 msgid "MJPG payload container" msgstr "" -#: ../src/uvc_h264.c:1219 +#: ../guvcview/gui_gtk3_h264ctrls.c:1189 msgid "Stream Format:" msgstr "" -#: ../src/uvc_h264.c:1227 +#: ../guvcview/gui_gtk3_h264ctrls.c:1197 msgid "Byte stream format (H.264 Annex-B)" msgstr "" -#: ../src/uvc_h264.c:1229 +#: ../guvcview/gui_gtk3_h264ctrls.c:1199 msgid "NAL stream format" msgstr "" -#: ../src/uvc_h264.c:1240 +#: ../guvcview/gui_gtk3_h264ctrls.c:1210 msgid "Entropy CABAC:" msgstr "" -#: ../src/uvc_h264.c:1248 +#: ../guvcview/gui_gtk3_h264ctrls.c:1218 msgid "CAVLC" msgstr "" -#: ../src/uvc_h264.c:1261 +#: ../guvcview/gui_gtk3_h264ctrls.c:1231 msgid "Picture timing SEI" msgstr "" -#: ../src/uvc_h264.c:1268 +#: ../guvcview/gui_gtk3_h264ctrls.c:1238 +#, fuzzy msgid "B Frames:" -msgstr "" +msgstr "Taxa de fotogramas:" -#: ../src/uvc_h264.c:1293 +#: ../guvcview/gui_gtk3_h264ctrls.c:1263 msgid "Preview Flipped" msgstr "" -#: ../src/uvc_h264.c:1300 +#: ../guvcview/gui_gtk3_h264ctrls.c:1270 msgid "Additional MVC Views:" msgstr "" -#: ../src/uvc_h264.c:1325 +#: ../guvcview/gui_gtk3_h264ctrls.c:1295 msgid "Simulcast stream index:" msgstr "" -#: ../src/uvc_h264.c:1350 +#: ../guvcview/gui_gtk3_h264ctrls.c:1320 msgid "Spatial Layer Ratio:" msgstr "" -#: ../src/uvc_h264.c:1379 +#: ../guvcview/gui_gtk3_h264ctrls.c:1349 msgid "Leaky Bucket Size (ms):" msgstr "" #. encoder reset -#: ../src/uvc_h264.c:1406 +#: ../guvcview/gui_gtk3_h264ctrls.c:1376 msgid "Encoder Reset" msgstr "" -#. -#. h264_controls->probe_button = gtk_button_new_with_label(_("PROBE")); -#. g_signal_connect (GTK_BUTTON(h264_controls->probe_button), "clicked", +#. +#. GtkWidget *probe_button = gtk_button_new_with_label(_("PROBE")); +#. g_signal_connect (GTK_BUTTON(probe_button), "clicked", #. G_CALLBACK (h264_probe_button_clicked), all_data); -#. -#. gtk_grid_attach (GTK_GRID(table), h264_controls->probe_button, 0, line, 1 ,1); -#. gtk_widget_show(h264_controls->probe_button); -#. -#: ../src/uvc_h264.c:1421 +#. +#. gtk_grid_attach (GTK_GRID(h264_controls_grid), probe_button, 0, line, 1 ,1); +#. gtk_widget_show(probe_button); +#. +#: ../guvcview/gui_gtk3_h264ctrls.c:1391 msgid "COMMIT" msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:70 +msgid "Settings" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:73 +msgid "Hardware Defaults" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:81 +msgid "Camera Button" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:86 +msgid "Capture Image" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:91 +msgid "Capture Video" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:134 +msgid "Photo" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:135 ../guvcview/gui_gtk3_menu.c:159 +msgid "File" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:136 ../guvcview/gui_gtk3_menu.c:160 +msgid "Increment Filename" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:158 +msgid "Video" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:175 +msgid "Video Codec" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:202 +msgid "Video Codec Properties" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:208 +msgid "Audio Codec" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:235 +msgid "Audio Codec Properties" +msgstr "" + +#: ../guvcview/gui_gtk3_v4l2ctrls.c:174 +msgid "Left" +msgstr "Esquerda" + +#: ../guvcview/gui_gtk3_v4l2ctrls.c:175 +msgid "Right" +msgstr "Dereita" + +#: ../guvcview/gui_gtk3_v4l2ctrls.c:179 +msgid "Down" +msgstr "Abaixo" + +#: ../guvcview/gui_gtk3_v4l2ctrls.c:180 +msgid "Up" +msgstr "Arriba" + +#. turn it into a menu control +#: ../guvcview/gui_gtk3_v4l2ctrls.c:296 +msgid "8 bit" +msgstr "" + +#: ../guvcview/gui_gtk3_v4l2ctrls.c:296 +msgid "12 bit" +msgstr "" + +#. add a virtual control for software autofocus +#: ../guvcview/gui_gtk3_v4l2ctrls.c:348 +msgid "Auto Focus (continuous)" +msgstr "Foco automĂĄtico(continuo)" + +#: ../guvcview/gui_gtk3_v4l2ctrls.c:349 +msgid "set Focus" +msgstr "Definir foco" + +#. control_widgets_list[n].widget2 = gtk_button_new_from_stock(GTK_STOCK_APPLY); +#. control_widgets_list[n].widget2= gtk_button_new_from_stock(GTK_STOCK_APPLY); +#. control_widgets_list[n].widget2 = gtk_button_new_from_stock(GTK_STOCK_APPLY); +#: ../guvcview/gui_gtk3_v4l2ctrls.c:433 ../guvcview/gui_gtk3_v4l2ctrls.c:456 +#: ../guvcview/gui_gtk3_v4l2ctrls.c:478 +#, fuzzy +msgid "_Apply" +msgstr "Aplicar" + +#: ../guvcview/gui_gtk3_videoctrls.c:144 +msgid "Frame Rate:" +msgstr "Taxa de fotogramas:" + +#: ../guvcview/gui_gtk3_videoctrls.c:204 +msgid "Resolution:" +msgstr "Resolution:" + +#: ../guvcview/gui_gtk3_videoctrls.c:254 +msgid "Camera Output:" +msgstr "SaĂ­da da cĂĄmara:" + +#: ../guvcview/gui_gtk3_videoctrls.c:287 +msgid "---- Video Filters ----" +msgstr "" + +#. Mirror FX +#: ../guvcview/gui_gtk3_videoctrls.c:307 +msgid " Mirror" +msgstr " Espello" + +#. Upturn FX +#: ../guvcview/gui_gtk3_videoctrls.c:319 +msgid " Invert" +msgstr " Inverter" + +#. Negate FX +#: ../guvcview/gui_gtk3_videoctrls.c:331 +msgid " Negative" +msgstr " Negativo" + +#. Mono FX +#: ../guvcview/gui_gtk3_videoctrls.c:343 +msgid " Mono" +msgstr " Mono" + +#. Pieces FX +#: ../guvcview/gui_gtk3_videoctrls.c:356 +msgid " Pieces" +msgstr "" + +#. Particles +#: ../guvcview/gui_gtk3_videoctrls.c:369 +msgid " Particles" +msgstr " PartĂ­culas" + +#: ../guvcview/options.c:51 +msgid "Print help" +msgstr "" + +#: ../guvcview/options.c:58 +#, fuzzy +msgid "Print version" +msgstr "Mostrar a versiĂłn" + +#: ../guvcview/options.c:64 +msgid "LEVEL" +msgstr "" + +#: ../guvcview/options.c:65 +msgid "Set Verbosity level (def: 0)" +msgstr "" + +#: ../guvcview/options.c:71 +msgid "DEVICE" +msgstr "" + +#: ../guvcview/options.c:72 +msgid "Set device name (def: /dev/video0)" +msgstr "" + +#: ../guvcview/options.c:78 +msgid "METHOD" +msgstr "" + +#: ../guvcview/options.c:79 +msgid "Set capture method [read | mmap (def)]" +msgstr "" + +#: ../guvcview/options.c:85 +msgid "WIDTHxHEIGHT" +msgstr "" + +#: ../guvcview/options.c:86 +msgid "Request resolution (e.g 640x480)" +msgstr "" + +#: ../guvcview/options.c:92 +msgid "FOURCC" +msgstr "" + +#: ../guvcview/options.c:93 +msgid "Request format (e.g MJPG)" +msgstr "" + +#: ../guvcview/options.c:99 +msgid "RENDER_API" +msgstr "" + +#: ../guvcview/options.c:100 +msgid "Select render API (e.g none; sdl)" +msgstr "" + +#: ../guvcview/options.c:106 +msgid "AUDIO_API" +msgstr "" + +#: ../guvcview/options.c:107 +msgid "Select audio API (e.g none; port; pulse)" +msgstr "" + +#: ../guvcview/options.c:113 +msgid "AUDIO_DEVICE" +msgstr "" + +#: ../guvcview/options.c:114 +msgid "Select audio device index for selected api (0..N)" +msgstr "" + +#: ../guvcview/options.c:120 +msgid "GUI_API" +msgstr "" + +#: ../guvcview/options.c:121 +msgid "Select GUI API (e.g none; gtk3)" +msgstr "" + +#: ../guvcview/options.c:127 ../guvcview/options.c:134 +msgid "CODEC" +msgstr "" + +#: ../guvcview/options.c:128 +msgid "Audio codec [pcm mp2 mp3 aac ac3 vorb]" +msgstr "" + +#: ../guvcview/options.c:135 +msgid "Video codec [raw mjpg mpeg flv1 wmv1 mpg2 mp43 dx50 h264 vp80 theo]" +msgstr "" + +#: ../guvcview/options.c:141 ../guvcview/options.c:148 +#: ../guvcview/options.c:155 +msgid "FILENAME" +msgstr "" + +#: ../guvcview/options.c:142 +msgid "load control profile" +msgstr "" + +#: ../guvcview/options.c:149 +msgid "filename for captured video)" +msgstr "" + +#: ../guvcview/options.c:156 +msgid "filename for captured image)" +msgstr "" + +#: ../guvcview/options.c:162 ../guvcview/options.c:169 +msgid "TIME_IN_SEC" +msgstr "" + +#: ../guvcview/options.c:163 +msgid "time (double) in sec. for video capture)" +msgstr "" + +#: ../guvcview/options.c:170 +msgid "time (double) in sec. between captured photos)" +msgstr "" + +#: ../guvcview/options.c:176 +msgid "TOTAL" +msgstr "" + +#: ../guvcview/options.c:177 +msgid "total number of captured photos)" +msgstr "" + +#: ../guvcview/options.c:184 +msgid "Start in control panel mode" +msgstr "" + +#: ../guvcview/options.c:307 +#, c-format +msgid "" +"Guvcview version %s\n" +"\n" +msgstr "" + +#: ../guvcview/options.c:308 +#, c-format +msgid "" +"Usage:\n" +" guvcview [OPTIONS]\n" +"\n" +msgstr "" + +#: ../guvcview/options.c:309 +#, c-format +msgid "OPTIONS:\n" +msgstr "" + +#: ../guvcview/video_capture.c:819 +#, c-format +msgid "saving video to %s" +msgstr "" + +#. if(debug_level > 1) +#. printf("GUVCVIEW: saving image to %s\n", img_filename); +#: ../guvcview/video_capture.c:1069 +#, c-format +msgid "saving image to %s" +msgstr "" + +#~ msgid "Audio" +#~ msgstr "Son" + +#~ msgid " Sound" +#~ msgstr " Son" + +#~ msgid "Save File" +#~ msgstr "Gardar o ficheiro" + +#~ msgid "Cap. Video" +#~ msgstr "Cap. Video" + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to open device" +#~ msgstr "" +#~ "Erro de GUVCView:\n" +#~ "\n" +#~ "Non foi posĂ­bel conectar a cĂĄmara" + +#~ msgid "" +#~ "Please make sure the camera is connected\n" +#~ "and that the correct driver is installed." +#~ msgstr "" +#~ "AsegĂșrese de que a sĂșa cĂĄmara estĂĄ conectada\n" +#~ "e que o controlador estĂĄ correctamente instalada." + +#~ msgid "Please reconnect your camera." +#~ msgstr "Conecte de novo a sĂșa cĂĄmara." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Couldn't query device capabilities" +#~ msgstr "" +#~ "Erro de GUVCView:\n" +#~ "\n" +#~ "Non se poideron consultar as capacidades do dispositivo" + +#~ msgid "Make sure the device driver supports v4l2." +#~ msgstr "AsegĂșrese de que o controlador do dispositivo soporta v4l2." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Read method error" +#~ msgstr "" +#~ "Erro de GUVCView:\n" +#~ "\n" +#~ "Erro no mĂ©todo de lectura" + +#~ msgid "Please try mmap instead (--capture_method=1)." +#~ msgstr "Probe mmap no seu lugar (--capture_method=1)." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to allocate Buffers" +#~ msgstr "" +#~ "Erro de GUVCView:\n" +#~ "\n" +#~ "Non foi posĂ­bel asignarlle memoria aos bĂșferes" + +#~ msgid "Please try restarting your system." +#~ msgstr "Probe reiniciando o seu sistema." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to create Video Thread" +#~ msgstr "" +#~ "Erro en GUVCView:\n" +#~ "\n" +#~ "Non foi posĂ­ble crear un fĂ­o de execuciĂłn de vĂ­deo" + +#~ msgid "Please report it to http://developer.berlios.de/bugs/?group_id=8179" +#~ msgstr "" +#~ "Por favor, informe do erro a http://developer.berlios.de/bugs/?" +#~ "group_id=8179" + +#~ msgid "Frame size, default: 640x480" +#~ msgstr "Tamaño predeterminado do marco:640x480" + +#~ msgid "Cap. Image" +#~ msgstr "Cap. Imaxe" + +#~ msgid " Show" +#~ msgstr " Mostrar" + +#~ msgid "Quality:" +#~ msgstr "Calidade:" diff -Nru guvcview-1.7.3/po/gview_v4l2core/bg.po guvcview-2.0.1+ubuntu1~ppa1/po/gview_v4l2core/bg.po --- guvcview-1.7.3/po/gview_v4l2core/bg.po 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/po/gview_v4l2core/bg.po 2014-10-05 10:41:44.000000000 +0000 @@ -0,0 +1,302 @@ +# Bulgarian translation for guvcview +# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012 +# This file is distributed under the same license as the guvcview package. +# FIRST AUTHOR , 2012. +# +msgid "" +msgstr "" +"Project-Id-Version: guvcview\n" +"Report-Msgid-Bugs-To: pj.assis@gmail.com\n" +"POT-Creation-Date: 2014-08-17 22:49+0100\n" +"PO-Revision-Date: 2012-06-06 03:33+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Bulgarian \n" +"Language: bg\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2013-12-08 10:36+0000\n" +"X-Generator: Launchpad (build 16869)\n" + +#. +#. * needed only for language files (not used) +#. +#. V4L2 control strings +#: ../gview_v4l2core/v4l2_controls.c:49 +msgid "User Controls" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:50 +msgid "Brightness" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:51 +msgid "Contrast" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:52 +msgid "Hue" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:53 +msgid "Saturation" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:54 +msgid "Sharpness" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:55 +msgid "Gamma" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:56 +msgid "Backlight Compensation" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:57 +msgid "Power Line Frequency" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:58 +msgid "Hue, Automatic" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:59 +msgid "Focus, Auto" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:60 +msgid "Manual Mode" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:61 +msgid "Auto Mode" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:62 +msgid "Shutter Priority Mode" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:63 +msgid "Aperture Priority Mode" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:64 +msgid "Black Level" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:65 +msgid "White Balance, Automatic" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:66 +msgid "Do White Balance" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:67 +msgid "Red Balance" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:68 +msgid "Blue Balance" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:69 +msgid "Exposure" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:70 +msgid "Gain, Automatic" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:71 +msgid "Gain" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:72 +msgid "Horizontal Flip" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:73 +msgid "Vertical Flip" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:74 +msgid "Horizontal Center" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:75 +msgid "Vertical Center" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:76 +msgid "Chroma AGC" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:77 +msgid "Color Killer" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:78 +msgid "Color Effects" +msgstr "" + +#. CAMERA CLASS control strings +#: ../gview_v4l2core/v4l2_controls.c:81 +msgid "Camera Controls" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:82 +msgid "Auto Exposure" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:83 +msgid "Exposure Time, Absolute" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:84 +msgid "Exposure, Dynamic Framerate" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:85 +msgid "Pan, Relative" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:86 +msgid "Tilt, Relative" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:87 +msgid "Pan, Reset" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:88 +msgid "Tilt, Reset" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:89 +msgid "Pan, Absolute" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:91 +msgid "Focus, Absolute" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:92 +msgid "Focus, Relative" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:93 +msgid "Focus, Automatic" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:94 +msgid "Zoom, Absolute" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:95 +msgid "Zoom, Relative" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:96 +msgid "Zoom, Continuous" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:97 +msgid "Privacy" +msgstr "" + +#. UVC specific control strings +#: ../gview_v4l2core/v4l2_controls.c:100 +msgid "Exposure, Auto" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:101 +msgid "Exposure, Auto Priority" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:102 +msgid "Exposure (Absolute)" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:103 +msgid "White Balance Temperature, Auto" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:104 +msgid "White Balance Temperature" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:105 +msgid "White Balance Component, Auto" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:106 +msgid "White Balance Blue Component" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:107 +msgid "White Balance Red Component" +msgstr "" + +#. libwebcam specific control strings +#: ../gview_v4l2core/v4l2_controls.c:110 +msgid "Focus" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:111 +msgid "Focus (Absolute)" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:63 +msgid "Off" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:64 +msgid "On" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:65 +msgid "Blinking" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:66 +msgid "Auto" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:73 +msgid "Pan (relative)" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:86 +msgid "Tilt (relative)" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:99 +msgid "Pan Reset" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:112 +msgid "Tilt Reset" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:125 +msgid "Focus (absolute)" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:138 +msgid "LED1 Mode" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:151 +msgid "LED1 Frequency" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:164 +msgid "Disable video processing" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:177 +msgid "Raw bits per pixel" +msgstr "" diff -Nru guvcview-1.7.3/po/gview_v4l2core/bs.po guvcview-2.0.1+ubuntu1~ppa1/po/gview_v4l2core/bs.po --- guvcview-1.7.3/po/gview_v4l2core/bs.po 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/po/gview_v4l2core/bs.po 2014-10-05 10:41:44.000000000 +0000 @@ -0,0 +1,359 @@ +# Bosnian translation for guvcview +# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 +# This file is distributed under the same license as the guvcview package. +# FIRST AUTHOR , 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: guvcview\n" +"Report-Msgid-Bugs-To: pj.assis@gmail.com\n" +"POT-Creation-Date: 2014-08-17 22:49+0100\n" +"PO-Revision-Date: 2011-06-27 19:11+0000\n" +"Last-Translator: Stefan Ivanović \n" +"Language-Team: Bosnian \n" +"Language: bs\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2013-12-08 10:36+0000\n" +"X-Generator: Launchpad (build 16869)\n" + +#. +#. * needed only for language files (not used) +#. +#. V4L2 control strings +#: ../gview_v4l2core/v4l2_controls.c:49 +msgid "User Controls" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:50 +msgid "Brightness" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:51 +msgid "Contrast" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:52 +msgid "Hue" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:53 +msgid "Saturation" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:54 +msgid "Sharpness" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:55 +msgid "Gamma" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:56 +msgid "Backlight Compensation" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:57 +msgid "Power Line Frequency" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:58 +msgid "Hue, Automatic" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:59 +msgid "Focus, Auto" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:60 +msgid "Manual Mode" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:61 +msgid "Auto Mode" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:62 +msgid "Shutter Priority Mode" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:63 +msgid "Aperture Priority Mode" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:64 +msgid "Black Level" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:65 +msgid "White Balance, Automatic" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:66 +msgid "Do White Balance" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:67 +msgid "Red Balance" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:68 +msgid "Blue Balance" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:69 +msgid "Exposure" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:70 +msgid "Gain, Automatic" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:71 +msgid "Gain" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:72 +msgid "Horizontal Flip" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:73 +msgid "Vertical Flip" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:74 +msgid "Horizontal Center" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:75 +msgid "Vertical Center" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:76 +msgid "Chroma AGC" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:77 +msgid "Color Killer" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:78 +msgid "Color Effects" +msgstr "" + +#. CAMERA CLASS control strings +#: ../gview_v4l2core/v4l2_controls.c:81 +msgid "Camera Controls" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:82 +msgid "Auto Exposure" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:83 +msgid "Exposure Time, Absolute" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:84 +msgid "Exposure, Dynamic Framerate" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:85 +msgid "Pan, Relative" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:86 +msgid "Tilt, Relative" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:87 +msgid "Pan, Reset" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:88 +msgid "Tilt, Reset" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:89 +msgid "Pan, Absolute" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:91 +msgid "Focus, Absolute" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:92 +msgid "Focus, Relative" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:93 +msgid "Focus, Automatic" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:94 +msgid "Zoom, Absolute" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:95 +msgid "Zoom, Relative" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:96 +msgid "Zoom, Continuous" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:97 +msgid "Privacy" +msgstr "" + +#. UVC specific control strings +#: ../gview_v4l2core/v4l2_controls.c:100 +msgid "Exposure, Auto" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:101 +msgid "Exposure, Auto Priority" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:102 +msgid "Exposure (Absolute)" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:103 +msgid "White Balance Temperature, Auto" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:104 +msgid "White Balance Temperature" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:105 +msgid "White Balance Component, Auto" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:106 +msgid "White Balance Blue Component" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:107 +msgid "White Balance Red Component" +msgstr "" + +#. libwebcam specific control strings +#: ../gview_v4l2core/v4l2_controls.c:110 +msgid "Focus" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:111 +msgid "Focus (Absolute)" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:63 +msgid "Off" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:64 +msgid "On" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:65 +msgid "Blinking" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:66 +msgid "Auto" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:73 +msgid "Pan (relative)" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:86 +msgid "Tilt (relative)" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:99 +msgid "Pan Reset" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:112 +msgid "Tilt Reset" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:125 +msgid "Focus (absolute)" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:138 +msgid "LED1 Mode" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:151 +msgid "LED1 Frequency" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:164 +msgid "Disable video processing" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:177 +msgid "Raw bits per pixel" +msgstr "" + +#~ msgid "Guvcview Video Capture" +#~ msgstr "GUVCVju Snimanje video zapisa" + +#, fuzzy +#~ msgid "Video Controls" +#~ msgstr "GUVCVjuer Kontrole" + +#, fuzzy +#~ msgid "Audio Controls" +#~ msgstr "GUVCVjuer Kontrole" + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to open device" +#~ msgstr "" +#~ "GUVCVju greĆĄka:\n" +#~ "\n" +#~ "Nije moguće otvoriti uređaj" + +#~ msgid "" +#~ "Please make sure the camera is connected\n" +#~ "and that the correct driver is installed." +#~ msgstr "" +#~ "Postarajte se da je kamera konektovana\n" +#~ "i da su pravi upravljački programi instalirani." + +#~ msgid "" +#~ "Guvcview:\n" +#~ "\n" +#~ "UVC Extension controls" +#~ msgstr "" +#~ "GUVCVju:\n" +#~ "\n" +#~ "UVC Kontrola dodataka" + +#~ msgid "Extension controls were added to the UVC driver" +#~ msgstr "Kontrola dodataka je dodata na UVC drajver" + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "UVC Extension controls" +#~ msgstr "" +#~ "GUVCVju greĆĄka:\n" +#~ "\n" +#~ "UVC kontrola dodataka" + +#~ msgid "" +#~ "An error occurred while adding extension\n" +#~ "controls to the UVC driver\n" +#~ "Make sure you run guvcview as root (or sudo)." +#~ msgstr "" +#~ "GreĆĄka se dogodila dok sam dodavao kontrolu\n" +#~ "dodataka na UVC drajver\n" +#~ "Morate pokrenuti GUVCVju kao korjen ili sudo" diff -Nru guvcview-1.7.3/po/gview_v4l2core/cs.po guvcview-2.0.1+ubuntu1~ppa1/po/gview_v4l2core/cs.po --- guvcview-1.7.3/po/gview_v4l2core/cs.po 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/po/gview_v4l2core/cs.po 2014-10-05 10:41:44.000000000 +0000 @@ -0,0 +1,844 @@ +# Czech translation for guvcview +# Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 +# This file is distributed under the same license as the guvcview package. +# FIRST AUTHOR , 2009. +# +msgid "" +msgstr "" +"Project-Id-Version: guvcview\n" +"Report-Msgid-Bugs-To: pj.assis@gmail.com\n" +"POT-Creation-Date: 2014-08-17 22:49+0100\n" +"PO-Revision-Date: 2013-02-25 05:36+0000\n" +"Last-Translator: Michal Sittek \n" +"Language-Team: Czech \n" +"Language: cs\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2013-12-08 10:36+0000\n" +"X-Generator: Launchpad (build 16869)\n" + +#. +#. * needed only for language files (not used) +#. +#. V4L2 control strings +#: ../gview_v4l2core/v4l2_controls.c:49 +msgid "User Controls" +msgstr "UĆŸivatelkĂĄ nastavenĂ­" + +#: ../gview_v4l2core/v4l2_controls.c:50 +msgid "Brightness" +msgstr "Jas" + +#: ../gview_v4l2core/v4l2_controls.c:51 +msgid "Contrast" +msgstr "Kontrast" + +#: ../gview_v4l2core/v4l2_controls.c:52 +msgid "Hue" +msgstr "OdstĂ­n" + +#: ../gview_v4l2core/v4l2_controls.c:53 +msgid "Saturation" +msgstr "Sytost" + +#: ../gview_v4l2core/v4l2_controls.c:54 +msgid "Sharpness" +msgstr "Ostrost" + +#: ../gview_v4l2core/v4l2_controls.c:55 +msgid "Gamma" +msgstr "Gamma" + +#: ../gview_v4l2core/v4l2_controls.c:56 +msgid "Backlight Compensation" +msgstr "Komponzace podsvětlenĂ­" + +#: ../gview_v4l2core/v4l2_controls.c:57 +msgid "Power Line Frequency" +msgstr "Kmitočet sĂ­tě" + +#: ../gview_v4l2core/v4l2_controls.c:58 +msgid "Hue, Automatic" +msgstr "OdstĂ­n, AutomatickĂœ" + +#: ../gview_v4l2core/v4l2_controls.c:59 +msgid "Focus, Auto" +msgstr "OstƙenĂ­, Auto" + +#: ../gview_v4l2core/v4l2_controls.c:60 +msgid "Manual Mode" +msgstr "RučnĂ­ mĂłd" + +#: ../gview_v4l2core/v4l2_controls.c:61 +msgid "Auto Mode" +msgstr "Auto. mĂłd" + +#: ../gview_v4l2core/v4l2_controls.c:62 +msgid "Shutter Priority Mode" +msgstr "MĂłd priority clony" + +#: ../gview_v4l2core/v4l2_controls.c:63 +msgid "Aperture Priority Mode" +msgstr "ReĆŸim priority clony" + +#: ../gview_v4l2core/v4l2_controls.c:64 +msgid "Black Level" +msgstr "Úroveƈ černĂ©" + +#: ../gview_v4l2core/v4l2_controls.c:65 +msgid "White Balance, Automatic" +msgstr "VyvĂĄĆŸenĂ­ bĂ­lĂ©, automatickĂ©" + +#: ../gview_v4l2core/v4l2_controls.c:66 +msgid "Do White Balance" +msgstr "VyvĂĄĆŸit bĂ­lou" + +#: ../gview_v4l2core/v4l2_controls.c:67 +msgid "Red Balance" +msgstr "VyvĂĄĆŸenĂ­ červenĂ©" + +#: ../gview_v4l2core/v4l2_controls.c:68 +msgid "Blue Balance" +msgstr "VyvĂĄĆŸenĂ­ modrĂ©" + +#: ../gview_v4l2core/v4l2_controls.c:69 +msgid "Exposure" +msgstr "Expozice" + +#: ../gview_v4l2core/v4l2_controls.c:70 +msgid "Gain, Automatic" +msgstr "PƙírĆŻstek, AutomatickĂœ" + +#: ../gview_v4l2core/v4l2_controls.c:71 +msgid "Gain" +msgstr "Zisk" + +#: ../gview_v4l2core/v4l2_controls.c:72 +msgid "Horizontal Flip" +msgstr "HorizontĂĄlnĂ­ pƙeklopenĂ­" + +#: ../gview_v4l2core/v4l2_controls.c:73 +msgid "Vertical Flip" +msgstr "VertikĂĄlnĂ­ pƙeklopenĂ­" + +#: ../gview_v4l2core/v4l2_controls.c:74 +msgid "Horizontal Center" +msgstr "HorizontĂĄlnĂ­ stƙed" + +#: ../gview_v4l2core/v4l2_controls.c:75 +msgid "Vertical Center" +msgstr "VertikĂĄlnĂ­ stƙed" + +#: ../gview_v4l2core/v4l2_controls.c:76 +msgid "Chroma AGC" +msgstr "AKP Sytosti" + +#: ../gview_v4l2core/v4l2_controls.c:77 +msgid "Color Killer" +msgstr "OdstraněnĂ­ barvy" + +#: ../gview_v4l2core/v4l2_controls.c:78 +msgid "Color Effects" +msgstr "BarevnĂ© efekty" + +#. CAMERA CLASS control strings +#: ../gview_v4l2core/v4l2_controls.c:81 +msgid "Camera Controls" +msgstr "OvlĂĄdĂĄnĂ­ kamery" + +#: ../gview_v4l2core/v4l2_controls.c:82 +msgid "Auto Exposure" +msgstr "AutomatickĂĄ korekce zĂĄvěrky" + +#: ../gview_v4l2core/v4l2_controls.c:83 +msgid "Exposure Time, Absolute" +msgstr "ExpozičnĂ­ Doba, AbsolutnĂ­" + +#: ../gview_v4l2core/v4l2_controls.c:84 +msgid "Exposure, Dynamic Framerate" +msgstr "Expozie, DynamickĂĄ rychlost snĂ­mkĆŻ" + +#: ../gview_v4l2core/v4l2_controls.c:85 +msgid "Pan, Relative" +msgstr "SledovĂĄnĂ­ objektu, RelativnĂ­" + +#: ../gview_v4l2core/v4l2_controls.c:86 +msgid "Tilt, Relative" +msgstr "NĂĄklon, RelativnĂ­" + +#: ../gview_v4l2core/v4l2_controls.c:87 +msgid "Pan, Reset" +msgstr "SledovĂĄnĂ­ objektu, Reset" + +#: ../gview_v4l2core/v4l2_controls.c:88 +msgid "Tilt, Reset" +msgstr "NĂĄklon, Reset" + +#: ../gview_v4l2core/v4l2_controls.c:89 +msgid "Pan, Absolute" +msgstr "SledovĂĄnĂ­ objektu, AbsolutnĂ­" + +#: ../gview_v4l2core/v4l2_controls.c:91 +msgid "Focus, Absolute" +msgstr "Ohnisko, AbsolutnĂ­" + +#: ../gview_v4l2core/v4l2_controls.c:92 +msgid "Focus, Relative" +msgstr "Ohnisko, RelativnĂ­" + +#: ../gview_v4l2core/v4l2_controls.c:93 +msgid "Focus, Automatic" +msgstr "ZaostƙenĂ­, Automaticky" + +#: ../gview_v4l2core/v4l2_controls.c:94 +msgid "Zoom, Absolute" +msgstr "PƙiblĂ­ĆŸenĂ­, AbsolutnĂ­" + +#: ../gview_v4l2core/v4l2_controls.c:95 +msgid "Zoom, Relative" +msgstr "PƙiblĂ­ĆŸenĂ­, RelativnĂ­" + +#: ../gview_v4l2core/v4l2_controls.c:96 +msgid "Zoom, Continuous" +msgstr "PƙiblĂ­ĆŸenĂ­, NepƙetrĆŸitĂ©" + +#: ../gview_v4l2core/v4l2_controls.c:97 +msgid "Privacy" +msgstr "Ochrana osobnĂ­ch ĂșdajĆŻ" + +#. UVC specific control strings +#: ../gview_v4l2core/v4l2_controls.c:100 +msgid "Exposure, Auto" +msgstr "Expozive, Auto" + +#: ../gview_v4l2core/v4l2_controls.c:101 +msgid "Exposure, Auto Priority" +msgstr "Expozice Auto. prorita" + +#: ../gview_v4l2core/v4l2_controls.c:102 +msgid "Exposure (Absolute)" +msgstr "Expozice (AbsolutnĂ­)" + +#: ../gview_v4l2core/v4l2_controls.c:103 +msgid "White Balance Temperature, Auto" +msgstr "VyvĂĄĆŸenĂ­ bĂ­lĂ©, Auto" + +#: ../gview_v4l2core/v4l2_controls.c:104 +msgid "White Balance Temperature" +msgstr "VyvĂĄĆŸenĂ­ bĂ­lĂ©" + +#: ../gview_v4l2core/v4l2_controls.c:105 +msgid "White Balance Component, Auto" +msgstr "Komponenta vyvĂĄĆŸenĂ­ bĂ­lĂ©, Auto" + +#: ../gview_v4l2core/v4l2_controls.c:106 +msgid "White Balance Blue Component" +msgstr "ModrĂĄ sloĆŸka vyvĂĄĆŸenĂ­ bĂ­lĂ©" + +#: ../gview_v4l2core/v4l2_controls.c:107 +msgid "White Balance Red Component" +msgstr "ČervenĂĄ sloĆŸka vyvĂĄĆŸenĂ­ bĂ­lĂ©" + +#. libwebcam specific control strings +#: ../gview_v4l2core/v4l2_controls.c:110 +msgid "Focus" +msgstr "ZaostƙenĂ­" + +#: ../gview_v4l2core/v4l2_controls.c:111 +msgid "Focus (Absolute)" +msgstr "Ohnisko (AbsolutnĂ­)" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:63 +msgid "Off" +msgstr "Vypnuto" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:64 +msgid "On" +msgstr "Zapnuto" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:65 +msgid "Blinking" +msgstr "BlikĂĄnĂ­" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:66 +msgid "Auto" +msgstr "Automaticky" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:73 +msgid "Pan (relative)" +msgstr "ZĂĄběr (relativnĂ­)" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:86 +msgid "Tilt (relative)" +msgstr "ZĂĄběr (relativnĂ­)" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:99 +msgid "Pan Reset" +msgstr "Reset zĂĄběru" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:112 +msgid "Tilt Reset" +msgstr "Obnovit" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:125 +msgid "Focus (absolute)" +msgstr "OstƙenĂ­ (absolutnĂ­)" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:138 +msgid "LED1 Mode" +msgstr "MĂłd LED1" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:151 +msgid "LED1 Frequency" +msgstr "Frekvence LED1" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:164 +msgid "Disable video processing" +msgstr "ZakĂĄzat zpracovĂĄnĂ­ videa" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:177 +msgid "Raw bits per pixel" +msgstr "Raw bity / pxel" + +#, fuzzy +#~ msgid "PCM - uncompressed (float 32 bit)" +#~ msgstr "PCM - bez komprese (16 bitĆŻ)" + +#, fuzzy +#~ msgid "Raw camera input" +#~ msgstr "VĂœstup kamery:" + +#~ msgid "MJPG - compressed" +#~ msgstr "MJPG - komprimovanĂœ" + +#~ msgid "MPEG video 1" +#~ msgstr "MPEG video 1" + +#~ msgid "FLV1 - flash video 1" +#~ msgstr "FLV1 - flash video 1" + +#~ msgid "WMV1 - win. med. video 7" +#~ msgstr "WM1 - windows media video 7" + +#~ msgid "MPG2 - MPG2 format" +#~ msgstr "MPG2 - formĂĄt MPG2" + +#~ msgid "MS MP4 V3" +#~ msgstr "MS MP4 V3" + +#~ msgid "MPEG4-ASP" +#~ msgstr "MPEG4-ASP" + +#~ msgid "MPEG4-AVC (H264)" +#~ msgstr "MPEG4-AVC (H264)" + +#~ msgid "Audio API:" +#~ msgstr "API audia:" + +#~ msgid "PORTAUDIO" +#~ msgstr "PORTAUDIO" + +#~ msgid "PULSEAUDIO" +#~ msgstr "PULSEAUDIO" + +#~ msgid "Input Device:" +#~ msgstr "VstupnĂ­ zaƙízenĂ­:" + +#~ msgid "Sample Rate:" +#~ msgstr "VzorkovacĂ­ frekvence:" + +#~ msgid "Dev. Default" +#~ msgstr "VĂœchozĂ­ zaƙízenĂ­" + +#~ msgid "Channels:" +#~ msgstr "KanĂĄly:" + +#~ msgid "1 - mono" +#~ msgstr "1 - mono" + +#~ msgid "2 - stereo" +#~ msgstr "2 - stereo" + +#, fuzzy +#~ msgid "---- Audio Filters ----" +#~ msgstr "---- Filtry videa ----" + +#~ msgid " Echo" +#~ msgstr " Zobrazit" + +#~ msgid " Reverb" +#~ msgstr " Ozvěna" + +#~ msgid " Fuzz" +#~ msgstr " Fuzz" + +#~ msgid " WahWah" +#~ msgstr " WahWah" + +#~ msgid " Ducky" +#~ msgstr " Ducky" + +#~ msgid "Error" +#~ msgstr "Chyba" + +#, fuzzy +#~ msgid "_Cancel" +#~ msgstr "zruĆĄit" + +#~ msgid "" +#~ "\n" +#~ "You have more than one video device installed.\n" +#~ "Do you want to try another one ?\n" +#~ msgstr "" +#~ "\n" +#~ "MĂĄte nainstalovĂĄno vĂ­ce neĆŸ jedno zaƙízenĂ­ pro video.\n" +#~ "Chcete zkusit dalĆĄĂ­ ?\n" + +#~ msgid "Device:" +#~ msgstr "ZaƙízenĂ­:" + +#~ msgid "Guvcview Video Capture" +#~ msgstr "ZachycenĂ­ videa Gucview" + +#, fuzzy +#~ msgid "Guvcview" +#~ msgstr "guvcview" + +#~ msgid "Image Controls" +#~ msgstr "OvlĂĄdĂĄnĂ­ obrazĆŻ" + +#, fuzzy +#~ msgid "Video Controls" +#~ msgstr "UĆŸivatelkĂĄ nastavenĂ­" + +#, fuzzy +#~ msgid "Audio Controls" +#~ msgstr "UĆŸivatelkĂĄ nastavenĂ­" + +#, fuzzy +#~ msgid "Photo file name" +#~ msgstr "NĂĄzev souboru orazu" + +#, fuzzy +#~ msgid "Video file name" +#~ msgstr "NĂĄzev souboru orazu" + +#~ msgid "start new" +#~ msgstr "spustit novĂœ" + +#~ msgid "restart" +#~ msgstr "restart" + +#~ msgid "new" +#~ msgstr "novĂœ" + +#~ msgid "cancel" +#~ msgstr "zruĆĄit" + +#~ msgid "" +#~ "launch new process or restart?.\n" +#~ "\n" +#~ msgstr "" +#~ "Spustit novĂœ proces nebo restartovat?.\n" +#~ "\n" + +#, fuzzy +#~ msgid "video codec values" +#~ msgstr "hodnoty audio kodeku" + +#~ msgid "" +#~ " encoder fps: \n" +#~ " (0 - use fps combobox value)" +#~ msgstr "" +#~ " fps enkodĂ©ru: \n" +#~ " (0 - pouĆŸĂ­t hodnotu fps z pole)" + +#~ msgid " monotonic pts" +#~ msgstr " monotĂłnĂ­ch bodĆŻ" + +#~ msgid "bit rate: " +#~ msgstr "pƙenosovĂĄ rychlost: " + +#~ msgid "qmax: " +#~ msgstr "qmax: " + +#~ msgid "qmin: " +#~ msgstr "qmin: " + +#~ msgid "max. qdiff: " +#~ msgstr "max. qdiff: " + +#~ msgid "dia size: " +#~ msgstr "velikost dia: " + +#~ msgid "pre dia size: " +#~ msgstr "velikost pre dia: " + +#~ msgid "pre me: " +#~ msgstr "pre me: " + +#~ msgid "pre cmp: " +#~ msgstr "pre cmp: " + +#~ msgid "cmp: " +#~ msgstr "cmp: " + +#~ msgid "sub cmp: " +#~ msgstr "pod cmp: " + +#~ msgid "last predictor count: " +#~ msgstr "poslednĂ­ počet prediktoru: " + +#~ msgid "gop size: " +#~ msgstr "velikost gop: " + +#~ msgid "qcompress: " +#~ msgstr "qkomprese: " + +#~ msgid "qblur: " +#~ msgstr "qrozmazĂĄnĂ­: " + +#~ msgid "subq: " +#~ msgstr "subq: " + +#~ msgid "framerefs: " +#~ msgstr "framerefs: " + +#~ msgid "me method: " +#~ msgstr "metoda me: " + +#~ msgid "mb decision: " +#~ msgstr "rozhodnutĂ­ mb: " + +#~ msgid "max B frames: " +#~ msgstr "max B rĂĄmečkĆŻ: " + +#~ msgid "num threads: " +#~ msgstr "počet vlĂĄken: " + +#~ msgid "audio codec values" +#~ msgstr "hodnoty audio kodeku" + +#~ msgid "Left" +#~ msgstr "Vlevo" + +#~ msgid "Right" +#~ msgstr "Vpravo" + +#~ msgid "Down" +#~ msgstr "DolĆŻ" + +#~ msgid "Up" +#~ msgstr "Nahoru" + +#~ msgid "8 bit" +#~ msgstr "8 bitĆŻ" + +#~ msgid "12 bit" +#~ msgstr "12 bitĆŻ" + +#~ msgid "Auto Focus (continuous)" +#~ msgstr "AutomatickĂ© ostƙenĂ­ (pozvolnĂ©)" + +#~ msgid "set Focus" +#~ msgstr "nastavit OstƙenĂ­" + +#, fuzzy +#~ msgid "_Apply" +#~ msgstr "PouĆŸĂ­t" + +#~ msgid "Frame Rate:" +#~ msgstr "SnĂ­mkovĂœ kmitočet" + +#~ msgid "Resolution:" +#~ msgstr "RozliĆĄenĂ­:" + +#~ msgid "Camera Output:" +#~ msgstr "VĂœstup kamery:" + +#~ msgid "---- Video Filters ----" +#~ msgstr "---- Filtry videa ----" + +#~ msgid " Mirror" +#~ msgstr " Zrcadlo" + +#~ msgid " Invert" +#~ msgstr " Invertovat" + +#~ msgid " Negative" +#~ msgstr " Negativ" + +#~ msgid " Mono" +#~ msgstr " Mono" + +#~ msgid " Pieces" +#~ msgstr " KouskĆŻ" + +#~ msgid " Particles" +#~ msgstr " ČástĂ­" + +#, fuzzy +#~ msgid "Print version" +#~ msgstr "VypĂ­ĆĄe verzi" + +#, fuzzy +#~ msgid "Set device name (def: /dev/video0)" +#~ msgstr "Video zaƙízenĂ­ [vĂœchozĂ­ /dev/video0]" + +#, fuzzy +#~ msgid "Set capture method [read | mmap (def)]" +#~ msgstr "Metoda zachycenĂ­ (1-mmap (vĂœchozĂ­) 2-read)" + +#, fuzzy +#~ msgid "" +#~ "Guvcview version %s\n" +#~ "\n" +#~ msgstr "VarovĂĄnĂ­ Guvcview:" + +#~ msgid "guvcview" +#~ msgstr "guvcview" + +#~ msgid "GTK UVC video viewer" +#~ msgstr "ProhlĂ­ĆŸeč videa GTK UVC" + +#~ msgid "A video viewer and capturer for the linux uvc driver" +#~ msgstr "ProhlĂ­ĆŸenĂ­ a zachytĂĄvĂĄnĂ­ videa z linuxovĂœch uvc ovladačƯ" + +#~ msgid "MPEG2 - (lavc)" +#~ msgstr "MPEG2 - (lavc)" + +#~ msgid "MP3 - (lavc)" +#~ msgstr "MP3 - (lavc)" + +#~ msgid "Dolby AC3 - (lavc)" +#~ msgstr "Dolby AC3 - (lavc)" + +#~ msgid "ACC Low - (faac)" +#~ msgstr "NizkĂ© ACC - (faac)" + +#~ msgid "Audio" +#~ msgstr "Zvuk" + +#~ msgid " Sound" +#~ msgstr " Zvuk" + +#~ msgid " Show VU meter" +#~ msgstr " Zobrazit metr VU" + +#~ msgid "---- Audio Effects ----" +#~ msgstr "---- ZvukovĂ© efekty ----" + +#~ msgid "Save File" +#~ msgstr "UloĆŸit soubor" + +#~ msgid "codec values" +#~ msgstr "hodnoty kodeku" + +#~ msgid "Cap. Video" +#~ msgstr "Zazn. Video" + +#~ msgid "GUVCViewer Controls" +#~ msgstr "OvlĂĄdĂĄnĂ­ GUVCViewer" + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to open device" +#~ msgstr "" +#~ "ChybaGuvcview:\n" +#~ "\n" +#~ "Nelze otevƙít zaƙízenĂ­" + +#~ msgid "" +#~ "Please make sure the camera is connected\n" +#~ "and that the correct driver is installed." +#~ msgstr "" +#~ "Ujistěte se prosĂ­m, ĆŸe vaĆĄe kamera je pƙipojena,\n" +#~ "a ĆŸe mĂĄte nainstalovĂĄn sprĂĄvnĂœ ovladač." + +#~ msgid "" +#~ "Guvcview:\n" +#~ "\n" +#~ "UVC Extension controls" +#~ msgstr "" +#~ "Guvcview\n" +#~ "\n" +#~ "RozơíƙenĂ© ovlĂĄdĂĄnĂ­ UVC" + +#~ msgid "Extension controls were added to the UVC driver" +#~ msgstr "RozơíƙenĂ© ovlĂĄdĂĄnĂ­ bylo pƙidĂĄno do UVC ovladače" + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "UVC Extension controls" +#~ msgstr "" +#~ "Chyba Guvcview\n" +#~ "\n" +#~ "RozơíƙenĂ© ovlĂĄdĂĄnĂ­ UCV" + +#~ msgid "" +#~ "An error occurred while adding extension\n" +#~ "controls to the UVC driver\n" +#~ "Make sure you run guvcview as root (or sudo)." +#~ msgstr "" +#~ "Nastala chyba pƙi pƙidĂĄnĂ­ rozơíƙenĂ©ho\n" +#~ "ovlĂĄdĂĄnĂ­ do ovladače UVC\n" +#~ "Ujistěte se, ĆŸe spouĆĄtĂ­te guvcview jako root (či sudo)." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Can't set a valid video stream for guvcview" +#~ msgstr "" +#~ "Chyba Gucview:\n" +#~ "\n" +#~ "Nelze nastavit platnĂœ proud videa pro gucview" + +#~ msgid "" +#~ "Make sure your device driver is v4l2 compliant\n" +#~ "and that it is properly installed." +#~ msgstr "" +#~ "Ujistěte se, ĆŸe ovladač vaĆĄeho pƙístroje je kompatibilnĂ­ s 4l2\n" +#~ "a ĆŸe je sprĂĄvně nainstalovĂĄn." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to start with minimum setup" +#~ msgstr "" +#~ "Chyba Guvcview:\n" +#~ "\n" +#~ "Nelze spustit minimĂĄlnĂ­ konfguraci" + +#~ msgid "Please reconnect your camera." +#~ msgstr "ProsĂ­m pƙipojte znovu kameru." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Couldn't query device capabilities" +#~ msgstr "" +#~ "Chyba guvcview:\n" +#~ "\n" +#~ "Nelze zjistit funkce zaƙízenĂ­" + +#~ msgid "Make sure the device driver supports v4l2." +#~ msgstr "Ujistěte se, ĆŸe ovladač zaƙízenĂ­ podporuje v4l2." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Read method error" +#~ msgstr "" +#~ "Chyba guvcview:\n" +#~ "\n" +#~ "Chyba metody čtenĂ­" + +#~ msgid "Please try mmap instead (--capture_method=1)." +#~ msgstr "MĂ­sto (--capture_method=1) zkuste mmap." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to allocate Buffers" +#~ msgstr "" +#~ "Chyba Guvcview:\n" +#~ "\n" +#~ "Nelze alokovat Buffery" + +#~ msgid "Please try restarting your system." +#~ msgstr "ProsĂ­m zkuste restartovat vĂĄĆĄ systĂ©m." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to create Video Thread" +#~ msgstr "" +#~ "Chyba Guvcview:\n" +#~ "\n" +#~ "Nelze zaloĆŸit vlĂĄkno videa" + +#~ msgid "Please report it to http://developer.berlios.de/bugs/?group_id=8179" +#~ msgstr "" +#~ "ProsĂ­m nahlaĆĄte to na http://developer.berlios.de/bugs/?group_id=8179" + +#~ msgid "Displays debug information" +#~ msgstr "ZobrazĂ­ ladĂ­cĂ­ informace" + +#~ msgid "Exit after adding UVC extension controls (needs root/sudo)" +#~ msgstr "Ukončit po pƙidĂĄnĂ­ kontroly rozơíƙenĂ­ UVC (vyĆŸaduje root/sudo)" + +#~ msgid "Don't stream video (image controls only)" +#~ msgstr "NeposĂ­lat video (pouze kontroly obrĂĄzku)" + +#~ msgid "Don't display a GUI" +#~ msgstr "Nezobrazovat rozhranĂ­" + +#~ msgid "Configuration file" +#~ msgstr "KonfiguračnĂ­ soubor" + +#~ msgid "Hardware accelaration (enable(1) | disable(0))" +#~ msgstr "HardwarovĂĄ akcelerace (povolit(1) | zakĂĄzat(0))" + +#~ msgid "" +#~ "Pixel format(mjpg|jpeg|yuyv|yvyu|uyvy|yyuv|yu12|yv12|nv12|nv21|nv16|nv61|" +#~ "y41p|grey|y10b|y16 |s501|s505|s508|gbrg|grbg|ba81|rggb|bgr3|rgb3)" +#~ msgstr "" +#~ "FormĂĄt pixelu(mjpg|jpeg|yuyv|yvyu|uyvy|yyuv|yu12|yv12|nv12|nv21|nv16|nv61|" +#~ "y41p|grey|y10b|y16 |s501|s505|s508|gbrg|grbg|ba81|rggb|bgr3|rgb3)" + +#~ msgid "Frame size, default: 640x480" +#~ msgstr "Velikost rĂĄmce, vĂœchozĂ­: 640x480" + +#~ msgid "Image capture interval in seconds" +#~ msgstr "Interval snĂ­mĂĄnĂ­ v sekundĂĄch" + +#~ msgid "Number of Pictures to capture" +#~ msgstr "Počet obrĂĄzkĆŻ k zaznamenĂĄnĂ­" + +#~ msgid "Video File name (capture from start)" +#~ msgstr "JmĂ©no Video souboru (zĂĄznam od začátku)" + +#~ msgid "Video capture time (in seconds)" +#~ msgstr "Čas Video zĂĄznamu (v sekundĂĄch)" + +#~ msgid "Exits guvcview after closing video" +#~ msgstr "Po skončenĂ­ videa ukončit guvcview" + +#~ msgid "Number of initial frames to skip" +#~ msgstr "Počet prvnĂ­ch vynechanĂœch snĂ­mkĆŻ" + +#~ msgid "Show FPS value (enable(1) | disable (0))" +#~ msgstr "Zobrazit hodnotu FPS (povolit(1) | zakĂĄzat(0))" + +#~ msgid "Load Profile at start" +#~ msgstr "Načíst profil pƙi spuĆĄtěnĂ­" + +#~ msgid "- local options" +#~ msgstr "- mĂ­stnĂ­ nastavenĂ­" + +#~ msgid "Cap. Image" +#~ msgstr "Zazn. Obraz" + +#~ msgid "Not enough free space left on disk" +#~ msgstr "Na disku nezbĂœvĂĄ dost volnĂ©ho mĂ­sta" + +#~ msgid "YUY2 - uncomp YUV" +#~ msgstr "YUY2 - uncomp YUV" + +#~ msgid "RGB - uncomp BMP" +#~ msgstr "RGB - uncomp BMP" + +#~ msgid "AVI - avi format" +#~ msgstr "AVI - formĂĄt avi" + +#~ msgid "MKV - Matroska format" +#~ msgstr "MKV - formĂĄt Matroska" + +#~ msgid " Show" +#~ msgstr " Zobrazit" + +#~ msgid "Quality:" +#~ msgstr "Kvalita:" diff -Nru guvcview-1.7.3/po/gview_v4l2core/da.po guvcview-2.0.1+ubuntu1~ppa1/po/gview_v4l2core/da.po --- guvcview-1.7.3/po/gview_v4l2core/da.po 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/po/gview_v4l2core/da.po 2014-10-05 10:41:44.000000000 +0000 @@ -0,0 +1,458 @@ +# Danish translation for guvcview +# Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 +# This file is distributed under the same license as the guvcview package. +# FIRST AUTHOR , 2009. +# +msgid "" +msgstr "" +"Project-Id-Version: guvcview\n" +"Report-Msgid-Bugs-To: pj.assis@gmail.com\n" +"POT-Creation-Date: 2014-08-17 22:49+0100\n" +"PO-Revision-Date: 2013-02-25 05:34+0000\n" +"Last-Translator: Paulo Assis \n" +"Language-Team: Danish \n" +"Language: da\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2013-12-08 10:36+0000\n" +"X-Generator: Launchpad (build 16869)\n" + +#. +#. * needed only for language files (not used) +#. +#. V4L2 control strings +#: ../gview_v4l2core/v4l2_controls.c:49 +msgid "User Controls" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:50 +msgid "Brightness" +msgstr "Lysstyrke" + +#: ../gview_v4l2core/v4l2_controls.c:51 +msgid "Contrast" +msgstr "Kontrast" + +#: ../gview_v4l2core/v4l2_controls.c:52 +msgid "Hue" +msgstr "Farvetone" + +#: ../gview_v4l2core/v4l2_controls.c:53 +msgid "Saturation" +msgstr "FarvemĂŠtning" + +#: ../gview_v4l2core/v4l2_controls.c:54 +msgid "Sharpness" +msgstr "Skarphed" + +#: ../gview_v4l2core/v4l2_controls.c:55 +msgid "Gamma" +msgstr "Gamma" + +#: ../gview_v4l2core/v4l2_controls.c:56 +msgid "Backlight Compensation" +msgstr "Baglys kompensation" + +#: ../gview_v4l2core/v4l2_controls.c:57 +msgid "Power Line Frequency" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:58 +msgid "Hue, Automatic" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:59 +msgid "Focus, Auto" +msgstr "Fokus, auto" + +#: ../gview_v4l2core/v4l2_controls.c:60 +msgid "Manual Mode" +msgstr "Manuel tilstand" + +#: ../gview_v4l2core/v4l2_controls.c:61 +msgid "Auto Mode" +msgstr "Auto tilstand" + +#: ../gview_v4l2core/v4l2_controls.c:62 +msgid "Shutter Priority Mode" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:63 +msgid "Aperture Priority Mode" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:64 +msgid "Black Level" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:65 +msgid "White Balance, Automatic" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:66 +msgid "Do White Balance" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:67 +msgid "Red Balance" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:68 +msgid "Blue Balance" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:69 +msgid "Exposure" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:70 +msgid "Gain, Automatic" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:71 +msgid "Gain" +msgstr "ForhĂžjelse" + +#: ../gview_v4l2core/v4l2_controls.c:72 +msgid "Horizontal Flip" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:73 +msgid "Vertical Flip" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:74 +msgid "Horizontal Center" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:75 +msgid "Vertical Center" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:76 +msgid "Chroma AGC" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:77 +msgid "Color Killer" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:78 +msgid "Color Effects" +msgstr "" + +#. CAMERA CLASS control strings +#: ../gview_v4l2core/v4l2_controls.c:81 +msgid "Camera Controls" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:82 +msgid "Auto Exposure" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:83 +msgid "Exposure Time, Absolute" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:84 +msgid "Exposure, Dynamic Framerate" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:85 +msgid "Pan, Relative" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:86 +msgid "Tilt, Relative" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:87 +msgid "Pan, Reset" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:88 +msgid "Tilt, Reset" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:89 +msgid "Pan, Absolute" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:91 +msgid "Focus, Absolute" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:92 +msgid "Focus, Relative" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:93 +msgid "Focus, Automatic" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:94 +msgid "Zoom, Absolute" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:95 +msgid "Zoom, Relative" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:96 +msgid "Zoom, Continuous" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:97 +msgid "Privacy" +msgstr "" + +#. UVC specific control strings +#: ../gview_v4l2core/v4l2_controls.c:100 +msgid "Exposure, Auto" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:101 +msgid "Exposure, Auto Priority" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:102 +msgid "Exposure (Absolute)" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:103 +msgid "White Balance Temperature, Auto" +msgstr "Hvid balance temperatur, auto" + +#: ../gview_v4l2core/v4l2_controls.c:104 +msgid "White Balance Temperature" +msgstr "Hvid balance temperatur" + +#: ../gview_v4l2core/v4l2_controls.c:105 +msgid "White Balance Component, Auto" +msgstr "Hvid balance komponent, auto" + +#: ../gview_v4l2core/v4l2_controls.c:106 +msgid "White Balance Blue Component" +msgstr "Hvid balance blĂ„ komponent" + +#: ../gview_v4l2core/v4l2_controls.c:107 +msgid "White Balance Red Component" +msgstr "Hvid balance rĂžd komponent" + +#. libwebcam specific control strings +#: ../gview_v4l2core/v4l2_controls.c:110 +msgid "Focus" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:111 +msgid "Focus (Absolute)" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:63 +msgid "Off" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:64 +msgid "On" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:65 +msgid "Blinking" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:66 +#, fuzzy +msgid "Auto" +msgstr "Auto tilstand" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:73 +msgid "Pan (relative)" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:86 +msgid "Tilt (relative)" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:99 +msgid "Pan Reset" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:112 +msgid "Tilt Reset" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:125 +msgid "Focus (absolute)" +msgstr "Fokus (absolut)" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:138 +msgid "LED1 Mode" +msgstr "LED1 tilstand" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:151 +msgid "LED1 Frequency" +msgstr "LED1 frekvens" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:164 +msgid "Disable video processing" +msgstr "SlĂ„ video processer fra" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:177 +msgid "Raw bits per pixel" +msgstr "RĂ„ bits pr. pixel" + +#, fuzzy +#~ msgid "Raw camera input" +#~ msgstr "Kamera output:" + +#~ msgid "MJPG - compressed" +#~ msgstr "MJPG - komprimeret" + +#~ msgid "Input Device:" +#~ msgstr "Input udstyr:" + +#~ msgid "Channels:" +#~ msgstr "Kanaler:" + +#~ msgid "1 - mono" +#~ msgstr "1 - mono" + +#~ msgid "2 - stereo" +#~ msgstr "2 - stereo" + +#, fuzzy +#~ msgid "---- Audio Filters ----" +#~ msgstr "---- Video filtre ----" + +#~ msgid "Device:" +#~ msgstr "Input udstyr:" + +#~ msgid "Image Controls" +#~ msgstr "Billed kontroller" + +#, fuzzy +#~ msgid "Video Controls" +#~ msgstr "GUVCViewer kontroller" + +#, fuzzy +#~ msgid "Audio Controls" +#~ msgstr "Billed kontroller" + +#, fuzzy +#~ msgid "Photo file name" +#~ msgstr "Billedfil navn" + +#, fuzzy +#~ msgid "Video file name" +#~ msgstr "Billedfil navn" + +#~ msgid "Left" +#~ msgstr "Venstre" + +#~ msgid "Right" +#~ msgstr "HĂžjre" + +#~ msgid "Down" +#~ msgstr "Ned" + +#~ msgid "Up" +#~ msgstr "Op" + +#~ msgid "Auto Focus (continuous)" +#~ msgstr "Auto fokus (fortsat)" + +#~ msgid "set Focus" +#~ msgstr "sĂŠt fokus" + +#~ msgid "Frame Rate:" +#~ msgstr "Billedrate:" + +#~ msgid "Resolution:" +#~ msgstr "OplĂžsning:" + +#~ msgid "Camera Output:" +#~ msgstr "Kamera output:" + +#~ msgid "---- Video Filters ----" +#~ msgstr "---- Video filtre ----" + +#~ msgid " Mirror" +#~ msgstr " Spejl" + +#~ msgid " Invert" +#~ msgstr " Vend" + +#~ msgid " Negative" +#~ msgstr " Negativ" + +#~ msgid " Mono" +#~ msgstr " Mono" + +#, fuzzy +#~ msgid "Set device name (def: /dev/video0)" +#~ msgstr "Video udstyr at benyttet [default: /dev/video0]" + +#~ msgid " Sound" +#~ msgstr " Lyd" + +#~ msgid "Save File" +#~ msgstr "Gem fil" + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to open device" +#~ msgstr "" +#~ "Guvcview fejl:\n" +#~ "\n" +#~ "Kunne ikke Ă„bne udstyr" + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to start with minimum setup" +#~ msgstr "" +#~ "Guvcview fejl:\n" +#~ "\n" +#~ "Kunne ikke starte pĂ„ minimum setup" + +#~ msgid "Please reconnect your camera." +#~ msgstr "VĂŠr venlig at gentilslutte dit kamera." + +#~ msgid "Please try restarting your system." +#~ msgstr "PrĂžv venligst at genstarte dit system." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to create Video Thread" +#~ msgstr "" +#~ "Guvcview fejl:\n" +#~ "\n" +#~ "Kunne ikke skabe video trĂ„d" + +#~ msgid "Please report it to http://developer.berlios.de/bugs/?group_id=8179" +#~ msgstr "" +#~ "Rapporter det venligst til http://developer.berlios.de/bugs/?group_id=8179" + +#~ msgid "Displays debug information" +#~ msgstr "Vis debug information" + +#~ msgid "Frame size, default: 640x480" +#~ msgstr "Ramme stĂžrrelse, standard: 640x480" + +#~ msgid "Load Profile at start" +#~ msgstr "IndlĂŠs profil ved start" + +#~ msgid "- local options" +#~ msgstr "- lokale valgmuligheder" + +#~ msgid "YUY2 - uncomp YUV" +#~ msgstr "YUY2 - ukomprimeret YUV" + +#~ msgid "RGB - uncomp BMP" +#~ msgstr "RGB - ukomprimeret BMP" + +#~ msgid " Show" +#~ msgstr " Vis" diff -Nru guvcview-1.7.3/po/gview_v4l2core/de.po guvcview-2.0.1+ubuntu1~ppa1/po/gview_v4l2core/de.po --- guvcview-1.7.3/po/gview_v4l2core/de.po 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/po/gview_v4l2core/de.po 2014-10-05 10:41:44.000000000 +0000 @@ -0,0 +1,951 @@ +# translation of de.po to Portuguese +# translation of guvcview to German +# Copyright (C) 2008 Paulo Assis +# This file is distributed under the same license as the guvcview package. +# guvcview , 2008. +# Paulo Assis , 2008. +# +# +msgid "" +msgstr "" +"Project-Id-Version: de\n" +"Report-Msgid-Bugs-To: pj.assis@gmail.com\n" +"POT-Creation-Date: 2014-08-17 22:49+0100\n" +"PO-Revision-Date: 2013-02-25 05:34+0000\n" +"Last-Translator: Paulo Assis \n" +"Language-Team: Portuguese \n" +"Language: pt\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2013-12-08 10:36+0000\n" +"X-Generator: Launchpad (build 16869)\n" + +#. +#. * needed only for language files (not used) +#. +#. V4L2 control strings +#: ../gview_v4l2core/v4l2_controls.c:49 +msgid "User Controls" +msgstr "Benutzersteuerung" + +#: ../gview_v4l2core/v4l2_controls.c:50 +msgid "Brightness" +msgstr "Helligkeit" + +#: ../gview_v4l2core/v4l2_controls.c:51 +msgid "Contrast" +msgstr "Kontrast" + +#: ../gview_v4l2core/v4l2_controls.c:52 +msgid "Hue" +msgstr "Farbe" + +#: ../gview_v4l2core/v4l2_controls.c:53 +msgid "Saturation" +msgstr "SĂ€ttigung" + +#: ../gview_v4l2core/v4l2_controls.c:54 +msgid "Sharpness" +msgstr "SchĂ€rfe" + +#: ../gview_v4l2core/v4l2_controls.c:55 +msgid "Gamma" +msgstr "Gamma" + +#: ../gview_v4l2core/v4l2_controls.c:56 +msgid "Backlight Compensation" +msgstr "Korrektur der Hintergrundbeleuchtung" + +#: ../gview_v4l2core/v4l2_controls.c:57 +msgid "Power Line Frequency" +msgstr "Netzfrequenz" + +#: ../gview_v4l2core/v4l2_controls.c:58 +msgid "Hue, Automatic" +msgstr "Farbton, automatisch" + +#: ../gview_v4l2core/v4l2_controls.c:59 +msgid "Focus, Auto" +msgstr "Fokus, automatisch" + +#: ../gview_v4l2core/v4l2_controls.c:60 +msgid "Manual Mode" +msgstr "HĂ€ndischer Modus" + +#: ../gview_v4l2core/v4l2_controls.c:61 +msgid "Auto Mode" +msgstr "Automatischer Modus" + +#: ../gview_v4l2core/v4l2_controls.c:62 +msgid "Shutter Priority Mode" +msgstr "Blendenautomatik-Modus" + +#: ../gview_v4l2core/v4l2_controls.c:63 +msgid "Aperture Priority Mode" +msgstr "BlendenprioritĂ€t-Modus" + +#: ../gview_v4l2core/v4l2_controls.c:64 +msgid "Black Level" +msgstr "Schwarzwert" + +#: ../gview_v4l2core/v4l2_controls.c:65 +msgid "White Balance, Automatic" +msgstr "Weißabgleich, automatisch" + +#: ../gview_v4l2core/v4l2_controls.c:66 +msgid "Do White Balance" +msgstr "Weißabgleich durchfĂŒhren" + +#: ../gview_v4l2core/v4l2_controls.c:67 +msgid "Red Balance" +msgstr "Rotabgleich" + +#: ../gview_v4l2core/v4l2_controls.c:68 +msgid "Blue Balance" +msgstr "Blauabgleich" + +#: ../gview_v4l2core/v4l2_controls.c:69 +msgid "Exposure" +msgstr "Belichtung" + +#: ../gview_v4l2core/v4l2_controls.c:70 +msgid "Gain, Automatic" +msgstr "VerstĂ€rkung, automatisch" + +#: ../gview_v4l2core/v4l2_controls.c:71 +msgid "Gain" +msgstr "VerstĂ€rkung" + +#: ../gview_v4l2core/v4l2_controls.c:72 +msgid "Horizontal Flip" +msgstr "Horizontal spiegeln" + +#: ../gview_v4l2core/v4l2_controls.c:73 +msgid "Vertical Flip" +msgstr "Vertikal spiegeln" + +#: ../gview_v4l2core/v4l2_controls.c:74 +msgid "Horizontal Center" +msgstr "Horizontal zentrieren" + +#: ../gview_v4l2core/v4l2_controls.c:75 +msgid "Vertical Center" +msgstr "Vertikal zentrieren" + +#: ../gview_v4l2core/v4l2_controls.c:76 +msgid "Chroma AGC" +msgstr "Automatische Chrominanz-VerstĂ€rkung" + +#: ../gview_v4l2core/v4l2_controls.c:77 +msgid "Color Killer" +msgstr "EntsĂ€ttigen" + +#: ../gview_v4l2core/v4l2_controls.c:78 +msgid "Color Effects" +msgstr "Farbeffekte" + +#. CAMERA CLASS control strings +#: ../gview_v4l2core/v4l2_controls.c:81 +msgid "Camera Controls" +msgstr "Kamerasteuerung" + +#: ../gview_v4l2core/v4l2_controls.c:82 +msgid "Auto Exposure" +msgstr "Automatische Belichtung" + +#: ../gview_v4l2core/v4l2_controls.c:83 +msgid "Exposure Time, Absolute" +msgstr "Belichtungszeit, direkt" + +#: ../gview_v4l2core/v4l2_controls.c:84 +msgid "Exposure, Dynamic Framerate" +msgstr "Belichtung, dynamische Bildwiederholrate" + +#: ../gview_v4l2core/v4l2_controls.c:85 +msgid "Pan, Relative" +msgstr "Schwenken, relativ" + +#: ../gview_v4l2core/v4l2_controls.c:86 +msgid "Tilt, Relative" +msgstr "Neigen, relativ" + +#: ../gview_v4l2core/v4l2_controls.c:87 +msgid "Pan, Reset" +msgstr "Schwenken zurĂŒcksetzen" + +#: ../gview_v4l2core/v4l2_controls.c:88 +msgid "Tilt, Reset" +msgstr "Neigung zurĂŒcksetzen" + +#: ../gview_v4l2core/v4l2_controls.c:89 +msgid "Pan, Absolute" +msgstr "Schwenken, direkt" + +#: ../gview_v4l2core/v4l2_controls.c:91 +msgid "Focus, Absolute" +msgstr "Fokus, direkt" + +#: ../gview_v4l2core/v4l2_controls.c:92 +msgid "Focus, Relative" +msgstr "Fokus, relativ" + +#: ../gview_v4l2core/v4l2_controls.c:93 +msgid "Focus, Automatic" +msgstr "Fokus, automatisch" + +#: ../gview_v4l2core/v4l2_controls.c:94 +msgid "Zoom, Absolute" +msgstr "VergrĂ¶ĂŸerung, direkt" + +#: ../gview_v4l2core/v4l2_controls.c:95 +msgid "Zoom, Relative" +msgstr "VergrĂ¶ĂŸerung, relativ" + +#: ../gview_v4l2core/v4l2_controls.c:96 +msgid "Zoom, Continuous" +msgstr "VergrĂ¶ĂŸerung, fortlaufend" + +#: ../gview_v4l2core/v4l2_controls.c:97 +msgid "Privacy" +msgstr "PrivatsphĂ€re" + +#. UVC specific control strings +#: ../gview_v4l2core/v4l2_controls.c:100 +msgid "Exposure, Auto" +msgstr "Belichtung, automatisch" + +#: ../gview_v4l2core/v4l2_controls.c:101 +msgid "Exposure, Auto Priority" +msgstr "Belichtung, automatische PrioritĂ€t" + +#: ../gview_v4l2core/v4l2_controls.c:102 +msgid "Exposure (Absolute)" +msgstr "Belichtung (Absolut)" + +#: ../gview_v4l2core/v4l2_controls.c:103 +msgid "White Balance Temperature, Auto" +msgstr "Automatischer Weißabgleich (Temperatur)" + +#: ../gview_v4l2core/v4l2_controls.c:104 +msgid "White Balance Temperature" +msgstr "Weißabgleich (Temperatur)" + +#: ../gview_v4l2core/v4l2_controls.c:105 +msgid "White Balance Component, Auto" +msgstr "Automatischer Weißabgleich (Komponente)" + +#: ../gview_v4l2core/v4l2_controls.c:106 +msgid "White Balance Blue Component" +msgstr "Weißabgleich (Blau)" + +#: ../gview_v4l2core/v4l2_controls.c:107 +msgid "White Balance Red Component" +msgstr "Weißabgleich (Rot)" + +#. libwebcam specific control strings +#: ../gview_v4l2core/v4l2_controls.c:110 +msgid "Focus" +msgstr "Fokus" + +#: ../gview_v4l2core/v4l2_controls.c:111 +msgid "Focus (Absolute)" +msgstr "Focus (direkt)" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:63 +msgid "Off" +msgstr "Aus" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:64 +msgid "On" +msgstr "An" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:65 +msgid "Blinking" +msgstr "Blinken" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:66 +msgid "Auto" +msgstr "Automatisch" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:73 +msgid "Pan (relative)" +msgstr "Umdrehung (relativ)" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:86 +msgid "Tilt (relative)" +msgstr "Neigung (relativ)" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:99 +msgid "Pan Reset" +msgstr "Umdrehung (ZurĂŒckstellen)" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:112 +msgid "Tilt Reset" +msgstr "Neigung (ZurĂŒckstellen)" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:125 +msgid "Focus (absolute)" +msgstr "Fokus (absolut)" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:138 +msgid "LED1 Mode" +msgstr "Modus LED1" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:151 +msgid "LED1 Frequency" +msgstr "Frequenz LED1" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:164 +msgid "Disable video processing" +msgstr "Video-Verarbeitung ausschalten" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:177 +msgid "Raw bits per pixel" +msgstr "Rohe Bits pro Pixel" + +#, fuzzy +#~ msgid "PCM - uncompressed (float 32 bit)" +#~ msgstr "PCM – Unkomprimiert (16 Bit)" + +#~ msgid "Vorbis" +#~ msgstr "Vorbis" + +#, fuzzy +#~ msgid "Raw camera input" +#~ msgstr "Farbmodell:" + +#~ msgid "MJPG - compressed" +#~ msgstr "MJPG - komprimiert" + +#~ msgid "MPEG video 1" +#~ msgstr "MPEG-Video 1" + +#~ msgid "FLV1 - flash video 1" +#~ msgstr "FLV1 – Flash-Video 1" + +#~ msgid "WMV1 - win. med. video 7" +#~ msgstr "WMV1 – Win.-Med.-Video 7" + +#~ msgid "MPG2 - MPG2 format" +#~ msgstr "MPG2 – MPEG-2-Format" + +#~ msgid "MS MP4 V3" +#~ msgstr "MS MP4 V3" + +#~ msgid "MPEG4-ASP" +#~ msgstr "MPEG4-ASP" + +#~ msgid "MPEG4-AVC (H264)" +#~ msgstr "MPEG4-AVC (H264)" + +#~ msgid "VP8 (VP8)" +#~ msgstr "VP8 (VP8)" + +#~ msgid "Theora (ogg theora)" +#~ msgstr "Theora (Ogg-Theora)" + +#~ msgid "Audio API:" +#~ msgstr "Audio API:" + +#~ msgid "PORTAUDIO" +#~ msgstr "PORTAUDIO" + +#~ msgid "PULSEAUDIO" +#~ msgstr "PULSEAUDIO" + +#~ msgid "Input Device:" +#~ msgstr "EingabegerĂ€t:" + +#~ msgid "Sample Rate:" +#~ msgstr "Samplingrate:" + +#~ msgid "Dev. Default" +#~ msgstr "Standard" + +#~ msgid "Channels:" +#~ msgstr "KanĂ€le:" + +#~ msgid "1 - mono" +#~ msgstr "1 - Mono" + +#~ msgid "2 - stereo" +#~ msgstr "2 - Stereo" + +#, fuzzy +#~ msgid "---- Audio Filters ----" +#~ msgstr "— Video-Filter —" + +#~ msgid " Echo" +#~ msgstr " Echo" + +#~ msgid " Reverb" +#~ msgstr " Hall" + +#~ msgid " Fuzz" +#~ msgstr " Fuzz" + +#~ msgid " WahWah" +#~ msgstr " Wah-Wah" + +#~ msgid " Ducky" +#~ msgstr " Ente" + +#~ msgid "Stop Video (V)" +#~ msgstr "Video stoppen (V)" + +#~ msgid "Cap. Video (V)" +#~ msgstr "Video aufnehmen (V)" + +#~ msgid "Error" +#~ msgstr "Fehler" + +#, fuzzy +#~ msgid "_Cancel" +#~ msgstr "Abbrechen" + +#~ msgid "" +#~ "\n" +#~ "You have more than one video device installed.\n" +#~ "Do you want to try another one ?\n" +#~ msgstr "" +#~ "\n" +#~ "Sie haben mehr als ein Video-GerĂ€t installiert\n" +#~ "Möchten Sie ein weiteres versuchen?\n" + +#~ msgid "Device:" +#~ msgstr "EingabegerĂ€t:" + +#~ msgid "Guvcview Video Capture" +#~ msgstr "GUVCView-Video-Aufnahme" + +#, fuzzy +#~ msgid "Guvcview" +#~ msgstr "GUVCView" + +#, fuzzy +#~ msgid "Stop Cap. (I)" +#~ msgstr "Automatisch anhalten (I)" + +#~ msgid "Cap. Image (I)" +#~ msgstr "Bild aufnehmen (I)" + +#~ msgid "Image Controls" +#~ msgstr "Bildsteuerung" + +#, fuzzy +#~ msgid "Video Controls" +#~ msgstr "Benutzersteuerung" + +#, fuzzy +#~ msgid "Audio Controls" +#~ msgstr "Benutzersteuerung" + +#~ msgid "Save Profile" +#~ msgstr "Profil speichern" + +#~ msgid "Load Profile" +#~ msgstr "Profil laden" + +#~ msgid "File Format:" +#~ msgstr "Dateiformat:" + +#, fuzzy +#~ msgid "Photo file name" +#~ msgstr "Bilddatei" + +#, fuzzy +#~ msgid "Raw (*.raw)" +#~ msgstr "Rohdatenbild (raw)" + +#, fuzzy +#~ msgid "Jpeg (*.jpg)" +#~ msgstr "JPEG (jpg)" + +#, fuzzy +#~ msgid "Video file name" +#~ msgstr "Bilddatei" + +#~ msgid "start new" +#~ msgstr "beginnen neue" + +#~ msgid "restart" +#~ msgstr "Neustart" + +#~ msgid "new" +#~ msgstr "Neue" + +#~ msgid "cancel" +#~ msgstr "Abbrechen" + +#~ msgid "" +#~ "launch new process or restart?.\n" +#~ "\n" +#~ msgstr "" +#~ "Neuer prozess oder programm neustarten?\n" +#~ "\n" + +#, fuzzy +#~ msgid "video codec values" +#~ msgstr "Audio-Codec-Werte" + +#~ msgid "" +#~ " encoder fps: \n" +#~ " (0 - use fps combobox value)" +#~ msgstr "" +#~ " Kodierer Bilder/s: \n" +#~ " (0 – FPS-Wert aus Auswahlliste)" + +#~ msgid " monotonic pts" +#~ msgstr " Monoton ansteigender PTS" + +#~ msgid "bit rate: " +#~ msgstr "Bitrate: " + +#~ msgid "qmax: " +#~ msgstr "qmax: " + +#~ msgid "qmin: " +#~ msgstr "qmin: " + +#~ msgid "max. qdiff: " +#~ msgstr "max. qdiff: " + +#~ msgid "dia size: " +#~ msgstr "DIA, GrĂ¶ĂŸe: " + +#~ msgid "pre dia size: " +#~ msgstr "PrĂ€d.-DIA, GrĂ¶ĂŸe: " + +#~ msgid "pre me: " +#~ msgstr "PrĂ€d.-ME: " + +#~ msgid "pre cmp: " +#~ msgstr "PrĂ€d.-CMP: " + +#~ msgid "cmp: " +#~ msgstr "cmp: " + +#~ msgid "sub cmp: " +#~ msgstr "sub cmp: " + +#~ msgid "last predictor count: " +#~ msgstr "Letzter PrĂ€diktorzĂ€hlstand: " + +#~ msgid "gop size: " +#~ msgstr "GOP, GrĂ¶ĂŸe: " + +#~ msgid "qcompress: " +#~ msgstr "QCompress: " + +#~ msgid "qblur: " +#~ msgstr "QBlur: " + +#~ msgid "subq: " +#~ msgstr "Subq: " + +#~ msgid "framerefs: " +#~ msgstr "FrameRefs: " + +#~ msgid "me method: " +#~ msgstr "ME, Methode: " + +#~ msgid "mb decision: " +#~ msgstr "MD, Entscheidung: " + +#~ msgid "max B frames: " +#~ msgstr "Max. B-Frames: " + +#~ msgid "num threads: " +#~ msgstr "Anzahl Threads: " + +#~ msgid "audio codec values" +#~ msgstr "Audio-Codec-Werte" + +#~ msgid "sample format: " +#~ msgstr "Sample-Format: " + +#~ msgid "Settings" +#~ msgstr "Einstellungen" + +#~ msgid "Hardware Defaults" +#~ msgstr "Hardware-Standards" + +#~ msgid "Camera Button" +#~ msgstr "Kameraknopf" + +#~ msgid "Capture Image" +#~ msgstr "Bild aufnehmen" + +#~ msgid "Capture Video" +#~ msgstr "Video aufnehmen" + +#~ msgid "Photo" +#~ msgstr "Foto" + +#~ msgid "File" +#~ msgstr "Datei" + +#~ msgid "Increment Filename" +#~ msgstr "Dateinamen hochzĂ€hlen" + +#~ msgid "Video" +#~ msgstr "Video" + +#~ msgid "Video Codec" +#~ msgstr "Video-Codec" + +#~ msgid "Video Codec Properties" +#~ msgstr "Video-Codec-Eigenschaften" + +#~ msgid "Audio Codec" +#~ msgstr "Audio-Codec" + +#~ msgid "Audio Codec Properties" +#~ msgstr "Audio-Codec-Eigenschaften" + +#~ msgid "Left" +#~ msgstr "Links" + +#~ msgid "Right" +#~ msgstr "Rechts" + +#~ msgid "Down" +#~ msgstr "Runter" + +#~ msgid "Up" +#~ msgstr "Hoch" + +#~ msgid "8 bit" +#~ msgstr "8 Bit" + +#~ msgid "12 bit" +#~ msgstr "12 Bit" + +#~ msgid "Auto Focus (continuous)" +#~ msgstr "Automatisch Fokus (andauernd)" + +#~ msgid "set Focus" +#~ msgstr "Fokus" + +#, fuzzy +#~ msgid "_Apply" +#~ msgstr "Anwenden" + +#~ msgid "Frame Rate:" +#~ msgstr "Bildrate:" + +#~ msgid "Resolution:" +#~ msgstr "Auflösung:" + +#~ msgid "Camera Output:" +#~ msgstr "Farbmodell:" + +#~ msgid "---- Video Filters ----" +#~ msgstr "— Video-Filter —" + +#~ msgid " Mirror" +#~ msgstr " Gespiegelt" + +#~ msgid " Invert" +#~ msgstr " Gedreht" + +#~ msgid " Negative" +#~ msgstr " Negativ" + +#~ msgid " Mono" +#~ msgstr " Monochrom" + +#~ msgid " Pieces" +#~ msgstr " Bausteine" + +#~ msgid " Particles" +#~ msgstr " Partikel" + +#, fuzzy +#~ msgid "Print version" +#~ msgstr "Zeigt die Version an" + +#, fuzzy +#~ msgid "Set device name (def: /dev/video0)" +#~ msgstr "Verwendetes Video-GerĂ€t [Standard: /dev/video0]" + +#, fuzzy +#~ msgid "Set capture method [read | mmap (def)]" +#~ msgstr "Aufnahmemethode (1-mmap (Vorgabe) 2-read)" + +#, fuzzy +#~ msgid "load control profile" +#~ msgstr "Profil laden" + +#, fuzzy +#~ msgid "" +#~ "Guvcview version %s\n" +#~ "\n" +#~ msgstr "GUVCView-Warnung:" + +#, fuzzy +#~ msgid "saving video to %s" +#~ msgstr "Video speichern in" + +#~ msgid "guvcview" +#~ msgstr "GUVCView" + +#~ msgid "GTK UVC video viewer" +#~ msgstr "UVC-Video-Betrachter in GTK" + +#~ msgid "A video viewer and capturer for the linux uvc driver" +#~ msgstr "Ein Video-Betrachter und Aufnahmewerkzeug fĂŒr den Linux-UVC-Treiber" + +#~ msgid "MPEG2 - (lavc)" +#~ msgstr "MPEG2 – (lavc)" + +#~ msgid "MP3 - (lavc)" +#~ msgstr "MP3 – (lavc)" + +#~ msgid "Dolby AC3 - (lavc)" +#~ msgstr "Dolby AC3 – (lavc)" + +#~ msgid "ACC Low - (faac)" +#~ msgstr "ACC Niedrig – (faac)" + +#~ msgid "Audio" +#~ msgstr "Audio" + +#~ msgid " Sound" +#~ msgstr " Audio" + +#~ msgid " Show VU meter" +#~ msgstr " VU-Meter anzeigen" + +#~ msgid "---- Audio Effects ----" +#~ msgstr "— Audio-Filter —" + +#~ msgid "Save File" +#~ msgstr "Datei speichern" + +#~ msgid "codec values" +#~ msgstr "Codec-Werte" + +#~ msgid "capturing photo to" +#~ msgstr "Foto speichern in" + +#~ msgid "Cap. Video" +#~ msgstr "Video aufnehmen" + +#~ msgid "GUVCViewer Controls" +#~ msgstr "GUVCViewer-Bedienfeld" + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to open device" +#~ msgstr "" +#~ "GUVCView-Fehler:\n" +#~ "\n" +#~ "Das GerĂ€t konnte nicht geöffnet werden" + +#~ msgid "" +#~ "Please make sure the camera is connected\n" +#~ "and that the correct driver is installed." +#~ msgstr "" +#~ "Bitte stellen Sie sicher, dass die Kamera angeschlossen wird\n" +#~ "und dass die driver angebracht ist." + +#~ msgid "" +#~ "Guvcview:\n" +#~ "\n" +#~ "UVC Extension controls" +#~ msgstr "" +#~ "GUVCView:\n" +#~ "\n" +#~ "Erweiterte UVC-Bedienelemente" + +#~ msgid "Extension controls were added to the UVC driver" +#~ msgstr "Erweiterte Bedienelemente wurden zum UVC-Treiber hinzugefĂŒgt" + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "UVC Extension controls" +#~ msgstr "" +#~ "GUVCView-Fehler:\n" +#~ "\n" +#~ "Erweiterte UVC-Bedienelemente" + +#~ msgid "" +#~ "An error occurred while adding extension\n" +#~ "controls to the UVC driver\n" +#~ "Make sure you run guvcview as root (or sudo)." +#~ msgstr "" +#~ "Ein Fehler ist beim HinzufĂŒgen der erweiterten\n" +#~ "Bedienelemente zum UVC-Treiber aufgetreten.\n" +#~ "Stellen Sie sicher, dass Sie »guvcview« als Systemverwalter\n" +#~ "(Benutzer »root) ausfĂŒhren oder mit »sudo«." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Can't set a valid video stream for guvcview" +#~ msgstr "" +#~ "GUVCView-Fehler:\n" +#~ "\n" +#~ "Es kann kein gĂŒltiger Video-Stream fĂŒr guvcview festgelegt werden" + +#~ msgid "" +#~ "Make sure your device driver is v4l2 compliant\n" +#~ "and that it is properly installed." +#~ msgstr "" +#~ "Stellen Sie bitte sicher, dass Sie sowohl eine v4l2 kompatible Kamera " +#~ "besitzen als auch den Treiber geladen haben." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to start with minimum setup" +#~ msgstr "" +#~ "GUVCView-Fehler:\n" +#~ "\n" +#~ "Es konnte nicht im minimalen Modus gestartet werden" + +#~ msgid "Please reconnect your camera." +#~ msgstr "Bitte schließen Sie Ihre Kamera erneut an." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Couldn't query device capabilities" +#~ msgstr "" +#~ "GUVCView-Fehler:\n" +#~ "\n" +#~ "GerĂ€teeigenschaften konnten nicht abgefragt werden" + +#~ msgid "Make sure the device driver supports v4l2." +#~ msgstr "Stellen Sie sicher, dass der GerĂ€tetreiber v4l2 unterstĂŒtzt." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Read method error" +#~ msgstr "" +#~ "GUVCView-Fehler:\n" +#~ "\n" +#~ "Fehler der Lesemethode" + +#~ msgid "Please try mmap instead (--capture_method=1)." +#~ msgstr "Bitte versuchen sie es mit mmap (--capture_method=1)" + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to allocate Buffers" +#~ msgstr "" +#~ "GUVCView-Fehler:\n" +#~ "\n" +#~ "Puffer konnten nicht angelegt werden" + +#~ msgid "Please try restarting your system." +#~ msgstr "Bitte System neu starten." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to create Video Thread" +#~ msgstr "" +#~ "GUVCView-Fehler:\n" +#~ "\n" +#~ "Video-Thread konnte nicht erzeugt werden" + +#~ msgid "Please report it to http://developer.berlios.de/bugs/?group_id=8179" +#~ msgstr "" +#~ "Bitte melden Sie dies an http://developer.berlios.de/bugs/?group_id=8179" + +#~ msgid "Bitmap (Bmp)" +#~ msgstr "Bitmap (bmp)" + +#~ msgid "Portable Network Graphics (Png)" +#~ msgstr "Portable Network Graphics (png)" + +#~ msgid "Displays debug information" +#~ msgstr "Extra Informationen anzeigen" + +#~ msgid "Exit after adding UVC extension controls (needs root/sudo)" +#~ msgstr "" +#~ "Nach HinzufĂŒgen der erweiterten UVC-Bedienelemente beenden (root/sudo " +#~ "erforderlich)" + +#~ msgid "Don't stream video (image controls only)" +#~ msgstr "Video nicht streamen (nur Bildsteuerung)" + +#~ msgid "Don't display a GUI" +#~ msgstr "Keine grafische BenutzeroberflĂ€che anzeigen" + +#~ msgid "Configuration file" +#~ msgstr "Konfigurationsdatei" + +#~ msgid "Hardware accelaration (enable(1) | disable(0))" +#~ msgstr "Hardware accel. (aktivieren(1) | inaktivieren(0))" + +#~ msgid "" +#~ "Pixel format(mjpg|jpeg|yuyv|yvyu|uyvy|yyuv|yu12|yv12|nv12|nv21|nv16|nv61|" +#~ "y41p|grey|y10b|y16 |s501|s505|s508|gbrg|grbg|ba81|rggb|bgr3|rgb3)" +#~ msgstr "" +#~ "Pixel-Format (mjpg|jpeg|yuyv|yvyu|uyvy|yyuv|yu12|yv12|nv12|nv21|nv16|nv61|" +#~ "y41p|grey|y10b|y16 |s501|s505|s508|gbrg|grbg|ba81|rggb|bgr3|rgb3)" + +#~ msgid "Frame size, default: 640x480" +#~ msgstr "Auflösung (Standard: 640x480)" + +#~ msgid "Image capture interval in seconds" +#~ msgstr "Bild aufnehmenabgelaufen (sekunden)" + +#~ msgid "Number of Pictures to capture" +#~ msgstr "BildquantitĂ€t" + +#~ msgid "Video File name (capture from start)" +#~ msgstr "Video-Dateiname (Aufnahme von Anfang)" + +#~ msgid "Video capture time (in seconds)" +#~ msgstr "Video-Aufnahmedauer (Sek)" + +#~ msgid "Exits guvcview after closing video" +#~ msgstr "GUVCView beenden, nachdem Video geschlossen wurde" + +#~ msgid "Number of initial frames to skip" +#~ msgstr "Anzahl der am Anfang zu ĂŒberspringenden Einzelbilder" + +#~ msgid "Show FPS value (enable(1) | disable (0))" +#~ msgstr "FPS anzeigen (aktivieren(1)|inaktivieren(0))" + +#~ msgid "Load Profile at start" +#~ msgstr "kontrollen - Datei öffnen" + +#~ msgid "- local options" +#~ msgstr "- lokale Wahlen" + +#~ msgid "Cap. Image" +#~ msgstr "Bild aufnehmen" + +#~ msgid "Not enough free space left on disk" +#~ msgstr "Nicht genĂŒgend freier Speicherplatz vorhanden" + +#~ msgid "YUY2 - uncomp YUV" +#~ msgstr "YUY2 - keine Komp. YUV" + +#~ msgid "RGB - uncomp BMP" +#~ msgstr "RGB - keine Komp. BMP" + +#~ msgid "AVI - avi format" +#~ msgstr "AVI – Avi-Format" + +#~ msgid "MKV - Matroska format" +#~ msgstr "MKV – Matroska-Format" + +#~ msgid "WEBM - format" +#~ msgstr "WEBM-Format" + +#~ msgid " Show" +#~ msgstr " Anzeigen" + +#~ msgid "Quality:" +#~ msgstr "QualitĂ€t:" diff -Nru guvcview-1.7.3/po/gview_v4l2core/en_AU.po guvcview-2.0.1+ubuntu1~ppa1/po/gview_v4l2core/en_AU.po --- guvcview-1.7.3/po/gview_v4l2core/en_AU.po 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/po/gview_v4l2core/en_AU.po 2014-10-05 10:41:44.000000000 +0000 @@ -0,0 +1,944 @@ +# English (Australia) translation for guvcview +# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 +# This file is distributed under the same license as the guvcview package. +# FIRST AUTHOR , 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: guvcview\n" +"Report-Msgid-Bugs-To: pj.assis@gmail.com\n" +"POT-Creation-Date: 2014-08-17 22:49+0100\n" +"PO-Revision-Date: 2013-06-18 07:11+0000\n" +"Last-Translator: Jackson Doak \n" +"Language-Team: English (Australia) \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2013-12-08 10:36+0000\n" +"X-Generator: Launchpad (build 16869)\n" + +#. +#. * needed only for language files (not used) +#. +#. V4L2 control strings +#: ../gview_v4l2core/v4l2_controls.c:49 +msgid "User Controls" +msgstr "User Controls" + +#: ../gview_v4l2core/v4l2_controls.c:50 +msgid "Brightness" +msgstr "Brightness" + +#: ../gview_v4l2core/v4l2_controls.c:51 +msgid "Contrast" +msgstr "Contrast" + +#: ../gview_v4l2core/v4l2_controls.c:52 +msgid "Hue" +msgstr "Hue" + +#: ../gview_v4l2core/v4l2_controls.c:53 +msgid "Saturation" +msgstr "Saturation" + +#: ../gview_v4l2core/v4l2_controls.c:54 +msgid "Sharpness" +msgstr "Sharpness" + +#: ../gview_v4l2core/v4l2_controls.c:55 +msgid "Gamma" +msgstr "Gamma" + +#: ../gview_v4l2core/v4l2_controls.c:56 +msgid "Backlight Compensation" +msgstr "Backlight Compensation" + +#: ../gview_v4l2core/v4l2_controls.c:57 +msgid "Power Line Frequency" +msgstr "Power Line Frequency" + +#: ../gview_v4l2core/v4l2_controls.c:58 +msgid "Hue, Automatic" +msgstr "Hue, Automatic" + +#: ../gview_v4l2core/v4l2_controls.c:59 +msgid "Focus, Auto" +msgstr "Focus, Auto" + +#: ../gview_v4l2core/v4l2_controls.c:60 +msgid "Manual Mode" +msgstr "Manual Mode" + +#: ../gview_v4l2core/v4l2_controls.c:61 +msgid "Auto Mode" +msgstr "Auto Mode" + +#: ../gview_v4l2core/v4l2_controls.c:62 +msgid "Shutter Priority Mode" +msgstr "Shutter Priority Mode" + +#: ../gview_v4l2core/v4l2_controls.c:63 +msgid "Aperture Priority Mode" +msgstr "Aperture Priority Mode" + +#: ../gview_v4l2core/v4l2_controls.c:64 +msgid "Black Level" +msgstr "Black Level" + +#: ../gview_v4l2core/v4l2_controls.c:65 +msgid "White Balance, Automatic" +msgstr "White Balance, Automatic" + +#: ../gview_v4l2core/v4l2_controls.c:66 +msgid "Do White Balance" +msgstr "Do White Balance" + +#: ../gview_v4l2core/v4l2_controls.c:67 +msgid "Red Balance" +msgstr "Red Balance" + +#: ../gview_v4l2core/v4l2_controls.c:68 +msgid "Blue Balance" +msgstr "Blue Balance" + +#: ../gview_v4l2core/v4l2_controls.c:69 +msgid "Exposure" +msgstr "Exposure" + +#: ../gview_v4l2core/v4l2_controls.c:70 +msgid "Gain, Automatic" +msgstr "Gain, Automatic" + +#: ../gview_v4l2core/v4l2_controls.c:71 +msgid "Gain" +msgstr "Gain" + +#: ../gview_v4l2core/v4l2_controls.c:72 +msgid "Horizontal Flip" +msgstr "Horizontal Flip" + +#: ../gview_v4l2core/v4l2_controls.c:73 +msgid "Vertical Flip" +msgstr "Vertical Flip" + +#: ../gview_v4l2core/v4l2_controls.c:74 +msgid "Horizontal Center" +msgstr "Horizontal Centre" + +#: ../gview_v4l2core/v4l2_controls.c:75 +msgid "Vertical Center" +msgstr "Vertical Centre" + +#: ../gview_v4l2core/v4l2_controls.c:76 +msgid "Chroma AGC" +msgstr "Chroma AGC" + +#: ../gview_v4l2core/v4l2_controls.c:77 +msgid "Color Killer" +msgstr "Colour Killer" + +#: ../gview_v4l2core/v4l2_controls.c:78 +msgid "Color Effects" +msgstr "Colour Effects" + +#. CAMERA CLASS control strings +#: ../gview_v4l2core/v4l2_controls.c:81 +msgid "Camera Controls" +msgstr "Camera Controls" + +#: ../gview_v4l2core/v4l2_controls.c:82 +msgid "Auto Exposure" +msgstr "Auto Exposure" + +#: ../gview_v4l2core/v4l2_controls.c:83 +msgid "Exposure Time, Absolute" +msgstr "Exposure Time, Absolute" + +#: ../gview_v4l2core/v4l2_controls.c:84 +msgid "Exposure, Dynamic Framerate" +msgstr "Exposure, Dynamic Framerate" + +#: ../gview_v4l2core/v4l2_controls.c:85 +msgid "Pan, Relative" +msgstr "Pan, Relative" + +#: ../gview_v4l2core/v4l2_controls.c:86 +msgid "Tilt, Relative" +msgstr "Tilt, Relative" + +#: ../gview_v4l2core/v4l2_controls.c:87 +msgid "Pan, Reset" +msgstr "Pan, Reset" + +#: ../gview_v4l2core/v4l2_controls.c:88 +msgid "Tilt, Reset" +msgstr "Tilt, Reset" + +#: ../gview_v4l2core/v4l2_controls.c:89 +msgid "Pan, Absolute" +msgstr "Pan, Absolute" + +#: ../gview_v4l2core/v4l2_controls.c:91 +msgid "Focus, Absolute" +msgstr "Focus, Absolute" + +#: ../gview_v4l2core/v4l2_controls.c:92 +msgid "Focus, Relative" +msgstr "Focus, Relative" + +#: ../gview_v4l2core/v4l2_controls.c:93 +msgid "Focus, Automatic" +msgstr "Focus, Automatic" + +#: ../gview_v4l2core/v4l2_controls.c:94 +msgid "Zoom, Absolute" +msgstr "Zoom, Absolute" + +#: ../gview_v4l2core/v4l2_controls.c:95 +msgid "Zoom, Relative" +msgstr "Zoom, Relative" + +#: ../gview_v4l2core/v4l2_controls.c:96 +msgid "Zoom, Continuous" +msgstr "Zoom, Continuous" + +#: ../gview_v4l2core/v4l2_controls.c:97 +msgid "Privacy" +msgstr "Privacy" + +#. UVC specific control strings +#: ../gview_v4l2core/v4l2_controls.c:100 +msgid "Exposure, Auto" +msgstr "Exposure, Auto" + +#: ../gview_v4l2core/v4l2_controls.c:101 +msgid "Exposure, Auto Priority" +msgstr "Exposure, Auto Priority" + +#: ../gview_v4l2core/v4l2_controls.c:102 +msgid "Exposure (Absolute)" +msgstr "Exposure (Absolute)" + +#: ../gview_v4l2core/v4l2_controls.c:103 +msgid "White Balance Temperature, Auto" +msgstr "White Balance Temperature, Auto" + +#: ../gview_v4l2core/v4l2_controls.c:104 +msgid "White Balance Temperature" +msgstr "White Balance Temperature" + +#: ../gview_v4l2core/v4l2_controls.c:105 +msgid "White Balance Component, Auto" +msgstr "White Balance Component, Auto" + +#: ../gview_v4l2core/v4l2_controls.c:106 +msgid "White Balance Blue Component" +msgstr "White Balance Blue Component" + +#: ../gview_v4l2core/v4l2_controls.c:107 +msgid "White Balance Red Component" +msgstr "White Balance Red Component" + +#. libwebcam specific control strings +#: ../gview_v4l2core/v4l2_controls.c:110 +msgid "Focus" +msgstr "Focus" + +#: ../gview_v4l2core/v4l2_controls.c:111 +msgid "Focus (Absolute)" +msgstr "Focus (Absolute)" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:63 +msgid "Off" +msgstr "Off" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:64 +msgid "On" +msgstr "On" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:65 +msgid "Blinking" +msgstr "Blinking" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:66 +msgid "Auto" +msgstr "Auto" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:73 +msgid "Pan (relative)" +msgstr "Pan (relative)" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:86 +msgid "Tilt (relative)" +msgstr "Tilt (relative)" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:99 +msgid "Pan Reset" +msgstr "Pan Reset" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:112 +msgid "Tilt Reset" +msgstr "Tilt Reset" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:125 +msgid "Focus (absolute)" +msgstr "Focus (absolute)" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:138 +msgid "LED1 Mode" +msgstr "LED1 Mode" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:151 +msgid "LED1 Frequency" +msgstr "LED1 Frequency" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:164 +msgid "Disable video processing" +msgstr "Disable video processing" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:177 +msgid "Raw bits per pixel" +msgstr "Raw bits per pixel" + +#, fuzzy +#~ msgid "PCM - uncompressed (float 32 bit)" +#~ msgstr "PCM - uncompressed (16 bit)" + +#~ msgid "Vorbis" +#~ msgstr "Vorbis" + +#, fuzzy +#~ msgid "Raw camera input" +#~ msgstr "Camera Output:" + +#~ msgid "MJPG - compressed" +#~ msgstr "MJPG - compressed" + +#~ msgid "MPEG video 1" +#~ msgstr "MPEG video 1" + +#~ msgid "FLV1 - flash video 1" +#~ msgstr "FLV1 - flash video 1" + +#~ msgid "WMV1 - win. med. video 7" +#~ msgstr "WMV1 - win. med. video 7" + +#~ msgid "MPG2 - MPG2 format" +#~ msgstr "MPG2 - MPG2 format" + +#~ msgid "MS MP4 V3" +#~ msgstr "MS MP4 V3" + +#~ msgid "MPEG4-ASP" +#~ msgstr "MPEG4-ASP" + +#~ msgid "MPEG4-AVC (H264)" +#~ msgstr "MPEG4-AVC (H264)" + +#~ msgid "VP8 (VP8)" +#~ msgstr "VP8 (VP8)" + +#~ msgid "Theora (ogg theora)" +#~ msgstr "Theora (ogg theora)" + +#~ msgid "Audio API:" +#~ msgstr "Audio API:" + +#~ msgid "PORTAUDIO" +#~ msgstr "PORTAUDIO" + +#~ msgid "PULSEAUDIO" +#~ msgstr "PULSEAUDIO" + +#~ msgid "Input Device:" +#~ msgstr "Input Device:" + +#~ msgid "Sample Rate:" +#~ msgstr "Sample Rate:" + +#~ msgid "Dev. Default" +#~ msgstr "Dev. Default" + +#~ msgid "Channels:" +#~ msgstr "Channels:" + +#~ msgid "1 - mono" +#~ msgstr "1 - mono" + +#~ msgid "2 - stereo" +#~ msgstr "2 - stereo" + +#, fuzzy +#~ msgid "---- Audio Filters ----" +#~ msgstr "---- Video Filters ----" + +#~ msgid " Echo" +#~ msgstr " Echo" + +#~ msgid " Reverb" +#~ msgstr " Reverb" + +#~ msgid " Fuzz" +#~ msgstr " Fuzz" + +#~ msgid " WahWah" +#~ msgstr " WahWah" + +#~ msgid " Ducky" +#~ msgstr " Ducky" + +#~ msgid "Stop Video (V)" +#~ msgstr "Stop Video (V)" + +#~ msgid "Cap. Video (V)" +#~ msgstr "Cap. Video (V)" + +#~ msgid "Error" +#~ msgstr "Error" + +#, fuzzy +#~ msgid "_Cancel" +#~ msgstr "cancel" + +#~ msgid "" +#~ "\n" +#~ "You have more than one video device installed.\n" +#~ "Do you want to try another one ?\n" +#~ msgstr "" +#~ "\n" +#~ "You have more than one video device installed.\n" +#~ "Do you want to try another one?\n" + +#~ msgid "Device:" +#~ msgstr "Device:" + +#~ msgid "Guvcview Video Capture" +#~ msgstr "Guvcview Video Capture" + +#, fuzzy +#~ msgid "Guvcview" +#~ msgstr "guvcview" + +#, fuzzy +#~ msgid "Stop Cap. (I)" +#~ msgstr "Stop Auto (I)" + +#~ msgid "Cap. Image (I)" +#~ msgstr "Cap. Image (I)" + +#~ msgid "Image Controls" +#~ msgstr "Image Controls" + +#, fuzzy +#~ msgid "Video Controls" +#~ msgstr "User Controls" + +#, fuzzy +#~ msgid "Audio Controls" +#~ msgstr "User Controls" + +#~ msgid "Save Profile" +#~ msgstr "Save Profile" + +#~ msgid "Load Profile" +#~ msgstr "Load Profile" + +#~ msgid "File Format:" +#~ msgstr "File Format:" + +#, fuzzy +#~ msgid "Photo file name" +#~ msgstr "Image File name" + +#, fuzzy +#~ msgid "Raw (*.raw)" +#~ msgstr "Raw Image (raw)" + +#, fuzzy +#~ msgid "Jpeg (*.jpg)" +#~ msgstr "Jpeg (jpg)" + +#, fuzzy +#~ msgid "Video file name" +#~ msgstr "Image File name" + +#~ msgid "start new" +#~ msgstr "start new" + +#~ msgid "restart" +#~ msgstr "restart" + +#~ msgid "new" +#~ msgstr "new" + +#~ msgid "cancel" +#~ msgstr "cancel" + +#~ msgid "" +#~ "launch new process or restart?.\n" +#~ "\n" +#~ msgstr "" +#~ "launch new process or restart?.\n" +#~ "\n" + +#, fuzzy +#~ msgid "video codec values" +#~ msgstr "audio codec values" + +#~ msgid "" +#~ " encoder fps: \n" +#~ " (0 - use fps combobox value)" +#~ msgstr "" +#~ " encoder fps: \n" +#~ " (0 - use fps combobox value)" + +#~ msgid " monotonic pts" +#~ msgstr " monotonic pts" + +#~ msgid "bit rate: " +#~ msgstr "bit rate: " + +#~ msgid "qmax: " +#~ msgstr "qmax: " + +#~ msgid "qmin: " +#~ msgstr "qmin: " + +#~ msgid "max. qdiff: " +#~ msgstr "max. qdiff: " + +#~ msgid "dia size: " +#~ msgstr "dia size: " + +#~ msgid "pre dia size: " +#~ msgstr "pre dia size: " + +#~ msgid "pre me: " +#~ msgstr "pre me: " + +#~ msgid "pre cmp: " +#~ msgstr "pre cmp: " + +#~ msgid "cmp: " +#~ msgstr "cmp: " + +#~ msgid "sub cmp: " +#~ msgstr "sub cmp: " + +#~ msgid "last predictor count: " +#~ msgstr "last predictor count: " + +#~ msgid "gop size: " +#~ msgstr "gop size: " + +#~ msgid "qcompress: " +#~ msgstr "qcompress: " + +#~ msgid "qblur: " +#~ msgstr "qblur: " + +#~ msgid "subq: " +#~ msgstr "subq: " + +#~ msgid "framerefs: " +#~ msgstr "framerefs: " + +#~ msgid "me method: " +#~ msgstr "me method: " + +#~ msgid "mb decision: " +#~ msgstr "mb decision: " + +#~ msgid "max B frames: " +#~ msgstr "max B frames: " + +#~ msgid "num threads: " +#~ msgstr "num threads: " + +#~ msgid "audio codec values" +#~ msgstr "audio codec values" + +#~ msgid "sample format: " +#~ msgstr "sample format: " + +#~ msgid "Settings" +#~ msgstr "Settings" + +#~ msgid "Hardware Defaults" +#~ msgstr "Hardware Defaults" + +#~ msgid "Camera Button" +#~ msgstr "Camera Button" + +#~ msgid "Capture Image" +#~ msgstr "Capture Image" + +#~ msgid "Capture Video" +#~ msgstr "Capture Video" + +#~ msgid "Photo" +#~ msgstr "Photo" + +#~ msgid "File" +#~ msgstr "File" + +#~ msgid "Increment Filename" +#~ msgstr "Increment Filename" + +#~ msgid "Video" +#~ msgstr "Video" + +#~ msgid "Video Codec" +#~ msgstr "Video Codec" + +#~ msgid "Video Codec Properties" +#~ msgstr "Video Codec Properties" + +#~ msgid "Audio Codec" +#~ msgstr "Audio Codec" + +#~ msgid "Audio Codec Properties" +#~ msgstr "Audio Codec Properties" + +#~ msgid "Left" +#~ msgstr "Left" + +#~ msgid "Right" +#~ msgstr "Right" + +#~ msgid "Down" +#~ msgstr "Down" + +#~ msgid "Up" +#~ msgstr "Up" + +#~ msgid "8 bit" +#~ msgstr "8 bit" + +#~ msgid "12 bit" +#~ msgstr "12 bit" + +#~ msgid "Auto Focus (continuous)" +#~ msgstr "Auto Focus (continuous)" + +#~ msgid "set Focus" +#~ msgstr "set Focus" + +#, fuzzy +#~ msgid "_Apply" +#~ msgstr "Apply" + +#~ msgid "Frame Rate:" +#~ msgstr "Frame Rate:" + +#~ msgid "Resolution:" +#~ msgstr "Resolution:" + +#~ msgid "Camera Output:" +#~ msgstr "Camera Output:" + +#~ msgid "---- Video Filters ----" +#~ msgstr "---- Video Filters ----" + +#~ msgid " Mirror" +#~ msgstr " Mirror" + +#~ msgid " Invert" +#~ msgstr " Invert" + +#~ msgid " Negative" +#~ msgstr " Negative" + +#~ msgid " Mono" +#~ msgstr " Mono" + +#~ msgid " Pieces" +#~ msgstr " Pieces" + +#~ msgid " Particles" +#~ msgstr " Particles" + +#, fuzzy +#~ msgid "Print version" +#~ msgstr "Prints version" + +#, fuzzy +#~ msgid "Set device name (def: /dev/video0)" +#~ msgstr "Video Device to use [default: /dev/video0]" + +#, fuzzy +#~ msgid "Set capture method [read | mmap (def)]" +#~ msgstr "Capture method (1-mmap (default) 2-read)" + +#, fuzzy +#~ msgid "load control profile" +#~ msgstr "Load Profile" + +#, fuzzy +#~ msgid "" +#~ "Guvcview version %s\n" +#~ "\n" +#~ msgstr "Guvcview Warning:" + +#, fuzzy +#~ msgid "saving video to %s" +#~ msgstr "capturing video to" + +#~ msgid "guvcview" +#~ msgstr "guvcview" + +#~ msgid "GTK UVC video viewer" +#~ msgstr "GTK UVC video viewer" + +#~ msgid "A video viewer and capturer for the linux uvc driver" +#~ msgstr "A video viewer and capturer for the linux uvc driver" + +#~ msgid "MPEG2 - (lavc)" +#~ msgstr "MPEG2 - (lavc)" + +#~ msgid "MP3 - (lavc)" +#~ msgstr "MP3 - (lavc)" + +#~ msgid "Dolby AC3 - (lavc)" +#~ msgstr "Dolby AC3 - (lavc)" + +#~ msgid "ACC Low - (faac)" +#~ msgstr "ACC Low - (faac)" + +#~ msgid "Audio" +#~ msgstr "Audio" + +#~ msgid " Sound" +#~ msgstr " Sound" + +#~ msgid " Show VU meter" +#~ msgstr " Show VU meter" + +#~ msgid "---- Audio Effects ----" +#~ msgstr "---- Audio Effects ----" + +#~ msgid "Save File" +#~ msgstr "Save File" + +#~ msgid "codec values" +#~ msgstr "codec values" + +#~ msgid "capturing photo to" +#~ msgstr "capturing photo to" + +#~ msgid "Cap. Video" +#~ msgstr "Cap. Video" + +#~ msgid "GUVCViewer Controls" +#~ msgstr "GUVCViewer Controls" + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to open device" +#~ msgstr "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to open device" + +#~ msgid "" +#~ "Please make sure the camera is connected\n" +#~ "and that the correct driver is installed." +#~ msgstr "" +#~ "Please make sure the camera is connected\n" +#~ "and that the correct driver is installed." + +#~ msgid "" +#~ "Guvcview:\n" +#~ "\n" +#~ "UVC Extension controls" +#~ msgstr "" +#~ "Guvcview:\n" +#~ "\n" +#~ "UVC Extension controls" + +#~ msgid "Extension controls were added to the UVC driver" +#~ msgstr "Extension controls were added to the UVC driver" + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "UVC Extension controls" +#~ msgstr "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "UVC Extension controls" + +#~ msgid "" +#~ "An error occurred while adding extension\n" +#~ "controls to the UVC driver\n" +#~ "Make sure you run guvcview as root (or sudo)." +#~ msgstr "" +#~ "An error occurred while adding extension\n" +#~ "controls to the UVC driver\n" +#~ "Make sure you run guvcview as root (or sudo)." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Can't set a valid video stream for guvcview" +#~ msgstr "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Can't set a valid video stream for guvcview" + +#~ msgid "" +#~ "Make sure your device driver is v4l2 compliant\n" +#~ "and that it is properly installed." +#~ msgstr "" +#~ "Make sure your device driver is v4l2 compliant\n" +#~ "and that it is properly installed." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to start with minimum setup" +#~ msgstr "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to start with minimum setup" + +#~ msgid "Please reconnect your camera." +#~ msgstr "Please reconnect your camera." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Couldn't query device capabilities" +#~ msgstr "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Couldn't query device capabilities" + +#~ msgid "Make sure the device driver supports v4l2." +#~ msgstr "Make sure the device driver supports v4l2." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Read method error" +#~ msgstr "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Read method error" + +#~ msgid "Please try mmap instead (--capture_method=1)." +#~ msgstr "Please try mmap instead (--capture_method=1)." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to allocate Buffers" +#~ msgstr "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to allocate Buffers" + +#~ msgid "Please try restarting your system." +#~ msgstr "Please try restarting your system." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to create Video Thread" +#~ msgstr "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to create Video Thread" + +#~ msgid "Please report it to http://developer.berlios.de/bugs/?group_id=8179" +#~ msgstr "Please report it to http://developer.berlios.de/bugs/?group_id=8179" + +#~ msgid "Bitmap (Bmp)" +#~ msgstr "Bitmap (Bmp)" + +#~ msgid "Portable Network Graphics (Png)" +#~ msgstr "Portable Network Graphics (Png)" + +#~ msgid "Displays debug information" +#~ msgstr "Displays debug information" + +#~ msgid "Exit after adding UVC extension controls (needs root/sudo)" +#~ msgstr "Exit after adding UVC extension controls (needs root/sudo)" + +#~ msgid "Don't stream video (image controls only)" +#~ msgstr "Don't stream video (image controls only)" + +#~ msgid "Don't display a GUI" +#~ msgstr "Don't display a GUI" + +#~ msgid "Configuration file" +#~ msgstr "Configuration file" + +#~ msgid "Hardware accelaration (enable(1) | disable(0))" +#~ msgstr "Hardware accelaration (enable(1) | disable(0))" + +#~ msgid "" +#~ "Pixel format(mjpg|jpeg|yuyv|yvyu|uyvy|yyuv|yu12|yv12|nv12|nv21|nv16|nv61|" +#~ "y41p|grey|y10b|y16 |s501|s505|s508|gbrg|grbg|ba81|rggb|bgr3|rgb3)" +#~ msgstr "" +#~ "Pixel format(mjpg|jpeg|yuyv|yvyu|uyvy|yyuv|yu12|yv12|nv12|nv21|nv16|nv61|" +#~ "y41p|grey|y10b|y16 |s501|s505|s508|gbrg|grbg|ba81|rggb|bgr3|rgb3)" + +#~ msgid "Frame size, default: 640x480" +#~ msgstr "Frame size, default: 640x480" + +#~ msgid "Image capture interval in seconds" +#~ msgstr "Image capture interval in seconds" + +#~ msgid "Number of Pictures to capture" +#~ msgstr "Number of Pictures to capture" + +#~ msgid "Video File name (capture from start)" +#~ msgstr "Video File name (capture from start)" + +#~ msgid "Video capture time (in seconds)" +#~ msgstr "Video capture time (in seconds)" + +#~ msgid "Exits guvcview after closing video" +#~ msgstr "Exits guvcview after closing video" + +#~ msgid "Number of initial frames to skip" +#~ msgstr "Number of initial frames to skip" + +#~ msgid "Show FPS value (enable(1) | disable (0))" +#~ msgstr "Show FPS value (enable(1) | disable (0))" + +#~ msgid "Load Profile at start" +#~ msgstr "Load Profile at start" + +#~ msgid "- local options" +#~ msgstr "- local options" + +#~ msgid "Cap. Image" +#~ msgstr "Cap. Image" + +#~ msgid "Not enough free space left on disk" +#~ msgstr "Not enough free space left on disk" + +#~ msgid "YUY2 - uncomp YUV" +#~ msgstr "YUY2 - uncomp YUV" + +#~ msgid "RGB - uncomp BMP" +#~ msgstr "RGB - uncomp BMP" + +#~ msgid "AVI - avi format" +#~ msgstr "AVI - avi format" + +#~ msgid "MKV - Matroska format" +#~ msgstr "MKV - Matroska format" + +#~ msgid "WEBM - format" +#~ msgstr "WEBM - format" + +#~ msgid " Show" +#~ msgstr " Show" + +#~ msgid "Quality:" +#~ msgstr "Quality:" diff -Nru guvcview-1.7.3/po/gview_v4l2core/es.po guvcview-2.0.1+ubuntu1~ppa1/po/gview_v4l2core/es.po --- guvcview-1.7.3/po/gview_v4l2core/es.po 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/po/gview_v4l2core/es.po 2014-10-05 10:41:44.000000000 +0000 @@ -0,0 +1,805 @@ +# translation of es.po to Portuguese +# translation of guvcview to Spanish +# Copyright (C) 2008 Paulo Assis +# This file is distributed under the same license as the guvcview package. +# guvcview , 2008. +# +# +msgid "" +msgstr "" +"Project-Id-Version: es\n" +"Report-Msgid-Bugs-To: pj.assis@gmail.com\n" +"POT-Creation-Date: 2014-08-17 22:49+0100\n" +"PO-Revision-Date: 2013-02-25 05:38+0000\n" +"Last-Translator: Adolfo Jayme \n" +"Language-Team: Portuguese \n" +"Language: pt\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2013-12-08 10:36+0000\n" +"X-Generator: Launchpad (build 16869)\n" + +#. +#. * needed only for language files (not used) +#. +#. V4L2 control strings +#: ../gview_v4l2core/v4l2_controls.c:49 +msgid "User Controls" +msgstr "Controles de usuario" + +#: ../gview_v4l2core/v4l2_controls.c:50 +msgid "Brightness" +msgstr "Brillo" + +#: ../gview_v4l2core/v4l2_controls.c:51 +msgid "Contrast" +msgstr "Contraste" + +#: ../gview_v4l2core/v4l2_controls.c:52 +msgid "Hue" +msgstr "Matiz" + +#: ../gview_v4l2core/v4l2_controls.c:53 +msgid "Saturation" +msgstr "SaturaciĂłn" + +#: ../gview_v4l2core/v4l2_controls.c:54 +msgid "Sharpness" +msgstr "Nitidez" + +#: ../gview_v4l2core/v4l2_controls.c:55 +msgid "Gamma" +msgstr "Gamma" + +#: ../gview_v4l2core/v4l2_controls.c:56 +msgid "Backlight Compensation" +msgstr "CompensaciĂłn de retroiluminaciĂłn" + +#: ../gview_v4l2core/v4l2_controls.c:57 +msgid "Power Line Frequency" +msgstr "Frecuencia de la lĂ­nea elĂ©ctrica" + +#: ../gview_v4l2core/v4l2_controls.c:58 +msgid "Hue, Automatic" +msgstr "Matiz, automĂĄtico" + +#: ../gview_v4l2core/v4l2_controls.c:59 +msgid "Focus, Auto" +msgstr "Foco, Auto" + +#: ../gview_v4l2core/v4l2_controls.c:60 +msgid "Manual Mode" +msgstr "Modo manual" + +#: ../gview_v4l2core/v4l2_controls.c:61 +msgid "Auto Mode" +msgstr "Modo automĂĄtico" + +#: ../gview_v4l2core/v4l2_controls.c:62 +msgid "Shutter Priority Mode" +msgstr "Modo prioridad del obturador" + +#: ../gview_v4l2core/v4l2_controls.c:63 +msgid "Aperture Priority Mode" +msgstr "Modo prioridad de la abertura" + +#: ../gview_v4l2core/v4l2_controls.c:64 +msgid "Black Level" +msgstr "Nivel de negros" + +#: ../gview_v4l2core/v4l2_controls.c:65 +msgid "White Balance, Automatic" +msgstr "Balance de blancos, automĂĄtico" + +#: ../gview_v4l2core/v4l2_controls.c:66 +msgid "Do White Balance" +msgstr "Hacer balance de blancos" + +#: ../gview_v4l2core/v4l2_controls.c:67 +msgid "Red Balance" +msgstr "Balance de rojos" + +#: ../gview_v4l2core/v4l2_controls.c:68 +msgid "Blue Balance" +msgstr "Balance de azules" + +#: ../gview_v4l2core/v4l2_controls.c:69 +msgid "Exposure" +msgstr "ExposiciĂłn" + +#: ../gview_v4l2core/v4l2_controls.c:70 +msgid "Gain, Automatic" +msgstr "Ganancia, automĂĄtico" + +#: ../gview_v4l2core/v4l2_controls.c:71 +msgid "Gain" +msgstr "Ganancia" + +#: ../gview_v4l2core/v4l2_controls.c:72 +msgid "Horizontal Flip" +msgstr "Giro horizontal" + +#: ../gview_v4l2core/v4l2_controls.c:73 +msgid "Vertical Flip" +msgstr "Giro vertical" + +#: ../gview_v4l2core/v4l2_controls.c:74 +msgid "Horizontal Center" +msgstr "Centrado horizontal" + +#: ../gview_v4l2core/v4l2_controls.c:75 +msgid "Vertical Center" +msgstr "Centrado vertical" + +#: ../gview_v4l2core/v4l2_controls.c:76 +msgid "Chroma AGC" +msgstr "AGC de croma" + +#: ../gview_v4l2core/v4l2_controls.c:77 +msgid "Color Killer" +msgstr "Anulador de color" + +#: ../gview_v4l2core/v4l2_controls.c:78 +msgid "Color Effects" +msgstr "Efectos de color" + +#. CAMERA CLASS control strings +#: ../gview_v4l2core/v4l2_controls.c:81 +msgid "Camera Controls" +msgstr "Controles de cĂĄmara" + +#: ../gview_v4l2core/v4l2_controls.c:82 +msgid "Auto Exposure" +msgstr "ExposiciĂłn automĂĄtica" + +#: ../gview_v4l2core/v4l2_controls.c:83 +msgid "Exposure Time, Absolute" +msgstr "Tiempo de exposiciĂłn, absoluto" + +#: ../gview_v4l2core/v4l2_controls.c:84 +msgid "Exposure, Dynamic Framerate" +msgstr "ExposiciĂłn, tasa de fotogramas dinĂĄmica" + +#: ../gview_v4l2core/v4l2_controls.c:85 +msgid "Pan, Relative" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:86 +msgid "Tilt, Relative" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:87 +msgid "Pan, Reset" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:88 +msgid "Tilt, Reset" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:89 +msgid "Pan, Absolute" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:91 +msgid "Focus, Absolute" +msgstr "Enfoque, Absoluto" + +#: ../gview_v4l2core/v4l2_controls.c:92 +msgid "Focus, Relative" +msgstr "Enfoque, relativo" + +#: ../gview_v4l2core/v4l2_controls.c:93 +msgid "Focus, Automatic" +msgstr "Enfoque, automĂĄtico" + +#: ../gview_v4l2core/v4l2_controls.c:94 +msgid "Zoom, Absolute" +msgstr "Zoom, absoluto" + +#: ../gview_v4l2core/v4l2_controls.c:95 +msgid "Zoom, Relative" +msgstr "Zoom, relativo" + +#: ../gview_v4l2core/v4l2_controls.c:96 +msgid "Zoom, Continuous" +msgstr "Zoom, continuo" + +#: ../gview_v4l2core/v4l2_controls.c:97 +msgid "Privacy" +msgstr "Privacidad" + +#. UVC specific control strings +#: ../gview_v4l2core/v4l2_controls.c:100 +msgid "Exposure, Auto" +msgstr "ExposiciĂłn, auto" + +#: ../gview_v4l2core/v4l2_controls.c:101 +msgid "Exposure, Auto Priority" +msgstr "ExposiciĂłn, Prioridad Auto" + +#: ../gview_v4l2core/v4l2_controls.c:102 +msgid "Exposure (Absolute)" +msgstr "ExposiciĂłn (Absoluta)" + +#: ../gview_v4l2core/v4l2_controls.c:103 +msgid "White Balance Temperature, Auto" +msgstr "Equilibrio blanco, auto" + +#: ../gview_v4l2core/v4l2_controls.c:104 +msgid "White Balance Temperature" +msgstr "Blanco (Temp. de color)" + +#: ../gview_v4l2core/v4l2_controls.c:105 +msgid "White Balance Component, Auto" +msgstr "Componente de color, Auto" + +#: ../gview_v4l2core/v4l2_controls.c:106 +msgid "White Balance Blue Component" +msgstr "Componente Azul" + +#: ../gview_v4l2core/v4l2_controls.c:107 +msgid "White Balance Red Component" +msgstr "Componente Rojo" + +#. libwebcam specific control strings +#: ../gview_v4l2core/v4l2_controls.c:110 +msgid "Focus" +msgstr "Enfoque" + +#: ../gview_v4l2core/v4l2_controls.c:111 +msgid "Focus (Absolute)" +msgstr "Enfoque (absoluto)" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:63 +msgid "Off" +msgstr "Apagado" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:64 +msgid "On" +msgstr "Encendido" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:65 +msgid "Blinking" +msgstr "Parpadeo" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:66 +msgid "Auto" +msgstr "Auto" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:73 +msgid "Pan (relative)" +msgstr "RotaciĂłn (relativo)" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:86 +msgid "Tilt (relative)" +msgstr "InclinaciĂłn (relativa)" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:99 +msgid "Pan Reset" +msgstr "RotaciĂłn (reajuste)" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:112 +msgid "Tilt Reset" +msgstr "InclinaciĂłn (reajuste)" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:125 +msgid "Focus (absolute)" +msgstr "Foco (absoluto)" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:138 +msgid "LED1 Mode" +msgstr "Modo LED1" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:151 +msgid "LED1 Frequency" +msgstr "Frecuencia LED1" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:164 +msgid "Disable video processing" +msgstr "Parar el proceso de vĂ­deo" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:177 +msgid "Raw bits per pixel" +msgstr "Bits por pixel (Raw)" + +#, fuzzy +#~ msgid "PCM - uncompressed (float 32 bit)" +#~ msgstr "PCM - sin compresiĂłn (16 bit)" + +#, fuzzy +#~ msgid "Raw camera input" +#~ msgstr "Salida de la cĂĄmara:" + +#~ msgid "MJPG - compressed" +#~ msgstr "MJPG - comprimido" + +#~ msgid "MPEG video 1" +#~ msgstr "MPEG video 1" + +#~ msgid "FLV1 - flash video 1" +#~ msgstr "FLV1 - flash video 1" + +#~ msgid "WMV1 - win. med. video 7" +#~ msgstr "WMV1 - win. med. video 7" + +#~ msgid "MPG2 - MPG2 format" +#~ msgstr "MPG2 - MPG2 format" + +#~ msgid "MS MP4 V3" +#~ msgstr "MS MP4 V3" + +#~ msgid "MPEG4-ASP" +#~ msgstr "MPEG4-ASP" + +#~ msgid "MPEG4-AVC (H264)" +#~ msgstr "MPEG4-AVC (H264)" + +#~ msgid "Audio API:" +#~ msgstr "Audio API" + +#~ msgid "PORTAUDIO" +#~ msgstr "PORTAUDIO" + +#~ msgid "PULSEAUDIO" +#~ msgstr "PULSEAUDIO" + +#~ msgid "Input Device:" +#~ msgstr "Dispositivo de entrada:" + +#~ msgid "Sample Rate:" +#~ msgstr "Sample Rate:" + +#~ msgid "Dev. Default" +#~ msgstr "AutomĂĄtico" + +#~ msgid "Channels:" +#~ msgstr "Canales:" + +#~ msgid "1 - mono" +#~ msgstr "1 - mono" + +#~ msgid "2 - stereo" +#~ msgstr "2 - stereo" + +#, fuzzy +#~ msgid "---- Audio Filters ----" +#~ msgstr "---- Filtros Video ----" + +#~ msgid " Echo" +#~ msgstr " Eco" + +#~ msgid " Reverb" +#~ msgstr " Reverb" + +#~ msgid " Fuzz" +#~ msgstr " Ruido" + +#~ msgid " WahWah" +#~ msgstr " WahWah" + +#~ msgid " Ducky" +#~ msgstr " Pato" + +#~ msgid "Stop Video (V)" +#~ msgstr "Detener vĂ­deo (V)" + +#~ msgid "Cap. Video (V)" +#~ msgstr "Cap. vĂ­deo (V)" + +#~ msgid "Error" +#~ msgstr "Error" + +#, fuzzy +#~ msgid "_Cancel" +#~ msgstr "cancelar" + +#~ msgid "Device:" +#~ msgstr "Dispositivo de entrada:" + +#~ msgid "Guvcview Video Capture" +#~ msgstr "Captura de vĂ­deo Guvcview" + +#, fuzzy +#~ msgid "Guvcview" +#~ msgstr "guvcview" + +#, fuzzy +#~ msgid "Stop Cap. (I)" +#~ msgstr "Detener auto (I)" + +#~ msgid "Cap. Image (I)" +#~ msgstr "Cap. imagen (I)" + +#~ msgid "Image Controls" +#~ msgstr "Controles de la imagen" + +#, fuzzy +#~ msgid "Video Controls" +#~ msgstr "Controles de usuario" + +#, fuzzy +#~ msgid "Audio Controls" +#~ msgstr "Controles de usuario" + +#, fuzzy +#~ msgid "Photo file name" +#~ msgstr "Archivo de Imagen" + +#, fuzzy +#~ msgid "Video file name" +#~ msgstr "Archivo de Imagen" + +#~ msgid "start new" +#~ msgstr "Comenzar nuevo" + +#~ msgid "restart" +#~ msgstr "Recomenzar aplicaciĂłn" + +#~ msgid "new" +#~ msgstr "nuevo" + +#~ msgid "cancel" +#~ msgstr "cancelar" + +#~ msgid "" +#~ "launch new process or restart?.\n" +#~ "\n" +#~ msgstr "" +#~ "nuevo proceso o recomenzar?\n" +#~ "\n" + +#, fuzzy +#~ msgid "video codec values" +#~ msgstr "valores de codec de audio" + +#~ msgid "bit rate: " +#~ msgstr "media de bits: " + +#~ msgid "qmax: " +#~ msgstr "qmĂĄx: " + +#~ msgid "qmin: " +#~ msgstr "qmin: " + +#~ msgid "max. qdiff: " +#~ msgstr "mĂĄx. qdiff: " + +#~ msgid "dia size: " +#~ msgstr "tamaño dia: " + +#~ msgid "pre dia size: " +#~ msgstr "tamaño pre dia: " + +#~ msgid "pre me: " +#~ msgstr "pre me: " + +#~ msgid "cmp: " +#~ msgstr "cmp: " + +#~ msgid "gop size: " +#~ msgstr "tamaño gop: " + +#~ msgid "me method: " +#~ msgstr "Metodo me " + +#~ msgid "mb decision: " +#~ msgstr "mb desiciĂłn " + +#~ msgid "audio codec values" +#~ msgstr "valores de codec de audio" + +#~ msgid "Left" +#~ msgstr "Izquierda" + +#~ msgid "Right" +#~ msgstr "Derecha" + +#~ msgid "Down" +#~ msgstr "Abajo" + +#~ msgid "Up" +#~ msgstr "Arriba" + +#~ msgid "8 bit" +#~ msgstr "8 bit" + +#~ msgid "12 bit" +#~ msgstr "12 bit" + +#~ msgid "Auto Focus (continuous)" +#~ msgstr "Foco Automatico (continuo)" + +#~ msgid "set Focus" +#~ msgstr "Focar" + +#, fuzzy +#~ msgid "_Apply" +#~ msgstr "Aplicar" + +#~ msgid "Frame Rate:" +#~ msgstr "FPS:" + +#~ msgid "Resolution:" +#~ msgstr "ResoluciĂłn:" + +#~ msgid "Camera Output:" +#~ msgstr "Salida de la cĂĄmara:" + +#~ msgid "---- Video Filters ----" +#~ msgstr "---- Filtros Video ----" + +#~ msgid " Mirror" +#~ msgstr " Espejo" + +#~ msgid " Invert" +#~ msgstr " Invertido" + +#~ msgid " Negative" +#~ msgstr " Negativo" + +#~ msgid " Mono" +#~ msgstr " Gris" + +#~ msgid " Pieces" +#~ msgstr " Pedazos" + +#~ msgid " Particles" +#~ msgstr " PartĂ­culas" + +#, fuzzy +#~ msgid "Print version" +#~ msgstr "Imprimir versiĂłn" + +#, fuzzy +#~ msgid "Set device name (def: /dev/video0)" +#~ msgstr "Dispositivo de video [pred: /dev/video0]" + +#, fuzzy +#~ msgid "Set capture method [read | mmap (def)]" +#~ msgstr "MĂ©todo de captura (1-mmap (predeterminado) 2-read)" + +#, fuzzy +#~ msgid "" +#~ "Guvcview version %s\n" +#~ "\n" +#~ msgstr "Aviso de Guvcview:" + +#~ msgid "guvcview" +#~ msgstr "guvcview" + +#~ msgid "GTK UVC video viewer" +#~ msgstr "Reproductor video GTK UVC" + +#~ msgid "A video viewer and capturer for the linux uvc driver" +#~ msgstr "" +#~ "Un reproductor y capturador de vĂ­deo para el controlador uvc de Linux" + +#~ msgid "MPEG2 - (lavc)" +#~ msgstr "MPEG2 - (lavc)" + +#~ msgid "MP3 - (lavc)" +#~ msgstr "MP3 - (lavc)" + +#~ msgid "Dolby AC3 - (lavc)" +#~ msgstr "Dolby AC3 - (lavc)" + +#~ msgid "ACC Low - (faac)" +#~ msgstr "ACC Low - (faac)" + +#~ msgid "Audio" +#~ msgstr "Audio" + +#~ msgid " Sound" +#~ msgstr " Sonido" + +#~ msgid "---- Audio Effects ----" +#~ msgstr "---- Efectos de Audio ----" + +#~ msgid "Save File" +#~ msgstr "Guardar Archivo" + +#~ msgid "codec values" +#~ msgstr "valores de cĂłdecs" + +#~ msgid "Cap. Video" +#~ msgstr "Cap. vĂ­deo" + +#~ msgid "GUVCViewer Controls" +#~ msgstr "Controles de GUVCViewer" + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to open device" +#~ msgstr "" +#~ "Error de Guvcview:\n" +#~ "\n" +#~ "No se pudo abrir el dispositivo" + +#~ msgid "" +#~ "Please make sure the camera is connected\n" +#~ "and that the correct driver is installed." +#~ msgstr "" +#~ "Por favor, verifique de que la cĂĄmara estĂ© conectada\n" +#~ "y que se instalĂł el controlador correcto." + +#~ msgid "" +#~ "Guvcview:\n" +#~ "\n" +#~ "UVC Extension controls" +#~ msgstr "" +#~ "Guvcview:\n" +#~ "\n" +#~ "Controles de la extensiĂłn UVC" + +#~ msgid "Extension controls were added to the UVC driver" +#~ msgstr "Los controles de extensiĂłn se añadieron al controlador de UVC" + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "UVC Extension controls" +#~ msgstr "" +#~ "Error de Guvcview:\n" +#~ "\n" +#~ "Controles de extensiĂłn UVC" + +#~ msgid "" +#~ "An error occurred while adding extension\n" +#~ "controls to the UVC driver\n" +#~ "Make sure you run guvcview as root (or sudo)." +#~ msgstr "" +#~ "OcurriĂł un error al añadir los controles\n" +#~ "de extensiĂłn al controlador UVC\n" +#~ "AsegĂșrese de que ejecuta guvcview como root (o sudo)." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Can't set a valid video stream for guvcview" +#~ msgstr "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Incapaz de establecer video stream" + +#~ msgid "" +#~ "Make sure your device driver is v4l2 compliant\n" +#~ "and that it is properly installed." +#~ msgstr "" +#~ "AsegĂșrese de que tiene un controlador v4l2\n" +#~ "y que estĂĄ instalado." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to start with minimum setup" +#~ msgstr "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "No se pudo iniciar con la configuraciĂłn mĂ­nima" + +#~ msgid "Please reconnect your camera." +#~ msgstr "Vuelva a conectar su cĂĄmara." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Couldn't query device capabilities" +#~ msgstr "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "No se pudo abrir el dispositivo" + +#~ msgid "Make sure the device driver supports v4l2." +#~ msgstr "AsegĂșrese de que el controlador del dispositivo soporta v4l2." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Read method error" +#~ msgstr "" +#~ "Error de Guvcview:\n" +#~ "\n" +#~ "error de mĂ©todo Read" + +#~ msgid "Please try mmap instead (--capture_method=1)." +#~ msgstr "Intente, en vez de eso, mmap (--capture_method=1)." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to allocate Buffers" +#~ msgstr "" +#~ "Error de Guvcview:\n" +#~ "\n" +#~ "No se pudieron asignar bĂșferes" + +#~ msgid "Please try restarting your system." +#~ msgstr "Pruebe a reiniciar su sistema." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to create Video Thread" +#~ msgstr "" +#~ "Error de Guvcview:\n" +#~ "\n" +#~ "No se pudo crear hilo de vĂ­deo" + +#~ msgid "Please report it to http://developer.berlios.de/bugs/?group_id=8179" +#~ msgstr "RepĂłrtelo a http://developer.berlios.de/bugs/?group_id=8179" + +#~ msgid "Displays debug information" +#~ msgstr "Exhibir information de depuracion" + +#~ msgid "Exit after adding UVC extension controls (needs root/sudo)" +#~ msgstr "" +#~ "Salir despuĂ©s de añadir los controles de extensiĂłn UVC (requiere root/" +#~ "sudo)" + +#~ msgid "Don't stream video (image controls only)" +#~ msgstr "No hacer streaming de vĂ­deo (sĂłlo controles)" + +#~ msgid "Don't display a GUI" +#~ msgstr "No mostrar interfaz grĂĄfica" + +#~ msgid "Configuration file" +#~ msgstr "Archivo de configuraciĂłn" + +#~ msgid "Hardware accelaration (enable(1) | disable(0))" +#~ msgstr "Accel. del hardware (habilitar(1)|deshabil.(0))" + +#~ msgid "Frame size, default: 640x480" +#~ msgstr "ResoluciĂłn (defect: 640x480)" + +#~ msgid "Image capture interval in seconds" +#~ msgstr "Intervalo de captura Imagen en segundos" + +#~ msgid "Number of Pictures to capture" +#~ msgstr "NĂșmero de imagens a capturar" + +#~ msgid "Video File name (capture from start)" +#~ msgstr "Archivo video (captura del arranque)" + +#~ msgid "Video capture time (in seconds)" +#~ msgstr "Tiempo de la captura video (segundos)" + +#~ msgid "Exits guvcview after closing video" +#~ msgstr "Salir de guvcview despuĂ©s de cerrar el vĂ­deo" + +#~ msgid "Number of initial frames to skip" +#~ msgstr "NĂșmero de fotogramas iniciales a omitir" + +#~ msgid "Show FPS value (enable(1) | disable (0))" +#~ msgstr "Exhibir FPS (habilitar(1) | deshabilitar(0))" + +#~ msgid "Load Profile at start" +#~ msgstr "Cargar perfil al inicio" + +#~ msgid "- local options" +#~ msgstr "- opciones locales" + +#~ msgid "Cap. Image" +#~ msgstr "Cap. imagen" + +#~ msgid "Not enough free space left on disk" +#~ msgstr "No hay suficiente espacio libre en disco" + +#~ msgid "YUY2 - uncomp YUV" +#~ msgstr "YUY2 - s/comp YUV" + +#~ msgid "RGB - uncomp BMP" +#~ msgstr "RGB - s/comp BMP" + +#~ msgid "AVI - avi format" +#~ msgstr "AVI - formato avi" + +#~ msgid "MKV - Matroska format" +#~ msgstr "MKV - formato Matroska" + +#~ msgid " Show" +#~ msgstr " Mostrar" + +#~ msgid "Quality:" +#~ msgstr "Calidad:" diff -Nru guvcview-1.7.3/po/gview_v4l2core/eu.po guvcview-2.0.1+ubuntu1~ppa1/po/gview_v4l2core/eu.po --- guvcview-1.7.3/po/gview_v4l2core/eu.po 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/po/gview_v4l2core/eu.po 2014-10-05 10:41:44.000000000 +0000 @@ -0,0 +1,481 @@ +# Basque translation for guvcview +# Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 +# This file is distributed under the same license as the guvcview package. +# FIRST AUTHOR , 2009. +# +msgid "" +msgstr "" +"Project-Id-Version: guvcview\n" +"Report-Msgid-Bugs-To: pj.assis@gmail.com\n" +"POT-Creation-Date: 2014-08-17 22:49+0100\n" +"PO-Revision-Date: 2013-02-25 05:37+0000\n" +"Last-Translator: Pablo Zubiaurre \n" +"Language-Team: Basque \n" +"Language: eu\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2013-12-08 10:36+0000\n" +"X-Generator: Launchpad (build 16869)\n" + +#. +#. * needed only for language files (not used) +#. +#. V4L2 control strings +#: ../gview_v4l2core/v4l2_controls.c:49 +msgid "User Controls" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:50 +msgid "Brightness" +msgstr "Distira" + +#: ../gview_v4l2core/v4l2_controls.c:51 +msgid "Contrast" +msgstr "Kontrastea" + +#: ../gview_v4l2core/v4l2_controls.c:52 +msgid "Hue" +msgstr "Ñabardura" + +#: ../gview_v4l2core/v4l2_controls.c:53 +msgid "Saturation" +msgstr "Asetasuna" + +#: ../gview_v4l2core/v4l2_controls.c:54 +msgid "Sharpness" +msgstr "Garbitasuna" + +#: ../gview_v4l2core/v4l2_controls.c:55 +msgid "Gamma" +msgstr "Gamma" + +#: ../gview_v4l2core/v4l2_controls.c:56 +msgid "Backlight Compensation" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:57 +msgid "Power Line Frequency" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:58 +msgid "Hue, Automatic" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:59 +msgid "Focus, Auto" +msgstr "Foku automatikoa" + +#: ../gview_v4l2core/v4l2_controls.c:60 +msgid "Manual Mode" +msgstr "Eskuzko modua" + +#: ../gview_v4l2core/v4l2_controls.c:61 +msgid "Auto Mode" +msgstr "Modu automatikoa" + +#: ../gview_v4l2core/v4l2_controls.c:62 +msgid "Shutter Priority Mode" +msgstr "Obturadore lehentasun modua" + +#: ../gview_v4l2core/v4l2_controls.c:63 +msgid "Aperture Priority Mode" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:64 +msgid "Black Level" +msgstr "Beltz-maila" + +#: ../gview_v4l2core/v4l2_controls.c:65 +msgid "White Balance, Automatic" +msgstr "Zuri-balantzea,automatikoa" + +#: ../gview_v4l2core/v4l2_controls.c:66 +msgid "Do White Balance" +msgstr "Zuri-balantzea egin" + +#: ../gview_v4l2core/v4l2_controls.c:67 +msgid "Red Balance" +msgstr "Gorri balantzea" + +#: ../gview_v4l2core/v4l2_controls.c:68 +msgid "Blue Balance" +msgstr "Urdin balantzea" + +#: ../gview_v4l2core/v4l2_controls.c:69 +msgid "Exposure" +msgstr "Esposizioa" + +#: ../gview_v4l2core/v4l2_controls.c:70 +msgid "Gain, Automatic" +msgstr "Irabazia, Automatikoa" + +#: ../gview_v4l2core/v4l2_controls.c:71 +msgid "Gain" +msgstr "Irabazia" + +#: ../gview_v4l2core/v4l2_controls.c:72 +msgid "Horizontal Flip" +msgstr "Irauli horizontalki" + +#: ../gview_v4l2core/v4l2_controls.c:73 +msgid "Vertical Flip" +msgstr "Irauli bertikalki" + +#: ../gview_v4l2core/v4l2_controls.c:74 +msgid "Horizontal Center" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:75 +msgid "Vertical Center" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:76 +msgid "Chroma AGC" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:77 +msgid "Color Killer" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:78 +msgid "Color Effects" +msgstr "" + +#. CAMERA CLASS control strings +#: ../gview_v4l2core/v4l2_controls.c:81 +msgid "Camera Controls" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:82 +msgid "Auto Exposure" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:83 +msgid "Exposure Time, Absolute" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:84 +msgid "Exposure, Dynamic Framerate" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:85 +msgid "Pan, Relative" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:86 +msgid "Tilt, Relative" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:87 +msgid "Pan, Reset" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:88 +msgid "Tilt, Reset" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:89 +msgid "Pan, Absolute" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:91 +msgid "Focus, Absolute" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:92 +msgid "Focus, Relative" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:93 +msgid "Focus, Automatic" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:94 +msgid "Zoom, Absolute" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:95 +msgid "Zoom, Relative" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:96 +msgid "Zoom, Continuous" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:97 +msgid "Privacy" +msgstr "" + +#. UVC specific control strings +#: ../gview_v4l2core/v4l2_controls.c:100 +msgid "Exposure, Auto" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:101 +msgid "Exposure, Auto Priority" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:102 +msgid "Exposure (Absolute)" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:103 +msgid "White Balance Temperature, Auto" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:104 +msgid "White Balance Temperature" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:105 +msgid "White Balance Component, Auto" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:106 +msgid "White Balance Blue Component" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:107 +msgid "White Balance Red Component" +msgstr "" + +#. libwebcam specific control strings +#: ../gview_v4l2core/v4l2_controls.c:110 +msgid "Focus" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:111 +msgid "Focus (Absolute)" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:63 +msgid "Off" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:64 +msgid "On" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:65 +msgid "Blinking" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:66 +#, fuzzy +msgid "Auto" +msgstr "Modu automatikoa" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:73 +msgid "Pan (relative)" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:86 +msgid "Tilt (relative)" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:99 +msgid "Pan Reset" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:112 +msgid "Tilt Reset" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:125 +msgid "Focus (absolute)" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:138 +msgid "LED1 Mode" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:151 +msgid "LED1 Frequency" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:164 +msgid "Disable video processing" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:177 +msgid "Raw bits per pixel" +msgstr "" + +#~ msgid "Stop Video (V)" +#~ msgstr "Bideoa gelditu (V)" + +#~ msgid "Cap. Video (V)" +#~ msgstr "Kaptura (V):" + +#, fuzzy +#~ msgid "_Cancel" +#~ msgstr "utzi" + +#, fuzzy +#~ msgid "Guvcview" +#~ msgstr "Gucview oharra:" + +#~ msgid "Cap. Image (I)" +#~ msgstr "Kaptura (I):" + +#~ msgid "Image Controls" +#~ msgstr "Irudi kontrolak" + +#, fuzzy +#~ msgid "Video Controls" +#~ msgstr "GUVCViewer kontrolak" + +#, fuzzy +#~ msgid "Audio Controls" +#~ msgstr "Irudi kontrolak" + +#~ msgid "start new" +#~ msgstr "Berria hasi" + +#~ msgid "restart" +#~ msgstr "berrabiarazi" + +#~ msgid "new" +#~ msgstr "berria" + +#~ msgid "cancel" +#~ msgstr "utzi" + +#~ msgid "" +#~ "launch new process or restart?.\n" +#~ "\n" +#~ msgstr "" +#~ "prozesu berria hasi edo berrabiarazi?\n" +#~ "\n" + +#~ msgid "Left" +#~ msgstr "Ezkerrera" + +#~ msgid "Right" +#~ msgstr "Eskuina" + +#~ msgid "Down" +#~ msgstr "Behera" + +#~ msgid "Up" +#~ msgstr "Gora" + +#~ msgid "set Focus" +#~ msgstr "Fokatu" + +#, fuzzy +#~ msgid "" +#~ "Guvcview version %s\n" +#~ "\n" +#~ msgstr "Gucview oharra:" + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to open device" +#~ msgstr "" +#~ "Gucview errorea:\n" +#~ "\n" +#~ "Ez da posible gailua zabaltzea" + +#~ msgid "" +#~ "Please make sure the camera is connected\n" +#~ "and that the correct driver is installed." +#~ msgstr "" +#~ "Ziurtatu kamera konektatua\n" +#~ "eta driver-a instalatuta dagoela" + +#~ msgid "" +#~ "Guvcview:\n" +#~ "\n" +#~ "UVC Extension controls" +#~ msgstr "" +#~ "Gucview:\n" +#~ "\n" +#~ "UVC luzapenaren kontrolak" + +#~ msgid "Extension controls were added to the UVC driver" +#~ msgstr "Luzapen kontrolak UVC kontroladoreari gehitu zaizkio" + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "UVC Extension controls" +#~ msgstr "" +#~ "Gucview errorea:\n" +#~ "\n" +#~ "UVC luzapenaren kontrolak" + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Can't set a valid video stream for guvcview" +#~ msgstr "" +#~ "Gucview errorea:\n" +#~ "\n" +#~ "Ezin izan da bideo-korrontea ezarri" + +#~ msgid "" +#~ "Make sure your device driver is v4l2 compliant\n" +#~ "and that it is properly installed." +#~ msgstr "" +#~ "Mesedez,egiaztatu v4I2 kontrolatzailea duzula\n" +#~ "eta instalatuta dagoela." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to start with minimum setup" +#~ msgstr "" +#~ "Gucview errorea:\n" +#~ "\n" +#~ "Ezin izan da konfigurazio minimoarekin abiarazi" + +#~ msgid "Please reconnect your camera." +#~ msgstr "Mesedez, kamera berriro konektatu" + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Couldn't query device capabilities" +#~ msgstr "" +#~ "Gucview errorea:\n" +#~ "\n" +#~ "Ezin izan da gailua ireki" + +#~ msgid "Make sure the device driver supports v4l2." +#~ msgstr "Ziurtatu gailuaren kontrolatzaileak v4I2 eusten duela" + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Read method error" +#~ msgstr "" +#~ "Gucview errorea:\n" +#~ "\n" +#~ "Irakurketametodoaren errorea" + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to allocate Buffers" +#~ msgstr "" +#~ "Gucview errorea:\n" +#~ "\n" +#~ "Ezin izan dira bufferrak esleitu" + +#~ msgid "Please try restarting your system." +#~ msgstr "Mesedez saiatu sistema berrabiarazten." + +#~ msgid "Number of Pictures to capture" +#~ msgstr "Kapturatu beharreko argazki kopurua" + +#~ msgid "Load Profile at start" +#~ msgstr "Profila kargatu hastean" + +#~ msgid "- local options" +#~ msgstr "-aukera lokalak" + +#~ msgid "Not enough free space left on disk" +#~ msgstr "Ez dago leku nahikorik diskoan" diff -Nru guvcview-1.7.3/po/gview_v4l2core/fo.po guvcview-2.0.1+ubuntu1~ppa1/po/gview_v4l2core/fo.po --- guvcview-1.7.3/po/gview_v4l2core/fo.po 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/po/gview_v4l2core/fo.po 2014-10-05 10:41:44.000000000 +0000 @@ -0,0 +1,311 @@ +# Faroese translation for guvcview +# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 +# This file is distributed under the same license as the guvcview package. +# FIRST AUTHOR , 2010. +# +msgid "" +msgstr "" +"Project-Id-Version: guvcview\n" +"Report-Msgid-Bugs-To: pj.assis@gmail.com\n" +"POT-Creation-Date: 2014-08-17 22:49+0100\n" +"PO-Revision-Date: 2010-08-05 18:25+0000\n" +"Last-Translator: Gunleif Joensen \n" +"Language-Team: Faroese \n" +"Language: fo\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2013-12-08 10:36+0000\n" +"X-Generator: Launchpad (build 16869)\n" + +#. +#. * needed only for language files (not used) +#. +#. V4L2 control strings +#: ../gview_v4l2core/v4l2_controls.c:49 +msgid "User Controls" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:50 +msgid "Brightness" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:51 +msgid "Contrast" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:52 +msgid "Hue" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:53 +msgid "Saturation" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:54 +msgid "Sharpness" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:55 +msgid "Gamma" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:56 +msgid "Backlight Compensation" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:57 +msgid "Power Line Frequency" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:58 +msgid "Hue, Automatic" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:59 +msgid "Focus, Auto" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:60 +msgid "Manual Mode" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:61 +msgid "Auto Mode" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:62 +msgid "Shutter Priority Mode" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:63 +msgid "Aperture Priority Mode" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:64 +msgid "Black Level" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:65 +msgid "White Balance, Automatic" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:66 +msgid "Do White Balance" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:67 +msgid "Red Balance" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:68 +msgid "Blue Balance" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:69 +msgid "Exposure" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:70 +msgid "Gain, Automatic" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:71 +msgid "Gain" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:72 +msgid "Horizontal Flip" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:73 +msgid "Vertical Flip" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:74 +msgid "Horizontal Center" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:75 +msgid "Vertical Center" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:76 +msgid "Chroma AGC" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:77 +msgid "Color Killer" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:78 +msgid "Color Effects" +msgstr "" + +#. CAMERA CLASS control strings +#: ../gview_v4l2core/v4l2_controls.c:81 +msgid "Camera Controls" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:82 +msgid "Auto Exposure" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:83 +msgid "Exposure Time, Absolute" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:84 +msgid "Exposure, Dynamic Framerate" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:85 +msgid "Pan, Relative" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:86 +msgid "Tilt, Relative" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:87 +msgid "Pan, Reset" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:88 +msgid "Tilt, Reset" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:89 +msgid "Pan, Absolute" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:91 +msgid "Focus, Absolute" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:92 +msgid "Focus, Relative" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:93 +msgid "Focus, Automatic" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:94 +msgid "Zoom, Absolute" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:95 +msgid "Zoom, Relative" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:96 +msgid "Zoom, Continuous" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:97 +msgid "Privacy" +msgstr "" + +#. UVC specific control strings +#: ../gview_v4l2core/v4l2_controls.c:100 +msgid "Exposure, Auto" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:101 +msgid "Exposure, Auto Priority" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:102 +msgid "Exposure (Absolute)" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:103 +msgid "White Balance Temperature, Auto" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:104 +msgid "White Balance Temperature" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:105 +msgid "White Balance Component, Auto" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:106 +msgid "White Balance Blue Component" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:107 +msgid "White Balance Red Component" +msgstr "" + +#. libwebcam specific control strings +#: ../gview_v4l2core/v4l2_controls.c:110 +msgid "Focus" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:111 +msgid "Focus (Absolute)" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:63 +msgid "Off" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:64 +msgid "On" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:65 +msgid "Blinking" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:66 +msgid "Auto" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:73 +msgid "Pan (relative)" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:86 +msgid "Tilt (relative)" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:99 +msgid "Pan Reset" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:112 +msgid "Tilt Reset" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:125 +msgid "Focus (absolute)" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:138 +msgid "LED1 Mode" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:151 +msgid "LED1 Frequency" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:164 +msgid "Disable video processing" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:177 +msgid "Raw bits per pixel" +msgstr "" + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to open device" +#~ msgstr "" +#~ "Guvcview villa:\n" +#~ "\n" +#~ "Kundi ikki lata tĂłleind upp" diff -Nru guvcview-1.7.3/po/gview_v4l2core/fr.po guvcview-2.0.1+ubuntu1~ppa1/po/gview_v4l2core/fr.po --- guvcview-1.7.3/po/gview_v4l2core/fr.po 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/po/gview_v4l2core/fr.po 2014-10-05 10:41:44.000000000 +0000 @@ -0,0 +1,864 @@ +# translation of fr.po to Portuguese +# translation of guvcview to French +# Copyright (C) 2008 Paulo Assis +# This file is distributed under the same license as the guvcview package. +# guvcview , 2008. +# Paulo Assis , 2008. +# +# +msgid "" +msgstr "" +"Project-Id-Version: fr\n" +"Report-Msgid-Bugs-To: pj.assis@gmail.com\n" +"POT-Creation-Date: 2014-08-17 22:49+0100\n" +"PO-Revision-Date: 2013-02-25 05:33+0000\n" +"Last-Translator: Paulo Assis \n" +"Language-Team: Portuguese \n" +"Language: pt\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2013-12-08 10:36+0000\n" +"X-Generator: Launchpad (build 16869)\n" + +#. +#. * needed only for language files (not used) +#. +#. V4L2 control strings +#: ../gview_v4l2core/v4l2_controls.c:49 +msgid "User Controls" +msgstr "Raccourcis claviers" + +#: ../gview_v4l2core/v4l2_controls.c:50 +msgid "Brightness" +msgstr "LuminositĂ©" + +#: ../gview_v4l2core/v4l2_controls.c:51 +msgid "Contrast" +msgstr "Contraste" + +#: ../gview_v4l2core/v4l2_controls.c:52 +msgid "Hue" +msgstr "Teinte" + +#: ../gview_v4l2core/v4l2_controls.c:53 +msgid "Saturation" +msgstr "Saturation" + +#: ../gview_v4l2core/v4l2_controls.c:54 +msgid "Sharpness" +msgstr "NettetĂ©" + +#: ../gview_v4l2core/v4l2_controls.c:55 +msgid "Gamma" +msgstr "Gamma" + +#: ../gview_v4l2core/v4l2_controls.c:56 +msgid "Backlight Compensation" +msgstr "Correction de contre-jour" + +#: ../gview_v4l2core/v4l2_controls.c:57 +msgid "Power Line Frequency" +msgstr "FrĂ©quence de rafraĂźchissement" + +#: ../gview_v4l2core/v4l2_controls.c:58 +msgid "Hue, Automatic" +msgstr "Teinte, Automatique" + +#: ../gview_v4l2core/v4l2_controls.c:59 +msgid "Focus, Auto" +msgstr "Mise au Point Automatique" + +#: ../gview_v4l2core/v4l2_controls.c:60 +msgid "Manual Mode" +msgstr "Mode Manuel" + +#: ../gview_v4l2core/v4l2_controls.c:61 +msgid "Auto Mode" +msgstr "Mode Auto" + +#: ../gview_v4l2core/v4l2_controls.c:62 +msgid "Shutter Priority Mode" +msgstr "Mode PrioritĂ© Vitesse" + +#: ../gview_v4l2core/v4l2_controls.c:63 +msgid "Aperture Priority Mode" +msgstr "Mode PrioritĂ© Ouverture" + +#: ../gview_v4l2core/v4l2_controls.c:64 +msgid "Black Level" +msgstr "Niveau de noir" + +#: ../gview_v4l2core/v4l2_controls.c:65 +msgid "White Balance, Automatic" +msgstr "Balance des blancs, Automatique" + +#: ../gview_v4l2core/v4l2_controls.c:66 +msgid "Do White Balance" +msgstr "RĂ©gler la balance des blancs" + +#: ../gview_v4l2core/v4l2_controls.c:67 +msgid "Red Balance" +msgstr "Balance des rouges" + +#: ../gview_v4l2core/v4l2_controls.c:68 +msgid "Blue Balance" +msgstr "Balance des bleus" + +#: ../gview_v4l2core/v4l2_controls.c:69 +msgid "Exposure" +msgstr "Exposition" + +#: ../gview_v4l2core/v4l2_controls.c:70 +msgid "Gain, Automatic" +msgstr "Gain, Automatique" + +#: ../gview_v4l2core/v4l2_controls.c:71 +msgid "Gain" +msgstr "Gain" + +#: ../gview_v4l2core/v4l2_controls.c:72 +msgid "Horizontal Flip" +msgstr "Miroir horizontal" + +#: ../gview_v4l2core/v4l2_controls.c:73 +msgid "Vertical Flip" +msgstr "Miroir vertical" + +#: ../gview_v4l2core/v4l2_controls.c:74 +msgid "Horizontal Center" +msgstr "CentrĂ© Horizontalement" + +#: ../gview_v4l2core/v4l2_controls.c:75 +msgid "Vertical Center" +msgstr "Centrer verticalement" + +#: ../gview_v4l2core/v4l2_controls.c:76 +msgid "Chroma AGC" +msgstr "Chroma CAG" + +#: ../gview_v4l2core/v4l2_controls.c:77 +msgid "Color Killer" +msgstr "Tueur de couleur" + +#: ../gview_v4l2core/v4l2_controls.c:78 +msgid "Color Effects" +msgstr "Effets de couleur" + +#. CAMERA CLASS control strings +#: ../gview_v4l2core/v4l2_controls.c:81 +msgid "Camera Controls" +msgstr "Commande de la camĂ©ra" + +#: ../gview_v4l2core/v4l2_controls.c:82 +msgid "Auto Exposure" +msgstr "Exposition automatique" + +#: ../gview_v4l2core/v4l2_controls.c:83 +msgid "Exposure Time, Absolute" +msgstr "Temps d'exposition, Absolu" + +#: ../gview_v4l2core/v4l2_controls.c:84 +msgid "Exposure, Dynamic Framerate" +msgstr "Exposition, Nombre d'images par seconde dynamique" + +#: ../gview_v4l2core/v4l2_controls.c:85 +msgid "Pan, Relative" +msgstr "Panoramique, Relatif" + +#: ../gview_v4l2core/v4l2_controls.c:86 +msgid "Tilt, Relative" +msgstr "Inclinaison, Relatif" + +#: ../gview_v4l2core/v4l2_controls.c:87 +msgid "Pan, Reset" +msgstr "Panoramique, Remise Ă  zĂ©ro" + +#: ../gview_v4l2core/v4l2_controls.c:88 +msgid "Tilt, Reset" +msgstr "Inclinaison, Remise Ă  zĂ©ro" + +#: ../gview_v4l2core/v4l2_controls.c:89 +msgid "Pan, Absolute" +msgstr "Panoramique, Absolu" + +#: ../gview_v4l2core/v4l2_controls.c:91 +msgid "Focus, Absolute" +msgstr "Focale, Absolu" + +#: ../gview_v4l2core/v4l2_controls.c:92 +msgid "Focus, Relative" +msgstr "Focale, Relatif" + +#: ../gview_v4l2core/v4l2_controls.c:93 +msgid "Focus, Automatic" +msgstr "Focale, Automatique" + +#: ../gview_v4l2core/v4l2_controls.c:94 +msgid "Zoom, Absolute" +msgstr "Zoom, Absolu" + +#: ../gview_v4l2core/v4l2_controls.c:95 +msgid "Zoom, Relative" +msgstr "Zoom, Relatif" + +#: ../gview_v4l2core/v4l2_controls.c:96 +msgid "Zoom, Continuous" +msgstr "Zoom, Continu" + +#: ../gview_v4l2core/v4l2_controls.c:97 +msgid "Privacy" +msgstr "ConfidentialitĂ©" + +#. UVC specific control strings +#: ../gview_v4l2core/v4l2_controls.c:100 +msgid "Exposure, Auto" +msgstr "Exposition, Auto" + +#: ../gview_v4l2core/v4l2_controls.c:101 +msgid "Exposure, Auto Priority" +msgstr "Exposition, mode automatique" + +#: ../gview_v4l2core/v4l2_controls.c:102 +msgid "Exposure (Absolute)" +msgstr "Exposition (valeur absolue)" + +#: ../gview_v4l2core/v4l2_controls.c:103 +msgid "White Balance Temperature, Auto" +msgstr "Balance des blancs, Auto" + +#: ../gview_v4l2core/v4l2_controls.c:104 +msgid "White Balance Temperature" +msgstr "Balance des blancs" + +#: ../gview_v4l2core/v4l2_controls.c:105 +msgid "White Balance Component, Auto" +msgstr "Balance des blancs par canal, Auto" + +#: ../gview_v4l2core/v4l2_controls.c:106 +msgid "White Balance Blue Component" +msgstr "Balance des Blancs, Canal Bleu" + +#: ../gview_v4l2core/v4l2_controls.c:107 +msgid "White Balance Red Component" +msgstr "Balance des Blancs, Canal Rouge" + +#. libwebcam specific control strings +#: ../gview_v4l2core/v4l2_controls.c:110 +msgid "Focus" +msgstr "Mise au point" + +#: ../gview_v4l2core/v4l2_controls.c:111 +msgid "Focus (Absolute)" +msgstr "Mise au point (Absolue)" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:63 +msgid "Off" +msgstr "DĂ©sactivĂ©" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:64 +msgid "On" +msgstr "ActivĂ©" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:65 +msgid "Blinking" +msgstr "Clignotement" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:66 +msgid "Auto" +msgstr "Automatique" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:73 +msgid "Pan (relative)" +msgstr "Rotation Horizontale (valeur relative)" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:86 +msgid "Tilt (relative)" +msgstr "Rotation Verticale (valeur relative)" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:99 +msgid "Pan Reset" +msgstr "Rotation Horizontale (remise Ă  zero)" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:112 +msgid "Tilt Reset" +msgstr "Rotation Verticale (remise Ă  zero)" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:125 +msgid "Focus (absolute)" +msgstr "Mise au Point (valeur absolue)" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:138 +msgid "LED1 Mode" +msgstr "Mode DEL1" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:151 +msgid "LED1 Frequency" +msgstr "FrĂ©quence DEL1" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:164 +msgid "Disable video processing" +msgstr "DĂ©sactiver le post-traitement vidĂ©o" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:177 +msgid "Raw bits per pixel" +msgstr "DonnĂ©es brutes par pixel" + +#, fuzzy +#~ msgid "PCM - uncompressed (float 32 bit)" +#~ msgstr "PCM - non compressĂ© (16 bit)" + +#, fuzzy +#~ msgid "Raw camera input" +#~ msgstr "Sortie CamĂ©ra :" + +#~ msgid "MJPG - compressed" +#~ msgstr "MJPG - compressĂ©" + +#~ msgid "MPEG video 1" +#~ msgstr "MPEG video 1" + +#~ msgid "FLV1 - flash video 1" +#~ msgstr "FLV1 - flash video 1" + +#~ msgid "WMV1 - win. med. video 7" +#~ msgstr "WMV1 - wind. med. video 7" + +#~ msgid "MPG2 - MPG2 format" +#~ msgstr "MPG2 - Mpeg video 2" + +#~ msgid "MS MP4 V3" +#~ msgstr "MP4 - MS Mpeg 4 V3" + +#~ msgid "MPEG4-ASP" +#~ msgstr "MPEG4-ASP" + +#~ msgid "MPEG4-AVC (H264)" +#~ msgstr "MPEG4-AVC (H264)" + +#~ msgid "Audio API:" +#~ msgstr "Audio API:" + +#~ msgid "PORTAUDIO" +#~ msgstr "PORTAUDIO" + +#~ msgid "PULSEAUDIO" +#~ msgstr "PULSEAUDIO" + +#~ msgid "Input Device:" +#~ msgstr "PĂ©riphĂ©rique d'EntrĂ©e:" + +#~ msgid "Sample Rate:" +#~ msgstr "Taux d'Ă©chantillonage:" + +#~ msgid "Dev. Default" +#~ msgstr "Valeur par DĂ©faut" + +#~ msgid "Channels:" +#~ msgstr "Canaux:" + +#~ msgid "1 - mono" +#~ msgstr "1 - mono" + +#~ msgid "2 - stereo" +#~ msgstr "2 - stĂ©rĂ©o" + +#, fuzzy +#~ msgid "---- Audio Filters ----" +#~ msgstr "---- Filtres VidĂ©o ----" + +#~ msgid " Echo" +#~ msgstr " Echo" + +#~ msgid " Reverb" +#~ msgstr " Reverb" + +#~ msgid " Fuzz" +#~ msgstr " Bruit" + +#~ msgid " WahWah" +#~ msgstr " WahWah" + +#~ msgid " Ducky" +#~ msgstr " Canard" + +#~ msgid "Stop Video (V)" +#~ msgstr "ArrĂȘter la vidĂ©o (V)" + +#~ msgid "Cap. Video (V)" +#~ msgstr "Enr. Video (V)" + +#~ msgid "Error" +#~ msgstr "Erreur" + +#, fuzzy +#~ msgid "_Cancel" +#~ msgstr "Annuler" + +#~ msgid "" +#~ "\n" +#~ "You have more than one video device installed.\n" +#~ "Do you want to try another one ?\n" +#~ msgstr "" +#~ "\n" +#~ "Vous avez plus d'un pĂ©riphĂ©rique vidĂ©o installĂ©.\n" +#~ "Voulez-vous en essayer un autre ?\n" + +#~ msgid "Device:" +#~ msgstr "PĂ©riphĂ©rique d'EntrĂ©e:" + +#~ msgid "Guvcview Video Capture" +#~ msgstr "Capture de vidĂ©o Guvcview" + +#, fuzzy +#~ msgid "Guvcview" +#~ msgstr "guvcview" + +#, fuzzy +#~ msgid "Stop Cap. (I)" +#~ msgstr "ArrĂȘt Automatique (I)" + +#~ msgid "Cap. Image (I)" +#~ msgstr "Enr. Image (I)" + +#~ msgid "Image Controls" +#~ msgstr "RĂ©glages de l'image" + +#, fuzzy +#~ msgid "Video Controls" +#~ msgstr "Raccourcis claviers" + +#, fuzzy +#~ msgid "Audio Controls" +#~ msgstr "Raccourcis claviers" + +#, fuzzy +#~ msgid "Photo file name" +#~ msgstr "Ficher Image" + +#, fuzzy +#~ msgid "Video file name" +#~ msgstr "Ficher Image" + +#~ msgid "start new" +#~ msgstr "commencez nouveau" + +#~ msgid "restart" +#~ msgstr "RedĂ©marrer l'application" + +#~ msgid "new" +#~ msgstr "nouveau" + +#~ msgid "cancel" +#~ msgstr "Annuler" + +#~ msgid "" +#~ "launch new process or restart?.\n" +#~ "\n" +#~ msgstr "" +#~ "nouveau processus ou redĂ©marrage?\n" +#~ "\n" + +#, fuzzy +#~ msgid "video codec values" +#~ msgstr "valeurs du codec audio" + +#~ msgid "" +#~ " encoder fps: \n" +#~ " (0 - use fps combobox value)" +#~ msgstr "" +#~ " encodeur ips: \n" +#~ " (0 - utilise la valeur ips de la combobox)" + +#~ msgid " monotonic pts" +#~ msgstr " Pts monotones" + +#~ msgid "bit rate: " +#~ msgstr "bit rate : " + +#~ msgid "qmax: " +#~ msgstr "qmax : " + +#~ msgid "qmin: " +#~ msgstr "qmin : " + +#~ msgid "max. qdiff: " +#~ msgstr "qdiff max.: " + +#~ msgid "dia size: " +#~ msgstr "taille dia: " + +#~ msgid "pre dia size: " +#~ msgstr "taille pre dia: " + +#~ msgid "pre me: " +#~ msgstr "pre me: " + +#~ msgid "pre cmp: " +#~ msgstr "pre cmp: " + +#~ msgid "cmp: " +#~ msgstr "cmp: " + +#~ msgid "sub cmp: " +#~ msgstr "sous cmp: " + +#~ msgid "last predictor count: " +#~ msgstr "compte du dernier indicateur: " + +#~ msgid "gop size: " +#~ msgstr "taille gop: " + +#~ msgid "qcompress: " +#~ msgstr "qcompress: " + +#~ msgid "qblur: " +#~ msgstr "qblur: " + +#~ msgid "subq: " +#~ msgstr "subq: " + +#~ msgid "framerefs: " +#~ msgstr "framerefs: " + +#~ msgid "me method: " +#~ msgstr "mĂ©thode me: " + +#~ msgid "mb decision: " +#~ msgstr "dĂ©cision mb: " + +#~ msgid "max B frames: " +#~ msgstr "nombre max d'images B: " + +#~ msgid "num threads: " +#~ msgstr "nb threads: " + +#~ msgid "audio codec values" +#~ msgstr "valeurs du codec audio" + +#~ msgid "Left" +#~ msgstr "Gauche" + +#~ msgid "Right" +#~ msgstr "Droite" + +#~ msgid "Down" +#~ msgstr "Bas" + +#~ msgid "Up" +#~ msgstr "Haut" + +#~ msgid "8 bit" +#~ msgstr "8 bit" + +#~ msgid "12 bit" +#~ msgstr "12 bit" + +#~ msgid "Auto Focus (continuous)" +#~ msgstr "Mise au Point (continu)" + +#~ msgid "set Focus" +#~ msgstr "Mise au Point" + +#, fuzzy +#~ msgid "_Apply" +#~ msgstr "Assigner" + +#~ msgid "Frame Rate:" +#~ msgstr "FrĂ©quence d'image:" + +#~ msgid "Resolution:" +#~ msgstr "RĂ©solution :" + +#~ msgid "Camera Output:" +#~ msgstr "Sortie CamĂ©ra :" + +#~ msgid "---- Video Filters ----" +#~ msgstr "---- Filtres VidĂ©o ----" + +#~ msgid " Mirror" +#~ msgstr " Miroir" + +#~ msgid " Invert" +#~ msgstr " Inverser" + +#~ msgid " Negative" +#~ msgstr " NĂ©gatif" + +#~ msgid " Mono" +#~ msgstr " Monochrome" + +#~ msgid " Pieces" +#~ msgstr " Morceaux" + +#~ msgid " Particles" +#~ msgstr " Particules" + +#, fuzzy +#~ msgid "Print version" +#~ msgstr "Affiche la version" + +#, fuzzy +#~ msgid "Set device name (def: /dev/video0)" +#~ msgstr "PĂ©riphĂ©rique video (dĂ©faut: /dev/video0)" + +#, fuzzy +#~ msgid "Set capture method [read | mmap (def)]" +#~ msgstr "MĂ©thode de capture (1-mmap (par dĂ©faut) 2-read)" + +#, fuzzy +#~ msgid "" +#~ "Guvcview version %s\n" +#~ "\n" +#~ msgstr "Avertissement Guvcview :" + +#~ msgid "guvcview" +#~ msgstr "guvcview" + +#~ msgid "GTK UVC video viewer" +#~ msgstr "Logiciel GTK de visualisation de vidĂ©o UVC" + +#~ msgid "A video viewer and capturer for the linux uvc driver" +#~ msgstr "" +#~ "Logiciel de visualisation et de capture vidĂ©o pour le pilote uvc Linux" + +#~ msgid "MPEG2 - (lavc)" +#~ msgstr "MPEG2 - (lavc)" + +#~ msgid "MP3 - (lavc)" +#~ msgstr "MP3 - (lavc)" + +#~ msgid "Dolby AC3 - (lavc)" +#~ msgstr "Dolby AC3 - (lavc)" + +#~ msgid "ACC Low - (faac)" +#~ msgstr "AAC Low - (faac)" + +#~ msgid "Audio" +#~ msgstr "Audio" + +#~ msgid " Sound" +#~ msgstr " Son" + +#~ msgid " Show VU meter" +#~ msgstr " Afficher le VU-mĂštre" + +#~ msgid "---- Audio Effects ----" +#~ msgstr "---- Effets Audio ----" + +#~ msgid "Save File" +#~ msgstr "Enregistrer le Fichier" + +#~ msgid "codec values" +#~ msgstr "valeurs codec" + +#~ msgid "Cap. Video" +#~ msgstr "Enr. Video" + +#~ msgid "GUVCViewer Controls" +#~ msgstr "RĂ©glages GUVCViewer" + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to open device" +#~ msgstr "" +#~ "Erreur de Guvcview :\n" +#~ "\n" +#~ "Incapable d'accĂ©der au pĂ©riphĂ©rique" + +#~ msgid "" +#~ "Please make sure the camera is connected\n" +#~ "and that the correct driver is installed." +#~ msgstr "" +#~ "Svp, assurez-vous que le pĂ©riphĂ©rique est connectĂ©\n" +#~ "et que le pilote est installĂ©." + +#~ msgid "" +#~ "Guvcview:\n" +#~ "\n" +#~ "UVC Extension controls" +#~ msgstr "" +#~ "Guvcview :\n" +#~ "\n" +#~ "ContrĂŽles de l'extension UVC" + +#~ msgid "Extension controls were added to the UVC driver" +#~ msgstr "Les contrĂŽles de l'extension ont Ă©tĂ© ajoutĂ©s au pilote UVC" + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "UVC Extension controls" +#~ msgstr "" +#~ "Erreur de Guvcview :\n" +#~ "\n" +#~ "ContrĂŽles de l'extension UVC" + +#~ msgid "" +#~ "An error occurred while adding extension\n" +#~ "controls to the UVC driver\n" +#~ "Make sure you run guvcview as root (or sudo)." +#~ msgstr "" +#~ "Une erreur est survenue lors de l'ajout \n" +#~ "des contrĂŽles d'extension du pilote UVC.\n" +#~ "Assurez-vous d'avoir lancĂ© guvcview \n" +#~ "en tant qu'utilisateur root (ou sudo)." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Can't set a valid video stream for guvcview" +#~ msgstr "" +#~ "Erreur de Gubcview :\n" +#~ "\n" +#~ "Incapable de gĂ©rer le flux vidĂ©o" + +#~ msgid "" +#~ "Make sure your device driver is v4l2 compliant\n" +#~ "and that it is properly installed." +#~ msgstr "" +#~ "VĂ©rifiez que vous avez un pilote compatible v4l2\n" +#~ "et qu'il est correctement installĂ©." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to start with minimum setup" +#~ msgstr "" +#~ "Erreur de Guvcview :\n" +#~ "\n" +#~ "Incapable de dĂ©marrer avec des rĂ©glages minimum" + +#~ msgid "Please reconnect your camera." +#~ msgstr "Veuillez rebrancher votre pĂ©riphĂ©rique." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Couldn't query device capabilities" +#~ msgstr "" +#~ "Erreur de Guvcview:\n" +#~ "\n" +#~ "Incapable d'accĂ©der au pĂ©riphĂ©rique" + +#~ msgid "Make sure the device driver supports v4l2." +#~ msgstr "Veuillez vĂ©rifier que le driver du matĂ©riel supporte V4L2." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Read method error" +#~ msgstr "" +#~ "Erreur de Gubvcviewr :\n" +#~ "\n" +#~ "erreur de lecteure" + +#~ msgid "Please try mmap instead (--capture_method=1)." +#~ msgstr "Veuillez essayer mmap (--capture_method=1) Ă  la place." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to allocate Buffers" +#~ msgstr "" +#~ "Erreur de Guvcview:\n" +#~ "\n" +#~ "Incapable d'assigner des tampons mĂ©moires" + +#~ msgid "Please try restarting your system." +#~ msgstr "Veuillez essayer de redĂ©marrer votre systĂšme." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to create Video Thread" +#~ msgstr "" +#~ "Erreur de Gubcview :\n" +#~ "\n" +#~ "Incapable de crĂ©er le flux vidĂ©o" + +#~ msgid "Please report it to http://developer.berlios.de/bugs/?group_id=8179" +#~ msgstr "" +#~ "Veuillez le reporter Ă  http://developer.berlios.de/bugs/?group_id=8179" + +#~ msgid "Displays debug information" +#~ msgstr "Afficher information extra" + +#~ msgid "Exit after adding UVC extension controls (needs root/sudo)" +#~ msgstr "" +#~ "Quitter aprĂšs avoir ajouter les contrĂŽles d'extension (nĂ©cessite root/" +#~ "sudo)" + +#~ msgid "Don't stream video (image controls only)" +#~ msgstr "Ne pas activer le flux vidĂ©o (seulement contrĂŽle d'image)" + +#~ msgid "Don't display a GUI" +#~ msgstr "Ne pas afficher d'interface graphique" + +#~ msgid "Configuration file" +#~ msgstr "Fichier de configuration" + +#~ msgid "Hardware accelaration (enable(1) | disable(0))" +#~ msgstr "Accel. matĂ©rielle (activer(1) | desactiver(0))" + +#~ msgid "" +#~ "Pixel format(mjpg|jpeg|yuyv|yvyu|uyvy|yyuv|yu12|yv12|nv12|nv21|nv16|nv61|" +#~ "y41p|grey|y10b|y16 |s501|s505|s508|gbrg|grbg|ba81|rggb|bgr3|rgb3)" +#~ msgstr "" +#~ "Format matriciel(mjpg|jpeg|yuyv|yvyu|uyvy|yyuv|yu12|yv12|nv12|nv21|nv16|" +#~ "nv61|y41p|grey|y10b|y16 |s501|s505|s508|gbrg|grbg|ba81|rggb|bgr3|rgb3)" + +#~ msgid "Frame size, default: 640x480" +#~ msgstr "RĂ©solution, dĂ©faut: 640x480" + +#~ msgid "Image capture interval in seconds" +#~ msgstr "Interval d'enr. des images (secondes)" + +#~ msgid "Number of Pictures to capture" +#~ msgstr "Nombre d'images Ă  enregistrer" + +#~ msgid "Video File name (capture from start)" +#~ msgstr "Fichier video (enr. de dĂ©but)" + +#~ msgid "Video capture time (in seconds)" +#~ msgstr "DurĂ©e de l'enr. video (secondes)" + +#~ msgid "Exits guvcview after closing video" +#~ msgstr "Quitte guvcview aprĂšs avoir fermĂ© la vidĂ©o" + +#~ msgid "Number of initial frames to skip" +#~ msgstr "Nombre d'images initiales Ă  sauter" + +#~ msgid "Show FPS value (enable(1) | disable (0))" +#~ msgstr "Afficher img/sec (activer(1) | desactiver(0))" + +#~ msgid "Load Profile at start" +#~ msgstr "Charger rĂ©glages personnalisĂ©s" + +#~ msgid "- local options" +#~ msgstr "- options locales" + +#~ msgid "Cap. Image" +#~ msgstr "Enr. Image" + +#~ msgid "Not enough free space left on disk" +#~ msgstr "Il ne reste pas assez d'espace libre sur le disque" + +#~ msgid "YUY2 - uncomp YUV" +#~ msgstr "YUY2 - YUV non compressĂ©" + +#~ msgid "RGB - uncomp BMP" +#~ msgstr "RVB - BMP non compressĂ©" + +#~ msgid "AVI - avi format" +#~ msgstr "AVI - format avi" + +#~ msgid "MKV - Matroska format" +#~ msgstr "MKV - format Matroska" + +#~ msgid " Show" +#~ msgstr " Afficher" + +#~ msgid "Quality:" +#~ msgstr "QualitĂ©:" diff -Nru guvcview-1.7.3/po/gview_v4l2core/gl.po guvcview-2.0.1+ubuntu1~ppa1/po/gview_v4l2core/gl.po --- guvcview-1.7.3/po/gview_v4l2core/gl.po 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/po/gview_v4l2core/gl.po 2014-10-05 10:41:44.000000000 +0000 @@ -0,0 +1,561 @@ +# Galician translation for guvcview +# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 +# This file is distributed under the same license as the guvcview package. +# +# FIRST AUTHOR , 2010. +# Dario Villar Veres , 2010. +msgid "" +msgstr "" +"Project-Id-Version: guvcview\n" +"Report-Msgid-Bugs-To: pj.assis@gmail.com\n" +"POT-Creation-Date: 2014-08-17 22:49+0100\n" +"PO-Revision-Date: 2013-02-25 05:34+0000\n" +"Last-Translator: Dario \n" +"Language-Team: Galician \n" +"Language: gl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2013-12-08 10:36+0000\n" +"X-Generator: Launchpad (build 16869)\n" + +#. +#. * needed only for language files (not used) +#. +#. V4L2 control strings +#: ../gview_v4l2core/v4l2_controls.c:49 +msgid "User Controls" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:50 +msgid "Brightness" +msgstr "Brillo" + +#: ../gview_v4l2core/v4l2_controls.c:51 +msgid "Contrast" +msgstr "Contraste" + +#: ../gview_v4l2core/v4l2_controls.c:52 +msgid "Hue" +msgstr "Ton" + +#: ../gview_v4l2core/v4l2_controls.c:53 +msgid "Saturation" +msgstr "SaturaciĂłn" + +#: ../gview_v4l2core/v4l2_controls.c:54 +msgid "Sharpness" +msgstr "FocalizaciĂłn" + +#: ../gview_v4l2core/v4l2_controls.c:55 +msgid "Gamma" +msgstr "Gamma" + +#: ../gview_v4l2core/v4l2_controls.c:56 +msgid "Backlight Compensation" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:57 +msgid "Power Line Frequency" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:58 +msgid "Hue, Automatic" +msgstr "Matiz, AutomĂĄtico" + +#: ../gview_v4l2core/v4l2_controls.c:59 +msgid "Focus, Auto" +msgstr "Foco, AutomĂĄtico" + +#: ../gview_v4l2core/v4l2_controls.c:60 +msgid "Manual Mode" +msgstr "Modo Manual" + +#: ../gview_v4l2core/v4l2_controls.c:61 +msgid "Auto Mode" +msgstr "Modo AutomĂĄtico" + +#: ../gview_v4l2core/v4l2_controls.c:62 +msgid "Shutter Priority Mode" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:63 +msgid "Aperture Priority Mode" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:64 +msgid "Black Level" +msgstr "Nivel de negro" + +#: ../gview_v4l2core/v4l2_controls.c:65 +msgid "White Balance, Automatic" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:66 +msgid "Do White Balance" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:67 +msgid "Red Balance" +msgstr "Balance vermello" + +#: ../gview_v4l2core/v4l2_controls.c:68 +msgid "Blue Balance" +msgstr "Balance azul" + +#: ../gview_v4l2core/v4l2_controls.c:69 +msgid "Exposure" +msgstr "ExposiciĂłn" + +#: ../gview_v4l2core/v4l2_controls.c:70 +msgid "Gain, Automatic" +msgstr "Ganancia, AutomĂĄtica" + +#: ../gview_v4l2core/v4l2_controls.c:71 +msgid "Gain" +msgstr "Ganancia" + +#: ../gview_v4l2core/v4l2_controls.c:72 +msgid "Horizontal Flip" +msgstr "Xiro horizontal" + +#: ../gview_v4l2core/v4l2_controls.c:73 +msgid "Vertical Flip" +msgstr "Xiro vertical" + +#: ../gview_v4l2core/v4l2_controls.c:74 +msgid "Horizontal Center" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:75 +msgid "Vertical Center" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:76 +msgid "Chroma AGC" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:77 +msgid "Color Killer" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:78 +msgid "Color Effects" +msgstr "Efectos de cor" + +#. CAMERA CLASS control strings +#: ../gview_v4l2core/v4l2_controls.c:81 +msgid "Camera Controls" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:82 +msgid "Auto Exposure" +msgstr "ExposiciĂłn automĂĄtica" + +#: ../gview_v4l2core/v4l2_controls.c:83 +msgid "Exposure Time, Absolute" +msgstr "Tempo de exposiciĂłn, Absoluto" + +#: ../gview_v4l2core/v4l2_controls.c:84 +msgid "Exposure, Dynamic Framerate" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:85 +msgid "Pan, Relative" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:86 +msgid "Tilt, Relative" +msgstr "InclinaciĂłn, relativo" + +#: ../gview_v4l2core/v4l2_controls.c:87 +msgid "Pan, Reset" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:88 +msgid "Tilt, Reset" +msgstr "InclinaciĂłn, Restabelecer" + +#: ../gview_v4l2core/v4l2_controls.c:89 +msgid "Pan, Absolute" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:91 +msgid "Focus, Absolute" +msgstr "Foco, absoluto" + +#: ../gview_v4l2core/v4l2_controls.c:92 +msgid "Focus, Relative" +msgstr "Foco, relativo" + +#: ../gview_v4l2core/v4l2_controls.c:93 +msgid "Focus, Automatic" +msgstr "Foco, automĂĄtico" + +#: ../gview_v4l2core/v4l2_controls.c:94 +msgid "Zoom, Absolute" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:95 +msgid "Zoom, Relative" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:96 +msgid "Zoom, Continuous" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:97 +msgid "Privacy" +msgstr "Privacidade" + +#. UVC specific control strings +#: ../gview_v4l2core/v4l2_controls.c:100 +msgid "Exposure, Auto" +msgstr "ExposiciĂłn, AutomĂĄtico" + +#: ../gview_v4l2core/v4l2_controls.c:101 +msgid "Exposure, Auto Priority" +msgstr "ExposiciĂłn, Prioridade automĂĄtica" + +#: ../gview_v4l2core/v4l2_controls.c:102 +msgid "Exposure (Absolute)" +msgstr "ExposiciĂłn (absoluto)" + +#: ../gview_v4l2core/v4l2_controls.c:103 +msgid "White Balance Temperature, Auto" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:104 +msgid "White Balance Temperature" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:105 +msgid "White Balance Component, Auto" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:106 +msgid "White Balance Blue Component" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:107 +msgid "White Balance Red Component" +msgstr "" + +#. libwebcam specific control strings +#: ../gview_v4l2core/v4l2_controls.c:110 +msgid "Focus" +msgstr "Foco" + +#: ../gview_v4l2core/v4l2_controls.c:111 +msgid "Focus (Absolute)" +msgstr "Foco(absoluto)" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:63 +msgid "Off" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:64 +msgid "On" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:65 +msgid "Blinking" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:66 +#, fuzzy +msgid "Auto" +msgstr "Modo AutomĂĄtico" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:73 +msgid "Pan (relative)" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:86 +msgid "Tilt (relative)" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:99 +msgid "Pan Reset" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:112 +msgid "Tilt Reset" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:125 +msgid "Focus (absolute)" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:138 +msgid "LED1 Mode" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:151 +msgid "LED1 Frequency" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:164 +msgid "Disable video processing" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:177 +msgid "Raw bits per pixel" +msgstr "" + +#, fuzzy +#~ msgid "Raw camera input" +#~ msgstr "SaĂ­da da cĂĄmara:" + +#~ msgid "MS MP4 V3" +#~ msgstr "MS MP4 V3" + +#~ msgid "MPEG4-ASP" +#~ msgstr "MPEG4-ASP" + +#~ msgid "MPEG4-AVC (H264)" +#~ msgstr "MPEG4-AVC (H264)" + +#~ msgid "PULSEAUDIO" +#~ msgstr "PULSEAUDIO" + +#~ msgid "Input Device:" +#~ msgstr "Dispositivo de entrada:" + +#~ msgid "Sample Rate:" +#~ msgstr "Taxa de mostraxe:" + +#~ msgid "Channels:" +#~ msgstr "Canles:" + +#~ msgid "1 - mono" +#~ msgstr "1 - mono" + +#~ msgid "2 - stereo" +#~ msgstr "2 - stereo" + +#~ msgid " Echo" +#~ msgstr " Echo" + +#~ msgid " Reverb" +#~ msgstr " Reverberar" + +#~ msgid " Fuzz" +#~ msgstr " Difuso" + +#~ msgid "Stop Video (V)" +#~ msgstr "Deter vĂ­deo (V)" + +#~ msgid "Cap. Video (V)" +#~ msgstr "Cap. Video (V)" + +#~ msgid "Error" +#~ msgstr "Erro" + +#, fuzzy +#~ msgid "_Cancel" +#~ msgstr "cancelar" + +#~ msgid "Device:" +#~ msgstr "Dispositivo:" + +#~ msgid "Guvcview Video Capture" +#~ msgstr "Capturador de vĂ­deo GUVCView" + +#~ msgid "Cap. Image (I)" +#~ msgstr "Cap. Imaxe (I)" + +#, fuzzy +#~ msgid "Video Controls" +#~ msgstr "Controles de GUVCViewer" + +#, fuzzy +#~ msgid "Audio Controls" +#~ msgstr "Controles de GUVCViewer" + +#, fuzzy +#~ msgid "Photo file name" +#~ msgstr "Nome da imaxe" + +#, fuzzy +#~ msgid "Video file name" +#~ msgstr "Nome da imaxe" + +#~ msgid "restart" +#~ msgstr "reiniciar" + +#~ msgid "new" +#~ msgstr "novo" + +#~ msgid "cancel" +#~ msgstr "cancelar" + +#~ msgid "bit rate: " +#~ msgstr "Taxa de bits: " + +#~ msgid "qmax: " +#~ msgstr "qmax: " + +#~ msgid "qmin: " +#~ msgstr "qmin: " + +#~ msgid "max. qdiff: " +#~ msgstr "max. qdiff: " + +#~ msgid "pre me: " +#~ msgstr "pre me: " + +#~ msgid "pre cmp: " +#~ msgstr "pre cmp: " + +#~ msgid "cmp: " +#~ msgstr "cmp: " + +#~ msgid "sub cmp: " +#~ msgstr "sub cmp: " + +#~ msgid "gop size: " +#~ msgstr "Tamaño do gop: " + +#~ msgid "Left" +#~ msgstr "Esquerda" + +#~ msgid "Right" +#~ msgstr "Dereita" + +#~ msgid "Down" +#~ msgstr "Abaixo" + +#~ msgid "Up" +#~ msgstr "Arriba" + +#~ msgid "Auto Focus (continuous)" +#~ msgstr "Foco automĂĄtico(continuo)" + +#~ msgid "set Focus" +#~ msgstr "Definir foco" + +#, fuzzy +#~ msgid "_Apply" +#~ msgstr "Aplicar" + +#~ msgid "Frame Rate:" +#~ msgstr "Taxa de fotogramas:" + +#~ msgid "Resolution:" +#~ msgstr "Resolution:" + +#~ msgid "Camera Output:" +#~ msgstr "SaĂ­da da cĂĄmara:" + +#~ msgid " Mirror" +#~ msgstr " Espello" + +#~ msgid " Invert" +#~ msgstr " Inverter" + +#~ msgid " Negative" +#~ msgstr " Negativo" + +#~ msgid " Mono" +#~ msgstr " Mono" + +#~ msgid " Particles" +#~ msgstr " PartĂ­culas" + +#, fuzzy +#~ msgid "Print version" +#~ msgstr "Mostrar a versiĂłn" + +#~ msgid "Audio" +#~ msgstr "Son" + +#~ msgid " Sound" +#~ msgstr " Son" + +#~ msgid "Save File" +#~ msgstr "Gardar o ficheiro" + +#~ msgid "Cap. Video" +#~ msgstr "Cap. Video" + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to open device" +#~ msgstr "" +#~ "Erro de GUVCView:\n" +#~ "\n" +#~ "Non foi posĂ­bel conectar a cĂĄmara" + +#~ msgid "" +#~ "Please make sure the camera is connected\n" +#~ "and that the correct driver is installed." +#~ msgstr "" +#~ "AsegĂșrese de que a sĂșa cĂĄmara estĂĄ conectada\n" +#~ "e que o controlador estĂĄ correctamente instalada." + +#~ msgid "Please reconnect your camera." +#~ msgstr "Conecte de novo a sĂșa cĂĄmara." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Couldn't query device capabilities" +#~ msgstr "" +#~ "Erro de GUVCView:\n" +#~ "\n" +#~ "Non se poideron consultar as capacidades do dispositivo" + +#~ msgid "Make sure the device driver supports v4l2." +#~ msgstr "AsegĂșrese de que o controlador do dispositivo soporta v4l2." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Read method error" +#~ msgstr "" +#~ "Erro de GUVCView:\n" +#~ "\n" +#~ "Erro no mĂ©todo de lectura" + +#~ msgid "Please try mmap instead (--capture_method=1)." +#~ msgstr "Probe mmap no seu lugar (--capture_method=1)." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to allocate Buffers" +#~ msgstr "" +#~ "Erro de GUVCView:\n" +#~ "\n" +#~ "Non foi posĂ­bel asignarlle memoria aos bĂșferes" + +#~ msgid "Please try restarting your system." +#~ msgstr "Probe reiniciando o seu sistema." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to create Video Thread" +#~ msgstr "" +#~ "Erro en GUVCView:\n" +#~ "\n" +#~ "Non foi posĂ­ble crear un fĂ­o de execuciĂłn de vĂ­deo" + +#~ msgid "Please report it to http://developer.berlios.de/bugs/?group_id=8179" +#~ msgstr "" +#~ "Por favor, informe do erro a http://developer.berlios.de/bugs/?" +#~ "group_id=8179" + +#~ msgid "Frame size, default: 640x480" +#~ msgstr "Tamaño predeterminado do marco:640x480" + +#~ msgid "Cap. Image" +#~ msgstr "Cap. Imaxe" + +#~ msgid " Show" +#~ msgstr " Mostrar" + +#~ msgid "Quality:" +#~ msgstr "Calidade:" diff -Nru guvcview-1.7.3/po/gview_v4l2core/he.po guvcview-2.0.1+ubuntu1~ppa1/po/gview_v4l2core/he.po --- guvcview-1.7.3/po/gview_v4l2core/he.po 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/po/gview_v4l2core/he.po 2014-10-05 10:41:44.000000000 +0000 @@ -0,0 +1,605 @@ +# Hebrew translation for guvcview +# Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 +# This file is distributed under the same license as the guvcview package. +# FIRST AUTHOR , 2009. +# +msgid "" +msgstr "" +"Project-Id-Version: guvcview\n" +"Report-Msgid-Bugs-To: pj.assis@gmail.com\n" +"POT-Creation-Date: 2014-08-17 22:49+0100\n" +"PO-Revision-Date: 2013-02-25 05:36+0000\n" +"Last-Translator: Paulo Assis \n" +"Language-Team: Hebrew \n" +"Language: he\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2013-12-08 10:36+0000\n" +"X-Generator: Launchpad (build 16869)\n" + +#. +#. * needed only for language files (not used) +#. +#. V4L2 control strings +#: ../gview_v4l2core/v4l2_controls.c:49 +msgid "User Controls" +msgstr "Ś€Ś§Ś“Ś™ ŚžŚ©ŚȘŚžŚ©" + +#: ../gview_v4l2core/v4l2_controls.c:50 +msgid "Brightness" +msgstr "Ś‘Ś”Ś™ŚšŚ•ŚȘ" + +#: ../gview_v4l2core/v4l2_controls.c:51 +msgid "Contrast" +msgstr "Ś Ś™Ś’Ś•Ś“Ś™Ś•ŚȘ" + +#: ../gview_v4l2core/v4l2_controls.c:52 +msgid "Hue" +msgstr "Ś’Ś•Ś•ŚŸ" + +#: ../gview_v4l2core/v4l2_controls.c:53 +msgid "Saturation" +msgstr "ŚšŚ•Ś•Ś™Ś”" + +#: ../gview_v4l2core/v4l2_controls.c:54 +msgid "Sharpness" +msgstr "Ś—Ś“Ś•ŚȘ" + +#: ../gview_v4l2core/v4l2_controls.c:55 +msgid "Gamma" +msgstr "Ś’ŚŚžŚ”" + +#: ../gview_v4l2core/v4l2_controls.c:56 +msgid "Backlight Compensation" +msgstr "Ś€Ś™ŚŠŚ•Ś™ ŚŚ•Śš ŚŚ—Ś•ŚšŚ™" + +#: ../gview_v4l2core/v4l2_controls.c:57 +msgid "Power Line Frequency" +msgstr "ŚȘŚ“Śš Ś—Ś©ŚžŚœ" + +#: ../gview_v4l2core/v4l2_controls.c:58 +msgid "Hue, Automatic" +msgstr "Ś’Ś•Ś•ŚŸ, ŚŚ•Ś˜Ś•ŚžŚ˜Ś™" + +#: ../gview_v4l2core/v4l2_controls.c:59 +msgid "Focus, Auto" +msgstr "ŚžŚ™Ś§Ś•Ś“, ŚŚ•Ś˜Ś•ŚžŚ˜Ś™" + +#: ../gview_v4l2core/v4l2_controls.c:60 +msgid "Manual Mode" +msgstr "ŚžŚŠŚ‘ Ś™Ś“Ś Ś™" + +#: ../gview_v4l2core/v4l2_controls.c:61 +msgid "Auto Mode" +msgstr "ŚžŚŠŚ‘ ŚŚ•Ś˜Ś•ŚžŚ˜Ś™" + +#: ../gview_v4l2core/v4l2_controls.c:62 +msgid "Shutter Priority Mode" +msgstr "ŚžŚŠŚ‘ ŚąŚ“Ś™Ś€Ś•ŚȘ ŚŠŚžŚŠŚ" + +#: ../gview_v4l2core/v4l2_controls.c:63 +msgid "Aperture Priority Mode" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:64 +msgid "Black Level" +msgstr "ŚšŚžŚȘ Ś©Ś—Ś•Śš" + +#: ../gview_v4l2core/v4l2_controls.c:65 +msgid "White Balance, Automatic" +msgstr "ŚŚ™Ś–Ś•ŚŸ ŚœŚ•Ś‘ŚŸ, ŚŚ•Ś˜Ś•ŚžŚ˜Ś™" + +#: ../gview_v4l2core/v4l2_controls.c:66 +msgid "Do White Balance" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:67 +msgid "Red Balance" +msgstr "ŚŚ™Ś–Ś•ŚŸ Ś”ŚŚ“Ś•Ś" + +#: ../gview_v4l2core/v4l2_controls.c:68 +msgid "Blue Balance" +msgstr "ŚŚ™Ś–Ś•ŚŸ Ś”Ś›Ś—Ś•Śœ" + +#: ../gview_v4l2core/v4l2_controls.c:69 +msgid "Exposure" +msgstr "Ś—Ś©Ś™Ś€Ś”" + +#: ../gview_v4l2core/v4l2_controls.c:70 +msgid "Gain, Automatic" +msgstr "ŚžŚšŚ•Ś•Ś—, ŚŚ•Ś˜Ś•ŚžŚ˜Ś™" + +#: ../gview_v4l2core/v4l2_controls.c:71 +msgid "Gain" +msgstr "Ś”Ś™Ś©Ś’" + +#: ../gview_v4l2core/v4l2_controls.c:72 +msgid "Horizontal Flip" +msgstr "Ś”Ś™Ś€Ś•Śš ŚŚ•Ś€Ś§Ś™" + +#: ../gview_v4l2core/v4l2_controls.c:73 +msgid "Vertical Flip" +msgstr "Ś”Ś™Ś€Ś•Śš ŚŚ Ś›Ś™" + +#: ../gview_v4l2core/v4l2_controls.c:74 +msgid "Horizontal Center" +msgstr "ŚžŚšŚ›Ś– ŚŚ•Ś€Ś§Ś™" + +#: ../gview_v4l2core/v4l2_controls.c:75 +msgid "Vertical Center" +msgstr "ŚžŚšŚ›Ś– ŚŚ Ś›Ś™" + +#: ../gview_v4l2core/v4l2_controls.c:76 +msgid "Chroma AGC" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:77 +msgid "Color Killer" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:78 +msgid "Color Effects" +msgstr "" + +#. CAMERA CLASS control strings +#: ../gview_v4l2core/v4l2_controls.c:81 +msgid "Camera Controls" +msgstr "Ś€Ś§Ś“Ś™ ŚžŚŠŚœŚžŚ”" + +#: ../gview_v4l2core/v4l2_controls.c:82 +msgid "Auto Exposure" +msgstr "Ś—Ś©Ś™Ś€Ś” ŚŚ•Ś˜Ś•ŚžŚ˜Ś™ŚȘ" + +#: ../gview_v4l2core/v4l2_controls.c:83 +msgid "Exposure Time, Absolute" +msgstr "Ś–ŚžŚŸ Ś—Ś©Ś™Ś€Ś”, ŚžŚ•Ś—ŚœŚ˜" + +#: ../gview_v4l2core/v4l2_controls.c:84 +msgid "Exposure, Dynamic Framerate" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:85 +msgid "Pan, Relative" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:86 +msgid "Tilt, Relative" +msgstr "Ś Ś˜Ś™Ś™Ś”, Ś™Ś—ŚĄŚ™" + +#: ../gview_v4l2core/v4l2_controls.c:87 +msgid "Pan, Reset" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:88 +msgid "Tilt, Reset" +msgstr "Ś Ś˜Ś™Ś™Ś”, ŚŚ€ŚĄ" + +#: ../gview_v4l2core/v4l2_controls.c:89 +msgid "Pan, Absolute" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:91 +msgid "Focus, Absolute" +msgstr "ŚžŚ™Ś§Ś•Ś“, ŚžŚ•Ś—ŚœŚ˜" + +#: ../gview_v4l2core/v4l2_controls.c:92 +msgid "Focus, Relative" +msgstr "ŚžŚ™Ś§Ś•Ś“, Ś™Ś—ŚĄŚ™" + +#: ../gview_v4l2core/v4l2_controls.c:93 +msgid "Focus, Automatic" +msgstr "ŚžŚ™Ś§Ś•Ś“, ŚŚ•Ś˜Ś•ŚžŚ˜Ś™" + +#: ../gview_v4l2core/v4l2_controls.c:94 +msgid "Zoom, Absolute" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:95 +msgid "Zoom, Relative" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:96 +msgid "Zoom, Continuous" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:97 +msgid "Privacy" +msgstr "Ś€ŚšŚ˜Ś™Ś•ŚȘ" + +#. UVC specific control strings +#: ../gview_v4l2core/v4l2_controls.c:100 +msgid "Exposure, Auto" +msgstr "Ś—Ś©Ś™Ś€Ś”, ŚŚ•Ś˜Ś•ŚžŚ˜Ś™" + +#: ../gview_v4l2core/v4l2_controls.c:101 +msgid "Exposure, Auto Priority" +msgstr "Ś—Ś©Ś™Ś€Ś”, ŚąŚ“Ś™Ś€Ś•ŚȘ ŚŚ•Ś˜Ś•ŚžŚ˜Ś™ŚȘ" + +#: ../gview_v4l2core/v4l2_controls.c:102 +msgid "Exposure (Absolute)" +msgstr "Ś—Ś©Ś™Ś€Ś” (ŚžŚ•Ś—ŚœŚ˜ŚȘ)" + +#: ../gview_v4l2core/v4l2_controls.c:103 +msgid "White Balance Temperature, Auto" +msgstr "Ś˜ŚžŚ€ŚšŚ˜Ś•ŚšŚȘ ŚŚ™Ś–Ś•ŚŸ Ś”ŚœŚ‘ŚŸ, ŚŚ•Ś˜Ś•ŚžŚ˜Ś™ŚȘ" + +#: ../gview_v4l2core/v4l2_controls.c:104 +msgid "White Balance Temperature" +msgstr "Ś˜Ś€ŚžŚšŚ˜Ś•ŚšŚȘ ŚŚ™Ś–Ś•ŚŸ Ś”ŚœŚ‘ŚŸ" + +#: ../gview_v4l2core/v4l2_controls.c:105 +msgid "White Balance Component, Auto" +msgstr "ŚšŚ›Ś™Ś‘ ŚŚ™Ś–Ś•ŚŸ Ś”ŚœŚ‘ŚŸ, ŚŚ•Ś˜Ś•ŚžŚ˜Ś™" + +#: ../gview_v4l2core/v4l2_controls.c:106 +msgid "White Balance Blue Component" +msgstr "ŚšŚ›Ś™Ś‘ ŚŚ™Ś–Ś•ŚŸ Ś”ŚœŚ‘ŚŸ Ś”Ś›Ś—Ś•Śœ" + +#: ../gview_v4l2core/v4l2_controls.c:107 +msgid "White Balance Red Component" +msgstr "ŚšŚ›Ś™Ś‘ ŚŚ™Ś–Ś•ŚŸ Ś”ŚœŚ‘ŚŸ Ś”ŚŚ“Ś•Ś" + +#. libwebcam specific control strings +#: ../gview_v4l2core/v4l2_controls.c:110 +msgid "Focus" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:111 +msgid "Focus (Absolute)" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:63 +msgid "Off" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:64 +msgid "On" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:65 +msgid "Blinking" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:66 +#, fuzzy +msgid "Auto" +msgstr "ŚžŚŠŚ‘ ŚŚ•Ś˜Ś•ŚžŚ˜Ś™" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:73 +msgid "Pan (relative)" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:86 +msgid "Tilt (relative)" +msgstr "Ś”Ś˜Ś™Ś™Ś” (Ś™Ś—ŚĄŚ™)" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:99 +msgid "Pan Reset" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:112 +msgid "Tilt Reset" +msgstr "ŚŚ™Ś€Ś•ŚĄ Ś”Ś˜Ś™Ś™Ś”" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:125 +msgid "Focus (absolute)" +msgstr "ŚžŚ™Ś§Ś•Ś“ (ŚžŚ•Ś—ŚœŚ˜)" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:138 +msgid "LED1 Mode" +msgstr "ŚžŚŠŚ‘ LED1" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:151 +msgid "LED1 Frequency" +msgstr "ŚȘŚ“Śš LED1" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:164 +msgid "Disable video processing" +msgstr "Ś‘Ś˜Śœ ŚąŚ™Ś‘Ś•Ś“ Ś•Ś™Ś“ŚŚ•" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:177 +msgid "Raw bits per pixel" +msgstr "" + +#, fuzzy +#~ msgid "Raw camera input" +#~ msgstr "Ś€ŚœŚ˜ ŚžŚŠŚœŚžŚ”:" + +#~ msgid "MJPG - compressed" +#~ msgstr "MJPG - ŚžŚ§Ś•Ś‘Ś„" + +#~ msgid "MPEG video 1" +#~ msgstr "MPEG Ś•Ś™Ś“ŚŚ• 1" + +#~ msgid "FLV1 - flash video 1" +#~ msgstr "FLV1 - Ś•Ś™Ś“ŚŚ• Ś€ŚœŚŚ© 1" + +#~ msgid "WMV1 - win. med. video 7" +#~ msgstr "WMV1 - Ś•Ś™Ś Ś“Ś•ŚĄ ŚžŚ“Ś™Ś” Ś•Ś™Ś“ŚŚ• 7" + +#~ msgid "MPG2 - MPG2 format" +#~ msgstr "MPG2 - Ś€Ś•ŚšŚžŚ˜ MPG2" + +#~ msgid "MS MP4 V3" +#~ msgstr "MS MP4 V3" + +#~ msgid "PULSEAUDIO" +#~ msgstr "PULSEAUDIO" + +#~ msgid "Sample Rate:" +#~ msgstr "Ś§ŚŠŚ‘ Ś“Ś’Ś™ŚžŚ”" + +#~ msgid "Channels:" +#~ msgstr "ŚąŚšŚ•ŚŠŚ™Ś:" + +#~ msgid "1 - mono" +#~ msgstr "1 - ŚžŚ•Ś Ś•" + +#~ msgid "2 - stereo" +#~ msgstr "2 - ŚĄŚ˜ŚšŚ™ŚŚ•" + +#, fuzzy +#~ msgid "---- Audio Filters ----" +#~ msgstr "--- ŚžŚĄŚ Ś Ś™ Ś•Ś™Ś“ŚŚ• ---" + +#~ msgid " Echo" +#~ msgstr " Ś”Ś“" + +#, fuzzy +#~ msgid "_Cancel" +#~ msgstr "Ś‘Ś˜Śœ" + +#~ msgid "Device:" +#~ msgstr "Ś”ŚȘŚ§ŚŸ:" + +#~ msgid "Image Controls" +#~ msgstr "Ś€Ś§Ś“Ś™ ŚȘŚžŚ•Ś Ś”" + +#, fuzzy +#~ msgid "Video Controls" +#~ msgstr "Ś€Ś§Ś“Ś™ ŚžŚ©ŚȘŚžŚ©" + +#, fuzzy +#~ msgid "Audio Controls" +#~ msgstr "Ś€Ś§Ś“Ś™ ŚžŚ©ŚȘŚžŚ©" + +#, fuzzy +#~ msgid "Photo file name" +#~ msgstr "Ś©Ś Ś§Ś•Ś‘Ś„ ŚȘŚžŚ•Ś Ś”" + +#, fuzzy +#~ msgid "Video file name" +#~ msgstr "Ś©Ś Ś§Ś•Ś‘Ś„ ŚȘŚžŚ•Ś Ś”" + +#~ msgid "start new" +#~ msgstr "Ś”Ś€ŚąŚœ ŚąŚ›Ś©Ś™Ś•" + +#~ msgid "restart" +#~ msgstr "Ś”Ś€ŚąŚœ ŚžŚ—Ś“Ś©" + +#~ msgid "new" +#~ msgstr "Ś—Ś“Ś©" + +#~ msgid "cancel" +#~ msgstr "Ś‘Ś˜Śœ" + +#~ msgid "" +#~ "launch new process or restart?.\n" +#~ "\n" +#~ msgstr "" +#~ "Ś”Ś€ŚąŚœ ŚȘŚ”ŚœŚ™Śš Ś—Ś“Ś© ŚŚ• Ś”Ś€ŚąŚœ ŚžŚ—Ś“Ś©?.\n" +#~ "\n" + +#, fuzzy +#~ msgid "video codec values" +#~ msgstr "ŚąŚšŚ›Ś™ ŚžŚ§Ś•Ś“Ś“" + +#~ msgid "bit rate: " +#~ msgstr "Ś§ŚŠŚ‘ ŚĄŚ™Ś‘Ś™Ś•ŚȘ: " + +#~ msgid "Left" +#~ msgstr "Ś©ŚžŚŚœ" + +#~ msgid "Right" +#~ msgstr "Ś™ŚžŚ™ŚŸ" + +#~ msgid "Down" +#~ msgstr "ŚœŚžŚ˜Ś”" + +#~ msgid "Up" +#~ msgstr "ŚœŚžŚąŚœŚ”" + +#~ msgid "Auto Focus (continuous)" +#~ msgstr "ŚžŚ™Ś§Ś•Ś“ ŚŚ•Ś˜Ś•ŚžŚ˜Ś™ (ŚžŚȘŚžŚ©Śš)" + +#~ msgid "set Focus" +#~ msgstr "Ś”Ś’Ś“Śš ŚžŚ™Ś§Ś•Ś“" + +#, fuzzy +#~ msgid "_Apply" +#~ msgstr "Ś”Ś—Śœ" + +#~ msgid "Resolution:" +#~ msgstr "ŚšŚ–Ś•ŚœŚ•ŚŠŚ™Ś”:" + +#~ msgid "Camera Output:" +#~ msgstr "Ś€ŚœŚ˜ ŚžŚŠŚœŚžŚ”:" + +#~ msgid "---- Video Filters ----" +#~ msgstr "--- ŚžŚĄŚ Ś Ś™ Ś•Ś™Ś“ŚŚ• ---" + +#~ msgid " Mirror" +#~ msgstr " ŚžŚšŚŚ”" + +#~ msgid " Invert" +#~ msgstr " Ś”Ś€Ś•Śš" + +#~ msgid " Mono" +#~ msgstr " ŚžŚ•Ś Ś•" + +#~ msgid " Pieces" +#~ msgstr " Ś—ŚœŚ§Ś™Ś" + +#, fuzzy +#~ msgid "Print version" +#~ msgstr "ŚžŚ“Ś€Ś™ŚĄ Ś’ŚšŚĄŚ”" + +#, fuzzy +#~ msgid "Set device name (def: /dev/video0)" +#~ msgstr "Ś”ŚȘŚ§ŚŸ Ś•Ś™Ś“ŚŚ• ŚœŚ©Ś™ŚžŚ•Ś© [Ś‘ŚšŚ™ŚšŚȘ ŚžŚ—Ś“Śœ:/dev/video0]" + +#~ msgid "Audio" +#~ msgstr "Ś©ŚžŚą" + +#~ msgid " Sound" +#~ msgstr " Ś§Ś•Śœ" + +#~ msgid "---- Audio Effects ----" +#~ msgstr "--- ŚŚ€Ś§Ś˜Ś™Ś Ś§Ś•ŚœŚ™Ś™Ś ---" + +#~ msgid "Save File" +#~ msgstr "Ś©ŚžŚ•Śš Ś§Ś•Ś‘Ś„" + +#~ msgid "Cap. Video" +#~ msgstr "ŚœŚ›Ś“ Ś•Ś™Ś“ŚŚ•" + +#~ msgid "GUVCViewer Controls" +#~ msgstr "Ś€Ś§Ś“Ś™ GUVCViewer" + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to open device" +#~ msgstr "" +#~ "Ś©Ś’Ś™ŚŚ” Ś‘Guvcview:\n" +#~ "\n" +#~ "ŚœŚ Ś™Ś›Ś•Śœ ŚœŚ€ŚȘŚ•Ś— Ś”ŚȘŚ§ŚŸ" + +#~ msgid "" +#~ "Please make sure the camera is connected\n" +#~ "and that the correct driver is installed." +#~ msgstr "" +#~ "ŚŚ Ś Ś•Ś•Ś“Ś Ś©Ś”ŚžŚŠŚœŚžŚ” ŚžŚ—Ś•Ś‘ŚšŚȘ\n" +#~ "Ś•Ś©ŚžŚ Ś”Śœ Ś”Ś”ŚȘŚ§ŚŸ Ś”Ś Ś›Ś•ŚŸ ŚžŚ•ŚȘŚ§ŚŸ." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Can't set a valid video stream for guvcview" +#~ msgstr "" +#~ "Ś©Ś’Ś™ŚŚ” Ś‘Guvcview:\n" +#~ "\n" +#~ "ŚœŚ Ś™Ś›Ś•Śœ ŚœŚ”Ś’Ś“Ś™Śš Ś–ŚšŚ™ŚžŚȘ Ś•Ś™Ś“ŚŚ• ŚȘŚ§Ś€Ś” Śœguvcview" + +#~ msgid "" +#~ "Make sure your device driver is v4l2 compliant\n" +#~ "and that it is properly installed." +#~ msgstr "" +#~ "Ś•Ś•Ś“Ś Ś©ŚžŚ Ś”Śœ Ś”Ś”ŚȘŚ§ŚŸ Ś©ŚœŚš ŚȘŚ•ŚŚ v4l2\n" +#~ "Ś•Ś©Ś”Ś•Ś ŚžŚ•ŚȘŚ§ŚŸ Ś›Ś”ŚœŚ›Ś”." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to start with minimum setup" +#~ msgstr "" +#~ "Ś©Ś’Ś™ŚŚ” Ś‘Guvcview:\n" +#~ "\n" +#~ "ŚœŚ Ś Ś™ŚȘŚŸ ŚœŚ”ŚȘŚ—Ś™Śœ ŚąŚ Ś”ŚȘŚ§Ś Ś” ŚžŚ™Ś Ś™ŚžŚŚœŚ™ŚȘ" + +#~ msgid "Please reconnect your camera." +#~ msgstr "ŚŚ Ś Ś—Ś‘Śš ŚžŚ—Ś“Ś© ŚŚȘ Ś”ŚžŚŠŚœŚžŚ”." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Couldn't query device capabilities" +#~ msgstr "" +#~ "Ś©Ś’Ś™ŚŚ” Ś‘Guvcview:\n" +#~ "\n" +#~ "ŚœŚ Ś Ś™ŚȘŚŸ ŚœŚ‘Ś“Ś•Ś§ ŚŚȘ Ś™Ś›Ś•ŚœŚ•ŚȘ Ś”Ś”ŚȘŚ§ŚŸ" + +#~ msgid "Make sure the device driver supports v4l2." +#~ msgstr "Ś•Ś•Ś“Ś Ś©ŚžŚ Ś”Śœ Ś”Ś”ŚȘŚ§ŚŸ Ś©ŚœŚš ŚȘŚ•ŚŚ v4l2." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Read method error" +#~ msgstr "" +#~ "Ś©Ś’Ś™ŚŚ” Ś‘Guvcview:\n" +#~ "\n" +#~ "Ś§ŚšŚ Ś©Ś’Ś™ŚŚȘ Ś©Ś™Ś˜Ś”" + +#~ msgid "Please try mmap instead (--capture_method=1)." +#~ msgstr "Ś ŚĄŚ” ŚŚȘ mmap Ś‘ŚžŚ§Ś•Ś (--capture_method=1)." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to allocate Buffers" +#~ msgstr "" +#~ "Ś©Ś’Ś™ŚŚ” Ś‘Guvcview:\n" +#~ "\n" +#~ "ŚœŚ Ś Ś™ŚȘŚŸ ŚœŚ”Ś§ŚŠŚ•ŚȘ Ś—Ś•ŚŠŚ„" + +#~ msgid "Please try restarting your system." +#~ msgstr "Ś ŚĄŚ” ŚœŚŚȘŚ—Śœ ŚŚȘ Ś”ŚžŚąŚšŚ›ŚȘ." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to create Video Thread" +#~ msgstr "" +#~ "Ś©Ś’Ś™ŚŚ” Ś‘Guvcview:\n" +#~ "\n" +#~ "ŚœŚ Ś™Ś›Ś•Śœ ŚœŚ™ŚŠŚ•Śš Ś©ŚšŚ©Ś•Śš Ś•Ś™Ś“ŚŚ•" + +#~ msgid "Please report it to http://developer.berlios.de/bugs/?group_id=8179" +#~ msgstr "Ś“Ś•Ś•Ś— ŚąŚœ Ś›Śš Śœhttp://developer.berlios.de/bugs/?group_id=8179" + +#~ msgid "Configuration file" +#~ msgstr "Ś§Ś•Ś‘Ś„ Ś”Ś’Ś“ŚšŚ•ŚȘ" + +#~ msgid "Hardware accelaration (enable(1) | disable(0))" +#~ msgstr "Ś”ŚŚŠŚȘ Ś—Ś•ŚžŚšŚ” (Ś€ŚąŚ™Śœ(1) | ŚžŚ Ś•Ś˜ŚšŚœ(0))" + +#~ msgid "Frame size, default: 640x480" +#~ msgstr "Ś’Ś•Ś“Śœ Ś€ŚšŚ™Ś™Ś, Ś‘ŚšŚ™ŚšŚȘ ŚžŚ—Ś“Śœ: 640x480" + +#~ msgid "Number of Pictures to capture" +#~ msgstr "ŚžŚĄŚ€Śš ŚȘŚžŚ•Ś Ś•ŚȘ ŚœŚœŚ›Ś™Ś“Ś”" + +#~ msgid "Video File name (capture from start)" +#~ msgstr "Ś©Ś Ś§Ś•Ś‘Ś„ Ś•Ś™Ś“ŚŚ• (ŚœŚ•Ś›Ś“ ŚžŚ”Ś”ŚȘŚ—ŚœŚ”)" + +#~ msgid "Video capture time (in seconds)" +#~ msgstr "Ś–ŚžŚŸ ŚœŚ›Ś™Ś“ŚȘ Ś•Ś™Ś“ŚŚ• (Ś‘Ś©Ś Ś™Ś•ŚȘ)" + +#~ msgid "Exits guvcview after closing video" +#~ msgstr "Ś™Ś•ŚŠŚ Śžguvcview ŚŚ—ŚšŚ™ ŚĄŚ’Ś™ŚšŚȘ Ś•Ś™Ś“ŚŚ•" + +#~ msgid "Show FPS value (enable(1) | disable (0))" +#~ msgstr "ŚžŚšŚŚ” ŚąŚšŚš Ś€ŚšŚ™Ś™ŚžŚ™Ś ŚœŚ©Ś Ś™Ś” (FPS) (Ś€ŚąŚ™Śœ(1) | ŚžŚ Ś•Ś˜ŚšŚœ(2))" + +#~ msgid "Load Profile at start" +#~ msgstr "Ś˜ŚąŚŸ Ś€ŚšŚ•Ś€Ś™Śœ Ś‘Ś”Ś€ŚąŚœŚ”" + +#~ msgid "- local options" +#~ msgstr "- ŚŚ€Ś©ŚšŚ•Ś™Ś•ŚȘ ŚžŚ§Ś•ŚžŚ™Ś•ŚȘ" + +#~ msgid "Cap. Image" +#~ msgstr "ŚœŚ›Ś“ ŚȘŚžŚ•Ś Ś”" + +#~ msgid "YUY2 - uncomp YUV" +#~ msgstr "YUY2 - YUV ŚœŚ ŚžŚ§Ś•Ś‘Ś„" + +#~ msgid "RGB - uncomp BMP" +#~ msgstr "RGB - BMP ŚœŚ ŚžŚ§Ś•Ś‘Ś„" + +#~ msgid " Show" +#~ msgstr " Ś”ŚŠŚ’" + +#~ msgid "Quality:" +#~ msgstr "ŚŚ™Ś›Ś•ŚȘ:" diff -Nru guvcview-1.7.3/po/gview_v4l2core/hr.po guvcview-2.0.1+ubuntu1~ppa1/po/gview_v4l2core/hr.po --- guvcview-1.7.3/po/gview_v4l2core/hr.po 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/po/gview_v4l2core/hr.po 2014-10-05 10:41:44.000000000 +0000 @@ -0,0 +1,673 @@ +# Croatian translation for guvcview +# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 +# This file is distributed under the same license as the guvcview package. +# FIRST AUTHOR , 2010. +# +msgid "" +msgstr "" +"Project-Id-Version: guvcview\n" +"Report-Msgid-Bugs-To: pj.assis@gmail.com\n" +"POT-Creation-Date: 2014-08-17 22:49+0100\n" +"PO-Revision-Date: 2013-09-27 09:35+0000\n" +"Last-Translator: gogo \n" +"Language-Team: Croatian \n" +"Language: hr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2013-12-08 10:36+0000\n" +"X-Generator: Launchpad (build 16869)\n" + +#. +#. * needed only for language files (not used) +#. +#. V4L2 control strings +#: ../gview_v4l2core/v4l2_controls.c:49 +msgid "User Controls" +msgstr "Korisničke Kontrole" + +#: ../gview_v4l2core/v4l2_controls.c:50 +msgid "Brightness" +msgstr "Osvjetljenje" + +#: ../gview_v4l2core/v4l2_controls.c:51 +msgid "Contrast" +msgstr "Kontrast" + +#: ../gview_v4l2core/v4l2_controls.c:52 +msgid "Hue" +msgstr "Nijansa" + +#: ../gview_v4l2core/v4l2_controls.c:53 +msgid "Saturation" +msgstr "Zasićenje" + +#: ../gview_v4l2core/v4l2_controls.c:54 +msgid "Sharpness" +msgstr "OĆĄtrina" + +#: ../gview_v4l2core/v4l2_controls.c:55 +msgid "Gamma" +msgstr "Gama" + +#: ../gview_v4l2core/v4l2_controls.c:56 +msgid "Backlight Compensation" +msgstr "Ispravke pozadinskog osvjetljenja" + +#: ../gview_v4l2core/v4l2_controls.c:57 +msgid "Power Line Frequency" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:58 +msgid "Hue, Automatic" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:59 +msgid "Focus, Auto" +msgstr "Fokusiranje, Automatsko" + +#: ../gview_v4l2core/v4l2_controls.c:60 +msgid "Manual Mode" +msgstr "Ručni Način" + +#: ../gview_v4l2core/v4l2_controls.c:61 +msgid "Auto Mode" +msgstr "Automatski Način" + +#: ../gview_v4l2core/v4l2_controls.c:62 +msgid "Shutter Priority Mode" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:63 +msgid "Aperture Priority Mode" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:64 +msgid "Black Level" +msgstr "Razina Crne boje" + +#: ../gview_v4l2core/v4l2_controls.c:65 +msgid "White Balance, Automatic" +msgstr "RavnoteĆŸa Bijele, Automatski" + +#: ../gview_v4l2core/v4l2_controls.c:66 +msgid "Do White Balance" +msgstr "Uredi RavnoteĆŸu Bijele" + +#: ../gview_v4l2core/v4l2_controls.c:67 +msgid "Red Balance" +msgstr "RavnoteĆŸa Crvene" + +#: ../gview_v4l2core/v4l2_controls.c:68 +msgid "Blue Balance" +msgstr "RavnoteĆŸa Plave" + +#: ../gview_v4l2core/v4l2_controls.c:69 +msgid "Exposure" +msgstr "IzloĆŸenost" + +#: ../gview_v4l2core/v4l2_controls.c:70 +msgid "Gain, Automatic" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:71 +msgid "Gain" +msgstr "Dobit" + +#: ../gview_v4l2core/v4l2_controls.c:72 +msgid "Horizontal Flip" +msgstr "Vodoravno Okretanje" + +#: ../gview_v4l2core/v4l2_controls.c:73 +msgid "Vertical Flip" +msgstr "Okomito Okretanje" + +#: ../gview_v4l2core/v4l2_controls.c:74 +msgid "Horizontal Center" +msgstr "Vodoravno Centriraj" + +#: ../gview_v4l2core/v4l2_controls.c:75 +msgid "Vertical Center" +msgstr "Okomito Centriraj" + +#: ../gview_v4l2core/v4l2_controls.c:76 +msgid "Chroma AGC" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:77 +msgid "Color Killer" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:78 +msgid "Color Effects" +msgstr "Efekti boje" + +#. CAMERA CLASS control strings +#: ../gview_v4l2core/v4l2_controls.c:81 +msgid "Camera Controls" +msgstr "Kontrole Kamere" + +#: ../gview_v4l2core/v4l2_controls.c:82 +msgid "Auto Exposure" +msgstr "Automatska IzloĆŸenost" + +#: ../gview_v4l2core/v4l2_controls.c:83 +msgid "Exposure Time, Absolute" +msgstr "Vrijeme IzloĆŸenosti, Apsolutno" + +#: ../gview_v4l2core/v4l2_controls.c:84 +msgid "Exposure, Dynamic Framerate" +msgstr "IzloĆŸenost, Broj Slika" + +#: ../gview_v4l2core/v4l2_controls.c:85 +msgid "Pan, Relative" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:86 +msgid "Tilt, Relative" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:87 +msgid "Pan, Reset" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:88 +msgid "Tilt, Reset" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:89 +msgid "Pan, Absolute" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:91 +msgid "Focus, Absolute" +msgstr "Fokusiranje, Apsolutno" + +#: ../gview_v4l2core/v4l2_controls.c:92 +msgid "Focus, Relative" +msgstr "Fokusiranje, Relativno" + +#: ../gview_v4l2core/v4l2_controls.c:93 +msgid "Focus, Automatic" +msgstr "Fokusiranje, Automatsko" + +#: ../gview_v4l2core/v4l2_controls.c:94 +msgid "Zoom, Absolute" +msgstr "PribliĆŸavanje, Apsolutno" + +#: ../gview_v4l2core/v4l2_controls.c:95 +msgid "Zoom, Relative" +msgstr "PribliĆŸavanje, Relativno" + +#: ../gview_v4l2core/v4l2_controls.c:96 +msgid "Zoom, Continuous" +msgstr "PribliĆŸavanje, Neprestano" + +#: ../gview_v4l2core/v4l2_controls.c:97 +msgid "Privacy" +msgstr "Privatnost" + +#. UVC specific control strings +#: ../gview_v4l2core/v4l2_controls.c:100 +msgid "Exposure, Auto" +msgstr "IzloĆŸenost, Automatsko" + +#: ../gview_v4l2core/v4l2_controls.c:101 +msgid "Exposure, Auto Priority" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:102 +msgid "Exposure (Absolute)" +msgstr "IzloĆŸenost (Apsolutna)" + +#: ../gview_v4l2core/v4l2_controls.c:103 +msgid "White Balance Temperature, Auto" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:104 +msgid "White Balance Temperature" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:105 +msgid "White Balance Component, Auto" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:106 +msgid "White Balance Blue Component" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:107 +msgid "White Balance Red Component" +msgstr "" + +#. libwebcam specific control strings +#: ../gview_v4l2core/v4l2_controls.c:110 +msgid "Focus" +msgstr "Fokusiranje" + +#: ../gview_v4l2core/v4l2_controls.c:111 +msgid "Focus (Absolute)" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:63 +msgid "Off" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:64 +msgid "On" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:65 +msgid "Blinking" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:66 +#, fuzzy +msgid "Auto" +msgstr "Automatski Način" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:73 +msgid "Pan (relative)" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:86 +msgid "Tilt (relative)" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:99 +msgid "Pan Reset" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:112 +msgid "Tilt Reset" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:125 +msgid "Focus (absolute)" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:138 +msgid "LED1 Mode" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:151 +msgid "LED1 Frequency" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:164 +msgid "Disable video processing" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:177 +msgid "Raw bits per pixel" +msgstr "" + +#~ msgid "MPEG video 1" +#~ msgstr "MPEG video 1" + +#~ msgid "FLV1 - flash video 1" +#~ msgstr "FLV1 - flash video 1" + +#~ msgid "WMV1 - win. med. video 7" +#~ msgstr "WMV1 - win. med. video 7" + +#~ msgid "MPG2 - MPG2 format" +#~ msgstr "MPG2 - MPG2 format" + +#~ msgid "MS MP4 V3" +#~ msgstr "MS MP4 V3" + +#~ msgid "MPEG4-ASP" +#~ msgstr "MPEG4-ASP" + +#~ msgid "MPEG4-AVC (H264)" +#~ msgstr "MPEG4-AVC (H264)" + +#~ msgid "Input Device:" +#~ msgstr "Ulazni uređaj:" + +#~ msgid "Dev. Default" +#~ msgstr "Zadane Postavke Uređaja" + +#~ msgid "Channels:" +#~ msgstr "Kanali:" + +#~ msgid "1 - mono" +#~ msgstr "1 - mono" + +#~ msgid "2 - stereo" +#~ msgstr "2 - stereo" + +#, fuzzy +#~ msgid "---- Audio Filters ----" +#~ msgstr "---- Video Filteri ----" + +#~ msgid " Echo" +#~ msgstr " Jeka" + +#~ msgid " Reverb" +#~ msgstr " Odjek" + +#~ msgid " Fuzz" +#~ msgstr " Mutno" + +#~ msgid " Ducky" +#~ msgstr " Patka" + +#~ msgid "Stop Video (V)" +#~ msgstr "Zaustavi Video (V)" + +#~ msgid "Cap. Video (V)" +#~ msgstr "Snimi Video (V)" + +#~ msgid "Error" +#~ msgstr "GrjeĆĄka" + +#, fuzzy +#~ msgid "_Cancel" +#~ msgstr "odustani" + +#~ msgid "" +#~ "\n" +#~ "You have more than one video device installed.\n" +#~ "Do you want to try another one ?\n" +#~ msgstr "" +#~ "\n" +#~ "Imate viĆĄe uređaja instalirano.\n" +#~ "Ćœelite li isprobati ostale?\n" + +#~ msgid "Device:" +#~ msgstr "Uređaj:" + +#~ msgid "Guvcview Video Capture" +#~ msgstr "Guvcview Snimanje Videa" + +#, fuzzy +#~ msgid "Guvcview" +#~ msgstr "Guvcview Upozorenje" + +#, fuzzy +#~ msgid "Stop Cap. (I)" +#~ msgstr "Zaustavi Automatsko (I)" + +#~ msgid "Cap. Image (I)" +#~ msgstr "Snimi Sliku (I)" + +#~ msgid "Image Controls" +#~ msgstr "Kontrole Slike" + +#, fuzzy +#~ msgid "Video Controls" +#~ msgstr "Korisničke Kontrole" + +#, fuzzy +#~ msgid "Audio Controls" +#~ msgstr "Korisničke Kontrole" + +#, fuzzy +#~ msgid "Photo file name" +#~ msgstr "Ime Slikovne Datoteke" + +#, fuzzy +#~ msgid "Video file name" +#~ msgstr "Ime Slikovne Datoteke" + +#~ msgid "start new" +#~ msgstr "pokreni novo" + +#~ msgid "restart" +#~ msgstr "ponovo pokreni" + +#~ msgid "new" +#~ msgstr "novo" + +#~ msgid "cancel" +#~ msgstr "odustani" + +#~ msgid "" +#~ "launch new process or restart?.\n" +#~ "\n" +#~ msgstr "" +#~ "upalite novi proces ili ponovno pokrenite?.\n" +#~ "\n" + +#, fuzzy +#~ msgid "video codec values" +#~ msgstr "vrijednosti audio codeca" + +#~ msgid "audio codec values" +#~ msgstr "vrijednosti audio codeca" + +#~ msgid "Left" +#~ msgstr "Lijevo" + +#~ msgid "Right" +#~ msgstr "Desno:" + +#~ msgid "Down" +#~ msgstr "Dolje" + +#~ msgid "Up" +#~ msgstr "Gore" + +#~ msgid "Auto Focus (continuous)" +#~ msgstr "Automatski Focus (neprekidno)" + +#~ msgid "set Focus" +#~ msgstr "postavi fokusiranje" + +#, fuzzy +#~ msgid "_Apply" +#~ msgstr "Primjeni" + +#~ msgid "Frame Rate:" +#~ msgstr "Broj Slika:" + +#~ msgid "Resolution:" +#~ msgstr "Razlučivost:" + +#~ msgid "---- Video Filters ----" +#~ msgstr "---- Video Filteri ----" + +#~ msgid " Mirror" +#~ msgstr " Zrcalo" + +#~ msgid " Invert" +#~ msgstr " Izokrenuto" + +#~ msgid " Negative" +#~ msgstr " Negativ" + +#~ msgid " Mono" +#~ msgstr " Mono" + +#~ msgid " Pieces" +#~ msgstr " Komadići" + +#~ msgid " Particles" +#~ msgstr " Čestice" + +#, fuzzy +#~ msgid "Print version" +#~ msgstr "Isprintaj verziju" + +#, fuzzy +#~ msgid "Set device name (def: /dev/video0)" +#~ msgstr "Video uređaj rabljen [zadani: /dev/video0]" + +#, fuzzy +#~ msgid "" +#~ "Guvcview version %s\n" +#~ "\n" +#~ msgstr "Guvcview Upozorenje" + +#~ msgid "Audio" +#~ msgstr "Audio" + +#~ msgid " Sound" +#~ msgstr " Zvuk" + +#~ msgid "---- Audio Effects ----" +#~ msgstr "---- Audio Efekti ----" + +#~ msgid "Save File" +#~ msgstr "Spremi Datoteku" + +#~ msgid "Cap. Video" +#~ msgstr "Snimi Video" + +#~ msgid "GUVCViewer Controls" +#~ msgstr "GUVCViewer Kontrole" + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to open device" +#~ msgstr "" +#~ "Guvcview grjeĆĄka:\n" +#~ "\n" +#~ "Nije moguče pokrenuti uređaj" + +#~ msgid "" +#~ "Please make sure the camera is connected\n" +#~ "and that the correct driver is installed." +#~ msgstr "" +#~ "Molim provjerite dali je kamera spojena\n" +#~ "i dali je instaliran ispravan driver." + +#~ msgid "" +#~ "Guvcview:\n" +#~ "\n" +#~ "UVC Extension controls" +#~ msgstr "" +#~ "Guvcview:\n" +#~ "\n" +#~ "UVC kontrole Ekstenzije" + +#~ msgid "Extension controls were added to the UVC driver" +#~ msgstr "Kontrole Ekstenzije su dodane UVC driveru" + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "UVC Extension controls" +#~ msgstr "" +#~ "Guvcview:\n" +#~ "\n" +#~ "UVC kontrole Ekstenzije" + +#~ msgid "" +#~ "An error occurred while adding extension\n" +#~ "controls to the UVC driver\n" +#~ "Make sure you run guvcview as root (or sudo)." +#~ msgstr "" +#~ "Dogodila se grjeĆĄka prilikom dodavanja kontrola\n" +#~ "ekstenzije UVC driveru\n" +#~ "Pokrenite guvcview kao root (ili sudo)." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Can't set a valid video stream for guvcview" +#~ msgstr "" +#~ "Guvcview grjeĆĄka:\n" +#~ "\n" +#~ "Nije moguče postaviti vrijedeći video stream za guvcview" + +#~ msgid "" +#~ "Make sure your device driver is v4l2 compliant\n" +#~ "and that it is properly installed." +#~ msgstr "" +#~ "Provjerite dali vaĆĄ video driver ima podrĆĄku za v4l2\n" +#~ "i pogledajte dali je ispravno instaliran." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to start with minimum setup" +#~ msgstr "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Nije moguče pokretanje s minimalnim postavkama" + +#~ msgid "Please reconnect your camera." +#~ msgstr "Molim ponovno spajanje kamere." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Couldn't query device capabilities" +#~ msgstr "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Sposobnost uređaja nije čitljiva" + +#~ msgid "Make sure the device driver supports v4l2." +#~ msgstr "Provjerite da vaĆĄ driver ima podrĆĄku za v4l2." + +#~ msgid "Please try restarting your system." +#~ msgstr "Probajte ponovno pokrenuti vaĆĄ sustav." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to create Video Thread" +#~ msgstr "" +#~ "Guvcview grjeĆĄka:\n" +#~ "\n" +#~ "Nije moguče pokrenuti uređaj" + +#~ msgid "Please report it to http://developer.berlios.de/bugs/?group_id=8179" +#~ msgstr "Molimo prijavite na http://developer.berlios.de/bugs/?group_id=8179" + +#~ msgid "Exit after adding UVC extension controls (needs root/sudo)" +#~ msgstr "" +#~ "Izlaz nakon dodavanja UVC ekstenzivnih kontrola (potreban root/sudo)" + +#~ msgid "Configuration file" +#~ msgstr "Datoteka Postavki" + +#~ msgid "Hardware accelaration (enable(1) | disable(0))" +#~ msgstr "Hardversko ubrzanje (omoguči(1) | onemoguči(0))" + +#~ msgid "Frame size, default: 640x480" +#~ msgstr "Veličina slike, zadana: 640x480" + +#~ msgid "Image capture interval in seconds" +#~ msgstr "Interval slikanja u sekundama" + +#~ msgid "Number of Pictures to capture" +#~ msgstr "Broj Slika za snimiti" + +#~ msgid "Video File name (capture from start)" +#~ msgstr "Ime Video Datoteke (snimka od početka)" + +#~ msgid "Video capture time (in seconds)" +#~ msgstr "Vrijeme snimanja videa (u sekundama)" + +#~ msgid "Exits guvcview after closing video" +#~ msgstr "Izlaz iz guvcviewa nakon zatvaranja videa" + +#~ msgid "Number of initial frames to skip" +#~ msgstr "Broj preskočenih početnih slika" + +#~ msgid "Show FPS value (enable(1) | disable (0))" +#~ msgstr "Prikaz FPS broja (omoguči(1) | onemoguči (0))" + +#~ msgid "Load Profile at start" +#~ msgstr "Učitaj Profil pri pokretanju" + +#~ msgid "- local options" +#~ msgstr "- lokalne opcije" + +#~ msgid "Cap. Image" +#~ msgstr "Snimi Sliku" + +#~ msgid "Not enough free space left on disk" +#~ msgstr "Nema dovoljno slobodnog prostora na disku" + +#~ msgid " Show" +#~ msgstr " PrikaĆŸi" + +#~ msgid "Quality:" +#~ msgstr "Kvaliteta:" diff -Nru guvcview-1.7.3/po/gview_v4l2core/it.po guvcview-2.0.1+ubuntu1~ppa1/po/gview_v4l2core/it.po --- guvcview-1.7.3/po/gview_v4l2core/it.po 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/po/gview_v4l2core/it.po 2014-10-05 10:41:44.000000000 +0000 @@ -0,0 +1,949 @@ +# Translation of guvcview to the Italian language +# Copyright (C) 2008 Paulo Assis +# This file is distributed under the same license as the guvcview package. +# Giovanni Scafora , 2013. +# +# +msgid "" +msgstr "" +"Project-Id-Version: guvcview\n" +"Report-Msgid-Bugs-To: pj.assis@gmail.com\n" +"POT-Creation-Date: 2014-08-17 22:49+0100\n" +"PO-Revision-Date: 2013-03-07 02:31+0000\n" +"Last-Translator: Giovanni Scafora \n" +"Language-Team: Arch Linux Italian Team \n" +"Language: it\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2013-12-08 10:36+0000\n" +"X-Generator: Launchpad (build 16869)\n" + +#. +#. * needed only for language files (not used) +#. +#. V4L2 control strings +#: ../gview_v4l2core/v4l2_controls.c:49 +msgid "User Controls" +msgstr "Controlli dell'utente" + +#: ../gview_v4l2core/v4l2_controls.c:50 +msgid "Brightness" +msgstr "LuminositĂ " + +#: ../gview_v4l2core/v4l2_controls.c:51 +msgid "Contrast" +msgstr "Contrasto" + +#: ../gview_v4l2core/v4l2_controls.c:52 +msgid "Hue" +msgstr "Colore" + +#: ../gview_v4l2core/v4l2_controls.c:53 +msgid "Saturation" +msgstr "Saturazione" + +#: ../gview_v4l2core/v4l2_controls.c:54 +msgid "Sharpness" +msgstr "Nitidezza" + +#: ../gview_v4l2core/v4l2_controls.c:55 +msgid "Gamma" +msgstr "Gamma" + +#: ../gview_v4l2core/v4l2_controls.c:56 +msgid "Backlight Compensation" +msgstr "Compensazione del controluce" + +#: ../gview_v4l2core/v4l2_controls.c:57 +msgid "Power Line Frequency" +msgstr "Frequenza di aggiornamento" + +#: ../gview_v4l2core/v4l2_controls.c:58 +msgid "Hue, Automatic" +msgstr "Colore automatico" + +#: ../gview_v4l2core/v4l2_controls.c:59 +msgid "Focus, Auto" +msgstr "Messa a fuoco automatica" + +#: ../gview_v4l2core/v4l2_controls.c:60 +msgid "Manual Mode" +msgstr "ModalitĂ  manuale" + +#: ../gview_v4l2core/v4l2_controls.c:61 +msgid "Auto Mode" +msgstr "ModalitĂ  automatica" + +#: ../gview_v4l2core/v4l2_controls.c:62 +msgid "Shutter Priority Mode" +msgstr "ModalitĂ  di prioritĂ  dell'otturatore" + +#: ../gview_v4l2core/v4l2_controls.c:63 +msgid "Aperture Priority Mode" +msgstr "ModalitĂ  di prioritĂ  dell'apertura" + +#: ../gview_v4l2core/v4l2_controls.c:64 +msgid "Black Level" +msgstr "Livello del nero" + +#: ../gview_v4l2core/v4l2_controls.c:65 +msgid "White Balance, Automatic" +msgstr "Bilanciamento automatico del bianco" + +#: ../gview_v4l2core/v4l2_controls.c:66 +msgid "Do White Balance" +msgstr "Bilanciamento del bianco" + +#: ../gview_v4l2core/v4l2_controls.c:67 +msgid "Red Balance" +msgstr "Bilanciamento del rosso" + +#: ../gview_v4l2core/v4l2_controls.c:68 +msgid "Blue Balance" +msgstr "Bilanciamento del blu" + +#: ../gview_v4l2core/v4l2_controls.c:69 +msgid "Exposure" +msgstr "Esposizione" + +#: ../gview_v4l2core/v4l2_controls.c:70 +msgid "Gain, Automatic" +msgstr "Guadagno automatico" + +#: ../gview_v4l2core/v4l2_controls.c:71 +msgid "Gain" +msgstr "Guadagno" + +#: ../gview_v4l2core/v4l2_controls.c:72 +msgid "Horizontal Flip" +msgstr "Rifletti orizzontalmente" + +#: ../gview_v4l2core/v4l2_controls.c:73 +msgid "Vertical Flip" +msgstr "Rifletti verticalmente" + +#: ../gview_v4l2core/v4l2_controls.c:74 +msgid "Horizontal Center" +msgstr "Centra orizzontalmente" + +#: ../gview_v4l2core/v4l2_controls.c:75 +msgid "Vertical Center" +msgstr "Centra verticalmente" + +#: ../gview_v4l2core/v4l2_controls.c:76 +msgid "Chroma AGC" +msgstr "Chroma AGC" + +#: ../gview_v4l2core/v4l2_controls.c:77 +msgid "Color Killer" +msgstr "Killer del colore" + +#: ../gview_v4l2core/v4l2_controls.c:78 +msgid "Color Effects" +msgstr "Effetti del colore" + +#. CAMERA CLASS control strings +#: ../gview_v4l2core/v4l2_controls.c:81 +msgid "Camera Controls" +msgstr "Controlli della webcam" + +#: ../gview_v4l2core/v4l2_controls.c:82 +msgid "Auto Exposure" +msgstr "Esposizione automatica" + +#: ../gview_v4l2core/v4l2_controls.c:83 +msgid "Exposure Time, Absolute" +msgstr "Tempo di esposizione assoluto" + +#: ../gview_v4l2core/v4l2_controls.c:84 +msgid "Exposure, Dynamic Framerate" +msgstr "Esposizione, framerate dinamico" + +#: ../gview_v4l2core/v4l2_controls.c:85 +msgid "Pan, Relative" +msgstr "Panoramica relativa" + +#: ../gview_v4l2core/v4l2_controls.c:86 +msgid "Tilt, Relative" +msgstr "Inclinazione relativa" + +#: ../gview_v4l2core/v4l2_controls.c:87 +msgid "Pan, Reset" +msgstr "Ripristina la panoramica" + +#: ../gview_v4l2core/v4l2_controls.c:88 +msgid "Tilt, Reset" +msgstr "Ripristina l'inclinazione" + +#: ../gview_v4l2core/v4l2_controls.c:89 +msgid "Pan, Absolute" +msgstr "Panoramica assoluta" + +#: ../gview_v4l2core/v4l2_controls.c:91 +msgid "Focus, Absolute" +msgstr "Messa a fuoco assoluta" + +#: ../gview_v4l2core/v4l2_controls.c:92 +msgid "Focus, Relative" +msgstr "Messa a fuoco relativa" + +#: ../gview_v4l2core/v4l2_controls.c:93 +msgid "Focus, Automatic" +msgstr "Messa a fuoco automatica" + +#: ../gview_v4l2core/v4l2_controls.c:94 +msgid "Zoom, Absolute" +msgstr "Zoom assoluto" + +#: ../gview_v4l2core/v4l2_controls.c:95 +msgid "Zoom, Relative" +msgstr "Zoom relativo" + +#: ../gview_v4l2core/v4l2_controls.c:96 +msgid "Zoom, Continuous" +msgstr "Zoom continuo" + +#: ../gview_v4l2core/v4l2_controls.c:97 +msgid "Privacy" +msgstr "Privacy" + +#. UVC specific control strings +#: ../gview_v4l2core/v4l2_controls.c:100 +msgid "Exposure, Auto" +msgstr "Esposizione automatica" + +#: ../gview_v4l2core/v4l2_controls.c:101 +msgid "Exposure, Auto Priority" +msgstr "Esposizione, prioritĂ  automatica" + +#: ../gview_v4l2core/v4l2_controls.c:102 +msgid "Exposure (Absolute)" +msgstr "Esposizione (assoluta)" + +#: ../gview_v4l2core/v4l2_controls.c:103 +msgid "White Balance Temperature, Auto" +msgstr "Bilanciamento del bianco automatico" + +#: ../gview_v4l2core/v4l2_controls.c:104 +msgid "White Balance Temperature" +msgstr "Bilanciamento del bianco" + +#: ../gview_v4l2core/v4l2_controls.c:105 +msgid "White Balance Component, Auto" +msgstr "Bilanciamento dei componenti del bianco automatico" + +#: ../gview_v4l2core/v4l2_controls.c:106 +msgid "White Balance Blue Component" +msgstr "Bilanciamento del bianco, canale blu" + +#: ../gview_v4l2core/v4l2_controls.c:107 +msgid "White Balance Red Component" +msgstr "Bilanciamento del bianco, canale rosso" + +#. libwebcam specific control strings +#: ../gview_v4l2core/v4l2_controls.c:110 +msgid "Focus" +msgstr "Messa a fuoco" + +#: ../gview_v4l2core/v4l2_controls.c:111 +msgid "Focus (Absolute)" +msgstr "Messa a fuoco (assoluta)" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:63 +msgid "Off" +msgstr "Spento" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:64 +msgid "On" +msgstr "Acceso" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:65 +msgid "Blinking" +msgstr "Lampeggiante" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:66 +msgid "Auto" +msgstr "Automatico" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:73 +msgid "Pan (relative)" +msgstr "Panoramica (relativa)" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:86 +msgid "Tilt (relative)" +msgstr "Inclinazione (relativa)" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:99 +msgid "Pan Reset" +msgstr "Ripristina la panoramica" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:112 +msgid "Tilt Reset" +msgstr "Ripristina l'inclinazione" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:125 +msgid "Focus (absolute)" +msgstr "Messa a fuoco (assoluta)" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:138 +msgid "LED1 Mode" +msgstr "ModalitĂ  LED1" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:151 +msgid "LED1 Frequency" +msgstr "Frequenza LED1" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:164 +msgid "Disable video processing" +msgstr "Disabilita l'elaborazione video" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:177 +msgid "Raw bits per pixel" +msgstr "Raw bit per pixel" + +#, fuzzy +#~ msgid "PCM - uncompressed (float 32 bit)" +#~ msgstr "PCM - non compresso (16 bit)" + +#~ msgid "Vorbis" +#~ msgstr "Vorbis" + +#, fuzzy +#~ msgid "Raw camera input" +#~ msgstr "Uscita della webcam:" + +#~ msgid "MJPG - compressed" +#~ msgstr "MJPG - compresso" + +#~ msgid "MPEG video 1" +#~ msgstr "MPEG video 1" + +#~ msgid "FLV1 - flash video 1" +#~ msgstr "FLV1 - flash video 1" + +#~ msgid "WMV1 - win. med. video 7" +#~ msgstr "WMV1 - win. med. video 7" + +#~ msgid "MPG2 - MPG2 format" +#~ msgstr "MPG2 - formato MPG2" + +#~ msgid "MS MP4 V3" +#~ msgstr "MS MP4 V3" + +#~ msgid "MPEG4-ASP" +#~ msgstr "MPEG4-ASP" + +#~ msgid "MPEG4-AVC (H264)" +#~ msgstr "MPEG4-AVC (H264)" + +#~ msgid "VP8 (VP8)" +#~ msgstr "VP8 (VP8)" + +#~ msgid "Theora (ogg theora)" +#~ msgstr "Theora (ogg theora)" + +#~ msgid "Audio API:" +#~ msgstr "API dell'audio:" + +#~ msgid "PORTAUDIO" +#~ msgstr "PORTAUDIO" + +#~ msgid "PULSEAUDIO" +#~ msgstr "PULSEAUDIO" + +#~ msgid "Input Device:" +#~ msgstr "Dispositivo di ingresso:" + +#~ msgid "Sample Rate:" +#~ msgstr "Frequenza di campionamento:" + +#~ msgid "Dev. Default" +#~ msgstr "Impostazione predefinita del dispositivo" + +#~ msgid "Channels:" +#~ msgstr "Canali:" + +#~ msgid "1 - mono" +#~ msgstr "1 - mono" + +#~ msgid "2 - stereo" +#~ msgstr "2 - stereo" + +#, fuzzy +#~ msgid "---- Audio Filters ----" +#~ msgstr "---- Filtri video ----" + +#~ msgid " Echo" +#~ msgstr " Eco" + +#~ msgid " Reverb" +#~ msgstr " Riverbero" + +#~ msgid " Fuzz" +#~ msgstr " Rumore" + +#~ msgid " WahWah" +#~ msgstr " WahWah" + +#~ msgid " Ducky" +#~ msgstr " Anatroccolo" + +#~ msgid "Stop Video (V)" +#~ msgstr "Ferma il video (V)" + +#~ msgid "Cap. Video (V)" +#~ msgstr "Registra video (V)" + +#~ msgid "Error" +#~ msgstr "Errore" + +#, fuzzy +#~ msgid "_Cancel" +#~ msgstr "annulla" + +#~ msgid "" +#~ "\n" +#~ "You have more than one video device installed.\n" +#~ "Do you want to try another one ?\n" +#~ msgstr "" +#~ "\n" +#~ "C'Ăš piĂč di un dispositivo video installato.\n" +#~ "Vuoi provare l'altro ?\n" + +#~ msgid "Device:" +#~ msgstr "Dispositivo:" + +#~ msgid "Guvcview Video Capture" +#~ msgstr "Cattura video di Guvcview" + +#, fuzzy +#~ msgid "Guvcview" +#~ msgstr "guvcview" + +#, fuzzy +#~ msgid "Stop Cap. (I)" +#~ msgstr "Arresto automatico (I)" + +#~ msgid "Cap. Image (I)" +#~ msgstr "Cattura immagine (I)" + +#~ msgid "Image Controls" +#~ msgstr "Controlli dell'immagine" + +#, fuzzy +#~ msgid "Video Controls" +#~ msgstr "Controlli dell'utente" + +#, fuzzy +#~ msgid "Audio Controls" +#~ msgstr "Controlli dell'utente" + +#~ msgid "Save Profile" +#~ msgstr "Salva profilo" + +#~ msgid "Load Profile" +#~ msgstr "Carica profilo" + +#~ msgid "File Format:" +#~ msgstr "Formato del file:" + +#, fuzzy +#~ msgid "Photo file name" +#~ msgstr "Nome del file immagine" + +#, fuzzy +#~ msgid "Raw (*.raw)" +#~ msgstr "Immagine raw (raw)" + +#, fuzzy +#~ msgid "Jpeg (*.jpg)" +#~ msgstr "Jpeg (jpg)" + +#, fuzzy +#~ msgid "Video file name" +#~ msgstr "Nome del file immagine" + +#~ msgid "start new" +#~ msgstr "inizia nuovo" + +#~ msgid "restart" +#~ msgstr "riavvia" + +#~ msgid "new" +#~ msgstr "nuovo" + +#~ msgid "cancel" +#~ msgstr "annulla" + +#~ msgid "" +#~ "launch new process or restart?.\n" +#~ "\n" +#~ msgstr "" +#~ "vuoi lanciare un nuovo processo o riavviare?.\n" +#~ "\n" + +#, fuzzy +#~ msgid "video codec values" +#~ msgstr "valori del codec audio" + +#~ msgid "" +#~ " encoder fps: \n" +#~ " (0 - use fps combobox value)" +#~ msgstr "" +#~ " encoder fps: \n" +#~ " (0 - usare il valore fps della combobox)" + +#~ msgid " monotonic pts" +#~ msgstr " punti monocromatici" + +#~ msgid "bit rate: " +#~ msgstr "bit rate: " + +#~ msgid "qmax: " +#~ msgstr "qmax: " + +#~ msgid "qmin: " +#~ msgstr "qmin: " + +#~ msgid "max. qdiff: " +#~ msgstr "max. qdiff: " + +#~ msgid "dia size: " +#~ msgstr "dim. dia: " + +#~ msgid "pre dia size: " +#~ msgstr "dim. pre dia: " + +#~ msgid "pre me: " +#~ msgstr "pre me: " + +#~ msgid "pre cmp: " +#~ msgstr "pre cmp: " + +#~ msgid "cmp: " +#~ msgstr "cmp: " + +#~ msgid "sub cmp: " +#~ msgstr "sub cmp: " + +#~ msgid "last predictor count: " +#~ msgstr "conteggio dell'ultimo indicatore: " + +#~ msgid "gop size: " +#~ msgstr "dim. gop: " + +#~ msgid "qcompress: " +#~ msgstr "qcompress: " + +#~ msgid "qblur: " +#~ msgstr "qblur: " + +#~ msgid "subq: " +#~ msgstr "subq: " + +#~ msgid "framerefs: " +#~ msgstr "framerefs: " + +#~ msgid "me method: " +#~ msgstr "metodo me: " + +#~ msgid "mb decision: " +#~ msgstr "decisione mb: " + +#~ msgid "max B frames: " +#~ msgstr "numero massimo di immagini B: " + +#~ msgid "num threads: " +#~ msgstr "numero di thread: " + +#~ msgid "audio codec values" +#~ msgstr "valori del codec audio" + +#~ msgid "sample format: " +#~ msgstr "Formato di campionamento: " + +#~ msgid "Settings" +#~ msgstr "Impostazioni" + +#~ msgid "Hardware Defaults" +#~ msgstr "Ripristina l'hardware di default" + +#~ msgid "Camera Button" +#~ msgstr "Pulsante della camera" + +#~ msgid "Capture Image" +#~ msgstr "Cattura l'immagine" + +#~ msgid "Capture Video" +#~ msgstr "Registra il video" + +#~ msgid "Photo" +#~ msgstr "Foto" + +#~ msgid "File" +#~ msgstr "File" + +#~ msgid "Increment Filename" +#~ msgstr "Incrementa il nome del file" + +#~ msgid "Video" +#~ msgstr "Video" + +#~ msgid "Video Codec" +#~ msgstr "Codec video" + +#~ msgid "Video Codec Properties" +#~ msgstr "ProprietĂ  del codec video" + +#~ msgid "Audio Codec" +#~ msgstr "Codec audio" + +#~ msgid "Audio Codec Properties" +#~ msgstr "ProprietĂ  del codec audio" + +#~ msgid "Left" +#~ msgstr "Sinistra" + +#~ msgid "Right" +#~ msgstr "Destra" + +#~ msgid "Down" +#~ msgstr "Sotto" + +#~ msgid "Up" +#~ msgstr "Sopra" + +#~ msgid "8 bit" +#~ msgstr "8 bit" + +#~ msgid "12 bit" +#~ msgstr "12 bit" + +#~ msgid "Auto Focus (continuous)" +#~ msgstr "Messa a fuoco automatica (continua)" + +#~ msgid "set Focus" +#~ msgstr "imposta la messa a fuoco" + +#, fuzzy +#~ msgid "_Apply" +#~ msgstr "Applica" + +#~ msgid "Frame Rate:" +#~ msgstr "Frame rate:" + +#~ msgid "Resolution:" +#~ msgstr "Risoluzione:" + +#~ msgid "Camera Output:" +#~ msgstr "Uscita della webcam:" + +#~ msgid "---- Video Filters ----" +#~ msgstr "---- Filtri video ----" + +#~ msgid " Mirror" +#~ msgstr " Specchio" + +#~ msgid " Invert" +#~ msgstr " Inverti" + +#~ msgid " Negative" +#~ msgstr " Negativo" + +#~ msgid " Mono" +#~ msgstr " Monocromatico" + +#~ msgid " Pieces" +#~ msgstr " Pezzi" + +#~ msgid " Particles" +#~ msgstr " Particelle" + +#, fuzzy +#~ msgid "Print version" +#~ msgstr "Visualizza la versione" + +#, fuzzy +#~ msgid "Set device name (def: /dev/video0)" +#~ msgstr "Dispositivo video da utilizzare [predefinito: /dev/video0]" + +#, fuzzy +#~ msgid "Set capture method [read | mmap (def)]" +#~ msgstr "Metodo di registrazione (1-mmap (predefinito) 2-read)" + +#, fuzzy +#~ msgid "load control profile" +#~ msgstr "Carica profilo" + +#, fuzzy +#~ msgid "" +#~ "Guvcview version %s\n" +#~ "\n" +#~ msgstr "Avviso di Guvcview:" + +#, fuzzy +#~ msgid "saving video to %s" +#~ msgstr "registra video da" + +#~ msgid "guvcview" +#~ msgstr "guvcview" + +#~ msgid "GTK UVC video viewer" +#~ msgstr "GTK UVC visualizzatore video" + +#~ msgid "A video viewer and capturer for the linux uvc driver" +#~ msgstr "Un visualizzatore e catturatore video per il driver uvc di linux" + +#~ msgid "MPEG2 - (lavc)" +#~ msgstr "MPEG2 - (lavc)" + +#~ msgid "MP3 - (lavc)" +#~ msgstr "MP3 - (lavc)" + +#~ msgid "Dolby AC3 - (lavc)" +#~ msgstr "Dolby AC3 - (lavc)" + +#~ msgid "ACC Low - (faac)" +#~ msgstr "ACC Low - (faac)" + +#~ msgid "Audio" +#~ msgstr "Audio" + +#~ msgid " Sound" +#~ msgstr " Suono" + +#~ msgid " Show VU meter" +#~ msgstr " Visualizza VU meter" + +#~ msgid "---- Audio Effects ----" +#~ msgstr "---- Effetti audio ----" + +#~ msgid "Save File" +#~ msgstr "Salva file" + +#~ msgid "codec values" +#~ msgstr "valori dei codec" + +#~ msgid "capturing photo to" +#~ msgstr "cattura foto da" + +#~ msgid "Cap. Video" +#~ msgstr "Registra video" + +#~ msgid "GUVCViewer Controls" +#~ msgstr "Controlli di Guvcview" + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to open device" +#~ msgstr "" +#~ "Errore di Guvcview:\n" +#~ "\n" +#~ "Impossibile accedere al dispositivo" + +#~ msgid "" +#~ "Please make sure the camera is connected\n" +#~ "and that the correct driver is installed." +#~ msgstr "" +#~ "Assicurarsi che la webcam sia connessa\n" +#~ "e che sia installato il rispettivo driver." + +#~ msgid "" +#~ "Guvcview:\n" +#~ "\n" +#~ "UVC Extension controls" +#~ msgstr "" +#~ "Guvcview:\n" +#~ "\n" +#~ "Controlli dell'estensione di UVC" + +#~ msgid "Extension controls were added to the UVC driver" +#~ msgstr "I controlli dell'estensione sono stati aggiunti al driver UVC" + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "UVC Extension controls" +#~ msgstr "" +#~ "Errore di Guvcview:\n" +#~ "\n" +#~ "Controlli dell'estensione di UVC" + +#~ msgid "" +#~ "An error occurred while adding extension\n" +#~ "controls to the UVC driver\n" +#~ "Make sure you run guvcview as root (or sudo)." +#~ msgstr "" +#~ "Si Ăš verificato un errore nell'aggiungere\n" +#~ "i controlli dell'estensione al driver UVC\n" +#~ "Assicurarsi di avviare guvcview da root (o sudo)." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Can't set a valid video stream for guvcview" +#~ msgstr "" +#~ "Errore di Guvcview:\n" +#~ "\n" +#~ "Impossibile impostare un flusso video valido per guvcview" + +#~ msgid "" +#~ "Make sure your device driver is v4l2 compliant\n" +#~ "and that it is properly installed." +#~ msgstr "" +#~ "Assicurarsi che il driver del dispositivo sia\n" +#~ "v4l2 compatibile e che sia correttamente installato." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to start with minimum setup" +#~ msgstr "" +#~ "Errore di Guvcview:\n" +#~ "\n" +#~ "Impossibile avviare con l'installazione minima" + +#~ msgid "Please reconnect your camera." +#~ msgstr "Riconnettere la webcam." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Couldn't query device capabilities" +#~ msgstr "" +#~ "Errore di Guvcview:\n" +#~ "\n" +#~ "Impossibile interrogare le funzionalitĂ  del dispositivo" + +#~ msgid "Make sure the device driver supports v4l2." +#~ msgstr "Assicurarsi che il driver del dispositivo supporti v4l2." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Read method error" +#~ msgstr "" +#~ "Errore di Guvcview:\n" +#~ "\n" +#~ "Errore del metodo di lettura" + +#~ msgid "Please try mmap instead (--capture_method=1)." +#~ msgstr "In alternativa, provare mmap (--capture_method=1)." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to allocate Buffers" +#~ msgstr "" +#~ "Errore di Guvcview:\n" +#~ "\n" +#~ "Impossibile allocare i buffer" + +#~ msgid "Please try restarting your system." +#~ msgstr "Provare a riavviare il sistema." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to create Video Thread" +#~ msgstr "" +#~ "Errore di Guvcview:\n" +#~ "\n" +#~ "Impossibile creare un flusso video" + +#~ msgid "Please report it to http://developer.berlios.de/bugs/?group_id=8179" +#~ msgstr "" +#~ "Siete pregati di segnalarlo a http://developer.berlios.de/bugs/?" +#~ "group_id=8179" + +#~ msgid "Bitmap (Bmp)" +#~ msgstr "Bitmap (Bmp)" + +#~ msgid "Portable Network Graphics (Png)" +#~ msgstr "Portable Network Graphics (Png)" + +#~ msgid "Displays debug information" +#~ msgstr "Visualizza le informazioni di debug" + +#~ msgid "Exit after adding UVC extension controls (needs root/sudo)" +#~ msgstr "" +#~ "Uscire dopo aver aggiunto i controlli dell'estensione di UVC (necessita " +#~ "di root/sudo)" + +#~ msgid "Don't stream video (image controls only)" +#~ msgstr "Non attivare il flusso video (solo controlli dell'immagine)" + +#~ msgid "Don't display a GUI" +#~ msgstr "Non visualizzare la GUI" + +#~ msgid "Configuration file" +#~ msgstr "File di configurazione" + +#~ msgid "Hardware accelaration (enable(1) | disable(0))" +#~ msgstr "Accelerazione hardware (abilita(1) | disabilita(0))" + +#~ msgid "" +#~ "Pixel format(mjpg|jpeg|yuyv|yvyu|uyvy|yyuv|yu12|yv12|nv12|nv21|nv16|nv61|" +#~ "y41p|grey|y10b|y16 |s501|s505|s508|gbrg|grbg|ba81|rggb|bgr3|rgb3)" +#~ msgstr "" +#~ "Formato del pixel(mjpg|jpeg|yuyv|yvyu|uyvy|yyuv|yu12|yv12|nv12|nv21|nv16|" +#~ "nv61|y41p|grey|y10b|y16 |s501|s505|s508|gbrg|grbg|ba81|rggb|bgr3|rgb3)" + +#~ msgid "Frame size, default: 640x480" +#~ msgstr "Risoluzione predefinita: 640x480" + +#~ msgid "Image capture interval in seconds" +#~ msgstr "Intervallo di registrazione dell'immagine in secondi" + +#~ msgid "Number of Pictures to capture" +#~ msgstr "Numero di immagini da registrare" + +#~ msgid "Video File name (capture from start)" +#~ msgstr "Nome del file video (registra dall'inizio)" + +#~ msgid "Video capture time (in seconds)" +#~ msgstr "Durata della registrazione video (in secondi)" + +#~ msgid "Exits guvcview after closing video" +#~ msgstr "Esci da guvcview dopo aver chiuso il video" + +#~ msgid "Number of initial frames to skip" +#~ msgstr "Numero di immagini iniziali da ignorare" + +#~ msgid "Show FPS value (enable(1) | disable (0))" +#~ msgstr "Mostra il valore degli FPS (abilita(1) | disabilita (0))" + +#~ msgid "Load Profile at start" +#~ msgstr "Carica profilo all'avvio" + +#~ msgid "- local options" +#~ msgstr "- opzioni locali" + +#~ msgid "Cap. Image" +#~ msgstr "Cattura immagine" + +#~ msgid "Not enough free space left on disk" +#~ msgstr "Spazio libero sul disco insufficiente" + +#~ msgid "YUY2 - uncomp YUV" +#~ msgstr "YUY2 - YUV non compresso" + +#~ msgid "RGB - uncomp BMP" +#~ msgstr "RGB - BMP non compresso" + +#~ msgid "AVI - avi format" +#~ msgstr "AVI - formato avi" + +#~ msgid "MKV - Matroska format" +#~ msgstr "MKV - formato Matroska" + +#~ msgid "WEBM - format" +#~ msgstr "WEBM - formato WEBM" + +#~ msgid " Show" +#~ msgstr " Visualizza" + +#~ msgid "Quality:" +#~ msgstr "QualitĂ :" diff -Nru guvcview-1.7.3/po/gview_v4l2core/ja.po guvcview-2.0.1+ubuntu1~ppa1/po/gview_v4l2core/ja.po --- guvcview-1.7.3/po/gview_v4l2core/ja.po 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/po/gview_v4l2core/ja.po 2014-10-05 10:41:44.000000000 +0000 @@ -0,0 +1,544 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# Nobuhiro Iwamatsu , 2009. +# +msgid "" +msgstr "" +"Project-Id-Version: GUVCView 1.0.2\n" +"Report-Msgid-Bugs-To: pj.assis@gmail.com\n" +"POT-Creation-Date: 2014-08-17 22:49+0100\n" +"PO-Revision-Date: 2013-02-25 05:38+0000\n" +"Last-Translator: Paulo Assis \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2013-12-08 10:36+0000\n" +"X-Generator: Launchpad (build 16869)\n" +"X-Poedit-Country: JAPAN\n" +"X-Poedit-Language: Japanese\n" + +#. +#. * needed only for language files (not used) +#. +#. V4L2 control strings +#: ../gview_v4l2core/v4l2_controls.c:49 +msgid "User Controls" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:50 +msgid "Brightness" +msgstr "茝ćșŠ" + +#: ../gview_v4l2core/v4l2_controls.c:51 +msgid "Contrast" +msgstr "ă‚łăƒłăƒˆăƒ©ă‚čト" + +#: ../gview_v4l2core/v4l2_controls.c:52 +msgid "Hue" +msgstr "è‰Č盾" + +#: ../gview_v4l2core/v4l2_controls.c:53 +msgid "Saturation" +msgstr "ćœ©ćșŠ" + +#: ../gview_v4l2core/v4l2_controls.c:54 +msgid "Sharpness" +msgstr "éźźæ˜ŽćșŠ" + +#: ../gview_v4l2core/v4l2_controls.c:55 +msgid "Gamma" +msgstr "ガンマ" + +#: ../gview_v4l2core/v4l2_controls.c:56 +msgid "Backlight Compensation" +msgstr "ăƒăƒƒă‚Żăƒ©ă‚€ăƒˆèŁœæ­Ł" + +#: ../gview_v4l2core/v4l2_controls.c:57 +msgid "Power Line Frequency" +msgstr "電æșăƒ©ă‚€ăƒłć‘šæłąæ•°" + +#: ../gview_v4l2core/v4l2_controls.c:58 +msgid "Hue, Automatic" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:59 +msgid "Focus, Auto" +msgstr "ăƒ•ă‚©ăƒŒă‚«ă‚č,è‡Ș拕" + +#: ../gview_v4l2core/v4l2_controls.c:60 +msgid "Manual Mode" +msgstr "æ‰‹ć‹•ăƒąăƒŒăƒ‰" + +#: ../gview_v4l2core/v4l2_controls.c:61 +msgid "Auto Mode" +msgstr "è‡Șć‹•ăƒąăƒŒăƒ‰" + +#: ../gview_v4l2core/v4l2_controls.c:62 +msgid "Shutter Priority Mode" +msgstr "ă‚·ăƒŁăƒƒă‚żăƒŒć„Șć…ˆăƒąăƒŒăƒ‰" + +#: ../gview_v4l2core/v4l2_controls.c:63 +msgid "Aperture Priority Mode" +msgstr "甞りć„Șć…ˆăƒąăƒŒăƒ‰" + +#: ../gview_v4l2core/v4l2_controls.c:64 +msgid "Black Level" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:65 +msgid "White Balance, Automatic" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:66 +msgid "Do White Balance" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:67 +msgid "Red Balance" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:68 +msgid "Blue Balance" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:69 +msgid "Exposure" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:70 +msgid "Gain, Automatic" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:71 +msgid "Gain" +msgstr "ă‚Čă‚€ăƒł" + +#: ../gview_v4l2core/v4l2_controls.c:72 +msgid "Horizontal Flip" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:73 +msgid "Vertical Flip" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:74 +msgid "Horizontal Center" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:75 +msgid "Vertical Center" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:76 +msgid "Chroma AGC" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:77 +msgid "Color Killer" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:78 +msgid "Color Effects" +msgstr "" + +#. CAMERA CLASS control strings +#: ../gview_v4l2core/v4l2_controls.c:81 +msgid "Camera Controls" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:82 +msgid "Auto Exposure" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:83 +msgid "Exposure Time, Absolute" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:84 +msgid "Exposure, Dynamic Framerate" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:85 +msgid "Pan, Relative" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:86 +msgid "Tilt, Relative" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:87 +msgid "Pan, Reset" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:88 +msgid "Tilt, Reset" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:89 +msgid "Pan, Absolute" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:91 +msgid "Focus, Absolute" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:92 +msgid "Focus, Relative" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:93 +msgid "Focus, Automatic" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:94 +msgid "Zoom, Absolute" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:95 +msgid "Zoom, Relative" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:96 +msgid "Zoom, Continuous" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:97 +msgid "Privacy" +msgstr "" + +#. UVC specific control strings +#: ../gview_v4l2core/v4l2_controls.c:100 +msgid "Exposure, Auto" +msgstr "éœČć‡ș、è‡Ș拕" + +#: ../gview_v4l2core/v4l2_controls.c:101 +msgid "Exposure, Auto Priority" +msgstr "éœČć‡ș、è‡Ș拕ć„Ș慈" + +#: ../gview_v4l2core/v4l2_controls.c:102 +msgid "Exposure (Absolute)" +msgstr "Exposure (漌慹ăȘ)" + +#: ../gview_v4l2core/v4l2_controls.c:103 +msgid "White Balance Temperature, Auto" +msgstr "ăƒ›ăƒŻă‚€ăƒˆăƒăƒ©ăƒłă‚čæž©ćșŠă€è‡Ș拕" + +#: ../gview_v4l2core/v4l2_controls.c:104 +msgid "White Balance Temperature" +msgstr "ăƒ›ăƒŻă‚€ăƒˆăƒăƒ©ăƒłă‚čæž©ćșŠ" + +#: ../gview_v4l2core/v4l2_controls.c:105 +msgid "White Balance Component, Auto" +msgstr "ăƒ›ăƒŻă‚€ăƒˆăƒăƒ©ăƒłă‚čæˆćˆ†ă€è‡Ș拕" + +#: ../gview_v4l2core/v4l2_controls.c:106 +msgid "White Balance Blue Component" +msgstr "ăƒ›ăƒŻă‚€ăƒˆăƒăƒ©ăƒłă‚čé’æˆćˆ†" + +#: ../gview_v4l2core/v4l2_controls.c:107 +msgid "White Balance Red Component" +msgstr "ăƒ›ăƒŻă‚€ăƒˆăƒăƒ©ăƒłă‚čè”€æˆćˆ†" + +#. libwebcam specific control strings +#: ../gview_v4l2core/v4l2_controls.c:110 +msgid "Focus" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:111 +msgid "Focus (Absolute)" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:63 +msgid "Off" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:64 +msgid "On" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:65 +msgid "Blinking" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:66 +#, fuzzy +msgid "Auto" +msgstr "è‡Șć‹•ăƒąăƒŒăƒ‰" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:73 +msgid "Pan (relative)" +msgstr "パン (ç›žćŻŸ)" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:86 +msgid "Tilt (relative)" +msgstr "チルト (ç›žćŻŸ)" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:99 +msgid "Pan Reset" +msgstr "パン ăƒȘă‚»ăƒƒăƒˆ" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:112 +msgid "Tilt Reset" +msgstr "チルト ăƒȘă‚»ăƒƒăƒˆ" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:125 +msgid "Focus (absolute)" +msgstr "ăƒ•ă‚©ăƒŒă‚«ă‚č (漌慹ăȘ)" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:138 +msgid "LED1 Mode" +msgstr "LED1 ăƒąăƒŒăƒ‰" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:151 +msgid "LED1 Frequency" +msgstr "LED1 ć›žæ•°" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:164 +msgid "Disable video processing" +msgstr "ビデă‚Ș懩理 を無ćŠčにする" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:177 +msgid "Raw bits per pixel" +msgstr "1ç”»çŽ ă‚ăŸă‚Šăźç”Ÿăźăƒ“ăƒƒăƒˆ" + +#, fuzzy +#~ msgid "Raw camera input" +#~ msgstr "ă‚«ăƒĄăƒ©ć‡ș抛:" + +#~ msgid "MJPG - compressed" +#~ msgstr "MJPG - 朧羼" + +#~ msgid "Input Device:" +#~ msgstr "ć…„ćŠ›ăƒ‡ăƒă‚€ă‚č:" + +#~ msgid "Sample Rate:" +#~ msgstr "ă‚”ăƒłăƒ—ăƒ«ăƒŹăƒŒăƒˆ:" + +#~ msgid "Dev. Default" +#~ msgstr "ăƒ‡ăƒă‚€ă‚č ăƒ‡ăƒ•ă‚©ăƒ«ăƒˆ" + +#~ msgid "Channels:" +#~ msgstr "ăƒăƒŁăƒłăƒăƒ«:" + +#~ msgid "1 - mono" +#~ msgstr "1 - ăƒąăƒŽăƒ©ăƒ«" + +#~ msgid "2 - stereo" +#~ msgstr "2 - ă‚čテレă‚Ș" + +#, fuzzy +#~ msgid "---- Audio Filters ----" +#~ msgstr "---- ビデă‚Șăƒ•ă‚Łăƒ«ă‚ż ----" + +#~ msgid " Echo" +#~ msgstr " Echo" + +#~ msgid " Reverb" +#~ msgstr " Reverb" + +#~ msgid " Fuzz" +#~ msgstr " Fuzz" + +#~ msgid " WahWah" +#~ msgstr " WahWah" + +#~ msgid " Ducky" +#~ msgstr " Ducky" + +#, fuzzy +#~ msgid "_Cancel" +#~ msgstr "ă‚­ăƒŁăƒłă‚»ăƒ«" + +#~ msgid "Device:" +#~ msgstr "ăƒ‡ăƒă‚€ă‚č:" + +#~ msgid "Image Controls" +#~ msgstr "ă‚€ăƒĄăƒŒă‚žă‚łăƒłăƒˆăƒ­ăƒŒăƒ«" + +#, fuzzy +#~ msgid "Video Controls" +#~ msgstr "GUVCViewer ă‚łăƒłăƒˆăƒ­ăƒŒăƒ«" + +#, fuzzy +#~ msgid "Audio Controls" +#~ msgstr "ă‚€ăƒĄăƒŒă‚žă‚łăƒłăƒˆăƒ­ăƒŒăƒ«" + +#, fuzzy +#~ msgid "Photo file name" +#~ msgstr "ç”»ćƒăƒ•ă‚Ąă‚€ăƒ«ć" + +#, fuzzy +#~ msgid "Video file name" +#~ msgstr "ç”»ćƒăƒ•ă‚Ąă‚€ăƒ«ć" + +#~ msgid "start new" +#~ msgstr "æ–°ă—ăé–‹ć§‹ă™ă‚‹" + +#~ msgid "restart" +#~ msgstr "ć†è”·ć‹•" + +#~ msgid "new" +#~ msgstr "新芏" + +#~ msgid "cancel" +#~ msgstr "ă‚­ăƒŁăƒłă‚»ăƒ«" + +#~ msgid "" +#~ "launch new process or restart?.\n" +#~ "\n" +#~ msgstr "" +#~ "æ–°ă—ă„ăƒ—ăƒ­ă‚»ă‚čă‚’ç«‹ăĄäžŠă’ă‚‹ă‹ă€ć†è”·ć‹•ă—ăŸă™ă‹?\n" +#~ "\n" + +#~ msgid "Left" +#~ msgstr "ć·Š" + +#~ msgid "Right" +#~ msgstr "揳" + +#~ msgid "Down" +#~ msgstr "例" + +#~ msgid "Up" +#~ msgstr "侊" + +#~ msgid "Auto Focus (continuous)" +#~ msgstr "ă‚ȘăƒŒăƒˆăƒ•ă‚©ăƒŒă‚«ă‚č(連続)" + +#~ msgid "set Focus" +#~ msgstr "ăƒ•ă‚©ăƒŒă‚«ă‚čă‚’èš­ćźšă™ă‚‹" + +#~ msgid "Frame Rate:" +#~ msgstr "ăƒ•ăƒŹăƒŒăƒ ăƒŹăƒŒăƒˆ:" + +#~ msgid "Resolution:" +#~ msgstr "è§ŁćƒćșŠ:" + +#~ msgid "Camera Output:" +#~ msgstr "ă‚«ăƒĄăƒ©ć‡ș抛:" + +#~ msgid "---- Video Filters ----" +#~ msgstr "---- ビデă‚Șăƒ•ă‚Łăƒ«ă‚ż ----" + +#~ msgid " Mirror" +#~ msgstr " 鏡" + +#~ msgid " Invert" +#~ msgstr " ćè»ą" + +#~ msgid " Negative" +#~ msgstr " ネガ" + +#~ msgid " Mono" +#~ msgstr " ヱノクロ" + +#~ msgid " Pieces" +#~ msgstr " 断片" + +#, fuzzy +#~ msgid "Print version" +#~ msgstr "ăƒăƒŒă‚žăƒ§ăƒłă‚’èĄšç€șする" + +#, fuzzy +#~ msgid "Set device name (def: /dev/video0)" +#~ msgstr "äœżç”šă™ă‚‹ăƒ“ăƒ‡ă‚Șăƒ‡ăƒă‚€ă‚č [ăƒ‡ăƒ•ă‚©ăƒ«ăƒˆ: /dev/video0]" + +#~ msgid "Audio" +#~ msgstr "ă‚ȘăƒŒăƒ‡ă‚Łă‚Ș" + +#~ msgid " Sound" +#~ msgstr " ă‚”ă‚Šăƒłăƒ‰" + +#~ msgid "---- Audio Effects ----" +#~ msgstr "---- ă‚ȘăƒŒăƒ‡ă‚Łă‚Ș スフェクト ----" + +#~ msgid "Save File" +#~ msgstr "ăƒ•ă‚Ąă‚€ăƒ«ă‚’äżć­˜ă™ă‚‹" + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to open device" +#~ msgstr "" +#~ "Guvcview ă‚šăƒ©ăƒŒ:\n" +#~ "\n" +#~ "ăƒ‡ăƒă‚€ă‚čをă‚ȘăƒŒăƒ—ăƒłă™ă‚‹ă“ăšăŒă§ăăŸă›ă‚“" + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to start with minimum setup" +#~ msgstr "" +#~ "Guvcview ă‚šăƒ©ăƒŒ:\n" +#~ "\n" +#~ "æœ€ć°é™ăźă‚»ăƒƒăƒˆă‚ąăƒƒăƒ—ă‹ă‚‰ć§‹ă‚ă‚‹ă“ăšăŒă§ăăŸă›ă‚“" + +#~ msgid "Please reconnect your camera." +#~ msgstr "ă‚«ăƒĄăƒ©ă‚’ć†æŽ„ç¶šă—ăŠăă ă•ă„ă€‚" + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to allocate Buffers" +#~ msgstr "" +#~ "Guvcview ă‚šăƒ©ăƒŒ:\n" +#~ "\n" +#~ "バッファをçąșäżă§ăăŸă›ă‚“" + +#~ msgid "Please try restarting your system." +#~ msgstr "ă‚·ă‚čăƒ†ăƒ ă‚’ć†è”·ć‹•ă—ăŠăżăŠăă ă•ă„ă€‚" + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to create Video Thread" +#~ msgstr "" +#~ "Guvcview ă‚šăƒ©ăƒŒ:\n" +#~ "\n" +#~ "ビデă‚Șă‚čăƒŹăƒƒăƒ‰ă‚’äœœæˆă™ă‚‹ă“ăšăŒă§ăăŸă›ă‚“" + +#~ msgid "Please report it to http://developer.berlios.de/bugs/?group_id=8179" +#~ msgstr "" +#~ "http://developer.berlios.de/bugs/?group_id=8179 ă«ăƒŹăƒăƒŒăƒˆă—ăŠăă ă•ă„ă€‚" + +#~ msgid "Displays debug information" +#~ msgstr "ăƒ‡ăƒăƒƒă‚°æƒ…ć ±ă‚’èĄšç€șする" + +#~ msgid "Configuration file" +#~ msgstr "èš­ćźšăƒ•ă‚Ąă‚€ăƒ«" + +#~ msgid "Hardware accelaration (enable(1) | disable(0))" +#~ msgstr "ăƒăƒŒăƒ‰ă‚Šă‚§ă‚ąă‚ąă‚Żă‚»ăƒ©ăƒŹăƒŒă‚·ăƒ§ăƒł (有ćŠč(1) | 無ćŠč(0))" + +#~ msgid "Frame size, default: 640x480" +#~ msgstr "ăƒ•ăƒŹăƒŒăƒ ă‚”ă‚€ă‚șă€ăƒ‡ăƒ•ă‚©ăƒ«ăƒˆ: 640x480" + +#~ msgid "Image capture interval in seconds" +#~ msgstr "ç§’ć˜äœăźç”»ćƒă‚­ăƒŁăƒ—ăƒăƒŁé–“éš”" + +#~ msgid "Number of Pictures to capture" +#~ msgstr "ă‚­ăƒŁăƒ—ăƒăƒŁă™ă‚‹ç”»ćƒæ•°" + +#~ msgid "Show FPS value (enable(1) | disable (0))" +#~ msgstr "FPS ć€€ăźèĄšç€ș (有ćŠč(1) | 無ćŠč (0))" + +#~ msgid "Load Profile at start" +#~ msgstr "é–‹ć§‹æ™‚ă«ăƒ—ăƒ­ăƒ•ă‚Ąă‚€ăƒ«ă‚’èȘ­ăżèŸŒă‚€" + +#~ msgid "- local options" +#~ msgstr "- ăƒ­ăƒŒă‚«ăƒ«ă‚Șăƒ—ă‚·ăƒ§ăƒł" + +#~ msgid "Cap. Image" +#~ msgstr "キャプチャ.ç”»ćƒ" + +#~ msgid "YUY2 - uncomp YUV" +#~ msgstr "YUY2 - 非朧羼 YUV" + +#~ msgid "RGB - uncomp BMP" +#~ msgstr "RGB - 非朧羼 BMP" + +#~ msgid " Show" +#~ msgstr " èĄšç€ș" diff -Nru guvcview-1.7.3/po/gview_v4l2core/lv.po guvcview-2.0.1+ubuntu1~ppa1/po/gview_v4l2core/lv.po --- guvcview-1.7.3/po/gview_v4l2core/lv.po 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/po/gview_v4l2core/lv.po 2014-10-05 10:41:44.000000000 +0000 @@ -0,0 +1,861 @@ +# Latvian translation for guvcview +# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012 +# This file is distributed under the same license as the guvcview package. +# FIRST AUTHOR , 2012. +# +msgid "" +msgstr "" +"Project-Id-Version: guvcview\n" +"Report-Msgid-Bugs-To: pj.assis@gmail.com\n" +"POT-Creation-Date: 2014-08-17 22:49+0100\n" +"PO-Revision-Date: 2013-05-01 09:27+0000\n" +"Last-Translator: tuxmaniack \n" +"Language-Team: Latvian \n" +"Language: lv\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2013-12-08 10:36+0000\n" +"X-Generator: Launchpad (build 16869)\n" + +#. +#. * needed only for language files (not used) +#. +#. V4L2 control strings +#: ../gview_v4l2core/v4l2_controls.c:49 +msgid "User Controls" +msgstr "Lietotāja vadÄ«klas" + +#: ../gview_v4l2core/v4l2_controls.c:50 +msgid "Brightness" +msgstr "GaiĆĄums" + +#: ../gview_v4l2core/v4l2_controls.c:51 +msgid "Contrast" +msgstr "Kontrasts" + +#: ../gview_v4l2core/v4l2_controls.c:52 +msgid "Hue" +msgstr "Tonis" + +#: ../gview_v4l2core/v4l2_controls.c:53 +msgid "Saturation" +msgstr "Piesātinājums" + +#: ../gview_v4l2core/v4l2_controls.c:54 +msgid "Sharpness" +msgstr "Asums" + +#: ../gview_v4l2core/v4l2_controls.c:55 +msgid "Gamma" +msgstr "Gamma" + +#: ../gview_v4l2core/v4l2_controls.c:56 +msgid "Backlight Compensation" +msgstr "Fona apgaismojuma kompensācija" + +#: ../gview_v4l2core/v4l2_controls.c:57 +msgid "Power Line Frequency" +msgstr "LÄ«nijas frekvence" + +#: ../gview_v4l2core/v4l2_controls.c:58 +msgid "Hue, Automatic" +msgstr "Tonis, automātiski" + +#: ../gview_v4l2core/v4l2_controls.c:59 +msgid "Focus, Auto" +msgstr "Fokuss, automātiski" + +#: ../gview_v4l2core/v4l2_controls.c:60 +msgid "Manual Mode" +msgstr "Rokas reĆŸÄ«ms" + +#: ../gview_v4l2core/v4l2_controls.c:61 +msgid "Auto Mode" +msgstr "Automātiskais reĆŸÄ«ms" + +#: ../gview_v4l2core/v4l2_controls.c:62 +msgid "Shutter Priority Mode" +msgstr "Aizvara prioritātes reĆŸÄ«ms" + +#: ../gview_v4l2core/v4l2_controls.c:63 +msgid "Aperture Priority Mode" +msgstr "Diafragmas prioritātes reĆŸÄ«ms" + +#: ../gview_v4l2core/v4l2_controls.c:64 +msgid "Black Level" +msgstr "Melnā lÄ«menis" + +#: ../gview_v4l2core/v4l2_controls.c:65 +msgid "White Balance, Automatic" +msgstr "Baltās krāsas lÄ«dzsvars, automātiski" + +#: ../gview_v4l2core/v4l2_controls.c:66 +msgid "Do White Balance" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:67 +msgid "Red Balance" +msgstr "Sarkanais lÄ«dzsvars" + +#: ../gview_v4l2core/v4l2_controls.c:68 +msgid "Blue Balance" +msgstr "Zilais lÄ«dzsvars" + +#: ../gview_v4l2core/v4l2_controls.c:69 +msgid "Exposure" +msgstr "EkspozÄ«cija" + +#: ../gview_v4l2core/v4l2_controls.c:70 +msgid "Gain, Automatic" +msgstr "Pieaugums, automātiski" + +#: ../gview_v4l2core/v4l2_controls.c:71 +msgid "Gain" +msgstr "Pieaugums" + +#: ../gview_v4l2core/v4l2_controls.c:72 +msgid "Horizontal Flip" +msgstr "Horizontāli apgriezts" + +#: ../gview_v4l2core/v4l2_controls.c:73 +msgid "Vertical Flip" +msgstr "Vertikāli apgriezts" + +#: ../gview_v4l2core/v4l2_controls.c:74 +msgid "Horizontal Center" +msgstr "Horizontāli centrā" + +#: ../gview_v4l2core/v4l2_controls.c:75 +msgid "Vertical Center" +msgstr "Vertikāli centrā" + +#: ../gview_v4l2core/v4l2_controls.c:76 +msgid "Chroma AGC" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:77 +msgid "Color Killer" +msgstr "Krāsu slepkava" + +#: ../gview_v4l2core/v4l2_controls.c:78 +msgid "Color Effects" +msgstr "Krāsu efekti" + +#. CAMERA CLASS control strings +#: ../gview_v4l2core/v4l2_controls.c:81 +msgid "Camera Controls" +msgstr "Kameras vadÄ«klas" + +#: ../gview_v4l2core/v4l2_controls.c:82 +msgid "Auto Exposure" +msgstr "Automātiska ekspozÄ«cija" + +#: ../gview_v4l2core/v4l2_controls.c:83 +msgid "Exposure Time, Absolute" +msgstr "EkspozÄ«cijas laiks, absolĆ«ts" + +#: ../gview_v4l2core/v4l2_controls.c:84 +msgid "Exposure, Dynamic Framerate" +msgstr "EkspozÄ«cija, dinamisks kadrātrums" + +#: ../gview_v4l2core/v4l2_controls.c:85 +msgid "Pan, Relative" +msgstr "Vert. pagrieziens, relatÄ«vi" + +#: ../gview_v4l2core/v4l2_controls.c:86 +msgid "Tilt, Relative" +msgstr "Horiz. pagrieziens, relatÄ«vi" + +#: ../gview_v4l2core/v4l2_controls.c:87 +msgid "Pan, Reset" +msgstr "Vert. pagrieziens, pārstatÄ«t" + +#: ../gview_v4l2core/v4l2_controls.c:88 +msgid "Tilt, Reset" +msgstr "Horiz. pagrieziens, pārstatÄ«t" + +#: ../gview_v4l2core/v4l2_controls.c:89 +msgid "Pan, Absolute" +msgstr "Vert. pagrieziens, absolĆ«ti" + +#: ../gview_v4l2core/v4l2_controls.c:91 +msgid "Focus, Absolute" +msgstr "Fokuss, absolĆ«ts" + +#: ../gview_v4l2core/v4l2_controls.c:92 +msgid "Focus, Relative" +msgstr "Fokuss, relatÄ«vs" + +#: ../gview_v4l2core/v4l2_controls.c:93 +msgid "Focus, Automatic" +msgstr "Fokuss, automātiski" + +#: ../gview_v4l2core/v4l2_controls.c:94 +msgid "Zoom, Absolute" +msgstr "MērogoĆĄana, absolĆ«ta" + +#: ../gview_v4l2core/v4l2_controls.c:95 +msgid "Zoom, Relative" +msgstr "MērogoĆĄana, relatÄ«va" + +#: ../gview_v4l2core/v4l2_controls.c:96 +msgid "Zoom, Continuous" +msgstr "MērogoĆĄana, nepārtraukta" + +#: ../gview_v4l2core/v4l2_controls.c:97 +msgid "Privacy" +msgstr "Privātums" + +#. UVC specific control strings +#: ../gview_v4l2core/v4l2_controls.c:100 +msgid "Exposure, Auto" +msgstr "EkspozÄ«cija" + +#: ../gview_v4l2core/v4l2_controls.c:101 +msgid "Exposure, Auto Priority" +msgstr "EkspozÄ«cija, automātiska prioritāte" + +#: ../gview_v4l2core/v4l2_controls.c:102 +msgid "Exposure (Absolute)" +msgstr "EkspozÄ«cija (absolĆ«ta)" + +#: ../gview_v4l2core/v4l2_controls.c:103 +msgid "White Balance Temperature, Auto" +msgstr "Baltās krāsas lÄ«dzsvars, automātiski" + +#: ../gview_v4l2core/v4l2_controls.c:104 +msgid "White Balance Temperature" +msgstr "Baltās krāsas lÄ«dzsvars" + +#: ../gview_v4l2core/v4l2_controls.c:105 +msgid "White Balance Component, Auto" +msgstr "Baltās krāsas lÄ«dzsvara komponents, automātiski" + +#: ../gview_v4l2core/v4l2_controls.c:106 +msgid "White Balance Blue Component" +msgstr "Baltās krāsas lÄ«dzsvara zilais komponents" + +#: ../gview_v4l2core/v4l2_controls.c:107 +msgid "White Balance Red Component" +msgstr "Baltās krāsas lÄ«dzsvara sarkanais komponents" + +#. libwebcam specific control strings +#: ../gview_v4l2core/v4l2_controls.c:110 +msgid "Focus" +msgstr "Fokuss" + +#: ../gview_v4l2core/v4l2_controls.c:111 +msgid "Focus (Absolute)" +msgstr "Fokuss (absolĆ«ts)" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:63 +msgid "Off" +msgstr "Izslēgts" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:64 +msgid "On" +msgstr "Ieslēgts" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:65 +msgid "Blinking" +msgstr "MirgoĆĄana" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:66 +msgid "Auto" +msgstr "Automātiski" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:73 +msgid "Pan (relative)" +msgstr "Vert. pagrieziens (relatÄ«vi)" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:86 +msgid "Tilt (relative)" +msgstr "Horiz. pagrieziens (relatÄ«vi)" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:99 +msgid "Pan Reset" +msgstr "Vert. pagrieziens, pārstatÄ«t" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:112 +msgid "Tilt Reset" +msgstr "Horiz. pagrieziens, pārstatÄ«t" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:125 +msgid "Focus (absolute)" +msgstr "Fokuss (absolĆ«ts)" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:138 +msgid "LED1 Mode" +msgstr "LED1 reĆŸÄ«ms" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:151 +msgid "LED1 Frequency" +msgstr "LED1 frekvence" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:164 +msgid "Disable video processing" +msgstr "Atslēgt video apstrādi" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:177 +msgid "Raw bits per pixel" +msgstr "" + +#, fuzzy +#~ msgid "PCM - uncompressed (float 32 bit)" +#~ msgstr "PCM - nesaspiests (16 biti)" + +#~ msgid "Vorbis" +#~ msgstr "Vorbis" + +#, fuzzy +#~ msgid "Raw camera input" +#~ msgstr "Kameras izvade:" + +#~ msgid "MJPG - compressed" +#~ msgstr "MJPG - saspiests" + +#~ msgid "MPEG video 1" +#~ msgstr "MPEG video 1" + +#~ msgid "FLV1 - flash video 1" +#~ msgstr "FLV1 - flash video 1" + +#~ msgid "WMV1 - win. med. video 7" +#~ msgstr "WMV1 - win. med. video 7" + +#~ msgid "MPG2 - MPG2 format" +#~ msgstr "MPG2 - MPG2 formāts" + +#~ msgid "MS MP4 V3" +#~ msgstr "MS MP4 V3" + +#~ msgid "MPEG4-ASP" +#~ msgstr "MPEG4-ASP" + +#~ msgid "MPEG4-AVC (H264)" +#~ msgstr "MPEG4-AVC (H264)" + +#~ msgid "VP8 (VP8)" +#~ msgstr "VP8 (VP8)" + +#~ msgid "Theora (ogg theora)" +#~ msgstr "Theora (ogg theora)" + +#~ msgid "Audio API:" +#~ msgstr "Audio saskarne:" + +#~ msgid "PORTAUDIO" +#~ msgstr "PORTAUDIO" + +#~ msgid "PULSEAUDIO" +#~ msgstr "PULSEAUDIO" + +#~ msgid "Input Device:" +#~ msgstr "Ievades ierÄ«ce:" + +#~ msgid "Sample Rate:" +#~ msgstr "Nolases bieĆŸums:" + +#~ msgid "Dev. Default" +#~ msgstr "Izstrādātāja noklusējums" + +#~ msgid "Channels:" +#~ msgstr "Kanāli:" + +#~ msgid "1 - mono" +#~ msgstr "1 - mono" + +#~ msgid "2 - stereo" +#~ msgstr "2 - stereo" + +#, fuzzy +#~ msgid "---- Audio Filters ----" +#~ msgstr "---- Video filtri ----" + +#~ msgid " Echo" +#~ msgstr " Atbalss" + +#~ msgid " Reverb" +#~ msgstr " Reverbācija" + +#~ msgid " Fuzz" +#~ msgstr " Rācija" + +#~ msgid " WahWah" +#~ msgstr " VahVah" + +#~ msgid " Ducky" +#~ msgstr " PÄ«le" + +#~ msgid "Cap. Video (V)" +#~ msgstr "UzƆemt video (V)" + +#~ msgid "Error" +#~ msgstr "KÄŒĆ«da" + +#, fuzzy +#~ msgid "_Cancel" +#~ msgstr "atcelt" + +#~ msgid "" +#~ "\n" +#~ "You have more than one video device installed.\n" +#~ "Do you want to try another one ?\n" +#~ msgstr "" +#~ "\n" +#~ "Ir pieejamas vairākas video ierÄ«ces.\n" +#~ "Vai vēlaties izmēģināt citu?\n" + +#~ msgid "Device:" +#~ msgstr "IerÄ«ce:" + +#~ msgid "Guvcview Video Capture" +#~ msgstr "Guvcview video uzƆemĆĄana" + +#, fuzzy +#~ msgid "Guvcview" +#~ msgstr "guvcview" + +#~ msgid "Cap. Image (I)" +#~ msgstr "UzƆemt attēlu (I)" + +#~ msgid "Image Controls" +#~ msgstr "Attēla vadÄ«klas" + +#, fuzzy +#~ msgid "Video Controls" +#~ msgstr "Lietotāja vadÄ«klas" + +#, fuzzy +#~ msgid "Audio Controls" +#~ msgstr "Lietotāja vadÄ«klas" + +#~ msgid "Save Profile" +#~ msgstr "Saglabāt profilu" + +#~ msgid "Load Profile" +#~ msgstr "Ielādēt profilu" + +#~ msgid "File Format:" +#~ msgstr "Faila formāts:" + +#, fuzzy +#~ msgid "Photo file name" +#~ msgstr "Attēla faila nosaukums" + +#, fuzzy +#~ msgid "Raw (*.raw)" +#~ msgstr "Raw Image (raw)" + +#, fuzzy +#~ msgid "Jpeg (*.jpg)" +#~ msgstr "Jpeg (jpg)" + +#, fuzzy +#~ msgid "Video file name" +#~ msgstr "Attēla faila nosaukums" + +#~ msgid "start new" +#~ msgstr "sākt jaunu" + +#~ msgid "restart" +#~ msgstr "pārstartēt" + +#~ msgid "new" +#~ msgstr "jauns" + +#~ msgid "cancel" +#~ msgstr "atcelt" + +#~ msgid "" +#~ "launch new process or restart?.\n" +#~ "\n" +#~ msgstr "" +#~ "palaist jaunu procesu vai pārstartēt?\n" +#~ "\n" + +#, fuzzy +#~ msgid "video codec values" +#~ msgstr "audio kodeka vērtÄ«bas" + +#~ msgid "bit rate: " +#~ msgstr "bitu ātrums: " + +#~ msgid "audio codec values" +#~ msgstr "audio kodeka vērtÄ«bas" + +#~ msgid "Settings" +#~ msgstr "IestatÄ«jumi" + +#~ msgid "Hardware Defaults" +#~ msgstr "AparatĆ«ras noklusējums" + +#~ msgid "Camera Button" +#~ msgstr "Kameras poga" + +#~ msgid "Capture Image" +#~ msgstr "UzƆemt attēlu" + +#~ msgid "Capture Video" +#~ msgstr "UzƆemt video" + +#~ msgid "Photo" +#~ msgstr "Foto" + +#~ msgid "File" +#~ msgstr "Fails" + +#~ msgid "Increment Filename" +#~ msgstr "Automātiski pieaugoĆĄs" + +#~ msgid "Video" +#~ msgstr "Video" + +#~ msgid "Video Codec" +#~ msgstr "Video kodeks" + +#~ msgid "Video Codec Properties" +#~ msgstr "Video kodeka Ä«paĆĄÄ«bas" + +#~ msgid "Audio Codec" +#~ msgstr "Audio kodeks" + +#~ msgid "Audio Codec Properties" +#~ msgstr "Audio kodeka Ä«paĆĄÄ«bas" + +#~ msgid "Left" +#~ msgstr "Pa kreisi" + +#~ msgid "Right" +#~ msgstr "Pa labi" + +#~ msgid "Down" +#~ msgstr "Lejup" + +#~ msgid "Up" +#~ msgstr "AugĆĄup" + +#~ msgid "8 bit" +#~ msgstr "8 biti" + +#~ msgid "12 bit" +#~ msgstr "12 biti" + +#~ msgid "Auto Focus (continuous)" +#~ msgstr "Automātisks fokuss (nepārtraukts)" + +#~ msgid "set Focus" +#~ msgstr "iestatÄ«t fokusu" + +#, fuzzy +#~ msgid "_Apply" +#~ msgstr "Pielietot" + +#~ msgid "Frame Rate:" +#~ msgstr "Kadru ātrums:" + +#~ msgid "Resolution:" +#~ msgstr "IzĆĄÄ·irtspēja:" + +#~ msgid "Camera Output:" +#~ msgstr "Kameras izvade:" + +#~ msgid "---- Video Filters ----" +#~ msgstr "---- Video filtri ----" + +#~ msgid " Mirror" +#~ msgstr " Spogulis" + +#~ msgid " Invert" +#~ msgstr " Invertēt" + +#~ msgid " Negative" +#~ msgstr " NegatÄ«vs" + +#~ msgid " Mono" +#~ msgstr " Melnbalts" + +#~ msgid " Pieces" +#~ msgstr " MozaÄ«ka" + +#~ msgid " Particles" +#~ msgstr " DaÄŒiƆas" + +#, fuzzy +#~ msgid "Print version" +#~ msgstr "Izdrukas versija" + +#, fuzzy +#~ msgid "Set device name (def: /dev/video0)" +#~ msgstr "Video ierÄ«ce, kuru izmantot [noklusējums: /dev/video0]" + +#, fuzzy +#~ msgid "Set capture method [read | mmap (def)]" +#~ msgstr "UzƆemĆĄanas metode (1-mmap (noklusētais) 2-read)" + +#, fuzzy +#~ msgid "load control profile" +#~ msgstr "Ielādēt profilu" + +#, fuzzy +#~ msgid "" +#~ "Guvcview version %s\n" +#~ "\n" +#~ msgstr "Guvcview brÄ«dinājums:" + +#~ msgid "guvcview" +#~ msgstr "guvcview" + +#~ msgid "GTK UVC video viewer" +#~ msgstr "GTK UVC video skatÄ«tājs" + +#~ msgid "A video viewer and capturer for the linux uvc driver" +#~ msgstr "Video skatÄ«tājs un uzƆēmējs Linux UVC draiverim" + +#~ msgid "MPEG2 - (lavc)" +#~ msgstr "MPEG2 - (lavc)" + +#~ msgid "MP3 - (lavc)" +#~ msgstr "MP3 - (lavc)" + +#~ msgid "Dolby AC3 - (lavc)" +#~ msgstr "Dolby AC3 - (lavc)" + +#~ msgid "ACC Low - (faac)" +#~ msgstr "ACC Low - (faac)" + +#~ msgid "Audio" +#~ msgstr "SkaƆa" + +#~ msgid " Sound" +#~ msgstr " SkaƆa" + +#~ msgid " Show VU meter" +#~ msgstr " RādÄ«t skaƆas lÄ«meƆa indikatoru" + +#~ msgid "---- Audio Effects ----" +#~ msgstr "---- Audio efekti ----" + +#~ msgid "Save File" +#~ msgstr "Saglabāt failu" + +#~ msgid "codec values" +#~ msgstr "kodeka vērtÄ«bas" + +#~ msgid "Cap. Video" +#~ msgstr "UzƆemt video" + +#~ msgid "GUVCViewer Controls" +#~ msgstr "GUVCViewer vadÄ«klas" + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to open device" +#~ msgstr "" +#~ "Guvcview kÄŒĆ«da:\n" +#~ "\n" +#~ "Neizdevās atvērt ierÄ«ci" + +#~ msgid "" +#~ "Please make sure the camera is connected\n" +#~ "and that the correct driver is installed." +#~ msgstr "" +#~ "LĆ«dzu, pārliecinieties, vai kamera ir pievienota\n" +#~ "un pareizais draiveris ir instalēts." + +#~ msgid "" +#~ "Guvcview:\n" +#~ "\n" +#~ "UVC Extension controls" +#~ msgstr "" +#~ "Guvcview:\n" +#~ "\n" +#~ "UVC paplaĆĄinājumu vadÄ«klas" + +#~ msgid "Extension controls were added to the UVC driver" +#~ msgstr "PaplaĆĄinājumu vadÄ«klas tika pievienotas UVC draiverim" + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "UVC Extension controls" +#~ msgstr "" +#~ "Guvcview kÄŒĆ«da:\n" +#~ "\n" +#~ "UVC paplaĆĄinājumu vadÄ«klas" + +#~ msgid "" +#~ "An error occurred while adding extension\n" +#~ "controls to the UVC driver\n" +#~ "Make sure you run guvcview as root (or sudo)." +#~ msgstr "" +#~ "GadÄ«jās kÄŒĆ«da, pievienojot paplaĆĄinājumu\n" +#~ "vadÄ«klas UVC draiverim\n" +#~ "Pārliecinieties, vai guvcview tiek palaists kā root (vai sudo)." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Can't set a valid video stream for guvcview" +#~ msgstr "" +#~ "Guvcview kÄŒĆ«da:\n" +#~ "\n" +#~ "Neizdevās iestatÄ«t guvcview derÄ«gu video plĆ«smu" + +#~ msgid "" +#~ "Make sure your device driver is v4l2 compliant\n" +#~ "and that it is properly installed." +#~ msgstr "" +#~ "LĆ«dzu, pārliecinieties, vai ierÄ«ces draiveris ir v4l2 saderÄ«gs\n" +#~ "un vai tas ir pareizi instalēts." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to start with minimum setup" +#~ msgstr "" +#~ "Guvcview kÄŒĆ«da:\n" +#~ "\n" +#~ "Neizdevās sākt ar minimālajiem iestatÄ«jumiem" + +#~ msgid "Please reconnect your camera." +#~ msgstr "LĆ«dzu, pārvienojiet kameru." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Couldn't query device capabilities" +#~ msgstr "" +#~ "Guvcview kÄŒĆ«da:\n" +#~ "\n" +#~ "Neizdevās vaicājums ierÄ«ces iespējām" + +#~ msgid "Make sure the device driver supports v4l2." +#~ msgstr "Pārliecinieties, ka ierÄ«ces draiveris atbalsta v4l2." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Read method error" +#~ msgstr "" +#~ "Guvcview kÄŒĆ«da:\n" +#~ "\n" +#~ "LasÄ«ĆĄanas metodes kÄŒĆ«da" + +#~ msgid "Please try mmap instead (--capture_method=1)." +#~ msgstr "LĆ«dzu, mēģiniet mmap, --capture_method=1 vietā." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to allocate Buffers" +#~ msgstr "" +#~ "Guvcview kÄŒĆ«da:\n" +#~ "\n" +#~ "Neizdevās pieĆĄÄ·irt buferi" + +#~ msgid "Please try restarting your system." +#~ msgstr "LĆ«dzu, mēģiniet pārstartēt sistēmu." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to create Video Thread" +#~ msgstr "" +#~ "Guvcview kÄŒĆ«da:\n" +#~ "\n" +#~ "Neizdevās izveidot video dzÄ«slu" + +#~ msgid "Please report it to http://developer.berlios.de/bugs/?group_id=8179" +#~ msgstr "LĆ«dzu, paziƆojiet http://developer.berlios.de/bugs/?group_id=8179" + +#~ msgid "Bitmap (Bmp)" +#~ msgstr "Bitmap (Bmp)" + +#~ msgid "Portable Network Graphics (Png)" +#~ msgstr "Portable Network Graphics (Png)" + +#~ msgid "Displays debug information" +#~ msgstr "Attēlo atkÄŒĆ«doĆĄanas informāciju" + +#~ msgid "Exit after adding UVC extension controls (needs root/sudo)" +#~ msgstr "" +#~ "Iziet pēc UVC paplaĆĄinājuma vadÄ«klu pievienoĆĄanas (nepiecieĆĄams root/sudo)" + +#~ msgid "Don't stream video (image controls only)" +#~ msgstr "Nestraumēt video (tikai attēla vadÄ«klas)" + +#~ msgid "Don't display a GUI" +#~ msgstr "Neattēlot saskarni" + +#~ msgid "Configuration file" +#~ msgstr "Konfigurācijas fails" + +#~ msgid "Hardware accelaration (enable(1) | disable(0))" +#~ msgstr "AparatĆ«ras paātrinājums (ieslēgts(1) | izslēgts(0))" + +#~ msgid "" +#~ "Pixel format(mjpg|jpeg|yuyv|yvyu|uyvy|yyuv|yu12|yv12|nv12|nv21|nv16|nv61|" +#~ "y41p|grey|y10b|y16 |s501|s505|s508|gbrg|grbg|ba81|rggb|bgr3|rgb3)" +#~ msgstr "" +#~ "PikseÄŒa formāts(mjpg|jpeg|yuyv|yvyu|uyvy|yyuv|yu12|yv12|nv12|nv21|nv16|" +#~ "nv61|y41p|grey|y10b|y16 |s501|s505|s508|gbrg|grbg|ba81|rggb|bgr3|rgb3)" + +#~ msgid "Frame size, default: 640x480" +#~ msgstr "Kadra lielums, noklusējums: 640x480" + +#~ msgid "Image capture interval in seconds" +#~ msgstr "Attēlu uzƆemĆĄanas intervāls sekundēs" + +#~ msgid "Number of Pictures to capture" +#~ msgstr "Attēlu skaits, cik uzƆemt" + +#~ msgid "Video File name (capture from start)" +#~ msgstr "Video faila nosaukums (uzƆemt no sākuma)" + +#~ msgid "Video capture time (in seconds)" +#~ msgstr "Video uzƆemĆĄanas laiks (sekundēs)" + +#~ msgid "Exits guvcview after closing video" +#~ msgstr "Iziet guvcview pēc video aizvērĆĄanas" + +#~ msgid "Number of initial frames to skip" +#~ msgstr "Pirmreizējo kadru skaits, ko izlaist" + +#~ msgid "Show FPS value (enable(1) | disable (0))" +#~ msgstr "RādÄ«t kadrātruma vērtÄ«bu (ieslēgts(1) | izslēgts(0))" + +#~ msgid "Load Profile at start" +#~ msgstr "Ielādēt profilu sākot" + +#~ msgid "- local options" +#~ msgstr "- lokālās opcijas" + +#~ msgid "Cap. Image" +#~ msgstr "UzƆemt attēlu" + +#~ msgid "Not enough free space left on disk" +#~ msgstr "Diskā nav pietiekami daudz brÄ«vas vietas" + +#~ msgid "YUY2 - uncomp YUV" +#~ msgstr "YUY2 - nesaspiests YUV" + +#~ msgid "RGB - uncomp BMP" +#~ msgstr "RGB - nesaspiests BMP" + +#~ msgid "AVI - avi format" +#~ msgstr "AVI - avi formāts" + +#~ msgid "MKV - Matroska format" +#~ msgstr "MKV - Matroska formāts" + +#~ msgid "WEBM - format" +#~ msgstr "WEBM - formāts" + +#~ msgid " Show" +#~ msgstr " RādÄ«t" + +#~ msgid "Quality:" +#~ msgstr "Kvalitāte:" diff -Nru guvcview-1.7.3/po/gview_v4l2core/Makefile.in.in guvcview-2.0.1+ubuntu1~ppa1/po/gview_v4l2core/Makefile.in.in --- guvcview-1.7.3/po/gview_v4l2core/Makefile.in.in 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/po/gview_v4l2core/Makefile.in.in 2014-10-05 10:41:44.000000000 +0000 @@ -0,0 +1,222 @@ +# Makefile for program source directory in GNU NLS utilities package. +# Copyright (C) 1995, 1996, 1997 by Ulrich Drepper +# Copyright (C) 2004-2008 Rodney Dawes +# +# This file may be copied and used freely without restrictions. It may +# be used in projects which are not available under a GNU Public License, +# but which still want to provide support for the GNU gettext functionality. +# +# - Modified by Owen Taylor to use GETTEXT_PACKAGE +# instead of PACKAGE and to look for po2tbl in ./ not in intl/ +# +# - Modified by jacob berkman to install +# Makefile.in.in and po2tbl.sed.in for use with glib-gettextize +# +# - Modified by Rodney Dawes for use with intltool +# +# We have the following line for use by intltoolize: +# INTLTOOL_MAKEFILE + +GETTEXT_PACKAGE = @GETTEXT_PACKAGE_V4L2CORE@ +PACKAGE = @PACKAGE@ +VERSION = @VERSION@ + +SHELL = @SHELL@ + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +top_builddir = @top_builddir@ +VPATH = @srcdir@ + +prefix = @prefix@ +exec_prefix = @exec_prefix@ +datadir = @datadir@ +datarootdir = @datarootdir@ +libdir = @libdir@ +DATADIRNAME = @DATADIRNAME@ +itlocaledir = $(prefix)/$(DATADIRNAME)/locale +subdir = po/$(GETTEXT_PACKAGE) +install_sh = @install_sh@ +# Automake >= 1.8 provides @mkdir_p@. +# Until it can be supposed, use the safe fallback: +mkdir_p = $(install_sh) -d + +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ + +GMSGFMT = @GMSGFMT@ +MSGFMT = @MSGFMT@ +XGETTEXT = @XGETTEXT@ +INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ +INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ +MSGMERGE = INTLTOOL_EXTRACT="$(INTLTOOL_EXTRACT)" XGETTEXT="$(XGETTEXT) --directory=.." srcdir=$(srcdir) $(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --dist +GENPOT = INTLTOOL_EXTRACT="$(INTLTOOL_EXTRACT)" XGETTEXT="$(XGETTEXT) --directory=.." srcdir=$(srcdir) $(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --pot + +ALL_LINGUAS = @ALL_LINGUAS@ + +PO_LINGUAS=$(shell if test -r $(srcdir)/LINGUAS; then grep -v "^\#" $(srcdir)/LINGUAS; else echo "$(ALL_LINGUAS)"; fi) + +USER_LINGUAS=$(shell if test -n "$(LINGUAS)"; then LLINGUAS="$(LINGUAS)"; ALINGUAS="$(ALL_LINGUAS)"; for lang in $$LLINGUAS; do if test -n "`grep \^$$lang$$ $(srcdir)/LINGUAS 2>/dev/null`" -o -n "`echo $$ALINGUAS|tr ' ' '\n'|grep \^$$lang$$`"; then printf "$$lang "; fi; done; fi) + +USE_LINGUAS=$(shell if test -n "$(USER_LINGUAS)" -o -n "$(LINGUAS)"; then LLINGUAS="$(USER_LINGUAS)"; else if test -n "$(PO_LINGUAS)"; then LLINGUAS="$(PO_LINGUAS)"; else LLINGUAS="$(ALL_LINGUAS)"; fi; fi; for lang in $$LLINGUAS; do printf "$$lang "; done) + +POFILES=$(shell LINGUAS="$(PO_LINGUAS)"; for lang in $$LINGUAS; do printf "$$lang.po "; done) + +DISTFILES = Makefile.in.in POTFILES.in $(POFILES) +EXTRA_DISTFILES = ChangeLog POTFILES.skip Makevars LINGUAS + +POTFILES = \ +# This comment gets stripped out + +CATALOGS=$(shell LINGUAS="$(USE_LINGUAS)"; for lang in $$LINGUAS; do printf "$$lang.gmo "; done) + +.SUFFIXES: +.SUFFIXES: .po .pox .gmo .mo .msg .cat + +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +INTLTOOL_V_MSGFMT = $(INTLTOOL__v_MSGFMT_$(V)) +INTLTOOL__v_MSGFMT_= $(INTLTOOL__v_MSGFMT_$(AM_DEFAULT_VERBOSITY)) +INTLTOOL__v_MSGFMT_0 = @echo " MSGFMT" $@; + +.po.pox: + $(MAKE) $(GETTEXT_PACKAGE).pot + $(MSGMERGE) $< $(GETTEXT_PACKAGE).pot -o $*.pox + +.po.mo: + $(INTLTOOL_V_MSGFMT)$(MSGFMT) -o $@ $< + +.po.gmo: + $(INTLTOOL_V_MSGFMT)file=`echo $* | sed 's,.*/,,'`.gmo \ + && rm -f $$file && $(GMSGFMT) -o $$file $< + +.po.cat: + sed -f ../intl/po2msg.sed < $< > $*.msg \ + && rm -f $@ && gencat $@ $*.msg + + +all: all-@USE_NLS@ + +all-yes: $(CATALOGS) +all-no: + +$(GETTEXT_PACKAGE).pot: $(POTFILES) + $(GENPOT) + +install: install-data +install-data: install-data-@USE_NLS@ +install-data-no: all +install-data-yes: all + linguas="$(USE_LINGUAS)"; \ + for lang in $$linguas; do \ + dir=$(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES; \ + $(mkdir_p) $$dir; \ + if test -r $$lang.gmo; then \ + $(INSTALL_DATA) $$lang.gmo $$dir/$(GETTEXT_PACKAGE).mo; \ + echo "installing $$lang.gmo as $$dir/$(GETTEXT_PACKAGE).mo"; \ + else \ + $(INSTALL_DATA) $(srcdir)/$$lang.gmo $$dir/$(GETTEXT_PACKAGE).mo; \ + echo "installing $(srcdir)/$$lang.gmo as" \ + "$$dir/$(GETTEXT_PACKAGE).mo"; \ + fi; \ + if test -r $$lang.gmo.m; then \ + $(INSTALL_DATA) $$lang.gmo.m $$dir/$(GETTEXT_PACKAGE).mo.m; \ + echo "installing $$lang.gmo.m as $$dir/$(GETTEXT_PACKAGE).mo.m"; \ + else \ + if test -r $(srcdir)/$$lang.gmo.m ; then \ + $(INSTALL_DATA) $(srcdir)/$$lang.gmo.m \ + $$dir/$(GETTEXT_PACKAGE).mo.m; \ + echo "installing $(srcdir)/$$lang.gmo.m as" \ + "$$dir/$(GETTEXT_PACKAGE).mo.m"; \ + else \ + true; \ + fi; \ + fi; \ + done + +# Empty stubs to satisfy archaic automake needs +dvi info ctags tags CTAGS TAGS ID: + +# Define this as empty until I found a useful application. +install-exec installcheck: + +uninstall: + linguas="$(USE_LINGUAS)"; \ + for lang in $$linguas; do \ + rm -f $(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo; \ + rm -f $(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo.m; \ + done + +check: all $(GETTEXT_PACKAGE).pot + rm -f missing notexist + srcdir=$(srcdir) $(INTLTOOL_UPDATE) -m + if [ -r missing -o -r notexist ]; then \ + exit 1; \ + fi + +mostlyclean: + rm -f *.pox $(GETTEXT_PACKAGE).pot *.old.po cat-id-tbl.tmp + rm -f .intltool-merge-cache + +clean: mostlyclean + +distclean: clean + rm -f Makefile Makefile.in POTFILES stamp-it + rm -f *.mo *.msg *.cat *.cat.m *.gmo + +maintainer-clean: distclean + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." + rm -f Makefile.in.in + +distdir = ../$(PACKAGE)-$(VERSION)/$(subdir) +dist distdir: $(DISTFILES) + dists="$(DISTFILES)"; \ + extra_dists="$(EXTRA_DISTFILES)"; \ + for file in $$extra_dists; do \ + test -f $(srcdir)/$$file && dists="$$dists $(srcdir)/$$file"; \ + done; \ + for file in $$dists; do \ + test -f $$file || file="$(srcdir)/$$file"; \ + ln $$file $(distdir) 2> /dev/null \ + || cp -p $$file $(distdir); \ + done + +update-po: Makefile + $(MAKE) $(GETTEXT_PACKAGE).pot + tmpdir=`pwd`; \ + linguas="$(USE_LINGUAS)"; \ + for lang in $$linguas; do \ + echo "$$lang:"; \ + result="`$(MSGMERGE) -o $$tmpdir/$$lang.new.po $$lang`"; \ + if $$result; then \ + if cmp $(srcdir)/$$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \ + rm -f $$tmpdir/$$lang.new.po; \ + else \ + if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \ + :; \ + else \ + echo "msgmerge for $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \ + rm -f $$tmpdir/$$lang.new.po; \ + exit 1; \ + fi; \ + fi; \ + else \ + echo "msgmerge for $$lang.gmo failed!"; \ + rm -f $$tmpdir/$$lang.new.po; \ + fi; \ + done + +Makefile POTFILES: stamp-it + @if test ! -f $@; then \ + rm -f stamp-it; \ + $(MAKE) stamp-it; \ + fi + +stamp-it: Makefile.in.in $(top_builddir)/config.status POTFILES.in + cd $(top_builddir) \ + && CONFIG_FILES=$(subdir)/Makefile.in CONFIG_HEADERS= CONFIG_LINKS= \ + $(SHELL) ./config.status + +# Tell versions [3.59,3.63) of GNU make not to export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff -Nru guvcview-1.7.3/po/gview_v4l2core/Makevars guvcview-2.0.1+ubuntu1~ppa1/po/gview_v4l2core/Makevars --- guvcview-1.7.3/po/gview_v4l2core/Makevars 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/po/gview_v4l2core/Makevars 2014-10-05 10:41:44.000000000 +0000 @@ -0,0 +1,41 @@ +# Makefile variables for PO directory in any package using GNU gettext. + +# Usually the message domain is the same as the package name. +DOMAIN = $(PACKAGE_V4L2CORE) + +# These two variables depend on the location of this directory. +subdir = po/gview_v4l2core +top_builddir = ../.. + +# These options get passed to xgettext. +XGETTEXT_OPTIONS = --keyword=_ --keyword=N_ --keyword=C_ --keyword=Q_ --from-code=UTF-8 + +# This is the copyright holder that gets inserted into the header of the +# $(DOMAIN).pot file. Set this to the copyright holder of the surrounding +# package. (Note that the msgstr strings, extracted from the package's +# sources, belong to the copyright holder of the package.) Translators are +# expected to transfer the copyright for their translations to this person +# or entity, or to disclaim their copyright. The empty string stands for +# the public domain; in this case the translators are expected to disclaim +# their copyright. +COPYRIGHT_HOLDER = Paulo Assis + +# This is the email address or URL to which the translators shall report +# bugs in the untranslated strings: +# - Strings which are not entire sentences, see the maintainer guidelines +# in the GNU gettext documentation, section 'Preparing Strings'. +# - Strings which use unclear terms or require additional context to be +# understood. +# - Strings which make invalid assumptions about notation of date, time or +# money. +# - Pluralisation problems. +# - Incorrect English spelling. +# - Incorrect formatting. +# It can be your email address, or a mailing list address where translators +# can write to without being subscribed, or the URL of a web page through +# which the translators can contact you. +MSGID_BUGS_ADDRESS = pj.assis@gmail.com + +# This is the list of locale categories, beyond LC_MESSAGES, for which the +# message catalogs shall be used. It is usually empty. +EXTRA_LOCALE_CATEGORIES = diff -Nru guvcview-1.7.3/po/gview_v4l2core/nl.po guvcview-2.0.1+ubuntu1~ppa1/po/gview_v4l2core/nl.po --- guvcview-1.7.3/po/gview_v4l2core/nl.po 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/po/gview_v4l2core/nl.po 2014-10-05 10:41:44.000000000 +0000 @@ -0,0 +1,955 @@ +# Dutch translation for guvcview +# Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 +# This file is distributed under the same license as the guvcview package. +# FIRST AUTHOR , 2009. +# +msgid "" +msgstr "" +"Project-Id-Version: guvcview\n" +"Report-Msgid-Bugs-To: pj.assis@gmail.com\n" +"POT-Creation-Date: 2014-08-17 22:49+0100\n" +"PO-Revision-Date: 2013-05-04 16:28+0000\n" +"Last-Translator: Pjotr12345 \n" +"Language-Team: Dutch \n" +"Language: nl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2013-12-08 10:36+0000\n" +"X-Generator: Launchpad (build 16869)\n" + +#. +#. * needed only for language files (not used) +#. +#. V4L2 control strings +#: ../gview_v4l2core/v4l2_controls.c:49 +msgid "User Controls" +msgstr "Bedieningsknoppen voor gebruiker" + +#: ../gview_v4l2core/v4l2_controls.c:50 +msgid "Brightness" +msgstr "Helderheid" + +#: ../gview_v4l2core/v4l2_controls.c:51 +msgid "Contrast" +msgstr "Contrast" + +#: ../gview_v4l2core/v4l2_controls.c:52 +msgid "Hue" +msgstr "Tint" + +#: ../gview_v4l2core/v4l2_controls.c:53 +msgid "Saturation" +msgstr "Verzadiging" + +#: ../gview_v4l2core/v4l2_controls.c:54 +msgid "Sharpness" +msgstr "Scherpte" + +#: ../gview_v4l2core/v4l2_controls.c:55 +msgid "Gamma" +msgstr "Gamma" + +#: ../gview_v4l2core/v4l2_controls.c:56 +msgid "Backlight Compensation" +msgstr "Achtergrondverlichtingscompensatie" + +#: ../gview_v4l2core/v4l2_controls.c:57 +msgid "Power Line Frequency" +msgstr "Frequentie van de elektrische aansluiting" + +#: ../gview_v4l2core/v4l2_controls.c:58 +msgid "Hue, Automatic" +msgstr "Waas, automatisch" + +#: ../gview_v4l2core/v4l2_controls.c:59 +msgid "Focus, Auto" +msgstr "Scherpstelling, automatisch" + +#: ../gview_v4l2core/v4l2_controls.c:60 +msgid "Manual Mode" +msgstr "Handmatige modus" + +#: ../gview_v4l2core/v4l2_controls.c:61 +msgid "Auto Mode" +msgstr "Automatische modus" + +#: ../gview_v4l2core/v4l2_controls.c:62 +msgid "Shutter Priority Mode" +msgstr "Voorkeurmodus van sluiter" + +#: ../gview_v4l2core/v4l2_controls.c:63 +msgid "Aperture Priority Mode" +msgstr "Voorkeurmodus van lensopening" + +#: ../gview_v4l2core/v4l2_controls.c:64 +msgid "Black Level" +msgstr "Zwartniveau" + +#: ../gview_v4l2core/v4l2_controls.c:65 +msgid "White Balance, Automatic" +msgstr "Witbalans, automatisch" + +#: ../gview_v4l2core/v4l2_controls.c:66 +msgid "Do White Balance" +msgstr "Pas witbalans toe" + +#: ../gview_v4l2core/v4l2_controls.c:67 +msgid "Red Balance" +msgstr "Roodbalans" + +#: ../gview_v4l2core/v4l2_controls.c:68 +msgid "Blue Balance" +msgstr "Blauwbalans" + +#: ../gview_v4l2core/v4l2_controls.c:69 +msgid "Exposure" +msgstr "Belichting" + +#: ../gview_v4l2core/v4l2_controls.c:70 +msgid "Gain, Automatic" +msgstr "Versterking, automatisch" + +#: ../gview_v4l2core/v4l2_controls.c:71 +msgid "Gain" +msgstr "Versterking" + +#: ../gview_v4l2core/v4l2_controls.c:72 +msgid "Horizontal Flip" +msgstr "Horizontaal spiegelen" + +#: ../gview_v4l2core/v4l2_controls.c:73 +msgid "Vertical Flip" +msgstr "Verticaal spiegelen" + +#: ../gview_v4l2core/v4l2_controls.c:74 +msgid "Horizontal Center" +msgstr "Horizontaal centreren" + +#: ../gview_v4l2core/v4l2_controls.c:75 +msgid "Vertical Center" +msgstr "Verticaal centreren" + +#: ../gview_v4l2core/v4l2_controls.c:76 +msgid "Chroma AGC" +msgstr "Chroma AGC" + +#: ../gview_v4l2core/v4l2_controls.c:77 +msgid "Color Killer" +msgstr "Kleurdoder" + +#: ../gview_v4l2core/v4l2_controls.c:78 +msgid "Color Effects" +msgstr "Kleureffecten" + +#. CAMERA CLASS control strings +#: ../gview_v4l2core/v4l2_controls.c:81 +msgid "Camera Controls" +msgstr "Bedieningsknoppen voor camera" + +#: ../gview_v4l2core/v4l2_controls.c:82 +msgid "Auto Exposure" +msgstr "Autobelichting" + +#: ../gview_v4l2core/v4l2_controls.c:83 +msgid "Exposure Time, Absolute" +msgstr "Belichtingstijd, absoluut" + +#: ../gview_v4l2core/v4l2_controls.c:84 +msgid "Exposure, Dynamic Framerate" +msgstr "Belichtingstijd, dynamische opnamesnelheid" + +#: ../gview_v4l2core/v4l2_controls.c:85 +msgid "Pan, Relative" +msgstr "Meedraaien, relatief" + +#: ../gview_v4l2core/v4l2_controls.c:86 +msgid "Tilt, Relative" +msgstr "Kantelen, relatief" + +#: ../gview_v4l2core/v4l2_controls.c:87 +msgid "Pan, Reset" +msgstr "Meedraaien, terugzetten op standaardwaarden" + +#: ../gview_v4l2core/v4l2_controls.c:88 +msgid "Tilt, Reset" +msgstr "Kantelen, terugzetten op standaardwaarden" + +#: ../gview_v4l2core/v4l2_controls.c:89 +msgid "Pan, Absolute" +msgstr "Meedraaien, absoluut" + +#: ../gview_v4l2core/v4l2_controls.c:91 +msgid "Focus, Absolute" +msgstr "Scherpstellen, absoluut" + +#: ../gview_v4l2core/v4l2_controls.c:92 +msgid "Focus, Relative" +msgstr "Scherpstellen, relatief" + +#: ../gview_v4l2core/v4l2_controls.c:93 +msgid "Focus, Automatic" +msgstr "Scherpstellen, automatisch" + +#: ../gview_v4l2core/v4l2_controls.c:94 +msgid "Zoom, Absolute" +msgstr "Zoomen, absoluut" + +#: ../gview_v4l2core/v4l2_controls.c:95 +msgid "Zoom, Relative" +msgstr "Zoomen, relatief" + +#: ../gview_v4l2core/v4l2_controls.c:96 +msgid "Zoom, Continuous" +msgstr "Zoomen, bij voortduring" + +#: ../gview_v4l2core/v4l2_controls.c:97 +msgid "Privacy" +msgstr "PrivĂ©leven" + +#. UVC specific control strings +#: ../gview_v4l2core/v4l2_controls.c:100 +msgid "Exposure, Auto" +msgstr "Belichting, auto" + +#: ../gview_v4l2core/v4l2_controls.c:101 +msgid "Exposure, Auto Priority" +msgstr "Belichting, auto-prioriteit" + +#: ../gview_v4l2core/v4l2_controls.c:102 +msgid "Exposure (Absolute)" +msgstr "Belichting (absoluut)" + +#: ../gview_v4l2core/v4l2_controls.c:103 +msgid "White Balance Temperature, Auto" +msgstr "Witbalanstemperatuur, auto" + +#: ../gview_v4l2core/v4l2_controls.c:104 +msgid "White Balance Temperature" +msgstr "Witbalanstemperatuur" + +#: ../gview_v4l2core/v4l2_controls.c:105 +msgid "White Balance Component, Auto" +msgstr "Witbalans-onderdeel, auto" + +#: ../gview_v4l2core/v4l2_controls.c:106 +msgid "White Balance Blue Component" +msgstr "Blauw witbalansonderdeel" + +#: ../gview_v4l2core/v4l2_controls.c:107 +msgid "White Balance Red Component" +msgstr "Rood witbalansonderdeel" + +#. libwebcam specific control strings +#: ../gview_v4l2core/v4l2_controls.c:110 +msgid "Focus" +msgstr "Scherpstelling" + +#: ../gview_v4l2core/v4l2_controls.c:111 +msgid "Focus (Absolute)" +msgstr "Scherpstelling (absoluut)" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:63 +msgid "Off" +msgstr "Uit" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:64 +msgid "On" +msgstr "Aan" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:65 +msgid "Blinking" +msgstr "Knipperen" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:66 +msgid "Auto" +msgstr "Auto" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:73 +msgid "Pan (relative)" +msgstr "Meedraaien (relatief)" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:86 +msgid "Tilt (relative)" +msgstr "Kantelen (relatief)" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:99 +msgid "Pan Reset" +msgstr "Meedraaien terugzetten op standaardwaarden" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:112 +msgid "Tilt Reset" +msgstr "Kantelen terugzetten op standaardwaarden" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:125 +msgid "Focus (absolute)" +msgstr "Scherpstellen (absoluut)" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:138 +msgid "LED1 Mode" +msgstr "LED1-modus" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:151 +msgid "LED1 Frequency" +msgstr "LED1-frequentie" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:164 +msgid "Disable video processing" +msgstr "Videobewerking uitschakelen" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:177 +msgid "Raw bits per pixel" +msgstr "Ruwe bits per pixel" + +#, fuzzy +#~ msgid "PCM - uncompressed (float 32 bit)" +#~ msgstr "PCM - niet-gecomprimeerd (16 bit)" + +#~ msgid "Vorbis" +#~ msgstr "Vorbis" + +#, fuzzy +#~ msgid "Raw camera input" +#~ msgstr "Camera-uitvoer:" + +#~ msgid "MJPG - compressed" +#~ msgstr "MJPG - gecomprimeerd" + +#~ msgid "MPEG video 1" +#~ msgstr "MPEG video 1" + +#~ msgid "FLV1 - flash video 1" +#~ msgstr "FLV1 - flash video 1" + +#~ msgid "WMV1 - win. med. video 7" +#~ msgstr "WMV1 - win. med. video 7" + +#~ msgid "MPG2 - MPG2 format" +#~ msgstr "MPG2 - MPG2 formaat" + +#~ msgid "MS MP4 V3" +#~ msgstr "MS MP4 V3" + +#~ msgid "MPEG4-ASP" +#~ msgstr "MPEG4-ASP" + +#~ msgid "MPEG4-AVC (H264)" +#~ msgstr "MPEG4-AVC (H264)" + +#~ msgid "VP8 (VP8)" +#~ msgstr "VP8 (VP8)" + +#~ msgid "Theora (ogg theora)" +#~ msgstr "Theora (ogg theora)" + +#~ msgid "Audio API:" +#~ msgstr "Audio API:" + +#~ msgid "PORTAUDIO" +#~ msgstr "PORTAUDIO" + +#~ msgid "PULSEAUDIO" +#~ msgstr "PULSEAUDIO" + +#~ msgid "Input Device:" +#~ msgstr "Invoerapparaat:" + +#~ msgid "Sample Rate:" +#~ msgstr "Samplesnelheid:" + +#~ msgid "Dev. Default" +#~ msgstr "Dev. standaard" + +#~ msgid "Channels:" +#~ msgstr "Kanalen:" + +#~ msgid "1 - mono" +#~ msgstr "1 - mono" + +#~ msgid "2 - stereo" +#~ msgstr "2 - stereo" + +#, fuzzy +#~ msgid "---- Audio Filters ----" +#~ msgstr "---- Videofilters ----" + +#~ msgid " Echo" +#~ msgstr " Echo" + +#~ msgid " Reverb" +#~ msgstr " Weergalm" + +#~ msgid " Fuzz" +#~ msgstr " Fuzz" + +#~ msgid " WahWah" +#~ msgstr " WahWah" + +#~ msgid " Ducky" +#~ msgstr " Ducky" + +#~ msgid "Stop Video (V)" +#~ msgstr "Stop Video (V)" + +#~ msgid "Cap. Video (V)" +#~ msgstr "Video Vastleggen (V)" + +#~ msgid "Error" +#~ msgstr "Fout" + +#, fuzzy +#~ msgid "_Cancel" +#~ msgstr "annuleren" + +#~ msgid "" +#~ "\n" +#~ "You have more than one video device installed.\n" +#~ "Do you want to try another one ?\n" +#~ msgstr "" +#~ "\n" +#~ "U hebt meer dan Ă©Ă©n video-apparaat geĂŻnstalleerd.\n" +#~ "Wilt u een ander proberen?\n" + +#~ msgid "Device:" +#~ msgstr "Apparaat:" + +#~ msgid "Guvcview Video Capture" +#~ msgstr "Guvcview video-opname" + +#, fuzzy +#~ msgid "Guvcview" +#~ msgstr "guvcview" + +#, fuzzy +#~ msgid "Stop Cap. (I)" +#~ msgstr "Stop Auto (I)" + +#~ msgid "Cap. Image (I)" +#~ msgstr "Afbeelding vastleggen (I)" + +#~ msgid "Image Controls" +#~ msgstr "Fotobedieningsknoppen" + +#, fuzzy +#~ msgid "Video Controls" +#~ msgstr "Bedieningsknoppen voor gebruiker" + +#, fuzzy +#~ msgid "Audio Controls" +#~ msgstr "Bedieningsknoppen voor gebruiker" + +#~ msgid "Save Profile" +#~ msgstr "Profiel opslaan" + +#~ msgid "Load Profile" +#~ msgstr "Profiel laden" + +#~ msgid "File Format:" +#~ msgstr "Bestandtype:" + +#, fuzzy +#~ msgid "Photo file name" +#~ msgstr "Naam van fotobestand" + +#, fuzzy +#~ msgid "Raw (*.raw)" +#~ msgstr "Raw Image (raw)" + +#, fuzzy +#~ msgid "Jpeg (*.jpg)" +#~ msgstr "Jpeg (jpg)" + +#, fuzzy +#~ msgid "Video file name" +#~ msgstr "Naam van fotobestand" + +#~ msgid "start new" +#~ msgstr "start nieuw" + +#~ msgid "restart" +#~ msgstr "herstarten" + +#~ msgid "new" +#~ msgstr "nieuw" + +#~ msgid "cancel" +#~ msgstr "annuleren" + +#~ msgid "" +#~ "launch new process or restart?.\n" +#~ "\n" +#~ msgstr "" +#~ "nieuw proces starten of herstarten?\n" +#~ "\n" + +#, fuzzy +#~ msgid "video codec values" +#~ msgstr "audio codec-waarden" + +#~ msgid "" +#~ " encoder fps: \n" +#~ " (0 - use fps combobox value)" +#~ msgstr "" +#~ " encoder fps: \n" +#~ " (0 - gebruik fps-comboboxwaarde)" + +#~ msgid " monotonic pts" +#~ msgstr " monotonic pts" + +#~ msgid "bit rate: " +#~ msgstr "bitrate: " + +#~ msgid "qmax: " +#~ msgstr "qmax: " + +#~ msgid "qmin: " +#~ msgstr "qmin: " + +#~ msgid "max. qdiff: " +#~ msgstr "max. qdiff: " + +#~ msgid "dia size: " +#~ msgstr "diagrootte: " + +#~ msgid "pre dia size: " +#~ msgstr "pre-diagrootte: " + +#~ msgid "pre me: " +#~ msgstr "pre me: " + +#~ msgid "pre cmp: " +#~ msgstr "pre cmp: " + +#~ msgid "cmp: " +#~ msgstr "cmp: " + +#~ msgid "sub cmp: " +#~ msgstr "sub cmp: " + +#~ msgid "last predictor count: " +#~ msgstr "laatste telling van voorspeller: " + +#~ msgid "gop size: " +#~ msgstr "gop-grootte: " + +#~ msgid "qcompress: " +#~ msgstr "qcompress: " + +#~ msgid "qblur: " +#~ msgstr "qblur: " + +#~ msgid "subq: " +#~ msgstr "subq: " + +#~ msgid "framerefs: " +#~ msgstr "framerefs: " + +#~ msgid "me method: " +#~ msgstr "me-methode: " + +#~ msgid "mb decision: " +#~ msgstr "mb-besluit: " + +#~ msgid "max B frames: " +#~ msgstr "max B frames: " + +#~ msgid "num threads: " +#~ msgstr "num threads: " + +#~ msgid "audio codec values" +#~ msgstr "audio codec-waarden" + +#~ msgid "sample format: " +#~ msgstr "bestandtype van voorbeeld: " + +#~ msgid "Settings" +#~ msgstr "Instellingen" + +#~ msgid "Hardware Defaults" +#~ msgstr "Apparatuurstandaarden" + +#~ msgid "Camera Button" +#~ msgstr "Cameraknop" + +#~ msgid "Capture Image" +#~ msgstr "Afbeelding vastleggen" + +#~ msgid "Capture Video" +#~ msgstr "Video vastleggen" + +#~ msgid "Photo" +#~ msgstr "Foto" + +#~ msgid "File" +#~ msgstr "Bestand" + +#~ msgid "Increment Filename" +#~ msgstr "Bestandnaam aanvullen" + +#~ msgid "Video" +#~ msgstr "Video" + +#~ msgid "Video Codec" +#~ msgstr "Videocodec" + +#~ msgid "Video Codec Properties" +#~ msgstr "Eigenschappen van videocodec" + +#~ msgid "Audio Codec" +#~ msgstr "Audiocodec" + +#~ msgid "Audio Codec Properties" +#~ msgstr "Eigenschappen van audiocodec" + +#~ msgid "Left" +#~ msgstr "Links" + +#~ msgid "Right" +#~ msgstr "Rechts" + +#~ msgid "Down" +#~ msgstr "Omlaag" + +#~ msgid "Up" +#~ msgstr "Omhoog" + +#~ msgid "8 bit" +#~ msgstr "8-bit" + +#~ msgid "12 bit" +#~ msgstr "12-bit" + +#~ msgid "Auto Focus (continuous)" +#~ msgstr "Automatische scherpstelling (voortdurend)" + +#~ msgid "set Focus" +#~ msgstr "scherpstelling instellen" + +#, fuzzy +#~ msgid "_Apply" +#~ msgstr "Toepassen" + +#~ msgid "Frame Rate:" +#~ msgstr "Beelden per seconde:" + +#~ msgid "Resolution:" +#~ msgstr "Resolutie:" + +#~ msgid "Camera Output:" +#~ msgstr "Camera-uitvoer:" + +#~ msgid "---- Video Filters ----" +#~ msgstr "---- Videofilters ----" + +#~ msgid " Mirror" +#~ msgstr " Spiegelen" + +#~ msgid " Invert" +#~ msgstr " Omdraaien" + +#~ msgid " Negative" +#~ msgstr " Negatief" + +#~ msgid " Mono" +#~ msgstr " Mono" + +#~ msgid " Pieces" +#~ msgstr " Delen" + +#~ msgid " Particles" +#~ msgstr " Deeltjes" + +#, fuzzy +#~ msgid "Print version" +#~ msgstr "Drukt versie af" + +#, fuzzy +#~ msgid "Set device name (def: /dev/video0)" +#~ msgstr "Te gebruiken video-apparaat [standaard: /dev/video0]" + +#, fuzzy +#~ msgid "Set capture method [read | mmap (def)]" +#~ msgstr "Opnamemethode (1-mmap (standaard) 2-read)" + +#, fuzzy +#~ msgid "load control profile" +#~ msgstr "Profiel laden" + +#, fuzzy +#~ msgid "" +#~ "Guvcview version %s\n" +#~ "\n" +#~ msgstr "Guvcview -waarschuwing:" + +#, fuzzy +#~ msgid "saving video to %s" +#~ msgstr "video wordt vastgelegd naar" + +#~ msgid "guvcview" +#~ msgstr "guvcview" + +#~ msgid "GTK UVC video viewer" +#~ msgstr "GTK UVC videokijker" + +#~ msgid "A video viewer and capturer for the linux uvc driver" +#~ msgstr "" +#~ "Een programma voor het bekijken en opnemen van video, voor het " +#~ "Linuxstuurprogramma uvc" + +#~ msgid "MPEG2 - (lavc)" +#~ msgstr "MPEG2 - (lavc)" + +#~ msgid "MP3 - (lavc)" +#~ msgstr "MP3 - (lavc)" + +#~ msgid "Dolby AC3 - (lavc)" +#~ msgstr "Dolby AC3 - (lavc)" + +#~ msgid "ACC Low - (faac)" +#~ msgstr "ACC Low - (faac)" + +#~ msgid "Audio" +#~ msgstr "Audio" + +#~ msgid " Sound" +#~ msgstr " Geluid" + +#~ msgid " Show VU meter" +#~ msgstr " VU-meter tonen" + +#~ msgid "---- Audio Effects ----" +#~ msgstr "---- Audio-effecten ----" + +#~ msgid "Save File" +#~ msgstr "Bestand opslaan" + +#~ msgid "codec values" +#~ msgstr "codecwaarden" + +#~ msgid "capturing photo to" +#~ msgstr "foto wordt vastgelegd naar" + +#~ msgid "Cap. Video" +#~ msgstr "Video opn." + +#~ msgid "GUVCViewer Controls" +#~ msgstr "GUVCkijker bedieningsknoppen" + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to open device" +#~ msgstr "" +#~ "Guvcview-fout:\n" +#~ "\n" +#~ "Kan apparaat niet openen" + +#~ msgid "" +#~ "Please make sure the camera is connected\n" +#~ "and that the correct driver is installed." +#~ msgstr "" +#~ "Zorg er a.u.b. voor, dat de camera is verbonden\n" +#~ "en dat het juiste stuurprogramma is geĂŻnstalleerd." + +#~ msgid "" +#~ "Guvcview:\n" +#~ "\n" +#~ "UVC Extension controls" +#~ msgstr "" +#~ "Guvcview:\n" +#~ "\n" +#~ "Bedieningsknoppen voor UVC Extensie" + +#~ msgid "Extension controls were added to the UVC driver" +#~ msgstr "" +#~ "Bedieningsknoppen voor extensie werden toegevoegd aan het UVC-" +#~ "stuurprogramma" + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "UVC Extension controls" +#~ msgstr "" +#~ "Guvcview-fout:\n" +#~ "\n" +#~ "Bedieningsknoppen voor UVC Extensie" + +#~ msgid "" +#~ "An error occurred while adding extension\n" +#~ "controls to the UVC driver\n" +#~ "Make sure you run guvcview as root (or sudo)." +#~ msgstr "" +#~ "Er is een fout opgetreden tijdens het\n" +#~ "toevoegen van bedieningsknoppen aan\n" +#~ "het UVC-stuurprogramma.\n" +#~ "Zorg ervoor dat u guvcview draait als root\n" +#~ "(of met sudo)." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Can't set a valid video stream for guvcview" +#~ msgstr "" +#~ "Guvcview-fout:\n" +#~ "\n" +#~ "Kan geen geldige videostroom instellen voor guvcview" + +#~ msgid "" +#~ "Make sure your device driver is v4l2 compliant\n" +#~ "and that it is properly installed." +#~ msgstr "" +#~ "Zorg ervoor dat het stuurprogramma van uw\n" +#~ "apparaat voldoet aan v4l2 en dat het\n" +#~ "correct is geĂŻnstalleerd." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to start with minimum setup" +#~ msgstr "" +#~ "Guvcview-fout:\n" +#~ "\n" +#~ "Kan niet opstarten met minimale\n" +#~ "instellingen" + +#~ msgid "Please reconnect your camera." +#~ msgstr "Sluit uw camera opnieuw aan a.u.b." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Couldn't query device capabilities" +#~ msgstr "" +#~ "Guvcview-fout:\n" +#~ "\n" +#~ "Kon de capaciteiten van het\n" +#~ "apparaat niet opvragen" + +#~ msgid "Make sure the device driver supports v4l2." +#~ msgstr "Zorg ervoor dat het stuurprogramma v4l2 ondersteunt." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Read method error" +#~ msgstr "" +#~ "Guvcview-fout:\n" +#~ "\n" +#~ "Leesmethodefout" + +#~ msgid "Please try mmap instead (--capture_method=1)." +#~ msgstr "Probeer in plaats daarvan a.u.b. mmap (--capture_method=1)." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to allocate Buffers" +#~ msgstr "" +#~ "Guvcview-fout:\n" +#~ "\n" +#~ "Kan geen buffers toewijzen" + +#~ msgid "Please try restarting your system." +#~ msgstr "Probeer a.u.b. of het helpt wanneer u uw systeem herstart." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to create Video Thread" +#~ msgstr "" +#~ "Guvcview-fout:\n" +#~ "\n" +#~ "Kan geen videodraad maken" + +#~ msgid "Please report it to http://developer.berlios.de/bugs/?group_id=8179" +#~ msgstr "Meld het a.u.b. aan http://developer.berlios.de/bugs/?group_id=8179" + +#~ msgid "Bitmap (Bmp)" +#~ msgstr "Bitmap (Bmp)" + +#~ msgid "Portable Network Graphics (Png)" +#~ msgstr "Portable Network Graphics (Png)" + +#~ msgid "Displays debug information" +#~ msgstr "Toont foutopsporingsinformatie" + +#~ msgid "Exit after adding UVC extension controls (needs root/sudo)" +#~ msgstr "" +#~ "Afsluiten na het toevoegen van bedieningsknoppen voor UVC-extensie (heeft " +#~ "root/sudo nodig)" + +#~ msgid "Don't stream video (image controls only)" +#~ msgstr "Maak geen videostroom (alleen fotobedieningsknoppen)" + +#~ msgid "Don't display a GUI" +#~ msgstr "Toon geen grafische schil" + +#~ msgid "Configuration file" +#~ msgstr "Configuratiebestand" + +#~ msgid "Hardware accelaration (enable(1) | disable(0))" +#~ msgstr "Hardwareversnelling (aan(1) | uit(0))" + +#~ msgid "" +#~ "Pixel format(mjpg|jpeg|yuyv|yvyu|uyvy|yyuv|yu12|yv12|nv12|nv21|nv16|nv61|" +#~ "y41p|grey|y10b|y16 |s501|s505|s508|gbrg|grbg|ba81|rggb|bgr3|rgb3)" +#~ msgstr "" +#~ "Pixel format(mjpg|jpeg|yuyv|yvyu|uyvy|yyuv|yu12|yv12|nv12|nv21|nv16|nv61|" +#~ "y41p|grey|y10b|y16 |s501|s505|s508|gbrg|grbg|ba81|rggb|bgr3|rgb3)" + +#~ msgid "Frame size, default: 640x480" +#~ msgstr "Beeldgrootte, standaard: 640x480" + +#~ msgid "Image capture interval in seconds" +#~ msgstr "Tussenpoze tussen foto's maken, in seconden" + +#~ msgid "Number of Pictures to capture" +#~ msgstr "Aantal te maken foto's" + +#~ msgid "Video File name (capture from start)" +#~ msgstr "Naam van videobestand (opnemen vanaf begin)" + +#~ msgid "Video capture time (in seconds)" +#~ msgstr "Video-opnametijd (in seconden)" + +#~ msgid "Exits guvcview after closing video" +#~ msgstr "Sluit guvcview af na sluiten van film" + +#~ msgid "Number of initial frames to skip" +#~ msgstr "Aantal filmbeeldjes dat in het begin moet worden overgeslagen" + +#~ msgid "Show FPS value (enable(1) | disable (0))" +#~ msgstr "Toon FPS-waarde (aan(1) | uit (0))" + +#~ msgid "Load Profile at start" +#~ msgstr "Profiel laden bij start" + +#~ msgid "- local options" +#~ msgstr "- plaatselijke opties" + +#~ msgid "Cap. Image" +#~ msgstr "Foto maken" + +#~ msgid "Not enough free space left on disk" +#~ msgstr "Niet genoeg vrije ruimte over op schijf" + +#~ msgid "YUY2 - uncomp YUV" +#~ msgstr "YUY2 - ongecomp YUV" + +#~ msgid "RGB - uncomp BMP" +#~ msgstr "RGB - ongecomp BMP" + +#~ msgid "AVI - avi format" +#~ msgstr "AVI - aviformaat" + +#~ msgid "MKV - Matroska format" +#~ msgstr "MKV - Matroskaformaat" + +#~ msgid "WEBM - format" +#~ msgstr "WEBM - formaat" + +#~ msgid " Show" +#~ msgstr " Tonen" + +#~ msgid "Quality:" +#~ msgstr "Kwaliteit:" diff -Nru guvcview-1.7.3/po/gview_v4l2core/pl.po guvcview-2.0.1+ubuntu1~ppa1/po/gview_v4l2core/pl.po --- guvcview-1.7.3/po/gview_v4l2core/pl.po 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/po/gview_v4l2core/pl.po 2014-10-05 10:41:44.000000000 +0000 @@ -0,0 +1,632 @@ +# Polish translation for guvcview +# Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 +# This file is distributed under the same license as the guvcview package. +# FIRST AUTHOR , 2009. +# +msgid "" +msgstr "" +"Project-Id-Version: guvcview\n" +"Report-Msgid-Bugs-To: pj.assis@gmail.com\n" +"POT-Creation-Date: 2014-08-17 22:49+0100\n" +"PO-Revision-Date: 2013-02-25 05:33+0000\n" +"Last-Translator: Adam Czabara \n" +"Language-Team: Polish \n" +"Language: pl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2013-12-08 10:36+0000\n" +"X-Generator: Launchpad (build 16869)\n" + +#. +#. * needed only for language files (not used) +#. +#. V4L2 control strings +#: ../gview_v4l2core/v4l2_controls.c:49 +msgid "User Controls" +msgstr "Kontrolki uĆŒytkownika" + +#: ../gview_v4l2core/v4l2_controls.c:50 +msgid "Brightness" +msgstr "Jasnoƛć:" + +#: ../gview_v4l2core/v4l2_controls.c:51 +msgid "Contrast" +msgstr "Kontrast" + +#: ../gview_v4l2core/v4l2_controls.c:52 +msgid "Hue" +msgstr "Barwa:" + +#: ../gview_v4l2core/v4l2_controls.c:53 +msgid "Saturation" +msgstr "Nasycenie" + +#: ../gview_v4l2core/v4l2_controls.c:54 +msgid "Sharpness" +msgstr "Ostroƛć" + +#: ../gview_v4l2core/v4l2_controls.c:55 +msgid "Gamma" +msgstr "Gamma" + +#: ../gview_v4l2core/v4l2_controls.c:56 +msgid "Backlight Compensation" +msgstr "Kompensacja oƛwietlenia tƂa" + +#: ../gview_v4l2core/v4l2_controls.c:57 +msgid "Power Line Frequency" +msgstr "Częstotliwoƛć lini zasilania" + +#: ../gview_v4l2core/v4l2_controls.c:58 +msgid "Hue, Automatic" +msgstr "Barwa: Automatycznie" + +#: ../gview_v4l2core/v4l2_controls.c:59 +msgid "Focus, Auto" +msgstr "Ostroƛć, Auto" + +#: ../gview_v4l2core/v4l2_controls.c:60 +msgid "Manual Mode" +msgstr "Tryb ręczny" + +#: ../gview_v4l2core/v4l2_controls.c:61 +msgid "Auto Mode" +msgstr "Tryb automatyczny" + +#: ../gview_v4l2core/v4l2_controls.c:62 +msgid "Shutter Priority Mode" +msgstr "Priorytet migwaki" + +#: ../gview_v4l2core/v4l2_controls.c:63 +msgid "Aperture Priority Mode" +msgstr "Priorytet przysƂony" + +#: ../gview_v4l2core/v4l2_controls.c:64 +msgid "Black Level" +msgstr "Poziom czerni" + +#: ../gview_v4l2core/v4l2_controls.c:65 +msgid "White Balance, Automatic" +msgstr "Automatyczny balans bieli" + +#: ../gview_v4l2core/v4l2_controls.c:66 +msgid "Do White Balance" +msgstr "Balans bieli" + +#: ../gview_v4l2core/v4l2_controls.c:67 +msgid "Red Balance" +msgstr "Balans czerwieni" + +#: ../gview_v4l2core/v4l2_controls.c:68 +msgid "Blue Balance" +msgstr "Balans niebieskiego" + +#: ../gview_v4l2core/v4l2_controls.c:69 +msgid "Exposure" +msgstr "Ekspozycja" + +#: ../gview_v4l2core/v4l2_controls.c:70 +msgid "Gain, Automatic" +msgstr "Automatyczna ziarnistoƛć" + +#: ../gview_v4l2core/v4l2_controls.c:71 +msgid "Gain" +msgstr "Wzmocnienie" + +#: ../gview_v4l2core/v4l2_controls.c:72 +msgid "Horizontal Flip" +msgstr "Odbicie poziome" + +#: ../gview_v4l2core/v4l2_controls.c:73 +msgid "Vertical Flip" +msgstr "Odbicie pionowe" + +#: ../gview_v4l2core/v4l2_controls.c:74 +msgid "Horizontal Center" +msgstr "Wyƛrodkowanie poziome" + +#: ../gview_v4l2core/v4l2_controls.c:75 +msgid "Vertical Center" +msgstr "Wyƛrodkowanie pionowe" + +#: ../gview_v4l2core/v4l2_controls.c:76 +msgid "Chroma AGC" +msgstr "Automatyczna kontrola kluczowania" + +#: ../gview_v4l2core/v4l2_controls.c:77 +msgid "Color Killer" +msgstr "Usunięcie koloru" + +#: ../gview_v4l2core/v4l2_controls.c:78 +msgid "Color Effects" +msgstr "Efekty kolorĂłw" + +#. CAMERA CLASS control strings +#: ../gview_v4l2core/v4l2_controls.c:81 +msgid "Camera Controls" +msgstr "Kontrola kamery" + +#: ../gview_v4l2core/v4l2_controls.c:82 +msgid "Auto Exposure" +msgstr "Automatyczna ekspozycja" + +#: ../gview_v4l2core/v4l2_controls.c:83 +msgid "Exposure Time, Absolute" +msgstr "Absolutny czas ekspozycji" + +#: ../gview_v4l2core/v4l2_controls.c:84 +msgid "Exposure, Dynamic Framerate" +msgstr "dynamiczna iloƛc klatek/s ekspozycji" + +#: ../gview_v4l2core/v4l2_controls.c:85 +msgid "Pan, Relative" +msgstr "Względne Pan" + +#: ../gview_v4l2core/v4l2_controls.c:86 +msgid "Tilt, Relative" +msgstr "Przechylenie względne" + +#: ../gview_v4l2core/v4l2_controls.c:87 +msgid "Pan, Reset" +msgstr "Reset Pan" + +#: ../gview_v4l2core/v4l2_controls.c:88 +msgid "Tilt, Reset" +msgstr "Reset nachylenia" + +#: ../gview_v4l2core/v4l2_controls.c:89 +msgid "Pan, Absolute" +msgstr "Absolutny Pan" + +#: ../gview_v4l2core/v4l2_controls.c:91 +msgid "Focus, Absolute" +msgstr "Ostroƛc absolutna" + +#: ../gview_v4l2core/v4l2_controls.c:92 +msgid "Focus, Relative" +msgstr "Ostroƛć względna" + +#: ../gview_v4l2core/v4l2_controls.c:93 +msgid "Focus, Automatic" +msgstr "Automatyczna ostroƛć" + +#: ../gview_v4l2core/v4l2_controls.c:94 +msgid "Zoom, Absolute" +msgstr "Absolutny zoom" + +#: ../gview_v4l2core/v4l2_controls.c:95 +msgid "Zoom, Relative" +msgstr "Względny zoom" + +#: ../gview_v4l2core/v4l2_controls.c:96 +msgid "Zoom, Continuous" +msgstr "Zoom ciągƂy" + +#: ../gview_v4l2core/v4l2_controls.c:97 +msgid "Privacy" +msgstr "Prywatnoƛć" + +#. UVC specific control strings +#: ../gview_v4l2core/v4l2_controls.c:100 +msgid "Exposure, Auto" +msgstr "Auto ekspozycja" + +#: ../gview_v4l2core/v4l2_controls.c:101 +msgid "Exposure, Auto Priority" +msgstr "Auto priorytet ekspozycji" + +#: ../gview_v4l2core/v4l2_controls.c:102 +msgid "Exposure (Absolute)" +msgstr "Ekspozycja (absolutna)" + +#: ../gview_v4l2core/v4l2_controls.c:103 +msgid "White Balance Temperature, Auto" +msgstr "Automatyczny balans bieli temperatury" + +#: ../gview_v4l2core/v4l2_controls.c:104 +msgid "White Balance Temperature" +msgstr "Temperatura balansu bieli" + +#: ../gview_v4l2core/v4l2_controls.c:105 +msgid "White Balance Component, Auto" +msgstr "Automatyczny komponent balansu bieli" + +#: ../gview_v4l2core/v4l2_controls.c:106 +msgid "White Balance Blue Component" +msgstr "Komponent balansu bieli - niebieskiego" + +#: ../gview_v4l2core/v4l2_controls.c:107 +msgid "White Balance Red Component" +msgstr "Komponent balansu bieli - czerwonego" + +#. libwebcam specific control strings +#: ../gview_v4l2core/v4l2_controls.c:110 +msgid "Focus" +msgstr "Ostroƛć" + +#: ../gview_v4l2core/v4l2_controls.c:111 +msgid "Focus (Absolute)" +msgstr "Ostroƛć (absolutna)" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:63 +msgid "Off" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:64 +msgid "On" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:65 +msgid "Blinking" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:66 +#, fuzzy +msgid "Auto" +msgstr "Tryb automatyczny" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:73 +msgid "Pan (relative)" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:86 +msgid "Tilt (relative)" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:99 +msgid "Pan Reset" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:112 +msgid "Tilt Reset" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:125 +msgid "Focus (absolute)" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:138 +msgid "LED1 Mode" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:151 +msgid "LED1 Frequency" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:164 +msgid "Disable video processing" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:177 +msgid "Raw bits per pixel" +msgstr "" + +#~ msgid "MPEG video 1" +#~ msgstr "MPEG video 1" + +#~ msgid "FLV1 - flash video 1" +#~ msgstr "FLV1 - flash video 1" + +#~ msgid "WMV1 - win. med. video 7" +#~ msgstr "WMV1 - win. med. video 7" + +#~ msgid "MPG2 - MPG2 format" +#~ msgstr "MPG2 - MPG2 format" + +#~ msgid "MS MP4 V3" +#~ msgstr "MS MP4 V3" + +#~ msgid "MPEG4-ASP" +#~ msgstr "MPEG4-ASP" + +#~ msgid "MPEG4-AVC (H264)" +#~ msgstr "MPEG4-AVC (H264)" + +#~ msgid "Audio API:" +#~ msgstr "Audio API:" + +#~ msgid "PORTAUDIO" +#~ msgstr "PORTAUDIO" + +#~ msgid "PULSEAUDIO" +#~ msgstr "PULSEAUDIO" + +#~ msgid "Input Device:" +#~ msgstr "Urządzenie wejƛcia:" + +#~ msgid "Sample Rate:" +#~ msgstr "PrĂłbkowanie audio:" + +#~ msgid "Dev. Default" +#~ msgstr "Urzadzenie domyƛlne" + +#~ msgid "Channels:" +#~ msgstr "KanaƂy:" + +#~ msgid "1 - mono" +#~ msgstr "1 - mono" + +#~ msgid "2 - stereo" +#~ msgstr "2 - stereo" + +#, fuzzy +#~ msgid "---- Audio Filters ----" +#~ msgstr "---- Filtry wideo ----" + +#~ msgid " Echo" +#~ msgstr " Echo" + +#~ msgid "Stop Video (V)" +#~ msgstr "Stop Video (V)" + +#~ msgid "Cap. Video (V)" +#~ msgstr "Przechwicenie Wideo (V)" + +#~ msgid "Device:" +#~ msgstr "Urządzenie:" + +#~ msgid "Guvcview Video Capture" +#~ msgstr "Przechwytywanie wideo Guvcview" + +#, fuzzy +#~ msgid "Stop Cap. (I)" +#~ msgstr "Stop Auto (I)" + +#~ msgid "Cap. Image (I)" +#~ msgstr "Przechwycenie obrazu (I)" + +#~ msgid "Image Controls" +#~ msgstr "Kontrola obrazu" + +#, fuzzy +#~ msgid "Video Controls" +#~ msgstr "Kontrolki uĆŒytkownika" + +#, fuzzy +#~ msgid "Audio Controls" +#~ msgstr "Kontrolki uĆŒytkownika" + +#, fuzzy +#~ msgid "video codec values" +#~ msgstr "wartoƛci kodeka audio" + +#~ msgid "" +#~ " encoder fps: \n" +#~ " (0 - use fps combobox value)" +#~ msgstr "" +#~ " enkoder fps: \n" +#~ " (0 - uĆŒycie wartoƛci fps combobox)" + +#~ msgid "bit rate: " +#~ msgstr "bit rate: " + +#~ msgid "qmax: " +#~ msgstr "qmaks: " + +#~ msgid "qmin: " +#~ msgstr "qmin: " + +#~ msgid "max. qdiff: " +#~ msgstr "max. qdiff: " + +#~ msgid "dia size: " +#~ msgstr "rozmiar dia: " + +#~ msgid "pre dia size: " +#~ msgstr "rozmiar pre dia: " + +#~ msgid "pre me: " +#~ msgstr "pre me: " + +#~ msgid "pre cmp: " +#~ msgstr "pre cmp: " + +#~ msgid "cmp: " +#~ msgstr "cmp: " + +#~ msgid "sub cmp: " +#~ msgstr "sub cmp: " + +#~ msgid "gop size: " +#~ msgstr "rozmiar gop: " + +#~ msgid "qblur: " +#~ msgstr "qblur: " + +#~ msgid "subq: " +#~ msgstr "subq: " + +#~ msgid "max B frames: " +#~ msgstr "max klatek B: " + +#~ msgid "audio codec values" +#~ msgstr "wartoƛci kodeka audio" + +#~ msgid "Left" +#~ msgstr "Lewy" + +#~ msgid "Right" +#~ msgstr "Prawy" + +#~ msgid "Down" +#~ msgstr "DóƂ" + +#~ msgid "Up" +#~ msgstr "GĂłra" + +#, fuzzy +#~ msgid "_Apply" +#~ msgstr "Zastosuj" + +#~ msgid "Frame Rate:" +#~ msgstr "Klatki na sekundę:" + +#~ msgid "Resolution:" +#~ msgstr "Rozdzielczoƛć:" + +#~ msgid "---- Video Filters ----" +#~ msgstr "---- Filtry wideo ----" + +#~ msgid " Invert" +#~ msgstr " OdwrĂłcenie" + +#~ msgid " Negative" +#~ msgstr " Negatyw" + +#~ msgid " Mono" +#~ msgstr " Mono" + +#~ msgid "Audio" +#~ msgstr "Audio" + +#~ msgid " Sound" +#~ msgstr " DĆșwięk" + +#~ msgid "---- Audio Effects ----" +#~ msgstr "---- Efekty audio ----" + +#~ msgid "Save File" +#~ msgstr "Zapisz Plik" + +#~ msgid "codec values" +#~ msgstr "wartoƛci kodekĂłw" + +#~ msgid "Cap. Video" +#~ msgstr "Przechwicenie Wideo" + +#~ msgid "GUVCViewer Controls" +#~ msgstr "Kontrolki GUVCViewer" + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to open device" +#~ msgstr "" +#~ "BƂąd Guvcview:\n" +#~ "\n" +#~ "Nie moĆŒna otworzyć urządzenia" + +#~ msgid "" +#~ "Please make sure the camera is connected\n" +#~ "and that the correct driver is installed." +#~ msgstr "" +#~ "Proszę się upewnić, czy kamera jest podƂączona\n" +#~ "oraz czy jest zainstalowany odpowiedni sterownik." + +#~ msgid "" +#~ "Guvcview:\n" +#~ "\n" +#~ "UVC Extension controls" +#~ msgstr "" +#~ "Guvcview:\n" +#~ "\n" +#~ "Kontrolki rozszerzenia UVC" + +#~ msgid "Extension controls were added to the UVC driver" +#~ msgstr "Kontrolki rozszerzenia zostaƂy dodane do steronika UVC" + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "UVC Extension controls" +#~ msgstr "" +#~ "BƂąd Guvcview:\n" +#~ "\n" +#~ "Kontrolki rozszerzenia UVC" + +#~ msgid "" +#~ "An error occurred while adding extension\n" +#~ "controls to the UVC driver\n" +#~ "Make sure you run guvcview as root (or sudo)." +#~ msgstr "" +#~ "WystąpiƂ bƂąd podczas dodawania kontrolek\n" +#~ "rozszerzenia sterownika UVC\n" +#~ "Guvciew musi być uruchomiony w trybie root(lub sudo)." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Can't set a valid video stream for guvcview" +#~ msgstr "" +#~ "BƂąd Guvcview:\n" +#~ "Nie moĆŒna ustanowić prawidƂowego strumienia wideo dla guvcview" + +#~ msgid "" +#~ "Make sure your device driver is v4l2 compliant\n" +#~ "and that it is properly installed." +#~ msgstr "" +#~ "Upewnij się, ĆŒe twoje urządzenie jest kompatybilne z v4l2\n" +#~ "i jest poprawnie zainstalowane." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to start with minimum setup" +#~ msgstr "" +#~ "BƂąd Guvcview:\n" +#~ "\n" +#~ "Nie moĆŒna uruchomić minimalnej konfiguracji" + +#~ msgid "Please reconnect your camera." +#~ msgstr "Ponownie podƂącz kamerę." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Couldn't query device capabilities" +#~ msgstr "" +#~ "BƂąd Guvcview:\n" +#~ "\n" +#~ "Nie moĆŒna pobrać listy kompatybilnych urządzeƄ" + +#~ msgid "Make sure the device driver supports v4l2." +#~ msgstr "Upewnij się, ĆŒe urządzenie obsƂuguje v4l2." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Read method error" +#~ msgstr "" +#~ "BƂąd Guvcview:\n" +#~ "\n" +#~ "BƂąd metody odczytu" + +#~ msgid "Please try mmap instead (--capture_method=1)." +#~ msgstr "Proszę sprĂłbować mmap zamiast (--capture_method=1)." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to allocate Buffers" +#~ msgstr "" +#~ "BƂąd Guvcview:\n" +#~ "\n" +#~ "BƂąd alokacji buforĂłw" + +#~ msgid "Please try restarting your system." +#~ msgstr "Proszę zrestartować system." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to create Video Thread" +#~ msgstr "" +#~ "BƂąd Guvcview:\n" +#~ "\n" +#~ "Nie moĆŒna utworzyć wątku wideo" + +#~ msgid "Please report it to http://developer.berlios.de/bugs/?group_id=8179" +#~ msgstr "Proszę zgƂosić na http://developer.berlios.de/bugs/?group_id=8179" + +#~ msgid "Displays debug information" +#~ msgstr "Wyƛwietlanie informacji debugowania" + +#~ msgid "Cap. Image" +#~ msgstr "Przechwycenie obrazu" + +#~ msgid " Show" +#~ msgstr " Pokaz" + +#~ msgid "Quality:" +#~ msgstr "Jakoƛć:" diff -Nru guvcview-1.7.3/po/gview_v4l2core/POTFILES.in guvcview-2.0.1+ubuntu1~ppa1/po/gview_v4l2core/POTFILES.in --- guvcview-1.7.3/po/gview_v4l2core/POTFILES.in 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/po/gview_v4l2core/POTFILES.in 2014-10-05 10:41:44.000000000 +0000 @@ -0,0 +1,3 @@ +#gview_v4l2core lib +gview_v4l2core/v4l2_controls.c +gview_v4l2core/v4l2_xu_ctrls.c diff -Nru guvcview-1.7.3/po/gview_v4l2core/pt_BR.po guvcview-2.0.1+ubuntu1~ppa1/po/gview_v4l2core/pt_BR.po --- guvcview-1.7.3/po/gview_v4l2core/pt_BR.po 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/po/gview_v4l2core/pt_BR.po 2014-10-05 10:41:44.000000000 +0000 @@ -0,0 +1,915 @@ +# translation of pt_BR.po to Portuguese +# translation of guvcview to Portuguese +# Copyright (C) 2008 Paulo Assis +# This file is distributed under the same license as the guvcview package. +# guvcview , 2008. +# Djavan Fagundes , 2011. +msgid "" +msgstr "" +"Project-Id-Version: pt_BR\n" +"Report-Msgid-Bugs-To: pj.assis@gmail.com\n" +"POT-Creation-Date: 2014-08-17 22:49+0100\n" +"PO-Revision-Date: 2013-08-25 02:20+0000\n" +"Last-Translator: Celio Alves \n" +"Language-Team: Brazilian Portuguese \n" +"Language: pt\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2013-12-08 10:36+0000\n" +"X-Generator: Launchpad (build 16869)\n" +"X-Project-Style: default\n" + +#. +#. * needed only for language files (not used) +#. +#. V4L2 control strings +#: ../gview_v4l2core/v4l2_controls.c:49 +msgid "User Controls" +msgstr "Controles do usuĂĄrio" + +#: ../gview_v4l2core/v4l2_controls.c:50 +msgid "Brightness" +msgstr "Brilho" + +#: ../gview_v4l2core/v4l2_controls.c:51 +msgid "Contrast" +msgstr "Contraste" + +#: ../gview_v4l2core/v4l2_controls.c:52 +msgid "Hue" +msgstr "Matiz" + +#: ../gview_v4l2core/v4l2_controls.c:53 +msgid "Saturation" +msgstr "Saturação" + +#: ../gview_v4l2core/v4l2_controls.c:54 +msgid "Sharpness" +msgstr "Nitidez" + +#: ../gview_v4l2core/v4l2_controls.c:55 +msgid "Gamma" +msgstr "Gama" + +#: ../gview_v4l2core/v4l2_controls.c:56 +msgid "Backlight Compensation" +msgstr "Compensação de Luz" + +#: ../gview_v4l2core/v4l2_controls.c:57 +msgid "Power Line Frequency" +msgstr "FrequĂȘncia da linha de transmissĂŁo" + +#: ../gview_v4l2core/v4l2_controls.c:58 +msgid "Hue, Automatic" +msgstr "Matiz, AutomĂĄtico" + +#: ../gview_v4l2core/v4l2_controls.c:59 +msgid "Focus, Auto" +msgstr "Focagem, auto" + +#: ../gview_v4l2core/v4l2_controls.c:60 +msgid "Manual Mode" +msgstr "Modo manual" + +#: ../gview_v4l2core/v4l2_controls.c:61 +msgid "Auto Mode" +msgstr "Modo automĂĄtico" + +#: ../gview_v4l2core/v4l2_controls.c:62 +msgid "Shutter Priority Mode" +msgstr "Modo prioridade do obturador" + +#: ../gview_v4l2core/v4l2_controls.c:63 +msgid "Aperture Priority Mode" +msgstr "Modo prioridade da abertura" + +#: ../gview_v4l2core/v4l2_controls.c:64 +msgid "Black Level" +msgstr "NĂ­veis de preto" + +#: ../gview_v4l2core/v4l2_controls.c:65 +msgid "White Balance, Automatic" +msgstr "Balanço de brancos" + +#: ../gview_v4l2core/v4l2_controls.c:66 +msgid "Do White Balance" +msgstr "Fazer balanço de brancos" + +#: ../gview_v4l2core/v4l2_controls.c:67 +msgid "Red Balance" +msgstr "Balanço do vermelho" + +#: ../gview_v4l2core/v4l2_controls.c:68 +msgid "Blue Balance" +msgstr "Balanço do azul" + +#: ../gview_v4l2core/v4l2_controls.c:69 +msgid "Exposure" +msgstr "Exposição" + +#: ../gview_v4l2core/v4l2_controls.c:70 +msgid "Gain, Automatic" +msgstr "Ganho, automĂĄtico" + +#: ../gview_v4l2core/v4l2_controls.c:71 +msgid "Gain" +msgstr "Ganho" + +#: ../gview_v4l2core/v4l2_controls.c:72 +msgid "Horizontal Flip" +msgstr "Virar horizontalmente" + +#: ../gview_v4l2core/v4l2_controls.c:73 +msgid "Vertical Flip" +msgstr "Virar verticalmente" + +#: ../gview_v4l2core/v4l2_controls.c:74 +msgid "Horizontal Center" +msgstr "Eixo horizontal" + +#: ../gview_v4l2core/v4l2_controls.c:75 +msgid "Vertical Center" +msgstr "Eixo vertical" + +#: ../gview_v4l2core/v4l2_controls.c:76 +msgid "Chroma AGC" +msgstr "AGC de Chroma" + +#: ../gview_v4l2core/v4l2_controls.c:77 +msgid "Color Killer" +msgstr "Removedor de cores" + +#: ../gview_v4l2core/v4l2_controls.c:78 +msgid "Color Effects" +msgstr "Efeitos de cor" + +#. CAMERA CLASS control strings +#: ../gview_v4l2core/v4l2_controls.c:81 +msgid "Camera Controls" +msgstr "Controles de cĂąmera" + +#: ../gview_v4l2core/v4l2_controls.c:82 +msgid "Auto Exposure" +msgstr "Exposição automĂĄtica" + +#: ../gview_v4l2core/v4l2_controls.c:83 +msgid "Exposure Time, Absolute" +msgstr "Tempo de exposição, absoluto" + +#: ../gview_v4l2core/v4l2_controls.c:84 +msgid "Exposure, Dynamic Framerate" +msgstr "Exposição, taxa de quadros dinĂąmicos" + +#: ../gview_v4l2core/v4l2_controls.c:85 +msgid "Pan, Relative" +msgstr "Deslocamento, relativo" + +#: ../gview_v4l2core/v4l2_controls.c:86 +msgid "Tilt, Relative" +msgstr "Inclinação, relativo" + +#: ../gview_v4l2core/v4l2_controls.c:87 +msgid "Pan, Reset" +msgstr "Deslocamento, restaurar" + +#: ../gview_v4l2core/v4l2_controls.c:88 +msgid "Tilt, Reset" +msgstr "Inclinação, restaurar" + +#: ../gview_v4l2core/v4l2_controls.c:89 +msgid "Pan, Absolute" +msgstr "Deslocamento, absoluto" + +#: ../gview_v4l2core/v4l2_controls.c:91 +msgid "Focus, Absolute" +msgstr "Foco, absoluto" + +#: ../gview_v4l2core/v4l2_controls.c:92 +msgid "Focus, Relative" +msgstr "Foco, relativo" + +#: ../gview_v4l2core/v4l2_controls.c:93 +msgid "Focus, Automatic" +msgstr "Foco, automĂĄtico" + +#: ../gview_v4l2core/v4l2_controls.c:94 +msgid "Zoom, Absolute" +msgstr "Zoom, absoluto" + +#: ../gview_v4l2core/v4l2_controls.c:95 +msgid "Zoom, Relative" +msgstr "Zoom, relativo" + +#: ../gview_v4l2core/v4l2_controls.c:96 +msgid "Zoom, Continuous" +msgstr "Zoom, contĂ­nuo" + +#: ../gview_v4l2core/v4l2_controls.c:97 +msgid "Privacy" +msgstr "Privacidade" + +#. UVC specific control strings +#: ../gview_v4l2core/v4l2_controls.c:100 +msgid "Exposure, Auto" +msgstr "Exposição, auto" + +#: ../gview_v4l2core/v4l2_controls.c:101 +msgid "Exposure, Auto Priority" +msgstr "Exposição, prioridade auto" + +#: ../gview_v4l2core/v4l2_controls.c:102 +msgid "Exposure (Absolute)" +msgstr "Exposição (absoluta)" + +#: ../gview_v4l2core/v4l2_controls.c:103 +msgid "White Balance Temperature, Auto" +msgstr "Balanço de branco, auto" + +#: ../gview_v4l2core/v4l2_controls.c:104 +msgid "White Balance Temperature" +msgstr "Balanço de branco temperatura" + +#: ../gview_v4l2core/v4l2_controls.c:105 +msgid "White Balance Component, Auto" +msgstr "Componente de cor, auto" + +#: ../gview_v4l2core/v4l2_controls.c:106 +msgid "White Balance Blue Component" +msgstr "Balanço de branco componente azul" + +#: ../gview_v4l2core/v4l2_controls.c:107 +msgid "White Balance Red Component" +msgstr "Balando de branco componente vermelho" + +#. libwebcam specific control strings +#: ../gview_v4l2core/v4l2_controls.c:110 +msgid "Focus" +msgstr "Foco" + +#: ../gview_v4l2core/v4l2_controls.c:111 +msgid "Focus (Absolute)" +msgstr "Foco (absoluto)" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:63 +msgid "Off" +msgstr "Desligado" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:64 +msgid "On" +msgstr "Ligado" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:65 +msgid "Blinking" +msgstr "Intermitente" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:66 +msgid "Auto" +msgstr "Auto" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:73 +msgid "Pan (relative)" +msgstr "Deslocamento (relativo)" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:86 +msgid "Tilt (relative)" +msgstr "Inclinação (relativo)" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:99 +msgid "Pan Reset" +msgstr "Restaurar deslocamento" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:112 +msgid "Tilt Reset" +msgstr "Restaurar inclinação" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:125 +msgid "Focus (absolute)" +msgstr "Foco (absoluto)" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:138 +msgid "LED1 Mode" +msgstr "Modo LED1" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:151 +msgid "LED1 Frequency" +msgstr "FrequĂȘncia LED1" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:164 +msgid "Disable video processing" +msgstr "Parar processamento de vĂ­deo" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:177 +msgid "Raw bits per pixel" +msgstr "Bits brutos por pixel" + +#~ msgid "Vorbis" +#~ msgstr "Vorbis" + +#, fuzzy +#~ msgid "Raw camera input" +#~ msgstr "SaĂ­da de cĂąmera:" + +#~ msgid "MJPG - compressed" +#~ msgstr "MJPG - com compressĂŁo" + +#~ msgid "MPEG video 1" +#~ msgstr "VĂ­deo MPEG 1" + +#~ msgid "FLV1 - flash video 1" +#~ msgstr "FLV1 - vĂ­deo flash 1" + +#~ msgid "WMV1 - win. med. video 7" +#~ msgstr "WMV1 - win. med. video 7" + +#~ msgid "MPG2 - MPG2 format" +#~ msgstr "MPG2 - MPEG vĂ­deo 2" + +#~ msgid "MS MP4 V3" +#~ msgstr "MS MP4 V3" + +#~ msgid "MPEG4-ASP" +#~ msgstr "MPEG4-ASP" + +#~ msgid "MPEG4-AVC (H264)" +#~ msgstr "MPEG4-AVC (H264)" + +#~ msgid "VP8 (VP8)" +#~ msgstr "VP8 (VP8)" + +#~ msgid "Theora (ogg theora)" +#~ msgstr "Theora (ogg theora)" + +#~ msgid "Audio API:" +#~ msgstr "API de ĂĄudio:" + +#~ msgid "PORTAUDIO" +#~ msgstr "PORTAUDIO" + +#~ msgid "PULSEAUDIO" +#~ msgstr "PULSEAUDIO" + +#~ msgid "Input Device:" +#~ msgstr "Dispositivo de entrada:" + +#~ msgid "Sample Rate:" +#~ msgstr "Taxa de amostragem:" + +#~ msgid "Dev. Default" +#~ msgstr "PadrĂŁo" + +#~ msgid "Channels:" +#~ msgstr "Canais:" + +#~ msgid "1 - mono" +#~ msgstr "1 - mono" + +#~ msgid "2 - stereo" +#~ msgstr "2 - stereo" + +#, fuzzy +#~ msgid "---- Audio Filters ----" +#~ msgstr "---- Filtros de vĂ­deo ----" + +#~ msgid " Echo" +#~ msgstr " Eco" + +#~ msgid " Reverb" +#~ msgstr " Reverb" + +#~ msgid " Fuzz" +#~ msgstr " RuĂ­do" + +#~ msgid " WahWah" +#~ msgstr " WahWah" + +#~ msgid " Ducky" +#~ msgstr " Patinho" + +#~ msgid "Stop Video (V)" +#~ msgstr "Parar vĂ­deo (V)" + +#~ msgid "Cap. Video (V)" +#~ msgstr "Cap. vĂ­deo (V)" + +#~ msgid "Error" +#~ msgstr "Erro" + +#, fuzzy +#~ msgid "_Cancel" +#~ msgstr "cancelar" + +#~ msgid "" +#~ "\n" +#~ "You have more than one video device installed.\n" +#~ "Do you want to try another one ?\n" +#~ msgstr "" +#~ "\n" +#~ "Foram detectados mĂșltiplos dispositivos de vĂ­deo.\n" +#~ "Quer tentar outro?\n" + +#~ msgid "Device:" +#~ msgstr "Dispositivo:" + +#~ msgid "Guvcview Video Capture" +#~ msgstr "Capturador de vĂ­deo Guvcview" + +#, fuzzy +#~ msgid "Guvcview" +#~ msgstr "guvcview" + +#, fuzzy +#~ msgid "Stop Cap. (I)" +#~ msgstr "Parar auto (I):" + +#~ msgid "Cap. Image (I)" +#~ msgstr "Cap. imagem (I)" + +#~ msgid "Image Controls" +#~ msgstr "Controles de imagem" + +#, fuzzy +#~ msgid "Video Controls" +#~ msgstr "Controles do usuĂĄrio" + +#, fuzzy +#~ msgid "Audio Controls" +#~ msgstr "Controles do usuĂĄrio" + +#~ msgid "Save Profile" +#~ msgstr "Salvar perfil" + +#~ msgid "Load Profile" +#~ msgstr "Carregar Perfil" + +#~ msgid "File Format:" +#~ msgstr "Formato do arquivo:" + +#, fuzzy +#~ msgid "Photo file name" +#~ msgstr "Nome do arquivo de imagem" + +#, fuzzy +#~ msgid "Raw (*.raw)" +#~ msgstr "Imagem Raw (raw)" + +#, fuzzy +#~ msgid "Jpeg (*.jpg)" +#~ msgstr "Jpeg (jpg)" + +#, fuzzy +#~ msgid "Video file name" +#~ msgstr "Nome do arquivo de imagem" + +#~ msgid "start new" +#~ msgstr "iniciar novo" + +#~ msgid "restart" +#~ msgstr "reiniciar" + +#~ msgid "new" +#~ msgstr "novo" + +#~ msgid "cancel" +#~ msgstr "cancelar" + +#~ msgid "" +#~ "launch new process or restart?.\n" +#~ "\n" +#~ msgstr "" +#~ "lançar novo processo ou recomeçar?.\n" +#~ "\n" + +#, fuzzy +#~ msgid "video codec values" +#~ msgstr "valores do codec de ĂĄudio" + +#~ msgid "" +#~ " encoder fps: \n" +#~ " (0 - use fps combobox value)" +#~ msgstr "" +#~ " codificador fps: \n" +#~ " (0 - use o valor fps da caixa de marcação)" + +#~ msgid " monotonic pts" +#~ msgstr " pts monotonico" + +#~ msgid "bit rate: " +#~ msgstr "taxa de bits: " + +#~ msgid "qmax: " +#~ msgstr "qmax: " + +#~ msgid "qmin: " +#~ msgstr "qmin: " + +#~ msgid "max. qdiff: " +#~ msgstr "qdiff max: " + +#~ msgid "dia size: " +#~ msgstr "tamanho do dia: " + +#~ msgid "pre dia size: " +#~ msgstr "tamanho do diĂą prĂ©: " + +#~ msgid "pre me: " +#~ msgstr "pre me: " + +#~ msgid "pre cmp: " +#~ msgstr "pre cmp: " + +#~ msgid "cmp: " +#~ msgstr "cmp: " + +#~ msgid "sub cmp: " +#~ msgstr "sub cmp: " + +#~ msgid "last predictor count: " +#~ msgstr "Ășltima contagem preditor: " + +#~ msgid "gop size: " +#~ msgstr "tamanho do gop: " + +#~ msgid "qcompress: " +#~ msgstr "qcompress: " + +#~ msgid "qblur: " +#~ msgstr "qblur: " + +#~ msgid "subq: " +#~ msgstr "subq: " + +#~ msgid "framerefs: " +#~ msgstr "framerefs: " + +#~ msgid "me method: " +#~ msgstr "mĂ©todo me: " + +#~ msgid "mb decision: " +#~ msgstr "decisĂŁo mb: " + +#~ msgid "max B frames: " +#~ msgstr "Max quadros B: " + +#~ msgid "num threads: " +#~ msgstr "num threads: " + +#~ msgid "audio codec values" +#~ msgstr "valores do codec de ĂĄudio" + +#~ msgid "Settings" +#~ msgstr "DefiniçÔes" + +#~ msgid "Hardware Defaults" +#~ msgstr "PrĂ©-definição de Hardware" + +#~ msgid "Camera Button" +#~ msgstr "BotĂŁo da CĂąmera" + +#~ msgid "Capture Image" +#~ msgstr "Capturar Imagem" + +#~ msgid "Capture Video" +#~ msgstr "Capturar Video" + +#~ msgid "Photo" +#~ msgstr "Foto" + +#~ msgid "File" +#~ msgstr "Ficheiro" + +#~ msgid "Increment Filename" +#~ msgstr "Increm. nome do ficheiro" + +#~ msgid "Video" +#~ msgstr "Video" + +#~ msgid "Video Codec" +#~ msgstr "Codec de Video" + +#~ msgid "Video Codec Properties" +#~ msgstr "Propr. Codec de Video" + +#~ msgid "Audio Codec" +#~ msgstr "Codec de Audio" + +#~ msgid "Audio Codec Properties" +#~ msgstr "Propr. Codec de Audio" + +#~ msgid "Left" +#~ msgstr "Esquerda" + +#~ msgid "Right" +#~ msgstr "Direita" + +#~ msgid "Down" +#~ msgstr "Baixo" + +#~ msgid "Up" +#~ msgstr "Cima" + +#~ msgid "8 bit" +#~ msgstr "8 bit" + +#~ msgid "12 bit" +#~ msgstr "12 bit" + +#~ msgid "Auto Focus (continuous)" +#~ msgstr "Focagem automĂĄtica (contĂ­nua)" + +#~ msgid "set Focus" +#~ msgstr "Definir foco" + +#, fuzzy +#~ msgid "_Apply" +#~ msgstr "Aplicar" + +#~ msgid "Frame Rate:" +#~ msgstr "Taxa de quadros:" + +#~ msgid "Resolution:" +#~ msgstr "Resolução:" + +#~ msgid "Camera Output:" +#~ msgstr "SaĂ­da de cĂąmera:" + +#~ msgid "---- Video Filters ----" +#~ msgstr "---- Filtros de vĂ­deo ----" + +#~ msgid " Mirror" +#~ msgstr " Espelho" + +#~ msgid " Invert" +#~ msgstr " Invertido" + +#~ msgid " Negative" +#~ msgstr " Negativo" + +#~ msgid " Mono" +#~ msgstr " Cinza" + +#~ msgid " Pieces" +#~ msgstr " Pedaços" + +#~ msgid " Particles" +#~ msgstr " PartĂ­culas" + +#, fuzzy +#~ msgid "Print version" +#~ msgstr "Exibe a versĂŁo" + +#, fuzzy +#~ msgid "Set device name (def: /dev/video0)" +#~ msgstr "Dispositivo de vĂ­deo para usar [padrĂŁo: /dev/video0]" + +#, fuzzy +#~ msgid "Set capture method [read | mmap (def)]" +#~ msgstr "MĂ©todo de captura (1-mmap (padrĂŁo) 2-leitura)" + +#, fuzzy +#~ msgid "load control profile" +#~ msgstr "Carregar Perfil" + +#, fuzzy +#~ msgid "" +#~ "Guvcview version %s\n" +#~ "\n" +#~ msgstr "Alerta Guvcview:" + +#~ msgid "guvcview" +#~ msgstr "guvcview" + +#~ msgid "GTK UVC video viewer" +#~ msgstr "Visualizador de vĂ­deo GTK UVC" + +#~ msgid "A video viewer and capturer for the linux uvc driver" +#~ msgstr "Um visualizador de vĂ­deos e captura para o driver linux uvc" + +#~ msgid "MPEG2 - (lavc)" +#~ msgstr "MPEG2 - (lavc)" + +#~ msgid "MP3 - (lavc)" +#~ msgstr "MP3 - (lavc)" + +#~ msgid "Dolby AC3 - (lavc)" +#~ msgstr "Dolby AC3 - (lavc)" + +#~ msgid "Audio" +#~ msgstr "Áudio" + +#~ msgid " Sound" +#~ msgstr " Som" + +#~ msgid " Show VU meter" +#~ msgstr " Mostrar Volume" + +#~ msgid "---- Audio Effects ----" +#~ msgstr "---- Efeitos de ĂĄudio ----" + +#~ msgid "Save File" +#~ msgstr "Salvar arquivo" + +#~ msgid "codec values" +#~ msgstr "valores do codec" + +#~ msgid "Cap. Video" +#~ msgstr "Cap. vĂ­deo" + +#~ msgid "GUVCViewer Controls" +#~ msgstr "Controles do GUVCViewer" + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to open device" +#~ msgstr "" +#~ "Erro do Guvcview:\n" +#~ "\n" +#~ "NĂŁo foi possĂ­vel conectar a cĂąmera" + +#~ msgid "" +#~ "Please make sure the camera is connected\n" +#~ "and that the correct driver is installed." +#~ msgstr "" +#~ "Por favor, verifique a conexĂŁo\n" +#~ "e se o driver correto estĂĄ instalado." + +#~ msgid "" +#~ "Guvcview:\n" +#~ "\n" +#~ "UVC Extension controls" +#~ msgstr "" +#~ "Guvcview:\n" +#~ "\n" +#~ "ExtensĂŁo de controles UVC" + +#~ msgid "Extension controls were added to the UVC driver" +#~ msgstr "As extensĂ”es de controles foram adicionadas ao driver UVC" + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "UVC Extension controls" +#~ msgstr "" +#~ "Erro do Guvcview:\n" +#~ "\n" +#~ "ExtensĂ”es de controles UVC" + +#~ msgid "" +#~ "An error occurred while adding extension\n" +#~ "controls to the UVC driver\n" +#~ "Make sure you run guvcview as root (or sudo)." +#~ msgstr "" +#~ "Ocorreu um erro ao adicionar as extensĂ”es de\n" +#~ "controles ao driver UVC\n" +#~ "Verifique se iniciou o guvcview como root (ou sudo)." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Can't set a valid video stream for guvcview" +#~ msgstr "" +#~ "Erro do Guvcview:\n" +#~ "\n" +#~ "NĂŁo foi possĂ­vel definir um fluxo de vĂ­deo para o guvcview" + +#~ msgid "" +#~ "Make sure your device driver is v4l2 compliant\n" +#~ "and that it is properly installed." +#~ msgstr "" +#~ "Verifique se o driver Ă© compatĂ­vel com v4l2\n" +#~ "e se este se estĂĄ instalado corretamente." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to start with minimum setup" +#~ msgstr "" +#~ "Guvcview erro:\n" +#~ "\n" +#~ "NĂŁo foi possĂ­vel iniciar com as definiçÔes mĂ­nimas" + +#~ msgid "Please reconnect your camera." +#~ msgstr "Por favor, reconecte sua cĂąmera." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Couldn't query device capabilities" +#~ msgstr "" +#~ "Guvcview erro:\n" +#~ "\n" +#~ "NĂŁo foi possĂ­vel consultar as propriedades do dispositivo" + +#~ msgid "Make sure the device driver supports v4l2." +#~ msgstr "Por favor, verifique se o driver oferece suporte v4l2." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Read method error" +#~ msgstr "" +#~ "Erro do Guvcview:\n" +#~ "\n" +#~ "Erro do mĂ©todo de leitura" + +#~ msgid "Please try mmap instead (--capture_method=1)." +#~ msgstr "Por favor, tente o mmap no lugar (--capture_method=1)" + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to allocate Buffers" +#~ msgstr "" +#~ "Erro do Guvcview:\n" +#~ "\n" +#~ "NĂŁo foi possĂ­vel alocar Buffers" + +#~ msgid "Please try restarting your system." +#~ msgstr "Por favor, tente reiniciar o sistema." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to create Video Thread" +#~ msgstr "" +#~ "Erro de Guvcview:\n" +#~ "\n" +#~ "NĂŁo foi possĂ­vel criar o thread de vĂ­deo" + +#~ msgid "Please report it to http://developer.berlios.de/bugs/?group_id=8179" +#~ msgstr "" +#~ "Por favor, reporte em http://developer.berlios.de/bugs/?group_id=8179" + +#~ msgid "Bitmap (Bmp)" +#~ msgstr "Bitmap (Bmp)" + +#~ msgid "Displays debug information" +#~ msgstr "Mostra informação de depuração" + +#~ msgid "Exit after adding UVC extension controls (needs root/sudo)" +#~ msgstr "" +#~ "Sair apĂłs adicionar extensĂŁo de controles UVC (precisa de root/sudo)" + +#~ msgid "Don't stream video (image controls only)" +#~ msgstr "Desabilitar o fluxo de vĂ­deo (apenas controles de imagens)" + +#~ msgid "Don't display a GUI" +#~ msgstr "NĂŁo mostrar GUI" + +#~ msgid "Configuration file" +#~ msgstr "Arquivo de configuração" + +#~ msgid "Hardware accelaration (enable(1) | disable(0))" +#~ msgstr "Aceleração de hardware (habilitado(1) | desabilitado(0))" + +#~ msgid "Frame size, default: 640x480" +#~ msgstr "Tamanho do quadro, padrĂŁo: 640x480" + +#~ msgid "Image capture interval in seconds" +#~ msgstr "Intervalo de captura de imagens em segundos" + +#~ msgid "Number of Pictures to capture" +#~ msgstr "Numero de imagens a capturar" + +#~ msgid "Video File name (capture from start)" +#~ msgstr "Arquivo de vĂ­deo (captura ao iniciar)" + +#~ msgid "Video capture time (in seconds)" +#~ msgstr "Tempo de captura de vĂ­deo (em segundos)" + +#~ msgid "Exits guvcview after closing video" +#~ msgstr "Termina o guvcview depois de fechar o vĂ­deo" + +#~ msgid "Number of initial frames to skip" +#~ msgstr "Numero inicial de quadros a ignorar" + +#~ msgid "Show FPS value (enable(1) | disable (0))" +#~ msgstr "Apresentar o valor FPS (habilitado(1) | desabilitado(0))" + +#~ msgid "Load Profile at start" +#~ msgstr "Carrega perfil ao iniciar" + +#~ msgid "- local options" +#~ msgstr "- opçÔes locais" + +#~ msgid "Cap. Image" +#~ msgstr "Cap. imagem" + +#~ msgid "Not enough free space left on disk" +#~ msgstr "Sem espaço livre suficiente no disco" + +#~ msgid "YUY2 - uncomp YUV" +#~ msgstr "YUY2 - sem compressĂŁo YUV" + +#~ msgid "RGB - uncomp BMP" +#~ msgstr "RGB - Sem compressĂŁo BMP" + +#~ msgid "AVI - avi format" +#~ msgstr "AVI - formato avi" + +#~ msgid " Show" +#~ msgstr " Mostrar" + +#~ msgid "Quality:" +#~ msgstr "Qualidade:" diff -Nru guvcview-1.7.3/po/gview_v4l2core/pt.po guvcview-2.0.1+ubuntu1~ppa1/po/gview_v4l2core/pt.po --- guvcview-1.7.3/po/gview_v4l2core/pt.po 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/po/gview_v4l2core/pt.po 2014-10-05 10:41:44.000000000 +0000 @@ -0,0 +1,909 @@ +# translation of pt_PT.po to Portuguese +# translation of guvcview to Portuguese +# Copyright (C) 2008 Paulo Assis +# This file is distributed under the same license as the guvcview package. +# +# guvcview , 2008. +msgid "" +msgstr "" +"Project-Id-Version: pt_PT\n" +"Report-Msgid-Bugs-To: pj.assis@gmail.com\n" +"POT-Creation-Date: 2014-08-17 22:49+0100\n" +"PO-Revision-Date: 2013-02-25 05:38+0000\n" +"Last-Translator: Paulo Assis \n" +"Language-Team: Portuguese\n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2013-12-08 10:36+0000\n" +"X-Generator: Launchpad (build 16869)\n" + +#. +#. * needed only for language files (not used) +#. +#. V4L2 control strings +#: ../gview_v4l2core/v4l2_controls.c:49 +msgid "User Controls" +msgstr "Controlos de utilizador" + +#: ../gview_v4l2core/v4l2_controls.c:50 +msgid "Brightness" +msgstr "Brilho" + +#: ../gview_v4l2core/v4l2_controls.c:51 +msgid "Contrast" +msgstr "Contraste" + +#: ../gview_v4l2core/v4l2_controls.c:52 +msgid "Hue" +msgstr "Cor" + +#: ../gview_v4l2core/v4l2_controls.c:53 +msgid "Saturation" +msgstr "Saturação" + +#: ../gview_v4l2core/v4l2_controls.c:54 +msgid "Sharpness" +msgstr "Nitidez" + +#: ../gview_v4l2core/v4l2_controls.c:55 +msgid "Gamma" +msgstr "Gama" + +#: ../gview_v4l2core/v4l2_controls.c:56 +msgid "Backlight Compensation" +msgstr "Compensação da iluminação" + +#: ../gview_v4l2core/v4l2_controls.c:57 +msgid "Power Line Frequency" +msgstr "FrequĂȘncia da linha elĂ©trica" + +#: ../gview_v4l2core/v4l2_controls.c:58 +msgid "Hue, Automatic" +msgstr "Cor automĂĄtica" + +#: ../gview_v4l2core/v4l2_controls.c:59 +msgid "Focus, Auto" +msgstr "Focagem automĂĄtica" + +#: ../gview_v4l2core/v4l2_controls.c:60 +msgid "Manual Mode" +msgstr "Modo manual" + +#: ../gview_v4l2core/v4l2_controls.c:61 +msgid "Auto Mode" +msgstr "Modo automĂĄtico" + +#: ../gview_v4l2core/v4l2_controls.c:62 +msgid "Shutter Priority Mode" +msgstr "Modo prioridade do obturador" + +#: ../gview_v4l2core/v4l2_controls.c:63 +msgid "Aperture Priority Mode" +msgstr "Modo prioridade da abertura" + +#: ../gview_v4l2core/v4l2_controls.c:64 +msgid "Black Level" +msgstr "NĂ­vel do preto" + +#: ../gview_v4l2core/v4l2_controls.c:65 +msgid "White Balance, Automatic" +msgstr "Balanço de brancos automĂĄtico" + +#: ../gview_v4l2core/v4l2_controls.c:66 +msgid "Do White Balance" +msgstr "Balancear brancos" + +#: ../gview_v4l2core/v4l2_controls.c:67 +msgid "Red Balance" +msgstr "Balancear vermelhos" + +#: ../gview_v4l2core/v4l2_controls.c:68 +msgid "Blue Balance" +msgstr "Balancear azuis" + +#: ../gview_v4l2core/v4l2_controls.c:69 +msgid "Exposure" +msgstr "Exposição" + +#: ../gview_v4l2core/v4l2_controls.c:70 +msgid "Gain, Automatic" +msgstr "Ganho automĂĄtico" + +#: ../gview_v4l2core/v4l2_controls.c:71 +msgid "Gain" +msgstr "Ganho" + +#: ../gview_v4l2core/v4l2_controls.c:72 +msgid "Horizontal Flip" +msgstr "InversĂŁo horizontal" + +#: ../gview_v4l2core/v4l2_controls.c:73 +msgid "Vertical Flip" +msgstr "InversĂŁo vertical" + +#: ../gview_v4l2core/v4l2_controls.c:74 +msgid "Horizontal Center" +msgstr "Eixo horizontal" + +#: ../gview_v4l2core/v4l2_controls.c:75 +msgid "Vertical Center" +msgstr "Eixo vertical" + +#: ../gview_v4l2core/v4l2_controls.c:76 +msgid "Chroma AGC" +msgstr "Chroma AGC" + +#: ../gview_v4l2core/v4l2_controls.c:77 +msgid "Color Killer" +msgstr "Remoção de cores" + +#: ../gview_v4l2core/v4l2_controls.c:78 +msgid "Color Effects" +msgstr "Efeitos de cor" + +#. CAMERA CLASS control strings +#: ../gview_v4l2core/v4l2_controls.c:81 +msgid "Camera Controls" +msgstr "Controlos de cĂąmara" + +#: ../gview_v4l2core/v4l2_controls.c:82 +msgid "Auto Exposure" +msgstr "Exposição automĂĄtica" + +#: ../gview_v4l2core/v4l2_controls.c:83 +msgid "Exposure Time, Absolute" +msgstr "Tempo de exposição absoluto" + +#: ../gview_v4l2core/v4l2_controls.c:84 +msgid "Exposure, Dynamic Framerate" +msgstr "Exposição com fotogramas dinĂąmicos" + +#: ../gview_v4l2core/v4l2_controls.c:85 +msgid "Pan, Relative" +msgstr "Rotação relativa" + +#: ../gview_v4l2core/v4l2_controls.c:86 +msgid "Tilt, Relative" +msgstr "Inclinação relativa" + +#: ../gview_v4l2core/v4l2_controls.c:87 +msgid "Pan, Reset" +msgstr "Restaurar rotação" + +#: ../gview_v4l2core/v4l2_controls.c:88 +msgid "Tilt, Reset" +msgstr "Restaurar inclinação" + +#: ../gview_v4l2core/v4l2_controls.c:89 +msgid "Pan, Absolute" +msgstr "Rotação absoluta" + +#: ../gview_v4l2core/v4l2_controls.c:91 +msgid "Focus, Absolute" +msgstr "Focagem absoluta" + +#: ../gview_v4l2core/v4l2_controls.c:92 +msgid "Focus, Relative" +msgstr "Focagem relativa" + +#: ../gview_v4l2core/v4l2_controls.c:93 +msgid "Focus, Automatic" +msgstr "Focagem automĂĄtica" + +#: ../gview_v4l2core/v4l2_controls.c:94 +msgid "Zoom, Absolute" +msgstr "Ampliação absoluta" + +#: ../gview_v4l2core/v4l2_controls.c:95 +msgid "Zoom, Relative" +msgstr "Ampliação relativa" + +#: ../gview_v4l2core/v4l2_controls.c:96 +msgid "Zoom, Continuous" +msgstr "Ampliação continua" + +#: ../gview_v4l2core/v4l2_controls.c:97 +msgid "Privacy" +msgstr "Privacidade" + +#. UVC specific control strings +#: ../gview_v4l2core/v4l2_controls.c:100 +msgid "Exposure, Auto" +msgstr "Exposição automĂĄtica" + +#: ../gview_v4l2core/v4l2_controls.c:101 +msgid "Exposure, Auto Priority" +msgstr "Esxposição com prioridade automĂĄtica" + +#: ../gview_v4l2core/v4l2_controls.c:102 +msgid "Exposure (Absolute)" +msgstr "Exposição absoluta" + +#: ../gview_v4l2core/v4l2_controls.c:103 +msgid "White Balance Temperature, Auto" +msgstr "Balanceamento de brancos automĂĄtico" + +#: ../gview_v4l2core/v4l2_controls.c:104 +msgid "White Balance Temperature" +msgstr "Temperatura do balanceamento de brancos" + +#: ../gview_v4l2core/v4l2_controls.c:105 +msgid "White Balance Component, Auto" +msgstr "Componente de brancos automĂĄtica" + +#: ../gview_v4l2core/v4l2_controls.c:106 +msgid "White Balance Blue Component" +msgstr "Componente azul" + +#: ../gview_v4l2core/v4l2_controls.c:107 +msgid "White Balance Red Component" +msgstr "Componente vermelho" + +#. libwebcam specific control strings +#: ../gview_v4l2core/v4l2_controls.c:110 +msgid "Focus" +msgstr "Focagem" + +#: ../gview_v4l2core/v4l2_controls.c:111 +msgid "Focus (Absolute)" +msgstr "Focagem absoluta" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:63 +msgid "Off" +msgstr "Desligado" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:64 +msgid "On" +msgstr "Ligado" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:65 +msgid "Blinking" +msgstr "Intermitente" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:66 +msgid "Auto" +msgstr "AutomĂĄtico" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:73 +msgid "Pan (relative)" +msgstr "Rotação (relativa)" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:86 +msgid "Tilt (relative)" +msgstr "Inclinação (relativa)" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:99 +msgid "Pan Reset" +msgstr "Restaurar rotação" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:112 +msgid "Tilt Reset" +msgstr "Restaurar inclinação" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:125 +msgid "Focus (absolute)" +msgstr "Focagem (absoluta)" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:138 +msgid "LED1 Mode" +msgstr "Modo LED1" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:151 +msgid "LED1 Frequency" +msgstr "FrequĂȘncia LED1" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:164 +msgid "Disable video processing" +msgstr "Desativar processamento vĂ­deo" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:177 +msgid "Raw bits per pixel" +msgstr "Bits por pixel (Raw)" + +#, fuzzy +#~ msgid "PCM - uncompressed (float 32 bit)" +#~ msgstr "PCM - nĂŁo comprimido (16 bit)" + +#, fuzzy +#~ msgid "Raw camera input" +#~ msgstr "SaĂ­da da cĂąmara:" + +#~ msgid "MJPG - compressed" +#~ msgstr "MJPG - com compressĂŁo" + +#~ msgid "MPEG video 1" +#~ msgstr "MPEG vĂ­deo 1" + +#~ msgid "FLV1 - flash video 1" +#~ msgstr "FLV1 - VĂ­deo flash 1" + +#~ msgid "WMV1 - win. med. video 7" +#~ msgstr "WMV1 - vĂ­deo wma 7" + +#~ msgid "MPG2 - MPG2 format" +#~ msgstr "MPG2 - vĂ­deo MPG2" + +#~ msgid "MS MP4 V3" +#~ msgstr "MS MP4 V3" + +#~ msgid "MPEG4-ASP" +#~ msgstr "MPEG4-ASP" + +#~ msgid "MPEG4-AVC (H264)" +#~ msgstr "MPEG4-AVC (H264)" + +#~ msgid "Audio API:" +#~ msgstr "Áudio API:" + +#~ msgid "PORTAUDIO" +#~ msgstr "PORTAUDIO" + +#~ msgid "PULSEAUDIO" +#~ msgstr "PULSEAUDIO" + +#~ msgid "Input Device:" +#~ msgstr "Dispositivo de som:" + +#~ msgid "Sample Rate:" +#~ msgstr "FrequĂȘncia:" + +#~ msgid "Dev. Default" +#~ msgstr "AutomĂĄtico" + +#~ msgid "Channels:" +#~ msgstr "Canais:" + +#~ msgid "1 - mono" +#~ msgstr "1 - mono" + +#~ msgid "2 - stereo" +#~ msgstr "2 - estĂ©reo" + +#, fuzzy +#~ msgid "---- Audio Filters ----" +#~ msgstr "---- Filtros de vĂ­deo ----" + +#~ msgid " Echo" +#~ msgstr " Eco" + +#~ msgid " Reverb" +#~ msgstr " Reverb" + +#~ msgid " Fuzz" +#~ msgstr " RuĂ­do" + +#~ msgid " WahWah" +#~ msgstr " WhaWah" + +#~ msgid " Ducky" +#~ msgstr " Patinho" + +#~ msgid "Stop Video (V)" +#~ msgstr "Parar Video (V)" + +#~ msgid "Cap. Video (V)" +#~ msgstr "Cap. Video (V)" + +#~ msgid "Error" +#~ msgstr "Erro" + +#, fuzzy +#~ msgid "_Cancel" +#~ msgstr "cancelar" + +#~ msgid "" +#~ "\n" +#~ "You have more than one video device installed.\n" +#~ "Do you want to try another one ?\n" +#~ msgstr "" +#~ "\n" +#~ "Parece que possui mais do que 1 dispositivo de vĂ­deo.\n" +#~ "Quer tentar outro?\n" + +#~ msgid "Device:" +#~ msgstr "Dispositivo:" + +#~ msgid "Guvcview Video Capture" +#~ msgstr "Captura de vĂ­deo Guvcview" + +#, fuzzy +#~ msgid "Guvcview" +#~ msgstr "guvcview" + +#, fuzzy +#~ msgid "Stop Cap. (I)" +#~ msgstr "Parar Auto (I):" + +#~ msgid "Cap. Image (I)" +#~ msgstr "Cap. Imagem (I)" + +#~ msgid "Image Controls" +#~ msgstr "Controlos de imagem" + +#, fuzzy +#~ msgid "Video Controls" +#~ msgstr "Controlos de utilizador" + +#, fuzzy +#~ msgid "Audio Controls" +#~ msgstr "Controlos de utilizador" + +#~ msgid "Save Profile" +#~ msgstr "Gravar Perfil" + +#~ msgid "Load Profile" +#~ msgstr "Carregar Perfil" + +#, fuzzy +#~ msgid "Photo file name" +#~ msgstr "Nome do ficheiro" + +#, fuzzy +#~ msgid "Video file name" +#~ msgstr "Nome do ficheiro" + +#~ msgid "start new" +#~ msgstr "iniciar novo" + +#~ msgid "restart" +#~ msgstr "reiniciar" + +#~ msgid "new" +#~ msgstr "novo" + +#~ msgid "cancel" +#~ msgstr "cancelar" + +#~ msgid "" +#~ "launch new process or restart?.\n" +#~ "\n" +#~ msgstr "" +#~ "quer iniciar um novo processo ou reiniciar?\n" +#~ "\n" + +#, fuzzy +#~ msgid "video codec values" +#~ msgstr "valores do codificador ĂĄudio" + +#~ msgid "" +#~ " encoder fps: \n" +#~ " (0 - use fps combobox value)" +#~ msgstr "" +#~ " fps do codificador: \n" +#~ " (0 - utilizar valor da caixa de combinação)" + +#~ msgid " monotonic pts" +#~ msgstr " pts monĂłtonos" + +#~ msgid "bit rate: " +#~ msgstr "taxa de dados " + +#~ msgid "qmax: " +#~ msgstr "qmax: " + +#~ msgid "qmin: " +#~ msgstr "qmin: " + +#~ msgid "max. qdiff: " +#~ msgstr "max. qdiff: " + +#~ msgid "dia size: " +#~ msgstr "tamanho dia: " + +#~ msgid "pre dia size: " +#~ msgstr "tamanho prĂ©-dia: " + +#~ msgid "pre me: " +#~ msgstr "pre me: " + +#~ msgid "pre cmp: " +#~ msgstr "pre cmp: " + +#~ msgid "cmp: " +#~ msgstr "cmp: " + +#~ msgid "sub cmp: " +#~ msgstr "sub cmp: " + +#~ msgid "last predictor count: " +#~ msgstr "Ășltima contagem: " + +#~ msgid "gop size: " +#~ msgstr "tamanho gop: " + +#~ msgid "qcompress: " +#~ msgstr "qcompress: " + +#~ msgid "qblur: " +#~ msgstr "qblur: " + +#~ msgid "subq: " +#~ msgstr "subq: " + +#~ msgid "framerefs: " +#~ msgstr "framerefs: " + +#~ msgid "me method: " +#~ msgstr "mĂ©todo me: " + +#~ msgid "mb decision: " +#~ msgstr "decisĂŁo mb: " + +#~ msgid "max B frames: " +#~ msgstr "max B frames: " + +#~ msgid "num threads: " +#~ msgstr "processos: " + +#~ msgid "audio codec values" +#~ msgstr "valores do codificador ĂĄudio" + +#~ msgid "Settings" +#~ msgstr "DefiniçÔes" + +#~ msgid "Hardware Defaults" +#~ msgstr "PrĂ©-definição de Hardware" + +#~ msgid "Camera Button" +#~ msgstr "BotĂŁo da CĂąmera" + +#~ msgid "Capture Image" +#~ msgstr "Capturar Imagem" + +#~ msgid "Capture Video" +#~ msgstr "Capturar Video" + +#~ msgid "Photo" +#~ msgstr "Foto" + +#~ msgid "File" +#~ msgstr "Ficheiro" + +#~ msgid "Increment Filename" +#~ msgstr "Increm. nome do ficheiro" + +#~ msgid "Video" +#~ msgstr "Video" + +#~ msgid "Video Codec" +#~ msgstr "Codec de Video" + +#~ msgid "Video Codec Properties" +#~ msgstr "Propr. Codec de Video" + +#~ msgid "Audio Codec" +#~ msgstr "Codec de Audio" + +#~ msgid "Audio Codec Properties" +#~ msgstr "Propr. Codec de Audio" + +#~ msgid "Left" +#~ msgstr "Esquerda" + +#~ msgid "Right" +#~ msgstr "Direita" + +#~ msgid "Down" +#~ msgstr "Baixo" + +#~ msgid "Up" +#~ msgstr "Cima" + +#~ msgid "8 bit" +#~ msgstr "8 bits" + +#~ msgid "12 bit" +#~ msgstr "12 bits" + +#~ msgid "Auto Focus (continuous)" +#~ msgstr "Foco automĂĄtico (continuo)" + +#~ msgid "set Focus" +#~ msgstr "Focar" + +#, fuzzy +#~ msgid "_Apply" +#~ msgstr "Aplicar" + +#~ msgid "Frame Rate:" +#~ msgstr "Taxa de imagens:" + +#~ msgid "Resolution:" +#~ msgstr "Resolução:" + +#~ msgid "Camera Output:" +#~ msgstr "SaĂ­da da cĂąmara:" + +#~ msgid "---- Video Filters ----" +#~ msgstr "---- Filtros de vĂ­deo ----" + +#~ msgid " Mirror" +#~ msgstr " Espelho" + +#~ msgid " Invert" +#~ msgstr " Invertido" + +#~ msgid " Negative" +#~ msgstr " Negativo" + +#~ msgid " Mono" +#~ msgstr " Cinza" + +#~ msgid " Pieces" +#~ msgstr " Pedaços" + +#~ msgid " Particles" +#~ msgstr " PartĂ­culas" + +#, fuzzy +#~ msgid "Print version" +#~ msgstr "Mostra a versĂŁo" + +#, fuzzy +#~ msgid "Set device name (def: /dev/video0)" +#~ msgstr "Dispositivo de vĂ­deo [predefinição: /dev/video0]" + +#, fuzzy +#~ msgid "Set capture method [read | mmap (def)]" +#~ msgstr "MĂ©todo de captura (1-mmap (predefinido) 2 -leitura)" + +#, fuzzy +#~ msgid "load control profile" +#~ msgstr "Carregar Perfil" + +#, fuzzy +#~ msgid "" +#~ "Guvcview version %s\n" +#~ "\n" +#~ msgstr "Alerta do Guvcview:" + +#~ msgid "guvcview" +#~ msgstr "guvcview" + +#~ msgid "GTK UVC video viewer" +#~ msgstr "Visualizador de vĂ­deo GTK UVC" + +#~ msgid "A video viewer and capturer for the linux uvc driver" +#~ msgstr "" +#~ "Um visualizador e capturador de de vĂ­deo para o controlador linux uvc" + +#~ msgid "MPEG2 - (lavc)" +#~ msgstr "MPEG2 - (lavc)" + +#~ msgid "MP3 - (lavc)" +#~ msgstr "MP3 - (lavc)" + +#~ msgid "Dolby AC3 - (lavc)" +#~ msgstr "Dolby AC3 - (lavc)" + +#~ msgid "ACC Low - (faac)" +#~ msgstr "ACC - (faac)" + +#~ msgid "Audio" +#~ msgstr "Áudio" + +#~ msgid " Sound" +#~ msgstr " Som" + +#~ msgid " Show VU meter" +#~ msgstr " Mostrar medidor VU" + +#~ msgid "---- Audio Effects ----" +#~ msgstr "---- Efeitos ĂĄudio ----" + +#~ msgid "Save File" +#~ msgstr "Gravar ficheiro" + +#~ msgid "codec values" +#~ msgstr "valores do codificador" + +#~ msgid "Cap. Video" +#~ msgstr "Capturar vĂ­deo" + +#~ msgid "GUVCViewer Controls" +#~ msgstr "Controlos do Guvcview" + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to open device" +#~ msgstr "" +#~ "Erro Guvcview:\n" +#~ "\n" +#~ "NĂŁo foi possĂ­vel ligar Ă  cĂąmara" + +#~ msgid "" +#~ "Please make sure the camera is connected\n" +#~ "and that the correct driver is installed." +#~ msgstr "" +#~ "Verifique a ligação Ă  cĂąmara e certifique-se\n" +#~ "que tem o controlador instalado" + +#~ msgid "" +#~ "Guvcview:\n" +#~ "\n" +#~ "UVC Extension controls" +#~ msgstr "" +#~ "Guvcview:\n" +#~ "\n" +#~ "Controlos dinĂąmicos UVC" + +#~ msgid "Extension controls were added to the UVC driver" +#~ msgstr "Os controlos dinĂąmicos foram adicionados ao controlador UVC" + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "UVC Extension controls" +#~ msgstr "" +#~ "Erro Guvcview:\n" +#~ "\n" +#~ "Controlos dinĂąmicos UVC" + +#~ msgid "" +#~ "An error occurred while adding extension\n" +#~ "controls to the UVC driver\n" +#~ "Make sure you run guvcview as root (or sudo)." +#~ msgstr "" +#~ "Ocorreu um erro ao adicionar os controlos\n" +#~ "dinĂąmicos ao controlador UVC\n" +#~ "Verifique se iniciou guvcview como root (ou sudo)." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Can't set a valid video stream for guvcview" +#~ msgstr "" +#~ "Erro Guvcview:\n" +#~ "\n" +#~ "NĂŁo foi possĂ­vel definir um formato de vĂ­deo vĂĄlido" + +#~ msgid "" +#~ "Make sure your device driver is v4l2 compliant\n" +#~ "and that it is properly installed." +#~ msgstr "" +#~ "Certifique-se que a cĂąmara Ă© compatĂ­vel com\n" +#~ "o v4l2 e que estĂĄ instalada corretamente" + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to start with minimum setup" +#~ msgstr "" +#~ "Erro Guvcview:\n" +#~ "\n" +#~ "NĂŁo foi possĂ­vel iniciar a configuração mĂ­nima" + +#~ msgid "Please reconnect your camera." +#~ msgstr "Deve remover e ligar novamente a cĂąmara" + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Couldn't query device capabilities" +#~ msgstr "" +#~ "Erro Guvcview:\n" +#~ "\n" +#~ "NĂŁo foi possĂ­vel verificar as propriedades do dispositivo" + +#~ msgid "Make sure the device driver supports v4l2." +#~ msgstr "Certifique-se que o dispositivo tem suporte ao v4l2" + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Read method error" +#~ msgstr "" +#~ "Erro Guvcview:\n" +#~ "\n" +#~ "Erro no mĂ©todo de leitura" + +#~ msgid "Please try mmap instead (--capture_method=1)." +#~ msgstr "Tente com mmap (--capture_method=1)" + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to allocate Buffers" +#~ msgstr "" +#~ "Erro Guvcview:\n" +#~ "\n" +#~ "NĂŁo foi possĂ­vel alocar os \"buffers\"" + +#~ msgid "Please try restarting your system." +#~ msgstr "Por favor reinicie o sistema" + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to create Video Thread" +#~ msgstr "" +#~ "Erro Guvcview:\n" +#~ "\n" +#~ "NĂŁo foi possĂ­vel criar processo de vĂ­deo" + +#~ msgid "Please report it to http://developer.berlios.de/bugs/?group_id=8179" +#~ msgstr "" +#~ "Reporte este erro em http://developer.berlios.de/bugs/?group_id=8179" + +#~ msgid "Displays debug information" +#~ msgstr "Mostrar informaçÔes de depuração" + +#~ msgid "Exit after adding UVC extension controls (needs root/sudo)" +#~ msgstr "" +#~ "Sair apĂłs adicionar os controlos dinĂąmicos ao UVC (requer root/sudo)" + +#~ msgid "Don't stream video (image controls only)" +#~ msgstr "NĂŁo emitir vĂ­deo (sĂł controlo de imagem)" + +#~ msgid "Don't display a GUI" +#~ msgstr "NĂŁo mostrar interface" + +#~ msgid "Configuration file" +#~ msgstr "Ficheiro de configuração" + +#~ msgid "Hardware accelaration (enable(1) | disable(0))" +#~ msgstr "Aceleração de vĂ­deo (ativa (1) | inativa (0))" + +#~ msgid "" +#~ "Pixel format(mjpg|jpeg|yuyv|yvyu|uyvy|yyuv|yu12|yv12|nv12|nv21|nv16|nv61|" +#~ "y41p|grey|y10b|y16 |s501|s505|s508|gbrg|grbg|ba81|rggb|bgr3|rgb3)" +#~ msgstr "" +#~ "Formatos pixel (mjpg|jpeg|yuyv|yvyu|uyvy|yyuv|yu12|yv12|nv12|nv21|nv16|" +#~ "nv61|y41p|grey|y10b|y16 |s501|s505|s508|gbrg|grbg|ba81|rggb|bgr3|rgb3)" + +#~ msgid "Frame size, default: 640x480" +#~ msgstr "Resolução (predefinido: 640x480" + +#~ msgid "Image capture interval in seconds" +#~ msgstr "Intervalo entre capturas (em segundos)" + +#~ msgid "Number of Pictures to capture" +#~ msgstr "Numero de imagens a capturar" + +#~ msgid "Video File name (capture from start)" +#~ msgstr "Nome do ficheiro (capturar ao iniciar)" + +#~ msgid "Video capture time (in seconds)" +#~ msgstr "Tempo de captura vĂ­deo (em segundos)" + +#~ msgid "Exits guvcview after closing video" +#~ msgstr "Sair do Guvcview ao fechar o vĂ­deo" + +#~ msgid "Number of initial frames to skip" +#~ msgstr "NĂșmero de fotogramas iniciais a ignorar" + +#~ msgid "Show FPS value (enable(1) | disable (0))" +#~ msgstr "Mostrar valor FPS (ativo (1) | inativo (0))" + +#~ msgid "Load Profile at start" +#~ msgstr "Carregar perfil ao iniciar" + +#~ msgid "- local options" +#~ msgstr "- opçÔes locais" + +#~ msgid "Cap. Image" +#~ msgstr "Capturar imagem" + +#~ msgid "Not enough free space left on disk" +#~ msgstr "O espaço livre do disco nĂŁo Ă© suficiente" + +#~ msgid "YUY2 - uncomp YUV" +#~ msgstr "YUY2 - YUV sem compressĂŁo" + +#~ msgid "RGB - uncomp BMP" +#~ msgstr "RGB - BMP sem compressĂŁo" + +#~ msgid "AVI - avi format" +#~ msgstr "AVI - vĂ­deo avi" + +#~ msgid "MKV - Matroska format" +#~ msgstr "MKV - VĂ­deo mkv" + +#~ msgid " Show" +#~ msgstr " Mostrar" + +#~ msgid "Quality:" +#~ msgstr "Qualidade:" diff -Nru guvcview-1.7.3/po/gview_v4l2core/ru.po guvcview-2.0.1+ubuntu1~ppa1/po/gview_v4l2core/ru.po --- guvcview-1.7.3/po/gview_v4l2core/ru.po 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/po/gview_v4l2core/ru.po 2014-10-05 10:41:44.000000000 +0000 @@ -0,0 +1,924 @@ +# Copyright (C) 2009 Paulo Assis +# This file is distributed under the same license as the guvcview package. +# +# Roustam Ghizdatov , 2009. +msgid "" +msgstr "" +"Project-Id-Version: guvcview\n" +"Report-Msgid-Bugs-To: pj.assis@gmail.com\n" +"POT-Creation-Date: 2014-08-17 22:49+0100\n" +"PO-Revision-Date: 2013-06-06 13:32+0000\n" +"Last-Translator: НоĐșĐŸĐ»Đ°Đč АĐČЎДДĐČ (NickKolok, Nikolay Avdeev) \n" +"Language-Team: Russian <>\n" +"Language: ru\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2013-12-08 10:36+0000\n" +"X-Generator: Launchpad (build 16869)\n" + +#. +#. * needed only for language files (not used) +#. +#. V4L2 control strings +#: ../gview_v4l2core/v4l2_controls.c:49 +msgid "User Controls" +msgstr "ĐĐ°ŃŃ‚Ń€ĐŸĐčĐșĐž ĐżĐŸĐ»ŃŒĐ·ĐŸĐČĐ°Ń‚Đ”Đ»Ń" + +#: ../gview_v4l2core/v4l2_controls.c:50 +msgid "Brightness" +msgstr "ЯрĐșĐŸŃŃ‚ŃŒ" + +#: ../gview_v4l2core/v4l2_controls.c:51 +msgid "Contrast" +msgstr "ĐšĐŸĐœŃ‚Ń€Đ°ŃŃ‚ĐœĐŸŃŃ‚ŃŒ" + +#: ../gview_v4l2core/v4l2_controls.c:52 +msgid "Hue" +msgstr "ĐžŃ‚Ń‚Đ”ĐœĐŸĐș" + +#: ../gview_v4l2core/v4l2_controls.c:53 +msgid "Saturation" +msgstr "ĐĐ°ŃŃ‹Ń‰Đ”ĐœĐœĐŸŃŃ‚ŃŒ" + +#: ../gview_v4l2core/v4l2_controls.c:54 +msgid "Sharpness" +msgstr "РДзĐșĐŸŃŃ‚ŃŒ" + +#: ../gview_v4l2core/v4l2_controls.c:55 +msgid "Gamma" +msgstr "Đ“Đ°ĐŒĐŒĐ°" + +#: ../gview_v4l2core/v4l2_controls.c:56 +msgid "Backlight Compensation" +msgstr "ĐšĐŸĐŒĐżĐ”ĐœŃĐ°Ń†ĐžŃ ярĐșох участĐșĐŸĐČ" + +#: ../gview_v4l2core/v4l2_controls.c:57 +msgid "Power Line Frequency" +msgstr "Đ§Đ°ŃŃ‚ĐŸŃ‚Đ° ĐČ ŃĐ»Đ”ĐșŃ‚Ń€ĐŸŃĐ”Ń‚Đž" + +#: ../gview_v4l2core/v4l2_controls.c:58 +msgid "Hue, Automatic" +msgstr "ĐžŃ‚Ń‚Đ”ĐœĐŸĐș, АĐČŃ‚ĐŸĐŒĐ°Ń‚ĐžŃ‡Đ”ŃĐșĐž" + +#: ../gview_v4l2core/v4l2_controls.c:59 +msgid "Focus, Auto" +msgstr "Đ€ĐŸĐșус, Đ°ĐČŃ‚ĐŸ" + +#: ../gview_v4l2core/v4l2_controls.c:60 +msgid "Manual Mode" +msgstr "Đ ŃƒŃ‡ĐœĐŸĐč Ń€Đ”Đ¶ĐžĐŒ" + +#: ../gview_v4l2core/v4l2_controls.c:61 +msgid "Auto Mode" +msgstr "АĐČŃ‚ĐŸŃ€Đ”Đ¶ĐžĐŒ" + +#: ../gview_v4l2core/v4l2_controls.c:62 +msgid "Shutter Priority Mode" +msgstr "Đ Đ”Đ¶ĐžĐŒ ĐżŃ€ĐžĐŸŃ€ĐžŃ‚Đ”Ń‚Đ° Đ·Đ°Ń‚ĐČĐŸŃ€Đ°" + +#: ../gview_v4l2core/v4l2_controls.c:63 +msgid "Aperture Priority Mode" +msgstr "Đ Đ”Đ¶ĐžĐŒ ĐżŃ€ĐžĐŸŃ€ĐžŃ‚Đ”Ń‚Đ° ĐŽĐžĐ°Ń„Ń€Đ°ĐłĐŒŃ‹" + +#: ../gview_v4l2core/v4l2_controls.c:64 +msgid "Black Level" +msgstr "ĐŁŃ€ĐŸĐČĐ”ĐœŃŒ Ń‡Ń‘Ń€ĐœĐŸĐłĐŸ" + +#: ../gview_v4l2core/v4l2_controls.c:65 +msgid "White Balance, Automatic" +msgstr "Đ‘Đ°Đ»Đ°ĐœŃ Đ±Đ”Đ»ĐŸĐłĐŸ, АĐČŃ‚ĐŸĐŒĐ°Ń‚ĐžŃ‡Đ”ŃĐșĐž" + +#: ../gview_v4l2core/v4l2_controls.c:66 +msgid "Do White Balance" +msgstr "ĐĄĐ±Đ°Đ»Đ°ĐœŃĐžŃ€ĐŸĐČать бДлыĐč цĐČДт" + +#: ../gview_v4l2core/v4l2_controls.c:67 +msgid "Red Balance" +msgstr "Đ‘Đ°Đ»Đ°ĐœŃ ĐșŃ€Đ°ŃĐœĐŸĐłĐŸ" + +#: ../gview_v4l2core/v4l2_controls.c:68 +msgid "Blue Balance" +msgstr "Đ‘Đ°Đ»Đ°ĐœŃ ŃĐžĐœĐ”ĐłĐŸ" + +#: ../gview_v4l2core/v4l2_controls.c:69 +msgid "Exposure" +msgstr "Đ­ĐșŃĐżĐŸĐ·ĐžŃ†ĐžŃ" + +#: ../gview_v4l2core/v4l2_controls.c:70 +msgid "Gain, Automatic" +msgstr "ĐŁŃĐžĐ»Đ”ĐœĐžĐ”, Đ°ĐČŃ‚ĐŸĐŒĐ°Ń‚ĐžŃ‡Đ”ŃĐșĐž" + +#: ../gview_v4l2core/v4l2_controls.c:71 +msgid "Gain" +msgstr "ĐŁŃĐžĐ»Đ”ĐœĐžĐ”" + +#: ../gview_v4l2core/v4l2_controls.c:72 +msgid "Horizontal Flip" +msgstr "ĐžŃ‚Ń€Đ°Đ·ĐžŃ‚ŃŒ ĐżĐŸ ĐłĐŸŃ€ĐžĐ·ĐŸĐœŃ‚Đ°Đ»Đž" + +#: ../gview_v4l2core/v4l2_controls.c:73 +msgid "Vertical Flip" +msgstr "ĐžŃ‚Ń€Đ°Đ·ĐžŃ‚ŃŒ ĐżĐŸ ĐČДртОĐșалО" + +#: ../gview_v4l2core/v4l2_controls.c:74 +msgid "Horizontal Center" +msgstr "Đ“ĐŸŃ€ĐžĐ·ĐŸĐœŃ‚Đ°Đ»ŃŒĐœŃ‹Đč Ń†Đ”ĐœŃ‚Ń€" + +#: ../gview_v4l2core/v4l2_controls.c:75 +msgid "Vertical Center" +msgstr "ВДртОĐșĐ°Đ»ŃŒĐœŃ‹Đč Ń†Đ”ĐœŃ‚Ń€" + +#: ../gview_v4l2core/v4l2_controls.c:76 +msgid "Chroma AGC" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:77 +msgid "Color Killer" +msgstr "ОбДсцĐČДчОĐČĐ°Ń‚Đ”Đ»ŃŒ" + +#: ../gview_v4l2core/v4l2_controls.c:78 +msgid "Color Effects" +msgstr "ĐŠĐČĐ”Ń‚ĐŸĐČŃ‹Đ” ŃŃ„Ń„Đ”Đșты" + +#. CAMERA CLASS control strings +#: ../gview_v4l2core/v4l2_controls.c:81 +msgid "Camera Controls" +msgstr "ĐĐ°ŃŃ‚Ń€ĐŸĐčĐșĐž ĐșĐ°ĐŒĐ”Ń€Ń‹" + +#: ../gview_v4l2core/v4l2_controls.c:82 +msgid "Auto Exposure" +msgstr "АĐČŃ‚ĐŸ ĐČыЎДржĐșĐ°" + +#: ../gview_v4l2core/v4l2_controls.c:83 +msgid "Exposure Time, Absolute" +msgstr "Đ’Ń€Đ”ĐŒŃ ĐČыЎДржĐșĐž, ĐĐ±ŃĐŸĐ»ŃŽŃ‚ĐœĐŸĐ”" + +#: ../gview_v4l2core/v4l2_controls.c:84 +msgid "Exposure, Dynamic Framerate" +msgstr "ВыЎДржĐșĐ°, Đ”ĐžĐœĐ°ĐŒĐžŃ‡ĐœĐ°Ń Ń‡Đ°ŃŃ‚ĐŸŃ‚Đ° ĐșĐ°ĐŽŃ€ĐŸĐČ" + +#: ../gview_v4l2core/v4l2_controls.c:85 +msgid "Pan, Relative" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:86 +msgid "Tilt, Relative" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:87 +msgid "Pan, Reset" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:88 +msgid "Tilt, Reset" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:89 +msgid "Pan, Absolute" +msgstr "" + +#: ../gview_v4l2core/v4l2_controls.c:91 +msgid "Focus, Absolute" +msgstr "Đ€ĐŸĐșус, ĐĄĐŸĐČĐ”Ń€ŃˆĐ”ĐœĐœŃ‹Đč" + +#: ../gview_v4l2core/v4l2_controls.c:92 +msgid "Focus, Relative" +msgstr "Đ€ĐŸĐșус, ĐžŃ‚ĐœĐŸŃĐžŃ‚Đ”Đ»ŃŒĐœŃ‹Đč" + +#: ../gview_v4l2core/v4l2_controls.c:93 +msgid "Focus, Automatic" +msgstr "Đ€ĐŸĐșус, АĐČŃ‚ĐŸĐŒĐ°Ń‚ĐžŃ‡Đ”ŃĐșĐžĐč" + +#: ../gview_v4l2core/v4l2_controls.c:94 +msgid "Zoom, Absolute" +msgstr "ĐŁĐČĐ”Đ»ĐžŃ‡Đ”ĐœĐžĐ”, ĐĄĐŸĐČĐ”Ń€ŃˆĐ”ĐœĐœĐŸĐ”" + +#: ../gview_v4l2core/v4l2_controls.c:95 +msgid "Zoom, Relative" +msgstr "ĐŁĐČĐ”Đ»ĐžŃ‡Đ”ĐœĐžĐ”, ĐžŃ‚ĐœĐŸŃĐžŃ‚Đ”Đ»ŃŒĐœĐŸĐ”" + +#: ../gview_v4l2core/v4l2_controls.c:96 +msgid "Zoom, Continuous" +msgstr "ĐŁĐČĐ”Đ»ĐžŃ‡Đ”ĐœĐžĐ”, ĐŸĐŸŃŃ‚ĐŸŃĐœĐœĐŸĐ”" + +#: ../gview_v4l2core/v4l2_controls.c:97 +msgid "Privacy" +msgstr "ĐšĐŸĐœŃ„ĐžĐŽĐ”ĐœŃ†ĐžĐ°Đ»ŃŒĐœĐŸŃŃ‚ŃŒ" + +#. UVC specific control strings +#: ../gview_v4l2core/v4l2_controls.c:100 +msgid "Exposure, Auto" +msgstr "Đ­ĐșŃĐżĐŸĐ·ĐžŃ†ĐžŃ, Đ°ĐČŃ‚ĐŸ" + +#: ../gview_v4l2core/v4l2_controls.c:101 +msgid "Exposure, Auto Priority" +msgstr "Đ Đ”Đ¶ĐžĐŒ Ń‡Đ°ŃŃ‚ĐŸŃ‚Ń‹ ĐșĐ°ĐŽŃ€ĐŸĐČ" + +#: ../gview_v4l2core/v4l2_controls.c:102 +msgid "Exposure (Absolute)" +msgstr "ВыЎДржĐșĐ° (ŃĐŸĐČĐ”Ń€ŃˆĐ”ĐœĐœĐ°Ń)" + +#: ../gview_v4l2core/v4l2_controls.c:103 +msgid "White Balance Temperature, Auto" +msgstr "ĐąĐ”ĐŒĐżĐ”Ń€Đ°Ń‚ŃƒŃ€Đ° Đ±Đ°Đ»Đ°ĐœŃĐ° Đ±Đ”Đ»ĐŸĐłĐŸ, Đ°ĐČŃ‚ĐŸ" + +#: ../gview_v4l2core/v4l2_controls.c:104 +msgid "White Balance Temperature" +msgstr "ĐąĐ”ĐŒĐżĐ”Ń€Đ°Ń‚ŃƒŃ€Đ° Đ±Đ°Đ»Đ°ĐœŃĐ° Đ±Đ”Đ»ĐŸĐłĐŸ" + +#: ../gview_v4l2core/v4l2_controls.c:105 +msgid "White Balance Component, Auto" +msgstr "ĐšĐŸĐŒĐżĐŸĐœĐ”ĐœŃ‚ Đ±Đ°Đ»Đ°ĐœŃĐ° Đ±Đ”Đ»ĐŸĐłĐŸ, Đ°ĐČŃ‚ĐŸ" + +#: ../gview_v4l2core/v4l2_controls.c:106 +msgid "White Balance Blue Component" +msgstr "ĐĄĐžĐœĐžĐč ĐșĐŸĐŒĐżĐŸĐœĐ”ĐœŃ‚ Đ±Đ°Đ»Đ°ĐœŃĐ° Đ±Đ”Đ»ĐŸĐłĐŸ" + +#: ../gview_v4l2core/v4l2_controls.c:107 +msgid "White Balance Red Component" +msgstr "ĐšŃ€Đ°ŃĐœŃ‹Đč ĐșĐŸĐŒĐżĐŸĐœĐ”ĐœŃ‚ Đ±Đ°Đ»Đ°ĐœŃĐ° Đ±Đ”Đ»ĐŸĐłĐŸ" + +#. libwebcam specific control strings +#: ../gview_v4l2core/v4l2_controls.c:110 +msgid "Focus" +msgstr "Đ€ĐŸĐșŃƒŃĐžŃ€ĐŸĐČĐ°ĐœĐžĐ”" + +#: ../gview_v4l2core/v4l2_controls.c:111 +msgid "Focus (Absolute)" +msgstr "Đ€ĐŸĐșŃƒŃĐžŃ€ĐŸĐČĐ°ĐœĐžĐ” (ĐĐ±ŃĐŸĐ»ŃŽŃ‚ĐœĐŸĐ”)" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:63 +msgid "Off" +msgstr "ОтĐșĐ»." + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:64 +msgid "On" +msgstr "ВĐșĐ»." + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:65 +msgid "Blinking" +msgstr "ĐœĐ”Ń€Ń†Đ°ĐœĐžĐ”" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:66 +msgid "Auto" +msgstr "АĐČŃ‚ĐŸ" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:73 +msgid "Pan (relative)" +msgstr "Đ“ĐŸŃ€. ĐżĐŸĐČĐŸŃ€ĐŸŃ‚ (ĐŸŃ‚ĐœĐŸŃĐžŃ‚.)" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:86 +msgid "Tilt (relative)" +msgstr "ВДрт. ĐżĐŸĐČĐŸŃ€ĐŸŃ‚ (ĐŸŃ‚ĐœĐŸŃĐžŃ‚.)" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:99 +msgid "Pan Reset" +msgstr "Đ“ĐŸŃ€. ĐČĐŸĐ·ĐČрат" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:112 +msgid "Tilt Reset" +msgstr "ВДрт. ĐČĐŸĐ·ĐČрат" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:125 +msgid "Focus (absolute)" +msgstr "Đ€ĐŸĐșус (Đ°Đ±ŃĐŸĐ»ŃŽŃ‚ĐœŃ‹Đč)" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:138 +msgid "LED1 Mode" +msgstr "Đ Đ”Đ¶ĐžĐŒ сĐČĐ”Ń‚ĐŸĐŽĐžĐŸĐŽĐ°1" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:151 +msgid "LED1 Frequency" +msgstr "Đ§Đ°ŃŃ‚ĐŸŃ‚Đ° сĐČĐ”Ń‚ĐŸĐŽĐžĐŸĐŽĐ°1" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:164 +msgid "Disable video processing" +msgstr "ОтĐșĐ»ŃŽŃ‡Đ”ĐœĐžĐ” ĐŸĐ±Ń€Đ°Đ±ĐŸŃ‚ĐșĐž ĐČĐžĐŽĐ”ĐŸ" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:177 +msgid "Raw bits per pixel" +msgstr "ĐšĐŸĐ»-ĐČĐŸ бОт ĐœĐ° пОĐșсДл" + +#, fuzzy +#~ msgid "PCM - uncompressed (float 32 bit)" +#~ msgstr "PCM - бДз ŃĐ¶Đ°Ń‚ĐžŃ (16-Ń€Đ°Đ·Ń€ŃĐŽĐœŃ‹Đč)" + +#~ msgid "Vorbis" +#~ msgstr "Vorbis" + +#, fuzzy +#~ msgid "Raw camera input" +#~ msgstr "ВыĐČĐŸĐŽ ĐșĐ°ĐŒĐ”Ń€Ń‹:" + +#~ msgid "MJPG - compressed" +#~ msgstr "MJPG - сжатыĐč" + +#~ msgid "MPEG video 1" +#~ msgstr "MPEG-ĐČĐžĐŽĐ”ĐŸ 1" + +#~ msgid "FLV1 - flash video 1" +#~ msgstr "FLV1 - Ń„Đ»ŃŃˆ-ĐČĐžĐŽĐ”ĐŸ 1" + +#~ msgid "WMV1 - win. med. video 7" +#~ msgstr "WMV1 - ĐČĐžĐŽĐ”ĐŸ Windows Media 7" + +#~ msgid "MPG2 - MPG2 format" +#~ msgstr "MPG2 - Ń„ĐŸŃ€ĐŒĐ°Ń‚ MPG2" + +#~ msgid "MS MP4 V3" +#~ msgstr "MS MP4 V3" + +#~ msgid "MPEG4-ASP" +#~ msgstr "MPEG4-ASP" + +#~ msgid "MPEG4-AVC (H264)" +#~ msgstr "MPEG4-AVC (H264)" + +#~ msgid "VP8 (VP8)" +#~ msgstr "VP8 (VP8)" + +#~ msgid "Audio API:" +#~ msgstr "ĐŃƒĐŽĐžĐŸ-API:" + +#~ msgid "PORTAUDIO" +#~ msgstr "PORTAUDIO" + +#~ msgid "PULSEAUDIO" +#~ msgstr "PULSEAUDIO" + +#~ msgid "Input Device:" +#~ msgstr "ĐŁŃŃ‚Ń€ĐŸĐčстĐČĐŸ ĐČĐČĐŸĐŽĐ°:" + +#~ msgid "Sample Rate:" +#~ msgstr "Đ§Đ°ŃŃ‚ĐŸŃ‚Đ° ЎОсĐșрДтОзацОО:" + +#~ msgid "Dev. Default" +#~ msgstr "ĐżĐŸ ŃƒĐŒĐŸĐ»Ń‡Đ°ĐœĐžŃŽ" + +#~ msgid "Channels:" +#~ msgstr "ĐšĐ°ĐœĐ°Đ»ĐŸĐČ:" + +#~ msgid "1 - mono" +#~ msgstr "1 - ĐŒĐŸĐœĐŸ" + +#~ msgid "2 - stereo" +#~ msgstr "2 - ŃŃ‚Đ”Ń€Đ”ĐŸ" + +#, fuzzy +#~ msgid "---- Audio Filters ----" +#~ msgstr "---- Đ’ĐžĐŽĐ”ĐŸ-Ń„ĐžĐ»ŃŒŃ‚Ń€Ń‹ ----" + +#~ msgid " Echo" +#~ msgstr " Đ­Ń…ĐŸ" + +#~ msgid " Reverb" +#~ msgstr " Đ Đ”ĐČĐ”Ń€Đ±Đ”Ń€Đ°Ń†ĐžŃ" + +#~ msgid " Fuzz" +#~ msgstr " Ѐуз" + +#~ msgid " WahWah" +#~ msgstr " КĐČĐ°ĐșушĐșĐ°" + +#~ msgid " Ducky" +#~ msgstr " ĐŁŃ‚Ń‘ĐœĐŸĐș" + +#~ msgid "Stop Video (V)" +#~ msgstr "ĐžŃŃ‚Đ°ĐœĐŸĐČоть ĐČĐžĐŽĐ”ĐŸ (V)" + +#~ msgid "Cap. Video (V)" +#~ msgstr "ЗахĐČ. ĐČĐžĐŽĐ”ĐŸ (V)" + +#~ msgid "Error" +#~ msgstr "ĐžŃˆĐžĐ±ĐșĐ°" + +#, fuzzy +#~ msgid "_Cancel" +#~ msgstr "ĐžŃ‚ĐŒĐ”ĐœĐ°" + +#~ msgid "" +#~ "\n" +#~ "You have more than one video device installed.\n" +#~ "Do you want to try another one ?\n" +#~ msgstr "" +#~ "\n" +#~ "ĐŁ ĐČас ŃƒŃŃ‚Đ°ĐœĐŸĐČĐ»Đ”Đœ ĐŽĐŸĐżĐŸĐ»ĐœĐžŃ‚Đ”Đ»ŃŒĐœŃ‹Đč ĐČĐžĐŽĐ”ĐŸ ĐżŃ€ĐžĐ±ĐŸŃ€.\n" +#~ "Đ„ĐŸŃ‚ĐžŃ‚Đ” ĐżĐŸĐżŃ€ĐŸĐ±ĐŸĐČать ĐŽŃ€ŃƒĐłĐŸĐč?\n" + +#~ msgid "Device:" +#~ msgstr "ĐŁŃŃ‚Ń€ĐŸĐčстĐČĐŸ:" + +#~ msgid "Guvcview Video Capture" +#~ msgstr "ЗаxĐČат ĐČĐžĐŽĐ”ĐŸ чДрДз Guvcview" + +#, fuzzy +#~ msgid "Guvcview" +#~ msgstr "guvcview" + +#, fuzzy +#~ msgid "Stop Cap. (I)" +#~ msgstr "ĐŸŃ€Đ”Đșратоть Đ°ĐČŃ‚ĐŸĐŒĐ°Ń‚ĐžŃ‡Đ”ŃĐșĐžĐč Đ·Đ°Ń…ĐČат (I)" + +#~ msgid "Cap. Image (I)" +#~ msgstr "ЗахĐČ. Đ˜Đ·ĐŸĐ±Ń€Đ°Đ¶Đ”ĐœĐžĐ” (I)" + +#~ msgid "Image Controls" +#~ msgstr "Đ Đ”ĐłŃƒĐ»ĐžŃ€ĐŸĐČĐșĐ° ĐžĐ·ĐŸĐ±Ń€Đ°Đ¶Đ”ĐœĐžŃ" + +#, fuzzy +#~ msgid "Video Controls" +#~ msgstr "ĐĐ°ŃŃ‚Ń€ĐŸĐčĐșĐž ĐżĐŸĐ»ŃŒĐ·ĐŸĐČĐ°Ń‚Đ”Đ»Ń" + +#, fuzzy +#~ msgid "Audio Controls" +#~ msgstr "ĐĐ°ŃŃ‚Ń€ĐŸĐčĐșĐž ĐżĐŸĐ»ŃŒĐ·ĐŸĐČĐ°Ń‚Đ”Đ»Ń" + +#~ msgid "Save Profile" +#~ msgstr "ĐĄĐŸŃ…Ń€Đ°ĐœĐžŃ‚ŃŒ ĐżŃ€ĐŸŃ„ĐžĐ»ŃŒ" + +#~ msgid "Load Profile" +#~ msgstr "Đ—Đ°ĐłŃ€ŃƒĐ·ĐžŃ‚ŃŒ ĐżŃ€ĐŸŃ„ĐžĐ»ŃŒ" + +#~ msgid "File Format:" +#~ msgstr "Đ€ĐŸŃ€ĐŒĐ°Ń‚ фаĐčла:" + +#, fuzzy +#~ msgid "Photo file name" +#~ msgstr "Đ˜ĐŒŃ фаĐčла ĐžĐ·ĐŸĐ±Ń€Đ°Đ¶Đ”ĐœĐžŃ" + +#, fuzzy +#~ msgid "Raw (*.raw)" +#~ msgstr "ĐĐ”ĐŸĐ±Ń€Đ°Đ±ĐŸŃ‚Đ°ĐœĐœĐŸĐ” ĐžĐ·ĐŸĐ±Ń€Đ°Đ¶Đ”ĐœĐžĐ” Raw Image (raw)" + +#, fuzzy +#~ msgid "Jpeg (*.jpg)" +#~ msgstr "Jpeg (jpg)" + +#, fuzzy +#~ msgid "Video file name" +#~ msgstr "Đ˜ĐŒŃ фаĐčла ĐžĐ·ĐŸĐ±Ń€Đ°Đ¶Đ”ĐœĐžŃ" + +#~ msgid "start new" +#~ msgstr "ЗапусĐș ĐœĐŸĐČĐŸĐłĐŸ" + +#~ msgid "restart" +#~ msgstr "ĐżĐ”Ń€Đ”Đ·Đ°ĐłŃ€ŃƒĐ·ĐžŃ‚ŃŒ" + +#~ msgid "new" +#~ msgstr "ĐĐŸĐČыĐč" + +#~ msgid "cancel" +#~ msgstr "ĐžŃ‚ĐŒĐ”ĐœĐ°" + +#~ msgid "" +#~ "launch new process or restart?.\n" +#~ "\n" +#~ msgstr "" +#~ "Запустоть ĐœĐŸĐČыĐč ĐżŃ€ĐŸŃ†Đ”ŃŃ ОлО ĐżĐ”Ń€Đ”Đ·Đ°ĐżŃƒŃŃ‚ĐžŃ‚ŃŒ?\n" +#~ "\n" + +#, fuzzy +#~ msgid "video codec values" +#~ msgstr "Đ·ĐœĐ°Ń‡Đ”ĐœĐžŃ Đ·ĐČуĐșĐŸĐČĐŸĐłĐŸ ĐșĐŸĐŽĐ”ĐșĐ°" + +#~ msgid "" +#~ " encoder fps: \n" +#~ " (0 - use fps combobox value)" +#~ msgstr "" +#~ " ĐșĐŸĐŽĐ”Đș ĐșĐ°ĐŽŃ€ĐŸĐČ/с.: \n" +#~ " (0 - ĐžŃĐżĐŸĐ»ŃŒĐ·ĐŸĐČать Đ·ĐœĐ°Ń‡Đ”ĐœĐžĐ” спОсĐșĐ°)" + +#~ msgid "bit rate: " +#~ msgstr "БОтрДĐčт: " + +#~ msgid "qmax: " +#~ msgstr "qmax: " + +#~ msgid "qmin: " +#~ msgstr "qmin: " + +#~ msgid "max. qdiff: " +#~ msgstr "ĐŒĐ°Đșс. qdiff: " + +#~ msgid "dia size: " +#~ msgstr "dia-size: " + +#~ msgid "pre dia size: " +#~ msgstr "pre-dia-size: " + +#~ msgid "pre me: " +#~ msgstr "pre-me: " + +#~ msgid "pre cmp: " +#~ msgstr "pre-cmp: " + +#~ msgid "cmp: " +#~ msgstr "cmp: " + +#~ msgid "sub cmp: " +#~ msgstr "sub-cmp: " + +#~ msgid "last predictor count: " +#~ msgstr "last-predictor-count: " + +#~ msgid "gop size: " +#~ msgstr "gop-size: " + +#~ msgid "qcompress: " +#~ msgstr "qcompress: " + +#~ msgid "qblur: " +#~ msgstr "qblur: " + +#~ msgid "me method: " +#~ msgstr "me-method: " + +#~ msgid "mb decision: " +#~ msgstr "mb-decision: " + +#~ msgid "audio codec values" +#~ msgstr "Đ·ĐœĐ°Ń‡Đ”ĐœĐžŃ Đ·ĐČуĐșĐŸĐČĐŸĐłĐŸ ĐșĐŸĐŽĐ”ĐșĐ°" + +#~ msgid "sample format: " +#~ msgstr "Đ€ĐŸŃ€ĐŒĐ°Ń‚ ŃŃĐŒĐżĐ»Đ° " + +#~ msgid "Settings" +#~ msgstr "ĐĐ°ŃŃ‚Ń€ĐŸĐčĐșĐž" + +#~ msgid "Hardware Defaults" +#~ msgstr "ĐĐ°ŃŃ‚Ń€ĐŸĐčĐșĐž ĐŸĐ±ĐŸŃ€ŃƒĐŽĐŸĐČĐ°ĐœĐžŃ ĐżĐŸ ŃƒĐŒĐŸĐ»Ń‡Đ°ĐœĐžŃŽ" + +#~ msgid "Camera Button" +#~ msgstr "ĐšĐœĐŸĐżĐșĐ° ĐșĐ°ĐŒĐ”Ń€Ń‹" + +#~ msgid "Capture Image" +#~ msgstr "ЗахĐČатоть ĐžĐ·ĐŸĐ±Ń€Đ°Đ¶Đ”ĐœĐžĐ”" + +#~ msgid "Capture Video" +#~ msgstr "ЗахĐČатоть ĐČĐžĐŽĐ”ĐŸ" + +#~ msgid "Photo" +#~ msgstr "Đ€ĐŸŃ‚ĐŸ" + +#~ msgid "File" +#~ msgstr "ЀаĐčĐ»" + +#~ msgid "Increment Filename" +#~ msgstr "ĐŁĐČĐ”Đ»ĐžŃ‡ĐžŃ‚ŃŒ ĐžĐŒŃ фаĐčла" + +#~ msgid "Video" +#~ msgstr "Đ’ĐžĐŽĐ”ĐŸ" + +#~ msgid "Video Codec" +#~ msgstr "Đ’ĐžĐŽĐ”ĐŸĐșĐŸĐŽĐ”Đș" + +#~ msgid "Video Codec Properties" +#~ msgstr "ĐĄĐČĐŸĐčстĐČĐ° ĐČĐžĐŽĐ”ĐŸĐșĐŸĐŽĐ”ĐșĐ°" + +#~ msgid "Audio Codec" +#~ msgstr "ЗĐČуĐșĐŸĐČĐŸĐč ĐșĐŸĐŽĐ”Đș" + +#~ msgid "Audio Codec Properties" +#~ msgstr "ĐĄĐČĐŸĐčстĐČĐ° Đ·ĐČуĐșĐŸĐČĐŸĐłĐŸ ĐșĐŸĐŽĐ”ĐșĐ°" + +#~ msgid "Left" +#~ msgstr "ВлДĐČĐŸ" + +#~ msgid "Right" +#~ msgstr "ВпраĐČĐŸ" + +#~ msgid "Down" +#~ msgstr "Đ’ĐœĐžĐ·" + +#~ msgid "Up" +#~ msgstr "ВĐČДрх" + +#~ msgid "8 bit" +#~ msgstr "8 бОт" + +#~ msgid "12 bit" +#~ msgstr "12 бОт" + +#~ msgid "Auto Focus (continuous)" +#~ msgstr "АĐČŃ‚ĐŸŃ„ĐŸĐșŃƒŃĐžŃ€ĐŸĐČĐșĐ° (ĐœĐ”ĐżŃ€Đ”Ń€Ń‹ĐČĐœĐ°Ń)" + +#~ msgid "set Focus" +#~ msgstr "ĐŁŃŃ‚Đ°ĐœĐŸĐČĐșĐ° Ń„ĐŸĐșуса" + +#, fuzzy +#~ msgid "_Apply" +#~ msgstr "ĐŸŃ€ĐžĐŒĐ”ĐœĐžŃ‚ŃŒ" + +#~ msgid "Frame Rate:" +#~ msgstr "Đ§Đ°ŃŃ‚ĐŸŃ‚Đ° ĐșĐ°ĐŽŃ€ĐŸĐČ:" + +#~ msgid "Resolution:" +#~ msgstr "Đ Đ°Đ·Ń€Đ”ŃˆĐ”ĐœĐžĐ”:" + +#~ msgid "Camera Output:" +#~ msgstr "ВыĐČĐŸĐŽ ĐșĐ°ĐŒĐ”Ń€Ń‹:" + +#~ msgid "---- Video Filters ----" +#~ msgstr "---- Đ’ĐžĐŽĐ”ĐŸ-Ń„ĐžĐ»ŃŒŃ‚Ń€Ń‹ ----" + +#~ msgid " Mirror" +#~ msgstr " Đ“ĐŸŃ€. ĐŸŃ‚Ń€Đ°Đ¶Đ”ĐœĐžĐ”" + +#~ msgid " Invert" +#~ msgstr " ВДрт. ĐŸŃ‚Ń€Đ°Đ¶Đ”ĐœĐžĐ”" + +#~ msgid " Negative" +#~ msgstr " ĐĐ”ĐłĐ°Ń‚ĐžĐČ" + +#~ msgid " Mono" +#~ msgstr " Đ§Ń‘Ń€ĐœĐŸ-Đ±Đ”Đ»ĐŸĐ”" + +#~ msgid " Pieces" +#~ msgstr " ĐœĐŸĐ·Đ°ĐžĐșĐ°" + +#, fuzzy +#~ msgid "Print version" +#~ msgstr "ĐŸĐŸĐșĐ°Đ·Ń‹ĐČаДт ĐČДрсОю" + +#, fuzzy +#~ msgid "Set device name (def: /dev/video0)" +#~ msgstr "Đ˜ŃĐżĐŸĐ»ŃŒĐ·ŃƒĐ”ĐŒĐŸĐ” ĐČĐžĐŽĐ”ĐŸ-ŃƒŃŃ‚Ń€ĐŸĐčстĐČĐŸ (ĐżĐŸ ŃƒĐŒĐŸĐ»Ń‡Đ°ĐœĐžŃŽ /dev/video0)" + +#, fuzzy +#~ msgid "Set capture method [read | mmap (def)]" +#~ msgstr "ĐœĐ”Ń‚ĐŸĐŽ Đ·Đ°Ń…ĐČата (1 - mmap (ĐżĐŸ ŃƒĐŒĐŸĐ»Ń‡Đ°ĐœĐžŃŽ) 2-чотать)" + +#, fuzzy +#~ msgid "load control profile" +#~ msgstr "Đ—Đ°ĐłŃ€ŃƒĐ·ĐžŃ‚ŃŒ ĐżŃ€ĐŸŃ„ĐžĐ»ŃŒ" + +#, fuzzy +#~ msgid "" +#~ "Guvcview version %s\n" +#~ "\n" +#~ msgstr "Guvcview ĐżŃ€Đ”ĐŽŃƒĐżŃ€Đ”Đ¶ĐŽĐ”ĐœĐžĐ”:" + +#, fuzzy +#~ msgid "saving video to %s" +#~ msgstr "Đ·Đ°Ń…ĐČат ĐČĐžĐŽĐ”ĐŸ ĐČ" + +#~ msgid "guvcview" +#~ msgstr "guvcview" + +#~ msgid "GTK UVC video viewer" +#~ msgstr "GTK UVC ĐČĐžĐŽĐ”ĐŸ ĐŸĐ±ĐŸĐ·Ń€Đ”ĐČĐ°Ń‚Đ”Đ»ŃŒ" + +#~ msgid "A video viewer and capturer for the linux uvc driver" +#~ msgstr "ĐŸŃ€ĐŸĐłŃ€Đ°ĐŒĐŒĐ° ĐżŃ€ĐŸŃĐŒĐŸŃ‚Ń€Đ° Đž запОсО ĐČĐžĐŽĐ”ĐŸ ĐŽĐ»Ń ЮраĐčĐČДра Linux UVC" + +#~ msgid "MPEG2 - (lavc)" +#~ msgstr "MPEG2 - (lavc)" + +#~ msgid "MP3 - (lavc)" +#~ msgstr "MP3 - (lavc)" + +#~ msgid "Dolby AC3 - (lavc)" +#~ msgstr "Dolby AC3 - (lavc)" + +#~ msgid "ACC Low - (faac)" +#~ msgstr "ACC Low - (faac)" + +#~ msgid "Audio" +#~ msgstr "ЗĐČуĐș" + +#~ msgid " Sound" +#~ msgstr " ЗĐČуĐș" + +#~ msgid " Show VU meter" +#~ msgstr " ĐžŃ‚ĐŸĐ±Ń€Đ°Đ¶Đ°Ń‚ŃŒ Đ·ĐœĐ°Ń‡Đ”ĐœĐžĐ” VU" + +#~ msgid "---- Audio Effects ----" +#~ msgstr "---- ĐŃƒĐŽĐžĐŸ-ŃŃ„Ń„Đ”Đșты ----" + +#~ msgid "Save File" +#~ msgstr "ĐĄĐŸŃ…Ń€Đ°ĐœĐžŃ‚ŃŒ фаĐčĐ»" + +#~ msgid "codec values" +#~ msgstr "ĐŸĐ°Ń€Đ°ĐŒĐ”Ń‚Ń€Ń‹ ĐșĐŸĐŽĐ”ĐșĐ°" + +#~ msgid "capturing photo to" +#~ msgstr "Đ·Đ°Ń…ĐČат Ń„ĐŸŃ‚ĐŸ ĐČ" + +#~ msgid "Cap. Video" +#~ msgstr "ЗахĐČ. ĐČĐžĐŽĐ”ĐŸ" + +#~ msgid "GUVCViewer Controls" +#~ msgstr "ĐŸĐ°ĐœĐ”Đ»ŃŒ упраĐČĐ»Đ”ĐœĐžŃ ĐżŃ€ĐŸĐłŃ€Đ°ĐŒĐŒŃ‹ GUVCViewer" + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to open device" +#~ msgstr "" +#~ "ĐžŃˆĐžĐ±ĐșĐ° Guvcview:\n" +#~ "\n" +#~ "ĐĐ” ŃƒĐŽĐ°Đ»ĐŸŃŃŒ ĐŸŃ‚Đșрыть ŃƒŃŃ‚Ń€ĐŸĐčстĐČĐŸ" + +#~ msgid "" +#~ "Please make sure the camera is connected\n" +#~ "and that the correct driver is installed." +#~ msgstr "" +#~ "ĐŸĐŸĐ¶Đ°Đ»ŃƒĐčста ŃƒĐ±Đ”ĐŽĐžŃ‚Đ”ŃŃŒ ĐČ Ń‚ĐŸĐŒ, Ń‡Ń‚ĐŸ ĐșĐ°ĐŒĐ”Ń€Đ° ĐżĐŸĐŽĐșĐ»ŃŽŃ‡Đ”ĐœĐ°\n" +#~ "Đž ЮраĐčĐČДр ŃƒŃŃ‚Đ°ĐœĐŸĐČĐ»Đ”Đœ ĐșĐŸŃ€Ń€Đ”ĐșŃ‚ĐœĐŸ." + +#~ msgid "" +#~ "Guvcview:\n" +#~ "\n" +#~ "UVC Extension controls" +#~ msgstr "" +#~ "Guvcview:\n" +#~ "УпраĐČĐ»Đ”ĐœĐžĐ” UVC Ń€Đ°ŃŃˆĐžŃ€Đ”ĐœĐžŃĐŒĐž" + +#~ msgid "Extension controls were added to the UVC driver" +#~ msgstr "УпраĐČĐ»Đ”ĐœĐžŃ Ń€Đ°ŃŃˆĐžŃ€Đ”ĐœĐžŃĐŒĐž был ЎлбаĐČĐ»Đ”Đœ Đș ЮраĐčĐČĐ”Ń€Ńƒ UVC" + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "UVC Extension controls" +#~ msgstr "" +#~ "ĐžŃˆĐžĐ±ĐșĐ° Guvcview:\n" +#~ "УпраĐČĐ»Đ”ĐœĐžĐ” UVC Ń€Đ°ŃŃˆĐžŃ€Đ”ĐœĐžŃĐŒĐž" + +#~ msgid "" +#~ "An error occurred while adding extension\n" +#~ "controls to the UVC driver\n" +#~ "Make sure you run guvcview as root (or sudo)." +#~ msgstr "" +#~ "ĐŸŃ€ĐŸĐžĐ·ĐŸŃˆĐ»Đ° ĐŸŃˆĐžĐ±ĐșĐ° ĐČ ĐŽĐŸĐ±Đ°ĐČĐ»Đ”ĐœĐžĐ”\n" +#~ "упраĐČĐ»Đ”ĐœĐžĐč Đș Ń€Đ°ŃŃˆĐžŃ€Đ”ĐœĐžŃŽ UVC ЮраĐčĐČДра.\n" +#~ "ĐŁĐ±Đ”ĐŽĐžŃ‚Đ”ŃŃŒ, Ń‡Ń‚ĐŸ ĐČы Đ·Đ°ĐżŃƒŃŃ‚ĐžĐ»Đž guvcview ĐșĐ°Đș root (ОлО sudo)" + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Can't set a valid video stream for guvcview" +#~ msgstr "" +#~ "ĐžŃˆĐžĐ±ĐșĐ° Guvcview:\n" +#~ "ПраĐČĐžĐ»ŃŒĐœŃ‹Đč ĐČĐžĐŽĐ”ĐŸ ĐżĐŸŃ‚ĐŸĐș ĐœĐ” ĐŒĐŸĐ¶Đ”Ń‚ Đ±Ń‹Ń‚ŃŒ ŃƒŃŃ‚Đ°ĐœĐŸĐČĐ»Đ”Đœ ĐŽĐ»Ń guvcview" + +#~ msgid "" +#~ "Make sure your device driver is v4l2 compliant\n" +#~ "and that it is properly installed." +#~ msgstr "" +#~ "ĐŁĐ±Đ”ĐŽĐžŃ‚Đ”ŃŃŒ Ń‡Ń‚ĐŸ ЮраĐčĐČДр ŃĐŸĐČĐŒĐ”ŃŃ‚ĐžĐŒ с v4l2\n" +#~ "Đž праĐČĐžĐ»ŃŒĐœĐŸ ŃƒŃŃ‚Đ°ĐœĐŸĐČĐ»Đ”Đœ" + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to start with minimum setup" +#~ msgstr "" +#~ "ĐžŃˆĐžĐ±ĐșĐ° Guvcview:\n" +#~ "\n" +#~ "ĐĐ” ŃƒĐŽĐ°Đ»ŃŃ запусĐș с ĐŒĐžĐœĐžĐŒĐ°Đ»ŃŒĐœĐŸĐč ĐœĐ°Ń‡Đ°Đ»ŃŒĐœĐŸĐč ŃƒŃŃ‚Đ°ĐœĐŸĐČĐșĐŸĐč" + +#~ msgid "Please reconnect your camera." +#~ msgstr "ĐŸĐŸĐ¶Đ°Đ»ŃƒĐčста, ĐżĐ”Ń€Đ”ĐżĐŸĐŽĐșлючОтД ĐșĐ°ĐŒĐ”Ń€Ńƒ." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Couldn't query device capabilities" +#~ msgstr "" +#~ "ĐžŃˆĐžĐ±ĐșĐ° Guvcview:\n" +#~ "ĐĐ” ĐŒĐŸĐłŃƒ ĐżĐŸĐ»ŃƒŃ‡ĐžŃ‚ŃŒ сĐČĐŸĐčстĐČĐ° ŃƒŃŃ‚Ń€ĐŸĐčстĐČĐ°" + +#~ msgid "Make sure the device driver supports v4l2." +#~ msgstr "ĐŁĐ±Đ”ĐŽĐžŃ‚Đ”ŃŃŒ ĐČ Ń‚ĐŸĐŒ, Ń‡Ń‚ĐŸ ЮраĐčĐČДр ŃƒŃŃ‚Ń€ĐŸĐčстĐČĐ° ĐżĐŸĐŽĐŽĐ”Ń€Đ¶ĐžĐČаДт v4l2." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Read method error" +#~ msgstr "" +#~ "ĐžŃˆĐžĐ±ĐșĐ° Guvcview:\n" +#~ "\n" +#~ "ĐžŃˆĐžĐ±ĐșĐ° ĐŒĐ”Ń‚ĐŸĐŽĐ° Ń‡Ń‚Đ”ĐœĐžŃ" + +#~ msgid "Please try mmap instead (--capture_method=1)." +#~ msgstr "ĐŸĐŸĐżŃ€ĐŸĐ±ŃƒĐčŃ‚Đ” Đ»ŃƒŃ‡ŃˆĐ” mmap (--capture_method=1)." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to allocate Buffers" +#~ msgstr "" +#~ "ĐžŃˆĐžĐ±ĐșĐ° Guvcview:\n" +#~ "\n" +#~ "ĐĐ” ŃƒĐŽĐ°Đ»ĐŸŃŃŒ ĐČŃ‹ĐŽĐ”Đ»ĐžŃ‚ŃŒ ĐŒĐ”ŃŃ‚ĐŸ ĐŽĐ»Ń Đ±ŃƒŃ„Đ”Ń€ĐŸĐČ" + +#~ msgid "Please try restarting your system." +#~ msgstr "ĐĄĐ»Đ”ĐŽŃƒĐ”Ń‚ ĐżĐŸĐżŃ€ĐŸĐ±ĐŸĐČать ĐżĐ”Ń€Đ”Đ·Đ°ĐżŃƒŃŃ‚ĐžŃ‚ŃŒ ŃĐžŃŃ‚Đ”ĐŒŃƒ." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to create Video Thread" +#~ msgstr "" +#~ "ĐžŃˆĐžĐ±ĐșĐ° Guvcview:\n" +#~ "\n" +#~ "ĐĐ” ŃƒĐŽĐ°Đ»ĐŸŃŃŒ ŃĐŸĐ·ĐŽĐ°Ń‚ŃŒ ĐżĐŸŃ‚ĐŸĐș ĐșĐŸĐŒĐ°ĐœĐŽ ĐŽĐ»Ń ĐČĐžĐŽĐ”ĐŸ" + +#~ msgid "Please report it to http://developer.berlios.de/bugs/?group_id=8179" +#~ msgstr "" +#~ "ĐĄĐ»Đ”ĐŽŃƒĐ”Ń‚ ŃĐŸĐŸĐ±Ń‰ĐžŃ‚ŃŒ ĐŸĐ± ŃŃ‚ĐŸĐŒ сюЮа: http://developer.berlios.de/bugs/?" +#~ "group_id=8179" + +#~ msgid "Bitmap (Bmp)" +#~ msgstr "Bitmap (Bmp)" + +#~ msgid "Portable Network Graphics (Png)" +#~ msgstr "Portable Network Graphics (Png)" + +#~ msgid "Displays debug information" +#~ msgstr "ĐŸĐŸĐșĐ°Đ·Ń‹ĐČаДт ĐžĐœŃ„ĐŸŃ€ĐŒĐ°Ń†ĐžŃŽ ĐŽĐ»Ń ĐŸŃ‚Đ»Đ°ĐŽĐșĐž" + +#~ msgid "Exit after adding UVC extension controls (needs root/sudo)" +#~ msgstr "" +#~ "Đ’Ń‹Ń…ĐŸĐŽ ĐżĐŸŃĐ»Đ” ĐŽĐŸĐ±Đ°ĐČĐ»Đ”ĐœĐžŃ Ń€Đ°ŃŃˆĐžŃ€Đ”ĐœĐœŃ‹Ń… ŃĐ»Đ”ĐŒĐ”ĐœŃ‚ĐŸĐČ ŃƒĐżŃ€Đ°ĐČĐ»Đ”ĐœĐžŃ UVC (Ń‚Ń€Đ”Đ±ŃƒĐ”Ń‚ root/" +#~ "sudo)" + +#~ msgid "Don't stream video (image controls only)" +#~ msgstr "" +#~ "ĐĐ” Ń€Đ°Đ±ĐŸŃ‚Đ°Ń‚ŃŒ с ĐżĐŸŃ‚ĐŸĐșĐŸĐČŃ‹ĐŒ ĐČĐžĐŽĐ”ĐŸ (Ń‚ĐŸĐ»ŃŒĐșĐŸ ŃĐ»Đ”ĐŒĐ”ĐœŃ‚Ń‹ упраĐČĐ»Đ”ĐœĐžŃ ĐžĐ·ĐŸĐ±Ń€Đ°Đ¶Đ”ĐœĐžĐ”ĐŒ)" + +#~ msgid "Don't display a GUI" +#~ msgstr "ĐĐ” ĐŸŃ‚ĐŸĐ±Ń€Đ°Đ¶Đ°Ń‚ŃŒ графОчДсĐșĐžĐč ĐžĐœŃ‚Đ”Ń€Ń„Đ”Đčс" + +#~ msgid "Configuration file" +#~ msgstr "ĐšĐŸĐœŃ„ĐžĐłŃƒŃ€Đ°Ń†ĐžĐŸĐœĐœŃ‹Đč фаĐčĐ»" + +#~ msgid "Hardware accelaration (enable(1) | disable(0))" +#~ msgstr "ĐĐżĐżĐ°Ń€Đ°Ń‚ĐœĐŸĐ” усĐșĐŸŃ€Đ”ĐœĐžĐ” (ĐČĐșĐ».(1) | ĐČыĐșĐ».(0))" + +#~ msgid "" +#~ "Pixel format(mjpg|jpeg|yuyv|yvyu|uyvy|yyuv|yu12|yv12|nv12|nv21|nv16|nv61|" +#~ "y41p|grey|y10b|y16 |s501|s505|s508|gbrg|grbg|ba81|rggb|bgr3|rgb3)" +#~ msgstr "" +#~ "Đ€ĐŸŃ€ĐŒĐ°Ń‚ пОĐșсДлДĐč(mjpg|jpeg|yuyv|yvyu|uyvy|yyuv|yu12|yv12|nv12|nv21|nv16|" +#~ "nv61|y41p|grey|y10b|y16 |s501|s505|s508|gbrg|grbg|ba81|rggb|bgr3|rgb3)" + +#~ msgid "Frame size, default: 640x480" +#~ msgstr "Đ Đ°Đ·ĐŒĐ”Ń€ ĐșаЮра (ĐżĐŸ ŃƒĐŒĐŸĐ»Ń‡Đ°ĐœĐžŃŽ 640х480)" + +#~ msgid "Image capture interval in seconds" +#~ msgstr "Đ˜ĐœŃ‚Đ”Ń€ĐČĐ°Đ» ĐŒĐ”Đ¶ĐŽŃƒ ŃĐœĐžĐŒĐșĐ°ĐŒĐž (сДĐș)" + +#~ msgid "Number of Pictures to capture" +#~ msgstr "ĐšĐŸĐ»ĐžŃ‡Đ”ŃŃ‚ĐČĐŸ ŃĐœĐžĐŒĐșĐŸĐČ" + +#~ msgid "Video File name (capture from start)" +#~ msgstr "Đ˜ĐŒŃ ĐČĐžĐŽĐ”ĐŸ-фаĐčла (Đ·Đ°ĐżĐžŃŃŒ ŃŃ€Đ°Đ·Ńƒ ĐżĐŸŃĐ»Đ” запусĐșĐ°)" + +#~ msgid "Video capture time (in seconds)" +#~ msgstr "ĐŸŃ€ĐŸĐŽĐŸĐ»Đ¶ĐžŃ‚Đ”Đ»ŃŒĐœĐŸŃŃ‚ŃŒ ĐČĐžĐŽĐ”ĐŸ-запОсО (сДĐș)" + +#~ msgid "Exits guvcview after closing video" +#~ msgstr "ЗаĐČĐ”Ń€ŃˆĐ°Đ”Ń‚ Ń€Đ°Đ±ĐŸŃ‚Ńƒ guvcview ĐżĐŸŃĐ»Đ” Đ·Đ°Đșрытоя ĐČĐžĐŽĐ”ĐŸ" + +#~ msgid "Number of initial frames to skip" +#~ msgstr "ĐšĐŸĐ»ĐžŃ‡Đ”ŃŃ‚ĐČĐŸ ĐœĐ°Ń‡Đ°Đ»ŃŒĐœŃ‹Ń… ĐșĐ°ĐŽŃ€ĐŸĐČ ĐŽĐ»Ń ĐżŃ€ĐŸĐżŃƒŃĐșĐ°" + +#~ msgid "Show FPS value (enable(1) | disable (0))" +#~ msgstr "ĐžŃ‚ĐŸĐ±Ń€Đ°Đ¶Đ”ĐœĐžĐ” Ń‡Đ°ŃŃ‚ĐŸŃ‚Ń‹ ĐșĐ°ĐŽŃ€ĐŸĐČ (ĐČĐșĐ».(1) | ĐČыĐșĐ».(0))" + +#~ msgid "Load Profile at start" +#~ msgstr "Đ—Đ°ĐłŃ€ŃƒĐ·ĐșĐ° ĐżŃ€ĐŸŃ„ĐžĐ»Ń про запусĐșĐ”" + +#~ msgid "- local options" +#~ msgstr "- Đ»ĐŸĐșĐ°Đ»ŃŒĐœŃ‹Đ” ĐżĐ°Ń€Đ°ĐŒĐ”Ń‚Ń€Ń‹" + +#~ msgid "Cap. Image" +#~ msgstr "ĐĄĐŽĐ”Đ»Đ°Ń‚ŃŒ ŃĐœĐžĐŒĐŸĐș" + +#~ msgid "Not enough free space left on disk" +#~ msgstr "ĐĐ”ĐŽĐŸŃŃ‚Đ°Ń‚ĐŸŃ‡ĐœĐŸ сĐČĐŸĐ±ĐŸĐŽĐœĐŸĐłĐŸ ĐŒĐ”ŃŃ‚Đ° ĐœĐ° ЎОсĐșĐ”" + +#~ msgid "YUY2 - uncomp YUV" +#~ msgstr "YUY2 - ĐœĐ”ŃĐ¶Đ°Ń‚Ń‹Đč YUV" + +#~ msgid "RGB - uncomp BMP" +#~ msgstr "RGB - ĐœĐ”ŃĐ¶Đ°Ń‚Ń‹Đč BMP" + +#~ msgid "AVI - avi format" +#~ msgstr "AVI - Ń„ĐŸŃ€ĐŒĐ°Ń‚ avi" + +#~ msgid "MKV - Matroska format" +#~ msgstr "MKV - Ń„ĐŸŃ€ĐŒĐ°Ń‚ Matroska" + +#~ msgid "WEBM - format" +#~ msgstr "Đ€ĐŸŃ€ĐŒĐ°Ń‚ WEBM" + +#~ msgid " Show" +#~ msgstr " ĐŸĐŸĐșĐ°Đ·Đ°Ń‚ŃŒ" + +#~ msgid "Quality:" +#~ msgstr "КачДстĐČĐŸ:" diff -Nru guvcview-1.7.3/po/gview_v4l2core/si.po guvcview-2.0.1+ubuntu1~ppa1/po/gview_v4l2core/si.po --- guvcview-1.7.3/po/gview_v4l2core/si.po 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/po/gview_v4l2core/si.po 2014-10-05 10:41:44.000000000 +0000 @@ -0,0 +1,944 @@ +# Sinhalese translation for guvcview +# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013 +# This file is distributed under the same license as the guvcview package. +# FIRST AUTHOR , 2013. +# +msgid "" +msgstr "" +"Project-Id-Version: guvcview\n" +"Report-Msgid-Bugs-To: pj.assis@gmail.com\n" +"POT-Creation-Date: 2014-08-17 22:49+0100\n" +"PO-Revision-Date: 2013-06-03 09:59+0000\n" +"Last-Translator: sajith \n" +"Language-Team: Sinhalese \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2013-12-08 10:36+0000\n" +"X-Generator: Launchpad (build 16869)\n" + +#. +#. * needed only for language files (not used) +#. +#. V4L2 control strings +#: ../gview_v4l2core/v4l2_controls.c:49 +msgid "User Controls" +msgstr "ඎරිශ්‍රීගක ඎාගකà¶șන්" + +#: ../gview_v4l2core/v4l2_controls.c:50 +msgid "Brightness" +msgstr "à¶Żà·“à¶Žà·Šà¶­à·’à¶ș" + +#: ../gview_v4l2core/v4l2_controls.c:51 +msgid "Contrast" +msgstr "à¶Żà·“à¶Žà·Šà¶­à·’ වෙනස" + +#: ../gview_v4l2core/v4l2_controls.c:52 +msgid "Hue" +msgstr "ඎැහැà¶ș" + +#: ../gview_v4l2core/v4l2_controls.c:53 +msgid "Saturation" +msgstr "ඎරිඎූර්ණබව" + +#: ../gview_v4l2core/v4l2_controls.c:54 +msgid "Sharpness" +msgstr "තිà¶șුණු බව" + +#: ../gview_v4l2core/v4l2_controls.c:55 +msgid "Gamma" +msgstr "ගැඞා" + +#: ../gview_v4l2core/v4l2_controls.c:56 +msgid "Backlight Compensation" +msgstr "ඎසු ආගෝකන හානිඎූරණà¶ș" + +#: ../gview_v4l2core/v4l2_controls.c:57 +msgid "Power Line Frequency" +msgstr "බග සැඎà¶șුඞ් සංඛ්‍à¶șාතà¶ș" + +#: ../gview_v4l2core/v4l2_controls.c:58 +msgid "Hue, Automatic" +msgstr "ඎැහැà¶ș, ස්වà¶șංක්‍රීà¶șව" + +#: ../gview_v4l2core/v4l2_controls.c:59 +msgid "Focus, Auto" +msgstr "ස්වà¶șංක්‍රීà¶șව නාභිගත කරන්න" + +#: ../gview_v4l2core/v4l2_controls.c:60 +msgid "Manual Mode" +msgstr "අත්ඎොත් ක්‍රඞà¶ș" + +#: ../gview_v4l2core/v4l2_controls.c:61 +msgid "Auto Mode" +msgstr "ස්වà¶șංක්‍රීà¶ș ක්‍රඞà¶ș" + +#: ../gview_v4l2core/v4l2_controls.c:62 +msgid "Shutter Priority Mode" +msgstr "සංවෘත ඎ්‍රඞුඛතා ක්‍රඞà¶ș" + +#: ../gview_v4l2core/v4l2_controls.c:63 +msgid "Aperture Priority Mode" +msgstr "විවෘත ඎ්‍රඞුඛතා ක්‍රඞà¶ș" + +#: ../gview_v4l2core/v4l2_controls.c:64 +msgid "Black Level" +msgstr "කළු ඎාට ඞට්ටඞ" + +#: ../gview_v4l2core/v4l2_controls.c:65 +msgid "White Balance, Automatic" +msgstr "à·ƒà·”à¶Żà·” ඎාට සඞබරතාවà¶ș, ස්වà¶șංක්‍රීà¶ș" + +#: ../gview_v4l2core/v4l2_controls.c:66 +msgid "Do White Balance" +msgstr "à·ƒà·”à¶Żà·” සඞබර කරන්න" + +#: ../gview_v4l2core/v4l2_controls.c:67 +msgid "Red Balance" +msgstr "රතු සඞබරතාවà¶ș" + +#: ../gview_v4l2core/v4l2_controls.c:68 +msgid "Blue Balance" +msgstr "නිග් සඞබරතාවà¶ș" + +#: ../gview_v4l2core/v4l2_controls.c:69 +msgid "Exposure" +msgstr "අනාවර්ණà¶ș" + +#: ../gview_v4l2core/v4l2_controls.c:70 +msgid "Gain, Automatic" +msgstr "ගබාගන්න, ස්වà¶șංක්‍රීà¶șව" + +#: ../gview_v4l2core/v4l2_controls.c:71 +msgid "Gain" +msgstr "ගබාගන්න" + +#: ../gview_v4l2core/v4l2_controls.c:72 +msgid "Horizontal Flip" +msgstr "තිරස් හැරවුඞ" + +#: ../gview_v4l2core/v4l2_controls.c:73 +msgid "Vertical Flip" +msgstr "සිරස් හැරවුඞ" + +#: ../gview_v4l2core/v4l2_controls.c:74 +msgid "Horizontal Center" +msgstr "තිරස් ඞධ්‍à¶șà¶ș" + +#: ../gview_v4l2core/v4l2_controls.c:75 +msgid "Vertical Center" +msgstr "සිරස් ඞධ්‍à¶șà¶ș" + +#: ../gview_v4l2core/v4l2_controls.c:76 +msgid "Chroma AGC" +msgstr "AGC වර්ණතීව‍්‍රතාව" + +#: ../gview_v4l2core/v4l2_controls.c:77 +msgid "Color Killer" +msgstr "වර්ණ නැතිකරන්නා" + +#: ../gview_v4l2core/v4l2_controls.c:78 +msgid "Color Effects" +msgstr "වර්ණ සැරසිගි" + +#. CAMERA CLASS control strings +#: ../gview_v4l2core/v4l2_controls.c:81 +msgid "Camera Controls" +msgstr "කැඞරා ඎාගකà¶șන්" + +#: ../gview_v4l2core/v4l2_controls.c:82 +msgid "Auto Exposure" +msgstr "ස්වà¶șංක්‍රීà¶ș අනාවරණà¶ș" + +#: ../gview_v4l2core/v4l2_controls.c:83 +msgid "Exposure Time, Absolute" +msgstr "නිරඎේක්ෂ කාගà¶ș අනාවරණ කරන්න" + +#: ../gview_v4l2core/v4l2_controls.c:84 +msgid "Exposure, Dynamic Framerate" +msgstr "වෙනස්වන රාඞු ශ්‍රීඝ‍්‍රතාව අනාවරණ කරන්න" + +#: ../gview_v4l2core/v4l2_controls.c:85 +msgid "Pan, Relative" +msgstr "තිරස් ගෙස කරකවන්න, සාඎේක්ෂව" + +#: ../gview_v4l2core/v4l2_controls.c:86 +msgid "Tilt, Relative" +msgstr "සිරස් ගෙස කරකවන්න, සාඎේක්ෂව" + +#: ../gview_v4l2core/v4l2_controls.c:87 +msgid "Pan, Reset" +msgstr "තිරස් ගෙස කරකැවීඞ නැවත අරà¶čන්න" + +#: ../gview_v4l2core/v4l2_controls.c:88 +msgid "Tilt, Reset" +msgstr "සිරස් ගෙස කරකැවීඞ නැවත අරà¶čන්න" + +#: ../gview_v4l2core/v4l2_controls.c:89 +msgid "Pan, Absolute" +msgstr "තිරස් ගෙස කරකවන්න, නිරඎේක්ෂ" + +#: ../gview_v4l2core/v4l2_controls.c:91 +msgid "Focus, Absolute" +msgstr "නිරඎේක්ෂව නාභිගත කරන්න" + +#: ../gview_v4l2core/v4l2_controls.c:92 +msgid "Focus, Relative" +msgstr "සාඎේක්ෂව නාභිගත කරන්න" + +#: ../gview_v4l2core/v4l2_controls.c:93 +msgid "Focus, Automatic" +msgstr "ස්වà¶șංක්‍රීà¶șව නාභිගත කරන්න" + +#: ../gview_v4l2core/v4l2_controls.c:94 +msgid "Zoom, Absolute" +msgstr "සඞීඎ à¶Żà·”à¶»à·ƒà·Šà¶ź රූඎ ගැනීඞ à·ƒà¶łà·„à· කැඞරාව හසුරුවන්න, නිරඎේක්ෂව" + +#: ../gview_v4l2core/v4l2_controls.c:95 +msgid "Zoom, Relative" +msgstr "සඞීඎ à¶Żà·”à¶»à·ƒà·Šà¶ź රූඎ ගැනීඞ à·ƒà¶łà·„à· කැඞරාව හසුරුවන්න, සාඎේක්ෂව" + +#: ../gview_v4l2core/v4l2_controls.c:96 +msgid "Zoom, Continuous" +msgstr "සඞීඎ à¶Żà·”à¶»à·ƒà·Šà¶ź රූඎ ගැනීඞ à·ƒà¶łà·„à· කැඞරාව හසුරුවන්න, අඛණ්ඩව" + +#: ../gview_v4l2core/v4l2_controls.c:97 +msgid "Privacy" +msgstr "à¶Žà·”à¶Żà·Šà¶œà¶œà·’à¶šà¶­à·Šà·€à¶ș" + +#. UVC specific control strings +#: ../gview_v4l2core/v4l2_controls.c:100 +msgid "Exposure, Auto" +msgstr "ස්වà¶șංක්‍රීà¶șව අනාවරණà¶ș කරන්න" + +#: ../gview_v4l2core/v4l2_controls.c:101 +msgid "Exposure, Auto Priority" +msgstr "ස්වà¶șංක්‍රීà¶ș ඎ්‍රඞුඛතාව අනාවරණà¶ș කරන්න" + +#: ../gview_v4l2core/v4l2_controls.c:102 +msgid "Exposure (Absolute)" +msgstr "අනාවරණà¶ș කරන්න (නිරඎේක්ෂව)" + +#: ../gview_v4l2core/v4l2_controls.c:103 +msgid "White Balance Temperature, Auto" +msgstr "à·ƒà·”à¶Żà·” ඎැහැà¶ș à·ƒà·à·ƒà¶łà·“à¶žà·š උෂ්ණත්වà¶ș, ස්වà¶șංක්‍රීà¶șව" + +#: ../gview_v4l2core/v4l2_controls.c:104 +msgid "White Balance Temperature" +msgstr "à·ƒà·”à¶Żà·” ඎැහැà¶ș à·ƒà·à·ƒà¶łà·“à¶žà·š උෂ්ණත්වà¶ș" + +#: ../gview_v4l2core/v4l2_controls.c:105 +msgid "White Balance Component, Auto" +msgstr "à·ƒà·”à¶Żà·” ඎැහැà¶ș à·ƒà·à·ƒà¶łà·“à¶žà·š උඎාංගà¶ș, ස්වà¶șංක්‍රීà¶șව" + +#: ../gview_v4l2core/v4l2_controls.c:106 +msgid "White Balance Blue Component" +msgstr "à·ƒà·”à¶Żà·” ඎැහැà¶ș à·ƒà·à·ƒà¶łà·“à¶žà·š නිග් ඎැහැà¶șේ උඎාංගà¶ș" + +#: ../gview_v4l2core/v4l2_controls.c:107 +msgid "White Balance Red Component" +msgstr "à·ƒà·”à¶Żà·” ඎැහැà¶ș à·ƒà·à·ƒà¶łà·“à¶žà·š රතු ඎැහැà¶șේ උඎාංගà¶ș" + +#. libwebcam specific control strings +#: ../gview_v4l2core/v4l2_controls.c:110 +msgid "Focus" +msgstr "නාභාගත කරන්න" + +#: ../gview_v4l2core/v4l2_controls.c:111 +msgid "Focus (Absolute)" +msgstr "නාභාගත කරන්න (නිරඎේක්ෂව)" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:63 +msgid "Off" +msgstr "අක්‍රීà¶ș" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:64 +msgid "On" +msgstr "සක්‍රීà¶ș" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:65 +msgid "Blinking" +msgstr "ක්ෂණික ආගෝකà¶ș" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:66 +msgid "Auto" +msgstr "ස්වà¶șංක්‍රීà¶ș" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:73 +msgid "Pan (relative)" +msgstr "තිරස් ගෙස කරකවන්න (සාඎේක්ෂව)" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:86 +msgid "Tilt (relative)" +msgstr "සිරස් ගෙස කරකවන්න (සාඎේක්ෂව)" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:99 +msgid "Pan Reset" +msgstr "තිරස් ගෙස කරකැවීඞ නැවත සකසන්න" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:112 +msgid "Tilt Reset" +msgstr "සිරස් ගෙස කරකැවීඞ නැවත සකසන්න" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:125 +msgid "Focus (absolute)" +msgstr "නාභිගත කරන්න (නිරඎේක්ෂව)" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:138 +msgid "LED1 Mode" +msgstr "LED1 ක්‍රඞà¶ș" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:151 +msgid "LED1 Frequency" +msgstr "LED1 සංඛ්‍à¶șාතà¶ș" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:164 +msgid "Disable video processing" +msgstr "වීඩිà¶șෝව සැකසීඞට නොහැක" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:177 +msgid "Raw bits per pixel" +msgstr "ඎික්සග් එකක් à·ƒà¶łà·„à· à¶Żà·… බිට් ඎ්‍රඞාණà¶ș" + +#, fuzzy +#~ msgid "PCM - uncompressed (float 32 bit)" +#~ msgstr "MJPG - සඞ්ඎීඩනà¶ș නොකරන à¶œà¶Ż" + +#~ msgid "Vorbis" +#~ msgstr "Vorbis" + +#, fuzzy +#~ msgid "Raw camera input" +#~ msgstr "කැඞරා නිඞැවුඞ:" + +#~ msgid "MJPG - compressed" +#~ msgstr "MJPG - සඞ්ඎීඩන කරන à¶œà¶Ż" + +#~ msgid "MPEG video 1" +#~ msgstr "MPEG වීඩිà¶șෝ 1" + +#~ msgid "FLV1 - flash video 1" +#~ msgstr "FLV1 - ෆ්ගෑෂ් වීඩිà¶șෝ 1" + +#~ msgid "WMV1 - win. med. video 7" +#~ msgstr "WMV1 - win. med. වීඩිà¶șෝ 7" + +#~ msgid "MPG2 - MPG2 format" +#~ msgstr "MPG2 - MPG2 ආකෘතිà¶ș" + +#~ msgid "MS MP4 V3" +#~ msgstr "MS MP4 V3" + +#~ msgid "MPEG4-ASP" +#~ msgstr "MPEG4-ASP" + +#~ msgid "MPEG4-AVC (H264)" +#~ msgstr "MPEG4-AVC (H264)" + +#~ msgid "VP8 (VP8)" +#~ msgstr "VP8 (VP8)" + +#~ msgid "Theora (ogg theora)" +#~ msgstr "Theora (ogg theora)" + +#~ msgid "Audio API:" +#~ msgstr "ශ්‍රව්‍à¶ș API:" + +#~ msgid "PORTAUDIO" +#~ msgstr "PORTAUDIO" + +#~ msgid "PULSEAUDIO" +#~ msgstr "PULSEAUDIO" + +#~ msgid "Input Device:" +#~ msgstr "à¶șà·™à¶Żà·€à·”à¶žà·Š උඎකරණà¶ș:" + +#~ msgid "Sample Rate:" +#~ msgstr "à¶†à¶Żà¶»à·Šà· අනුඎාතà¶ș:" + +#~ msgid "Dev. Default" +#~ msgstr "Dev. Default" + +#~ msgid "Channels:" +#~ msgstr "නාගිකාවන්:" + +#~ msgid "1 - mono" +#~ msgstr "1 - එකක්" + +#~ msgid "2 - stereo" +#~ msgstr "2 - ත්‍රිඞාන" + +#, fuzzy +#~ msgid "---- Audio Filters ----" +#~ msgstr "---- වීඩිà¶șෝ ඎෙරනà¶șන්----" + +#~ msgid " Echo" +#~ msgstr " අනුකරණà¶ș කරන්න" + +#~ msgid " Reverb" +#~ msgstr " Reverb" + +#~ msgid " Fuzz" +#~ msgstr " Fuzz" + +#~ msgid " WahWah" +#~ msgstr " WahWah" + +#~ msgid " Ducky" +#~ msgstr " Ducky" + +#~ msgid "Stop Video (V)" +#~ msgstr "වීඩිà¶șෝව නවත්වන්න (V)" + +#~ msgid "Cap. Video (V)" +#~ msgstr "වීඩිà¶șෝව ග්‍රහණà¶ș කරගන්න (V)" + +#~ msgid "Error" +#~ msgstr "à¶Żà·à·‚à¶ș" + +#, fuzzy +#~ msgid "_Cancel" +#~ msgstr "අවගංගු කරන්න" + +#~ msgid "" +#~ "\n" +#~ "You have more than one video device installed.\n" +#~ "Do you want to try another one ?\n" +#~ msgstr "" +#~ "\n" +#~ "ඔබ වීඩිà¶șෝ උඎකරණ එකකට වඩා වැඩිà¶șෙන් සවිකර ඇත.\n" +#~ "ඔබට වෙනත් එකක් à¶…à¶­à·Šà·„à¶Żà· බැගීඞට අවශ්‍à¶șà¶Ż?\n" + +#~ msgid "Device:" +#~ msgstr "උඎකරණà¶ș:" + +#~ msgid "Guvcview Video Capture" +#~ msgstr "Guvcview වීඩිà¶șෝ ග්‍රහණà¶ș කරගැනීඞ" + +#, fuzzy +#~ msgid "Guvcview" +#~ msgstr "guvcview" + +#, fuzzy +#~ msgid "Stop Cap. (I)" +#~ msgstr "ස්වà¶șංක්‍රීà¶șව නවත්වන්න (I)" + +#~ msgid "Cap. Image (I)" +#~ msgstr "රූඎà¶ș ග්‍රහණà¶ș කරගන්න (I)" + +#~ msgid "Image Controls" +#~ msgstr "රූඎ ඎාගක" + +#, fuzzy +#~ msgid "Video Controls" +#~ msgstr "ඎරිශ්‍රීගක ඎාගකà¶șන්" + +#, fuzzy +#~ msgid "Audio Controls" +#~ msgstr "ඎරිශ්‍රීගක ඎාගකà¶șන්" + +#~ msgid "Save Profile" +#~ msgstr "ආකෘතිà¶ș සුරකින්න" + +#~ msgid "Load Profile" +#~ msgstr "ආකෘතිà¶ș ඎ්‍රවේශනà¶ș කරන්න" + +#~ msgid "File Format:" +#~ msgstr "ගොනු ආකෘතිà¶ș:" + +#, fuzzy +#~ msgid "Photo file name" +#~ msgstr "රූඎà¶șේ ගොනු නාඞà¶ș" + +#, fuzzy +#~ msgid "Raw (*.raw)" +#~ msgstr "à¶Żà·… රූඎà¶ș (raw)" + +#, fuzzy +#~ msgid "Jpeg (*.jpg)" +#~ msgstr "Jpeg (jpg)" + +#, fuzzy +#~ msgid "Video file name" +#~ msgstr "රූඎà¶șේ ගොනු නාඞà¶ș" + +#~ msgid "start new" +#~ msgstr "අගුතින් අරà¶čන්න" + +#~ msgid "restart" +#~ msgstr "නැවත අරà¶čන්න" + +#~ msgid "new" +#~ msgstr "අගුත් එකක්" + +#~ msgid "cancel" +#~ msgstr "අවගංගු කරන්න" + +#~ msgid "" +#~ "launch new process or restart?.\n" +#~ "\n" +#~ msgstr "" +#~ "අගුත් ක්‍රිà¶șාවගිà¶șක් à¶Żà·’à¶șත් කරන්න හෝ නැවත අරà¶čà¶±à·Šà¶±à¶Ż?.\n" +#~ "\n" + +#, fuzzy +#~ msgid "video codec values" +#~ msgstr "ශ්‍රව්‍à¶ș කොඩෙක් අගà¶șන්" + +#~ msgid "" +#~ " encoder fps: \n" +#~ " (0 - use fps combobox value)" +#~ msgstr "" +#~ " fps සංකේතකà¶ș: \n" +#~ " (0 - fps ගැà¶șිස්තුවක් සහිත රාඞුවේ අගà¶ș ඎාවිච්චි කරන්න)" + +#~ msgid " monotonic pts" +#~ msgstr " ඒකවිධ pts" + +#~ msgid "bit rate: " +#~ msgstr "බිට් අනුඎාතà¶ș: " + +#~ msgid "qmax: " +#~ msgstr "qmax: " + +#~ msgid "qmin: " +#~ msgstr "qmin: " + +#~ msgid "max. qdiff: " +#~ msgstr "උඎරිඞ qdiff: " + +#~ msgid "dia size: " +#~ msgstr "dia size: " + +#~ msgid "pre dia size: " +#~ msgstr "pre dia size: " + +#~ msgid "pre me: " +#~ msgstr "pre me: " + +#~ msgid "pre cmp: " +#~ msgstr "pre cmp: " + +#~ msgid "cmp: " +#~ msgstr "cmp: " + +#~ msgid "sub cmp: " +#~ msgstr "sub cmp: " + +#~ msgid "last predictor count: " +#~ msgstr "අවසාන අනාවැකි ගණන: " + +#~ msgid "gop size: " +#~ msgstr "gop size: " + +#~ msgid "qcompress: " +#~ msgstr "qcompress: " + +#~ msgid "qblur: " +#~ msgstr "qblur: " + +#~ msgid "subq: " +#~ msgstr "subq: " + +#~ msgid "framerefs: " +#~ msgstr "framerefs: " + +#~ msgid "me method: " +#~ msgstr "me method: " + +#~ msgid "mb decision: " +#~ msgstr "mb decision: " + +#~ msgid "max B frames: " +#~ msgstr "උඎරිඞ B රාඞු: " + +#~ msgid "num threads: " +#~ msgstr "num සඞ්බන්ධà¶șන්: " + +#~ msgid "audio codec values" +#~ msgstr "ශ්‍රව්‍à¶ș කොඩෙක් අගà¶șන්" + +#~ msgid "sample format: " +#~ msgstr "à¶†à¶Żà¶»à·Šà· ආකෘතිà¶ș: " + +#~ msgid "Settings" +#~ msgstr "සැකසුඞ්" + +#~ msgid "Hardware Defaults" +#~ msgstr "ස්වභාවික à¶Żà·˜à¶©à·à¶‚à¶œ" + +#~ msgid "Camera Button" +#~ msgstr "කැඞරා බොත්තඞ" + +#~ msgid "Capture Image" +#~ msgstr "රූඎà¶ș ග්‍රහණà¶ș කරගන්න" + +#~ msgid "Capture Video" +#~ msgstr "වීඩිà¶șෝව ග්‍රහණà¶ș කරගන්න" + +#~ msgid "Photo" +#~ msgstr "à¶Ąà·à¶șාරූඎà¶ș" + +#~ msgid "File" +#~ msgstr "ගොනුව" + +#~ msgid "Increment Filename" +#~ msgstr "වර්ධක ගොනු නාඞà¶ș" + +#~ msgid "Video" +#~ msgstr "වීඩිà¶șෝ" + +#~ msgid "Video Codec" +#~ msgstr "වීඩිà¶șෝ කොඩෙක්" + +#~ msgid "Video Codec Properties" +#~ msgstr "වීඩිà¶șෝ කොඩෙක් ගුණාංග" + +#~ msgid "Audio Codec" +#~ msgstr "ශ්‍රව්‍à¶ș කොඩෙක්" + +#~ msgid "Audio Codec Properties" +#~ msgstr "ශ්‍රව්‍à¶ș කොඩෙක් ගුණාංග" + +#~ msgid "Left" +#~ msgstr "වඞ" + +#~ msgid "Right" +#~ msgstr "à¶Żà¶šà·”à¶«" + +#~ msgid "Down" +#~ msgstr "ඎහගට" + +#~ msgid "Up" +#~ msgstr "ඉහළට" + +#~ msgid "8 bit" +#~ msgstr "බිට් 8" + +#~ msgid "12 bit" +#~ msgstr "බිට් 12" + +#~ msgid "Auto Focus (continuous)" +#~ msgstr "ස්වà¶șංක්‍රීà¶șව නාභිගත කරන්න (අඛණ්ඩව)" + +#~ msgid "set Focus" +#~ msgstr "නාභිගත වීඞ සකස් කරන්න" + +#, fuzzy +#~ msgid "_Apply" +#~ msgstr "à¶șà·œà¶Żà¶±à·Šà¶±" + +#~ msgid "Frame Rate:" +#~ msgstr "රාඞු ශීඝ්‍රතාවà¶ș:" + +#~ msgid "Resolution:" +#~ msgstr "තීරණà¶ș:" + +#~ msgid "Camera Output:" +#~ msgstr "කැඞරා නිඞැවුඞ:" + +#~ msgid "---- Video Filters ----" +#~ msgstr "---- වීඩිà¶șෝ ඎෙරනà¶șන්----" + +#~ msgid " Mirror" +#~ msgstr " කැඩඎත" + +#~ msgid " Invert" +#~ msgstr " à¶șටිකුරු කරන්න" + +#~ msgid " Negative" +#~ msgstr " ඎ්‍රතික්ෂේඎ කරන්න" + +#~ msgid " Mono" +#~ msgstr " එකක්" + +#~ msgid " Pieces" +#~ msgstr " කොටස්" + +#~ msgid " Particles" +#~ msgstr " ඉතා කුඩා කොටස්" + +#, fuzzy +#~ msgid "Print version" +#~ msgstr "ඎිටඎත à¶žà·”à¶Żà·Šâ€à¶»à¶«à¶ș කරන්න" + +#, fuzzy +#~ msgid "Set device name (def: /dev/video0)" +#~ msgstr "ඎාවිච්චිà¶ș à·ƒà¶łà·„à· වීඩිà¶șෝ උඎකරණà¶ș [ස්වභාවික: /dev/video0]" + +#, fuzzy +#~ msgid "Set capture method [read | mmap (def)]" +#~ msgstr "ග්‍රහණà¶ș කරගැනීඞේ ක්‍රඞà¶ș (1-mmap (ස්වභාවික) 2-read)" + +#, fuzzy +#~ msgid "load control profile" +#~ msgstr "ආකෘතිà¶ș ඎ්‍රවේශනà¶ș කරන්න" + +#, fuzzy +#~ msgid "" +#~ "Guvcview version %s\n" +#~ "\n" +#~ msgstr "Guvcview අනතුරු ඇඟවීඞ:" + +#, fuzzy +#~ msgid "saving video to %s" +#~ msgstr "වීඩිà¶șෝව ග්‍රහණà¶ș කිරීඞ" + +#~ msgid "guvcview" +#~ msgstr "guvcview" + +#~ msgid "GTK UVC video viewer" +#~ msgstr "GTK UVC වීඩිà¶șෝ à¶Żà¶šà·’à¶±à·Šà¶±à·" + +#~ msgid "A video viewer and capturer for the linux uvc driver" +#~ msgstr "ගිනක්ස් uvc ඩ්‍රà¶șිවරà¶ș à·ƒà¶łà·„à· වීඩිà¶șෝ ඎෙන්වන්නා සහ ග්‍රහණà¶ș කරන්නා" + +#~ msgid "MPEG2 - (lavc)" +#~ msgstr "MPEG2 - (lavc)" + +#~ msgid "MP3 - (lavc)" +#~ msgstr "MP3 - (lavc)" + +#~ msgid "Dolby AC3 - (lavc)" +#~ msgstr "Dolby AC3 - (lavc)" + +#~ msgid "ACC Low - (faac)" +#~ msgstr "ACC Low - (faac)" + +#~ msgid "Audio" +#~ msgstr "ශ්‍රව්‍à¶ș" + +#~ msgid " Sound" +#~ msgstr " à¶±à·à¶Żà¶ș" + +#~ msgid " Show VU meter" +#~ msgstr " VU ඞීටරà¶ș ඎෙන්වන්න" + +#~ msgid "---- Audio Effects ----" +#~ msgstr "---- ශ්‍රවණ සැරසිගි ----" + +#~ msgid "Save File" +#~ msgstr "ගොනුව සුරකින්න" + +#~ msgid "codec values" +#~ msgstr "කොඩෙක් අගà¶șන්" + +#~ msgid "capturing photo to" +#~ msgstr "à¶Ąà·à¶șාරූඎà¶ș ග්‍රහණà¶ș කිරීඞ" + +#~ msgid "Cap. Video" +#~ msgstr "වීඩිà¶șෝව ග්‍රහණà¶ș කරගන්න (V)" + +#~ msgid "GUVCViewer Controls" +#~ msgstr "GUVCViewer ඎාගකà¶șන්" + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to open device" +#~ msgstr "" +#~ "Guvcview à¶Żà·à·‚à¶ș:\n" +#~ "\n" +#~ "උඎකරණà¶ș විවෘත කිරීඞට නොහැක" + +#~ msgid "" +#~ "Please make sure the camera is connected\n" +#~ "and that the correct driver is installed." +#~ msgstr "" +#~ "කරැණාකර කැඞරාව සඞ්බන්ධ කර ඇති බව සහ \n" +#~ "à¶±à·’à·€à·à¶»à¶Żà·’ ඩ්‍රà¶șිවරà¶ș ඎිහිටුවා ඇති බවට සහතික කරගන්න." + +#~ msgid "" +#~ "Guvcview:\n" +#~ "\n" +#~ "UVC Extension controls" +#~ msgstr "" +#~ "Guvcview:\n" +#~ "\n" +#~ "UVC ව්‍à¶șාඎ්ති ඎාගක" + +#~ msgid "Extension controls were added to the UVC driver" +#~ msgstr "UVC ඩ්‍රà¶șිවරà¶șට ව්‍à¶șාඎ්ති ඎාගක එක් à¶šà¶»ï»ż ඇත" + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "UVC Extension controls" +#~ msgstr "" +#~ "Guvcview à¶Żà·à·‚à¶ș:\n" +#~ "\n" +#~ "UVC ව්‍à¶șාඎ්ති ඎාගක" + +#~ msgid "" +#~ "An error occurred while adding extension\n" +#~ "controls to the UVC driver\n" +#~ "Make sure you run guvcview as root (or sudo)." +#~ msgstr "" +#~ "UVC ඩ්‍රà¶șිවරà¶șට ඎාගක ව්‍à¶șාඎ්තිà¶ș එකතු කරන\n" +#~ "අතරතුර à¶Żà·à·‚à¶șක් හට ගැනිණ\n" +#~ "ඔබ guvcview root ගෙස (හෝ sudo) වැඩකරන බව සහතික කරගන්න." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Can't set a valid video stream for guvcview" +#~ msgstr "" +#~ "Guvcview à¶Żà·à·‚à¶ș:\n" +#~ "\n" +#~ "guvcview à·ƒà¶łà·„à· වගංගු වීඩිà¶șෝවක් ඎිහිටුවීඞට නොහැක" + +#~ msgid "" +#~ "Make sure your device driver is v4l2 compliant\n" +#~ "and that it is properly installed." +#~ msgstr "" +#~ "ඔබගේ උඎකරණ ඩ්‍රà¶șිවරà¶ș v4l2ට අනුකූග වන බව \n" +#~ "සහ එà¶ș à·ƒà·”à¶Żà·”à·ƒà·” ගෙස ඎිහිටුවා ඇති බවට සහතික කරගන්න." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to start with minimum setup" +#~ msgstr "" +#~ "Guvcview à¶Żà·à·‚à¶ș:\n" +#~ "\n" +#~ "අවඞ සැගැස්ඞ සඞඟ ඇරà¶čීඞට නොහැක" + +#~ msgid "Please reconnect your camera." +#~ msgstr "කරුණාකර ඔබේ කැඞරාව නැවත සඞ්බන්ධ කරන්න." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Couldn't query device capabilities" +#~ msgstr "" +#~ "Guvcview à¶Żà·à·‚à¶ș:\n" +#~ "\n" +#~ "උඎකරණà¶șන්ගේ හැකිà¶șාවන් විඞසුඞට නොහැකි විà¶ș" + +#~ msgid "Make sure the device driver supports v4l2." +#~ msgstr "උඎකරණ ඩ්‍රà¶șිවරà¶ș v4l2ට අනුග්‍රහà¶ș ගබා à¶Żà·™à¶± බව සහතික කරගන්න." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Read method error" +#~ msgstr "" +#~ "Guvcview à¶Żà·à·‚à¶ș:\n" +#~ "\n" +#~ "කිà¶șවීඞ් ක්‍රඞà¶șේ à¶Żà·à·‚à¶șකි" + +#~ msgid "Please try mmap instead (--capture_method=1)." +#~ msgstr "කරුණාකර mmap වෙනුවට à¶…à¶­à·Šà·„à¶Żà· බගන්න (--capture_method=1)." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to allocate Buffers" +#~ msgstr "" +#~ "Guvcview à¶Żà·à·‚à¶ș:\n" +#~ "බෆර්ස් වෙන්කිරීඞට නොහැක" + +#~ msgid "Please try restarting your system." +#~ msgstr "කරුණාකර ඔබේ à¶Žà¶Żà·Šà¶°à¶­à·’à¶ș නැවත ඇරà¶čීඞට උත්සාහ à¶Żà¶»à¶±à·Šà¶±" + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to create Video Thread" +#~ msgstr "" +#~ "Guvcview à¶Żà·à·‚à¶ș:\n" +#~ "\n" +#~ "වීඩිà¶șෝ ඎටà¶șක් නිර්ඞාණà¶ș කිරීඞට නොහැක" + +#~ msgid "Please report it to http://developer.berlios.de/bugs/?group_id=8179" +#~ msgstr "" +#~ "කරුණාකර එà¶ș ඞෙතනට වාර්තා කරන්න http://developer.berlios.de/bugs/?group_id=8179" + +#~ msgid "Bitmap (Bmp)" +#~ msgstr "Bitmap (Bmp)" + +#~ msgid "Portable Network Graphics (Png)" +#~ msgstr "අතේ ගෙන à¶șාහැකි à¶ąà·à¶œà·’à¶š චිත්‍ර (Png)" + +#~ msgid "Displays debug information" +#~ msgstr "à¶Żà·à·‚ ඞඟහැරීඞේ තොරතුරු ඎෙන්වන්න" + +#~ msgid "Exit after adding UVC extension controls (needs root/sudo)" +#~ msgstr "UVC ව්‍à¶șාඎ්ති ඎාගක එකතු කිරීඞෙන් ඎසුව ඎිටවෙන්න (root/sudo අවශ්‍à¶șà¶șි)" + +#~ msgid "Don't stream video (image controls only)" +#~ msgstr "ගගාà¶șන වීඩිà¶șෝවක් අවශ්‍à¶ș නැත (රූඎà¶ș ඎාගක ඎඞණි)" + +#~ msgid "Don't display a GUI" +#~ msgstr "GUI එකක් à¶Žà·Šâ€à¶»à¶Żà¶»à·Šà·à¶±à¶ș කරන්න එඎා" + +#~ msgid "Configuration file" +#~ msgstr "ආකෘති ගොනුව" + +#~ msgid "Hardware accelaration (enable(1) | disable(0))" +#~ msgstr "à¶Żà·˜à¶©à·à¶‚à¶œ අධිවේගීකරණà¶ș (හැකිà¶șාව(1) | නොහැකිà¶șාව(0))" + +#~ msgid "" +#~ "Pixel format(mjpg|jpeg|yuyv|yvyu|uyvy|yyuv|yu12|yv12|nv12|nv21|nv16|nv61|" +#~ "y41p|grey|y10b|y16 |s501|s505|s508|gbrg|grbg|ba81|rggb|bgr3|rgb3)" +#~ msgstr "" +#~ "Pixel ආකෘතිà¶ș(mjpg|jpeg|yuyv|yvyu|uyvy|yyuv|yu12|yv12|nv12|nv21|nv16|nv61|" +#~ "y41p|grey|y10b|y16 |s501|s505|s508|gbrg|grbg|ba81|rggb|bgr3|rgb3)" + +#~ msgid "Frame size, default: 640x480" +#~ msgstr "රාඞුවක ඎ්‍රඞාණà¶ș, ස්වභාවික: 640x480" + +#~ msgid "Image capture interval in seconds" +#~ msgstr "රූඎà¶ș ග්‍රහණà¶ș කරගැනීඞ අතර කාගà¶ș තත්ඎර වගින්" + +#~ msgid "Number of Pictures to capture" +#~ msgstr "ග්‍රහණà¶ș කරගැනීඞට ඇති ඎින්තූර ගණන" + +#~ msgid "Video File name (capture from start)" +#~ msgstr "වීඩිà¶șෝවේ ගොනු නාඞà¶ș (ග්‍රහණà¶ș කරගැනීඞ ආරඞ්භà¶șේ සිට)" + +#~ msgid "Video capture time (in seconds)" +#~ msgstr "වීඩිà¶șෝවේ ග්‍රහණà¶ș කරගැනීඞේ කාගà¶ș තත්ඎර වගින්" + +#~ msgid "Exits guvcview after closing video" +#~ msgstr "වීඩිà¶șෝව වැසීඞෙන් ඎසුව guvcview එකෙන් ඎිටවෙන්න" + +#~ msgid "Number of initial frames to skip" +#~ msgstr "නොසගකා හැරීඞට ඇති ආරඞ්භක රාඞු ගණන" + +#~ msgid "Show FPS value (enable(1) | disable (0))" +#~ msgstr "FPS අගà¶ș ඎෙන්වන්න (හැකිà¶șාව(1) | නොහැකිà¶șාව(0))" + +#~ msgid "Load Profile at start" +#~ msgstr "ආරඞ්භà¶șà·šà¶Żà·“ ආකෘතිà¶ș ඎ්‍රවේශනà¶ș කරන්න" + +#~ msgid "- local options" +#~ msgstr "- à·ƒà·Šà¶źà·à¶±à·“à¶ș විකග්ඎ" + +#~ msgid "Cap. Image" +#~ msgstr "රූඎà¶ș ග්‍රහණà¶ș කරගන්න" + +#~ msgid "Not enough free space left on disk" +#~ msgstr "සෑ‍හෙන තරඞ් හිස් අවකාශà¶șක් තැටිà¶ș ඞත ඉතිරි වී නොඞැත" + +#~ msgid "YUY2 - uncomp YUV" +#~ msgstr "YUY2 - uncomp YUV" + +#~ msgid "RGB - uncomp BMP" +#~ msgstr "RGB - uncomp BMP" + +#~ msgid "AVI - avi format" +#~ msgstr "AVI - avi ආකෘතිà¶ș" + +#~ msgid "MKV - Matroska format" +#~ msgstr "MKV - Matroska ආකෘතිà¶ș" + +#~ msgid "WEBM - format" +#~ msgstr "WEBM - ආකෘතිà¶ș" + +#~ msgid " Show" +#~ msgstr " ඎෙන්වන්න" + +#~ msgid "Quality:" +#~ msgstr "ගුණාත්ඞකබව:" diff -Nru guvcview-1.7.3/po/gview_v4l2core/sr.po guvcview-2.0.1+ubuntu1~ppa1/po/gview_v4l2core/sr.po --- guvcview-1.7.3/po/gview_v4l2core/sr.po 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/po/gview_v4l2core/sr.po 2014-10-05 10:41:44.000000000 +0000 @@ -0,0 +1,945 @@ +# Serbian translation for guvcview +# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 +# This file is distributed under the same license as the guvcview package. +# FIRST AUTHOR , 2011. +# ĐœĐžŃ€ĐŸŃĐ»Đ°ĐČ ĐĐžĐșĐŸĐ»ĐžŃ› , 2011—2013. +msgid "" +msgstr "" +"Project-Id-Version: guvcview\n" +"Report-Msgid-Bugs-To: pj.assis@gmail.com\n" +"POT-Creation-Date: 2014-08-17 22:49+0100\n" +"PO-Revision-Date: 2013-03-09 13:12+0000\n" +"Last-Translator: ĐœĐžŃ€ĐŸŃĐ»Đ°ĐČ ĐĐžĐșĐŸĐ»ĐžŃ› \n" +"Language-Team: Serbian \n" +"Language: sr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2013-12-08 10:36+0000\n" +"X-Generator: Launchpad (build 16869)\n" + +#. +#. * needed only for language files (not used) +#. +#. V4L2 control strings +#: ../gview_v4l2core/v4l2_controls.c:49 +msgid "User Controls" +msgstr "ĐšĐŸĐœŃ‚Ń€ĐŸĐ»Đ” ĐșĐŸŃ€ĐžŃĐœĐžĐșĐ°" + +#: ../gview_v4l2core/v4l2_controls.c:50 +msgid "Brightness" +msgstr "ОсĐČĐ”Ń‚Ń™Đ”ĐœĐŸŃŃ‚" + +#: ../gview_v4l2core/v4l2_controls.c:51 +msgid "Contrast" +msgstr "ĐšĐŸĐœŃ‚Ń€Đ°ŃŃ‚" + +#: ../gview_v4l2core/v4l2_controls.c:52 +msgid "Hue" +msgstr "ĐĐžŃ˜Đ°ĐœŃĐ°" + +#: ../gview_v4l2core/v4l2_controls.c:53 +msgid "Saturation" +msgstr "Đ—Đ°ŃĐžŃ›Đ”ĐœĐŸŃŃ‚" + +#: ../gview_v4l2core/v4l2_controls.c:54 +msgid "Sharpness" +msgstr "ĐžŃˆŃ‚Ń€ĐžĐœĐ°" + +#: ../gview_v4l2core/v4l2_controls.c:55 +msgid "Gamma" +msgstr "Đ“Đ°ĐŒĐ°" + +#: ../gview_v4l2core/v4l2_controls.c:56 +msgid "Backlight Compensation" +msgstr "ĐŸĐŸĐżŃ€Đ°ĐČĐșĐ° сĐČДтла ĐżĐŸĐ·Đ°ĐŽĐžĐœĐ”" + +#: ../gview_v4l2core/v4l2_controls.c:57 +msgid "Power Line Frequency" +msgstr "ĐŁŃ‡Đ”ŃŃ‚Đ°Đ»ĐŸŃŃ‚ ĐŸŃĐČДжаĐČања" + +#: ../gview_v4l2core/v4l2_controls.c:58 +msgid "Hue, Automatic" +msgstr "ĐĐžŃ˜Đ°ĐœŃĐ°, Đ°ŃƒŃ‚ĐŸĐŒĐ°Ń‚ŃĐșĐž" + +#: ../gview_v4l2core/v4l2_controls.c:59 +msgid "Focus, Auto" +msgstr "Đ€ĐŸĐșус, Đ°ŃƒŃ‚ĐŸ" + +#: ../gview_v4l2core/v4l2_controls.c:60 +msgid "Manual Mode" +msgstr "Đ ŃƒŃ‡ĐœĐŸ" + +#: ../gview_v4l2core/v4l2_controls.c:61 +msgid "Auto Mode" +msgstr "ĐŃƒŃ‚ĐŸĐŒĐ°Ń‚ŃĐșĐž" + +#: ../gview_v4l2core/v4l2_controls.c:62 +msgid "Shutter Priority Mode" +msgstr "ĐŸŃ€ĐžĐŸŃ€ĐžŃ‚Đ”Ń‚ Đ·Đ°Ń‚ĐČарача" + +#: ../gview_v4l2core/v4l2_controls.c:63 +msgid "Aperture Priority Mode" +msgstr "ĐŸŃ€ĐžĐŸŃ€ĐžŃ‚Đ”Ń‚ Đ±Đ»Đ”ĐœĐŽĐ”" + +#: ../gview_v4l2core/v4l2_controls.c:64 +msgid "Black Level" +msgstr "НоĐČĐŸ Ń†Ń€ĐœĐ”" + +#: ../gview_v4l2core/v4l2_controls.c:65 +msgid "White Balance, Automatic" +msgstr "Đ Đ°ĐČĐœĐŸŃ‚Đ”Đ¶Đ° Đ±Đ”Đ»ĐŸĐł, Đ°ŃƒŃ‚ĐŸĐŒĐ°Ń‚ŃĐșĐž" + +#: ../gview_v4l2core/v4l2_controls.c:66 +msgid "Do White Balance" +msgstr "УраĐČĐœĐŸŃ‚Đ”Đ¶Đ°ĐČањД Đ±Đ”Đ»ĐŸĐł" + +#: ../gview_v4l2core/v4l2_controls.c:67 +msgid "Red Balance" +msgstr "Đ Đ°ĐČĐœĐŸŃ‚Đ”Đ¶Đ° црĐČĐ”ĐœĐŸĐł" + +#: ../gview_v4l2core/v4l2_controls.c:68 +msgid "Blue Balance" +msgstr "Đ Đ°ĐČĐœĐŸŃ‚Đ”Đ¶Đ° плаĐČĐŸĐł" + +#: ../gview_v4l2core/v4l2_controls.c:69 +msgid "Exposure" +msgstr "Đ˜Đ·Đ»Đ°ĐłĐ°ŃšĐ”" + +#: ../gview_v4l2core/v4l2_controls.c:70 +msgid "Gain, Automatic" +msgstr "ĐŸĐŸŃ˜Đ°Ń‡Đ°ŃšĐ”, Đ°ŃƒŃ‚ĐŸĐŒĐ°Ń‚ŃĐșĐž" + +#: ../gview_v4l2core/v4l2_controls.c:71 +msgid "Gain" +msgstr "ĐŸĐŸŃ˜Đ°Ń‡Đ°ŃšĐ”" + +#: ../gview_v4l2core/v4l2_controls.c:72 +msgid "Horizontal Flip" +msgstr "Đ’ĐŸĐŽĐŸŃ€Đ°ĐČĐœĐŸ прДĐČртањД" + +#: ../gview_v4l2core/v4l2_controls.c:73 +msgid "Vertical Flip" +msgstr "УспраĐČĐœĐŸ прДĐČртањД" + +#: ../gview_v4l2core/v4l2_controls.c:74 +msgid "Horizontal Center" +msgstr "Đ’ĐŸĐŽĐŸŃ€Đ°ĐČĐœĐŸ Ń†Đ”ĐœŃ‚Ń€ĐžŃ€Đ°ŃšĐ”" + +#: ../gview_v4l2core/v4l2_controls.c:75 +msgid "Vertical Center" +msgstr "УспраĐČĐœĐŸ Ń†Đ”ĐœŃ‚Ń€ĐžŃ€Đ°ŃšĐ”" + +#: ../gview_v4l2core/v4l2_controls.c:76 +msgid "Chroma AGC" +msgstr "АГЩ Ń…Ń€ĐŸĐŒĐžĐœĐ°ĐœŃĐ”" + +#: ../gview_v4l2core/v4l2_controls.c:77 +msgid "Color Killer" +msgstr "ĐŁĐșоЮач Đ±ĐŸŃ˜Đ”" + +#: ../gview_v4l2core/v4l2_controls.c:78 +msgid "Color Effects" +msgstr "Đ•Ń„Đ”Đșто Đ±ĐŸŃ˜Đ”" + +#. CAMERA CLASS control strings +#: ../gview_v4l2core/v4l2_controls.c:81 +msgid "Camera Controls" +msgstr "ĐšĐŸĐœŃ‚Ń€ĐŸĐ»Đ” ĐșĐ°ĐŒĐ”Ń€Đ”" + +#: ../gview_v4l2core/v4l2_controls.c:82 +msgid "Auto Exposure" +msgstr "ĐŃƒŃ‚ĐŸĐŒĐ°Ń‚ŃĐșĐ° Đ”ĐșŃĐżĐŸĐ·ĐžŃ†ĐžŃ˜Đ°" + +#: ../gview_v4l2core/v4l2_controls.c:83 +msgid "Exposure Time, Absolute" +msgstr "Đ’Ń€Đ”ĐŒĐ” Озлагања, Đ°ĐżŃĐŸĐ»ŃƒŃ‚ĐœĐŸ" + +#: ../gview_v4l2core/v4l2_controls.c:84 +msgid "Exposure, Dynamic Framerate" +msgstr "Đ˜Đ·Đ»Đ°ĐłĐ°ŃšĐ”, ĐŽĐžĐœĐ°ĐŒĐžŃ‡ĐșĐž ĐżŃ€ĐŸŃ‚ĐŸĐș ĐșаЮра" + +#: ../gview_v4l2core/v4l2_controls.c:85 +msgid "Pan, Relative" +msgstr "ĐŸŃ€Đ°Ń›Đ”ŃšĐ”, рДлатОĐČĐœĐŸ" + +#: ../gview_v4l2core/v4l2_controls.c:86 +msgid "Tilt, Relative" +msgstr "ĐĐ°ĐłĐžĐ±Đ°ŃšĐ”, рДлатОĐČĐœĐŸ" + +#: ../gview_v4l2core/v4l2_controls.c:87 +msgid "Pan, Reset" +msgstr "ĐŸŃ€Đ°Ń›Đ”ŃšĐ”, ĐżĐŸĐœĐŸĐČĐœĐŸ" + +#: ../gview_v4l2core/v4l2_controls.c:88 +msgid "Tilt, Reset" +msgstr "ĐĐ°ĐłĐžĐ±Đ°ŃšĐ”, ĐżĐŸĐœĐŸĐČĐœĐŸ" + +#: ../gview_v4l2core/v4l2_controls.c:89 +msgid "Pan, Absolute" +msgstr "ĐŸŃ€Đ°Ń›Đ”ŃšĐ”, Đ°ĐżŃĐŸĐ»ŃƒŃ‚ĐœĐŸ" + +#: ../gview_v4l2core/v4l2_controls.c:91 +msgid "Focus, Absolute" +msgstr "Đ€ĐŸĐșус, Đ°ĐżŃĐŸĐ»ŃƒŃ‚ĐœĐž" + +#: ../gview_v4l2core/v4l2_controls.c:92 +msgid "Focus, Relative" +msgstr "Đ€ĐŸĐșус, рДлатОĐČĐœĐž" + +#: ../gview_v4l2core/v4l2_controls.c:93 +msgid "Focus, Automatic" +msgstr "Đ€ĐŸĐșус, Đ°ŃƒŃ‚ĐŸĐŒĐ°Ń‚ŃĐșĐž" + +#: ../gview_v4l2core/v4l2_controls.c:94 +msgid "Zoom, Absolute" +msgstr "Đ—ŃƒĐŒ, Đ°ĐżŃĐŸĐ»ŃƒŃ‚ĐœĐž" + +#: ../gview_v4l2core/v4l2_controls.c:95 +msgid "Zoom, Relative" +msgstr "Đ—ŃƒĐŒ, рДлатОĐČĐœĐž" + +#: ../gview_v4l2core/v4l2_controls.c:96 +msgid "Zoom, Continuous" +msgstr "Đ—ŃƒĐŒ, ĐœĐ”ĐżŃ€Đ”ĐșĐžĐŽĐœĐž" + +#: ../gview_v4l2core/v4l2_controls.c:97 +msgid "Privacy" +msgstr "ПроĐČĐ°Ń‚ĐœĐŸŃŃ‚" + +#. UVC specific control strings +#: ../gview_v4l2core/v4l2_controls.c:100 +msgid "Exposure, Auto" +msgstr "Đ˜Đ·Đ»Đ°ĐłĐ°ŃšĐ”, Đ°ŃƒŃ‚ĐŸĐŒĐ°Ń‚ŃĐșĐŸ" + +#: ../gview_v4l2core/v4l2_controls.c:101 +msgid "Exposure, Auto Priority" +msgstr "Đ˜Đ·Đ»Đ°ĐłĐ°ŃšĐ”, ĐżŃ€ĐžĐŸŃ€ĐžŃ‚Đ”Ń‚ Đ°ŃƒŃ‚ĐŸĐŒĐ°Ń‚ŃĐșĐŸĐł" + +#: ../gview_v4l2core/v4l2_controls.c:102 +msgid "Exposure (Absolute)" +msgstr "Đ˜Đ·Đ»Đ°ĐłĐ°ŃšĐ” (Đ°ĐżŃĐŸĐ»ŃƒŃ‚ĐœĐŸ)" + +#: ../gview_v4l2core/v4l2_controls.c:103 +msgid "White Balance Temperature, Auto" +msgstr "ĐąĐ”ĐŒĐżĐ”Ń€Đ°Ń‚ŃƒŃ€Đ° раĐČĐœĐŸŃ‚Đ”Đ¶Đ” Đ±Đ”Đ»ĐŸĐł, Đ°ŃƒŃ‚ĐŸ" + +#: ../gview_v4l2core/v4l2_controls.c:104 +msgid "White Balance Temperature" +msgstr "ĐąĐ”ĐŒĐżĐ”Ń€Đ°Ń‚ŃƒŃ€Đ° раĐČĐœĐŸŃ‚Đ”Đ¶Đ” Đ±Đ”Đ»ĐŸĐł" + +#: ../gview_v4l2core/v4l2_controls.c:105 +msgid "White Balance Component, Auto" +msgstr "ĐĄĐ°ŃŃ‚ĐŸŃ˜Đ°Đș раĐČĐœĐŸŃ‚Đ”Đ¶Đ” Đ±Đ”Đ»ĐŸĐł, Đ°ŃƒŃ‚ĐŸ" + +#: ../gview_v4l2core/v4l2_controls.c:106 +msgid "White Balance Blue Component" +msgstr "ĐŸĐ»Đ°ĐČĐž ŃĐ°ŃŃ‚ĐŸŃ˜Đ°Đș раĐČĐœĐŸŃ‚Đ”Đ¶Đ” Đ±Đ”Đ»ĐŸĐł" + +#: ../gview_v4l2core/v4l2_controls.c:107 +msgid "White Balance Red Component" +msgstr "ЩрĐČĐ”ĐœĐž ŃĐ°ŃŃ‚ĐŸŃ˜Đ°Đș раĐČĐœĐŸŃ‚Đ”Đ¶Đ” Đ±Đ”Đ»ĐŸĐł" + +#. libwebcam specific control strings +#: ../gview_v4l2core/v4l2_controls.c:110 +msgid "Focus" +msgstr "Đ€ĐŸĐșус" + +#: ../gview_v4l2core/v4l2_controls.c:111 +msgid "Focus (Absolute)" +msgstr "Đ€ĐŸĐșус (Đ°ĐżŃĐŸĐ»ŃƒŃ‚ĐœĐž)" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:63 +msgid "Off" +msgstr "ИсĐșљ." + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:64 +msgid "On" +msgstr "ĐŁĐșљ." + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:65 +msgid "Blinking" +msgstr "йрДпДрДњД" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:66 +msgid "Auto" +msgstr "ĐĄĐ°ĐŒĐŸŃŃ‚Đ°Đ»ĐœĐŸ" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:73 +msgid "Pan (relative)" +msgstr "ĐŸŃ€Đ°Ń›Đ”ŃšĐ” (рДлатОĐČĐœĐŸ)" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:86 +msgid "Tilt (relative)" +msgstr "ĐĐ°ĐłĐžĐ±Đ°ŃšĐ” (рДлатОĐČĐœĐŸ)" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:99 +msgid "Pan Reset" +msgstr "ĐŸĐŸĐœĐŸĐČĐœĐŸ праћДњД" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:112 +msgid "Tilt Reset" +msgstr "ĐŸĐŸĐœĐŸĐČĐœĐŸ ĐœĐ°ĐłĐžĐ±Đ°ŃšĐ”" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:125 +msgid "Focus (absolute)" +msgstr "Đ€ĐŸĐșус (Đ°ĐżŃĐŸĐ»ŃƒŃ‚ĐœĐž)" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:138 +msgid "LED1 Mode" +msgstr "ЛЕД1 Ń€Đ”Đ¶ĐžĐŒ" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:151 +msgid "LED1 Frequency" +msgstr "ЛЕД1 ŃƒŃ‡Đ”ŃŃ‚Đ°Đ»ĐŸŃŃ‚" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:164 +msgid "Disable video processing" +msgstr "ĐžĐœĐ”ĐŒĐŸĐłŃƒŃ›Đž ĐŸĐ±Ń€Đ°Ń’ĐžĐČањД ĐČОЎДа" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:177 +msgid "Raw bits per pixel" +msgstr "ĐĄĐžŃ€ĐŸĐČох бОта ĐżĐŸ тачцо" + +#, fuzzy +#~ msgid "PCM - uncompressed (float 32 bit)" +#~ msgstr "ПЩМ — ĐœĐ”ŃĐ°Đ¶Đ”Ń‚ĐŸ (16 бОта)" + +#~ msgid "Vorbis" +#~ msgstr "Đ’ĐŸŃ€Đ±ĐžŃ" + +#, fuzzy +#~ msgid "Raw camera input" +#~ msgstr "Излаз ĐșĐ°ĐŒĐ”Ń€Đ”:" + +#~ msgid "MJPG - compressed" +#~ msgstr "МЈПГ — сажДтО" + +#~ msgid "MPEG video 1" +#~ msgstr "МПЕГ ĐČĐžĐŽĐ”ĐŸ 1" + +#~ msgid "FLV1 - flash video 1" +#~ msgstr "ЀЛВ1 — Ń„Đ»Đ”Ńˆ ĐČĐžĐŽĐ”ĐŸ 1" + +#~ msgid "WMV1 - win. med. video 7" +#~ msgstr "ВМВ1 — ĐČĐžĐœĐŽĐŸŃƒĐ· ĐŒĐ”ĐŽĐžŃ˜Đ° ĐČĐžĐŽĐ”ĐŸ 7" + +#~ msgid "MPG2 - MPG2 format" +#~ msgstr "МПГ2 — МПГ2 Ń„ĐŸŃ€ĐŒĐ°Ń‚" + +#~ msgid "MS MP4 V3" +#~ msgstr "МС МП4 В3" + +#~ msgid "MPEG4-ASP" +#~ msgstr "МПЕГ4-АСП" + +#~ msgid "MPEG4-AVC (H264)" +#~ msgstr "МПЕГ4-АВЩ (Đ„264)" + +#~ msgid "VP8 (VP8)" +#~ msgstr "ВП8 (VP8)" + +#~ msgid "Theora (ogg theora)" +#~ msgstr "ĐąĐ”ĐŸŃ€Đ° (ogg theora)" + +#~ msgid "Audio API:" +#~ msgstr "ĐŃƒĐŽĐžĐŸ АПИ:" + +#~ msgid "PORTAUDIO" +#~ msgstr "ПОРбАУДИО" + +#~ msgid "PULSEAUDIO" +#~ msgstr "ПУЛСЕАУДИО" + +#~ msgid "Input Device:" +#~ msgstr "ĐŁĐ»Đ°Đ·ĐœĐž ŃƒŃ€Đ”Ń’Đ°Ń˜:" + +#~ msgid "Sample Rate:" +#~ msgstr "ĐŸŃ€ĐŸŃ‚ĐŸĐș ŃƒĐ·ĐŸŃ€ĐșĐ°:" + +#~ msgid "Dev. Default" +#~ msgstr "ĐžŃĐœĐŸĐČĐœĐž са ŃƒŃ€Đ”Ń’Đ°Ń˜Đ°" + +#~ msgid "Channels:" +#~ msgstr "Đ‘Ń€ĐŸŃ˜ ĐșĐ°ĐœĐ°Đ»Đ°:" + +#~ msgid "1 - mono" +#~ msgstr "1 — ĐŒĐŸĐœĐŸ" + +#~ msgid "2 - stereo" +#~ msgstr "2 — ŃŃ‚Đ”Ń€Đ”ĐŸ" + +#, fuzzy +#~ msgid "---- Audio Filters ----" +#~ msgstr "———— Đ’ĐžĐŽĐ”ĐŸ фОлтДрО ————" + +#~ msgid " Echo" +#~ msgstr " Đ•Ń…ĐŸ" + +#~ msgid " Reverb" +#~ msgstr " ĐžĐŽŃ˜Đ”Đș" + +#~ msgid " Fuzz" +#~ msgstr " Маљ" + +#~ msgid " WahWah" +#~ msgstr " ВауВау" + +#~ msgid " Ducky" +#~ msgstr " ĐŸĐ°Ń‡Đ”" + +#~ msgid "Stop Video (V)" +#~ msgstr "ЗаустаĐČĐž ĐČĐžĐŽĐ”ĐŸ (V)" + +#~ msgid "Cap. Video (V)" +#~ msgstr "ĐĄĐœĐžĐŒĐž ĐČĐžĐŽĐ”ĐŸ (V)" + +#~ msgid "Error" +#~ msgstr "Đ“Ń€Đ”ŃˆĐșĐ°" + +#, fuzzy +#~ msgid "_Cancel" +#~ msgstr "ĐŸŃ‚ĐșажО" + +#~ msgid "" +#~ "\n" +#~ "You have more than one video device installed.\n" +#~ "Do you want to try another one ?\n" +#~ msgstr "" +#~ "\n" +#~ "Đ˜ĐŒĐ°Ń‚Đ” ĐœĐ”ĐșĐŸĐ»ĐžĐșĐŸ ĐČĐžĐŽĐ”ĐŸ ŃƒŃ€Đ”Ń’Đ°Ń˜Đ° ĐžĐœŃŃ‚Đ°Đ»ĐžŃ€Đ°ĐœĐ°.\n" +#~ "ЖДлОтД лО ĐŽĐ° ĐżŃ€ĐŸĐ±Đ°Ń‚Đ” ĐœĐ”ĐșĐž Юруго ?\n" + +#~ msgid "Device:" +#~ msgstr "ĐŁŃ€Đ”Ń’Đ°Ń˜:" + +#~ msgid "Guvcview Video Capture" +#~ msgstr "ĐšĐ°ĐŒĐ”Ń€ĐžŃ†Đ° — ĐČĐžĐŽĐ”ĐŸ ŃĐœĐžĐŒĐ°ŃšĐ”" + +#, fuzzy +#~ msgid "Guvcview" +#~ msgstr "ĐšĐ°ĐŒĐ”Ń€ĐžŃ†Đ°" + +#, fuzzy +#~ msgid "Stop Cap. (I)" +#~ msgstr "ЗаустаĐČĐž Đ°ŃƒŃ‚ĐŸĐŒĐ°Ń‚ĐžĐș (I)" + +#~ msgid "Cap. Image (I)" +#~ msgstr "ĐĄĐœĐžĐŒĐž слОĐșу (I)" + +#~ msgid "Image Controls" +#~ msgstr "ĐšĐŸĐœŃ‚Ń€ĐŸĐ»Đ” слОĐșĐ”" + +#, fuzzy +#~ msgid "Video Controls" +#~ msgstr "ĐšĐŸĐœŃ‚Ń€ĐŸĐ»Đ” ĐșĐŸŃ€ĐžŃĐœĐžĐșĐ°" + +#, fuzzy +#~ msgid "Audio Controls" +#~ msgstr "ĐšĐŸĐœŃ‚Ń€ĐŸĐ»Đ” ĐșĐŸŃ€ĐžŃĐœĐžĐșĐ°" + +#~ msgid "Save Profile" +#~ msgstr "СачуĐČај ĐżŃ€ĐŸŃ„ĐžĐ»" + +#~ msgid "Load Profile" +#~ msgstr "Учотај ĐżŃ€ĐŸŃ„ĐžĐ»" + +#~ msgid "File Format:" +#~ msgstr "Запос ĐŽĐ°Ń‚ĐŸŃ‚Đ”ĐșĐ”:" + +#, fuzzy +#~ msgid "Photo file name" +#~ msgstr "ĐĐ°Đ·ĐžĐČ ĐŽĐ°Ń‚ĐŸŃ‚Đ”ĐșĐ” слОĐșĐ”" + +#, fuzzy +#~ msgid "Raw (*.raw)" +#~ msgstr "ĐĄĐžŃ€ĐŸĐČĐ° слОĐșĐ° (raw)" + +#, fuzzy +#~ msgid "Jpeg (*.jpg)" +#~ msgstr "ЈпДг (jpg)" + +#, fuzzy +#~ msgid "Video file name" +#~ msgstr "ĐĐ°Đ·ĐžĐČ ĐŽĐ°Ń‚ĐŸŃ‚Đ”ĐșĐ” слОĐșĐ”" + +#~ msgid "start new" +#~ msgstr "ĐżĐŸĐșŃ€Đ”ĐœĐž ĐœĐŸĐČĐž" + +#~ msgid "restart" +#~ msgstr "ĐżĐŸĐœĐŸĐČĐŸ ĐżĐŸĐșŃ€Đ”ĐœĐž" + +#~ msgid "new" +#~ msgstr "ĐœĐŸĐČĐž" + +#~ msgid "cancel" +#~ msgstr "ĐŸŃ‚ĐșажО" + +#~ msgid "" +#~ "launch new process or restart?.\n" +#~ "\n" +#~ msgstr "" +#~ "ĐŽĐ° ĐżĐŸĐșŃ€Đ”ĐœĐ”ĐŒ ĐœĐŸĐČĐž ĐżŃ€ĐŸŃ†Đ”Ń ОлО ĐŽĐ° сД ĐżĐŸĐœĐŸĐČĐŸ ĐżĐŸĐșŃ€Đ”ĐœĐ”ĐŒ?.\n" +#~ "\n" + +#, fuzzy +#~ msgid "video codec values" +#~ msgstr "ĐČŃ€Đ”ĐŽĐœĐŸŃŃ‚ ĐșĐŸĐŽĐ”ĐșĐ° Đ·ĐČуĐșĐ°" + +#~ msgid "" +#~ " encoder fps: \n" +#~ " (0 - use fps combobox value)" +#~ msgstr "" +#~ " ф/с Đ”ĐœĐșĐŸĐŽĐ”Ń€Đ°: \n" +#~ " (0 — ĐșĐŸŃ€ĐžŃŃ‚ĐžŃ‚Đ” ĐČŃ€Đ”ĐŽĐœĐŸŃŃ‚ ф/с ĐżĐŸŃ™Đ° Đ·Đ° бОрањД)" + +#~ msgid " monotonic pts" +#~ msgstr " Ń˜Đ”ĐŽĐœĐŸĐŸĐ±Ń€Đ°Đ·ĐœĐ” тачĐșĐ”" + +#~ msgid "bit rate: " +#~ msgstr "ĐżŃ€ĐŸŃ‚ĐŸĐș бОта: " + +#~ msgid "qmax: " +#~ msgstr "qmax: " + +#~ msgid "qmin: " +#~ msgstr "qmin: " + +#~ msgid "max. qdiff: " +#~ msgstr "max. q разл: " + +#~ msgid "dia size: " +#~ msgstr "ЎОа ĐČĐ”Đ»ĐžŃ‡ĐžĐœĐ°: " + +#~ msgid "pre dia size: " +#~ msgstr "прД ЎОа ĐČĐ”Đ»ĐžŃ‡ĐžĐœĐ°: " + +#~ msgid "pre me: " +#~ msgstr "прД ĐŒĐ”: " + +#~ msgid "pre cmp: " +#~ msgstr "прД Ń†ĐŒĐż: " + +#~ msgid "cmp: " +#~ msgstr "Ń†ĐŒĐż: " + +#~ msgid "sub cmp: " +#~ msgstr "ĐżĐŸĐŽ Ń†ĐŒĐż: " + +#~ msgid "last predictor count: " +#~ msgstr "ĐżĐŸŃĐ»Đ”ĐŽŃšĐž Đ±Ń€ĐŸŃ˜ прДЎсĐșĐ°Đ·ĐžĐČача: " + +#~ msgid "gop size: " +#~ msgstr "ĐłĐŸĐż ĐČĐ”Đ»ĐžŃ‡ĐžĐœĐ°: " + +#~ msgid "qcompress: " +#~ msgstr "q-ŃĐ°Đ¶ĐžĐŒĐ°ŃšĐ”: " + +#~ msgid "qblur: " +#~ msgstr "q-Đ·Đ°ĐŒŃƒŃ›Đ”ŃšĐ”: " + +#~ msgid "subq: " +#~ msgstr "ĐżĐŸĐŽ-q: " + +#~ msgid "framerefs: " +#~ msgstr "framerefs: " + +#~ msgid "me method: " +#~ msgstr "ĐŒĐ” ĐœĐ°Ń‡ĐžĐœ: " + +#~ msgid "mb decision: " +#~ msgstr "ĐŒĐ± ĐŸĐŽĐ»ŃƒĐșĐ°: " + +#~ msgid "max B frames: " +#~ msgstr "ĐœĐ°Ń˜ĐČОшД Б ĐŸĐșĐČора: " + +#~ msgid "num threads: " +#~ msgstr "бр. ĐœĐžŃ‚Đž: " + +#~ msgid "audio codec values" +#~ msgstr "ĐČŃ€Đ”ĐŽĐœĐŸŃŃ‚ ĐșĐŸĐŽĐ”ĐșĐ° Đ·ĐČуĐșĐ°" + +#~ msgid "sample format: " +#~ msgstr "запОс ŃƒĐ·ĐŸŃ€ĐșĐ°: " + +#~ msgid "Settings" +#~ msgstr "ĐŸĐŸĐŽĐ”ŃˆĐ°ĐČања" + +#~ msgid "Hardware Defaults" +#~ msgstr "ĐžŃĐœĐŸĐČĐœĐŸ са ŃƒŃ€Đ”Ń’Đ°Ń˜Đ°" + +#~ msgid "Camera Button" +#~ msgstr "Đ”ŃƒĐłĐŒĐ” Ń„ĐŸŃ‚ĐŸ-апарата" + +#~ msgid "Capture Image" +#~ msgstr "ĐĄĐœĐžĐŒĐž слОĐșу" + +#~ msgid "Capture Video" +#~ msgstr "ĐĄĐœĐžĐŒĐž ĐČĐžĐŽĐ”ĐŸ" + +#~ msgid "Photo" +#~ msgstr "Đ€ĐŸŃ‚ĐŸĐłŃ€Đ°Ń„ĐžŃ˜Đ°" + +#~ msgid "File" +#~ msgstr "Đ”Đ°Ń‚ĐŸŃ‚Đ”ĐșĐ°" + +#~ msgid "Increment Filename" +#~ msgstr "ĐĐ°Đ·ĐžĐČ ĐŽĐ°Ń‚ĐŸŃ‚Đ”ĐșĐ” уĐČДћања" + +#~ msgid "Video" +#~ msgstr "Đ’ĐžĐŽĐ”ĐŸ" + +#~ msgid "Video Codec" +#~ msgstr "Đ’ĐžĐŽĐ”ĐŸ ĐșĐŸĐŽĐ”Đș" + +#~ msgid "Video Codec Properties" +#~ msgstr "ĐĄĐČĐŸŃ˜ŃŃ‚ĐČĐ° ĐČĐžĐŽĐ”ĐŸ ĐșĐŸĐŽĐ”ĐșĐ°" + +#~ msgid "Audio Codec" +#~ msgstr "ĐŃƒĐŽĐžĐŸ ĐșĐŸĐŽĐ”Đș" + +#~ msgid "Audio Codec Properties" +#~ msgstr "ĐĄĐČĐŸŃ˜ŃŃ‚ĐČĐ° Đ°ŃƒĐŽĐžĐŸ ĐșĐŸĐŽĐ”ĐșĐ°" + +#~ msgid "Left" +#~ msgstr "ЛДĐČĐŸ" + +#~ msgid "Right" +#~ msgstr "Đ”Đ”ŃĐœĐŸ" + +#~ msgid "Down" +#~ msgstr "Đ”ĐŸĐ»Đ”" + +#~ msgid "Up" +#~ msgstr "Đ“ĐŸŃ€Đ”" + +#~ msgid "8 bit" +#~ msgstr "8 бОта" + +#~ msgid "12 bit" +#~ msgstr "12 бОта" + +#~ msgid "Auto Focus (continuous)" +#~ msgstr "ĐĄĐ°ĐŒĐŸŃŃ‚Đ°Đ»ĐœĐŸ Ń„ĐŸĐșŃƒŃĐžŃ€Đ°ŃšĐ” (ĐœĐ”ĐżŃ€Đ”ĐșĐžĐŽĐœĐŸ)" + +#~ msgid "set Focus" +#~ msgstr "ĐżĐŸĐŽĐ”ŃĐž Ń„ĐŸĐșус" + +#, fuzzy +#~ msgid "_Apply" +#~ msgstr "ĐŸŃ€ĐžĐŒĐ”ĐœĐž" + +#~ msgid "Frame Rate:" +#~ msgstr "ĐŸŃ€ĐŸŃ‚ĐŸĐș ĐșаЮра:" + +#~ msgid "Resolution:" +#~ msgstr "Đ Đ”Đ·ĐŸĐ»ŃƒŃ†ĐžŃ˜Đ°:" + +#~ msgid "Camera Output:" +#~ msgstr "Излаз ĐșĐ°ĐŒĐ”Ń€Đ”:" + +#~ msgid "---- Video Filters ----" +#~ msgstr "———— Đ’ĐžĐŽĐ”ĐŸ фОлтДрО ————" + +#~ msgid " Mirror" +#~ msgstr " ĐžĐłĐ»Đ”ĐŽĐ°Đ»ĐŸ" + +#~ msgid " Invert" +#~ msgstr " ĐžĐ±Ń€ĐœŃƒŃ‚ĐŸ" + +#~ msgid " Negative" +#~ msgstr " ĐĐ”ĐłĐ°Ń‚ĐžĐČ" + +#~ msgid " Mono" +#~ msgstr " ĐœĐŸĐœĐŸ" + +#~ msgid " Pieces" +#~ msgstr " ĐšĐŸĐŒĐ°ĐŽĐžŃ›Đž" + +#~ msgid " Particles" +#~ msgstr " ЧДстОцД" + +#, fuzzy +#~ msgid "Print version" +#~ msgstr "ĐšŃ‚Đ°ĐŒĐżĐ° ОзЎањД" + +#, fuzzy +#~ msgid "Set device name (def: /dev/video0)" +#~ msgstr "Đ’ĐžĐŽĐ”ĐŸ ŃƒŃ€Đ”Ń’Đ°Ń˜ Đ·Đ° ĐșĐŸŃ€ĐžŃˆŃ›Đ”ŃšĐ” [ĐŸŃĐœĐŸĐČĐœĐž: „/dev/video0“]" + +#, fuzzy +#~ msgid "Set capture method [read | mmap (def)]" +#~ msgstr "ĐĐ°Ń‡ĐžĐœ ŃĐœĐžĐŒĐ°ŃšĐ° (1-ĐŒĐŒĐ°Đż (ĐŸŃĐœĐŸĐČĐœĐŸ) 2-чотај)" + +#, fuzzy +#~ msgid "load control profile" +#~ msgstr "Учотај ĐżŃ€ĐŸŃ„ĐžĐ»" + +#, fuzzy +#~ msgid "" +#~ "Guvcview version %s\n" +#~ "\n" +#~ msgstr "ĐŁĐżĐŸĐ·ĐŸŃ€Đ”ŃšĐ” ĐšĐ°ĐŒĐ”Ń€ĐžŃ†Đ”:" + +#, fuzzy +#~ msgid "saving video to %s" +#~ msgstr "ŃĐœĐžĐŒĐ°ĐŒ ĐČĐžĐŽĐ”ĐŸ у" + +#~ msgid "guvcview" +#~ msgstr "ĐšĐ°ĐŒĐ”Ń€ĐžŃ†Đ°" + +#~ msgid "GTK UVC video viewer" +#~ msgstr "ГбК УВЩ ĐČĐžĐŽĐ”ĐŸ проĐșĐ°Đ·ĐžĐČач" + +#~ msgid "A video viewer and capturer for the linux uvc driver" +#~ msgstr "ПроĐșĐ°Đ·ĐžĐČач Đž ŃĐœĐžĐŒĐ°Ń‡ ĐČОЎДа Đ·Đ° Đ»ĐžĐœŃƒĐșŃĐŸĐČ ŃƒĐČц упраĐČљачĐșĐž ĐżŃ€ĐŸĐłŃ€Đ°ĐŒ" + +#~ msgid "MPEG2 - (lavc)" +#~ msgstr "МПЕГ2 — (lavc)" + +#~ msgid "MP3 - (lavc)" +#~ msgstr "МП3 — (lavc)" + +#~ msgid "Dolby AC3 - (lavc)" +#~ msgstr "Đ”ĐŸĐ»Đ±Đž АЊ3 — (lavc)" + +#~ msgid "ACC Low - (faac)" +#~ msgstr "НосĐșĐž АЊЊ — (faac)" + +#~ msgid "Audio" +#~ msgstr "ĐŃƒĐŽĐžĐŸ" + +#~ msgid " Sound" +#~ msgstr " ЗĐČуĐș" + +#~ msgid " Show VU meter" +#~ msgstr " ПроĐșажО ВУ ĐŒĐ”Ń‚Đ°Ń€" + +#~ msgid "---- Audio Effects ----" +#~ msgstr "———— ĐŃƒĐŽĐžĐŸ ДфДĐșто ————" + +#~ msgid "Save File" +#~ msgstr "СачуĐČĐ°Ń˜Ń‚Đ” ĐŽĐ°Ń‚ĐŸŃ‚Đ”Đșу" + +#~ msgid "codec values" +#~ msgstr "ĐČŃ€Đ”ĐŽĐœĐŸŃŃ‚Đž ĐșĐŸĐŽĐ”ĐșĐ°" + +#~ msgid "capturing photo to" +#~ msgstr "ŃĐœĐžĐŒĐ°ĐŒ Ń„ĐŸŃ‚ĐŸĐłŃ€Đ°Ń„ĐžŃ˜Ńƒ у" + +#~ msgid "Cap. Video" +#~ msgstr "ĐĄĐœĐžĐŒĐž ĐČĐžĐŽĐ”ĐŸ" + +#~ msgid "GUVCViewer Controls" +#~ msgstr "ĐšĐŸĐœŃ‚Ń€ĐŸĐ»Đ” ĐšĐ°ĐŒĐ”Ń€ĐžŃ†Đ”" + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to open device" +#~ msgstr "" +#~ "Đ“Ń€Đ”ŃˆĐșĐ° ĐšĐ°ĐŒĐ”Ń€ĐžŃ†Đ”:\n" +#~ "\n" +#~ "ĐĐ” ĐŒĐŸĐłŃƒ ĐŽĐ° ĐŸŃ‚ĐČĐŸŃ€ĐžĐŒ ŃƒŃ€Đ”Ń’Đ°Ń˜" + +#~ msgid "" +#~ "Please make sure the camera is connected\n" +#~ "and that the correct driver is installed." +#~ msgstr "" +#~ "ĐŸŃ€ĐŸĐČДрОтД ĐŽĐ° лО јД ĐșĐ°ĐŒĐ”Ń€Đ° ĐżĐŸĐČĐ”Đ·Đ°ĐœĐ° Đž ĐŽĐ° лО\n" +#~ "јД ĐžĐœŃŃ‚Đ°Đ»ĐžŃ€Đ°Đœ оспраĐČĐ°Đœ упраĐČљачĐșĐž ĐżŃ€ĐŸĐłŃ€Đ°ĐŒ." + +#~ msgid "" +#~ "Guvcview:\n" +#~ "\n" +#~ "UVC Extension controls" +#~ msgstr "" +#~ "ĐšĐ°ĐŒĐ”Ń€ĐžŃ†Đ°:\n" +#~ "\n" +#~ "ĐšĐŸĐœŃ‚Ń€ĐŸĐ»Đ” УВЩ ĐżŃ€ĐŸŃˆĐžŃ€Đ”ŃšĐ°" + +#~ msgid "Extension controls were added to the UVC driver" +#~ msgstr "ĐšĐŸĐœŃ‚Ń€ĐŸĐ»Đ” ĐżŃ€ĐŸŃˆĐžŃ€Đ”ŃšĐ° су ĐŽĐŸĐŽĐ°Ń‚Đ” УВЩ упраĐČљачĐșĐŸĐŒ ĐżŃ€ĐŸĐłŃ€Đ°ĐŒŃƒ" + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "UVC Extension controls" +#~ msgstr "" +#~ "Đ“Ń€Đ”ŃˆĐșĐ° ĐšĐ°ĐŒĐ”Ń€ĐžŃ†Đ”:\n" +#~ "\n" +#~ "ĐšĐŸĐœŃ‚Ń€ĐŸĐ»Đ” УВЩ ĐżŃ€ĐŸŃˆĐžŃ€Đ”ŃšĐ°" + +#~ msgid "" +#~ "An error occurred while adding extension\n" +#~ "controls to the UVC driver\n" +#~ "Make sure you run guvcview as root (or sudo)." +#~ msgstr "" +#~ "Đ”ĐŸŃˆĐ»ĐŸ јД ĐŽĐŸ ĐłŃ€Đ”ŃˆĐșĐ” прОлОĐșĐŸĐŒ ĐŽĐŸĐŽĐ°ĐČања ĐșĐŸĐœŃ‚Ń€ĐŸĐ»Đ°\n" +#~ "ĐżŃ€ĐŸŃˆĐžŃ€Đ”ŃšĐ° УВЩ упраĐČљачĐșĐŸĐŒ ĐżŃ€ĐŸĐłŃ€Đ°ĐŒŃƒ. ĐŁĐČДрОтД сД ĐŽĐ°\n" +#~ "стД ĐżĐŸĐșŃ€Đ”ĐœŃƒĐ»Đž ĐșĐ°ĐŒĐ”Ń€Ń‡Đ” ĐșĐ°ĐŸ Đ°ĐŽĐŒĐžĐœĐžŃŃ‚Ń€Đ°Ń‚ĐŸŃ€ (ОлО ŃŃƒĐŽĐŸ)." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Can't set a valid video stream for guvcview" +#~ msgstr "" +#~ "Đ“Ń€Đ”ŃˆĐșĐ° ĐšĐ°ĐŒĐ”Ń€ĐžŃ†Đ”:\n" +#~ "\n" +#~ "ĐĐ” ĐŒĐŸĐłŃƒ ĐŽĐ° ĐżĐŸĐŽĐ”ŃĐžĐŒ оспраĐČĐ°Đœ ĐČĐžĐŽĐ”ĐŸ Ń‚ĐŸĐș Đ·Đ° ĐșĐ°ĐŒĐ”Ń€Ń‡Đ”" + +#~ msgid "" +#~ "Make sure your device driver is v4l2 compliant\n" +#~ "and that it is properly installed." +#~ msgstr "" +#~ "ĐŁĐČДрОтД сД ĐŽĐ° јД упраĐČљачĐșĐž ĐżŃ€ĐŸĐłŃ€Đ°ĐŒ ĐČашДг ŃƒŃ€Đ”Ń’Đ°Ń˜Đ°\n" +#~ "ŃƒŃĐ°ĐłĐ»Đ°ŃˆĐ”Đœ са ĐČ4Đ»2 Đž ĐŽĐ° јД оспраĐČĐœĐŸ ĐžĐœŃŃ‚Đ°Đ»ĐžŃ€Đ°Đœ." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to start with minimum setup" +#~ msgstr "" +#~ "Đ“Ń€Đ”ŃˆĐșĐ° ĐšĐ°ĐŒĐ”Ń€ĐžŃ†Đ”:\n" +#~ "\n" +#~ "ĐĐ” ĐŒĐŸĐłŃƒ ĐŽĐ° Đ·Đ°ĐżĐŸŃ‡ĐœĐ”ĐŒ са ĐŒĐžĐœĐžĐŒĐ°Đ»ĐœĐžĐŒ ĐżĐŸĐŽĐ”ŃˆĐ°ĐČĐ°ŃšĐžĐŒĐ°" + +#~ msgid "Please reconnect your camera." +#~ msgstr "ĐœĐŸĐ»ĐžĐŒ ĐżĐŸĐœĐŸĐČĐŸ ĐżĐŸĐČДжОтД ĐČашу ĐșĐ°ĐŒĐ”Ń€Ńƒ." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Couldn't query device capabilities" +#~ msgstr "" +#~ "Đ“Ń€Đ”ŃˆĐșĐ° ĐšĐ°ĐŒĐ”Ń€ĐžŃ†Đ”:\n" +#~ "\n" +#~ "ĐĐ” ĐŒĐŸĐłŃƒ ĐŽĐ° ĐžŃĐżĐžŃ‚Đ°ĐŒ ĐŒĐŸĐłŃƒŃ›ĐœĐŸŃŃ‚Đž ŃƒŃ€Đ”Ń’Đ°Ń˜Đ°" + +#~ msgid "Make sure the device driver supports v4l2." +#~ msgstr "ĐŁĐČДрОтД сД ĐŽĐ° упраĐČљачĐșĐž ĐżŃ€ĐŸĐłŃ€Đ°ĐŒ ŃƒŃ€Đ”Ń’Đ°Ń˜Đ° ĐżĐŸĐŽŃ€Đ¶Đ°ĐČĐ° ĐČ4Đ»2." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Read method error" +#~ msgstr "" +#~ "Đ“Ń€Đ”ŃˆĐșĐ° ĐšĐ°ĐŒĐ”Ń€ĐžŃ†Đ”:\n" +#~ "\n" +#~ "Đ“Ń€Đ”ŃˆĐșĐ° Ń€Đ”Đ¶ĐžĐŒĐ° чотања" + +#~ msgid "Please try mmap instead (--capture_method=1)." +#~ msgstr "ĐœĐŸĐ»ĐžĐŒ ĐżĐŸĐșŃƒŃˆĐ°Ń˜Ń‚Đ” „mmap“ ŃƒĐŒĐ”ŃŃ‚ĐŸ ĐŸĐČĐŸĐł (--capture_method=1)." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to allocate Buffers" +#~ msgstr "" +#~ "Đ“Ń€Đ”ŃˆĐșĐ° ĐšĐ°ĐŒĐ”Ń€ĐžŃ†Đ”:\n" +#~ "\n" +#~ "ĐĐ” ĐŒĐŸĐłŃƒ ĐŽĐ° ĐŽĐŸĐŽĐ”Đ»ĐžĐŒ БафДрД" + +#~ msgid "Please try restarting your system." +#~ msgstr "ĐœĐŸĐ»ĐžĐŒ ĐżĐŸĐșŃƒŃˆĐ°Ń˜Ń‚Đ” ĐżĐŸĐœĐŸĐČĐŸ ĐŽĐ° ĐżĐŸĐșŃ€Đ”ĐœĐ”Ń‚Đ” ŃĐžŃŃ‚Đ”ĐŒ." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to create Video Thread" +#~ msgstr "" +#~ "Đ“Ń€Đ”ŃˆĐșĐ° ĐšĐ°ĐŒĐ”Ń€ĐžŃ†Đ”:\n" +#~ "\n" +#~ "ĐĐ” ĐŒĐŸĐłŃƒ ĐŽĐ° ĐœĐ°ĐżŃ€Đ°ĐČĐžĐŒ ĐČĐžĐŽĐ”ĐŸ ĐœĐžŃ‚" + +#~ msgid "Please report it to http://developer.berlios.de/bugs/?group_id=8179" +#~ msgstr "" +#~ "ĐœĐŸĐ»ĐžĐŒ пројаĐČОтД ĐœĐ° Đ°ĐŽŃ€Đ”ŃŃƒ: http://developer.berlios.de/bugs/?group_id=8179" + +#~ msgid "Bitmap (Bmp)" +#~ msgstr "Đ‘ĐžŃ‚ĐŒĐ°Đż (Bmp)" + +#~ msgid "Portable Network Graphics (Png)" +#~ msgstr "ĐŸŃ€Đ”ĐœĐŸŃĐœĐ° ĐŒŃ€Đ”Đ¶ĐœĐ° графоĐșĐ° (Png)" + +#~ msgid "Displays debug information" +#~ msgstr "ПроĐșазујД ĐžĐœŃ„ĐŸŃ€ĐŒĐ°Ń†ĐžŃ˜e ĐŸ оспраĐČљању ĐłŃ€Đ”ŃˆĐ°ĐșĐ°" + +#~ msgid "Exit after adding UVC extension controls (needs root/sudo)" +#~ msgstr "ИзлазО ĐżĐŸŃĐ»Đ” ĐŽĐŸĐŽĐ°ĐČања ĐșĐŸĐœŃ‚Ń€ĐŸĐ»Đ° УВЩ ĐżŃ€ĐŸŃˆĐžŃ€Đ”ŃšĐ° (Đ·Đ°Ń…Ń‚Đ”ĐČĐ° „root/sudo“)" + +#~ msgid "Don't stream video (image controls only)" +#~ msgstr "ĐĐ” пушта Ń‚ĐŸĐș ĐČОЎДа (ŃĐ°ĐŒĐŸ ĐșĐŸĐœŃ‚Ń€ĐŸĐ»Đ” слОĐșĐ”)" + +#~ msgid "Don't display a GUI" +#~ msgstr "ĐĐ” проĐșазујД ГКС" + +#~ msgid "Configuration file" +#~ msgstr "Đ”Đ°Ń‚ĐŸŃ‚Đ”ĐșĐ° ĐżĐŸĐŽĐ”ŃˆĐ°ĐČања" + +#~ msgid "Hardware accelaration (enable(1) | disable(0))" +#~ msgstr "УбрзањД фОзОчĐșĐ” ĐșĐŸĐŒĐżĐŸĐœĐ”ĐœŃ‚Đ” (уĐșључо(1) | ОсĐșључо(0))" + +#~ msgid "" +#~ "Pixel format(mjpg|jpeg|yuyv|yvyu|uyvy|yyuv|yu12|yv12|nv12|nv21|nv16|nv61|" +#~ "y41p|grey|y10b|y16 |s501|s505|s508|gbrg|grbg|ba81|rggb|bgr3|rgb3)" +#~ msgstr "" +#~ "Đ€ĐŸŃ€ĐŒĐ°Ń‚ тачаĐșĐ°(mjpg|jpeg|yuyv|yvyu|uyvy|yyuv|yu12|yv12|nv12|nv21|nv16|nv61|" +#~ "y41p|grey|y10b|y16 |s501|s505|s508|gbrg|grbg|ba81|rggb|bgr3|rgb3)" + +#~ msgid "Frame size, default: 640x480" +#~ msgstr "Đ’Đ”Đ»ĐžŃ‡ĐžĐœĐ° ĐșаЮра, ĐŸŃĐœĐŸĐČĐœĐ°: 640Đș480" + +#~ msgid "Image capture interval in seconds" +#~ msgstr "Đ˜ĐœŃ‚Đ”Ń€ĐČĐ°Đ» ŃĐœĐžĐŒĐ°ŃšĐ° слОĐșĐ” у сДĐșŃƒĐœĐŽĐ°ĐŒĐ°" + +#~ msgid "Number of Pictures to capture" +#~ msgstr "Đ‘Ń€ĐŸŃ˜ слОĐșĐ° Đ·Đ° ŃĐœĐžĐŒĐ°ŃšĐ”" + +#~ msgid "Video File name (capture from start)" +#~ msgstr "ĐĐ°Đ·ĐžĐČ ĐŽĐ°Ń‚ĐŸŃ‚Đ”ĐșĐ” ĐČОЎДа (ŃĐœĐžĐŒĐ°ŃšĐ” ĐŸĐŽ ĐżĐŸŃ‡Đ”Ń‚ĐșĐ°)" + +#~ msgid "Video capture time (in seconds)" +#~ msgstr "Đ’Ń€Đ”ĐŒĐ” ŃĐœĐžĐŒĐ°ŃšĐ° ĐČОЎДа (у сДĐșŃƒĐœĐŽĐ°ĐŒĐ°)" + +#~ msgid "Exits guvcview after closing video" +#~ msgstr "ИзлазО Оз ĐșĐ°ĐŒĐ”Ń€ĐžŃ†Đ” ĐœĐ°ĐșĐŸĐœ Đ·Đ°Ń‚ĐČарања ĐČОЎДа" + +#~ msgid "Number of initial frames to skip" +#~ msgstr "Đ‘Ń€ĐŸŃ˜ ĐżĐŸŃ‡Đ”Ń‚ĐœĐžŃ… ĐșĐ°ĐŽŃ€ĐŸĐČĐ° Đ·Đ° прДсĐșĐ°ĐșањД" + +#~ msgid "Show FPS value (enable(1) | disable (0))" +#~ msgstr "ПроĐșазујД К/ĐĄ ĐČŃ€Đ”ĐŽĐœĐŸŃŃ‚ (уĐșључо (1) | ОсĐșључо (0))" + +#~ msgid "Load Profile at start" +#~ msgstr "УчотаĐČĐ° ĐżŃ€ĐŸŃ„ĐžĐ» прОлОĐșĐŸĐŒ ĐżĐŸĐșрДтања" + +#~ msgid "- local options" +#~ msgstr "— Đ»ĐŸĐșĐ°Đ»ĐœĐ° ĐŸĐżŃ†ĐžŃ˜Đ°" + +#~ msgid "Cap. Image" +#~ msgstr "ĐĄĐœĐžĐŒĐž слОĐșу" + +#~ msgid "Not enough free space left on disk" +#~ msgstr "ĐĐ”ĐŒĐ° ĐŽĐŸĐČĐŸŃ™ĐœĐŸ ŃĐ»ĐŸĐ±ĐŸĐŽĐœĐŸĐł ĐżŃ€ĐŸŃŃ‚ĐŸŃ€Đ° ĐœĐ° ЎОсĐșу" + +#~ msgid "YUY2 - uncomp YUV" +#~ msgstr "ЈУЈ2 — ĐœĐ”ŃĐ°Đ¶Đ”Ń‚Đž ЈУВ" + +#~ msgid "RGB - uncomp BMP" +#~ msgstr "РГБ — ĐœĐ”ŃĐ°Đ¶Đ”Ń‚Đž БМП" + +#~ msgid "AVI - avi format" +#~ msgstr "АВИ — Đ°ĐČĐž Ń„ĐŸŃ€ĐŒĐ°Ń‚" + +#~ msgid "MKV - Matroska format" +#~ msgstr "МКВ — ĐœĐ°Ń‚Ń€ĐŸŃˆĐșĐ° Ń„ĐŸŃ€ĐŒĐ°Ń‚" + +#~ msgid "WEBM - format" +#~ msgstr "ВЕБМ — запОс" + +#~ msgid " Show" +#~ msgstr " ПроĐșажО" + +#~ msgid "Quality:" +#~ msgstr "КĐČалОтДт:" diff -Nru guvcview-1.7.3/po/gview_v4l2core/tr.po guvcview-2.0.1+ubuntu1~ppa1/po/gview_v4l2core/tr.po --- guvcview-1.7.3/po/gview_v4l2core/tr.po 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/po/gview_v4l2core/tr.po 2014-10-05 10:41:44.000000000 +0000 @@ -0,0 +1,959 @@ +# Turkish translation for guvcview +# Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008 +# This file is distributed under the same license as the guvcview package. +# FIRST AUTHOR , 2008. +# +msgid "" +msgstr "" +"Project-Id-Version: guvcview\n" +"Report-Msgid-Bugs-To: pj.assis@gmail.com\n" +"POT-Creation-Date: 2014-08-17 22:49+0100\n" +"PO-Revision-Date: 2013-11-06 12:49+0000\n" +"Last-Translator: Volkan Gezer \n" +"Language-Team: Turkish \n" +"Language: tr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2013-12-08 10:36+0000\n" +"X-Generator: Launchpad (build 16869)\n" + +#. +#. * needed only for language files (not used) +#. +#. V4L2 control strings +#: ../gview_v4l2core/v4l2_controls.c:49 +msgid "User Controls" +msgstr "Kullanıcı Denetimleri" + +#: ../gview_v4l2core/v4l2_controls.c:50 +msgid "Brightness" +msgstr "Parlaklık" + +#: ../gview_v4l2core/v4l2_controls.c:51 +msgid "Contrast" +msgstr "KarĆŸÄ±tlık" + +#: ../gview_v4l2core/v4l2_controls.c:52 +msgid "Hue" +msgstr "Renk" + +#: ../gview_v4l2core/v4l2_controls.c:53 +msgid "Saturation" +msgstr "Doygunluk" + +#: ../gview_v4l2core/v4l2_controls.c:54 +msgid "Sharpness" +msgstr "Keskinlik" + +#: ../gview_v4l2core/v4l2_controls.c:55 +msgid "Gamma" +msgstr "Kontras derecesi (gama)" + +#: ../gview_v4l2core/v4l2_controls.c:56 +msgid "Backlight Compensation" +msgstr "Arka IĆŸÄ±k Desteği" + +#: ../gview_v4l2core/v4l2_controls.c:57 +msgid "Power Line Frequency" +msgstr "GĂŒĂ§ Hattı Frekansı" + +#: ../gview_v4l2core/v4l2_controls.c:58 +msgid "Hue, Automatic" +msgstr "Renk, Otomatik" + +#: ../gview_v4l2core/v4l2_controls.c:59 +msgid "Focus, Auto" +msgstr "Odak, Otomatik" + +#: ../gview_v4l2core/v4l2_controls.c:60 +msgid "Manual Mode" +msgstr "El Kipi" + +#: ../gview_v4l2core/v4l2_controls.c:61 +msgid "Auto Mode" +msgstr "Otomatik Kip" + +#: ../gview_v4l2core/v4l2_controls.c:62 +msgid "Shutter Priority Mode" +msgstr "Kapak Öncelik Kipi" + +#: ../gview_v4l2core/v4l2_controls.c:63 +msgid "Aperture Priority Mode" +msgstr "Açıklık Öncelik Kipi" + +#: ../gview_v4l2core/v4l2_controls.c:64 +msgid "Black Level" +msgstr "Siyah Seviyesi" + +#: ../gview_v4l2core/v4l2_controls.c:65 +msgid "White Balance, Automatic" +msgstr "Beyaz Dengesi, Otomatik" + +#: ../gview_v4l2core/v4l2_controls.c:66 +msgid "Do White Balance" +msgstr "Beyaz Dengesi Yap" + +#: ../gview_v4l2core/v4l2_controls.c:67 +msgid "Red Balance" +msgstr "Kırmızı Dengesi" + +#: ../gview_v4l2core/v4l2_controls.c:68 +msgid "Blue Balance" +msgstr "Mavi Dengesi" + +#: ../gview_v4l2core/v4l2_controls.c:69 +msgid "Exposure" +msgstr "Pozlandırma" + +#: ../gview_v4l2core/v4l2_controls.c:70 +msgid "Gain, Automatic" +msgstr "Kazanç, Otomatik" + +#: ../gview_v4l2core/v4l2_controls.c:71 +msgid "Gain" +msgstr "Kazanç" + +#: ../gview_v4l2core/v4l2_controls.c:72 +msgid "Horizontal Flip" +msgstr "Yatay Çevir" + +#: ../gview_v4l2core/v4l2_controls.c:73 +msgid "Vertical Flip" +msgstr "Dikey Çevir" + +#: ../gview_v4l2core/v4l2_controls.c:74 +msgid "Horizontal Center" +msgstr "Yatay Merkez" + +#: ../gview_v4l2core/v4l2_controls.c:75 +msgid "Vertical Center" +msgstr "Dikey Merkez" + +#: ../gview_v4l2core/v4l2_controls.c:76 +msgid "Chroma AGC" +msgstr "Kroma Otomatik Kazanç KontrolĂŒ (AGC)" + +#: ../gview_v4l2core/v4l2_controls.c:77 +msgid "Color Killer" +msgstr "Renk ÖldĂŒrĂŒcĂŒ" + +#: ../gview_v4l2core/v4l2_controls.c:78 +msgid "Color Effects" +msgstr "Renk Efektleri" + +#. CAMERA CLASS control strings +#: ../gview_v4l2core/v4l2_controls.c:81 +msgid "Camera Controls" +msgstr "Kamera Denetimleri" + +#: ../gview_v4l2core/v4l2_controls.c:82 +msgid "Auto Exposure" +msgstr "Otomatik Pozlandırma" + +#: ../gview_v4l2core/v4l2_controls.c:83 +msgid "Exposure Time, Absolute" +msgstr "Pozlandırma SĂŒresĂŒ, Kesin" + +#: ../gview_v4l2core/v4l2_controls.c:84 +msgid "Exposure, Dynamic Framerate" +msgstr "Pozlandırma, Dinamik Kare Oranı" + +#: ../gview_v4l2core/v4l2_controls.c:85 +msgid "Pan, Relative" +msgstr "Kaydırma, Bağıl" + +#: ../gview_v4l2core/v4l2_controls.c:86 +msgid "Tilt, Relative" +msgstr "Eğme, Bağıl" + +#: ../gview_v4l2core/v4l2_controls.c:87 +msgid "Pan, Reset" +msgstr "Kaydırma, Sıfırla" + +#: ../gview_v4l2core/v4l2_controls.c:88 +msgid "Tilt, Reset" +msgstr "Eğme, Sıfırla" + +#: ../gview_v4l2core/v4l2_controls.c:89 +msgid "Pan, Absolute" +msgstr "Kaydırma, Kesin" + +#: ../gview_v4l2core/v4l2_controls.c:91 +msgid "Focus, Absolute" +msgstr "Odaklama, Kesin" + +#: ../gview_v4l2core/v4l2_controls.c:92 +msgid "Focus, Relative" +msgstr "Odaklama, Bağıl" + +#: ../gview_v4l2core/v4l2_controls.c:93 +msgid "Focus, Automatic" +msgstr "Odaklama, Otomatik" + +#: ../gview_v4l2core/v4l2_controls.c:94 +msgid "Zoom, Absolute" +msgstr "YakınlaƟtırma, Kesin" + +#: ../gview_v4l2core/v4l2_controls.c:95 +msgid "Zoom, Relative" +msgstr "YakınlaƟtırma, Bağıl" + +#: ../gview_v4l2core/v4l2_controls.c:96 +msgid "Zoom, Continuous" +msgstr "YakınlaƟtırma, SĂŒrekli" + +#: ../gview_v4l2core/v4l2_controls.c:97 +msgid "Privacy" +msgstr "Gizlilik" + +#. UVC specific control strings +#: ../gview_v4l2core/v4l2_controls.c:100 +msgid "Exposure, Auto" +msgstr "Pozlama, Otomatik" + +#: ../gview_v4l2core/v4l2_controls.c:101 +msgid "Exposure, Auto Priority" +msgstr "Pozlama, Otomatik Öncelik" + +#: ../gview_v4l2core/v4l2_controls.c:102 +msgid "Exposure (Absolute)" +msgstr "Pozlama (Kesin)" + +#: ../gview_v4l2core/v4l2_controls.c:103 +msgid "White Balance Temperature, Auto" +msgstr "Beyaz Denge Sıcaklığı, Otomatik" + +#: ../gview_v4l2core/v4l2_controls.c:104 +msgid "White Balance Temperature" +msgstr "Beyaz Dengesi Sıcaklığı" + +#: ../gview_v4l2core/v4l2_controls.c:105 +msgid "White Balance Component, Auto" +msgstr "Beyaz Denge BileƟeni, Otomatik" + +#: ../gview_v4l2core/v4l2_controls.c:106 +msgid "White Balance Blue Component" +msgstr "Beyaz Denge Mavi BileƟeni" + +#: ../gview_v4l2core/v4l2_controls.c:107 +msgid "White Balance Red Component" +msgstr "Beyaz Denge Kırmızı BileƟeni" + +#. libwebcam specific control strings +#: ../gview_v4l2core/v4l2_controls.c:110 +msgid "Focus" +msgstr "Odaklama" + +#: ../gview_v4l2core/v4l2_controls.c:111 +msgid "Focus (Absolute)" +msgstr "Odaklama (Kesin)" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:63 +msgid "Off" +msgstr "Kapalı" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:64 +msgid "On" +msgstr "Açık" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:65 +msgid "Blinking" +msgstr "Yanıp Sönme" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:66 +msgid "Auto" +msgstr "Otomatik" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:73 +msgid "Pan (relative)" +msgstr "Kaydır (bağıl)" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:86 +msgid "Tilt (relative)" +msgstr "Eğ (bağıl)" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:99 +msgid "Pan Reset" +msgstr "Kaydırmayı Sıfırla" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:112 +msgid "Tilt Reset" +msgstr "Eğme Sıfırla" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:125 +msgid "Focus (absolute)" +msgstr "Odaklan (kesin)" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:138 +msgid "LED1 Mode" +msgstr "LED1 Kipi" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:151 +msgid "LED1 Frequency" +msgstr "LED1 Frekansı" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:164 +msgid "Disable video processing" +msgstr "Video iƟlemeyi devre dÄ±ĆŸÄ± bırak" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:177 +msgid "Raw bits per pixel" +msgstr "Piksel baĆŸÄ±na ham bit" + +#, fuzzy +#~ msgid "PCM - uncompressed (float 32 bit)" +#~ msgstr "PCM - sıkÄ±ĆŸtırılmamÄ±ĆŸ (16 bit)" + +#~ msgid "Vorbis" +#~ msgstr "Vorbis" + +#, fuzzy +#~ msgid "Raw camera input" +#~ msgstr "Kamera Çıktısı:" + +#~ msgid "MJPG - compressed" +#~ msgstr "MJPG - sıkÄ±ĆŸtırılmÄ±ĆŸ" + +#~ msgid "MPEG video 1" +#~ msgstr "MPEG video 1" + +#~ msgid "FLV1 - flash video 1" +#~ msgstr "FLV1 - flash video 1" + +#~ msgid "WMV1 - win. med. video 7" +#~ msgstr "WMV1 - win. med. video 7" + +#~ msgid "MPG2 - MPG2 format" +#~ msgstr "MPG2 - MPG2 biçimi" + +#~ msgid "MS MP4 V3" +#~ msgstr "MS MP4 V3" + +#~ msgid "MPEG4-ASP" +#~ msgstr "MPEG4-ASP" + +#~ msgid "MPEG4-AVC (H264)" +#~ msgstr "MPEG4-AVC (H264)" + +#~ msgid "VP8 (VP8)" +#~ msgstr "VP8 (VP8)" + +#~ msgid "Theora (ogg theora)" +#~ msgstr "Theora (ogg theora)" + +#~ msgid "Audio API:" +#~ msgstr "SES API'yı:" + +#~ msgid "PORTAUDIO" +#~ msgstr "PORTAUDIO" + +#~ msgid "PULSEAUDIO" +#~ msgstr "PULSEAUDIO" + +#~ msgid "Input Device:" +#~ msgstr "Girdi Aygıtı:" + +#~ msgid "Sample Rate:" +#~ msgstr "Örnekleme Oranı:" + +#~ msgid "Dev. Default" +#~ msgstr "Aygıt Vars." + +#~ msgid "Channels:" +#~ msgstr "Kanallar:" + +#~ msgid "1 - mono" +#~ msgstr "1 - mono" + +#~ msgid "2 - stereo" +#~ msgstr "2 - stereo" + +#, fuzzy +#~ msgid "---- Audio Filters ----" +#~ msgstr "---- Video Filtreleri----" + +#~ msgid " Echo" +#~ msgstr " Göster" + +#~ msgid " Reverb" +#~ msgstr " Yankı" + +#~ msgid " Fuzz" +#~ msgstr " Bulanma" + +#~ msgid " WahWah" +#~ msgstr " WahWah" + +#~ msgid " Ducky" +#~ msgstr " Ördek" + +#~ msgid "Stop Video (V)" +#~ msgstr "Videoyu Durdur (V)" + +#~ msgid "Cap. Video (V)" +#~ msgstr "Video Yakala (V)" + +#~ msgid "Error" +#~ msgstr "Hata" + +#, fuzzy +#~ msgid "_Cancel" +#~ msgstr "iptal" + +#~ msgid "" +#~ "\n" +#~ "You have more than one video device installed.\n" +#~ "Do you want to try another one ?\n" +#~ msgstr "" +#~ "\n" +#~ "Kurulu birden fazla video aygıtınız var.\n" +#~ "Bir diğerini denemek ister misiniz?\n" + +#~ msgid "Device:" +#~ msgstr "Aygıt:" + +#~ msgid "Guvcview Video Capture" +#~ msgstr "Guvcview Video Yakala" + +#, fuzzy +#~ msgid "Guvcview" +#~ msgstr "guvcview" + +#, fuzzy +#~ msgid "Stop Cap. (I)" +#~ msgstr "Otomatik Durdur (I)" + +#~ msgid "Cap. Image (I)" +#~ msgstr "GörĂŒntĂŒ Yakala (I)" + +#~ msgid "Image Controls" +#~ msgstr "Resim Denetimleri" + +#, fuzzy +#~ msgid "Video Controls" +#~ msgstr "Kullanıcı Denetimleri" + +#, fuzzy +#~ msgid "Audio Controls" +#~ msgstr "Kullanıcı Denetimleri" + +#~ msgid "Save Profile" +#~ msgstr "Profili Kaydet" + +#~ msgid "Load Profile" +#~ msgstr "Profili YĂŒkle" + +#~ msgid "File Format:" +#~ msgstr "Dosya Biçimi:" + +#, fuzzy +#~ msgid "Photo file name" +#~ msgstr "Resim Dosya adı" + +#, fuzzy +#~ msgid "Raw (*.raw)" +#~ msgstr "Ham GörĂŒntĂŒ (raw)" + +#, fuzzy +#~ msgid "Jpeg (*.jpg)" +#~ msgstr "Jpeg (jpg)" + +#, fuzzy +#~ msgid "Video file name" +#~ msgstr "Resim Dosya adı" + +#~ msgid "start new" +#~ msgstr "yeni baƟlat" + +#~ msgid "restart" +#~ msgstr "yeniden baƟlat" + +#~ msgid "new" +#~ msgstr "yeni" + +#~ msgid "cancel" +#~ msgstr "iptal" + +#~ msgid "" +#~ "launch new process or restart?.\n" +#~ "\n" +#~ msgstr "" +#~ "yeni sĂŒreç baƟlat veya yeniden baƟlat?\n" +#~ "\n" + +#, fuzzy +#~ msgid "video codec values" +#~ msgstr "ses çözĂŒcĂŒ değerleri" + +#~ msgid "" +#~ " encoder fps: \n" +#~ " (0 - use fps combobox value)" +#~ msgstr "" +#~ " kodlayıcı fps: \n" +#~ " (0 - fps kutu değerini kullan)" + +#~ msgid " monotonic pts" +#~ msgstr " tek dĂŒze puan" + +#~ msgid "bit rate: " +#~ msgstr "bıt oranı: " + +#~ msgid "qmax: " +#~ msgstr "qmax: " + +#~ msgid "qmin: " +#~ msgstr "qmin: " + +#~ msgid "max. qdiff: " +#~ msgstr "azami qdiff: " + +#~ msgid "dia size: " +#~ msgstr "dia boyutu: " + +#~ msgid "pre dia size: " +#~ msgstr "ön dia boyutu: " + +#~ msgid "pre me: " +#~ msgstr "ön me: " + +#~ msgid "pre cmp: " +#~ msgstr "ön cmp: " + +#~ msgid "cmp: " +#~ msgstr "cmp: " + +#~ msgid "sub cmp: " +#~ msgstr "alt cmp: " + +#~ msgid "last predictor count: " +#~ msgstr "son öngörĂŒcĂŒ sayısı: " + +#~ msgid "gop size: " +#~ msgstr "gop boyutu: " + +#~ msgid "qcompress: " +#~ msgstr "qcompress: " + +#~ msgid "qblur: " +#~ msgstr "qblur: " + +#~ msgid "subq: " +#~ msgstr "subq: " + +#~ msgid "framerefs: " +#~ msgstr "framerefs: " + +#~ msgid "me method: " +#~ msgstr "me yöntemi: " + +#~ msgid "mb decision: " +#~ msgstr "mb kararı: " + +#~ msgid "max B frames: " +#~ msgstr "en yĂŒks. B karesi: " + +#~ msgid "num threads: " +#~ msgstr "iƟlem sayısı: " + +#~ msgid "audio codec values" +#~ msgstr "ses çözĂŒcĂŒ değerleri" + +#~ msgid "sample format: " +#~ msgstr "örnek biçimi: " + +#~ msgid "Settings" +#~ msgstr "Ayarlar" + +#~ msgid "Hardware Defaults" +#~ msgstr "Donanım Varsayılanları" + +#~ msgid "Camera Button" +#~ msgstr "Kamera DĂŒÄŸmesi" + +#~ msgid "Capture Image" +#~ msgstr "Resim Yakala" + +#~ msgid "Capture Video" +#~ msgstr "Video Yakala" + +#~ msgid "Photo" +#~ msgstr "Fotoğraf" + +#~ msgid "File" +#~ msgstr "Dosya" + +#~ msgid "Increment Filename" +#~ msgstr "Dosya Adını Arttır" + +#~ msgid "Video" +#~ msgstr "GörĂŒntĂŒ" + +#~ msgid "Video Codec" +#~ msgstr "Video Kodlayıcısı" + +#~ msgid "Video Codec Properties" +#~ msgstr "Video Kodlayıcı Özellikleri" + +#~ msgid "Audio Codec" +#~ msgstr "Ses Kodlayıcı" + +#~ msgid "Audio Codec Properties" +#~ msgstr "Ses Kodlayıcı Özellikleri" + +#~ msgid "Left" +#~ msgstr "Sol" + +#~ msgid "Right" +#~ msgstr "Sağ" + +#~ msgid "Down" +#~ msgstr "AƟağı" + +#~ msgid "Up" +#~ msgstr "Yukarı" + +#~ msgid "8 bit" +#~ msgstr "8 bit" + +#~ msgid "12 bit" +#~ msgstr "12 bit" + +#~ msgid "Auto Focus (continuous)" +#~ msgstr "Otomatik Odakla (sĂŒrekli)" + +#~ msgid "set Focus" +#~ msgstr "Odak ayarla" + +#, fuzzy +#~ msgid "_Apply" +#~ msgstr "Uygula" + +#~ msgid "Frame Rate:" +#~ msgstr "Kare Oranı:" + +#~ msgid "Resolution:" +#~ msgstr "ÇözĂŒnĂŒrlĂŒk:" + +#~ msgid "Camera Output:" +#~ msgstr "Kamera Çıktısı:" + +#~ msgid "---- Video Filters ----" +#~ msgstr "---- Video Filtreleri----" + +#~ msgid " Mirror" +#~ msgstr " Ayna" + +#~ msgid " Invert" +#~ msgstr " Tersine Çevir" + +#~ msgid " Negative" +#~ msgstr " Negatif" + +#~ msgid " Mono" +#~ msgstr " Mono" + +#~ msgid " Pieces" +#~ msgstr " Parçalar" + +#~ msgid " Particles" +#~ msgstr " Tanecikler" + +#, fuzzy +#~ msgid "Print version" +#~ msgstr "SĂŒrĂŒmĂŒ yazdırır" + +#, fuzzy +#~ msgid "Set device name (def: /dev/video0)" +#~ msgstr "Kullanılacak Video Aygıtı [varsayılan: /dev/video0]" + +#, fuzzy +#~ msgid "Set capture method [read | mmap (def)]" +#~ msgstr "Yakalama yöntemi (1-mmap (varsayılan) 2-read)" + +#, fuzzy +#~ msgid "load control profile" +#~ msgstr "Profili YĂŒkle" + +#, fuzzy +#~ msgid "" +#~ "Guvcview version %s\n" +#~ "\n" +#~ msgstr "Guvcview Uyarısı:" + +#, fuzzy +#~ msgid "saving video to %s" +#~ msgstr "video yakalanıyor" + +#~ msgid "guvcview" +#~ msgstr "guvcview" + +#~ msgid "GTK UVC video viewer" +#~ msgstr "GTK UVC video görĂŒntĂŒleyici" + +#~ msgid "A video viewer and capturer for the linux uvc driver" +#~ msgstr "Linux uvc sĂŒrĂŒcĂŒsĂŒ için video görĂŒntĂŒleyici ve yakalayıcı" + +#~ msgid "MPEG2 - (lavc)" +#~ msgstr "MPEG2 - (lavc)" + +#~ msgid "MP3 - (lavc)" +#~ msgstr "MP3 - (lavc)" + +#~ msgid "Dolby AC3 - (lavc)" +#~ msgstr "Dolby AC3 - (lavc)" + +#~ msgid "ACC Low - (faac)" +#~ msgstr "ACC Low - (faac)" + +#~ msgid "Audio" +#~ msgstr "Ses" + +#~ msgid " Sound" +#~ msgstr " Ses" + +#~ msgid " Show VU meter" +#~ msgstr " VU Metreyi Göster" + +#~ msgid "---- Audio Effects ----" +#~ msgstr "---- Ses Efektleri ----" + +#~ msgid "Save File" +#~ msgstr "Dosyayı Kaydet" + +#~ msgid "codec values" +#~ msgstr "çözĂŒcĂŒ değerleri" + +#~ msgid "capturing photo to" +#~ msgstr "fotoğraf yakalanıyor" + +#~ msgid "Cap. Video" +#~ msgstr "Video Yakala" + +#~ msgid "GUVCViewer Controls" +#~ msgstr "GUVCViewer Denetimleri" + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to open device" +#~ msgstr "" +#~ "Guvcview hatası:\n" +#~ "\n" +#~ "Aygıt açılamıyor" + +#~ msgid "" +#~ "Please make sure the camera is connected\n" +#~ "and that the correct driver is installed." +#~ msgstr "" +#~ "Kameranızın bağlı ve doğru sĂŒrĂŒcĂŒlerinin\n" +#~ "yĂŒklendiğinden emin olun." + +#~ msgid "" +#~ "Guvcview:\n" +#~ "\n" +#~ "UVC Extension controls" +#~ msgstr "" +#~ "Guvcview:\n" +#~ "\n" +#~ "UVC Uzantı denetimleri" + +#~ msgid "Extension controls were added to the UVC driver" +#~ msgstr "Uzantı denetimleri UVC sĂŒrĂŒcĂŒsĂŒne eklendi" + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "UVC Extension controls" +#~ msgstr "" +#~ "Guvcview hatası:\n" +#~ "\n" +#~ "UVC Uzantı denetimleri" + +#~ msgid "" +#~ "An error occurred while adding extension\n" +#~ "controls to the UVC driver\n" +#~ "Make sure you run guvcview as root (or sudo)." +#~ msgstr "" +#~ "UVC sĂŒrĂŒcĂŒsĂŒne uzantı denetimleri eklenirken\n" +#~ "bir hata oluƟtu\n" +#~ "guvcview'i yönetici (veya sudo) ile çalÄ±ĆŸtırdığınızdan\n" +#~ "emin olun" + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Can't set a valid video stream for guvcview" +#~ msgstr "" +#~ "Guvcview hatası:\n" +#~ "\n" +#~ "guvcview için geçerli video akÄ±ĆŸÄ± ayarlanamıyor" + +#~ msgid "" +#~ "Make sure your device driver is v4l2 compliant\n" +#~ "and that it is properly installed." +#~ msgstr "" +#~ "Aygıt sĂŒrĂŒcĂŒnĂŒzĂŒn v4l2 uyumlu olduğundan ve\n" +#~ "doğru bir Ɵekilde yĂŒklendiğinden emin olun." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to start with minimum setup" +#~ msgstr "" +#~ "Guvcview hatası:\n" +#~ "\n" +#~ "Asgari ayarlama baƟlatılamadı" + +#~ msgid "Please reconnect your camera." +#~ msgstr "LĂŒtfen kameranı tekrar bağla." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Couldn't query device capabilities" +#~ msgstr "" +#~ "Guvcview hatası:\n" +#~ "\n" +#~ "Aygıt özellikleri sorgulanamadı" + +#~ msgid "Make sure the device driver supports v4l2." +#~ msgstr "Aygıt sĂŒrĂŒcĂŒnĂŒzĂŒn v4l2 desteklediğinden emin olun." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Read method error" +#~ msgstr "" +#~ "Guvcview hatası:\n" +#~ "\n" +#~ "Okuma yöntemi hatası" + +#~ msgid "Please try mmap instead (--capture_method=1)." +#~ msgstr "mmap deneyin (--capture_method=1)." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to allocate Buffers" +#~ msgstr "" +#~ "Guvcview hatası:\n" +#~ "\n" +#~ "Tamponlar ayrılamıyor" + +#~ msgid "Please try restarting your system." +#~ msgstr "LĂŒtfen sistemi tekrar baƟlatmayı dene." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to create Video Thread" +#~ msgstr "" +#~ "Guvcview hatası:\n" +#~ "\n" +#~ "Video İƟ Parçacığı oluƟturulamıyor" + +#~ msgid "Please report it to http://developer.berlios.de/bugs/?group_id=8179" +#~ msgstr "" +#~ "LĂŒtfen http://developer.berlios.de/bugs/?group_id=8179 adresine bildirin" + +#~ msgid "Bitmap (Bmp)" +#~ msgstr "Bitmap (Bmp)" + +#~ msgid "Portable Network Graphics (Png)" +#~ msgstr "TaĆŸÄ±nabilir Ağ Grafikleri (Png)" + +#~ msgid "Displays debug information" +#~ msgstr "Hata ayıklama bilgisini görĂŒntĂŒler" + +#~ msgid "Exit after adding UVC extension controls (needs root/sudo)" +#~ msgstr "" +#~ "UVC uzantı denetimlerini ekledikten sonra çık (yönetici/sudo gerektirir)" + +#~ msgid "Don't stream video (image controls only)" +#~ msgstr "Video'yu akÄ±ĆŸ yapma (sadece resim denetimleri)" + +#~ msgid "Don't display a GUI" +#~ msgstr "Grafiksel ArayĂŒz görĂŒntĂŒleme" + +#~ msgid "Configuration file" +#~ msgstr "Yapılandırma dosyası" + +#~ msgid "Hardware accelaration (enable(1) | disable(0))" +#~ msgstr "Donanım hızlandırma (enable(1) | disable(0))" + +#~ msgid "" +#~ "Pixel format(mjpg|jpeg|yuyv|yvyu|uyvy|yyuv|yu12|yv12|nv12|nv21|nv16|nv61|" +#~ "y41p|grey|y10b|y16 |s501|s505|s508|gbrg|grbg|ba81|rggb|bgr3|rgb3)" +#~ msgstr "" +#~ "Piksel biçimi(mjpg|jpeg|yuyv|yvyu|uyvy|yyuv|yu12|yv12|nv12|nv21|nv16|nv61|" +#~ "y41p|grey|y10b|y16 |s501|s505|s508|gbrg|grbg|ba81|rggb|bgr3|rgb3)" + +#~ msgid "Frame size, default: 640x480" +#~ msgstr "Çerçeve boyutu, varsayılan: 640x480" + +#~ msgid "Image capture interval in seconds" +#~ msgstr "Resim yakalama aralığı (saniye)" + +#~ msgid "Number of Pictures to capture" +#~ msgstr "Yakalanacak Resim Sayısı" + +#~ msgid "Video File name (capture from start)" +#~ msgstr "Video Dosya adı (baƟlangıçtan yakala)" + +#~ msgid "Video capture time (in seconds)" +#~ msgstr "Video yakalama sĂŒresi (saniye)" + +#~ msgid "Exits guvcview after closing video" +#~ msgstr "Video kapatıldıktan sonra guvcview'den çıkar" + +#~ msgid "Number of initial frames to skip" +#~ msgstr "BaƟlangıçta atlanacak kare sayısı" + +#~ msgid "Show FPS value (enable(1) | disable (0))" +#~ msgstr "FPS değerini göster (enable(1) | disable (0))" + +#~ msgid "Load Profile at start" +#~ msgstr "BaƟlangıçta Profil YĂŒkle" + +#~ msgid "- local options" +#~ msgstr "- yerel seçenekler" + +#~ msgid "Cap. Image" +#~ msgstr "Resim Yakala" + +#~ msgid "Not enough free space left on disk" +#~ msgstr "Diskte yeterli boƟ yer yok" + +#~ msgid "YUY2 - uncomp YUV" +#~ msgstr "YUY2 - sıkÄ±ĆŸtırılmamÄ±ĆŸ YUV" + +#~ msgid "RGB - uncomp BMP" +#~ msgstr "RGB - sıkÄ±ĆŸtırılmamÄ±ĆŸ BMP" + +#~ msgid "AVI - avi format" +#~ msgstr "AVI - avi biçimi" + +#~ msgid "MKV - Matroska format" +#~ msgstr "MKV - Matroska biçimi" + +#~ msgid "WEBM - format" +#~ msgstr "WEBM - biçimi" + +#~ msgid " Show" +#~ msgstr " Göster" + +#~ msgid "Quality:" +#~ msgstr "Kalite:" + +#~ msgid "VBR" +#~ msgstr "VBR (DeğiƟken bitoranı)" + +#~ msgid "Bit Rate:" +#~ msgstr "Bit Oranı:" + +#~ msgid "Resolution" +#~ msgstr "ÇözĂŒnĂŒrlĂŒk" + +#~ msgid "Profile" +#~ msgstr "Profil" diff -Nru guvcview-1.7.3/po/gview_v4l2core/uk.po guvcview-2.0.1+ubuntu1~ppa1/po/gview_v4l2core/uk.po --- guvcview-1.7.3/po/gview_v4l2core/uk.po 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/po/gview_v4l2core/uk.po 2014-10-05 10:41:44.000000000 +0000 @@ -0,0 +1,795 @@ +# Ukrainian translation for guvcview +# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 +# This file is distributed under the same license as the guvcview package. +# FIRST AUTHOR , 2010. +# +msgid "" +msgstr "" +"Project-Id-Version: guvcview\n" +"Report-Msgid-Bugs-To: pj.assis@gmail.com\n" +"POT-Creation-Date: 2014-08-17 22:49+0100\n" +"PO-Revision-Date: 2013-02-25 05:37+0000\n" +"Last-Translator: Paulo Assis \n" +"Language-Team: Ukrainian \n" +"Language: uk\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2013-12-08 10:36+0000\n" +"X-Generator: Launchpad (build 16869)\n" + +#. +#. * needed only for language files (not used) +#. +#. V4L2 control strings +#: ../gview_v4l2core/v4l2_controls.c:49 +msgid "User Controls" +msgstr "ĐšĐ”Ń€ŃƒŃŽŃ‡Ń– Đ”Đ»Đ”ĐŒĐ”ĐœŃ‚Đž ĐșĐŸŃ€ĐžŃŃ‚ŃƒĐČача" + +#: ../gview_v4l2core/v4l2_controls.c:50 +msgid "Brightness" +msgstr "ЯсĐșраĐČість" + +#: ../gview_v4l2core/v4l2_controls.c:51 +msgid "Contrast" +msgstr "ĐšĐŸĐœŃ‚Ń€Đ°ŃŃ‚" + +#: ../gview_v4l2core/v4l2_controls.c:52 +msgid "Hue" +msgstr "Đ’Ń–ĐŽŃ‚Ń–ĐœĐŸĐș" + +#: ../gview_v4l2core/v4l2_controls.c:53 +msgid "Saturation" +msgstr "ĐĐ°ŃĐžŃ‡Đ”ĐœŃ–ŃŃ‚ŃŒ" + +#: ../gview_v4l2core/v4l2_controls.c:54 +msgid "Sharpness" +msgstr "Đ Ń–Đ·Đșість" + +#: ../gview_v4l2core/v4l2_controls.c:55 +msgid "Gamma" +msgstr "Đ“Đ°ĐŒĐŒĐ°" + +#: ../gview_v4l2core/v4l2_controls.c:56 +msgid "Backlight Compensation" +msgstr "ĐšĐŸĐŒĐżĐ”ĐœŃĐ°Ń†Ń–Ń піЮсĐČітĐșĐž" + +#: ../gview_v4l2core/v4l2_controls.c:57 +msgid "Power Line Frequency" +msgstr "Đ§Đ°ŃŃ‚ĐŸŃ‚Đ° ДлДĐșŃ‚Ń€ĐŸĐŒĐ”Ń€Đ”Đ¶Ń–" + +#: ../gview_v4l2core/v4l2_controls.c:58 +msgid "Hue, Automatic" +msgstr "АĐČŃ‚ĐŸ ĐČŃ–ĐŽŃ‚Ń–ĐœĐŸĐș" + +#: ../gview_v4l2core/v4l2_controls.c:59 +msgid "Focus, Auto" +msgstr "АĐČŃ‚ĐŸ Ń„ĐŸĐșус" + +#: ../gview_v4l2core/v4l2_controls.c:60 +msgid "Manual Mode" +msgstr "Đ ŃƒŃ‡ĐœĐžĐč Ń€Đ”Đ¶ĐžĐŒ" + +#: ../gview_v4l2core/v4l2_controls.c:61 +msgid "Auto Mode" +msgstr "АĐČŃ‚ĐŸŃ€Đ”Đ¶ĐžĐŒ" + +#: ../gview_v4l2core/v4l2_controls.c:62 +msgid "Shutter Priority Mode" +msgstr "ĐŸŃ€Ń–ĐŸŃ€ĐžŃ‚Đ”Ń‚ Đ·Đ°Ń‚ĐČĐŸŃ€Ńƒ" + +#: ../gview_v4l2core/v4l2_controls.c:63 +msgid "Aperture Priority Mode" +msgstr "ĐŸŃ€Ń–ĐŸŃ€ĐžŃ‚Đ”Ń‚ ĐŽŃ–Đ°Ń„Ń€Đ°ĐłĐŒĐž" + +#: ../gview_v4l2core/v4l2_controls.c:64 +msgid "Black Level" +msgstr "РіĐČĐ”ĐœŃŒ Ń‡ĐŸŃ€ĐœĐŸĐłĐŸ" + +#: ../gview_v4l2core/v4l2_controls.c:65 +msgid "White Balance, Automatic" +msgstr "АĐČŃ‚ĐŸ Đ±Đ°Đ»Đ°ĐœŃ Đ±Ń–Đ»ĐŸĐłĐŸ" + +#: ../gview_v4l2core/v4l2_controls.c:66 +msgid "Do White Balance" +msgstr "Đ—Đ±Đ°Đ»Đ°ĐœŃŃƒĐČато білОĐč" + +#: ../gview_v4l2core/v4l2_controls.c:67 +msgid "Red Balance" +msgstr "Đ‘Đ°Đ»Đ°ĐœŃ чДрĐČĐŸĐœĐŸĐłĐŸ" + +#: ../gview_v4l2core/v4l2_controls.c:68 +msgid "Blue Balance" +msgstr "Đ‘Đ°Đ»Đ°ĐœŃ ŃĐžĐœŃŒĐŸĐłĐŸ" + +#: ../gview_v4l2core/v4l2_controls.c:69 +msgid "Exposure" +msgstr "ЕĐșŃĐżĐŸĐ·ĐžŃ†Ń–Ń" + +#: ../gview_v4l2core/v4l2_controls.c:70 +msgid "Gain, Automatic" +msgstr "АĐČŃ‚ĐŸ ĐżĐŸŃĐžĐ»Đ”ĐœĐœŃ" + +#: ../gview_v4l2core/v4l2_controls.c:71 +msgid "Gain" +msgstr "ĐŸĐŸŃĐžĐ»Đ”ĐœĐœŃ" + +#: ../gview_v4l2core/v4l2_controls.c:72 +msgid "Horizontal Flip" +msgstr "Đ“ĐŸŃ€ĐžĐ·ĐŸĐœŃ‚Đ°Đ»ŃŒĐœĐ” ĐČіЎЎзДрĐșĐ°Đ»Đ”ĐœĐœŃ" + +#: ../gview_v4l2core/v4l2_controls.c:73 +msgid "Vertical Flip" +msgstr "ВДртОĐșĐ°Đ»ŃŒĐœĐ” ĐČіЎЎзДрĐșĐ°Đ»Đ”ĐœĐœŃ" + +#: ../gview_v4l2core/v4l2_controls.c:74 +msgid "Horizontal Center" +msgstr "Đ“ĐŸŃ€ĐžĐ·ĐŸĐœŃ‚Đ°Đ»ŃŒĐœĐ° ŃĐ”Ń€Đ”ĐŽĐžĐœĐ°" + +#: ../gview_v4l2core/v4l2_controls.c:75 +msgid "Vertical Center" +msgstr "ВДртОĐșĐ°Đ»ŃŒĐœĐ° ŃĐ”Ń€Đ”ĐŽĐžĐœĐ°" + +#: ../gview_v4l2core/v4l2_controls.c:76 +msgid "Chroma AGC" +msgstr "Chroma AGC" + +#: ../gview_v4l2core/v4l2_controls.c:77 +msgid "Color Killer" +msgstr "ĐŸĐŸĐŽĐ°ĐČлюĐČач ĐșĐŸĐ»ŃŒĐŸŃ€Ńƒ" + +#: ../gview_v4l2core/v4l2_controls.c:78 +msgid "Color Effects" +msgstr "Đ•Ń„Đ”Đșто ĐșĐŸĐ»ŃŒĐŸŃ€Ńƒ" + +#. CAMERA CLASS control strings +#: ../gview_v4l2core/v4l2_controls.c:81 +msgid "Camera Controls" +msgstr "ĐšĐ”Ń€ŃƒĐČĐ°ĐœĐœŃ ĐșĐ°ĐŒĐ”Ń€ĐŸŃŽ" + +#: ../gview_v4l2core/v4l2_controls.c:82 +msgid "Auto Exposure" +msgstr "АĐČŃ‚ĐŸ Đ”ĐșŃĐżĐŸĐ·ĐžŃ†Ń–Ń" + +#: ../gview_v4l2core/v4l2_controls.c:83 +msgid "Exposure Time, Absolute" +msgstr "ĐĐ±ŃĐŸĐ»ŃŽŃ‚ĐœĐžĐč час Đ”ĐșŃĐżĐŸĐ·ĐžŃ†Ń–Ń—" + +#: ../gview_v4l2core/v4l2_controls.c:84 +msgid "Exposure, Dynamic Framerate" +msgstr "ЕĐșŃĐżĐŸĐ·ĐžŃ†Ń–Ń, ĐŽĐžĐœĐ°ĐŒŃ–Ń‡ĐœĐ° Ń‡Đ°ŃŃ‚ĐŸŃ‚Đ° ĐșаЮріĐČ" + +#: ../gview_v4l2core/v4l2_controls.c:85 +msgid "Pan, Relative" +msgstr "Đ’Ń–ĐŽĐœĐŸŃĐœĐžĐč ĐżĐŸĐČĐŸŃ€ĐŸŃ‚" + +#: ../gview_v4l2core/v4l2_controls.c:86 +msgid "Tilt, Relative" +msgstr "Đ’Ń–ĐŽĐœĐŸŃĐœĐžĐč ĐœĐ°Ń…ĐžĐ»" + +#: ../gview_v4l2core/v4l2_controls.c:87 +msgid "Pan, Reset" +msgstr "ĐĄĐșĐžĐœŃƒŃ‚Đž ĐżĐŸĐČĐŸŃ€ĐŸŃ‚" + +#: ../gview_v4l2core/v4l2_controls.c:88 +msgid "Tilt, Reset" +msgstr "ĐĄĐșĐžĐœŃƒŃ‚Đž ĐœĐ°Ń…ĐžĐ»" + +#: ../gview_v4l2core/v4l2_controls.c:89 +msgid "Pan, Absolute" +msgstr "ĐĐ±ŃĐŸĐ»ŃŽŃ‚ĐœĐžĐč ĐżĐŸĐČĐŸŃ€ĐŸŃ‚" + +#: ../gview_v4l2core/v4l2_controls.c:91 +msgid "Focus, Absolute" +msgstr "ĐĐ±ŃĐŸĐ»ŃŽŃ‚ĐœĐžĐč Ń„ĐŸĐșус" + +#: ../gview_v4l2core/v4l2_controls.c:92 +msgid "Focus, Relative" +msgstr "Đ’Ń–ĐŽĐœĐŸŃĐœĐžĐč Ń„ĐŸĐșус" + +#: ../gview_v4l2core/v4l2_controls.c:93 +msgid "Focus, Automatic" +msgstr "АĐČŃ‚ĐŸ Ń„ĐŸĐșус" + +#: ../gview_v4l2core/v4l2_controls.c:94 +msgid "Zoom, Absolute" +msgstr "ĐĐ±ŃĐŸĐ»ŃŽŃ‚ĐœĐžĐč Đ·ŃƒĐŒ" + +#: ../gview_v4l2core/v4l2_controls.c:95 +msgid "Zoom, Relative" +msgstr "Đ’Ń–ĐŽĐœĐŸŃĐœĐžĐč Đ·ŃƒĐŒ" + +#: ../gview_v4l2core/v4l2_controls.c:96 +msgid "Zoom, Continuous" +msgstr "БДзпДрДрĐČĐœĐžĐč Đ·ŃƒĐŒ" + +#: ../gview_v4l2core/v4l2_controls.c:97 +msgid "Privacy" +msgstr "ĐšĐŸĐœŃ„Ń–ĐŽĐ”ĐœŃ†Ń–ĐčĐœŃ–ŃŃ‚ŃŒ" + +#. UVC specific control strings +#: ../gview_v4l2core/v4l2_controls.c:100 +msgid "Exposure, Auto" +msgstr "АĐČŃ‚ĐŸ Đ”ĐșŃĐżĐŸĐ·ĐžŃ†Ń–Ń" + +#: ../gview_v4l2core/v4l2_controls.c:101 +msgid "Exposure, Auto Priority" +msgstr "ĐŸŃ€Ń–ĐŸŃ€ĐžŃ‚Đ”Ń‚ Đ°ĐČŃ‚ĐŸ Đ”ĐșŃĐżĐŸĐ·ĐžŃ†Ń–Ń—" + +#: ../gview_v4l2core/v4l2_controls.c:102 +msgid "Exposure (Absolute)" +msgstr "ĐĐ±ŃĐŸĐ»ŃŽŃ‚ĐœĐ° Đ”ĐșŃĐżĐŸĐ·ĐžŃ†Ń–Ń" + +#: ../gview_v4l2core/v4l2_controls.c:103 +msgid "White Balance Temperature, Auto" +msgstr "АĐČŃ‚ĐŸ Ń‚Đ”ĐŒĐżĐ”Ń€Đ°Ń‚ŃƒŃ€Đ° Đ±Đ°Đ»Đ°ĐœŃŃƒ Đ±Ń–Đ»ĐŸĐłĐŸ" + +#: ../gview_v4l2core/v4l2_controls.c:104 +msgid "White Balance Temperature" +msgstr "ĐąĐ”ĐŒĐżĐ”Ń€Đ°Ń‚ŃƒŃ€Đ° Đ±Đ°Đ»Đ°ĐœŃŃƒ Đ±Ń–Đ»ĐŸĐłĐŸ" + +#: ../gview_v4l2core/v4l2_controls.c:105 +msgid "White Balance Component, Auto" +msgstr "АĐČŃ‚ĐŸ ĐșĐŸĐŒĐżĐŸĐœĐ”ĐœŃ‚ Đ±Đ°Đ»Đ°ĐœŃŃƒ Đ±Ń–Đ»ĐŸĐłĐŸ" + +#: ../gview_v4l2core/v4l2_controls.c:106 +msgid "White Balance Blue Component" +msgstr "ĐĄĐžĐœŃ–Đč ĐșĐŸĐŒĐżĐŸĐœĐ”ĐœŃ‚ Đ±Đ°Đ»Đ°ĐœŃŃƒ Đ±Ń–Đ»ĐŸĐłĐŸ" + +#: ../gview_v4l2core/v4l2_controls.c:107 +msgid "White Balance Red Component" +msgstr "ЧДрĐČĐŸĐœĐžĐč ĐșĐŸĐŒĐżĐŸĐœĐ”ĐœŃ‚ Đ±Đ°Đ»Đ°ĐœŃŃƒ Đ±Ń–Đ»ĐŸĐłĐŸ" + +#. libwebcam specific control strings +#: ../gview_v4l2core/v4l2_controls.c:110 +msgid "Focus" +msgstr "Đ€ĐŸĐșус" + +#: ../gview_v4l2core/v4l2_controls.c:111 +msgid "Focus (Absolute)" +msgstr "ĐĐ±ŃĐŸĐ»ŃŽŃ‚ĐœĐžĐč Ń„ĐŸĐșус" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:63 +msgid "Off" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:64 +msgid "On" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:65 +msgid "Blinking" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:66 +#, fuzzy +msgid "Auto" +msgstr "АĐČŃ‚ĐŸŃ€Đ”Đ¶ĐžĐŒ" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:73 +msgid "Pan (relative)" +msgstr "Đ’Ń–ĐŽĐœĐŸŃĐœĐžĐč ĐżĐŸĐČĐŸŃ€ĐŸŃ‚" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:86 +msgid "Tilt (relative)" +msgstr "Đ’Ń–ĐŽĐœĐŸŃĐœĐžĐč ĐœĐ°Ń…ĐžĐ»" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:99 +msgid "Pan Reset" +msgstr "ĐĄĐșĐžĐœŃƒŃ‚Đž ĐżĐŸĐČĐŸŃ€ĐŸŃ‚" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:112 +msgid "Tilt Reset" +msgstr "ĐĄĐșĐžĐœŃƒŃ‚Đž ĐœĐ°Ń…ĐžĐ»" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:125 +msgid "Focus (absolute)" +msgstr "ĐĐ±ŃĐŸĐ»ŃŽŃ‚ĐœĐžĐč Ń„ĐŸĐșус" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:138 +msgid "LED1 Mode" +msgstr "ĐœĐ”Ń‚ĐŸĐŽ сĐČŃ–Ń‚Đ»ĐŸĐŽŃ–ĐŸĐŽĐ°" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:151 +msgid "LED1 Frequency" +msgstr "Đ§Đ°ŃŃ‚ĐŸŃ‚Đ° сĐČŃ–Ń‚Đ»ĐŸĐŽŃ–ĐŸĐŽĐ°" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:164 +msgid "Disable video processing" +msgstr "ВіЮĐșлючОтО ĐŸĐ±Ń€ĐŸĐ±Đșу ĐČŃ–ĐŽĐ”ĐŸ" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:177 +msgid "Raw bits per pixel" +msgstr "Сорі бітО ĐœĐ° піĐșŃĐ”Đ»ŃŒ" + +#, fuzzy +#~ msgid "Raw camera input" +#~ msgstr "ВоĐČіЮ ĐșĐ°ĐŒĐ”Ń€Đž:" + +#~ msgid "MJPG - compressed" +#~ msgstr "MJPG - ŃŃ‚ĐžŃĐœĐ”ĐœĐŸ" + +#~ msgid "MPEG video 1" +#~ msgstr "MPEG-ĐČŃ–ĐŽĐ”ĐŸ 1" + +#~ msgid "FLV1 - flash video 1" +#~ msgstr "FLV1 Ń„Đ»Đ”Ńˆ-ĐČŃ–ĐŽĐ”ĐŸ 1" + +#~ msgid "WMV1 - win. med. video 7" +#~ msgstr "WMV1 - ĐČŃ–ĐŽĐ”ĐŸ Windows Media 7" + +#~ msgid "MPG2 - MPG2 format" +#~ msgstr "MPG2 - Ń„ĐŸŃ€ĐŒĐ°Ń‚ MPG2" + +#~ msgid "MS MP4 V3" +#~ msgstr "MS MP4 V3" + +#~ msgid "MPEG4-ASP" +#~ msgstr "MPEG4-ASP" + +#~ msgid "MPEG4-AVC (H264)" +#~ msgstr "MPEG4-AVC (H264)" + +#~ msgid "Audio API:" +#~ msgstr "ĐŃƒĐŽŃ–ĐŸ API:" + +#~ msgid "PORTAUDIO" +#~ msgstr "PORTAUDIO" + +#~ msgid "PULSEAUDIO" +#~ msgstr "PULSEAUDIO" + +#~ msgid "Input Device:" +#~ msgstr "ПростріĐč ĐČĐČĐŸĐŽŃƒ:" + +#~ msgid "Sample Rate:" +#~ msgstr "Đ§Đ°ŃŃ‚ĐŸŃ‚Đ° ЎОсĐșрДЎОтації:" + +#~ msgid "Dev. Default" +#~ msgstr "ПростріĐč ĐżĐŸ Đ·Đ°ĐŒĐŸĐČч." + +#~ msgid "Channels:" +#~ msgstr "ĐšĐ°ĐœĐ°Đ»Đž:" + +#~ msgid "1 - mono" +#~ msgstr "1 - ĐŒĐŸĐœĐŸ" + +#~ msgid "2 - stereo" +#~ msgstr "2 - ŃŃ‚Đ”Ń€Đ”ĐŸ" + +#, fuzzy +#~ msgid "---- Audio Filters ----" +#~ msgstr "---- Đ’Ń–ĐŽĐ”ĐŸ Ń„Ń–Đ»ŃŒŃ‚Ń€Đž ----" + +#~ msgid " Echo" +#~ msgstr " Đ•Ń…ĐŸ" + +#~ msgid " Reverb" +#~ msgstr " Đ Đ”ĐČĐ”Ń€Đ±Đ°Ń†Ń–Ń" + +#~ msgid " Fuzz" +#~ msgstr " Пух" + +#~ msgid " WahWah" +#~ msgstr " ВахВах" + +#~ msgid " Ducky" +#~ msgstr " Đ“ĐŸĐ»ŃƒĐ±ĐșĐ°" + +#~ msgid "Error" +#~ msgstr "ĐŸĐŸĐŒĐžĐ»ĐșĐ°" + +#, fuzzy +#~ msgid "_Cancel" +#~ msgstr "ĐČŃ–ĐŽĐŒŃ–ĐœĐžŃ‚Đž" + +#~ msgid "" +#~ "\n" +#~ "You have more than one video device installed.\n" +#~ "Do you want to try another one ?\n" +#~ msgstr "" +#~ "\n" +#~ "Đ’ŃŃ‚Đ°ĐœĐŸĐČĐ»Đ”ĐœĐŸ Đ±Ń–Đ»ŃŒŃˆĐ” ĐŸĐŽĐœĐŸĐłĐŸ ĐČŃ–ĐŽĐ”ĐŸ ĐżŃ€ĐžŃŃ‚Ń€ĐŸŃŽ.\n" +#~ "Во Ń…ĐŸŃ‡Đ”Ń‚Đ” ŃĐżŃ€ĐŸĐ±ŃƒĐČато щД ĐŸĐŽĐžĐœ?\n" + +#~ msgid "Device:" +#~ msgstr "ПростріĐč:" + +#~ msgid "Guvcview Video Capture" +#~ msgstr "Đ—Đ°Ń…ĐŸĐżĐ»ŃŽĐČач ĐČŃ–ĐŽĐ”ĐŸ Guvcview" + +#, fuzzy +#~ msgid "Guvcview" +#~ msgstr "ĐŸĐŸĐżĐ”Ń€Đ”ĐŽĐ¶Đ”ĐœĐœŃ:" + +#~ msgid "Image Controls" +#~ msgstr "" +#~ "ĐšĐ”Ń€ŃƒĐČĐ°ĐœĐœŃ\n" +#~ "Đ·ĐŸĐ±Ń€Đ°Đ¶Đ”ĐœĐœŃĐŒ" + +#, fuzzy +#~ msgid "Video Controls" +#~ msgstr "ĐšĐ”Ń€ŃƒŃŽŃ‡Ń– Đ”Đ»Đ”ĐŒĐ”ĐœŃ‚Đž ĐșĐŸŃ€ĐžŃŃ‚ŃƒĐČача" + +#, fuzzy +#~ msgid "Audio Controls" +#~ msgstr "ĐšĐ”Ń€ŃƒŃŽŃ‡Ń– Đ”Đ»Đ”ĐŒĐ”ĐœŃ‚Đž ĐșĐŸŃ€ĐžŃŃ‚ŃƒĐČача" + +#, fuzzy +#~ msgid "Photo file name" +#~ msgstr "ЀаĐčĐ» Đ·ĐŸĐ±Ń€Đ°Đ¶Đ”ĐœĐœŃ" + +#, fuzzy +#~ msgid "Video file name" +#~ msgstr "ЀаĐčĐ» Đ·ĐŸĐ±Ń€Đ°Đ¶Đ”ĐœĐœŃ" + +#~ msgid "start new" +#~ msgstr "Đ·Đ°ĐżŃƒŃŃ‚ĐžŃ‚Đž ĐœĐŸĐČĐžĐč" + +#~ msgid "restart" +#~ msgstr "пДрДзаĐČĐ°ĐœŃ‚Đ°Đ¶." + +#~ msgid "new" +#~ msgstr "ĐœĐŸĐČĐžĐč" + +#~ msgid "cancel" +#~ msgstr "ĐČŃ–ĐŽĐŒŃ–ĐœĐžŃ‚Đž" + +#~ msgid "" +#~ "launch new process or restart?.\n" +#~ "\n" +#~ msgstr "" +#~ "Đ·Đ°ĐżŃƒŃŃ‚ĐžŃ‚Đž ĐœĐŸĐČĐžĐč ĐżŃ€ĐŸŃ†Đ”Ń, \n" +#~ "чо пДрДзаĐČĐ°ĐœŃ‚Đ°Đ¶ĐžŃ‚Đž?\n" +#~ "\n" + +#, fuzzy +#~ msgid "video codec values" +#~ msgstr "Đ·ĐœĐ°Ń‡Đ”ĐœĐœŃ Đ°ŃƒĐŽŃ–ĐŸ-ĐșĐŸĐŽĐ”ĐșĐ°" + +#~ msgid "" +#~ " encoder fps: \n" +#~ " (0 - use fps combobox value)" +#~ msgstr "" +#~ " Ń‡Đ°ŃŃ‚ĐŸŃ‚Đ° ĐșаЮріĐČ: \n" +#~ " (0 - ĐČĐžĐșĐŸŃ€ĐžŃŃ‚Đ°Ń‚Đž Đ·ĐœĐ°Ń‡Đ”ĐœĐœŃ Đ· ĐČĐžĐżĐ°ĐŽĐ°ŃŽŃ‡ĐŸĐłĐŸ спОсĐșу)" + +#~ msgid "bit rate: " +#~ msgstr "бітрДĐčт: " + +#~ msgid "qmax: " +#~ msgstr "qmax: " + +#~ msgid "qmin: " +#~ msgstr "qmin: " + +#~ msgid "max. qdiff: " +#~ msgstr "ĐŒĐ°Đșс. qdiff: " + +#~ msgid "dia size: " +#~ msgstr "dia size: " + +#~ msgid "pre dia size: " +#~ msgstr "pre dia size: " + +#~ msgid "pre me: " +#~ msgstr "pre me: " + +#~ msgid "pre cmp: " +#~ msgstr "pre cmp: " + +#~ msgid "cmp: " +#~ msgstr "cmp: " + +#~ msgid "sub cmp: " +#~ msgstr "sub cmp: " + +#~ msgid "last predictor count: " +#~ msgstr "Đ·ĐœĐ°Ń‡Đ”ĐœĐœŃ Đ»Ń–Ń‡ĐžĐ»ŃŒĐœĐžĐșĐ° ĐżŃ€ĐŸĐłĐœĐŸĐ·ĐžŃŃ‚Đ°: " + +#~ msgid "gop size: " +#~ msgstr "gop size: " + +#~ msgid "qcompress: " +#~ msgstr "qcompress " + +#~ msgid "qblur: " +#~ msgstr "qblur: " + +#~ msgid "subq: " +#~ msgstr "subq: " + +#~ msgid "framerefs: " +#~ msgstr "framerefs: " + +#~ msgid "me method: " +#~ msgstr "me method: " + +#~ msgid "mb decision: " +#~ msgstr "mb decision: " + +#~ msgid "max B frames: " +#~ msgstr "max B frames: " + +#~ msgid "audio codec values" +#~ msgstr "Đ·ĐœĐ°Ń‡Đ”ĐœĐœŃ Đ°ŃƒĐŽŃ–ĐŸ-ĐșĐŸĐŽĐ”ĐșĐ°" + +#~ msgid "Left" +#~ msgstr "ЛіĐČĐžĐč" + +#~ msgid "Right" +#~ msgstr "ПраĐČĐžĐč" + +#~ msgid "Down" +#~ msgstr "Đ’ĐœĐžĐ·" + +#~ msgid "Up" +#~ msgstr "ВĐČДрх" + +#~ msgid "Auto Focus (continuous)" +#~ msgstr "АĐČŃ‚ĐŸ Ń„ĐŸĐșус (бДзпДрДрĐČĐœĐžĐč)" + +#~ msgid "set Focus" +#~ msgstr "ĐČŃŃ‚Đ°ĐœĐŸĐČото Ń„ĐŸĐșус" + +#, fuzzy +#~ msgid "_Apply" +#~ msgstr "Đ—Đ°ŃŃ‚ĐŸŃŃƒĐČато" + +#~ msgid "Frame Rate:" +#~ msgstr "Đ§Đ°ŃŃ‚ĐŸŃ‚Đ° ĐșаЮріĐČ:" + +#~ msgid "Resolution:" +#~ msgstr "Đ ĐŸĐ·ĐŽŃ–Đ»ŃŒĐœĐ° Đ·ĐŽĐ°Ń‚ĐœŃ–ŃŃ‚ŃŒ:" + +#~ msgid "Camera Output:" +#~ msgstr "ВоĐČіЮ ĐșĐ°ĐŒĐ”Ń€Đž:" + +#~ msgid "---- Video Filters ----" +#~ msgstr "---- Đ’Ń–ĐŽĐ”ĐŸ Ń„Ń–Đ»ŃŒŃ‚Ń€Đž ----" + +#~ msgid " Mirror" +#~ msgstr " Đ“ĐŸŃ€. ĐČіЎЎзДрĐșĐ°Đ»." + +#~ msgid " Invert" +#~ msgstr " ВДрт. ĐČіЎЎзДрĐșĐ°Đ»." + +#~ msgid " Negative" +#~ msgstr " ĐĐ”ĐłĐ°Ń‚ĐžĐČ" + +#~ msgid " Mono" +#~ msgstr " Đ§ĐŸŃ€ĐœĐŸ-білД" + +#~ msgid " Pieces" +#~ msgstr " ĐœĐŸĐ·Đ°Ń—ĐșĐ°" + +#~ msgid " Particles" +#~ msgstr " Đ§Đ°ŃŃ‚ĐŸŃ‡ĐșĐž" + +#, fuzzy +#~ msgid "Print version" +#~ msgstr "ĐŸĐŸĐșĐ°Đ·ŃƒŃ” ĐČДрсію" + +#, fuzzy +#~ msgid "Set device name (def: /dev/video0)" +#~ msgstr "ВоĐșĐŸŃ€ĐžŃŃ‚Đ°ĐœĐžĐč ĐČŃ–ĐŽĐ”ĐŸ-простріĐč [default: /dev/video0]" + +#, fuzzy +#~ msgid "Set capture method [read | mmap (def)]" +#~ msgstr "ĐœĐ”Ń‚ĐŸĐŽ Đ·Đ°Ń…ĐŸĐżĐ»Đ”ĐœĐœŃ (1-mmap (Đ·Đ°ĐŒĐŸĐČч.) 2-read)" + +#, fuzzy +#~ msgid "" +#~ "Guvcview version %s\n" +#~ "\n" +#~ msgstr "ĐŸĐŸĐżĐ”Ń€Đ”ĐŽĐ¶Đ”ĐœĐœŃ:" + +#~ msgid "Audio" +#~ msgstr "ĐŃƒĐŽŃ–ĐŸ" + +#~ msgid " Sound" +#~ msgstr " ЗĐČуĐș" + +#~ msgid "---- Audio Effects ----" +#~ msgstr "---- Đ•Ń„Đ”Đșто Đ°ŃƒĐŽŃ–ĐŸ ----" + +#~ msgid "Save File" +#~ msgstr "ЗбДрДгтО" + +#~ msgid "codec values" +#~ msgstr "Đ·ĐœĐ°Ń‡Đ”ĐœĐœŃ ĐșĐŸĐŽĐ”ĐșĐ°" + +#~ msgid "Cap. Video" +#~ msgstr "Đ’Ń–ĐŽĐ”ĐŸ" + +#~ msgid "GUVCViewer Controls" +#~ msgstr "ĐŸĐ°ĐœĐ”Đ»ŃŒ ĐœĐ°Đ»Đ°ŃˆŃ‚ŃƒĐČĐ°ĐœŃŒ Guvcview" + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to open device" +#~ msgstr "" +#~ "ĐŸĐŸĐŒĐžĐ»ĐșĐ°:\n" +#~ "\n" +#~ "ĐĐ” ĐŒĐŸĐ¶Ńƒ ĐČіЮĐșрото простріĐč" + +#~ msgid "" +#~ "Please make sure the camera is connected\n" +#~ "and that the correct driver is installed." +#~ msgstr "" +#~ "ĐŸĐ”Ń€Đ”ĐșĐŸĐœĐ°ĐčŃ‚Đ”ŃŃŒ, Ń‰ĐŸ ĐșĐ°ĐŒĐ”Ń€Đ° піЮĐșĐ»ŃŽŃ‡Đ”ĐœĐ°\n" +#~ "і ĐČŃŃ‚Đ°ĐœĐŸĐČĐ»Đ”ĐœĐŸ ĐČŃ–ĐŽĐżĐŸĐČŃ–ĐŽĐœĐžĐč ЮраĐčĐČДр." + +#~ msgid "" +#~ "Guvcview:\n" +#~ "\n" +#~ "UVC Extension controls" +#~ msgstr "" +#~ "Guvcview:\n" +#~ "\n" +#~ "Đ•Đ»Đ”ĐŒĐ”ĐœŃ‚Đž ĐșĐ”Ń€ŃƒĐČĐ°ĐœĐœŃ Ń€ĐŸĐ·ŃˆĐžŃ€Đ”ĐœĐœŃĐŒ UVC" + +#~ msgid "Extension controls were added to the UVC driver" +#~ msgstr "ĐšĐ”Ń€ŃƒŃŽŃ‡Ń– Đ”Đ»Đ”ĐŒĐ”ĐœŃ‚Đž Ń€ĐŸĐ·ŃˆĐžŃ€Đ”ĐœĐœŃ булО ĐŽĐŸĐŽĐ°ĐœŃ– ĐŽĐŸ ЮраĐčĐČĐ”Ń€Ńƒ UVC" + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "UVC Extension controls" +#~ msgstr "" +#~ "ĐŸĐŸĐŒĐžĐ»ĐșĐ°:\n" +#~ "\n" +#~ "ĐšĐ”Ń€ŃƒŃŽŃ‡Ń– Đ”Đ»Đ”ĐŒĐ”ĐœŃ‚Đž UVC" + +#~ msgid "" +#~ "An error occurred while adding extension\n" +#~ "controls to the UVC driver\n" +#~ "Make sure you run guvcview as root (or sudo)." +#~ msgstr "" +#~ "Đ’ĐžĐœĐžĐșла ĐżĐŸĐŒĐžĐ»ĐșĐ° ĐČ ĐżŃ€ĐŸŃ†Đ”ŃŃ– ĐŽĐŸĐŽĐ°ĐČĐ°ĐœĐœŃ ĐșĐ”Ń€ŃƒŃŽŃ‡ĐžŃ… \n" +#~ "Đ”Đ»Đ”ĐŒĐ”ĐœŃ‚Ń–ĐČ Ń€ĐŸĐ·ŃˆĐžŃ€Đ”ĐœĐœŃ ĐŽĐŸ ЮраĐčĐČĐ”Ń€Ńƒ UVC.\n" +#~ "ĐŸĐ”Ń€Đ”ĐșĐŸĐœĐ°ĐčŃ‚Đ”ŃŃŒ Ń‰ĐŸ Guvcview Đ·Đ°ĐżŃƒŃ‰Đ”ĐœĐŸ ĐČіЮ Ń–ĐŒĐ”ĐœŃ– root (чо sudo)." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Can't set a valid video stream for guvcview" +#~ msgstr "" +#~ "ĐŸĐŸĐŒĐžĐ»ĐșĐ°:\n" +#~ "\n" +#~ "ĐĐ” ĐŒĐŸĐ¶Ńƒ ĐČŃŃ‚Đ°ĐœĐŸĐČото праĐČĐžĐ»ŃŒĐœĐžĐč ĐČŃ–ĐŽĐ”ĐŸ ĐżĐŸŃ‚Ń–Đș ĐŽĐ»Ń Guvcview" + +#~ msgid "" +#~ "Make sure your device driver is v4l2 compliant\n" +#~ "and that it is properly installed." +#~ msgstr "" +#~ "ĐŸĐ”Ń€Đ”ĐșĐŸĐœĐ°ĐčŃ‚Đ”ŃŃŒ, Ń‰ĐŸ ЮраĐčĐČДр ŃŃƒĐŒŃ–ŃĐœĐžĐč Đ· v4l2\n" +#~ "і ĐČŃŃ‚Đ°ĐœĐŸĐČĐ»Đ”ĐœĐžĐč праĐČĐžĐ»ŃŒĐœĐŸ." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to start with minimum setup" +#~ msgstr "" +#~ "ĐŸĐŸĐŒĐžĐ»ĐșĐ°:\n" +#~ "\n" +#~ "ĐĐ” ĐŒĐŸĐ¶Ńƒ Đ·Đ°ĐżŃƒŃŃ‚ĐžŃ‚ĐžŃŃŒ Đ· ĐŒŃ–ĐœŃ–ĐŒĐ°Đ»ŃŒĐœĐŸŃŽ ŃƒŃŃ‚Đ°ĐœĐŸĐČĐșĐŸŃŽ" + +#~ msgid "Please reconnect your camera." +#~ msgstr "БуЮь ласĐșĐ°, ĐżĐŸĐČŃ‚ĐŸŃ€ĐœĐŸ піЮĐșĐ»ŃŽŃ‡Ń–Ń‚ŃŒ сĐČĐŸŃŽ ĐșĐ°ĐŒĐ”Ń€Ńƒ." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Couldn't query device capabilities" +#~ msgstr "" +#~ "ĐŸĐŸĐŒĐžĐ»ĐșĐ°:\n" +#~ "\n" +#~ "ĐĐ” ĐŒĐŸĐ¶Ńƒ ĐœĐ°ĐŽŃ–ŃĐ»Đ°Ń‚Đž запОт ĐżŃ€ĐŸ ĐŒĐŸĐ¶Đ»ĐžĐČĐŸŃŃ‚Ń– ĐżŃ€ĐžŃŃ‚Ń€ĐŸŃŽ" + +#~ msgid "Make sure the device driver supports v4l2." +#~ msgstr "ĐŸĐ”Ń€Đ”ĐșĐŸĐœĐ°ĐčŃ‚Đ”ŃŃŒ, Ń‰ĐŸ ЮраĐčĐČДр ĐżŃ€ĐžŃŃ‚Ń€ĐŸŃŽ ĐżŃ–ĐŽŃ‚Ń€ĐžĐŒŃƒŃ” v4l2" + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Read method error" +#~ msgstr "" +#~ "ĐŸĐŸĐŒĐžĐ»ĐșĐ°:\n" +#~ "\n" +#~ "ĐŸĐŸĐŒĐžĐ»ĐșĐ° ĐŒĐ”Ń‚ĐŸĐŽŃƒ Đ·Ń‡ĐžŃ‚ŃƒĐČĐ°ĐœĐœŃ." + +#~ msgid "Please try mmap instead (--capture_method=1)." +#~ msgstr "БуЮь ласĐșĐ°, ŃĐżŃ€ĐŸĐ±ŃƒĐčŃ‚Đ” mmap instead (--capture_method=1)." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to allocate Buffers" +#~ msgstr "" +#~ "ĐŸĐŸĐŒĐžĐ»ĐșĐ°:\n" +#~ "\n" +#~ "ĐĐ” ĐŒĐŸĐ¶Ńƒ ĐČОЎілОтО ĐŒŃ–ŃŃ†Đ” піЮ Đ‘ŃƒŃ„Đ”Ń€Đž." + +#~ msgid "Please try restarting your system." +#~ msgstr "БуЮь ласĐșĐ°, ŃĐżŃ€ĐŸĐ±ŃƒĐčŃ‚Đ” пДрДзаĐČĐ°ĐœŃ‚Đ°Đ¶ĐžŃ‚Đž ŃĐžŃŃ‚Đ”ĐŒŃƒ." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to create Video Thread" +#~ msgstr "" +#~ "ĐŸĐŸĐŒĐžĐ»ĐșĐ°:\n" +#~ "\n" +#~ "ĐĐ” ĐŒĐŸĐ¶Ńƒ стĐČĐŸŃ€ĐžŃ‚Đž ĐżĐŸŃ‚Ń–Đș ĐșĐŸĐŒĐ°ĐœĐŽ ĐŽĐ»Ń ĐČŃ–ĐŽĐ”ĐŸ" + +#~ msgid "Please report it to http://developer.berlios.de/bugs/?group_id=8179" +#~ msgstr "" +#~ "БуЮь ласĐșĐ°, ĐżĐŸĐČŃ–ĐŽĐŸĐŒŃ‚Đ” ĐżŃ€ĐŸ цД тут http://developer.berlios.de/bugs/?" +#~ "group_id=8179" + +#~ msgid "Displays debug information" +#~ msgstr "ĐŸĐŸĐșĐ°Đ·ŃƒŃ” Ń–ĐœŃ„ĐŸŃ€ĐŒĐ°Ń†Ń–ŃŽ ĐŽĐ»Ń ĐČŃ–ĐŽĐ»Đ°ĐłĐŸĐŽĐ¶ŃƒĐČĐ°ĐœĐœŃ" + +#~ msgid "Exit after adding UVC extension controls (needs root/sudo)" +#~ msgstr "" +#~ "ВоĐčто ĐżŃ–ŃĐ»Ń ĐŽĐŸĐŽĐ°ĐČĐ°ĐœĐœŃ ĐșĐ”Ń€ŃƒŃŽŃ‡ĐžŃ… Đ”Đ»Đ”ĐŒĐ”ĐœŃ‚Ń–ĐČ Ń€ĐŸĐ·ŃˆĐžŃ€Đ”ĐœĐœŃ UVC\n" +#~ "(ĐżĐŸŃ‚Ń€Ń–Đ±ĐœŃ– праĐČĐ° Đ°ĐŽĐŒŃ–ĐœŃ–ŃŃ‚Ń€Đ°Ń‚ĐŸŃ€Đ°)" + +#~ msgid "Don't stream video (image controls only)" +#~ msgstr "ĐĐ” ĐżĐŸŃ‚ĐŸĐșĐŸĐČĐ” ĐČŃ–ĐŽĐ”ĐŸ (ĐșĐ”Ń€ŃƒĐČато лОшД Đ·ĐŸĐ±Ń€Đ°Đ¶Đ”ĐœĐœŃĐŒ)" + +#~ msgid "Configuration file" +#~ msgstr "ЀаĐčĐ» ĐșĐŸĐœŃ„Ń–ĐłŃƒŃ€Đ°Ń†Ń–Ń—" + +#~ msgid "Hardware accelaration (enable(1) | disable(0))" +#~ msgstr "ĐĐżĐ°Ń€Đ°Ń‚ĐœĐ” просĐșĐŸŃ€Đ”ĐœĐœŃ (уĐČŃ–ĐŒĐșĐœ.(1) | ĐČĐžĐŒĐșĐœ.(0))" + +#~ msgid "Frame size, default: 640x480" +#~ msgstr "Đ ĐŸĐ·ĐŒŃ–Ń€ ĐșаЮру (Đ·Đ°ĐŒĐŸĐČч. - 640x480)" + +#~ msgid "Image capture interval in seconds" +#~ msgstr "Đ†ĐœŃ‚Đ”Ń€ĐČĐ°Đ» ĐŒŃ–Đ¶ Đ·ĐœŃ–ĐŒĐșĐ°ĐŒĐž (сДĐș.)" + +#~ msgid "Number of Pictures to capture" +#~ msgstr "ĐšŃ–Đ»ŃŒĐșість Đ·ĐœŃ–ĐŒĐșіĐČ" + +#~ msgid "Video File name (capture from start)" +#~ msgstr "ЀаĐčĐ» ĐČŃ–ĐŽĐ”ĐŸ (запОс Đ·Ń€Đ°Đ·Ńƒ ĐżŃ–ŃĐ»Ń запусĐșу)" + +#~ msgid "Video capture time (in seconds)" +#~ msgstr "броĐČĐ°Đ»Ń–ŃŃ‚ŃŒ запОсу (сДĐș.)" + +#~ msgid "Exits guvcview after closing video" +#~ msgstr "ВоĐčто Đ· Guvcview ĐżŃ–ŃĐ»Ń Đ·Đ°Đșроття ĐČŃ–ĐŽĐ”ĐŸ" + +#~ msgid "Number of initial frames to skip" +#~ msgstr "ĐšŃ–Đ»ŃŒĐșість ĐżĐŸŃ‡Đ°Ń‚ĐșĐŸĐČох ĐșаЮріĐČ ĐŽĐ»Ń ĐżŃ€ĐŸĐżŃƒŃĐșу" + +#~ msgid "Show FPS value (enable(1) | disable (0))" +#~ msgstr "Đ’Ń–ĐŽĐŸĐ±Ń€Đ°Đ¶Đ”ĐœĐœŃ Ń‡Đ°ŃŃ‚ĐŸŃ‚Đž ĐșаЮріĐČ (уĐČŃ–ĐŒĐșĐœ.(1) | ĐČĐžĐŒĐșĐœ. (0))" + +#~ msgid "Load Profile at start" +#~ msgstr "ЗаĐČĐ°ĐœŃ‚Đ°Đ¶ĐžŃ‚Đž ĐżŃ€ĐŸŃ„Ń–Đ»ŃŒ про запусĐșу" + +#~ msgid "- local options" +#~ msgstr "- Đ»ĐŸĐșĐ°Đ»ŃŒĐœŃ– ĐżĐ°Ń€Đ°ĐŒĐ”Ń‚Ń€Đž" + +#~ msgid "Cap. Image" +#~ msgstr "Đ—ĐœŃ–ĐŒĐŸĐș" + +#~ msgid "Not enough free space left on disk" +#~ msgstr "ĐĐ” ĐČостачає ĐČŃ–Đ»ŃŒĐœĐŸĐłĐŸ ĐŒŃ–ŃŃ†Ń ĐœĐ° ЎОсĐșу" + +#~ msgid "YUY2 - uncomp YUV" +#~ msgstr "YUY2 - ĐœĐ” ŃŃ‚ĐžŃĐœĐ”ĐœĐžĐč YUV" + +#~ msgid "RGB - uncomp BMP" +#~ msgstr "RGB - ĐœĐ” ŃŃ‚ĐžŃĐœĐ”ĐœĐžĐč BMP" + +#~ msgid " Show" +#~ msgstr " ĐŸĐŸĐșĐ°Đ·Đ°Ń‚Đž" + +#~ msgid "Quality:" +#~ msgstr "ĐŻĐșість:" diff -Nru guvcview-1.7.3/po/gview_v4l2core/zh_TW.po guvcview-2.0.1+ubuntu1~ppa1/po/gview_v4l2core/zh_TW.po --- guvcview-1.7.3/po/gview_v4l2core/zh_TW.po 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/po/gview_v4l2core/zh_TW.po 2014-10-05 10:41:44.000000000 +0000 @@ -0,0 +1,770 @@ +msgid "" +msgstr "" +"Project-Id-Version: guvcview\n" +"Report-Msgid-Bugs-To: pj.assis@gmail.com\n" +"POT-Creation-Date: 2014-08-17 22:49+0100\n" +"PO-Revision-Date: 2013-02-25 05:36+0000\n" +"Last-Translator: kentxchang \n" +"Language-Team: none \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2013-12-08 10:36+0000\n" +"X-Generator: Launchpad (build 16869)\n" +"X-Poedit-Country: TAIWAN\n" +"X-Poedit-Language: Chinese\n" + +#. +#. * needed only for language files (not used) +#. +#. V4L2 control strings +#: ../gview_v4l2core/v4l2_controls.c:49 +msgid "User Controls" +msgstr "äœżç”šè€…èš­ćźš" + +#: ../gview_v4l2core/v4l2_controls.c:50 +msgid "Brightness" +msgstr "äșźćșŠ" + +#: ../gview_v4l2core/v4l2_controls.c:51 +msgid "Contrast" +msgstr "ć°æŻ”" + +#: ../gview_v4l2core/v4l2_controls.c:52 +msgid "Hue" +msgstr "è‰ČèȘż" + +#: ../gview_v4l2core/v4l2_controls.c:53 +msgid "Saturation" +msgstr "éŁœć’ŒćșŠ" + +#: ../gview_v4l2core/v4l2_controls.c:54 +msgid "Sharpness" +msgstr "éŠłćˆ©ćșŠ" + +#: ../gview_v4l2core/v4l2_controls.c:55 +msgid "Gamma" +msgstr "䌜ç‘Șć€Œ" + +#: ../gview_v4l2core/v4l2_controls.c:56 +msgid "Backlight Compensation" +msgstr "èƒŒć…‰èŁœć„Ÿ" + +#: ../gview_v4l2core/v4l2_controls.c:57 +msgid "Power Line Frequency" +msgstr "芖蚊頻率" + +#: ../gview_v4l2core/v4l2_controls.c:58 +msgid "Hue, Automatic" +msgstr "è‡Ș拕è‰ČèȘż" + +#: ../gview_v4l2core/v4l2_controls.c:59 +msgid "Focus, Auto" +msgstr "è‡Ș拕氍焩" + +#: ../gview_v4l2core/v4l2_controls.c:60 +msgid "Manual Mode" +msgstr "æ‰‹ć‹•æšĄćŒ" + +#: ../gview_v4l2core/v4l2_controls.c:61 +msgid "Auto Mode" +msgstr "è‡Șć‹•æšĄćŒ" + +#: ../gview_v4l2core/v4l2_controls.c:62 +msgid "Shutter Priority Mode" +msgstr "ćż«é–€ć„Șć…ˆæšĄćŒ" + +#: ../gview_v4l2core/v4l2_controls.c:63 +msgid "Aperture Priority Mode" +msgstr "慉月ć„Șć…ˆæšĄćŒ" + +#: ../gview_v4l2core/v4l2_controls.c:64 +msgid "Black Level" +msgstr "黑è‰Č等箚" + +#: ../gview_v4l2core/v4l2_controls.c:65 +msgid "White Balance, Automatic" +msgstr "è‡Șć‹•ç™œćčłèĄĄ" + +#: ../gview_v4l2core/v4l2_controls.c:66 +msgid "Do White Balance" +msgstr "èš­çœźç™œćčłèĄĄ" + +#: ../gview_v4l2core/v4l2_controls.c:67 +msgid "Red Balance" +msgstr "箅ćčłèĄĄ" + +#: ../gview_v4l2core/v4l2_controls.c:68 +msgid "Blue Balance" +msgstr "藍ćčłèĄĄ" + +#: ../gview_v4l2core/v4l2_controls.c:69 +msgid "Exposure" +msgstr "æ›ć…‰ćșŠ" + +#: ../gview_v4l2core/v4l2_controls.c:70 +msgid "Gain, Automatic" +msgstr "è‡Ș拕汞益" + +#: ../gview_v4l2core/v4l2_controls.c:71 +msgid "Gain" +msgstr "汞益" + +#: ../gview_v4l2core/v4l2_controls.c:72 +msgid "Horizontal Flip" +msgstr "æ°Žćčłçż»èœ‰" + +#: ../gview_v4l2core/v4l2_controls.c:73 +msgid "Vertical Flip" +msgstr "ćž‚ç›Žçż»èœ‰" + +#: ../gview_v4l2core/v4l2_controls.c:74 +msgid "Horizontal Center" +msgstr "æ°Žćčłäž­ćżƒ" + +#: ../gview_v4l2core/v4l2_controls.c:75 +msgid "Vertical Center" +msgstr "枂目侭濃" + +#: ../gview_v4l2core/v4l2_controls.c:76 +msgid "Chroma AGC" +msgstr "æżƒćșŠAGC" + +#: ../gview_v4l2core/v4l2_controls.c:77 +msgid "Color Killer" +msgstr "顏è‰Č killer" + +#: ../gview_v4l2core/v4l2_controls.c:78 +msgid "Color Effects" +msgstr "è‰Čćœ©æ•ˆæžœ" + +#. CAMERA CLASS control strings +#: ../gview_v4l2core/v4l2_controls.c:81 +msgid "Camera Controls" +msgstr "æ”ćœ±æ©Ÿèš­ćźš" + +#: ../gview_v4l2core/v4l2_controls.c:82 +msgid "Auto Exposure" +msgstr "è‡Șć‹•æ›ć…‰" + +#: ../gview_v4l2core/v4l2_controls.c:83 +msgid "Exposure Time, Absolute" +msgstr "ç”•ć°æ›ć…‰æ™‚é–“" + +#: ../gview_v4l2core/v4l2_controls.c:84 +msgid "Exposure, Dynamic Framerate" +msgstr "æ›ć…‰ïŒŒć‹•æ…‹çąŒçŽ‡" + +#: ../gview_v4l2core/v4l2_controls.c:85 +msgid "Pan, Relative" +msgstr "筆,盾氍的" + +#: ../gview_v4l2core/v4l2_controls.c:86 +msgid "Tilt, Relative" +msgstr "ć‚Ÿæ–œ,盾氍的" + +#: ../gview_v4l2core/v4l2_controls.c:87 +msgid "Pan, Reset" +msgstr "筆,重蚭" + +#: ../gview_v4l2core/v4l2_controls.c:88 +msgid "Tilt, Reset" +msgstr "ć‚Ÿæ–œ,重蚭" + +#: ../gview_v4l2core/v4l2_controls.c:89 +msgid "Pan, Absolute" +msgstr "筆,ç”•ć°çš„" + +#: ../gview_v4l2core/v4l2_controls.c:91 +msgid "Focus, Absolute" +msgstr "氍焩,ç”•ć°çš„" + +#: ../gview_v4l2core/v4l2_controls.c:92 +msgid "Focus, Relative" +msgstr "氍焩,盾氍的" + +#: ../gview_v4l2core/v4l2_controls.c:93 +msgid "Focus, Automatic" +msgstr "氍焩,è‡Ș拕" + +#: ../gview_v4l2core/v4l2_controls.c:94 +msgid "Zoom, Absolute" +msgstr "èźŠç„Š,ç”•ć°çš„" + +#: ../gview_v4l2core/v4l2_controls.c:95 +msgid "Zoom, Relative" +msgstr "èźŠç„Š,盾氍的" + +#: ../gview_v4l2core/v4l2_controls.c:96 +msgid "Zoom, Continuous" +msgstr "èźŠç„Š,連çșŒçš„" + +#: ../gview_v4l2core/v4l2_controls.c:97 +msgid "Privacy" +msgstr "隱私" + +#. UVC specific control strings +#: ../gview_v4l2core/v4l2_controls.c:100 +msgid "Exposure, Auto" +msgstr "æ›ć…‰ïŒŒè‡Ș拕" + +#: ../gview_v4l2core/v4l2_controls.c:101 +msgid "Exposure, Auto Priority" +msgstr "æ›ć…‰ïŒŒè‡Ș拕ć„Ș慈" + +#: ../gview_v4l2core/v4l2_controls.c:102 +msgid "Exposure (Absolute)" +msgstr "æ›ć…‰ïŒˆç”•ć°ïŒ‰" + +#: ../gview_v4l2core/v4l2_controls.c:103 +msgid "White Balance Temperature, Auto" +msgstr "癜ćčłèĄĄæș«ćșŠïŒŒè‡Ș拕" + +#: ../gview_v4l2core/v4l2_controls.c:104 +msgid "White Balance Temperature" +msgstr "癜ćčłèĄĄæș«ćșŠ" + +#: ../gview_v4l2core/v4l2_controls.c:105 +msgid "White Balance Component, Auto" +msgstr "癜ćčłèĄĄć…ƒä»¶,è‡Ș拕" + +#: ../gview_v4l2core/v4l2_controls.c:106 +msgid "White Balance Blue Component" +msgstr "癜ćčłèĄĄè—ć…ƒä»¶" + +#: ../gview_v4l2core/v4l2_controls.c:107 +msgid "White Balance Red Component" +msgstr "癜ćčłèĄĄçŽ…ć…ƒä»¶" + +#. libwebcam specific control strings +#: ../gview_v4l2core/v4l2_controls.c:110 +msgid "Focus" +msgstr "氍焩" + +#: ../gview_v4l2core/v4l2_controls.c:111 +msgid "Focus (Absolute)" +msgstr "氍焩(ç”•ć°çš„)" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:63 +msgid "Off" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:64 +msgid "On" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:65 +msgid "Blinking" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:66 +#, fuzzy +msgid "Auto" +msgstr "è‡Șć‹•æšĄćŒ" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:73 +msgid "Pan (relative)" +msgstr "Pan (盾氍的)" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:86 +msgid "Tilt (relative)" +msgstr "ć‚Ÿæ–œ(盾氍的)" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:99 +msgid "Pan Reset" +msgstr "Pan 重蚭" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:112 +msgid "Tilt Reset" +msgstr "ć‚Ÿæ–œé‡èš­" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:125 +msgid "Focus (absolute)" +msgstr "氍焩(ç”•ć°ć€Œ)" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:138 +msgid "LED1 Mode" +msgstr "LED1æšĄćŒ" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:151 +msgid "LED1 Frequency" +msgstr "LED1頻率" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:164 +msgid "Disable video processing" +msgstr "ćœç”šćœ±ćƒè™•ç†" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:177 +msgid "Raw bits per pixel" +msgstr "Raw bits per pixel" + +#, fuzzy +#~ msgid "Raw camera input" +#~ msgstr "æ”ćœ±æ©ŸèŒžć‡ș:" + +#~ msgid "MJPG - compressed" +#~ msgstr "MJPG - compressed" + +#~ msgid "MPEG video 1" +#~ msgstr "MPEG video 1" + +#~ msgid "FLV1 - flash video 1" +#~ msgstr "FLV1 - flash video 1" + +#~ msgid "WMV1 - win. med. video 7" +#~ msgstr "WMV1 - win. med. video 7" + +#~ msgid "MPG2 - MPG2 format" +#~ msgstr "MPG2 - MPG2 format" + +#~ msgid "MS MP4 V3" +#~ msgstr "MS MP4 V3" + +#~ msgid "MPEG4-ASP" +#~ msgstr "MPEG4-ASP" + +#~ msgid "MPEG4-AVC (H264)" +#~ msgstr "MPEG4-AVC (H264)" + +#~ msgid "Audio API:" +#~ msgstr "éŸłé »API:" + +#~ msgid "PORTAUDIO" +#~ msgstr "PORTAUDIO" + +#~ msgid "PULSEAUDIO" +#~ msgstr "PULSEAUDIO" + +#~ msgid "Input Device:" +#~ msgstr "èŒžć…„èš­ć‚™:" + +#~ msgid "Sample Rate:" +#~ msgstr "çŻ„äŸ‹çąŒçŽ‡:" + +#~ msgid "Dev. Default" +#~ msgstr "Dev. Default" + +#~ msgid "Channels:" +#~ msgstr "èČ道:" + +#~ msgid "1 - mono" +#~ msgstr "1 - mono" + +#~ msgid "2 - stereo" +#~ msgstr "2 - stereo" + +#, fuzzy +#~ msgid "---- Audio Filters ----" +#~ msgstr "---ćœ±ćƒæżŸæłąć™š---" + +#~ msgid " Echo" +#~ msgstr " èżŽèČ" + +#~ msgid " Reverb" +#~ msgstr " Reverb" + +#~ msgid " Fuzz" +#~ msgstr " æšĄçłŠ" + +#~ msgid " WahWah" +#~ msgstr " WahWah" + +#~ msgid " Ducky" +#~ msgstr " Ducky" + +#, fuzzy +#~ msgid "_Cancel" +#~ msgstr "ć–æ¶ˆ" + +#~ msgid "Device:" +#~ msgstr "èš­ć‚™:" + +#~ msgid "Guvcview Video Capture" +#~ msgstr "Guvcview Video Capture" + +#, fuzzy +#~ msgid "Guvcview" +#~ msgstr "Guvcviewè­Šć‘Š:" + +#~ msgid "Image Controls" +#~ msgstr "ćœ±ćƒèš­ćźš" + +#, fuzzy +#~ msgid "Video Controls" +#~ msgstr "äœżç”šè€…èš­ćźš" + +#, fuzzy +#~ msgid "Audio Controls" +#~ msgstr "äœżç”šè€…èš­ćźš" + +#, fuzzy +#~ msgid "Photo file name" +#~ msgstr "朖片æȘ”æĄˆćçš±" + +#, fuzzy +#~ msgid "Video file name" +#~ msgstr "朖片æȘ”æĄˆćçš±" + +#~ msgid "start new" +#~ msgstr "马侊敟拕" + +#~ msgid "restart" +#~ msgstr "é‡æ–°ć•Ÿć‹•" + +#~ msgid "new" +#~ msgstr "æ–°ćąž" + +#~ msgid "cancel" +#~ msgstr "ć–æ¶ˆ" + +#~ msgid "" +#~ "launch new process or restart?.\n" +#~ "\n" +#~ msgstr "" +#~ "ć•Ÿć‹•æ–°çš„çš‹ćșæˆ–é‡æ–°ć•Ÿć‹•?\n" +#~ "\n" + +#, fuzzy +#~ msgid "video codec values" +#~ msgstr "éŸłé »ç·šçąŒć™šæ•žć€Œ" + +#~ msgid "" +#~ " encoder fps: \n" +#~ " (0 - use fps combobox value)" +#~ msgstr "" +#~ " encoder fps: \n" +#~ " (0 - use fps combobox value)" + +#~ msgid "bit rate: " +#~ msgstr "bit rate: " + +#~ msgid "qmax: " +#~ msgstr "qmax: " + +#~ msgid "qmin: " +#~ msgstr "qmin: " + +#~ msgid "max. qdiff: " +#~ msgstr "max. qdiff: " + +#~ msgid "dia size: " +#~ msgstr "dia size: " + +#~ msgid "pre dia size: " +#~ msgstr "pre dia size: " + +#~ msgid "pre me: " +#~ msgstr "pre me: " + +#~ msgid "pre cmp: " +#~ msgstr "pre cmp: " + +#~ msgid "cmp: " +#~ msgstr "cmp: " + +#~ msgid "sub cmp: " +#~ msgstr "sub cmp: " + +#~ msgid "last predictor count: " +#~ msgstr "last predictor count: " + +#~ msgid "gop size: " +#~ msgstr "gop size: " + +#~ msgid "qcompress: " +#~ msgstr "qcompress: " + +#~ msgid "qblur: " +#~ msgstr "qblur: " + +#~ msgid "subq: " +#~ msgstr "subq: " + +#~ msgid "framerefs: " +#~ msgstr "framerefs: " + +#~ msgid "me method: " +#~ msgstr "me method: " + +#~ msgid "mb decision: " +#~ msgstr "mb decision: " + +#~ msgid "audio codec values" +#~ msgstr "éŸłé »ç·šçąŒć™šæ•žć€Œ" + +#~ msgid "Left" +#~ msgstr "ć·Š" + +#~ msgid "Right" +#~ msgstr "揳" + +#~ msgid "Down" +#~ msgstr "例" + +#~ msgid "Up" +#~ msgstr "侊" + +#~ msgid "Auto Focus (continuous)" +#~ msgstr "è‡Ș拕氍焩(連çșŒ)" + +#~ msgid "set Focus" +#~ msgstr "èš­ćźšç„Šé»ž" + +#, fuzzy +#~ msgid "_Apply" +#~ msgstr "愗甚" + +#~ msgid "Frame Rate:" +#~ msgstr "ćœ±æ ŒçŽ‡" + +#~ msgid "Resolution:" +#~ msgstr "ćœ±ćƒć°ș毞:" + +#~ msgid "Camera Output:" +#~ msgstr "æ”ćœ±æ©ŸèŒžć‡ș:" + +#~ msgid "---- Video Filters ----" +#~ msgstr "---ćœ±ćƒæżŸæłąć™š---" + +#~ msgid " Mirror" +#~ msgstr " 鏡惏(æ°Žćčłçż»èœ‰)" + +#~ msgid " Invert" +#~ msgstr " ć€’çœź(ćž‚ç›Žçż»èœ‰)" + +#~ msgid " Negative" +#~ msgstr " èČ ç‰‡æ•ˆæžœ" + +#~ msgid " Mono" +#~ msgstr " 灰階" + +#~ msgid " Pieces" +#~ msgstr " éŠŹèłœć…‹" + +#~ msgid " Particles" +#~ msgstr " 顆çȒ" + +#, fuzzy +#~ msgid "Print version" +#~ msgstr "ćˆ—ć°ç‰ˆæœŹ" + +#, fuzzy +#~ msgid "Set device name (def: /dev/video0)" +#~ msgstr "äœżç”šćœ±ćƒèš­ć‚™[default: /dev/video0]" + +#, fuzzy +#~ msgid "Set capture method [read | mmap (def)]" +#~ msgstr "æ“·ć–æ–čæł•(1-mmap (default) 2-read)" + +#, fuzzy +#~ msgid "" +#~ "Guvcview version %s\n" +#~ "\n" +#~ msgstr "Guvcviewè­Šć‘Š:" + +#~ msgid "Audio" +#~ msgstr "éŸłé »" + +#~ msgid " Sound" +#~ msgstr " èČ音" + +#~ msgid "---- Audio Effects ----" +#~ msgstr "---éŸłé »æ•ˆæžœ---" + +#~ msgid "Save File" +#~ msgstr "歘æȘ”" + +#~ msgid "codec values" +#~ msgstr "ç·šè§ŁçąŒć™šçš„ć€Œ" + +#~ msgid "Cap. Video" +#~ msgstr "éŒ„ćœ±" + +#~ msgid "GUVCViewer Controls" +#~ msgstr "GUVCViewerèš­ćźš" + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to open device" +#~ msgstr "" +#~ "Guvcview 錯èȘ€:\n" +#~ "\n" +#~ "èš­ć‚™ç„Ąæł•é–‹ć•Ÿ" + +#~ msgid "" +#~ "Please make sure the camera is connected\n" +#~ "and that the correct driver is installed." +#~ msgstr "" +#~ "請çąșćźšæ”ćœ±æ©Ÿć·Čé€ŁæŽ„\n" +#~ "侔ć·Čćź‰èŁæ­Łçąșçš„é©…ć‹•çš‹ćŒ" + +#~ msgid "" +#~ "Guvcview:\n" +#~ "\n" +#~ "UVC Extension controls" +#~ msgstr "" +#~ "Guvcview:\n" +#~ "\n" +#~ "UVC ć€–æŽ›æŽ§ćˆ¶" + +#~ msgid "Extension controls were added to the UVC driver" +#~ msgstr "ć€–æŽ›æŽ§ćˆ¶ć·Čç¶“èą«æ–°ćąžćˆ°UVCé©…ć‹•çš‹ćŒäž­" + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "UVC Extension controls" +#~ msgstr "" +#~ "Guvcview 錯èȘ€:\n" +#~ "\n" +#~ "UVC ć€–æŽ›æŽ§ćˆ¶" + +#~ msgid "" +#~ "An error occurred while adding extension\n" +#~ "controls to the UVC driver\n" +#~ "Make sure you run guvcview as root (or sudo)." +#~ msgstr "" +#~ "ç•¶æ–°ćąžć€–æŽ›æ™‚æœ‰äž€ć€‹éŒŻèȘ€ç™Œç”Ÿ\n" +#~ "æŽ§ćˆ¶UVCé©…ć‹•çš‹ćŒ\n" +#~ "çąșćźšäœ æ˜Żäœżç”šroot(或sudo)äŸ†ćŸ·èĄŒguvcview" + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Can't set a valid video stream for guvcview" +#~ msgstr "" +#~ "Guvcview 錯èȘ€:\n" +#~ "\n" +#~ "䞍胜ç‚șguvcviewèš­çœźäž€ć€‹æœ‰æ•ˆèŠ–èšŠäžČæ”ć€Œ" + +#~ msgid "" +#~ "Make sure your device driver is v4l2 compliant\n" +#~ "and that it is properly installed." +#~ msgstr "" +#~ "請çąșćźšæ‚šçš„èš­ć‚™é©…ć‹•çš‹ćŒçŹŠćˆv4l2æš™æș–\n" +#~ "侔漃ć·Čèą«æ­Łçąșćź‰èŁă€‚" + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to start with minimum setup" +#~ msgstr "" +#~ "Guvcview 錯èȘ€:\n" +#~ "\n" +#~ "ç„Ąæł•ć•Ÿć‹•æœ€ć°ćź‰èŁ" + +#~ msgid "Please reconnect your camera." +#~ msgstr "è«‹é‡æ–°é€ŁæŽ„äœ çš„æ”ćœ±æ©Ÿ" + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Couldn't query device capabilities" +#~ msgstr "" +#~ "Guvcview錯èȘ€:\n" +#~ "\n" +#~ "èš­ć‚™ç„Ąæł•é–‹ć•Ÿ" + +#~ msgid "Make sure the device driver supports v4l2." +#~ msgstr "çąșćźšäœ çš„èš­ć‚™é©…ć‹•çš‹ćŒæ”ŻæŽ v4l2." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Read method error" +#~ msgstr "" +#~ "Guvcview錯èȘ€:\n" +#~ "\n" +#~ "èš­ć‚™ç„Ąæł•é–‹ć•Ÿ" + +#~ msgid "Please try mmap instead (--capture_method=1)." +#~ msgstr "è«‹è©Šè©Šmmapè€Œäžæ˜Ż(--capture_method=1)." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to allocate Buffers" +#~ msgstr "" +#~ "Guvcview錯èȘ€:\n" +#~ "\n" +#~ "èš­ć‚™ç„Ąæł•é–‹ć•Ÿ" + +#~ msgid "Please try restarting your system." +#~ msgstr "è«‹è©Šè©Šé‡æ–°ć•Ÿć‹•äœ çš„çł»ç”±." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to create Video Thread" +#~ msgstr "" +#~ "Guvcview錯èȘ€:\n" +#~ "\n" +#~ "èš­ć‚™ç„Ąæł•é–‹ć•Ÿ" + +#~ msgid "Please report it to http://developer.berlios.de/bugs/?group_id=8179" +#~ msgstr "è«‹ć›žć ±ćˆ°http://developer.berlios.de/bugs/?group_id=8179" + +#~ msgid "Displays debug information" +#~ msgstr "饯ç€șdebugèšŠæŻ" + +#~ msgid "Exit after adding UVC extension controls (needs root/sudo)" +#~ msgstr "ćœšæ–°ćąžć€–æŽ›æŽ§ćˆ¶ćŸŒé›ąé–‹(éœ€èŠäœżç”šroot/sudo)" + +#~ msgid "Don't stream video (image controls only)" +#~ msgstr "䞍胜äžČæ”ćœ±ćƒ(ćȘèƒœæŽ§ćˆ¶ćœ–ç‰‡)" + +#~ msgid "Configuration file" +#~ msgstr "èš­çœźæȘ”æĄˆ" + +#~ msgid "Hardware accelaration (enable(1) | disable(0))" +#~ msgstr "çĄŹé«”ćŠ é€Ÿ(敟甹(1) | 恜甹(0))" + +#~ msgid "Frame size, default: 640x480" +#~ msgstr "ćœ±æ Œć°ș毞,é èš­ć€Œ:640x480" + +#~ msgid "Image capture interval in seconds" +#~ msgstr "ćœ–ç‰‡æ“·ć–é–“éš”ç§’æ•ž" + +#~ msgid "Number of Pictures to capture" +#~ msgstr "ćœ–ç‰‡æ“·ć–æ•ž" + +#~ msgid "Video File name (capture from start)" +#~ msgstr "ćœ±ćƒæȘ”æĄˆćçš±(ćŸžé–‹ć§‹æ“·ć–)" + +#~ msgid "Video capture time (in seconds)" +#~ msgstr "ćœ±ćƒæ“·ć–æ™‚é–“(秒敞)" + +#~ msgid "Exits guvcview after closing video" +#~ msgstr "ćœšé—œæŽ‰ćœ±ćƒćŸŒé›ąé–‹guvcview" + +#~ msgid "Number of initial frames to skip" +#~ msgstr "è·łéŽçš„ćˆć§‹ćœ±æ Œæ•ž" + +#~ msgid "Show FPS value (enable(1) | disable (0))" +#~ msgstr "饯ç€șFPSć€Œ(敟甹(1) | 恜甹 (0))" + +#~ msgid "Load Profile at start" +#~ msgstr "ćœšć•Ÿć‹•æ™‚èź€ć–ć°ˆæĄˆ" + +#~ msgid "- local options" +#~ msgstr "-æœŹćœ°éžé …" + +#~ msgid "Cap. Image" +#~ msgstr "拍照" + +#~ msgid "Not enough free space left on disk" +#~ msgstr "朹硬籟侊æČ’æœ‰è¶łć€ çš„ć‰©é€˜ç©ș間" + +#~ msgid "YUY2 - uncomp YUV" +#~ msgstr "YUY2 - uncomp YUV" + +#~ msgid "RGB - uncomp BMP" +#~ msgstr "RGB - uncomp BMP" + +#~ msgid " Show" +#~ msgstr " 饯ç€ș" + +#~ msgid "Quality:" +#~ msgstr "擁èłȘ:" diff -Nru guvcview-1.7.3/po/he.po guvcview-2.0.1+ubuntu1~ppa1/po/he.po --- guvcview-1.7.3/po/he.po 2014-03-24 22:56:28.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/po/he.po 2014-10-05 10:41:44.000000000 +0000 @@ -7,1400 +7,1534 @@ msgstr "" "Project-Id-Version: guvcview\n" "Report-Msgid-Bugs-To: pj.assis@gmail.com\n" -"POT-Creation-Date: 2013-11-14 22:15+0000\n" +"POT-Creation-Date: 2014-08-17 22:49+0100\n" "PO-Revision-Date: 2013-02-25 05:36+0000\n" "Last-Translator: Paulo Assis \n" "Language-Team: Hebrew \n" +"Language: he\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-12-08 10:36+0000\n" -"X-Generator: Launchpad (build 16869)\n" -"Language: he\n" - -#: ../data/guvcview.desktop.in.in.h:1 -msgid "guvcview" -msgstr "" - -#: ../data/guvcview.desktop.in.in.h:2 -msgid "GTK UVC video viewer" -msgstr "" - -#: ../data/guvcview.desktop.in.in.h:3 -msgid "A video viewer and capturer for the linux uvc driver" -msgstr "" - -#: ../src/acodecs.c:59 -msgid "PCM - uncompressed (16 bit)" -msgstr "" - -#: ../src/acodecs.c:76 -msgid "MPEG2 - (lavc)" -msgstr "" - -#: ../src/acodecs.c:93 -msgid "MP3 - (lavc)" -msgstr "" - -#: ../src/acodecs.c:110 -msgid "Dolby AC3 - (lavc)" -msgstr "" - -#: ../src/acodecs.c:127 -msgid "ACC Low - (faac)" -msgstr "" - -#: ../src/acodecs.c:144 -msgid "Vorbis" -msgstr "" - -#: ../src/audio_tab.c:87 -msgid "Audio" -msgstr "Ś©ŚžŚą" - -#: ../src/audio_tab.c:105 -msgid " Sound" -msgstr " Ś§Ś•Śœ" - -#. VU meter on the image (OSD) -#: ../src/audio_tab.c:116 -msgid " Show VU meter" -msgstr "" - -#: ../src/audio_tab.c:128 -msgid "Audio API:" -msgstr "" - -#: ../src/audio_tab.c:139 -msgid "PORTAUDIO" -msgstr "" - -#: ../src/audio_tab.c:140 -msgid "PULSEAUDIO" -msgstr "PULSEAUDIO" - -#: ../src/audio_tab.c:156 ../src/audio_tab.c:179 -msgid "Input Device:" -msgstr "" - -#: ../src/audio_tab.c:189 ../src/audio_tab.c:221 -msgid "Dev. Default" -msgstr "" - -#: ../src/audio_tab.c:211 -msgid "Sample Rate:" -msgstr "Ś§ŚŠŚ‘ Ś“Ś’Ś™ŚžŚ”" - -#: ../src/audio_tab.c:222 -msgid "1 - mono" -msgstr "1 - ŚžŚ•Ś Ś•" - -#: ../src/audio_tab.c:223 -msgid "2 - stereo" -msgstr "2 - ŚĄŚ˜ŚšŚ™ŚŚ•" - -#: ../src/audio_tab.c:258 -msgid "Channels:" -msgstr "ŚąŚšŚ•ŚŠŚ™Ś:" - -#: ../src/audio_tab.c:309 -msgid "---- Audio Effects ----" -msgstr "--- ŚŚ€Ś§Ś˜Ś™Ś Ś§Ś•ŚœŚ™Ś™Ś ---" - -#. Echo -#: ../src/audio_tab.c:328 -msgid " Echo" -msgstr " Ś”Ś“" - -#. FUZZ -#: ../src/audio_tab.c:339 -msgid " Fuzz" -msgstr "" - -#. Reverb -#: ../src/audio_tab.c:351 -msgid " Reverb" -msgstr "" - -#. WahWah -#: ../src/audio_tab.c:363 -msgid " WahWah" -msgstr "" - -#. Ducky -#: ../src/audio_tab.c:375 -msgid " Ducky" -msgstr "" - -#: ../src/callbacks.c:109 -msgid "Error" -msgstr "" - -#: ../src/callbacks.c:133 -msgid "" -"\n" -"You have more than one video device installed.\n" -"Do you want to try another one ?\n" -msgstr "" - -#. Devices -#: ../src/callbacks.c:140 ../src/video_tab.c:111 -msgid "Device:" -msgstr "Ś”ŚȘŚ§ŚŸ:" - -#: ../src/callbacks.c:272 -msgid "Save File" -msgstr "Ś©ŚžŚ•Śš Ś§Ś•Ś‘Ś„" - -#: ../src/callbacks.c:284 -msgid "File Format:" -msgstr "" - -#: ../src/callbacks.c:455 -msgid "codec values" -msgstr "ŚąŚšŚ›Ś™ ŚžŚ§Ś•Ś“Ś“" - -#: ../src/callbacks.c:466 -msgid "" -" encoder fps: \n" -" (0 - use fps combobox value)" -msgstr "" - -#: ../src/callbacks.c:479 -msgid " monotonic pts" -msgstr "" - -#. bit rate -#: ../src/callbacks.c:486 ../src/callbacks.c:809 -msgid "bit rate: " -msgstr "Ś§ŚŠŚ‘ ŚĄŚ™Ś‘Ś™Ś•ŚȘ: " - -#: ../src/callbacks.c:499 -msgid "qmax: " -msgstr "" - -#: ../src/callbacks.c:512 -msgid "qmin: " -msgstr "" - -#: ../src/callbacks.c:525 -msgid "max. qdiff: " -msgstr "" - -#: ../src/callbacks.c:538 -msgid "dia size: " -msgstr "" - -#: ../src/callbacks.c:551 -msgid "pre dia size: " -msgstr "" - -#: ../src/callbacks.c:564 -msgid "pre me: " -msgstr "" - -#: ../src/callbacks.c:577 -msgid "pre cmp: " -msgstr "" - -#: ../src/callbacks.c:590 -msgid "cmp: " -msgstr "" - -#: ../src/callbacks.c:603 -msgid "sub cmp: " -msgstr "" - -#: ../src/callbacks.c:616 -msgid "last predictor count: " -msgstr "" - -#: ../src/callbacks.c:629 -msgid "gop size: " -msgstr "" - -#: ../src/callbacks.c:642 -msgid "qcompress: " -msgstr "" - -#: ../src/callbacks.c:655 -msgid "qblur: " -msgstr "" - -#: ../src/callbacks.c:668 -msgid "subq: " -msgstr "" - -#: ../src/callbacks.c:681 -msgid "framerefs: " -msgstr "" - -#: ../src/callbacks.c:694 -msgid "me method: " -msgstr "" - -#: ../src/callbacks.c:707 -msgid "mb decision: " -msgstr "" - -#: ../src/callbacks.c:720 -msgid "max B frames: " -msgstr "" - -#: ../src/callbacks.c:733 -msgid "num threads: " -msgstr "" - -#: ../src/callbacks.c:796 -msgid "audio codec values" -msgstr "" - -#. sample format -#: ../src/callbacks.c:823 -msgid "sample format: " -msgstr "" - -#: ../src/callbacks.c:1311 -msgid "start new" -msgstr "Ś”Ś€ŚąŚœ ŚąŚ›Ś©Ś™Ś•" - -#: ../src/callbacks.c:1314 -msgid "restart" -msgstr "Ś”Ś€ŚąŚœ ŚžŚ—Ś“Ś©" - -#: ../src/callbacks.c:1316 -msgid "new" -msgstr "Ś—Ś“Ś©" - -#: ../src/callbacks.c:1318 -msgid "cancel" -msgstr "Ś‘Ś˜Śœ" - -#: ../src/callbacks.c:1323 -msgid "" -"launch new process or restart?.\n" -"\n" -msgstr "" -"Ś”Ś€ŚąŚœ ŚȘŚ”ŚœŚ™Śš Ś—Ś“Ś© ŚŚ• Ś”Ś€ŚąŚœ ŚžŚ—Ś“Ś©?.\n" -"\n" - -#: ../src/callbacks.c:1780 ../src/guvcview.c:565 -msgid "Cap. Image (I)" -msgstr "" - -#. disable image controls -#: ../src/callbacks.c:1791 ../src/guvcview.c:690 ../src/timers.c:101 -msgid "capturing photo to" -msgstr "" - -#: ../src/callbacks.c:1850 ../src/guvcview.c:575 -msgid "Cap. Video (V)" -msgstr "" - -#: ../src/callbacks.c:1876 ../src/guvcview.c:740 -msgid "capturing video to" -msgstr "" - -#. vid capture enabled from start -#: ../src/callbacks.c:1911 ../src/guvcview.c:570 -msgid "Stop Video (V)" -msgstr "" - -#: ../src/callbacks.c:1967 ../src/menubar.c:66 -msgid "Save Profile" -msgstr "" - -#: ../src/callbacks.c:1980 ../src/menubar.c:65 -msgid "Load Profile" -msgstr "" - -#: ../src/create_video.c:1098 ../src/guvcview.c:732 -msgid "Cap. Video" -msgstr "ŚœŚ›Ś“ Ś•Ś™Ś“ŚŚ•" - -#: ../src/guvcview.c:280 -msgid "Guvcview Video Capture" -msgstr "" - -#: ../src/guvcview.c:292 -msgid "GUVCViewer Controls" -msgstr "Ś€Ś§Ś“Ś™ GUVCViewer" - -#. can't open device -#: ../src/guvcview.c:342 -msgid "" -"Guvcview error:\n" -"\n" -"Unable to open device" -msgstr "" -"Ś©Ś’Ś™ŚŚ” Ś‘Guvcview:\n" -"\n" -"ŚœŚ Ś™Ś›Ś•Śœ ŚœŚ€ŚȘŚ•Ś— Ś”ŚȘŚ§ŚŸ" - -#: ../src/guvcview.c:343 -msgid "" -"Please make sure the camera is connected\n" -"and that the correct driver is installed." -msgstr "" -"ŚŚ Ś Ś•Ś•Ś“Ś Ś©Ś”ŚžŚŠŚœŚžŚ” ŚžŚ—Ś•Ś‘ŚšŚȘ\n" -"Ś•Ś©ŚžŚ Ś”Śœ Ś”Ś”ŚȘŚ§ŚŸ Ś”Ś Ś›Ś•ŚŸ ŚžŚ•ŚȘŚ§ŚŸ." - -#. uvc extension controls OK, give warning and shutdown (called with --add_ctrls) -#: ../src/guvcview.c:348 -msgid "" -"Guvcview:\n" -"\n" -"UVC Extension controls" -msgstr "" - -#: ../src/guvcview.c:349 -msgid "Extension controls were added to the UVC driver" -msgstr "" - -#. uvc extension controls error - EACCES (needs root user) -#: ../src/guvcview.c:356 -msgid "" -"Guvcview error:\n" -"\n" -"UVC Extension controls" -msgstr "" - -#: ../src/guvcview.c:357 -msgid "" -"An error occurred while adding extension\n" -"controls to the UVC driver\n" -"Make sure you run guvcview as root (or sudo)." -msgstr "" - -#: ../src/guvcview.c:391 ../src/guvcview.c:399 ../src/guvcview.c:477 -msgid "" -"Guvcview error:\n" -"\n" -"Can't set a valid video stream for guvcview" -msgstr "" -"Ś©Ś’Ś™ŚŚ” Ś‘Guvcview:\n" -"\n" -"ŚœŚ Ś™Ś›Ś•Śœ ŚœŚ”Ś’Ś“Ś™Śš Ś–ŚšŚ™ŚžŚȘ Ś•Ś™Ś“ŚŚ• ŚȘŚ§Ś€Ś” Śœguvcview" - -#: ../src/guvcview.c:392 ../src/guvcview.c:400 ../src/guvcview.c:478 -msgid "" -"Make sure your device driver is v4l2 compliant\n" -"and that it is properly installed." -msgstr "" -"Ś•Ś•Ś“Ś Ś©ŚžŚ Ś”Śœ Ś”Ś”ŚȘŚ§ŚŸ Ś©ŚœŚš ŚȘŚ•ŚŚ v4l2\n" -"Ś•Ś©Ś”Ś•Ś ŚžŚ•ŚȘŚ§ŚŸ Ś›Ś”ŚœŚ›Ś”." - -#: ../src/guvcview.c:422 ../src/guvcview.c:444 -msgid "" -"Guvcview error:\n" -"\n" -"Unable to start with minimum setup" -msgstr "" -"Ś©Ś’Ś™ŚŚ” Ś‘Guvcview:\n" -"\n" -"ŚœŚ Ś Ś™ŚȘŚŸ ŚœŚ”ŚȘŚ—Ś™Śœ ŚąŚ Ś”ŚȘŚ§Ś Ś” ŚžŚ™Ś Ś™ŚžŚŚœŚ™ŚȘ" - -#: ../src/guvcview.c:423 ../src/guvcview.c:445 -msgid "Please reconnect your camera." -msgstr "ŚŚ Ś Ś—Ś‘Śš ŚžŚ—Ś“Ś© ŚŚȘ Ś”ŚžŚŠŚœŚžŚ”." - -#: ../src/guvcview.c:452 -msgid "" -"Guvcview error:\n" -"\n" -"Couldn't query device capabilities" -msgstr "" -"Ś©Ś’Ś™ŚŚ” Ś‘Guvcview:\n" -"\n" -"ŚœŚ Ś Ś™ŚȘŚŸ ŚœŚ‘Ś“Ś•Ś§ ŚŚȘ Ś™Ś›Ś•ŚœŚ•ŚȘ Ś”Ś”ŚȘŚ§ŚŸ" - -#: ../src/guvcview.c:453 -msgid "Make sure the device driver supports v4l2." -msgstr "Ś•Ś•Ś“Ś Ś©ŚžŚ Ś”Śœ Ś”Ś”ŚȘŚ§ŚŸ Ś©ŚœŚš ŚȘŚ•ŚŚ v4l2." - -#: ../src/guvcview.c:457 -msgid "" -"Guvcview error:\n" -"\n" -"Read method error" -msgstr "" -"Ś©Ś’Ś™ŚŚ” Ś‘Guvcview:\n" -"\n" -"Ś§ŚšŚ Ś©Ś’Ś™ŚŚȘ Ś©Ś™Ś˜Ś”" - -#: ../src/guvcview.c:458 -msgid "Please try mmap instead (--capture_method=1)." -msgstr "Ś ŚĄŚ” ŚŚȘ mmap Ś‘ŚžŚ§Ś•Ś (--capture_method=1)." - -#: ../src/guvcview.c:466 -msgid "" -"Guvcview error:\n" -"\n" -"Unable to allocate Buffers" -msgstr "" -"Ś©Ś’Ś™ŚŚ” Ś‘Guvcview:\n" -"\n" -"ŚœŚ Ś Ś™ŚȘŚŸ ŚœŚ”Ś§ŚŠŚ•ŚȘ Ś—Ś•ŚŠŚ„" - -#: ../src/guvcview.c:467 -msgid "Please try restarting your system." -msgstr "Ś ŚĄŚ” ŚœŚŚȘŚ—Śœ ŚŚȘ Ś”ŚžŚąŚšŚ›ŚȘ." - -#: ../src/guvcview.c:518 -msgid "Image Controls" -msgstr "Ś€Ś§Ś“Ś™ ŚȘŚžŚ•Ś Ś”" - -#. image auto capture -#: ../src/guvcview.c:561 -msgid "Stop Auto (I)" -msgstr "" - -#: ../src/guvcview.c:676 -msgid "" -"Guvcview error:\n" -"\n" -"Unable to create Video Thread" -msgstr "" -"Ś©Ś’Ś™ŚŚ” Ś‘Guvcview:\n" -"\n" -"ŚœŚ Ś™Ś›Ś•Śœ ŚœŚ™ŚŠŚ•Śš Ś©ŚšŚ©Ś•Śš Ś•Ś™Ś“ŚŚ•" - -#: ../src/guvcview.c:677 -msgid "Please report it to http://developer.berlios.de/bugs/?group_id=8179" -msgstr "Ś“Ś•Ś•Ś— ŚąŚœ Ś›Śš Śœhttp://developer.berlios.de/bugs/?group_id=8179" - -#: ../src/img_controls.c:121 -msgid "Auto Focus (continuous)" -msgstr "ŚžŚ™Ś§Ś•Ś“ ŚŚ•Ś˜Ś•ŚžŚ˜Ś™ (ŚžŚȘŚžŚ©Śš)" - -#: ../src/img_controls.c:122 -msgid "set Focus" -msgstr "Ś”Ś’Ś“Śš ŚžŚ™Ś§Ś•Ś“" - -#: ../src/image_format.c:35 -msgid "Jpeg (jpg)" -msgstr "" - -#: ../src/image_format.c:41 -msgid "Bitmap (Bmp)" -msgstr "" - -#: ../src/image_format.c:47 -msgid "Portable Network Graphics (Png)" -msgstr "" - -#: ../src/image_format.c:53 -msgid "Raw Image (raw)" -msgstr "" - -#. controls menu -#: ../src/menubar.c:64 -msgid "Settings" -msgstr "" - -#: ../src/menubar.c:67 -msgid "Hardware Defaults" -msgstr "" - -#: ../src/menubar.c:75 -msgid "Camera Button" -msgstr "" - -#: ../src/menubar.c:79 -msgid "Capture Image" -msgstr "" - -#: ../src/menubar.c:84 -msgid "Capture Video" -msgstr "" - -#. video menu -#: ../src/menubar.c:144 ../src/video_tab.c:95 -msgid "Video" -msgstr "" - -#: ../src/menubar.c:145 ../src/menubar.c:233 -msgid "File" -msgstr "" - -#: ../src/menubar.c:146 ../src/menubar.c:234 -msgid "Increment Filename" -msgstr "" - -#: ../src/menubar.c:164 -msgid "Video Codec" -msgstr "" - -#: ../src/menubar.c:189 -msgid "Video Codec Properties" -msgstr "" - -#: ../src/menubar.c:196 -msgid "Audio Codec" -msgstr "" - -#: ../src/menubar.c:217 -msgid "Audio Codec Properties" -msgstr "" - -#. photo menu -#: ../src/menubar.c:232 -msgid "Photo" -msgstr "" - -#: ../src/options.c:753 -msgid "Prints version" -msgstr "ŚžŚ“Ś€Ś™ŚĄ Ś’ŚšŚĄŚ”" - -#: ../src/options.c:754 -msgid "Displays debug information" -msgstr "" - -#: ../src/options.c:755 -msgid "Video Device to use [default: /dev/video0]" -msgstr "Ś”ŚȘŚ§ŚŸ Ś•Ś™Ś“ŚŚ• ŚœŚ©Ś™ŚžŚ•Ś© [Ś‘ŚšŚ™ŚšŚȘ ŚžŚ—Ś“Śœ:/dev/video0]" - -#: ../src/options.c:756 -msgid "Exit after adding UVC extension controls (needs root/sudo)" -msgstr "" - -#: ../src/options.c:757 -msgid "Don't stream video (image controls only)" -msgstr "" - -#: ../src/options.c:758 -msgid "Don't display a GUI" -msgstr "" - -#: ../src/options.c:759 -msgid "Capture method (1-mmap (default) 2-read)" -msgstr "" - -#: ../src/options.c:760 -msgid "Configuration file" -msgstr "Ś§Ś•Ś‘Ś„ Ś”Ś’Ś“ŚšŚ•ŚȘ" - -#: ../src/options.c:761 -msgid "Hardware accelaration (enable(1) | disable(0))" -msgstr "Ś”ŚŚŠŚȘ Ś—Ś•ŚžŚšŚ” (Ś€ŚąŚ™Śœ(1) | ŚžŚ Ś•Ś˜ŚšŚœ(0))" - -#: ../src/options.c:762 -msgid "" -"Pixel " -"format(mjpg|jpeg|yuyv|yvyu|uyvy|yyuv|yu12|yv12|nv12|nv21|nv16|nv61|y41p|grey|" -"y10b|y16 |s501|s505|s508|gbrg|grbg|ba81|rggb|bgr3|rgb3)" -msgstr "" - -#: ../src/options.c:763 -msgid "Frame size, default: 640x480" -msgstr "Ś’Ś•Ś“Śœ Ś€ŚšŚ™Ś™Ś, Ś‘ŚšŚ™ŚšŚȘ ŚžŚ—Ś“Śœ: 640x480" - -#: ../src/options.c:764 -msgid "Image File name" -msgstr "Ś©Ś Ś§Ś•Ś‘Ś„ ŚȘŚžŚ•Ś Ś”" - -#: ../src/options.c:765 -msgid "Image capture interval in seconds" -msgstr "" - -#: ../src/options.c:766 -msgid "Number of Pictures to capture" -msgstr "ŚžŚĄŚ€Śš ŚȘŚžŚ•Ś Ś•ŚȘ ŚœŚœŚ›Ś™Ś“Ś”" - -#: ../src/options.c:767 -msgid "Video File name (capture from start)" -msgstr "Ś©Ś Ś§Ś•Ś‘Ś„ Ś•Ś™Ś“ŚŚ• (ŚœŚ•Ś›Ś“ ŚžŚ”Ś”ŚȘŚ—ŚœŚ”)" - -#: ../src/options.c:768 -msgid "Video capture time (in seconds)" -msgstr "Ś–ŚžŚŸ ŚœŚ›Ś™Ś“ŚȘ Ś•Ś™Ś“ŚŚ• (Ś‘Ś©Ś Ś™Ś•ŚȘ)" - -#: ../src/options.c:769 -msgid "Exits guvcview after closing video" -msgstr "Ś™Ś•ŚŠŚ Śžguvcview ŚŚ—ŚšŚ™ ŚĄŚ’Ś™ŚšŚȘ Ś•Ś™Ś“ŚŚ•" - -#: ../src/options.c:770 -msgid "Number of initial frames to skip" -msgstr "" - -#: ../src/options.c:771 -msgid "Show FPS value (enable(1) | disable (0))" -msgstr "ŚžŚšŚŚ” ŚąŚšŚš Ś€ŚšŚ™Ś™ŚžŚ™Ś ŚœŚ©Ś Ś™Ś” (FPS) (Ś€ŚąŚ™Śœ(1) | ŚžŚ Ś•Ś˜ŚšŚœ(2))" - -#: ../src/options.c:772 -msgid "Load Profile at start" -msgstr "Ś˜ŚąŚŸ Ś€ŚšŚ•Ś€Ś™Śœ Ś‘Ś”Ś€ŚąŚœŚ”" - -#: ../src/options.c:773 -msgid "List controls method (0:loop, 1:next_ctrl flag [def])" -msgstr "" - -#: ../src/options.c:779 -msgid "- local options" -msgstr "- ŚŚ€Ś©ŚšŚ•Ś™Ś•ŚȘ ŚžŚ§Ś•ŚžŚ™Ś•ŚȘ" - -#. gdk_threads_enter(); -#: ../src/timers.c:119 -msgid "Cap. Image" -msgstr "ŚœŚ›Ś“ ŚȘŚžŚ•Ś Ś”" - -#: ../src/timers.c:217 -msgid "Guvcview Warning:" -msgstr "" - -#: ../src/timers.c:217 -msgid "Not enough free space left on disk" -msgstr "" - -#: ../src/v4l2_controls.c:794 -msgid "Left" -msgstr "Ś©ŚžŚŚœ" - -#: ../src/v4l2_controls.c:795 -msgid "Right" -msgstr "Ś™ŚžŚ™ŚŸ" - -#: ../src/v4l2_controls.c:799 -msgid "Down" -msgstr "ŚœŚžŚ˜Ś”" - -#: ../src/v4l2_controls.c:800 -msgid "Up" -msgstr "ŚœŚžŚąŚœŚ”" - -#: ../src/v4l2_controls.c:845 -msgid "Off" -msgstr "" - -#: ../src/v4l2_controls.c:845 -msgid "On" -msgstr "" - -#: ../src/v4l2_controls.c:845 -msgid "Blinking" -msgstr "" - -#: ../src/v4l2_controls.c:845 -msgid "Auto" -msgstr "" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2013-12-08 10:36+0000\n" +"X-Generator: Launchpad (build 16869)\n" -#. turn it into a menu control -#: ../src/v4l2_controls.c:894 -msgid "8 bit" +#: ../data/guvcview.desktop.in.in.h:1 +msgid "guvcview" msgstr "" -#: ../src/v4l2_controls.c:894 -msgid "12 bit" +#: ../data/guvcview.desktop.in.in.h:2 +msgid "GTK UVC video viewer" msgstr "" -#: ../src/v4l2_dyna_ctrls.c:96 -msgid "Pan (relative)" +#: ../data/guvcview.desktop.in.in.h:3 +msgid "A video viewer and capturer for the linux uvc driver" msgstr "" -#: ../src/v4l2_dyna_ctrls.c:109 -msgid "Tilt (relative)" -msgstr "Ś”Ś˜Ś™Ś™Ś” (Ś™Ś—ŚĄŚ™)" - -#: ../src/v4l2_dyna_ctrls.c:122 -msgid "Pan Reset" +#: ../data/guvcview.appdata.xml.in.in.h:1 +msgid "capture video from v4l2 devices" msgstr "" -#: ../src/v4l2_dyna_ctrls.c:135 -msgid "Tilt Reset" -msgstr "ŚŚ™Ś€Ś•ŚĄ Ś”Ś˜Ś™Ś™Ś”" - -#: ../src/v4l2_dyna_ctrls.c:148 -msgid "Focus (absolute)" -msgstr "ŚžŚ™Ś§Ś•Ś“ (ŚžŚ•Ś—ŚœŚ˜)" - -#: ../src/v4l2_dyna_ctrls.c:161 -msgid "LED1 Mode" -msgstr "ŚžŚŠŚ‘ LED1" - -#: ../src/v4l2_dyna_ctrls.c:174 -msgid "LED1 Frequency" -msgstr "ŚȘŚ“Śš LED1" - -#: ../src/v4l2_dyna_ctrls.c:187 -msgid "Disable video processing" -msgstr "Ś‘Ś˜Śœ ŚąŚ™Ś‘Ś•Ś“ Ś•Ś™Ś“ŚŚ•" - -#: ../src/v4l2_dyna_ctrls.c:200 -msgid "Raw bits per pixel" +#: ../data/guvcview.appdata.xml.in.in.h:2 +msgid "" +"Video capture tool for video4linux2 compliant cameras, with special emphasis " +"on the linux uvc driver. It provides Image (jpg, png, bmp) and Video (mjpeg, " +"flv1, wmv1, mpg2, mpg4,...) capture with sound in several " +"formats( currently: avi and matroska). I also supports a control panel " +"option (--control_only) that is compatible with any other v4l2 app." msgstr "" -#. needed only for language files (not used) +#. +#. * needed only for language files (not used) +#. #. V4L2 control strings -#: ../src/v4l2uvc.c:57 +#: ../gview_v4l2core/v4l2_controls.c:49 msgid "User Controls" msgstr "Ś€Ś§Ś“Ś™ ŚžŚ©ŚȘŚžŚ©" -#: ../src/v4l2uvc.c:58 +#: ../gview_v4l2core/v4l2_controls.c:50 msgid "Brightness" msgstr "Ś‘Ś”Ś™ŚšŚ•ŚȘ" -#: ../src/v4l2uvc.c:59 +#: ../gview_v4l2core/v4l2_controls.c:51 msgid "Contrast" msgstr "Ś Ś™Ś’Ś•Ś“Ś™Ś•ŚȘ" -#: ../src/v4l2uvc.c:60 +#: ../gview_v4l2core/v4l2_controls.c:52 msgid "Hue" msgstr "Ś’Ś•Ś•ŚŸ" -#: ../src/v4l2uvc.c:61 +#: ../gview_v4l2core/v4l2_controls.c:53 msgid "Saturation" msgstr "ŚšŚ•Ś•Ś™Ś”" -#: ../src/v4l2uvc.c:62 +#: ../gview_v4l2core/v4l2_controls.c:54 msgid "Sharpness" msgstr "Ś—Ś“Ś•ŚȘ" -#: ../src/v4l2uvc.c:63 +#: ../gview_v4l2core/v4l2_controls.c:55 msgid "Gamma" msgstr "Ś’ŚŚžŚ”" -#: ../src/v4l2uvc.c:64 +#: ../gview_v4l2core/v4l2_controls.c:56 msgid "Backlight Compensation" msgstr "Ś€Ś™ŚŠŚ•Ś™ ŚŚ•Śš ŚŚ—Ś•ŚšŚ™" -#: ../src/v4l2uvc.c:65 +#: ../gview_v4l2core/v4l2_controls.c:57 msgid "Power Line Frequency" msgstr "ŚȘŚ“Śš Ś—Ś©ŚžŚœ" -#: ../src/v4l2uvc.c:66 +#: ../gview_v4l2core/v4l2_controls.c:58 msgid "Hue, Automatic" msgstr "Ś’Ś•Ś•ŚŸ, ŚŚ•Ś˜Ś•ŚžŚ˜Ś™" -#: ../src/v4l2uvc.c:67 +#: ../gview_v4l2core/v4l2_controls.c:59 msgid "Focus, Auto" msgstr "ŚžŚ™Ś§Ś•Ś“, ŚŚ•Ś˜Ś•ŚžŚ˜Ś™" -#: ../src/v4l2uvc.c:68 +#: ../gview_v4l2core/v4l2_controls.c:60 msgid "Manual Mode" msgstr "ŚžŚŠŚ‘ Ś™Ś“Ś Ś™" -#: ../src/v4l2uvc.c:69 +#: ../gview_v4l2core/v4l2_controls.c:61 msgid "Auto Mode" msgstr "ŚžŚŠŚ‘ ŚŚ•Ś˜Ś•ŚžŚ˜Ś™" -#: ../src/v4l2uvc.c:70 +#: ../gview_v4l2core/v4l2_controls.c:62 msgid "Shutter Priority Mode" msgstr "ŚžŚŠŚ‘ ŚąŚ“Ś™Ś€Ś•ŚȘ ŚŠŚžŚŠŚ" -#: ../src/v4l2uvc.c:71 +#: ../gview_v4l2core/v4l2_controls.c:63 msgid "Aperture Priority Mode" msgstr "" -#: ../src/v4l2uvc.c:72 +#: ../gview_v4l2core/v4l2_controls.c:64 msgid "Black Level" msgstr "ŚšŚžŚȘ Ś©Ś—Ś•Śš" -#: ../src/v4l2uvc.c:73 +#: ../gview_v4l2core/v4l2_controls.c:65 msgid "White Balance, Automatic" msgstr "ŚŚ™Ś–Ś•ŚŸ ŚœŚ•Ś‘ŚŸ, ŚŚ•Ś˜Ś•ŚžŚ˜Ś™" -#: ../src/v4l2uvc.c:74 +#: ../gview_v4l2core/v4l2_controls.c:66 msgid "Do White Balance" msgstr "" -#: ../src/v4l2uvc.c:75 +#: ../gview_v4l2core/v4l2_controls.c:67 msgid "Red Balance" msgstr "ŚŚ™Ś–Ś•ŚŸ Ś”ŚŚ“Ś•Ś" -#: ../src/v4l2uvc.c:76 +#: ../gview_v4l2core/v4l2_controls.c:68 msgid "Blue Balance" msgstr "ŚŚ™Ś–Ś•ŚŸ Ś”Ś›Ś—Ś•Śœ" -#: ../src/v4l2uvc.c:77 +#: ../gview_v4l2core/v4l2_controls.c:69 msgid "Exposure" msgstr "Ś—Ś©Ś™Ś€Ś”" -#: ../src/v4l2uvc.c:78 +#: ../gview_v4l2core/v4l2_controls.c:70 msgid "Gain, Automatic" msgstr "ŚžŚšŚ•Ś•Ś—, ŚŚ•Ś˜Ś•ŚžŚ˜Ś™" -#: ../src/v4l2uvc.c:79 +#: ../gview_v4l2core/v4l2_controls.c:71 msgid "Gain" msgstr "Ś”Ś™Ś©Ś’" -#: ../src/v4l2uvc.c:80 +#: ../gview_v4l2core/v4l2_controls.c:72 msgid "Horizontal Flip" msgstr "Ś”Ś™Ś€Ś•Śš ŚŚ•Ś€Ś§Ś™" -#: ../src/v4l2uvc.c:81 +#: ../gview_v4l2core/v4l2_controls.c:73 msgid "Vertical Flip" msgstr "Ś”Ś™Ś€Ś•Śš ŚŚ Ś›Ś™" -#: ../src/v4l2uvc.c:82 +#: ../gview_v4l2core/v4l2_controls.c:74 msgid "Horizontal Center" msgstr "ŚžŚšŚ›Ś– ŚŚ•Ś€Ś§Ś™" -#: ../src/v4l2uvc.c:83 +#: ../gview_v4l2core/v4l2_controls.c:75 msgid "Vertical Center" msgstr "ŚžŚšŚ›Ś– ŚŚ Ś›Ś™" -#: ../src/v4l2uvc.c:84 +#: ../gview_v4l2core/v4l2_controls.c:76 msgid "Chroma AGC" msgstr "" -#: ../src/v4l2uvc.c:85 +#: ../gview_v4l2core/v4l2_controls.c:77 msgid "Color Killer" msgstr "" -#: ../src/v4l2uvc.c:86 +#: ../gview_v4l2core/v4l2_controls.c:78 msgid "Color Effects" msgstr "" #. CAMERA CLASS control strings -#: ../src/v4l2uvc.c:89 +#: ../gview_v4l2core/v4l2_controls.c:81 msgid "Camera Controls" msgstr "Ś€Ś§Ś“Ś™ ŚžŚŠŚœŚžŚ”" -#: ../src/v4l2uvc.c:90 +#: ../gview_v4l2core/v4l2_controls.c:82 msgid "Auto Exposure" msgstr "Ś—Ś©Ś™Ś€Ś” ŚŚ•Ś˜Ś•ŚžŚ˜Ś™ŚȘ" -#: ../src/v4l2uvc.c:91 +#: ../gview_v4l2core/v4l2_controls.c:83 msgid "Exposure Time, Absolute" msgstr "Ś–ŚžŚŸ Ś—Ś©Ś™Ś€Ś”, ŚžŚ•Ś—ŚœŚ˜" -#: ../src/v4l2uvc.c:92 +#: ../gview_v4l2core/v4l2_controls.c:84 msgid "Exposure, Dynamic Framerate" msgstr "" -#: ../src/v4l2uvc.c:93 +#: ../gview_v4l2core/v4l2_controls.c:85 msgid "Pan, Relative" msgstr "" -#: ../src/v4l2uvc.c:94 +#: ../gview_v4l2core/v4l2_controls.c:86 msgid "Tilt, Relative" msgstr "Ś Ś˜Ś™Ś™Ś”, Ś™Ś—ŚĄŚ™" -#: ../src/v4l2uvc.c:95 +#: ../gview_v4l2core/v4l2_controls.c:87 msgid "Pan, Reset" msgstr "" -#: ../src/v4l2uvc.c:96 +#: ../gview_v4l2core/v4l2_controls.c:88 msgid "Tilt, Reset" msgstr "Ś Ś˜Ś™Ś™Ś”, ŚŚ€ŚĄ" -#: ../src/v4l2uvc.c:97 +#: ../gview_v4l2core/v4l2_controls.c:89 msgid "Pan, Absolute" msgstr "" -#: ../src/v4l2uvc.c:99 +#: ../gview_v4l2core/v4l2_controls.c:91 msgid "Focus, Absolute" msgstr "ŚžŚ™Ś§Ś•Ś“, ŚžŚ•Ś—ŚœŚ˜" -#: ../src/v4l2uvc.c:100 +#: ../gview_v4l2core/v4l2_controls.c:92 msgid "Focus, Relative" msgstr "ŚžŚ™Ś§Ś•Ś“, Ś™Ś—ŚĄŚ™" -#: ../src/v4l2uvc.c:101 +#: ../gview_v4l2core/v4l2_controls.c:93 msgid "Focus, Automatic" msgstr "ŚžŚ™Ś§Ś•Ś“, ŚŚ•Ś˜Ś•ŚžŚ˜Ś™" -#: ../src/v4l2uvc.c:102 +#: ../gview_v4l2core/v4l2_controls.c:94 msgid "Zoom, Absolute" msgstr "" -#: ../src/v4l2uvc.c:103 +#: ../gview_v4l2core/v4l2_controls.c:95 msgid "Zoom, Relative" msgstr "" -#: ../src/v4l2uvc.c:104 +#: ../gview_v4l2core/v4l2_controls.c:96 msgid "Zoom, Continuous" msgstr "" -#: ../src/v4l2uvc.c:105 +#: ../gview_v4l2core/v4l2_controls.c:97 msgid "Privacy" msgstr "Ś€ŚšŚ˜Ś™Ś•ŚȘ" #. UVC specific control strings -#: ../src/v4l2uvc.c:108 +#: ../gview_v4l2core/v4l2_controls.c:100 msgid "Exposure, Auto" msgstr "Ś—Ś©Ś™Ś€Ś”, ŚŚ•Ś˜Ś•ŚžŚ˜Ś™" -#: ../src/v4l2uvc.c:109 +#: ../gview_v4l2core/v4l2_controls.c:101 msgid "Exposure, Auto Priority" msgstr "Ś—Ś©Ś™Ś€Ś”, ŚąŚ“Ś™Ś€Ś•ŚȘ ŚŚ•Ś˜Ś•ŚžŚ˜Ś™ŚȘ" -#: ../src/v4l2uvc.c:110 +#: ../gview_v4l2core/v4l2_controls.c:102 msgid "Exposure (Absolute)" msgstr "Ś—Ś©Ś™Ś€Ś” (ŚžŚ•Ś—ŚœŚ˜ŚȘ)" -#: ../src/v4l2uvc.c:111 +#: ../gview_v4l2core/v4l2_controls.c:103 msgid "White Balance Temperature, Auto" msgstr "Ś˜ŚžŚ€ŚšŚ˜Ś•ŚšŚȘ ŚŚ™Ś–Ś•ŚŸ Ś”ŚœŚ‘ŚŸ, ŚŚ•Ś˜Ś•ŚžŚ˜Ś™ŚȘ" -#: ../src/v4l2uvc.c:112 +#: ../gview_v4l2core/v4l2_controls.c:104 msgid "White Balance Temperature" msgstr "Ś˜Ś€ŚžŚšŚ˜Ś•ŚšŚȘ ŚŚ™Ś–Ś•ŚŸ Ś”ŚœŚ‘ŚŸ" -#: ../src/v4l2uvc.c:113 +#: ../gview_v4l2core/v4l2_controls.c:105 msgid "White Balance Component, Auto" msgstr "ŚšŚ›Ś™Ś‘ ŚŚ™Ś–Ś•ŚŸ Ś”ŚœŚ‘ŚŸ, ŚŚ•Ś˜Ś•ŚžŚ˜Ś™" -#: ../src/v4l2uvc.c:114 +#: ../gview_v4l2core/v4l2_controls.c:106 msgid "White Balance Blue Component" msgstr "ŚšŚ›Ś™Ś‘ ŚŚ™Ś–Ś•ŚŸ Ś”ŚœŚ‘ŚŸ Ś”Ś›Ś—Ś•Śœ" -#: ../src/v4l2uvc.c:115 +#: ../gview_v4l2core/v4l2_controls.c:107 msgid "White Balance Red Component" msgstr "ŚšŚ›Ś™Ś‘ ŚŚ™Ś–Ś•ŚŸ Ś”ŚœŚ‘ŚŸ Ś”ŚŚ“Ś•Ś" #. libwebcam specific control strings -#: ../src/v4l2uvc.c:118 +#: ../gview_v4l2core/v4l2_controls.c:110 msgid "Focus" msgstr "" -#: ../src/v4l2uvc.c:119 +#: ../gview_v4l2core/v4l2_controls.c:111 msgid "Focus (Absolute)" msgstr "" -#: ../src/vcodecs.c:63 +#: ../gview_v4l2core/v4l2_xu_ctrls.c:63 ../guvcview/gui_gtk3_v4l2ctrls.c:239 +msgid "Off" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:64 ../guvcview/gui_gtk3_v4l2ctrls.c:239 +msgid "On" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:65 ../guvcview/gui_gtk3_v4l2ctrls.c:239 +msgid "Blinking" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:66 ../guvcview/gui_gtk3_v4l2ctrls.c:239 +msgid "Auto" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:73 +msgid "Pan (relative)" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:86 +msgid "Tilt (relative)" +msgstr "Ś”Ś˜Ś™Ś™Ś” (Ś™Ś—ŚĄŚ™)" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:99 +msgid "Pan Reset" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:112 +msgid "Tilt Reset" +msgstr "ŚŚ™Ś€Ś•ŚĄ Ś”Ś˜Ś™Ś™Ś”" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:125 +msgid "Focus (absolute)" +msgstr "ŚžŚ™Ś§Ś•Ś“ (ŚžŚ•Ś—ŚœŚ˜)" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:138 +msgid "LED1 Mode" +msgstr "ŚžŚŠŚ‘ LED1" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:151 +msgid "LED1 Frequency" +msgstr "ŚȘŚ“Śš LED1" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:164 +msgid "Disable video processing" +msgstr "Ś‘Ś˜Śœ ŚąŚ™Ś‘Ś•Ś“ Ś•Ś™Ś“ŚŚ•" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:177 +msgid "Raw bits per pixel" +msgstr "" + +#: ../gview_encoder/audio_codecs.c:63 +msgid "PCM - uncompressed (float 32 bit)" +msgstr "" + +#: ../gview_encoder/audio_codecs.c:80 +msgid "MP2 (MPEG audio layer 2)" +msgstr "" + +#: ../gview_encoder/audio_codecs.c:97 +msgid "MP3 (MPEG audio layer 3)" +msgstr "" + +#: ../gview_encoder/audio_codecs.c:118 +msgid "AC-3 (ATSC A/52A)" +msgstr "" + +#: ../gview_encoder/audio_codecs.c:139 +msgid "AAC (Advanced Audio Coding)" +msgstr "" + +#: ../gview_encoder/audio_codecs.c:160 +msgid "Vorbis" +msgstr "" + +#: ../gview_encoder/video_codecs.c:75 +#, fuzzy +msgid "Raw camera input" +msgstr "Ś€ŚœŚ˜ ŚžŚŠŚœŚžŚ”:" + +#: ../gview_encoder/video_codecs.c:111 msgid "MJPG - compressed" msgstr "MJPG - ŚžŚ§Ś•Ś‘Ś„" -#: ../src/vcodecs.c:99 -msgid "YUY2 - uncomp YUV" -msgstr "YUY2 - YUV ŚœŚ ŚžŚ§Ś•Ś‘Ś„" - -#: ../src/vcodecs.c:135 -msgid "RGB - uncomp BMP" -msgstr "RGB - BMP ŚœŚ ŚžŚ§Ś•Ś‘Ś„" - -#: ../src/vcodecs.c:171 +#: ../gview_encoder/video_codecs.c:147 msgid "MPEG video 1" msgstr "MPEG Ś•Ś™Ś“ŚŚ• 1" -#: ../src/vcodecs.c:207 +#: ../gview_encoder/video_codecs.c:183 msgid "FLV1 - flash video 1" msgstr "FLV1 - Ś•Ś™Ś“ŚŚ• Ś€ŚœŚŚ© 1" -#: ../src/vcodecs.c:243 -msgid "WMV1 - win. med. video 7" -msgstr "WMV1 - Ś•Ś™Ś Ś“Ś•ŚĄ ŚžŚ“Ś™Ś” Ś•Ś™Ś“ŚŚ• 7" +#: ../gview_encoder/video_codecs.c:219 +msgid "WMV1 - win. med. video 7" +msgstr "WMV1 - Ś•Ś™Ś Ś“Ś•ŚĄ ŚžŚ“Ś™Ś” Ś•Ś™Ś“ŚŚ• 7" + +#: ../gview_encoder/video_codecs.c:255 +msgid "MPG2 - MPG2 format" +msgstr "MPG2 - Ś€Ś•ŚšŚžŚ˜ MPG2" + +#: ../gview_encoder/video_codecs.c:291 +msgid "MS MP4 V3" +msgstr "MS MP4 V3" + +#: ../gview_encoder/video_codecs.c:327 +msgid "MPEG4-ASP" +msgstr "" + +#: ../gview_encoder/video_codecs.c:363 +msgid "MPEG4-AVC (H264)" +msgstr "" + +#: ../gview_encoder/video_codecs.c:403 +msgid "VP8 (VP8)" +msgstr "" + +#: ../gview_encoder/video_codecs.c:439 +msgid "Theora (ogg theora)" +msgstr "" + +#: ../guvcview/gui_gtk3_audioctrls.c:95 +msgid "Audio API:" +msgstr "" + +#: ../guvcview/gui_gtk3_audioctrls.c:106 +msgid "NO SOUND" +msgstr "" + +#: ../guvcview/gui_gtk3_audioctrls.c:107 +msgid "PORTAUDIO" +msgstr "" + +#: ../guvcview/gui_gtk3_audioctrls.c:110 +msgid "PULSEAUDIO" +msgstr "PULSEAUDIO" + +#: ../guvcview/gui_gtk3_audioctrls.c:127 +msgid "Input Device:" +msgstr "" + +#: ../guvcview/gui_gtk3_audioctrls.c:161 +msgid "Sample Rate:" +msgstr "Ś§ŚŠŚ‘ Ś“Ś’Ś™ŚžŚ”" + +#: ../guvcview/gui_gtk3_audioctrls.c:168 ../guvcview/gui_gtk3_audioctrls.c:214 +msgid "Dev. Default" +msgstr "" + +#: ../guvcview/gui_gtk3_audioctrls.c:207 +msgid "Channels:" +msgstr "ŚąŚšŚ•ŚŠŚ™Ś:" + +#: ../guvcview/gui_gtk3_audioctrls.c:215 +msgid "1 - mono" +msgstr "1 - ŚžŚ•Ś Ś•" + +#: ../guvcview/gui_gtk3_audioctrls.c:216 +msgid "2 - stereo" +msgstr "2 - ŚĄŚ˜ŚšŚ™ŚŚ•" + +#: ../guvcview/gui_gtk3_audioctrls.c:235 +#, fuzzy +msgid "---- Audio Filters ----" +msgstr "--- ŚžŚĄŚ Ś Ś™ Ś•Ś™Ś“ŚŚ• ---" + +#. Echo FX +#: ../guvcview/gui_gtk3_audioctrls.c:255 +msgid " Echo" +msgstr " Ś”Ś“" + +#. Reverb FX +#: ../guvcview/gui_gtk3_audioctrls.c:268 +msgid " Reverb" +msgstr "" + +#. Fuzz FX +#: ../guvcview/gui_gtk3_audioctrls.c:281 +msgid " Fuzz" +msgstr "" + +#. WahWah FX +#: ../guvcview/gui_gtk3_audioctrls.c:294 +msgid " WahWah" +msgstr "" + +#. Ducky FX +#: ../guvcview/gui_gtk3_audioctrls.c:307 +msgid " Ducky" +msgstr "" + +#: ../guvcview/gui_gtk3.c:310 ../guvcview/gui_gtk3_callbacks.c:749 +msgid "Stop Video (V)" +msgstr "" + +#. video button +#: ../guvcview/gui_gtk3.c:315 ../guvcview/gui_gtk3.c:600 +#: ../guvcview/gui_gtk3_callbacks.c:755 +msgid "Cap. Video (V)" +msgstr "" + +#: ../guvcview/gui_gtk3.c:376 ../guvcview/gui_gtk3.c:383 +msgid "Error" +msgstr "" + +#: ../guvcview/gui_gtk3.c:379 ../guvcview/gui_gtk3.c:386 +#: ../guvcview/gui_gtk3_callbacks.c:2097 +msgid "_Ok" +msgstr "" + +#: ../guvcview/gui_gtk3.c:380 ../guvcview/gui_gtk3_callbacks.c:185 +#: ../guvcview/gui_gtk3_callbacks.c:199 ../guvcview/gui_gtk3_callbacks.c:522 +#: ../guvcview/gui_gtk3_callbacks.c:624 ../guvcview/gui_gtk3_callbacks.c:1755 +#: ../guvcview/gui_gtk3_callbacks.c:2098 +#, fuzzy +msgid "_Cancel" +msgstr "Ś‘Ś˜Śœ" + +#: ../guvcview/gui_gtk3.c:407 +msgid "" +"\n" +"You have more than one video device installed.\n" +"Do you want to try another one ?\n" +msgstr "" + +#. ---- Devices ---- +#: ../guvcview/gui_gtk3.c:414 ../guvcview/gui_gtk3_videoctrls.c:106 +msgid "Device:" +msgstr "Ś”ŚȘŚ§ŚŸ:" + +#: ../guvcview/gui_gtk3.c:516 +msgid "Guvcview Video Capture" +msgstr "" + +#: ../guvcview/gui_gtk3.c:525 +msgid "Guvcview" +msgstr "" + +#: ../guvcview/gui_gtk3.c:572 +msgid "Stop Cap. (I)" +msgstr "" + +#: ../guvcview/gui_gtk3.c:578 ../guvcview/gui_gtk3_callbacks.c:720 +#: ../guvcview/video_capture.c:250 +msgid "Cap. Image (I)" +msgstr "" + +#. quit button +#. GtkWidget *quitButton = gtk_button_new_from_stock(GTK_STOCK_QUIT); +#: ../guvcview/gui_gtk3.c:621 +msgid "_Quit" +msgstr "" + +#: ../guvcview/gui_gtk3.c:667 +msgid "Image Controls" +msgstr "Ś€Ś§Ś“Ś™ ŚȘŚžŚ•Ś Ś”" + +#: ../guvcview/gui_gtk3.c:703 +#, fuzzy +msgid "H264 Controls" +msgstr "Ś€Ś§Ś“Ś™ ŚžŚ©ŚȘŚžŚ©" + +#: ../guvcview/gui_gtk3.c:742 +#, fuzzy +msgid "Video Controls" +msgstr "Ś€Ś§Ś“Ś™ ŚžŚ©ŚȘŚžŚ©" + +#: ../guvcview/gui_gtk3.c:777 +#, fuzzy +msgid "Audio Controls" +msgstr "Ś€Ś§Ś“Ś™ ŚžŚ©ŚȘŚžŚ©" + +#: ../guvcview/gui_gtk3_callbacks.c:182 ../guvcview/gui_gtk3_menu.c:72 +msgid "Save Profile" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:186 ../guvcview/gui_gtk3_callbacks.c:523 +#: ../guvcview/gui_gtk3_callbacks.c:625 +msgid "_Save" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:196 ../guvcview/gui_gtk3_menu.c:71 +msgid "Load Profile" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:200 +msgid "_Open" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:208 ../guvcview/gui_gtk3_callbacks.c:531 +#: ../guvcview/gui_gtk3_callbacks.c:634 +msgid "File Format:" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:220 +msgid "gpfl (*.gpfl)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:221 +msgid "any (*.*)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:519 +#, fuzzy +msgid "Photo file name" +msgstr "Ś©Ś Ś§Ś•Ś‘Ś„ ŚȘŚžŚ•Ś Ś”" + +#: ../guvcview/gui_gtk3_callbacks.c:543 +msgid "Raw (*.raw)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:544 +msgid "Jpeg (*.jpg)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:545 +msgid "Png (*.png)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:546 +msgid "Bmp (*.bmp)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:621 +#, fuzzy +msgid "Video file name" +msgstr "Ś©Ś Ś§Ś•Ś‘Ś„ ŚȘŚžŚ•Ś Ś”" + +#: ../guvcview/gui_gtk3_callbacks.c:646 +msgid "Matroska (*.mkv)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:647 +msgid "WebM (*.webm)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:648 +msgid "Avi (*.avi)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:1158 +msgid "start new" +msgstr "Ś”Ś€ŚąŚœ ŚąŚ›Ś©Ś™Ś•" + +#: ../guvcview/gui_gtk3_callbacks.c:1161 +msgid "restart" +msgstr "Ś”Ś€ŚąŚœ ŚžŚ—Ś“Ś©" + +#: ../guvcview/gui_gtk3_callbacks.c:1163 +msgid "new" +msgstr "Ś—Ś“Ś©" + +#: ../guvcview/gui_gtk3_callbacks.c:1165 +msgid "cancel" +msgstr "Ś‘Ś˜Śœ" + +#: ../guvcview/gui_gtk3_callbacks.c:1170 +msgid "" +"launch new process or restart?.\n" +"\n" +msgstr "" +"Ś”Ś€ŚąŚœ ŚȘŚ”ŚœŚ™Śš Ś—Ś“Ś© ŚŚ• Ś”Ś€ŚąŚœ ŚžŚ—Ś“Ś©?.\n" +"\n" + +#: ../guvcview/gui_gtk3_callbacks.c:1751 +#, fuzzy +msgid "video codec values" +msgstr "ŚąŚšŚ›Ś™ ŚžŚ§Ś•Ś“Ś“" + +#: ../guvcview/gui_gtk3_callbacks.c:1754 +msgid "_OK" +msgstr "" -#: ../src/vcodecs.c:279 -msgid "MPG2 - MPG2 format" -msgstr "MPG2 - Ś€Ś•ŚšŚžŚ˜ MPG2" +#: ../guvcview/gui_gtk3_callbacks.c:1760 +msgid "" +" encoder fps: \n" +" (0 - use fps combobox value)" +msgstr "" -#: ../src/vcodecs.c:315 -msgid "MS MP4 V3" -msgstr "MS MP4 V3" +#: ../guvcview/gui_gtk3_callbacks.c:1773 +msgid " monotonic pts" +msgstr "" -#: ../src/vcodecs.c:351 -msgid "MPEG4-ASP" +#. bit rate +#: ../guvcview/gui_gtk3_callbacks.c:1780 ../guvcview/gui_gtk3_callbacks.c:2105 +msgid "bit rate: " +msgstr "Ś§ŚŠŚ‘ ŚĄŚ™Ś‘Ś™Ś•ŚȘ: " + +#: ../guvcview/gui_gtk3_callbacks.c:1793 +msgid "qmax: " msgstr "" -#: ../src/vcodecs.c:387 -msgid "MPEG4-AVC (H264)" +#: ../guvcview/gui_gtk3_callbacks.c:1806 +msgid "qmin: " msgstr "" -#: ../src/vcodecs.c:427 -msgid "VP8 (VP8)" +#: ../guvcview/gui_gtk3_callbacks.c:1819 +msgid "max. qdiff: " msgstr "" -#: ../src/vcodecs.c:463 -msgid "Theora (ogg theora)" +#: ../guvcview/gui_gtk3_callbacks.c:1832 +msgid "dia size: " msgstr "" -#: ../src/video_format.c:43 -msgid "AVI - avi format" +#: ../guvcview/gui_gtk3_callbacks.c:1845 +msgid "pre dia size: " msgstr "" -#: ../src/video_format.c:52 -msgid "MKV - Matroska format" +#: ../guvcview/gui_gtk3_callbacks.c:1858 +msgid "pre me: " msgstr "" -#: ../src/video_format.c:61 -msgid "WEBM - format" +#: ../guvcview/gui_gtk3_callbacks.c:1871 +msgid "pre cmp: " msgstr "" -#: ../src/video_tab.c:216 -msgid "Frame Rate:" +#: ../guvcview/gui_gtk3_callbacks.c:1884 +msgid "cmp: " msgstr "" -#: ../src/video_tab.c:223 -msgid " Show" -msgstr " Ś”ŚŠŚ’" +#: ../guvcview/gui_gtk3_callbacks.c:1897 +msgid "sub cmp: " +msgstr "" -#: ../src/video_tab.c:245 -msgid "Resolution:" -msgstr "ŚšŚ–Ś•ŚœŚ•ŚŠŚ™Ś”:" +#: ../guvcview/gui_gtk3_callbacks.c:1910 +msgid "last predictor count: " +msgstr "" -#: ../src/video_tab.c:271 -msgid "Camera Output:" -msgstr "Ś€ŚœŚ˜ ŚžŚŠŚœŚžŚ”:" +#: ../guvcview/gui_gtk3_callbacks.c:1923 +msgid "gop size: " +msgstr "" -#: ../src/video_tab.c:293 -msgid "Apply" -msgstr "Ś”Ś—Śœ" +#: ../guvcview/gui_gtk3_callbacks.c:1936 +msgid "qcompress: " +msgstr "" -#: ../src/video_tab.c:300 -msgid "Quality:" -msgstr "ŚŚ™Ś›Ś•ŚȘ:" +#: ../guvcview/gui_gtk3_callbacks.c:1949 +msgid "qblur: " +msgstr "" -#: ../src/video_tab.c:310 -msgid "---- Video Filters ----" -msgstr "--- ŚžŚĄŚ Ś Ś™ Ś•Ś™Ś“ŚŚ• ---" +#: ../guvcview/gui_gtk3_callbacks.c:1962 +msgid "subq: " +msgstr "" -#. Mirror -#: ../src/video_tab.c:329 -msgid " Mirror" -msgstr " ŚžŚšŚŚ”" +#: ../guvcview/gui_gtk3_callbacks.c:1975 +msgid "framerefs: " +msgstr "" -#. Upturn -#: ../src/video_tab.c:340 -msgid " Invert" -msgstr " Ś”Ś€Ś•Śš" +#: ../guvcview/gui_gtk3_callbacks.c:1988 +msgid "me method: " +msgstr "" -#. Negate -#: ../src/video_tab.c:351 -msgid " Negative" +#: ../guvcview/gui_gtk3_callbacks.c:2001 +msgid "mb decision: " msgstr "" -#. Mono -#: ../src/video_tab.c:362 -msgid " Mono" -msgstr " ŚžŚ•Ś Ś•" +#: ../guvcview/gui_gtk3_callbacks.c:2014 +msgid "max B frames: " +msgstr "" -#. Pieces -#: ../src/video_tab.c:374 -msgid " Pieces" -msgstr " Ś—ŚœŚ§Ś™Ś" +#: ../guvcview/gui_gtk3_callbacks.c:2027 +msgid "num threads: " +msgstr "" -#. Particles -#: ../src/video_tab.c:386 -msgid " Particles" +#: ../guvcview/gui_gtk3_callbacks.c:2094 +msgid "audio codec values" msgstr "" -#: ../src/uvc_h264.c:596 -msgid "H264 Controls" +#. sample format +#: ../guvcview/gui_gtk3_callbacks.c:2119 +msgid "sample format: " msgstr "" -#: ../src/uvc_h264.c:615 +#: ../guvcview/gui_gtk3_h264ctrls.c:622 +#, fuzzy msgid "Rate Control Mode:" -msgstr "" +msgstr "Ś€Ś§Ś“Ś™ ŚȘŚžŚ•Ś Ś”" -#: ../src/uvc_h264.c:626 +#: ../guvcview/gui_gtk3_h264ctrls.c:633 msgid "CBR" msgstr "" -#: ../src/uvc_h264.c:629 +#: ../guvcview/gui_gtk3_h264ctrls.c:636 msgid "VBR" msgstr "" -#: ../src/uvc_h264.c:633 +#: ../guvcview/gui_gtk3_h264ctrls.c:640 msgid "Constant QP" msgstr "" -#: ../src/uvc_h264.c:651 +#: ../guvcview/gui_gtk3_h264ctrls.c:658 msgid "Rate Control Mode flags:" msgstr "" -#: ../src/uvc_h264.c:676 +#: ../guvcview/gui_gtk3_h264ctrls.c:683 msgid "Temporal Scale Mode:" msgstr "" -#: ../src/uvc_h264.c:704 +#: ../guvcview/gui_gtk3_h264ctrls.c:711 msgid "Spatial Scale Mode:" msgstr "" -#: ../src/uvc_h264.c:737 +#: ../guvcview/gui_gtk3_h264ctrls.c:741 msgid "Frame Interval (100ns units):" msgstr "" -#: ../src/uvc_h264.c:772 +#: ../guvcview/gui_gtk3_h264ctrls.c:778 +#, fuzzy msgid "Bit Rate:" -msgstr "" +msgstr "Ś§ŚŠŚ‘ ŚĄŚ™Ś‘Ś™Ś•ŚȘ: " -#: ../src/uvc_h264.c:795 +#: ../guvcview/gui_gtk3_h264ctrls.c:801 msgid "Hints:" msgstr "" -#: ../src/uvc_h264.c:800 +#: ../guvcview/gui_gtk3_h264ctrls.c:806 +#, fuzzy msgid "Resolution" -msgstr "" +msgstr "ŚšŚ–Ś•ŚœŚ•ŚŠŚ™Ś”:" -#: ../src/uvc_h264.c:804 +#: ../guvcview/gui_gtk3_h264ctrls.c:810 msgid "Profile" msgstr "" -#: ../src/uvc_h264.c:808 +#: ../guvcview/gui_gtk3_h264ctrls.c:814 +#, fuzzy msgid "Rate Control" -msgstr "" +msgstr "Ś€Ś§Ś“Ś™ ŚȘŚžŚ•Ś Ś”" -#: ../src/uvc_h264.c:812 +#: ../guvcview/gui_gtk3_h264ctrls.c:818 msgid "Usage Type" msgstr "" -#: ../src/uvc_h264.c:816 +#: ../guvcview/gui_gtk3_h264ctrls.c:822 msgid "Slice Mode" msgstr "" -#: ../src/uvc_h264.c:820 +#: ../guvcview/gui_gtk3_h264ctrls.c:826 msgid "Slice Unit" msgstr "" -#: ../src/uvc_h264.c:824 +#: ../guvcview/gui_gtk3_h264ctrls.c:830 msgid "MVC View" msgstr "" -#: ../src/uvc_h264.c:828 +#: ../guvcview/gui_gtk3_h264ctrls.c:834 msgid "Temporal Scale" msgstr "" -#: ../src/uvc_h264.c:832 +#: ../guvcview/gui_gtk3_h264ctrls.c:838 msgid "SNR Scale" msgstr "" -#: ../src/uvc_h264.c:836 +#: ../guvcview/gui_gtk3_h264ctrls.c:842 msgid "Spatial Scale" msgstr "" -#: ../src/uvc_h264.c:840 +#: ../guvcview/gui_gtk3_h264ctrls.c:846 msgid "Spatial Layer Ratio" msgstr "" -#: ../src/uvc_h264.c:844 +#: ../guvcview/gui_gtk3_h264ctrls.c:850 msgid "Frame Interval" msgstr "" -#: ../src/uvc_h264.c:848 +#: ../guvcview/gui_gtk3_h264ctrls.c:854 msgid "Leaky Bucket Size" msgstr "" -#: ../src/uvc_h264.c:852 +#: ../guvcview/gui_gtk3_h264ctrls.c:858 msgid "Bit Rate" msgstr "" -#: ../src/uvc_h264.c:856 ../src/uvc_h264.c:1250 +#: ../guvcview/gui_gtk3_h264ctrls.c:862 ../guvcview/gui_gtk3_h264ctrls.c:1220 msgid "CABAC" msgstr "" -#: ../src/uvc_h264.c:860 +#: ../guvcview/gui_gtk3_h264ctrls.c:866 msgid "(I) Frame Period" msgstr "" -#: ../src/uvc_h264.c:907 +#: ../guvcview/gui_gtk3_h264ctrls.c:878 msgid "Slice Mode:" msgstr "" -#: ../src/uvc_h264.c:914 +#: ../guvcview/gui_gtk3_h264ctrls.c:885 msgid "no multiple slices" msgstr "" -#: ../src/uvc_h264.c:916 +#: ../guvcview/gui_gtk3_h264ctrls.c:887 msgid "bits/slice" msgstr "" -#: ../src/uvc_h264.c:918 +#: ../guvcview/gui_gtk3_h264ctrls.c:889 msgid "Mbits/slice" msgstr "" -#: ../src/uvc_h264.c:920 +#: ../guvcview/gui_gtk3_h264ctrls.c:891 msgid "slices/frame" msgstr "" -#: ../src/uvc_h264.c:929 +#: ../guvcview/gui_gtk3_h264ctrls.c:900 msgid "Slice Units:" msgstr "" -#: ../src/uvc_h264.c:950 +#: ../guvcview/gui_gtk3_h264ctrls.c:921 msgid "Profile:" msgstr "" -#: ../src/uvc_h264.c:957 +#: ../guvcview/gui_gtk3_h264ctrls.c:928 msgid "Baseline Profile" msgstr "" -#: ../src/uvc_h264.c:959 +#: ../guvcview/gui_gtk3_h264ctrls.c:930 msgid "Main Profile" msgstr "" -#: ../src/uvc_h264.c:961 +#: ../guvcview/gui_gtk3_h264ctrls.c:932 msgid "High Profile" msgstr "" -#: ../src/uvc_h264.c:963 +#: ../guvcview/gui_gtk3_h264ctrls.c:934 msgid "Scalable Baseline Profile" msgstr "" -#: ../src/uvc_h264.c:965 +#: ../guvcview/gui_gtk3_h264ctrls.c:936 msgid "Scalable High Profile" msgstr "" -#: ../src/uvc_h264.c:967 +#: ../guvcview/gui_gtk3_h264ctrls.c:938 msgid "Multiview High Profile" msgstr "" -#: ../src/uvc_h264.c:969 +#: ../guvcview/gui_gtk3_h264ctrls.c:940 msgid "Stereo High Profile" msgstr "" -#: ../src/uvc_h264.c:1008 +#: ../guvcview/gui_gtk3_h264ctrls.c:979 msgid "Profile flags:" msgstr "" -#: ../src/uvc_h264.c:1033 +#: ../guvcview/gui_gtk3_h264ctrls.c:1004 msgid "(I) Frame Period (ms):" msgstr "" -#: ../src/uvc_h264.c:1054 +#: ../guvcview/gui_gtk3_h264ctrls.c:1025 msgid "Estimated Video Delay (ms):" msgstr "" -#: ../src/uvc_h264.c:1075 +#: ../guvcview/gui_gtk3_h264ctrls.c:1046 msgid "Estimated Max Config Delay (ms):" msgstr "" -#: ../src/uvc_h264.c:1096 +#: ../guvcview/gui_gtk3_h264ctrls.c:1067 msgid "Usage Type:" msgstr "" -#: ../src/uvc_h264.c:1103 +#: ../guvcview/gui_gtk3_h264ctrls.c:1074 msgid "Real-time" msgstr "" -#: ../src/uvc_h264.c:1105 +#: ../guvcview/gui_gtk3_h264ctrls.c:1076 msgid "Broadcast" msgstr "" -#: ../src/uvc_h264.c:1107 +#: ../guvcview/gui_gtk3_h264ctrls.c:1078 msgid "Storage" msgstr "" -#: ../src/uvc_h264.c:1109 +#: ../guvcview/gui_gtk3_h264ctrls.c:1080 msgid "(0) Non-scalable single layer AVC" msgstr "" -#: ../src/uvc_h264.c:1111 +#: ../guvcview/gui_gtk3_h264ctrls.c:1082 msgid "(1) SVC temporal scalability with hierarchical P" msgstr "" -#: ../src/uvc_h264.c:1113 +#: ../guvcview/gui_gtk3_h264ctrls.c:1084 msgid "(2q) SVC temporal scalability + Quality/SNR scalability" msgstr "" -#: ../src/uvc_h264.c:1115 +#: ../guvcview/gui_gtk3_h264ctrls.c:1086 msgid "(2s) SVC temporal scalability + spatial scalability" msgstr "" -#: ../src/uvc_h264.c:1117 +#: ../guvcview/gui_gtk3_h264ctrls.c:1088 msgid "(3) Full SVC scalability" msgstr "" -#: ../src/uvc_h264.c:1131 +#: ../guvcview/gui_gtk3_h264ctrls.c:1102 msgid "SNR Control Mode:" msgstr "" -#: ../src/uvc_h264.c:1138 +#: ../guvcview/gui_gtk3_h264ctrls.c:1109 msgid "No SNR Enhancement Layer" msgstr "" -#: ../src/uvc_h264.c:1140 +#: ../guvcview/gui_gtk3_h264ctrls.c:1111 msgid "CGS NonRewrite (2 Layer)" msgstr "" -#: ../src/uvc_h264.c:1142 +#: ../guvcview/gui_gtk3_h264ctrls.c:1113 msgid "CGS NonRewrite (3 Layer)" msgstr "" -#: ../src/uvc_h264.c:1144 +#: ../guvcview/gui_gtk3_h264ctrls.c:1115 msgid "CGS Rewrite (2 Layer)" msgstr "" -#: ../src/uvc_h264.c:1146 +#: ../guvcview/gui_gtk3_h264ctrls.c:1117 msgid "CGS Rewrite (3 Layer)" msgstr "" -#: ../src/uvc_h264.c:1148 +#: ../guvcview/gui_gtk3_h264ctrls.c:1119 msgid "MGS (2 Layer)" msgstr "" -#: ../src/uvc_h264.c:1173 +#: ../guvcview/gui_gtk3_h264ctrls.c:1144 msgid "Stream Mux Enable" msgstr "" -#: ../src/uvc_h264.c:1180 +#: ../guvcview/gui_gtk3_h264ctrls.c:1151 msgid "Embed H.264 aux stream" msgstr "" -#: ../src/uvc_h264.c:1182 +#: ../guvcview/gui_gtk3_h264ctrls.c:1153 msgid "Embed YUY2 aux stream" msgstr "" -#: ../src/uvc_h264.c:1184 +#: ../guvcview/gui_gtk3_h264ctrls.c:1155 msgid "Embed NV12 aux stream" msgstr "" -#: ../src/uvc_h264.c:1204 +#: ../guvcview/gui_gtk3_h264ctrls.c:1175 msgid "MJPG payload container" msgstr "" -#: ../src/uvc_h264.c:1219 +#: ../guvcview/gui_gtk3_h264ctrls.c:1189 msgid "Stream Format:" msgstr "" -#: ../src/uvc_h264.c:1227 +#: ../guvcview/gui_gtk3_h264ctrls.c:1197 msgid "Byte stream format (H.264 Annex-B)" msgstr "" -#: ../src/uvc_h264.c:1229 +#: ../guvcview/gui_gtk3_h264ctrls.c:1199 msgid "NAL stream format" msgstr "" -#: ../src/uvc_h264.c:1240 +#: ../guvcview/gui_gtk3_h264ctrls.c:1210 msgid "Entropy CABAC:" msgstr "" -#: ../src/uvc_h264.c:1248 +#: ../guvcview/gui_gtk3_h264ctrls.c:1218 msgid "CAVLC" msgstr "" -#: ../src/uvc_h264.c:1261 +#: ../guvcview/gui_gtk3_h264ctrls.c:1231 msgid "Picture timing SEI" msgstr "" -#: ../src/uvc_h264.c:1268 +#: ../guvcview/gui_gtk3_h264ctrls.c:1238 msgid "B Frames:" msgstr "" -#: ../src/uvc_h264.c:1293 +#: ../guvcview/gui_gtk3_h264ctrls.c:1263 msgid "Preview Flipped" msgstr "" -#: ../src/uvc_h264.c:1300 +#: ../guvcview/gui_gtk3_h264ctrls.c:1270 msgid "Additional MVC Views:" msgstr "" -#: ../src/uvc_h264.c:1325 +#: ../guvcview/gui_gtk3_h264ctrls.c:1295 msgid "Simulcast stream index:" msgstr "" -#: ../src/uvc_h264.c:1350 +#: ../guvcview/gui_gtk3_h264ctrls.c:1320 msgid "Spatial Layer Ratio:" msgstr "" -#: ../src/uvc_h264.c:1379 +#: ../guvcview/gui_gtk3_h264ctrls.c:1349 msgid "Leaky Bucket Size (ms):" msgstr "" #. encoder reset -#: ../src/uvc_h264.c:1406 +#: ../guvcview/gui_gtk3_h264ctrls.c:1376 msgid "Encoder Reset" msgstr "" -#. -#. h264_controls->probe_button = gtk_button_new_with_label(_("PROBE")); -#. g_signal_connect (GTK_BUTTON(h264_controls->probe_button), "clicked", +#. +#. GtkWidget *probe_button = gtk_button_new_with_label(_("PROBE")); +#. g_signal_connect (GTK_BUTTON(probe_button), "clicked", #. G_CALLBACK (h264_probe_button_clicked), all_data); -#. -#. gtk_grid_attach (GTK_GRID(table), h264_controls->probe_button, 0, line, 1 ,1); -#. gtk_widget_show(h264_controls->probe_button); -#. -#: ../src/uvc_h264.c:1421 +#. +#. gtk_grid_attach (GTK_GRID(h264_controls_grid), probe_button, 0, line, 1 ,1); +#. gtk_widget_show(probe_button); +#. +#: ../guvcview/gui_gtk3_h264ctrls.c:1391 msgid "COMMIT" msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:70 +msgid "Settings" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:73 +msgid "Hardware Defaults" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:81 +msgid "Camera Button" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:86 +msgid "Capture Image" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:91 +msgid "Capture Video" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:134 +msgid "Photo" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:135 ../guvcview/gui_gtk3_menu.c:159 +msgid "File" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:136 ../guvcview/gui_gtk3_menu.c:160 +msgid "Increment Filename" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:158 +msgid "Video" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:175 +msgid "Video Codec" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:202 +msgid "Video Codec Properties" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:208 +msgid "Audio Codec" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:235 +msgid "Audio Codec Properties" +msgstr "" + +#: ../guvcview/gui_gtk3_v4l2ctrls.c:174 +msgid "Left" +msgstr "Ś©ŚžŚŚœ" + +#: ../guvcview/gui_gtk3_v4l2ctrls.c:175 +msgid "Right" +msgstr "Ś™ŚžŚ™ŚŸ" + +#: ../guvcview/gui_gtk3_v4l2ctrls.c:179 +msgid "Down" +msgstr "ŚœŚžŚ˜Ś”" + +#: ../guvcview/gui_gtk3_v4l2ctrls.c:180 +msgid "Up" +msgstr "ŚœŚžŚąŚœŚ”" + +#. turn it into a menu control +#: ../guvcview/gui_gtk3_v4l2ctrls.c:296 +msgid "8 bit" +msgstr "" + +#: ../guvcview/gui_gtk3_v4l2ctrls.c:296 +msgid "12 bit" +msgstr "" + +#. add a virtual control for software autofocus +#: ../guvcview/gui_gtk3_v4l2ctrls.c:348 +msgid "Auto Focus (continuous)" +msgstr "ŚžŚ™Ś§Ś•Ś“ ŚŚ•Ś˜Ś•ŚžŚ˜Ś™ (ŚžŚȘŚžŚ©Śš)" + +#: ../guvcview/gui_gtk3_v4l2ctrls.c:349 +msgid "set Focus" +msgstr "Ś”Ś’Ś“Śš ŚžŚ™Ś§Ś•Ś“" + +#. control_widgets_list[n].widget2 = gtk_button_new_from_stock(GTK_STOCK_APPLY); +#. control_widgets_list[n].widget2= gtk_button_new_from_stock(GTK_STOCK_APPLY); +#. control_widgets_list[n].widget2 = gtk_button_new_from_stock(GTK_STOCK_APPLY); +#: ../guvcview/gui_gtk3_v4l2ctrls.c:433 ../guvcview/gui_gtk3_v4l2ctrls.c:456 +#: ../guvcview/gui_gtk3_v4l2ctrls.c:478 +#, fuzzy +msgid "_Apply" +msgstr "Ś”Ś—Śœ" + +#: ../guvcview/gui_gtk3_videoctrls.c:144 +msgid "Frame Rate:" +msgstr "" + +#: ../guvcview/gui_gtk3_videoctrls.c:204 +msgid "Resolution:" +msgstr "ŚšŚ–Ś•ŚœŚ•ŚŠŚ™Ś”:" + +#: ../guvcview/gui_gtk3_videoctrls.c:254 +msgid "Camera Output:" +msgstr "Ś€ŚœŚ˜ ŚžŚŠŚœŚžŚ”:" + +#: ../guvcview/gui_gtk3_videoctrls.c:287 +msgid "---- Video Filters ----" +msgstr "--- ŚžŚĄŚ Ś Ś™ Ś•Ś™Ś“ŚŚ• ---" + +#. Mirror FX +#: ../guvcview/gui_gtk3_videoctrls.c:307 +msgid " Mirror" +msgstr " ŚžŚšŚŚ”" + +#. Upturn FX +#: ../guvcview/gui_gtk3_videoctrls.c:319 +msgid " Invert" +msgstr " Ś”Ś€Ś•Śš" + +#. Negate FX +#: ../guvcview/gui_gtk3_videoctrls.c:331 +msgid " Negative" +msgstr "" + +#. Mono FX +#: ../guvcview/gui_gtk3_videoctrls.c:343 +msgid " Mono" +msgstr " ŚžŚ•Ś Ś•" + +#. Pieces FX +#: ../guvcview/gui_gtk3_videoctrls.c:356 +msgid " Pieces" +msgstr " Ś—ŚœŚ§Ś™Ś" + +#. Particles +#: ../guvcview/gui_gtk3_videoctrls.c:369 +msgid " Particles" +msgstr "" + +#: ../guvcview/options.c:51 +msgid "Print help" +msgstr "" + +#: ../guvcview/options.c:58 +#, fuzzy +msgid "Print version" +msgstr "ŚžŚ“Ś€Ś™ŚĄ Ś’ŚšŚĄŚ”" + +#: ../guvcview/options.c:64 +msgid "LEVEL" +msgstr "" + +#: ../guvcview/options.c:65 +msgid "Set Verbosity level (def: 0)" +msgstr "" + +#: ../guvcview/options.c:71 +msgid "DEVICE" +msgstr "" + +#: ../guvcview/options.c:72 +#, fuzzy +msgid "Set device name (def: /dev/video0)" +msgstr "Ś”ŚȘŚ§ŚŸ Ś•Ś™Ś“ŚŚ• ŚœŚ©Ś™ŚžŚ•Ś© [Ś‘ŚšŚ™ŚšŚȘ ŚžŚ—Ś“Śœ:/dev/video0]" + +#: ../guvcview/options.c:78 +msgid "METHOD" +msgstr "" + +#: ../guvcview/options.c:79 +msgid "Set capture method [read | mmap (def)]" +msgstr "" + +#: ../guvcview/options.c:85 +msgid "WIDTHxHEIGHT" +msgstr "" + +#: ../guvcview/options.c:86 +msgid "Request resolution (e.g 640x480)" +msgstr "" + +#: ../guvcview/options.c:92 +msgid "FOURCC" +msgstr "" + +#: ../guvcview/options.c:93 +msgid "Request format (e.g MJPG)" +msgstr "" + +#: ../guvcview/options.c:99 +msgid "RENDER_API" +msgstr "" + +#: ../guvcview/options.c:100 +msgid "Select render API (e.g none; sdl)" +msgstr "" + +#: ../guvcview/options.c:106 +msgid "AUDIO_API" +msgstr "" + +#: ../guvcview/options.c:107 +msgid "Select audio API (e.g none; port; pulse)" +msgstr "" + +#: ../guvcview/options.c:113 +msgid "AUDIO_DEVICE" +msgstr "" + +#: ../guvcview/options.c:114 +msgid "Select audio device index for selected api (0..N)" +msgstr "" + +#: ../guvcview/options.c:120 +msgid "GUI_API" +msgstr "" + +#: ../guvcview/options.c:121 +msgid "Select GUI API (e.g none; gtk3)" +msgstr "" + +#: ../guvcview/options.c:127 ../guvcview/options.c:134 +msgid "CODEC" +msgstr "" + +#: ../guvcview/options.c:128 +msgid "Audio codec [pcm mp2 mp3 aac ac3 vorb]" +msgstr "" + +#: ../guvcview/options.c:135 +msgid "Video codec [raw mjpg mpeg flv1 wmv1 mpg2 mp43 dx50 h264 vp80 theo]" +msgstr "" + +#: ../guvcview/options.c:141 ../guvcview/options.c:148 +#: ../guvcview/options.c:155 +msgid "FILENAME" +msgstr "" + +#: ../guvcview/options.c:142 +msgid "load control profile" +msgstr "" + +#: ../guvcview/options.c:149 +msgid "filename for captured video)" +msgstr "" + +#: ../guvcview/options.c:156 +msgid "filename for captured image)" +msgstr "" + +#: ../guvcview/options.c:162 ../guvcview/options.c:169 +msgid "TIME_IN_SEC" +msgstr "" + +#: ../guvcview/options.c:163 +msgid "time (double) in sec. for video capture)" +msgstr "" + +#: ../guvcview/options.c:170 +msgid "time (double) in sec. between captured photos)" +msgstr "" + +#: ../guvcview/options.c:176 +msgid "TOTAL" +msgstr "" + +#: ../guvcview/options.c:177 +msgid "total number of captured photos)" +msgstr "" + +#: ../guvcview/options.c:184 +msgid "Start in control panel mode" +msgstr "" + +#: ../guvcview/options.c:307 +#, c-format +msgid "" +"Guvcview version %s\n" +"\n" +msgstr "" + +#: ../guvcview/options.c:308 +#, c-format +msgid "" +"Usage:\n" +" guvcview [OPTIONS]\n" +"\n" +msgstr "" + +#: ../guvcview/options.c:309 +#, c-format +msgid "OPTIONS:\n" +msgstr "" + +#: ../guvcview/video_capture.c:819 +#, c-format +msgid "saving video to %s" +msgstr "" + +#. if(debug_level > 1) +#. printf("GUVCVIEW: saving image to %s\n", img_filename); +#: ../guvcview/video_capture.c:1069 +#, c-format +msgid "saving image to %s" +msgstr "" + +#~ msgid "Audio" +#~ msgstr "Ś©ŚžŚą" + +#~ msgid " Sound" +#~ msgstr " Ś§Ś•Śœ" + +#~ msgid "---- Audio Effects ----" +#~ msgstr "--- ŚŚ€Ś§Ś˜Ś™Ś Ś§Ś•ŚœŚ™Ś™Ś ---" + +#~ msgid "Save File" +#~ msgstr "Ś©ŚžŚ•Śš Ś§Ś•Ś‘Ś„" + +#~ msgid "Cap. Video" +#~ msgstr "ŚœŚ›Ś“ Ś•Ś™Ś“ŚŚ•" + +#~ msgid "GUVCViewer Controls" +#~ msgstr "Ś€Ś§Ś“Ś™ GUVCViewer" + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to open device" +#~ msgstr "" +#~ "Ś©Ś’Ś™ŚŚ” Ś‘Guvcview:\n" +#~ "\n" +#~ "ŚœŚ Ś™Ś›Ś•Śœ ŚœŚ€ŚȘŚ•Ś— Ś”ŚȘŚ§ŚŸ" + +#~ msgid "" +#~ "Please make sure the camera is connected\n" +#~ "and that the correct driver is installed." +#~ msgstr "" +#~ "ŚŚ Ś Ś•Ś•Ś“Ś Ś©Ś”ŚžŚŠŚœŚžŚ” ŚžŚ—Ś•Ś‘ŚšŚȘ\n" +#~ "Ś•Ś©ŚžŚ Ś”Śœ Ś”Ś”ŚȘŚ§ŚŸ Ś”Ś Ś›Ś•ŚŸ ŚžŚ•ŚȘŚ§ŚŸ." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Can't set a valid video stream for guvcview" +#~ msgstr "" +#~ "Ś©Ś’Ś™ŚŚ” Ś‘Guvcview:\n" +#~ "\n" +#~ "ŚœŚ Ś™Ś›Ś•Śœ ŚœŚ”Ś’Ś“Ś™Śš Ś–ŚšŚ™ŚžŚȘ Ś•Ś™Ś“ŚŚ• ŚȘŚ§Ś€Ś” Śœguvcview" + +#~ msgid "" +#~ "Make sure your device driver is v4l2 compliant\n" +#~ "and that it is properly installed." +#~ msgstr "" +#~ "Ś•Ś•Ś“Ś Ś©ŚžŚ Ś”Śœ Ś”Ś”ŚȘŚ§ŚŸ Ś©ŚœŚš ŚȘŚ•ŚŚ v4l2\n" +#~ "Ś•Ś©Ś”Ś•Ś ŚžŚ•ŚȘŚ§ŚŸ Ś›Ś”ŚœŚ›Ś”." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to start with minimum setup" +#~ msgstr "" +#~ "Ś©Ś’Ś™ŚŚ” Ś‘Guvcview:\n" +#~ "\n" +#~ "ŚœŚ Ś Ś™ŚȘŚŸ ŚœŚ”ŚȘŚ—Ś™Śœ ŚąŚ Ś”ŚȘŚ§Ś Ś” ŚžŚ™Ś Ś™ŚžŚŚœŚ™ŚȘ" + +#~ msgid "Please reconnect your camera." +#~ msgstr "ŚŚ Ś Ś—Ś‘Śš ŚžŚ—Ś“Ś© ŚŚȘ Ś”ŚžŚŠŚœŚžŚ”." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Couldn't query device capabilities" +#~ msgstr "" +#~ "Ś©Ś’Ś™ŚŚ” Ś‘Guvcview:\n" +#~ "\n" +#~ "ŚœŚ Ś Ś™ŚȘŚŸ ŚœŚ‘Ś“Ś•Ś§ ŚŚȘ Ś™Ś›Ś•ŚœŚ•ŚȘ Ś”Ś”ŚȘŚ§ŚŸ" + +#~ msgid "Make sure the device driver supports v4l2." +#~ msgstr "Ś•Ś•Ś“Ś Ś©ŚžŚ Ś”Śœ Ś”Ś”ŚȘŚ§ŚŸ Ś©ŚœŚš ŚȘŚ•ŚŚ v4l2." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Read method error" +#~ msgstr "" +#~ "Ś©Ś’Ś™ŚŚ” Ś‘Guvcview:\n" +#~ "\n" +#~ "Ś§ŚšŚ Ś©Ś’Ś™ŚŚȘ Ś©Ś™Ś˜Ś”" + +#~ msgid "Please try mmap instead (--capture_method=1)." +#~ msgstr "Ś ŚĄŚ” ŚŚȘ mmap Ś‘ŚžŚ§Ś•Ś (--capture_method=1)." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to allocate Buffers" +#~ msgstr "" +#~ "Ś©Ś’Ś™ŚŚ” Ś‘Guvcview:\n" +#~ "\n" +#~ "ŚœŚ Ś Ś™ŚȘŚŸ ŚœŚ”Ś§ŚŠŚ•ŚȘ Ś—Ś•ŚŠŚ„" + +#~ msgid "Please try restarting your system." +#~ msgstr "Ś ŚĄŚ” ŚœŚŚȘŚ—Śœ ŚŚȘ Ś”ŚžŚąŚšŚ›ŚȘ." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to create Video Thread" +#~ msgstr "" +#~ "Ś©Ś’Ś™ŚŚ” Ś‘Guvcview:\n" +#~ "\n" +#~ "ŚœŚ Ś™Ś›Ś•Śœ ŚœŚ™ŚŠŚ•Śš Ś©ŚšŚ©Ś•Śš Ś•Ś™Ś“ŚŚ•" + +#~ msgid "Please report it to http://developer.berlios.de/bugs/?group_id=8179" +#~ msgstr "Ś“Ś•Ś•Ś— ŚąŚœ Ś›Śš Śœhttp://developer.berlios.de/bugs/?group_id=8179" + +#~ msgid "Configuration file" +#~ msgstr "Ś§Ś•Ś‘Ś„ Ś”Ś’Ś“ŚšŚ•ŚȘ" + +#~ msgid "Hardware accelaration (enable(1) | disable(0))" +#~ msgstr "Ś”ŚŚŠŚȘ Ś—Ś•ŚžŚšŚ” (Ś€ŚąŚ™Śœ(1) | ŚžŚ Ś•Ś˜ŚšŚœ(0))" + +#~ msgid "Frame size, default: 640x480" +#~ msgstr "Ś’Ś•Ś“Śœ Ś€ŚšŚ™Ś™Ś, Ś‘ŚšŚ™ŚšŚȘ ŚžŚ—Ś“Śœ: 640x480" + +#~ msgid "Number of Pictures to capture" +#~ msgstr "ŚžŚĄŚ€Śš ŚȘŚžŚ•Ś Ś•ŚȘ ŚœŚœŚ›Ś™Ś“Ś”" + +#~ msgid "Video File name (capture from start)" +#~ msgstr "Ś©Ś Ś§Ś•Ś‘Ś„ Ś•Ś™Ś“ŚŚ• (ŚœŚ•Ś›Ś“ ŚžŚ”Ś”ŚȘŚ—ŚœŚ”)" + +#~ msgid "Video capture time (in seconds)" +#~ msgstr "Ś–ŚžŚŸ ŚœŚ›Ś™Ś“ŚȘ Ś•Ś™Ś“ŚŚ• (Ś‘Ś©Ś Ś™Ś•ŚȘ)" + +#~ msgid "Exits guvcview after closing video" +#~ msgstr "Ś™Ś•ŚŠŚ Śžguvcview ŚŚ—ŚšŚ™ ŚĄŚ’Ś™ŚšŚȘ Ś•Ś™Ś“ŚŚ•" + +#~ msgid "Show FPS value (enable(1) | disable (0))" +#~ msgstr "ŚžŚšŚŚ” ŚąŚšŚš Ś€ŚšŚ™Ś™ŚžŚ™Ś ŚœŚ©Ś Ś™Ś” (FPS) (Ś€ŚąŚ™Śœ(1) | ŚžŚ Ś•Ś˜ŚšŚœ(2))" + +#~ msgid "Load Profile at start" +#~ msgstr "Ś˜ŚąŚŸ Ś€ŚšŚ•Ś€Ś™Śœ Ś‘Ś”Ś€ŚąŚœŚ”" + +#~ msgid "- local options" +#~ msgstr "- ŚŚ€Ś©ŚšŚ•Ś™Ś•ŚȘ ŚžŚ§Ś•ŚžŚ™Ś•ŚȘ" + +#~ msgid "Cap. Image" +#~ msgstr "ŚœŚ›Ś“ ŚȘŚžŚ•Ś Ś”" + +#~ msgid "YUY2 - uncomp YUV" +#~ msgstr "YUY2 - YUV ŚœŚ ŚžŚ§Ś•Ś‘Ś„" + +#~ msgid "RGB - uncomp BMP" +#~ msgstr "RGB - BMP ŚœŚ ŚžŚ§Ś•Ś‘Ś„" + +#~ msgid " Show" +#~ msgstr " Ś”ŚŠŚ’" + +#~ msgid "Quality:" +#~ msgstr "ŚŚ™Ś›Ś•ŚȘ:" diff -Nru guvcview-1.7.3/po/hr.po guvcview-2.0.1+ubuntu1~ppa1/po/hr.po --- guvcview-1.7.3/po/hr.po 2014-03-24 22:56:28.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/po/hr.po 2014-10-05 10:41:44.000000000 +0000 @@ -7,1406 +7,1557 @@ msgstr "" "Project-Id-Version: guvcview\n" "Report-Msgid-Bugs-To: pj.assis@gmail.com\n" -"POT-Creation-Date: 2013-11-14 22:15+0000\n" +"POT-Creation-Date: 2014-08-17 22:49+0100\n" "PO-Revision-Date: 2013-09-27 09:35+0000\n" "Last-Translator: gogo \n" "Language-Team: Croatian \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-12-08 10:36+0000\n" -"X-Generator: Launchpad (build 16869)\n" -"Language: hr\n" - -#: ../data/guvcview.desktop.in.in.h:1 -msgid "guvcview" -msgstr "" - -#: ../data/guvcview.desktop.in.in.h:2 -msgid "GTK UVC video viewer" -msgstr "" - -#: ../data/guvcview.desktop.in.in.h:3 -msgid "A video viewer and capturer for the linux uvc driver" -msgstr "" - -#: ../src/acodecs.c:59 -msgid "PCM - uncompressed (16 bit)" -msgstr "" - -#: ../src/acodecs.c:76 -msgid "MPEG2 - (lavc)" -msgstr "" - -#: ../src/acodecs.c:93 -msgid "MP3 - (lavc)" -msgstr "" - -#: ../src/acodecs.c:110 -msgid "Dolby AC3 - (lavc)" -msgstr "" - -#: ../src/acodecs.c:127 -msgid "ACC Low - (faac)" -msgstr "" - -#: ../src/acodecs.c:144 -msgid "Vorbis" -msgstr "" - -#: ../src/audio_tab.c:87 -msgid "Audio" -msgstr "Audio" - -#: ../src/audio_tab.c:105 -msgid " Sound" -msgstr " Zvuk" - -#. VU meter on the image (OSD) -#: ../src/audio_tab.c:116 -msgid " Show VU meter" -msgstr "" - -#: ../src/audio_tab.c:128 -msgid "Audio API:" -msgstr "" - -#: ../src/audio_tab.c:139 -msgid "PORTAUDIO" -msgstr "" - -#: ../src/audio_tab.c:140 -msgid "PULSEAUDIO" -msgstr "" - -#: ../src/audio_tab.c:156 ../src/audio_tab.c:179 -msgid "Input Device:" -msgstr "Ulazni uređaj:" - -#: ../src/audio_tab.c:189 ../src/audio_tab.c:221 -msgid "Dev. Default" -msgstr "Zadane Postavke Uređaja" - -#: ../src/audio_tab.c:211 -msgid "Sample Rate:" -msgstr "" - -#: ../src/audio_tab.c:222 -msgid "1 - mono" -msgstr "1 - mono" - -#: ../src/audio_tab.c:223 -msgid "2 - stereo" -msgstr "2 - stereo" - -#: ../src/audio_tab.c:258 -msgid "Channels:" -msgstr "Kanali:" - -#: ../src/audio_tab.c:309 -msgid "---- Audio Effects ----" -msgstr "---- Audio Efekti ----" - -#. Echo -#: ../src/audio_tab.c:328 -msgid " Echo" -msgstr " Jeka" - -#. FUZZ -#: ../src/audio_tab.c:339 -msgid " Fuzz" -msgstr " Mutno" - -#. Reverb -#: ../src/audio_tab.c:351 -msgid " Reverb" -msgstr " Odjek" - -#. WahWah -#: ../src/audio_tab.c:363 -msgid " WahWah" -msgstr "" - -#. Ducky -#: ../src/audio_tab.c:375 -msgid " Ducky" -msgstr " Patka" - -#: ../src/callbacks.c:109 -msgid "Error" -msgstr "GrjeĆĄka" - -#: ../src/callbacks.c:133 -msgid "" -"\n" -"You have more than one video device installed.\n" -"Do you want to try another one ?\n" -msgstr "" -"\n" -"Imate viĆĄe uređaja instalirano.\n" -"Ćœelite li isprobati ostale?\n" - -#. Devices -#: ../src/callbacks.c:140 ../src/video_tab.c:111 -msgid "Device:" -msgstr "Uređaj:" - -#: ../src/callbacks.c:272 -msgid "Save File" -msgstr "Spremi Datoteku" - -#: ../src/callbacks.c:284 -msgid "File Format:" -msgstr "" - -#: ../src/callbacks.c:455 -msgid "codec values" -msgstr "" - -#: ../src/callbacks.c:466 -msgid "" -" encoder fps: \n" -" (0 - use fps combobox value)" -msgstr "" - -#: ../src/callbacks.c:479 -msgid " monotonic pts" -msgstr "" - -#. bit rate -#: ../src/callbacks.c:486 ../src/callbacks.c:809 -msgid "bit rate: " -msgstr "" - -#: ../src/callbacks.c:499 -msgid "qmax: " -msgstr "" - -#: ../src/callbacks.c:512 -msgid "qmin: " -msgstr "" - -#: ../src/callbacks.c:525 -msgid "max. qdiff: " -msgstr "" - -#: ../src/callbacks.c:538 -msgid "dia size: " -msgstr "" - -#: ../src/callbacks.c:551 -msgid "pre dia size: " -msgstr "" - -#: ../src/callbacks.c:564 -msgid "pre me: " -msgstr "" - -#: ../src/callbacks.c:577 -msgid "pre cmp: " -msgstr "" - -#: ../src/callbacks.c:590 -msgid "cmp: " -msgstr "" - -#: ../src/callbacks.c:603 -msgid "sub cmp: " -msgstr "" - -#: ../src/callbacks.c:616 -msgid "last predictor count: " -msgstr "" - -#: ../src/callbacks.c:629 -msgid "gop size: " -msgstr "" - -#: ../src/callbacks.c:642 -msgid "qcompress: " -msgstr "" - -#: ../src/callbacks.c:655 -msgid "qblur: " -msgstr "" - -#: ../src/callbacks.c:668 -msgid "subq: " -msgstr "" - -#: ../src/callbacks.c:681 -msgid "framerefs: " -msgstr "" - -#: ../src/callbacks.c:694 -msgid "me method: " -msgstr "" - -#: ../src/callbacks.c:707 -msgid "mb decision: " -msgstr "" - -#: ../src/callbacks.c:720 -msgid "max B frames: " -msgstr "" - -#: ../src/callbacks.c:733 -msgid "num threads: " -msgstr "" - -#: ../src/callbacks.c:796 -msgid "audio codec values" -msgstr "vrijednosti audio codeca" - -#. sample format -#: ../src/callbacks.c:823 -msgid "sample format: " -msgstr "" - -#: ../src/callbacks.c:1311 -msgid "start new" -msgstr "pokreni novo" - -#: ../src/callbacks.c:1314 -msgid "restart" -msgstr "ponovo pokreni" - -#: ../src/callbacks.c:1316 -msgid "new" -msgstr "novo" - -#: ../src/callbacks.c:1318 -msgid "cancel" -msgstr "odustani" - -#: ../src/callbacks.c:1323 -msgid "" -"launch new process or restart?.\n" -"\n" -msgstr "" -"upalite novi proces ili ponovno pokrenite?.\n" -"\n" - -#: ../src/callbacks.c:1780 ../src/guvcview.c:565 -msgid "Cap. Image (I)" -msgstr "Snimi Sliku (I)" - -#. disable image controls -#: ../src/callbacks.c:1791 ../src/guvcview.c:690 ../src/timers.c:101 -msgid "capturing photo to" -msgstr "" - -#: ../src/callbacks.c:1850 ../src/guvcview.c:575 -msgid "Cap. Video (V)" -msgstr "Snimi Video (V)" - -#: ../src/callbacks.c:1876 ../src/guvcview.c:740 -msgid "capturing video to" -msgstr "" - -#. vid capture enabled from start -#: ../src/callbacks.c:1911 ../src/guvcview.c:570 -msgid "Stop Video (V)" -msgstr "Zaustavi Video (V)" - -#: ../src/callbacks.c:1967 ../src/menubar.c:66 -msgid "Save Profile" -msgstr "" - -#: ../src/callbacks.c:1980 ../src/menubar.c:65 -msgid "Load Profile" -msgstr "" - -#: ../src/create_video.c:1098 ../src/guvcview.c:732 -msgid "Cap. Video" -msgstr "Snimi Video" - -#: ../src/guvcview.c:280 -msgid "Guvcview Video Capture" -msgstr "Guvcview Snimanje Videa" - -#: ../src/guvcview.c:292 -msgid "GUVCViewer Controls" -msgstr "GUVCViewer Kontrole" - -#. can't open device -#: ../src/guvcview.c:342 -msgid "" -"Guvcview error:\n" -"\n" -"Unable to open device" -msgstr "" -"Guvcview grjeĆĄka:\n" -"\n" -"Nije moguče pokrenuti uređaj" - -#: ../src/guvcview.c:343 -msgid "" -"Please make sure the camera is connected\n" -"and that the correct driver is installed." -msgstr "" -"Molim provjerite dali je kamera spojena\n" -"i dali je instaliran ispravan driver." - -#. uvc extension controls OK, give warning and shutdown (called with --add_ctrls) -#: ../src/guvcview.c:348 -msgid "" -"Guvcview:\n" -"\n" -"UVC Extension controls" -msgstr "" -"Guvcview:\n" -"\n" -"UVC kontrole Ekstenzije" - -#: ../src/guvcview.c:349 -msgid "Extension controls were added to the UVC driver" -msgstr "Kontrole Ekstenzije su dodane UVC driveru" - -#. uvc extension controls error - EACCES (needs root user) -#: ../src/guvcview.c:356 -msgid "" -"Guvcview error:\n" -"\n" -"UVC Extension controls" -msgstr "" -"Guvcview:\n" -"\n" -"UVC kontrole Ekstenzije" - -#: ../src/guvcview.c:357 -msgid "" -"An error occurred while adding extension\n" -"controls to the UVC driver\n" -"Make sure you run guvcview as root (or sudo)." -msgstr "" -"Dogodila se grjeĆĄka prilikom dodavanja kontrola\n" -"ekstenzije UVC driveru\n" -"Pokrenite guvcview kao root (ili sudo)." - -#: ../src/guvcview.c:391 ../src/guvcview.c:399 ../src/guvcview.c:477 -msgid "" -"Guvcview error:\n" -"\n" -"Can't set a valid video stream for guvcview" -msgstr "" -"Guvcview grjeĆĄka:\n" -"\n" -"Nije moguče postaviti vrijedeći video stream za guvcview" - -#: ../src/guvcview.c:392 ../src/guvcview.c:400 ../src/guvcview.c:478 -msgid "" -"Make sure your device driver is v4l2 compliant\n" -"and that it is properly installed." -msgstr "" -"Provjerite dali vaĆĄ video driver ima podrĆĄku za v4l2\n" -"i pogledajte dali je ispravno instaliran." - -#: ../src/guvcview.c:422 ../src/guvcview.c:444 -msgid "" -"Guvcview error:\n" -"\n" -"Unable to start with minimum setup" -msgstr "" -"Guvcview error:\n" -"\n" -"Nije moguče pokretanje s minimalnim postavkama" - -#: ../src/guvcview.c:423 ../src/guvcview.c:445 -msgid "Please reconnect your camera." -msgstr "Molim ponovno spajanje kamere." - -#: ../src/guvcview.c:452 -msgid "" -"Guvcview error:\n" -"\n" -"Couldn't query device capabilities" -msgstr "" -"Guvcview error:\n" -"\n" -"Sposobnost uređaja nije čitljiva" - -#: ../src/guvcview.c:453 -msgid "Make sure the device driver supports v4l2." -msgstr "Provjerite da vaĆĄ driver ima podrĆĄku za v4l2." - -#: ../src/guvcview.c:457 -msgid "" -"Guvcview error:\n" -"\n" -"Read method error" -msgstr "" - -#: ../src/guvcview.c:458 -msgid "Please try mmap instead (--capture_method=1)." -msgstr "" - -#: ../src/guvcview.c:466 -msgid "" -"Guvcview error:\n" -"\n" -"Unable to allocate Buffers" -msgstr "" - -#: ../src/guvcview.c:467 -msgid "Please try restarting your system." -msgstr "Probajte ponovno pokrenuti vaĆĄ sustav." - -#: ../src/guvcview.c:518 -msgid "Image Controls" -msgstr "Kontrole Slike" - -#. image auto capture -#: ../src/guvcview.c:561 -msgid "Stop Auto (I)" -msgstr "Zaustavi Automatsko (I)" - -#: ../src/guvcview.c:676 -msgid "" -"Guvcview error:\n" -"\n" -"Unable to create Video Thread" -msgstr "" -"Guvcview grjeĆĄka:\n" -"\n" -"Nije moguče pokrenuti uređaj" - -#: ../src/guvcview.c:677 -msgid "Please report it to http://developer.berlios.de/bugs/?group_id=8179" -msgstr "Molimo prijavite na http://developer.berlios.de/bugs/?group_id=8179" - -#: ../src/img_controls.c:121 -msgid "Auto Focus (continuous)" -msgstr "Automatski Focus (neprekidno)" - -#: ../src/img_controls.c:122 -msgid "set Focus" -msgstr "postavi fokusiranje" - -#: ../src/image_format.c:35 -msgid "Jpeg (jpg)" -msgstr "" - -#: ../src/image_format.c:41 -msgid "Bitmap (Bmp)" -msgstr "" - -#: ../src/image_format.c:47 -msgid "Portable Network Graphics (Png)" -msgstr "" - -#: ../src/image_format.c:53 -msgid "Raw Image (raw)" -msgstr "" - -#. controls menu -#: ../src/menubar.c:64 -msgid "Settings" -msgstr "" - -#: ../src/menubar.c:67 -msgid "Hardware Defaults" -msgstr "" - -#: ../src/menubar.c:75 -msgid "Camera Button" -msgstr "" - -#: ../src/menubar.c:79 -msgid "Capture Image" -msgstr "" - -#: ../src/menubar.c:84 -msgid "Capture Video" -msgstr "" - -#. video menu -#: ../src/menubar.c:144 ../src/video_tab.c:95 -msgid "Video" -msgstr "" - -#: ../src/menubar.c:145 ../src/menubar.c:233 -msgid "File" -msgstr "" - -#: ../src/menubar.c:146 ../src/menubar.c:234 -msgid "Increment Filename" -msgstr "" - -#: ../src/menubar.c:164 -msgid "Video Codec" -msgstr "" - -#: ../src/menubar.c:189 -msgid "Video Codec Properties" -msgstr "" - -#: ../src/menubar.c:196 -msgid "Audio Codec" -msgstr "" - -#: ../src/menubar.c:217 -msgid "Audio Codec Properties" -msgstr "" - -#. photo menu -#: ../src/menubar.c:232 -msgid "Photo" -msgstr "" - -#: ../src/options.c:753 -msgid "Prints version" -msgstr "Isprintaj verziju" - -#: ../src/options.c:754 -msgid "Displays debug information" -msgstr "" - -#: ../src/options.c:755 -msgid "Video Device to use [default: /dev/video0]" -msgstr "Video uređaj rabljen [zadani: /dev/video0]" - -#: ../src/options.c:756 -msgid "Exit after adding UVC extension controls (needs root/sudo)" -msgstr "Izlaz nakon dodavanja UVC ekstenzivnih kontrola (potreban root/sudo)" - -#: ../src/options.c:757 -msgid "Don't stream video (image controls only)" -msgstr "" - -#: ../src/options.c:758 -msgid "Don't display a GUI" -msgstr "" - -#: ../src/options.c:759 -msgid "Capture method (1-mmap (default) 2-read)" -msgstr "" - -#: ../src/options.c:760 -msgid "Configuration file" -msgstr "Datoteka Postavki" - -#: ../src/options.c:761 -msgid "Hardware accelaration (enable(1) | disable(0))" -msgstr "Hardversko ubrzanje (omoguči(1) | onemoguči(0))" - -#: ../src/options.c:762 -msgid "" -"Pixel " -"format(mjpg|jpeg|yuyv|yvyu|uyvy|yyuv|yu12|yv12|nv12|nv21|nv16|nv61|y41p|grey|" -"y10b|y16 |s501|s505|s508|gbrg|grbg|ba81|rggb|bgr3|rgb3)" -msgstr "" - -#: ../src/options.c:763 -msgid "Frame size, default: 640x480" -msgstr "Veličina slike, zadana: 640x480" - -#: ../src/options.c:764 -msgid "Image File name" -msgstr "Ime Slikovne Datoteke" - -#: ../src/options.c:765 -msgid "Image capture interval in seconds" -msgstr "Interval slikanja u sekundama" - -#: ../src/options.c:766 -msgid "Number of Pictures to capture" -msgstr "Broj Slika za snimiti" - -#: ../src/options.c:767 -msgid "Video File name (capture from start)" -msgstr "Ime Video Datoteke (snimka od početka)" - -#: ../src/options.c:768 -msgid "Video capture time (in seconds)" -msgstr "Vrijeme snimanja videa (u sekundama)" - -#: ../src/options.c:769 -msgid "Exits guvcview after closing video" -msgstr "Izlaz iz guvcviewa nakon zatvaranja videa" - -#: ../src/options.c:770 -msgid "Number of initial frames to skip" -msgstr "Broj preskočenih početnih slika" - -#: ../src/options.c:771 -msgid "Show FPS value (enable(1) | disable (0))" -msgstr "Prikaz FPS broja (omoguči(1) | onemoguči (0))" - -#: ../src/options.c:772 -msgid "Load Profile at start" -msgstr "Učitaj Profil pri pokretanju" - -#: ../src/options.c:773 -msgid "List controls method (0:loop, 1:next_ctrl flag [def])" -msgstr "" - -#: ../src/options.c:779 -msgid "- local options" -msgstr "- lokalne opcije" - -#. gdk_threads_enter(); -#: ../src/timers.c:119 -msgid "Cap. Image" -msgstr "Snimi Sliku" - -#: ../src/timers.c:217 -msgid "Guvcview Warning:" -msgstr "Guvcview Upozorenje" - -#: ../src/timers.c:217 -msgid "Not enough free space left on disk" -msgstr "Nema dovoljno slobodnog prostora na disku" - -#: ../src/v4l2_controls.c:794 -msgid "Left" -msgstr "Lijevo" - -#: ../src/v4l2_controls.c:795 -msgid "Right" -msgstr "Desno:" - -#: ../src/v4l2_controls.c:799 -msgid "Down" -msgstr "Dolje" - -#: ../src/v4l2_controls.c:800 -msgid "Up" -msgstr "Gore" - -#: ../src/v4l2_controls.c:845 -msgid "Off" -msgstr "" - -#: ../src/v4l2_controls.c:845 -msgid "On" -msgstr "" - -#: ../src/v4l2_controls.c:845 -msgid "Blinking" -msgstr "" - -#: ../src/v4l2_controls.c:845 -msgid "Auto" -msgstr "" - -#. turn it into a menu control -#: ../src/v4l2_controls.c:894 -msgid "8 bit" -msgstr "" - -#: ../src/v4l2_controls.c:894 -msgid "12 bit" -msgstr "" - -#: ../src/v4l2_dyna_ctrls.c:96 -msgid "Pan (relative)" -msgstr "" - -#: ../src/v4l2_dyna_ctrls.c:109 -msgid "Tilt (relative)" -msgstr "" - -#: ../src/v4l2_dyna_ctrls.c:122 -msgid "Pan Reset" -msgstr "" - -#: ../src/v4l2_dyna_ctrls.c:135 -msgid "Tilt Reset" -msgstr "" +"Language: hr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2013-12-08 10:36+0000\n" +"X-Generator: Launchpad (build 16869)\n" -#: ../src/v4l2_dyna_ctrls.c:148 -msgid "Focus (absolute)" -msgstr "" +#: ../data/guvcview.desktop.in.in.h:1 +#, fuzzy +msgid "guvcview" +msgstr "Guvcview Upozorenje" -#: ../src/v4l2_dyna_ctrls.c:161 -msgid "LED1 Mode" +#: ../data/guvcview.desktop.in.in.h:2 +msgid "GTK UVC video viewer" msgstr "" -#: ../src/v4l2_dyna_ctrls.c:174 -msgid "LED1 Frequency" +#: ../data/guvcview.desktop.in.in.h:3 +msgid "A video viewer and capturer for the linux uvc driver" msgstr "" -#: ../src/v4l2_dyna_ctrls.c:187 -msgid "Disable video processing" +#: ../data/guvcview.appdata.xml.in.in.h:1 +msgid "capture video from v4l2 devices" msgstr "" -#: ../src/v4l2_dyna_ctrls.c:200 -msgid "Raw bits per pixel" +#: ../data/guvcview.appdata.xml.in.in.h:2 +msgid "" +"Video capture tool for video4linux2 compliant cameras, with special emphasis " +"on the linux uvc driver. It provides Image (jpg, png, bmp) and Video (mjpeg, " +"flv1, wmv1, mpg2, mpg4,...) capture with sound in several " +"formats( currently: avi and matroska). I also supports a control panel " +"option (--control_only) that is compatible with any other v4l2 app." msgstr "" -#. needed only for language files (not used) +#. +#. * needed only for language files (not used) +#. #. V4L2 control strings -#: ../src/v4l2uvc.c:57 +#: ../gview_v4l2core/v4l2_controls.c:49 msgid "User Controls" msgstr "Korisničke Kontrole" -#: ../src/v4l2uvc.c:58 +#: ../gview_v4l2core/v4l2_controls.c:50 msgid "Brightness" msgstr "Osvjetljenje" -#: ../src/v4l2uvc.c:59 +#: ../gview_v4l2core/v4l2_controls.c:51 msgid "Contrast" msgstr "Kontrast" -#: ../src/v4l2uvc.c:60 +#: ../gview_v4l2core/v4l2_controls.c:52 msgid "Hue" msgstr "Nijansa" -#: ../src/v4l2uvc.c:61 +#: ../gview_v4l2core/v4l2_controls.c:53 msgid "Saturation" msgstr "Zasićenje" -#: ../src/v4l2uvc.c:62 +#: ../gview_v4l2core/v4l2_controls.c:54 msgid "Sharpness" msgstr "OĆĄtrina" -#: ../src/v4l2uvc.c:63 +#: ../gview_v4l2core/v4l2_controls.c:55 msgid "Gamma" msgstr "Gama" -#: ../src/v4l2uvc.c:64 +#: ../gview_v4l2core/v4l2_controls.c:56 msgid "Backlight Compensation" msgstr "Ispravke pozadinskog osvjetljenja" -#: ../src/v4l2uvc.c:65 +#: ../gview_v4l2core/v4l2_controls.c:57 msgid "Power Line Frequency" msgstr "" -#: ../src/v4l2uvc.c:66 +#: ../gview_v4l2core/v4l2_controls.c:58 msgid "Hue, Automatic" msgstr "" -#: ../src/v4l2uvc.c:67 +#: ../gview_v4l2core/v4l2_controls.c:59 msgid "Focus, Auto" msgstr "Fokusiranje, Automatsko" -#: ../src/v4l2uvc.c:68 +#: ../gview_v4l2core/v4l2_controls.c:60 msgid "Manual Mode" msgstr "Ručni Način" -#: ../src/v4l2uvc.c:69 +#: ../gview_v4l2core/v4l2_controls.c:61 msgid "Auto Mode" msgstr "Automatski Način" -#: ../src/v4l2uvc.c:70 +#: ../gview_v4l2core/v4l2_controls.c:62 msgid "Shutter Priority Mode" msgstr "" -#: ../src/v4l2uvc.c:71 +#: ../gview_v4l2core/v4l2_controls.c:63 msgid "Aperture Priority Mode" msgstr "" -#: ../src/v4l2uvc.c:72 +#: ../gview_v4l2core/v4l2_controls.c:64 msgid "Black Level" msgstr "Razina Crne boje" -#: ../src/v4l2uvc.c:73 +#: ../gview_v4l2core/v4l2_controls.c:65 msgid "White Balance, Automatic" msgstr "RavnoteĆŸa Bijele, Automatski" -#: ../src/v4l2uvc.c:74 +#: ../gview_v4l2core/v4l2_controls.c:66 msgid "Do White Balance" msgstr "Uredi RavnoteĆŸu Bijele" -#: ../src/v4l2uvc.c:75 +#: ../gview_v4l2core/v4l2_controls.c:67 msgid "Red Balance" msgstr "RavnoteĆŸa Crvene" -#: ../src/v4l2uvc.c:76 +#: ../gview_v4l2core/v4l2_controls.c:68 msgid "Blue Balance" msgstr "RavnoteĆŸa Plave" -#: ../src/v4l2uvc.c:77 +#: ../gview_v4l2core/v4l2_controls.c:69 msgid "Exposure" msgstr "IzloĆŸenost" -#: ../src/v4l2uvc.c:78 +#: ../gview_v4l2core/v4l2_controls.c:70 msgid "Gain, Automatic" msgstr "" -#: ../src/v4l2uvc.c:79 +#: ../gview_v4l2core/v4l2_controls.c:71 msgid "Gain" msgstr "Dobit" -#: ../src/v4l2uvc.c:80 +#: ../gview_v4l2core/v4l2_controls.c:72 msgid "Horizontal Flip" msgstr "Vodoravno Okretanje" -#: ../src/v4l2uvc.c:81 +#: ../gview_v4l2core/v4l2_controls.c:73 msgid "Vertical Flip" msgstr "Okomito Okretanje" -#: ../src/v4l2uvc.c:82 +#: ../gview_v4l2core/v4l2_controls.c:74 msgid "Horizontal Center" msgstr "Vodoravno Centriraj" -#: ../src/v4l2uvc.c:83 +#: ../gview_v4l2core/v4l2_controls.c:75 msgid "Vertical Center" msgstr "Okomito Centriraj" -#: ../src/v4l2uvc.c:84 +#: ../gview_v4l2core/v4l2_controls.c:76 msgid "Chroma AGC" msgstr "" -#: ../src/v4l2uvc.c:85 +#: ../gview_v4l2core/v4l2_controls.c:77 msgid "Color Killer" msgstr "" -#: ../src/v4l2uvc.c:86 +#: ../gview_v4l2core/v4l2_controls.c:78 msgid "Color Effects" msgstr "Efekti boje" #. CAMERA CLASS control strings -#: ../src/v4l2uvc.c:89 +#: ../gview_v4l2core/v4l2_controls.c:81 msgid "Camera Controls" msgstr "Kontrole Kamere" -#: ../src/v4l2uvc.c:90 +#: ../gview_v4l2core/v4l2_controls.c:82 msgid "Auto Exposure" msgstr "Automatska IzloĆŸenost" -#: ../src/v4l2uvc.c:91 +#: ../gview_v4l2core/v4l2_controls.c:83 msgid "Exposure Time, Absolute" msgstr "Vrijeme IzloĆŸenosti, Apsolutno" -#: ../src/v4l2uvc.c:92 +#: ../gview_v4l2core/v4l2_controls.c:84 msgid "Exposure, Dynamic Framerate" msgstr "IzloĆŸenost, Broj Slika" -#: ../src/v4l2uvc.c:93 +#: ../gview_v4l2core/v4l2_controls.c:85 msgid "Pan, Relative" msgstr "" -#: ../src/v4l2uvc.c:94 +#: ../gview_v4l2core/v4l2_controls.c:86 msgid "Tilt, Relative" msgstr "" -#: ../src/v4l2uvc.c:95 +#: ../gview_v4l2core/v4l2_controls.c:87 msgid "Pan, Reset" msgstr "" -#: ../src/v4l2uvc.c:96 +#: ../gview_v4l2core/v4l2_controls.c:88 msgid "Tilt, Reset" msgstr "" -#: ../src/v4l2uvc.c:97 +#: ../gview_v4l2core/v4l2_controls.c:89 msgid "Pan, Absolute" msgstr "" -#: ../src/v4l2uvc.c:99 +#: ../gview_v4l2core/v4l2_controls.c:91 msgid "Focus, Absolute" msgstr "Fokusiranje, Apsolutno" -#: ../src/v4l2uvc.c:100 +#: ../gview_v4l2core/v4l2_controls.c:92 msgid "Focus, Relative" msgstr "Fokusiranje, Relativno" -#: ../src/v4l2uvc.c:101 +#: ../gview_v4l2core/v4l2_controls.c:93 msgid "Focus, Automatic" msgstr "Fokusiranje, Automatsko" -#: ../src/v4l2uvc.c:102 +#: ../gview_v4l2core/v4l2_controls.c:94 msgid "Zoom, Absolute" msgstr "PribliĆŸavanje, Apsolutno" -#: ../src/v4l2uvc.c:103 +#: ../gview_v4l2core/v4l2_controls.c:95 msgid "Zoom, Relative" msgstr "PribliĆŸavanje, Relativno" -#: ../src/v4l2uvc.c:104 +#: ../gview_v4l2core/v4l2_controls.c:96 msgid "Zoom, Continuous" msgstr "PribliĆŸavanje, Neprestano" -#: ../src/v4l2uvc.c:105 +#: ../gview_v4l2core/v4l2_controls.c:97 msgid "Privacy" msgstr "Privatnost" #. UVC specific control strings -#: ../src/v4l2uvc.c:108 +#: ../gview_v4l2core/v4l2_controls.c:100 msgid "Exposure, Auto" msgstr "IzloĆŸenost, Automatsko" -#: ../src/v4l2uvc.c:109 +#: ../gview_v4l2core/v4l2_controls.c:101 msgid "Exposure, Auto Priority" msgstr "" -#: ../src/v4l2uvc.c:110 +#: ../gview_v4l2core/v4l2_controls.c:102 msgid "Exposure (Absolute)" msgstr "IzloĆŸenost (Apsolutna)" -#: ../src/v4l2uvc.c:111 +#: ../gview_v4l2core/v4l2_controls.c:103 msgid "White Balance Temperature, Auto" msgstr "" -#: ../src/v4l2uvc.c:112 +#: ../gview_v4l2core/v4l2_controls.c:104 msgid "White Balance Temperature" msgstr "" -#: ../src/v4l2uvc.c:113 +#: ../gview_v4l2core/v4l2_controls.c:105 msgid "White Balance Component, Auto" msgstr "" -#: ../src/v4l2uvc.c:114 +#: ../gview_v4l2core/v4l2_controls.c:106 msgid "White Balance Blue Component" msgstr "" -#: ../src/v4l2uvc.c:115 +#: ../gview_v4l2core/v4l2_controls.c:107 msgid "White Balance Red Component" msgstr "" #. libwebcam specific control strings -#: ../src/v4l2uvc.c:118 +#: ../gview_v4l2core/v4l2_controls.c:110 msgid "Focus" msgstr "Fokusiranje" -#: ../src/v4l2uvc.c:119 +#: ../gview_v4l2core/v4l2_controls.c:111 msgid "Focus (Absolute)" msgstr "" -#: ../src/vcodecs.c:63 -msgid "MJPG - compressed" +#: ../gview_v4l2core/v4l2_xu_ctrls.c:63 ../guvcview/gui_gtk3_v4l2ctrls.c:239 +msgid "Off" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:64 ../guvcview/gui_gtk3_v4l2ctrls.c:239 +msgid "On" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:65 ../guvcview/gui_gtk3_v4l2ctrls.c:239 +msgid "Blinking" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:66 ../guvcview/gui_gtk3_v4l2ctrls.c:239 +msgid "Auto" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:73 +msgid "Pan (relative)" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:86 +msgid "Tilt (relative)" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:99 +msgid "Pan Reset" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:112 +msgid "Tilt Reset" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:125 +msgid "Focus (absolute)" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:138 +msgid "LED1 Mode" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:151 +msgid "LED1 Frequency" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:164 +msgid "Disable video processing" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:177 +msgid "Raw bits per pixel" +msgstr "" + +#: ../gview_encoder/audio_codecs.c:63 +msgid "PCM - uncompressed (float 32 bit)" +msgstr "" + +#: ../gview_encoder/audio_codecs.c:80 +msgid "MP2 (MPEG audio layer 2)" +msgstr "" + +#: ../gview_encoder/audio_codecs.c:97 +msgid "MP3 (MPEG audio layer 3)" +msgstr "" + +#: ../gview_encoder/audio_codecs.c:118 +msgid "AC-3 (ATSC A/52A)" +msgstr "" + +#: ../gview_encoder/audio_codecs.c:139 +msgid "AAC (Advanced Audio Coding)" +msgstr "" + +#: ../gview_encoder/audio_codecs.c:160 +msgid "Vorbis" msgstr "" -#: ../src/vcodecs.c:99 -msgid "YUY2 - uncomp YUV" +#: ../gview_encoder/video_codecs.c:75 +msgid "Raw camera input" msgstr "" -#: ../src/vcodecs.c:135 -msgid "RGB - uncomp BMP" +#: ../gview_encoder/video_codecs.c:111 +msgid "MJPG - compressed" msgstr "" -#: ../src/vcodecs.c:171 +#: ../gview_encoder/video_codecs.c:147 msgid "MPEG video 1" msgstr "MPEG video 1" -#: ../src/vcodecs.c:207 +#: ../gview_encoder/video_codecs.c:183 msgid "FLV1 - flash video 1" msgstr "FLV1 - flash video 1" -#: ../src/vcodecs.c:243 +#: ../gview_encoder/video_codecs.c:219 msgid "WMV1 - win. med. video 7" msgstr "WMV1 - win. med. video 7" -#: ../src/vcodecs.c:279 +#: ../gview_encoder/video_codecs.c:255 msgid "MPG2 - MPG2 format" msgstr "MPG2 - MPG2 format" -#: ../src/vcodecs.c:315 -msgid "MS MP4 V3" -msgstr "MS MP4 V3" +#: ../gview_encoder/video_codecs.c:291 +msgid "MS MP4 V3" +msgstr "MS MP4 V3" + +#: ../gview_encoder/video_codecs.c:327 +msgid "MPEG4-ASP" +msgstr "MPEG4-ASP" + +#: ../gview_encoder/video_codecs.c:363 +msgid "MPEG4-AVC (H264)" +msgstr "MPEG4-AVC (H264)" + +#: ../gview_encoder/video_codecs.c:403 +msgid "VP8 (VP8)" +msgstr "" + +#: ../gview_encoder/video_codecs.c:439 +msgid "Theora (ogg theora)" +msgstr "" + +#: ../guvcview/gui_gtk3_audioctrls.c:95 +msgid "Audio API:" +msgstr "" + +#: ../guvcview/gui_gtk3_audioctrls.c:106 +msgid "NO SOUND" +msgstr "" + +#: ../guvcview/gui_gtk3_audioctrls.c:107 +msgid "PORTAUDIO" +msgstr "" + +#: ../guvcview/gui_gtk3_audioctrls.c:110 +msgid "PULSEAUDIO" +msgstr "" + +#: ../guvcview/gui_gtk3_audioctrls.c:127 +msgid "Input Device:" +msgstr "Ulazni uređaj:" + +#: ../guvcview/gui_gtk3_audioctrls.c:161 +msgid "Sample Rate:" +msgstr "" + +#: ../guvcview/gui_gtk3_audioctrls.c:168 ../guvcview/gui_gtk3_audioctrls.c:214 +msgid "Dev. Default" +msgstr "Zadane Postavke Uređaja" + +#: ../guvcview/gui_gtk3_audioctrls.c:207 +msgid "Channels:" +msgstr "Kanali:" + +#: ../guvcview/gui_gtk3_audioctrls.c:215 +msgid "1 - mono" +msgstr "1 - mono" + +#: ../guvcview/gui_gtk3_audioctrls.c:216 +msgid "2 - stereo" +msgstr "2 - stereo" + +#: ../guvcview/gui_gtk3_audioctrls.c:235 +#, fuzzy +msgid "---- Audio Filters ----" +msgstr "---- Video Filteri ----" + +#. Echo FX +#: ../guvcview/gui_gtk3_audioctrls.c:255 +msgid " Echo" +msgstr " Jeka" + +#. Reverb FX +#: ../guvcview/gui_gtk3_audioctrls.c:268 +msgid " Reverb" +msgstr " Odjek" + +#. Fuzz FX +#: ../guvcview/gui_gtk3_audioctrls.c:281 +msgid " Fuzz" +msgstr " Mutno" + +#. WahWah FX +#: ../guvcview/gui_gtk3_audioctrls.c:294 +msgid " WahWah" +msgstr "" + +#. Ducky FX +#: ../guvcview/gui_gtk3_audioctrls.c:307 +msgid " Ducky" +msgstr " Patka" + +#: ../guvcview/gui_gtk3.c:310 ../guvcview/gui_gtk3_callbacks.c:749 +msgid "Stop Video (V)" +msgstr "Zaustavi Video (V)" + +#. video button +#: ../guvcview/gui_gtk3.c:315 ../guvcview/gui_gtk3.c:600 +#: ../guvcview/gui_gtk3_callbacks.c:755 +msgid "Cap. Video (V)" +msgstr "Snimi Video (V)" + +#: ../guvcview/gui_gtk3.c:376 ../guvcview/gui_gtk3.c:383 +msgid "Error" +msgstr "GrjeĆĄka" + +#: ../guvcview/gui_gtk3.c:379 ../guvcview/gui_gtk3.c:386 +#: ../guvcview/gui_gtk3_callbacks.c:2097 +msgid "_Ok" +msgstr "" + +#: ../guvcview/gui_gtk3.c:380 ../guvcview/gui_gtk3_callbacks.c:185 +#: ../guvcview/gui_gtk3_callbacks.c:199 ../guvcview/gui_gtk3_callbacks.c:522 +#: ../guvcview/gui_gtk3_callbacks.c:624 ../guvcview/gui_gtk3_callbacks.c:1755 +#: ../guvcview/gui_gtk3_callbacks.c:2098 +#, fuzzy +msgid "_Cancel" +msgstr "odustani" + +#: ../guvcview/gui_gtk3.c:407 +msgid "" +"\n" +"You have more than one video device installed.\n" +"Do you want to try another one ?\n" +msgstr "" +"\n" +"Imate viĆĄe uređaja instalirano.\n" +"Ćœelite li isprobati ostale?\n" + +#. ---- Devices ---- +#: ../guvcview/gui_gtk3.c:414 ../guvcview/gui_gtk3_videoctrls.c:106 +msgid "Device:" +msgstr "Uređaj:" + +#: ../guvcview/gui_gtk3.c:516 +msgid "Guvcview Video Capture" +msgstr "Guvcview Snimanje Videa" + +#: ../guvcview/gui_gtk3.c:525 +#, fuzzy +msgid "Guvcview" +msgstr "Guvcview Upozorenje" + +#: ../guvcview/gui_gtk3.c:572 +#, fuzzy +msgid "Stop Cap. (I)" +msgstr "Zaustavi Automatsko (I)" + +#: ../guvcview/gui_gtk3.c:578 ../guvcview/gui_gtk3_callbacks.c:720 +#: ../guvcview/video_capture.c:250 +msgid "Cap. Image (I)" +msgstr "Snimi Sliku (I)" + +#. quit button +#. GtkWidget *quitButton = gtk_button_new_from_stock(GTK_STOCK_QUIT); +#: ../guvcview/gui_gtk3.c:621 +msgid "_Quit" +msgstr "" + +#: ../guvcview/gui_gtk3.c:667 +msgid "Image Controls" +msgstr "Kontrole Slike" + +#: ../guvcview/gui_gtk3.c:703 +#, fuzzy +msgid "H264 Controls" +msgstr "Korisničke Kontrole" + +#: ../guvcview/gui_gtk3.c:742 +#, fuzzy +msgid "Video Controls" +msgstr "Korisničke Kontrole" + +#: ../guvcview/gui_gtk3.c:777 +#, fuzzy +msgid "Audio Controls" +msgstr "Korisničke Kontrole" + +#: ../guvcview/gui_gtk3_callbacks.c:182 ../guvcview/gui_gtk3_menu.c:72 +msgid "Save Profile" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:186 ../guvcview/gui_gtk3_callbacks.c:523 +#: ../guvcview/gui_gtk3_callbacks.c:625 +msgid "_Save" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:196 ../guvcview/gui_gtk3_menu.c:71 +msgid "Load Profile" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:200 +msgid "_Open" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:208 ../guvcview/gui_gtk3_callbacks.c:531 +#: ../guvcview/gui_gtk3_callbacks.c:634 +msgid "File Format:" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:220 +msgid "gpfl (*.gpfl)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:221 +msgid "any (*.*)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:519 +#, fuzzy +msgid "Photo file name" +msgstr "Ime Slikovne Datoteke" + +#: ../guvcview/gui_gtk3_callbacks.c:543 +msgid "Raw (*.raw)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:544 +msgid "Jpeg (*.jpg)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:545 +msgid "Png (*.png)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:546 +msgid "Bmp (*.bmp)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:621 +#, fuzzy +msgid "Video file name" +msgstr "Ime Slikovne Datoteke" + +#: ../guvcview/gui_gtk3_callbacks.c:646 +msgid "Matroska (*.mkv)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:647 +msgid "WebM (*.webm)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:648 +msgid "Avi (*.avi)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:1158 +msgid "start new" +msgstr "pokreni novo" + +#: ../guvcview/gui_gtk3_callbacks.c:1161 +msgid "restart" +msgstr "ponovo pokreni" + +#: ../guvcview/gui_gtk3_callbacks.c:1163 +msgid "new" +msgstr "novo" + +#: ../guvcview/gui_gtk3_callbacks.c:1165 +msgid "cancel" +msgstr "odustani" + +#: ../guvcview/gui_gtk3_callbacks.c:1170 +msgid "" +"launch new process or restart?.\n" +"\n" +msgstr "" +"upalite novi proces ili ponovno pokrenite?.\n" +"\n" + +#: ../guvcview/gui_gtk3_callbacks.c:1751 +#, fuzzy +msgid "video codec values" +msgstr "vrijednosti audio codeca" + +#: ../guvcview/gui_gtk3_callbacks.c:1754 +msgid "_OK" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:1760 +msgid "" +" encoder fps: \n" +" (0 - use fps combobox value)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:1773 +msgid " monotonic pts" +msgstr "" + +#. bit rate +#: ../guvcview/gui_gtk3_callbacks.c:1780 ../guvcview/gui_gtk3_callbacks.c:2105 +msgid "bit rate: " +msgstr "" -#: ../src/vcodecs.c:351 -msgid "MPEG4-ASP" -msgstr "MPEG4-ASP" +#: ../guvcview/gui_gtk3_callbacks.c:1793 +msgid "qmax: " +msgstr "" -#: ../src/vcodecs.c:387 -msgid "MPEG4-AVC (H264)" -msgstr "MPEG4-AVC (H264)" +#: ../guvcview/gui_gtk3_callbacks.c:1806 +msgid "qmin: " +msgstr "" -#: ../src/vcodecs.c:427 -msgid "VP8 (VP8)" +#: ../guvcview/gui_gtk3_callbacks.c:1819 +msgid "max. qdiff: " msgstr "" -#: ../src/vcodecs.c:463 -msgid "Theora (ogg theora)" +#: ../guvcview/gui_gtk3_callbacks.c:1832 +msgid "dia size: " msgstr "" -#: ../src/video_format.c:43 -msgid "AVI - avi format" +#: ../guvcview/gui_gtk3_callbacks.c:1845 +msgid "pre dia size: " msgstr "" -#: ../src/video_format.c:52 -msgid "MKV - Matroska format" +#: ../guvcview/gui_gtk3_callbacks.c:1858 +msgid "pre me: " msgstr "" -#: ../src/video_format.c:61 -msgid "WEBM - format" +#: ../guvcview/gui_gtk3_callbacks.c:1871 +msgid "pre cmp: " msgstr "" -#: ../src/video_tab.c:216 -msgid "Frame Rate:" -msgstr "Broj Slika:" +#: ../guvcview/gui_gtk3_callbacks.c:1884 +msgid "cmp: " +msgstr "" -#: ../src/video_tab.c:223 -msgid " Show" -msgstr " PrikaĆŸi" +#: ../guvcview/gui_gtk3_callbacks.c:1897 +msgid "sub cmp: " +msgstr "" -#: ../src/video_tab.c:245 -msgid "Resolution:" -msgstr "Razlučivost:" +#: ../guvcview/gui_gtk3_callbacks.c:1910 +msgid "last predictor count: " +msgstr "" -#: ../src/video_tab.c:271 -msgid "Camera Output:" +#: ../guvcview/gui_gtk3_callbacks.c:1923 +msgid "gop size: " msgstr "" -#: ../src/video_tab.c:293 -msgid "Apply" -msgstr "Primjeni" +#: ../guvcview/gui_gtk3_callbacks.c:1936 +msgid "qcompress: " +msgstr "" -#: ../src/video_tab.c:300 -msgid "Quality:" -msgstr "Kvaliteta:" +#: ../guvcview/gui_gtk3_callbacks.c:1949 +msgid "qblur: " +msgstr "" -#: ../src/video_tab.c:310 -msgid "---- Video Filters ----" -msgstr "---- Video Filteri ----" +#: ../guvcview/gui_gtk3_callbacks.c:1962 +msgid "subq: " +msgstr "" -#. Mirror -#: ../src/video_tab.c:329 -msgid " Mirror" -msgstr " Zrcalo" +#: ../guvcview/gui_gtk3_callbacks.c:1975 +msgid "framerefs: " +msgstr "" -#. Upturn -#: ../src/video_tab.c:340 -msgid " Invert" -msgstr " Izokrenuto" +#: ../guvcview/gui_gtk3_callbacks.c:1988 +msgid "me method: " +msgstr "" -#. Negate -#: ../src/video_tab.c:351 -msgid " Negative" -msgstr " Negativ" +#: ../guvcview/gui_gtk3_callbacks.c:2001 +msgid "mb decision: " +msgstr "" -#. Mono -#: ../src/video_tab.c:362 -msgid " Mono" -msgstr " Mono" +#: ../guvcview/gui_gtk3_callbacks.c:2014 +msgid "max B frames: " +msgstr "" -#. Pieces -#: ../src/video_tab.c:374 -msgid " Pieces" -msgstr " Komadići" +#: ../guvcview/gui_gtk3_callbacks.c:2027 +msgid "num threads: " +msgstr "" -#. Particles -#: ../src/video_tab.c:386 -msgid " Particles" -msgstr " Čestice" +#: ../guvcview/gui_gtk3_callbacks.c:2094 +msgid "audio codec values" +msgstr "vrijednosti audio codeca" -#: ../src/uvc_h264.c:596 -msgid "H264 Controls" +#. sample format +#: ../guvcview/gui_gtk3_callbacks.c:2119 +msgid "sample format: " msgstr "" -#: ../src/uvc_h264.c:615 +#: ../guvcview/gui_gtk3_h264ctrls.c:622 +#, fuzzy msgid "Rate Control Mode:" -msgstr "" +msgstr "Kontrole Slike" -#: ../src/uvc_h264.c:626 +#: ../guvcview/gui_gtk3_h264ctrls.c:633 msgid "CBR" msgstr "" -#: ../src/uvc_h264.c:629 +#: ../guvcview/gui_gtk3_h264ctrls.c:636 msgid "VBR" msgstr "" -#: ../src/uvc_h264.c:633 +#: ../guvcview/gui_gtk3_h264ctrls.c:640 msgid "Constant QP" msgstr "" -#: ../src/uvc_h264.c:651 +#: ../guvcview/gui_gtk3_h264ctrls.c:658 msgid "Rate Control Mode flags:" msgstr "" -#: ../src/uvc_h264.c:676 +#: ../guvcview/gui_gtk3_h264ctrls.c:683 msgid "Temporal Scale Mode:" msgstr "" -#: ../src/uvc_h264.c:704 +#: ../guvcview/gui_gtk3_h264ctrls.c:711 msgid "Spatial Scale Mode:" msgstr "" -#: ../src/uvc_h264.c:737 +#: ../guvcview/gui_gtk3_h264ctrls.c:741 msgid "Frame Interval (100ns units):" msgstr "" -#: ../src/uvc_h264.c:772 +#: ../guvcview/gui_gtk3_h264ctrls.c:778 +#, fuzzy msgid "Bit Rate:" -msgstr "" +msgstr "Broj Slika:" -#: ../src/uvc_h264.c:795 +#: ../guvcview/gui_gtk3_h264ctrls.c:801 msgid "Hints:" msgstr "" -#: ../src/uvc_h264.c:800 +#: ../guvcview/gui_gtk3_h264ctrls.c:806 +#, fuzzy msgid "Resolution" -msgstr "" +msgstr "Razlučivost:" -#: ../src/uvc_h264.c:804 +#: ../guvcview/gui_gtk3_h264ctrls.c:810 msgid "Profile" msgstr "" -#: ../src/uvc_h264.c:808 +#: ../guvcview/gui_gtk3_h264ctrls.c:814 +#, fuzzy msgid "Rate Control" -msgstr "" +msgstr "Kontrole Slike" -#: ../src/uvc_h264.c:812 +#: ../guvcview/gui_gtk3_h264ctrls.c:818 msgid "Usage Type" msgstr "" -#: ../src/uvc_h264.c:816 +#: ../guvcview/gui_gtk3_h264ctrls.c:822 msgid "Slice Mode" msgstr "" -#: ../src/uvc_h264.c:820 +#: ../guvcview/gui_gtk3_h264ctrls.c:826 msgid "Slice Unit" msgstr "" -#: ../src/uvc_h264.c:824 +#: ../guvcview/gui_gtk3_h264ctrls.c:830 msgid "MVC View" msgstr "" -#: ../src/uvc_h264.c:828 +#: ../guvcview/gui_gtk3_h264ctrls.c:834 msgid "Temporal Scale" msgstr "" -#: ../src/uvc_h264.c:832 +#: ../guvcview/gui_gtk3_h264ctrls.c:838 msgid "SNR Scale" msgstr "" -#: ../src/uvc_h264.c:836 +#: ../guvcview/gui_gtk3_h264ctrls.c:842 msgid "Spatial Scale" msgstr "" -#: ../src/uvc_h264.c:840 +#: ../guvcview/gui_gtk3_h264ctrls.c:846 msgid "Spatial Layer Ratio" msgstr "" -#: ../src/uvc_h264.c:844 +#: ../guvcview/gui_gtk3_h264ctrls.c:850 +#, fuzzy msgid "Frame Interval" -msgstr "" +msgstr "Broj Slika:" -#: ../src/uvc_h264.c:848 +#: ../guvcview/gui_gtk3_h264ctrls.c:854 msgid "Leaky Bucket Size" msgstr "" -#: ../src/uvc_h264.c:852 +#: ../guvcview/gui_gtk3_h264ctrls.c:858 msgid "Bit Rate" msgstr "" -#: ../src/uvc_h264.c:856 ../src/uvc_h264.c:1250 +#: ../guvcview/gui_gtk3_h264ctrls.c:862 ../guvcview/gui_gtk3_h264ctrls.c:1220 msgid "CABAC" msgstr "" -#: ../src/uvc_h264.c:860 +#: ../guvcview/gui_gtk3_h264ctrls.c:866 msgid "(I) Frame Period" msgstr "" -#: ../src/uvc_h264.c:907 +#: ../guvcview/gui_gtk3_h264ctrls.c:878 msgid "Slice Mode:" msgstr "" -#: ../src/uvc_h264.c:914 +#: ../guvcview/gui_gtk3_h264ctrls.c:885 msgid "no multiple slices" msgstr "" -#: ../src/uvc_h264.c:916 +#: ../guvcview/gui_gtk3_h264ctrls.c:887 msgid "bits/slice" msgstr "" -#: ../src/uvc_h264.c:918 +#: ../guvcview/gui_gtk3_h264ctrls.c:889 msgid "Mbits/slice" msgstr "" -#: ../src/uvc_h264.c:920 +#: ../guvcview/gui_gtk3_h264ctrls.c:891 msgid "slices/frame" msgstr "" -#: ../src/uvc_h264.c:929 +#: ../guvcview/gui_gtk3_h264ctrls.c:900 msgid "Slice Units:" msgstr "" -#: ../src/uvc_h264.c:950 +#: ../guvcview/gui_gtk3_h264ctrls.c:921 msgid "Profile:" msgstr "" -#: ../src/uvc_h264.c:957 +#: ../guvcview/gui_gtk3_h264ctrls.c:928 msgid "Baseline Profile" msgstr "" -#: ../src/uvc_h264.c:959 +#: ../guvcview/gui_gtk3_h264ctrls.c:930 msgid "Main Profile" msgstr "" -#: ../src/uvc_h264.c:961 +#: ../guvcview/gui_gtk3_h264ctrls.c:932 msgid "High Profile" msgstr "" -#: ../src/uvc_h264.c:963 +#: ../guvcview/gui_gtk3_h264ctrls.c:934 msgid "Scalable Baseline Profile" msgstr "" -#: ../src/uvc_h264.c:965 +#: ../guvcview/gui_gtk3_h264ctrls.c:936 msgid "Scalable High Profile" msgstr "" -#: ../src/uvc_h264.c:967 +#: ../guvcview/gui_gtk3_h264ctrls.c:938 msgid "Multiview High Profile" msgstr "" -#: ../src/uvc_h264.c:969 +#: ../guvcview/gui_gtk3_h264ctrls.c:940 msgid "Stereo High Profile" msgstr "" -#: ../src/uvc_h264.c:1008 +#: ../guvcview/gui_gtk3_h264ctrls.c:979 msgid "Profile flags:" msgstr "" -#: ../src/uvc_h264.c:1033 +#: ../guvcview/gui_gtk3_h264ctrls.c:1004 msgid "(I) Frame Period (ms):" msgstr "" -#: ../src/uvc_h264.c:1054 +#: ../guvcview/gui_gtk3_h264ctrls.c:1025 msgid "Estimated Video Delay (ms):" msgstr "" -#: ../src/uvc_h264.c:1075 +#: ../guvcview/gui_gtk3_h264ctrls.c:1046 msgid "Estimated Max Config Delay (ms):" msgstr "" -#: ../src/uvc_h264.c:1096 +#: ../guvcview/gui_gtk3_h264ctrls.c:1067 msgid "Usage Type:" msgstr "" -#: ../src/uvc_h264.c:1103 +#: ../guvcview/gui_gtk3_h264ctrls.c:1074 msgid "Real-time" msgstr "" -#: ../src/uvc_h264.c:1105 +#: ../guvcview/gui_gtk3_h264ctrls.c:1076 msgid "Broadcast" msgstr "" -#: ../src/uvc_h264.c:1107 +#: ../guvcview/gui_gtk3_h264ctrls.c:1078 msgid "Storage" msgstr "" -#: ../src/uvc_h264.c:1109 +#: ../guvcview/gui_gtk3_h264ctrls.c:1080 msgid "(0) Non-scalable single layer AVC" msgstr "" -#: ../src/uvc_h264.c:1111 +#: ../guvcview/gui_gtk3_h264ctrls.c:1082 msgid "(1) SVC temporal scalability with hierarchical P" msgstr "" -#: ../src/uvc_h264.c:1113 +#: ../guvcview/gui_gtk3_h264ctrls.c:1084 msgid "(2q) SVC temporal scalability + Quality/SNR scalability" msgstr "" -#: ../src/uvc_h264.c:1115 +#: ../guvcview/gui_gtk3_h264ctrls.c:1086 msgid "(2s) SVC temporal scalability + spatial scalability" msgstr "" -#: ../src/uvc_h264.c:1117 +#: ../guvcview/gui_gtk3_h264ctrls.c:1088 msgid "(3) Full SVC scalability" msgstr "" -#: ../src/uvc_h264.c:1131 +#: ../guvcview/gui_gtk3_h264ctrls.c:1102 msgid "SNR Control Mode:" msgstr "" -#: ../src/uvc_h264.c:1138 +#: ../guvcview/gui_gtk3_h264ctrls.c:1109 msgid "No SNR Enhancement Layer" msgstr "" -#: ../src/uvc_h264.c:1140 +#: ../guvcview/gui_gtk3_h264ctrls.c:1111 msgid "CGS NonRewrite (2 Layer)" msgstr "" -#: ../src/uvc_h264.c:1142 +#: ../guvcview/gui_gtk3_h264ctrls.c:1113 msgid "CGS NonRewrite (3 Layer)" msgstr "" -#: ../src/uvc_h264.c:1144 +#: ../guvcview/gui_gtk3_h264ctrls.c:1115 msgid "CGS Rewrite (2 Layer)" msgstr "" -#: ../src/uvc_h264.c:1146 +#: ../guvcview/gui_gtk3_h264ctrls.c:1117 msgid "CGS Rewrite (3 Layer)" msgstr "" -#: ../src/uvc_h264.c:1148 +#: ../guvcview/gui_gtk3_h264ctrls.c:1119 msgid "MGS (2 Layer)" msgstr "" -#: ../src/uvc_h264.c:1173 +#: ../guvcview/gui_gtk3_h264ctrls.c:1144 msgid "Stream Mux Enable" msgstr "" -#: ../src/uvc_h264.c:1180 +#: ../guvcview/gui_gtk3_h264ctrls.c:1151 msgid "Embed H.264 aux stream" msgstr "" -#: ../src/uvc_h264.c:1182 +#: ../guvcview/gui_gtk3_h264ctrls.c:1153 msgid "Embed YUY2 aux stream" msgstr "" -#: ../src/uvc_h264.c:1184 +#: ../guvcview/gui_gtk3_h264ctrls.c:1155 msgid "Embed NV12 aux stream" msgstr "" -#: ../src/uvc_h264.c:1204 +#: ../guvcview/gui_gtk3_h264ctrls.c:1175 msgid "MJPG payload container" msgstr "" -#: ../src/uvc_h264.c:1219 +#: ../guvcview/gui_gtk3_h264ctrls.c:1189 msgid "Stream Format:" msgstr "" -#: ../src/uvc_h264.c:1227 +#: ../guvcview/gui_gtk3_h264ctrls.c:1197 msgid "Byte stream format (H.264 Annex-B)" msgstr "" -#: ../src/uvc_h264.c:1229 +#: ../guvcview/gui_gtk3_h264ctrls.c:1199 msgid "NAL stream format" msgstr "" -#: ../src/uvc_h264.c:1240 +#: ../guvcview/gui_gtk3_h264ctrls.c:1210 msgid "Entropy CABAC:" msgstr "" -#: ../src/uvc_h264.c:1248 +#: ../guvcview/gui_gtk3_h264ctrls.c:1218 msgid "CAVLC" msgstr "" -#: ../src/uvc_h264.c:1261 +#: ../guvcview/gui_gtk3_h264ctrls.c:1231 msgid "Picture timing SEI" msgstr "" -#: ../src/uvc_h264.c:1268 +#: ../guvcview/gui_gtk3_h264ctrls.c:1238 +#, fuzzy msgid "B Frames:" -msgstr "" +msgstr "Broj Slika:" -#: ../src/uvc_h264.c:1293 +#: ../guvcview/gui_gtk3_h264ctrls.c:1263 msgid "Preview Flipped" msgstr "" -#: ../src/uvc_h264.c:1300 +#: ../guvcview/gui_gtk3_h264ctrls.c:1270 msgid "Additional MVC Views:" msgstr "" -#: ../src/uvc_h264.c:1325 +#: ../guvcview/gui_gtk3_h264ctrls.c:1295 msgid "Simulcast stream index:" msgstr "" -#: ../src/uvc_h264.c:1350 +#: ../guvcview/gui_gtk3_h264ctrls.c:1320 msgid "Spatial Layer Ratio:" msgstr "" -#: ../src/uvc_h264.c:1379 +#: ../guvcview/gui_gtk3_h264ctrls.c:1349 msgid "Leaky Bucket Size (ms):" msgstr "" #. encoder reset -#: ../src/uvc_h264.c:1406 +#: ../guvcview/gui_gtk3_h264ctrls.c:1376 msgid "Encoder Reset" msgstr "" -#. -#. h264_controls->probe_button = gtk_button_new_with_label(_("PROBE")); -#. g_signal_connect (GTK_BUTTON(h264_controls->probe_button), "clicked", +#. +#. GtkWidget *probe_button = gtk_button_new_with_label(_("PROBE")); +#. g_signal_connect (GTK_BUTTON(probe_button), "clicked", #. G_CALLBACK (h264_probe_button_clicked), all_data); -#. -#. gtk_grid_attach (GTK_GRID(table), h264_controls->probe_button, 0, line, 1 ,1); -#. gtk_widget_show(h264_controls->probe_button); -#. -#: ../src/uvc_h264.c:1421 +#. +#. gtk_grid_attach (GTK_GRID(h264_controls_grid), probe_button, 0, line, 1 ,1); +#. gtk_widget_show(probe_button); +#. +#: ../guvcview/gui_gtk3_h264ctrls.c:1391 msgid "COMMIT" msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:70 +msgid "Settings" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:73 +msgid "Hardware Defaults" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:81 +msgid "Camera Button" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:86 +msgid "Capture Image" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:91 +msgid "Capture Video" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:134 +msgid "Photo" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:135 ../guvcview/gui_gtk3_menu.c:159 +msgid "File" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:136 ../guvcview/gui_gtk3_menu.c:160 +msgid "Increment Filename" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:158 +msgid "Video" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:175 +msgid "Video Codec" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:202 +msgid "Video Codec Properties" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:208 +msgid "Audio Codec" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:235 +msgid "Audio Codec Properties" +msgstr "" + +#: ../guvcview/gui_gtk3_v4l2ctrls.c:174 +msgid "Left" +msgstr "Lijevo" + +#: ../guvcview/gui_gtk3_v4l2ctrls.c:175 +msgid "Right" +msgstr "Desno:" + +#: ../guvcview/gui_gtk3_v4l2ctrls.c:179 +msgid "Down" +msgstr "Dolje" + +#: ../guvcview/gui_gtk3_v4l2ctrls.c:180 +msgid "Up" +msgstr "Gore" + +#. turn it into a menu control +#: ../guvcview/gui_gtk3_v4l2ctrls.c:296 +msgid "8 bit" +msgstr "" + +#: ../guvcview/gui_gtk3_v4l2ctrls.c:296 +msgid "12 bit" +msgstr "" + +#. add a virtual control for software autofocus +#: ../guvcview/gui_gtk3_v4l2ctrls.c:348 +msgid "Auto Focus (continuous)" +msgstr "Automatski Focus (neprekidno)" + +#: ../guvcview/gui_gtk3_v4l2ctrls.c:349 +msgid "set Focus" +msgstr "postavi fokusiranje" + +#. control_widgets_list[n].widget2 = gtk_button_new_from_stock(GTK_STOCK_APPLY); +#. control_widgets_list[n].widget2= gtk_button_new_from_stock(GTK_STOCK_APPLY); +#. control_widgets_list[n].widget2 = gtk_button_new_from_stock(GTK_STOCK_APPLY); +#: ../guvcview/gui_gtk3_v4l2ctrls.c:433 ../guvcview/gui_gtk3_v4l2ctrls.c:456 +#: ../guvcview/gui_gtk3_v4l2ctrls.c:478 +#, fuzzy +msgid "_Apply" +msgstr "Primjeni" + +#: ../guvcview/gui_gtk3_videoctrls.c:144 +msgid "Frame Rate:" +msgstr "Broj Slika:" + +#: ../guvcview/gui_gtk3_videoctrls.c:204 +msgid "Resolution:" +msgstr "Razlučivost:" + +#: ../guvcview/gui_gtk3_videoctrls.c:254 +msgid "Camera Output:" +msgstr "" + +#: ../guvcview/gui_gtk3_videoctrls.c:287 +msgid "---- Video Filters ----" +msgstr "---- Video Filteri ----" + +#. Mirror FX +#: ../guvcview/gui_gtk3_videoctrls.c:307 +msgid " Mirror" +msgstr " Zrcalo" + +#. Upturn FX +#: ../guvcview/gui_gtk3_videoctrls.c:319 +msgid " Invert" +msgstr " Izokrenuto" + +#. Negate FX +#: ../guvcview/gui_gtk3_videoctrls.c:331 +msgid " Negative" +msgstr " Negativ" + +#. Mono FX +#: ../guvcview/gui_gtk3_videoctrls.c:343 +msgid " Mono" +msgstr " Mono" + +#. Pieces FX +#: ../guvcview/gui_gtk3_videoctrls.c:356 +msgid " Pieces" +msgstr " Komadići" + +#. Particles +#: ../guvcview/gui_gtk3_videoctrls.c:369 +msgid " Particles" +msgstr " Čestice" + +#: ../guvcview/options.c:51 +msgid "Print help" +msgstr "" + +#: ../guvcview/options.c:58 +#, fuzzy +msgid "Print version" +msgstr "Isprintaj verziju" + +#: ../guvcview/options.c:64 +msgid "LEVEL" +msgstr "" + +#: ../guvcview/options.c:65 +msgid "Set Verbosity level (def: 0)" +msgstr "" + +#: ../guvcview/options.c:71 +msgid "DEVICE" +msgstr "" + +#: ../guvcview/options.c:72 +#, fuzzy +msgid "Set device name (def: /dev/video0)" +msgstr "Video uređaj rabljen [zadani: /dev/video0]" + +#: ../guvcview/options.c:78 +msgid "METHOD" +msgstr "" + +#: ../guvcview/options.c:79 +msgid "Set capture method [read | mmap (def)]" +msgstr "" + +#: ../guvcview/options.c:85 +msgid "WIDTHxHEIGHT" +msgstr "" + +#: ../guvcview/options.c:86 +msgid "Request resolution (e.g 640x480)" +msgstr "" + +#: ../guvcview/options.c:92 +msgid "FOURCC" +msgstr "" + +#: ../guvcview/options.c:93 +msgid "Request format (e.g MJPG)" +msgstr "" + +#: ../guvcview/options.c:99 +msgid "RENDER_API" +msgstr "" + +#: ../guvcview/options.c:100 +msgid "Select render API (e.g none; sdl)" +msgstr "" + +#: ../guvcview/options.c:106 +msgid "AUDIO_API" +msgstr "" + +#: ../guvcview/options.c:107 +msgid "Select audio API (e.g none; port; pulse)" +msgstr "" + +#: ../guvcview/options.c:113 +msgid "AUDIO_DEVICE" +msgstr "" + +#: ../guvcview/options.c:114 +msgid "Select audio device index for selected api (0..N)" +msgstr "" + +#: ../guvcview/options.c:120 +msgid "GUI_API" +msgstr "" + +#: ../guvcview/options.c:121 +msgid "Select GUI API (e.g none; gtk3)" +msgstr "" + +#: ../guvcview/options.c:127 ../guvcview/options.c:134 +msgid "CODEC" +msgstr "" + +#: ../guvcview/options.c:128 +msgid "Audio codec [pcm mp2 mp3 aac ac3 vorb]" +msgstr "" + +#: ../guvcview/options.c:135 +msgid "Video codec [raw mjpg mpeg flv1 wmv1 mpg2 mp43 dx50 h264 vp80 theo]" +msgstr "" + +#: ../guvcview/options.c:141 ../guvcview/options.c:148 +#: ../guvcview/options.c:155 +msgid "FILENAME" +msgstr "" + +#: ../guvcview/options.c:142 +msgid "load control profile" +msgstr "" + +#: ../guvcview/options.c:149 +msgid "filename for captured video)" +msgstr "" + +#: ../guvcview/options.c:156 +msgid "filename for captured image)" +msgstr "" + +#: ../guvcview/options.c:162 ../guvcview/options.c:169 +msgid "TIME_IN_SEC" +msgstr "" + +#: ../guvcview/options.c:163 +msgid "time (double) in sec. for video capture)" +msgstr "" + +#: ../guvcview/options.c:170 +msgid "time (double) in sec. between captured photos)" +msgstr "" + +#: ../guvcview/options.c:176 +msgid "TOTAL" +msgstr "" + +#: ../guvcview/options.c:177 +msgid "total number of captured photos)" +msgstr "" + +#: ../guvcview/options.c:184 +msgid "Start in control panel mode" +msgstr "" + +#: ../guvcview/options.c:307 +#, fuzzy, c-format +msgid "" +"Guvcview version %s\n" +"\n" +msgstr "Guvcview Upozorenje" + +#: ../guvcview/options.c:308 +#, c-format +msgid "" +"Usage:\n" +" guvcview [OPTIONS]\n" +"\n" +msgstr "" + +#: ../guvcview/options.c:309 +#, c-format +msgid "OPTIONS:\n" +msgstr "" + +#: ../guvcview/video_capture.c:819 +#, c-format +msgid "saving video to %s" +msgstr "" + +#. if(debug_level > 1) +#. printf("GUVCVIEW: saving image to %s\n", img_filename); +#: ../guvcview/video_capture.c:1069 +#, c-format +msgid "saving image to %s" +msgstr "" + +#~ msgid "Audio" +#~ msgstr "Audio" + +#~ msgid " Sound" +#~ msgstr " Zvuk" + +#~ msgid "---- Audio Effects ----" +#~ msgstr "---- Audio Efekti ----" + +#~ msgid "Save File" +#~ msgstr "Spremi Datoteku" + +#~ msgid "Cap. Video" +#~ msgstr "Snimi Video" + +#~ msgid "GUVCViewer Controls" +#~ msgstr "GUVCViewer Kontrole" + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to open device" +#~ msgstr "" +#~ "Guvcview grjeĆĄka:\n" +#~ "\n" +#~ "Nije moguče pokrenuti uređaj" + +#~ msgid "" +#~ "Please make sure the camera is connected\n" +#~ "and that the correct driver is installed." +#~ msgstr "" +#~ "Molim provjerite dali je kamera spojena\n" +#~ "i dali je instaliran ispravan driver." + +#~ msgid "" +#~ "Guvcview:\n" +#~ "\n" +#~ "UVC Extension controls" +#~ msgstr "" +#~ "Guvcview:\n" +#~ "\n" +#~ "UVC kontrole Ekstenzije" + +#~ msgid "Extension controls were added to the UVC driver" +#~ msgstr "Kontrole Ekstenzije su dodane UVC driveru" + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "UVC Extension controls" +#~ msgstr "" +#~ "Guvcview:\n" +#~ "\n" +#~ "UVC kontrole Ekstenzije" + +#~ msgid "" +#~ "An error occurred while adding extension\n" +#~ "controls to the UVC driver\n" +#~ "Make sure you run guvcview as root (or sudo)." +#~ msgstr "" +#~ "Dogodila se grjeĆĄka prilikom dodavanja kontrola\n" +#~ "ekstenzije UVC driveru\n" +#~ "Pokrenite guvcview kao root (ili sudo)." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Can't set a valid video stream for guvcview" +#~ msgstr "" +#~ "Guvcview grjeĆĄka:\n" +#~ "\n" +#~ "Nije moguče postaviti vrijedeći video stream za guvcview" + +#~ msgid "" +#~ "Make sure your device driver is v4l2 compliant\n" +#~ "and that it is properly installed." +#~ msgstr "" +#~ "Provjerite dali vaĆĄ video driver ima podrĆĄku za v4l2\n" +#~ "i pogledajte dali je ispravno instaliran." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to start with minimum setup" +#~ msgstr "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Nije moguče pokretanje s minimalnim postavkama" + +#~ msgid "Please reconnect your camera." +#~ msgstr "Molim ponovno spajanje kamere." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Couldn't query device capabilities" +#~ msgstr "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Sposobnost uređaja nije čitljiva" + +#~ msgid "Make sure the device driver supports v4l2." +#~ msgstr "Provjerite da vaĆĄ driver ima podrĆĄku za v4l2." + +#~ msgid "Please try restarting your system." +#~ msgstr "Probajte ponovno pokrenuti vaĆĄ sustav." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to create Video Thread" +#~ msgstr "" +#~ "Guvcview grjeĆĄka:\n" +#~ "\n" +#~ "Nije moguče pokrenuti uređaj" + +#~ msgid "Please report it to http://developer.berlios.de/bugs/?group_id=8179" +#~ msgstr "Molimo prijavite na http://developer.berlios.de/bugs/?group_id=8179" + +#~ msgid "Exit after adding UVC extension controls (needs root/sudo)" +#~ msgstr "" +#~ "Izlaz nakon dodavanja UVC ekstenzivnih kontrola (potreban root/sudo)" + +#~ msgid "Configuration file" +#~ msgstr "Datoteka Postavki" + +#~ msgid "Hardware accelaration (enable(1) | disable(0))" +#~ msgstr "Hardversko ubrzanje (omoguči(1) | onemoguči(0))" + +#~ msgid "Frame size, default: 640x480" +#~ msgstr "Veličina slike, zadana: 640x480" + +#~ msgid "Image capture interval in seconds" +#~ msgstr "Interval slikanja u sekundama" + +#~ msgid "Number of Pictures to capture" +#~ msgstr "Broj Slika za snimiti" + +#~ msgid "Video File name (capture from start)" +#~ msgstr "Ime Video Datoteke (snimka od početka)" + +#~ msgid "Video capture time (in seconds)" +#~ msgstr "Vrijeme snimanja videa (u sekundama)" + +#~ msgid "Exits guvcview after closing video" +#~ msgstr "Izlaz iz guvcviewa nakon zatvaranja videa" + +#~ msgid "Number of initial frames to skip" +#~ msgstr "Broj preskočenih početnih slika" + +#~ msgid "Show FPS value (enable(1) | disable (0))" +#~ msgstr "Prikaz FPS broja (omoguči(1) | onemoguči (0))" + +#~ msgid "Load Profile at start" +#~ msgstr "Učitaj Profil pri pokretanju" + +#~ msgid "- local options" +#~ msgstr "- lokalne opcije" + +#~ msgid "Cap. Image" +#~ msgstr "Snimi Sliku" + +#~ msgid "Not enough free space left on disk" +#~ msgstr "Nema dovoljno slobodnog prostora na disku" + +#~ msgid " Show" +#~ msgstr " PrikaĆŸi" + +#~ msgid "Quality:" +#~ msgstr "Kvaliteta:" diff -Nru guvcview-1.7.3/po/it.po guvcview-2.0.1+ubuntu1~ppa1/po/it.po --- guvcview-1.7.3/po/it.po 2014-03-24 22:56:28.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/po/it.po 2014-10-05 10:41:44.000000000 +0000 @@ -8,16 +8,16 @@ msgstr "" "Project-Id-Version: guvcview\n" "Report-Msgid-Bugs-To: pj.assis@gmail.com\n" -"POT-Creation-Date: 2013-11-14 22:15+0000\n" +"POT-Creation-Date: 2014-08-17 22:49+0100\n" "PO-Revision-Date: 2013-03-07 02:31+0000\n" "Last-Translator: Giovanni Scafora \n" "Language-Team: Arch Linux Italian Team \n" +"Language: it\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-12-08 10:36+0000\n" "X-Generator: Launchpad (build 16869)\n" -"Language: it\n" #: ../data/guvcview.desktop.in.in.h:1 msgid "guvcview" @@ -29,1399 +29,1632 @@ #: ../data/guvcview.desktop.in.in.h:3 msgid "A video viewer and capturer for the linux uvc driver" -msgstr "Un visualizzatore e catturatore video per il driver uvc di linux" - -#: ../src/acodecs.c:59 -msgid "PCM - uncompressed (16 bit)" -msgstr "PCM - non compresso (16 bit)" - -#: ../src/acodecs.c:76 -msgid "MPEG2 - (lavc)" -msgstr "MPEG2 - (lavc)" - -#: ../src/acodecs.c:93 -msgid "MP3 - (lavc)" -msgstr "MP3 - (lavc)" - -#: ../src/acodecs.c:110 -msgid "Dolby AC3 - (lavc)" -msgstr "Dolby AC3 - (lavc)" - -#: ../src/acodecs.c:127 -msgid "ACC Low - (faac)" -msgstr "ACC Low - (faac)" - -#: ../src/acodecs.c:144 -msgid "Vorbis" -msgstr "Vorbis" - -#: ../src/audio_tab.c:87 -msgid "Audio" -msgstr "Audio" - -#: ../src/audio_tab.c:105 -msgid " Sound" -msgstr " Suono" - -#. VU meter on the image (OSD) -#: ../src/audio_tab.c:116 -msgid " Show VU meter" -msgstr " Visualizza VU meter" - -#: ../src/audio_tab.c:128 -msgid "Audio API:" -msgstr "API dell'audio:" - -#: ../src/audio_tab.c:139 -msgid "PORTAUDIO" -msgstr "PORTAUDIO" - -#: ../src/audio_tab.c:140 -msgid "PULSEAUDIO" -msgstr "PULSEAUDIO" - -#: ../src/audio_tab.c:156 ../src/audio_tab.c:179 -msgid "Input Device:" -msgstr "Dispositivo di ingresso:" - -#: ../src/audio_tab.c:189 ../src/audio_tab.c:221 -msgid "Dev. Default" -msgstr "Impostazione predefinita del dispositivo" - -#: ../src/audio_tab.c:211 -msgid "Sample Rate:" -msgstr "Frequenza di campionamento:" - -#: ../src/audio_tab.c:222 -msgid "1 - mono" -msgstr "1 - mono" - -#: ../src/audio_tab.c:223 -msgid "2 - stereo" -msgstr "2 - stereo" - -#: ../src/audio_tab.c:258 -msgid "Channels:" -msgstr "Canali:" - -#: ../src/audio_tab.c:309 -msgid "---- Audio Effects ----" -msgstr "---- Effetti audio ----" - -#. Echo -#: ../src/audio_tab.c:328 -msgid " Echo" -msgstr " Eco" - -#. FUZZ -#: ../src/audio_tab.c:339 -msgid " Fuzz" -msgstr " Rumore" - -#. Reverb -#: ../src/audio_tab.c:351 -msgid " Reverb" -msgstr " Riverbero" - -#. WahWah -#: ../src/audio_tab.c:363 -msgid " WahWah" -msgstr " WahWah" - -#. Ducky -#: ../src/audio_tab.c:375 -msgid " Ducky" -msgstr " Anatroccolo" - -#: ../src/callbacks.c:109 -msgid "Error" -msgstr "Errore" - -#: ../src/callbacks.c:133 -msgid "" -"\n" -"You have more than one video device installed.\n" -"Do you want to try another one ?\n" -msgstr "" -"\n" -"C'Ăš piĂč di un dispositivo video installato.\n" -"Vuoi provare l'altro ?\n" - -#. Devices -#: ../src/callbacks.c:140 ../src/video_tab.c:111 -msgid "Device:" -msgstr "Dispositivo:" - -#: ../src/callbacks.c:272 -msgid "Save File" -msgstr "Salva file" - -#: ../src/callbacks.c:284 -msgid "File Format:" -msgstr "Formato del file:" - -#: ../src/callbacks.c:455 -msgid "codec values" -msgstr "valori dei codec" - -#: ../src/callbacks.c:466 -msgid "" -" encoder fps: \n" -" (0 - use fps combobox value)" -msgstr "" -" encoder fps: \n" -" (0 - usare il valore fps della combobox)" - -#: ../src/callbacks.c:479 -msgid " monotonic pts" -msgstr " punti monocromatici" - -#. bit rate -#: ../src/callbacks.c:486 ../src/callbacks.c:809 -msgid "bit rate: " -msgstr "bit rate: " - -#: ../src/callbacks.c:499 -msgid "qmax: " -msgstr "qmax: " - -#: ../src/callbacks.c:512 -msgid "qmin: " -msgstr "qmin: " - -#: ../src/callbacks.c:525 -msgid "max. qdiff: " -msgstr "max. qdiff: " - -#: ../src/callbacks.c:538 -msgid "dia size: " -msgstr "dim. dia: " - -#: ../src/callbacks.c:551 -msgid "pre dia size: " -msgstr "dim. pre dia: " - -#: ../src/callbacks.c:564 -msgid "pre me: " -msgstr "pre me: " - -#: ../src/callbacks.c:577 -msgid "pre cmp: " -msgstr "pre cmp: " - -#: ../src/callbacks.c:590 -msgid "cmp: " -msgstr "cmp: " - -#: ../src/callbacks.c:603 -msgid "sub cmp: " -msgstr "sub cmp: " - -#: ../src/callbacks.c:616 -msgid "last predictor count: " -msgstr "conteggio dell'ultimo indicatore: " - -#: ../src/callbacks.c:629 -msgid "gop size: " -msgstr "dim. gop: " - -#: ../src/callbacks.c:642 -msgid "qcompress: " -msgstr "qcompress: " - -#: ../src/callbacks.c:655 -msgid "qblur: " -msgstr "qblur: " - -#: ../src/callbacks.c:668 -msgid "subq: " -msgstr "subq: " - -#: ../src/callbacks.c:681 -msgid "framerefs: " -msgstr "framerefs: " - -#: ../src/callbacks.c:694 -msgid "me method: " -msgstr "metodo me: " - -#: ../src/callbacks.c:707 -msgid "mb decision: " -msgstr "decisione mb: " - -#: ../src/callbacks.c:720 -msgid "max B frames: " -msgstr "numero massimo di immagini B: " - -#: ../src/callbacks.c:733 -msgid "num threads: " -msgstr "numero di thread: " - -#: ../src/callbacks.c:796 -msgid "audio codec values" -msgstr "valori del codec audio" - -#. sample format -#: ../src/callbacks.c:823 -msgid "sample format: " -msgstr "Formato di campionamento: " - -#: ../src/callbacks.c:1311 -msgid "start new" -msgstr "inizia nuovo" - -#: ../src/callbacks.c:1314 -msgid "restart" -msgstr "riavvia" - -#: ../src/callbacks.c:1316 -msgid "new" -msgstr "nuovo" - -#: ../src/callbacks.c:1318 -msgid "cancel" -msgstr "annulla" - -#: ../src/callbacks.c:1323 -msgid "" -"launch new process or restart?.\n" -"\n" -msgstr "" -"vuoi lanciare un nuovo processo o riavviare?.\n" -"\n" - -#: ../src/callbacks.c:1780 ../src/guvcview.c:565 -msgid "Cap. Image (I)" -msgstr "Cattura immagine (I)" - -#. disable image controls -#: ../src/callbacks.c:1791 ../src/guvcview.c:690 ../src/timers.c:101 -msgid "capturing photo to" -msgstr "cattura foto da" - -#: ../src/callbacks.c:1850 ../src/guvcview.c:575 -msgid "Cap. Video (V)" -msgstr "Registra video (V)" - -#: ../src/callbacks.c:1876 ../src/guvcview.c:740 -msgid "capturing video to" -msgstr "registra video da" - -#. vid capture enabled from start -#: ../src/callbacks.c:1911 ../src/guvcview.c:570 -msgid "Stop Video (V)" -msgstr "Ferma il video (V)" - -#: ../src/callbacks.c:1967 ../src/menubar.c:66 -msgid "Save Profile" -msgstr "Salva profilo" - -#: ../src/callbacks.c:1980 ../src/menubar.c:65 -msgid "Load Profile" -msgstr "Carica profilo" - -#: ../src/create_video.c:1098 ../src/guvcview.c:732 -msgid "Cap. Video" -msgstr "Registra video" - -#: ../src/guvcview.c:280 -msgid "Guvcview Video Capture" -msgstr "Cattura video di Guvcview" - -#: ../src/guvcview.c:292 -msgid "GUVCViewer Controls" -msgstr "Controlli di Guvcview" - -#. can't open device -#: ../src/guvcview.c:342 -msgid "" -"Guvcview error:\n" -"\n" -"Unable to open device" -msgstr "" -"Errore di Guvcview:\n" -"\n" -"Impossibile accedere al dispositivo" - -#: ../src/guvcview.c:343 -msgid "" -"Please make sure the camera is connected\n" -"and that the correct driver is installed." -msgstr "" -"Assicurarsi che la webcam sia connessa\n" -"e che sia installato il rispettivo driver." - -#. uvc extension controls OK, give warning and shutdown (called with --add_ctrls) -#: ../src/guvcview.c:348 -msgid "" -"Guvcview:\n" -"\n" -"UVC Extension controls" -msgstr "" -"Guvcview:\n" -"\n" -"Controlli dell'estensione di UVC" - -#: ../src/guvcview.c:349 -msgid "Extension controls were added to the UVC driver" -msgstr "I controlli dell'estensione sono stati aggiunti al driver UVC" - -#. uvc extension controls error - EACCES (needs root user) -#: ../src/guvcview.c:356 -msgid "" -"Guvcview error:\n" -"\n" -"UVC Extension controls" -msgstr "" -"Errore di Guvcview:\n" -"\n" -"Controlli dell'estensione di UVC" - -#: ../src/guvcview.c:357 -msgid "" -"An error occurred while adding extension\n" -"controls to the UVC driver\n" -"Make sure you run guvcview as root (or sudo)." -msgstr "" -"Si Ăš verificato un errore nell'aggiungere\n" -"i controlli dell'estensione al driver UVC\n" -"Assicurarsi di avviare guvcview da root (o sudo)." - -#: ../src/guvcview.c:391 ../src/guvcview.c:399 ../src/guvcview.c:477 -msgid "" -"Guvcview error:\n" -"\n" -"Can't set a valid video stream for guvcview" -msgstr "" -"Errore di Guvcview:\n" -"\n" -"Impossibile impostare un flusso video valido per guvcview" - -#: ../src/guvcview.c:392 ../src/guvcview.c:400 ../src/guvcview.c:478 -msgid "" -"Make sure your device driver is v4l2 compliant\n" -"and that it is properly installed." -msgstr "" -"Assicurarsi che il driver del dispositivo sia\n" -"v4l2 compatibile e che sia correttamente installato." - -#: ../src/guvcview.c:422 ../src/guvcview.c:444 -msgid "" -"Guvcview error:\n" -"\n" -"Unable to start with minimum setup" -msgstr "" -"Errore di Guvcview:\n" -"\n" -"Impossibile avviare con l'installazione minima" - -#: ../src/guvcview.c:423 ../src/guvcview.c:445 -msgid "Please reconnect your camera." -msgstr "Riconnettere la webcam." - -#: ../src/guvcview.c:452 -msgid "" -"Guvcview error:\n" -"\n" -"Couldn't query device capabilities" -msgstr "" -"Errore di Guvcview:\n" -"\n" -"Impossibile interrogare le funzionalitĂ  del dispositivo" - -#: ../src/guvcview.c:453 -msgid "Make sure the device driver supports v4l2." -msgstr "Assicurarsi che il driver del dispositivo supporti v4l2." - -#: ../src/guvcview.c:457 -msgid "" -"Guvcview error:\n" -"\n" -"Read method error" -msgstr "" -"Errore di Guvcview:\n" -"\n" -"Errore del metodo di lettura" - -#: ../src/guvcview.c:458 -msgid "Please try mmap instead (--capture_method=1)." -msgstr "In alternativa, provare mmap (--capture_method=1)." - -#: ../src/guvcview.c:466 -msgid "" -"Guvcview error:\n" -"\n" -"Unable to allocate Buffers" -msgstr "" -"Errore di Guvcview:\n" -"\n" -"Impossibile allocare i buffer" - -#: ../src/guvcview.c:467 -msgid "Please try restarting your system." -msgstr "Provare a riavviare il sistema." - -#: ../src/guvcview.c:518 -msgid "Image Controls" -msgstr "Controlli dell'immagine" - -#. image auto capture -#: ../src/guvcview.c:561 -msgid "Stop Auto (I)" -msgstr "Arresto automatico (I)" - -#: ../src/guvcview.c:676 -msgid "" -"Guvcview error:\n" -"\n" -"Unable to create Video Thread" -msgstr "" -"Errore di Guvcview:\n" -"\n" -"Impossibile creare un flusso video" - -#: ../src/guvcview.c:677 -msgid "Please report it to http://developer.berlios.de/bugs/?group_id=8179" -msgstr "" -"Siete pregati di segnalarlo a http://developer.berlios.de/bugs/?group_id=8179" - -#: ../src/img_controls.c:121 -msgid "Auto Focus (continuous)" -msgstr "Messa a fuoco automatica (continua)" - -#: ../src/img_controls.c:122 -msgid "set Focus" -msgstr "imposta la messa a fuoco" - -#: ../src/image_format.c:35 -msgid "Jpeg (jpg)" -msgstr "Jpeg (jpg)" - -#: ../src/image_format.c:41 -msgid "Bitmap (Bmp)" -msgstr "Bitmap (Bmp)" - -#: ../src/image_format.c:47 -msgid "Portable Network Graphics (Png)" -msgstr "Portable Network Graphics (Png)" - -#: ../src/image_format.c:53 -msgid "Raw Image (raw)" -msgstr "Immagine raw (raw)" - -#. controls menu -#: ../src/menubar.c:64 -msgid "Settings" -msgstr "Impostazioni" - -#: ../src/menubar.c:67 -msgid "Hardware Defaults" -msgstr "Ripristina l'hardware di default" - -#: ../src/menubar.c:75 -msgid "Camera Button" -msgstr "Pulsante della camera" - -#: ../src/menubar.c:79 -msgid "Capture Image" -msgstr "Cattura l'immagine" - -#: ../src/menubar.c:84 -msgid "Capture Video" -msgstr "Registra il video" - -#. video menu -#: ../src/menubar.c:144 ../src/video_tab.c:95 -msgid "Video" -msgstr "Video" - -#: ../src/menubar.c:145 ../src/menubar.c:233 -msgid "File" -msgstr "File" - -#: ../src/menubar.c:146 ../src/menubar.c:234 -msgid "Increment Filename" -msgstr "Incrementa il nome del file" - -#: ../src/menubar.c:164 -msgid "Video Codec" -msgstr "Codec video" - -#: ../src/menubar.c:189 -msgid "Video Codec Properties" -msgstr "ProprietĂ  del codec video" - -#: ../src/menubar.c:196 -msgid "Audio Codec" -msgstr "Codec audio" - -#: ../src/menubar.c:217 -msgid "Audio Codec Properties" -msgstr "ProprietĂ  del codec audio" - -#. photo menu -#: ../src/menubar.c:232 -msgid "Photo" -msgstr "Foto" - -#: ../src/options.c:753 -msgid "Prints version" -msgstr "Visualizza la versione" - -#: ../src/options.c:754 -msgid "Displays debug information" -msgstr "Visualizza le informazioni di debug" - -#: ../src/options.c:755 -msgid "Video Device to use [default: /dev/video0]" -msgstr "Dispositivo video da utilizzare [predefinito: /dev/video0]" - -#: ../src/options.c:756 -msgid "Exit after adding UVC extension controls (needs root/sudo)" -msgstr "" -"Uscire dopo aver aggiunto i controlli dell'estensione di UVC (necessita di " -"root/sudo)" - -#: ../src/options.c:757 -msgid "Don't stream video (image controls only)" -msgstr "Non attivare il flusso video (solo controlli dell'immagine)" - -#: ../src/options.c:758 -msgid "Don't display a GUI" -msgstr "Non visualizzare la GUI" - -#: ../src/options.c:759 -msgid "Capture method (1-mmap (default) 2-read)" -msgstr "Metodo di registrazione (1-mmap (predefinito) 2-read)" - -#: ../src/options.c:760 -msgid "Configuration file" -msgstr "File di configurazione" - -#: ../src/options.c:761 -msgid "Hardware accelaration (enable(1) | disable(0))" -msgstr "Accelerazione hardware (abilita(1) | disabilita(0))" - -#: ../src/options.c:762 -msgid "" -"Pixel " -"format(mjpg|jpeg|yuyv|yvyu|uyvy|yyuv|yu12|yv12|nv12|nv21|nv16|nv61|y41p|grey|" -"y10b|y16 |s501|s505|s508|gbrg|grbg|ba81|rggb|bgr3|rgb3)" -msgstr "" -"Formato del " -"pixel(mjpg|jpeg|yuyv|yvyu|uyvy|yyuv|yu12|yv12|nv12|nv21|nv16|nv61|y41p|grey|y" -"10b|y16 |s501|s505|s508|gbrg|grbg|ba81|rggb|bgr3|rgb3)" - -#: ../src/options.c:763 -msgid "Frame size, default: 640x480" -msgstr "Risoluzione predefinita: 640x480" - -#: ../src/options.c:764 -msgid "Image File name" -msgstr "Nome del file immagine" - -#: ../src/options.c:765 -msgid "Image capture interval in seconds" -msgstr "Intervallo di registrazione dell'immagine in secondi" - -#: ../src/options.c:766 -msgid "Number of Pictures to capture" -msgstr "Numero di immagini da registrare" - -#: ../src/options.c:767 -msgid "Video File name (capture from start)" -msgstr "Nome del file video (registra dall'inizio)" - -#: ../src/options.c:768 -msgid "Video capture time (in seconds)" -msgstr "Durata della registrazione video (in secondi)" - -#: ../src/options.c:769 -msgid "Exits guvcview after closing video" -msgstr "Esci da guvcview dopo aver chiuso il video" - -#: ../src/options.c:770 -msgid "Number of initial frames to skip" -msgstr "Numero di immagini iniziali da ignorare" - -#: ../src/options.c:771 -msgid "Show FPS value (enable(1) | disable (0))" -msgstr "Mostra il valore degli FPS (abilita(1) | disabilita (0))" - -#: ../src/options.c:772 -msgid "Load Profile at start" -msgstr "Carica profilo all'avvio" - -#: ../src/options.c:773 -msgid "List controls method (0:loop, 1:next_ctrl flag [def])" -msgstr "" - -#: ../src/options.c:779 -msgid "- local options" -msgstr "- opzioni locali" - -#. gdk_threads_enter(); -#: ../src/timers.c:119 -msgid "Cap. Image" -msgstr "Cattura immagine" - -#: ../src/timers.c:217 -msgid "Guvcview Warning:" -msgstr "Avviso di Guvcview:" - -#: ../src/timers.c:217 -msgid "Not enough free space left on disk" -msgstr "Spazio libero sul disco insufficiente" - -#: ../src/v4l2_controls.c:794 -msgid "Left" -msgstr "Sinistra" - -#: ../src/v4l2_controls.c:795 -msgid "Right" -msgstr "Destra" - -#: ../src/v4l2_controls.c:799 -msgid "Down" -msgstr "Sotto" - -#: ../src/v4l2_controls.c:800 -msgid "Up" -msgstr "Sopra" - -#: ../src/v4l2_controls.c:845 -msgid "Off" -msgstr "Spento" - -#: ../src/v4l2_controls.c:845 -msgid "On" -msgstr "Acceso" - -#: ../src/v4l2_controls.c:845 -msgid "Blinking" -msgstr "Lampeggiante" - -#: ../src/v4l2_controls.c:845 -msgid "Auto" -msgstr "Automatico" - -#. turn it into a menu control -#: ../src/v4l2_controls.c:894 -msgid "8 bit" -msgstr "8 bit" - -#: ../src/v4l2_controls.c:894 -msgid "12 bit" -msgstr "12 bit" - -#: ../src/v4l2_dyna_ctrls.c:96 -msgid "Pan (relative)" -msgstr "Panoramica (relativa)" - -#: ../src/v4l2_dyna_ctrls.c:109 -msgid "Tilt (relative)" -msgstr "Inclinazione (relativa)" - -#: ../src/v4l2_dyna_ctrls.c:122 -msgid "Pan Reset" -msgstr "Ripristina la panoramica" - -#: ../src/v4l2_dyna_ctrls.c:135 -msgid "Tilt Reset" -msgstr "Ripristina l'inclinazione" - -#: ../src/v4l2_dyna_ctrls.c:148 -msgid "Focus (absolute)" -msgstr "Messa a fuoco (assoluta)" - -#: ../src/v4l2_dyna_ctrls.c:161 -msgid "LED1 Mode" -msgstr "ModalitĂ  LED1" - -#: ../src/v4l2_dyna_ctrls.c:174 -msgid "LED1 Frequency" -msgstr "Frequenza LED1" +msgstr "Un visualizzatore e catturatore video per il driver uvc di linux" -#: ../src/v4l2_dyna_ctrls.c:187 -msgid "Disable video processing" -msgstr "Disabilita l'elaborazione video" +#: ../data/guvcview.appdata.xml.in.in.h:1 +msgid "capture video from v4l2 devices" +msgstr "" -#: ../src/v4l2_dyna_ctrls.c:200 -msgid "Raw bits per pixel" -msgstr "Raw bit per pixel" +#: ../data/guvcview.appdata.xml.in.in.h:2 +msgid "" +"Video capture tool for video4linux2 compliant cameras, with special emphasis " +"on the linux uvc driver. It provides Image (jpg, png, bmp) and Video (mjpeg, " +"flv1, wmv1, mpg2, mpg4,...) capture with sound in several " +"formats( currently: avi and matroska). I also supports a control panel " +"option (--control_only) that is compatible with any other v4l2 app." +msgstr "" -#. needed only for language files (not used) +#. +#. * needed only for language files (not used) +#. #. V4L2 control strings -#: ../src/v4l2uvc.c:57 +#: ../gview_v4l2core/v4l2_controls.c:49 msgid "User Controls" msgstr "Controlli dell'utente" -#: ../src/v4l2uvc.c:58 +#: ../gview_v4l2core/v4l2_controls.c:50 msgid "Brightness" msgstr "LuminositĂ " -#: ../src/v4l2uvc.c:59 +#: ../gview_v4l2core/v4l2_controls.c:51 msgid "Contrast" msgstr "Contrasto" -#: ../src/v4l2uvc.c:60 +#: ../gview_v4l2core/v4l2_controls.c:52 msgid "Hue" msgstr "Colore" -#: ../src/v4l2uvc.c:61 +#: ../gview_v4l2core/v4l2_controls.c:53 msgid "Saturation" msgstr "Saturazione" -#: ../src/v4l2uvc.c:62 +#: ../gview_v4l2core/v4l2_controls.c:54 msgid "Sharpness" msgstr "Nitidezza" -#: ../src/v4l2uvc.c:63 +#: ../gview_v4l2core/v4l2_controls.c:55 msgid "Gamma" msgstr "Gamma" -#: ../src/v4l2uvc.c:64 +#: ../gview_v4l2core/v4l2_controls.c:56 msgid "Backlight Compensation" msgstr "Compensazione del controluce" -#: ../src/v4l2uvc.c:65 +#: ../gview_v4l2core/v4l2_controls.c:57 msgid "Power Line Frequency" msgstr "Frequenza di aggiornamento" -#: ../src/v4l2uvc.c:66 +#: ../gview_v4l2core/v4l2_controls.c:58 msgid "Hue, Automatic" msgstr "Colore automatico" -#: ../src/v4l2uvc.c:67 +#: ../gview_v4l2core/v4l2_controls.c:59 msgid "Focus, Auto" msgstr "Messa a fuoco automatica" -#: ../src/v4l2uvc.c:68 +#: ../gview_v4l2core/v4l2_controls.c:60 msgid "Manual Mode" msgstr "ModalitĂ  manuale" -#: ../src/v4l2uvc.c:69 +#: ../gview_v4l2core/v4l2_controls.c:61 msgid "Auto Mode" msgstr "ModalitĂ  automatica" -#: ../src/v4l2uvc.c:70 +#: ../gview_v4l2core/v4l2_controls.c:62 msgid "Shutter Priority Mode" msgstr "ModalitĂ  di prioritĂ  dell'otturatore" -#: ../src/v4l2uvc.c:71 +#: ../gview_v4l2core/v4l2_controls.c:63 msgid "Aperture Priority Mode" msgstr "ModalitĂ  di prioritĂ  dell'apertura" -#: ../src/v4l2uvc.c:72 +#: ../gview_v4l2core/v4l2_controls.c:64 msgid "Black Level" msgstr "Livello del nero" -#: ../src/v4l2uvc.c:73 +#: ../gview_v4l2core/v4l2_controls.c:65 msgid "White Balance, Automatic" msgstr "Bilanciamento automatico del bianco" -#: ../src/v4l2uvc.c:74 +#: ../gview_v4l2core/v4l2_controls.c:66 msgid "Do White Balance" msgstr "Bilanciamento del bianco" -#: ../src/v4l2uvc.c:75 +#: ../gview_v4l2core/v4l2_controls.c:67 msgid "Red Balance" msgstr "Bilanciamento del rosso" -#: ../src/v4l2uvc.c:76 +#: ../gview_v4l2core/v4l2_controls.c:68 msgid "Blue Balance" msgstr "Bilanciamento del blu" -#: ../src/v4l2uvc.c:77 +#: ../gview_v4l2core/v4l2_controls.c:69 msgid "Exposure" msgstr "Esposizione" -#: ../src/v4l2uvc.c:78 +#: ../gview_v4l2core/v4l2_controls.c:70 msgid "Gain, Automatic" msgstr "Guadagno automatico" -#: ../src/v4l2uvc.c:79 +#: ../gview_v4l2core/v4l2_controls.c:71 msgid "Gain" msgstr "Guadagno" -#: ../src/v4l2uvc.c:80 +#: ../gview_v4l2core/v4l2_controls.c:72 msgid "Horizontal Flip" msgstr "Rifletti orizzontalmente" -#: ../src/v4l2uvc.c:81 +#: ../gview_v4l2core/v4l2_controls.c:73 msgid "Vertical Flip" msgstr "Rifletti verticalmente" -#: ../src/v4l2uvc.c:82 +#: ../gview_v4l2core/v4l2_controls.c:74 msgid "Horizontal Center" msgstr "Centra orizzontalmente" -#: ../src/v4l2uvc.c:83 +#: ../gview_v4l2core/v4l2_controls.c:75 msgid "Vertical Center" msgstr "Centra verticalmente" -#: ../src/v4l2uvc.c:84 +#: ../gview_v4l2core/v4l2_controls.c:76 msgid "Chroma AGC" msgstr "Chroma AGC" -#: ../src/v4l2uvc.c:85 +#: ../gview_v4l2core/v4l2_controls.c:77 msgid "Color Killer" msgstr "Killer del colore" -#: ../src/v4l2uvc.c:86 +#: ../gview_v4l2core/v4l2_controls.c:78 msgid "Color Effects" msgstr "Effetti del colore" #. CAMERA CLASS control strings -#: ../src/v4l2uvc.c:89 +#: ../gview_v4l2core/v4l2_controls.c:81 msgid "Camera Controls" msgstr "Controlli della webcam" -#: ../src/v4l2uvc.c:90 +#: ../gview_v4l2core/v4l2_controls.c:82 msgid "Auto Exposure" msgstr "Esposizione automatica" -#: ../src/v4l2uvc.c:91 +#: ../gview_v4l2core/v4l2_controls.c:83 msgid "Exposure Time, Absolute" msgstr "Tempo di esposizione assoluto" -#: ../src/v4l2uvc.c:92 +#: ../gview_v4l2core/v4l2_controls.c:84 msgid "Exposure, Dynamic Framerate" msgstr "Esposizione, framerate dinamico" -#: ../src/v4l2uvc.c:93 +#: ../gview_v4l2core/v4l2_controls.c:85 msgid "Pan, Relative" msgstr "Panoramica relativa" -#: ../src/v4l2uvc.c:94 +#: ../gview_v4l2core/v4l2_controls.c:86 msgid "Tilt, Relative" msgstr "Inclinazione relativa" -#: ../src/v4l2uvc.c:95 +#: ../gview_v4l2core/v4l2_controls.c:87 msgid "Pan, Reset" msgstr "Ripristina la panoramica" -#: ../src/v4l2uvc.c:96 +#: ../gview_v4l2core/v4l2_controls.c:88 msgid "Tilt, Reset" msgstr "Ripristina l'inclinazione" -#: ../src/v4l2uvc.c:97 +#: ../gview_v4l2core/v4l2_controls.c:89 msgid "Pan, Absolute" msgstr "Panoramica assoluta" -#: ../src/v4l2uvc.c:99 +#: ../gview_v4l2core/v4l2_controls.c:91 msgid "Focus, Absolute" msgstr "Messa a fuoco assoluta" -#: ../src/v4l2uvc.c:100 +#: ../gview_v4l2core/v4l2_controls.c:92 msgid "Focus, Relative" msgstr "Messa a fuoco relativa" -#: ../src/v4l2uvc.c:101 +#: ../gview_v4l2core/v4l2_controls.c:93 msgid "Focus, Automatic" msgstr "Messa a fuoco automatica" -#: ../src/v4l2uvc.c:102 +#: ../gview_v4l2core/v4l2_controls.c:94 msgid "Zoom, Absolute" msgstr "Zoom assoluto" -#: ../src/v4l2uvc.c:103 +#: ../gview_v4l2core/v4l2_controls.c:95 msgid "Zoom, Relative" msgstr "Zoom relativo" -#: ../src/v4l2uvc.c:104 +#: ../gview_v4l2core/v4l2_controls.c:96 msgid "Zoom, Continuous" msgstr "Zoom continuo" -#: ../src/v4l2uvc.c:105 +#: ../gview_v4l2core/v4l2_controls.c:97 msgid "Privacy" msgstr "Privacy" #. UVC specific control strings -#: ../src/v4l2uvc.c:108 +#: ../gview_v4l2core/v4l2_controls.c:100 msgid "Exposure, Auto" msgstr "Esposizione automatica" -#: ../src/v4l2uvc.c:109 +#: ../gview_v4l2core/v4l2_controls.c:101 msgid "Exposure, Auto Priority" msgstr "Esposizione, prioritĂ  automatica" -#: ../src/v4l2uvc.c:110 +#: ../gview_v4l2core/v4l2_controls.c:102 msgid "Exposure (Absolute)" msgstr "Esposizione (assoluta)" -#: ../src/v4l2uvc.c:111 +#: ../gview_v4l2core/v4l2_controls.c:103 msgid "White Balance Temperature, Auto" msgstr "Bilanciamento del bianco automatico" -#: ../src/v4l2uvc.c:112 +#: ../gview_v4l2core/v4l2_controls.c:104 msgid "White Balance Temperature" msgstr "Bilanciamento del bianco" -#: ../src/v4l2uvc.c:113 +#: ../gview_v4l2core/v4l2_controls.c:105 msgid "White Balance Component, Auto" msgstr "Bilanciamento dei componenti del bianco automatico" -#: ../src/v4l2uvc.c:114 +#: ../gview_v4l2core/v4l2_controls.c:106 msgid "White Balance Blue Component" msgstr "Bilanciamento del bianco, canale blu" -#: ../src/v4l2uvc.c:115 +#: ../gview_v4l2core/v4l2_controls.c:107 msgid "White Balance Red Component" msgstr "Bilanciamento del bianco, canale rosso" #. libwebcam specific control strings -#: ../src/v4l2uvc.c:118 +#: ../gview_v4l2core/v4l2_controls.c:110 msgid "Focus" msgstr "Messa a fuoco" -#: ../src/v4l2uvc.c:119 +#: ../gview_v4l2core/v4l2_controls.c:111 msgid "Focus (Absolute)" msgstr "Messa a fuoco (assoluta)" -#: ../src/vcodecs.c:63 +#: ../gview_v4l2core/v4l2_xu_ctrls.c:63 ../guvcview/gui_gtk3_v4l2ctrls.c:239 +msgid "Off" +msgstr "Spento" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:64 ../guvcview/gui_gtk3_v4l2ctrls.c:239 +msgid "On" +msgstr "Acceso" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:65 ../guvcview/gui_gtk3_v4l2ctrls.c:239 +msgid "Blinking" +msgstr "Lampeggiante" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:66 ../guvcview/gui_gtk3_v4l2ctrls.c:239 +msgid "Auto" +msgstr "Automatico" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:73 +msgid "Pan (relative)" +msgstr "Panoramica (relativa)" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:86 +msgid "Tilt (relative)" +msgstr "Inclinazione (relativa)" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:99 +msgid "Pan Reset" +msgstr "Ripristina la panoramica" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:112 +msgid "Tilt Reset" +msgstr "Ripristina l'inclinazione" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:125 +msgid "Focus (absolute)" +msgstr "Messa a fuoco (assoluta)" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:138 +msgid "LED1 Mode" +msgstr "ModalitĂ  LED1" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:151 +msgid "LED1 Frequency" +msgstr "Frequenza LED1" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:164 +msgid "Disable video processing" +msgstr "Disabilita l'elaborazione video" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:177 +msgid "Raw bits per pixel" +msgstr "Raw bit per pixel" + +#: ../gview_encoder/audio_codecs.c:63 +#, fuzzy +msgid "PCM - uncompressed (float 32 bit)" +msgstr "PCM - non compresso (16 bit)" + +#: ../gview_encoder/audio_codecs.c:80 +msgid "MP2 (MPEG audio layer 2)" +msgstr "" + +#: ../gview_encoder/audio_codecs.c:97 +msgid "MP3 (MPEG audio layer 3)" +msgstr "" + +#: ../gview_encoder/audio_codecs.c:118 +msgid "AC-3 (ATSC A/52A)" +msgstr "" + +#: ../gview_encoder/audio_codecs.c:139 +msgid "AAC (Advanced Audio Coding)" +msgstr "" + +#: ../gview_encoder/audio_codecs.c:160 +msgid "Vorbis" +msgstr "Vorbis" + +#: ../gview_encoder/video_codecs.c:75 +#, fuzzy +msgid "Raw camera input" +msgstr "Uscita della webcam:" + +#: ../gview_encoder/video_codecs.c:111 msgid "MJPG - compressed" msgstr "MJPG - compresso" -#: ../src/vcodecs.c:99 -msgid "YUY2 - uncomp YUV" -msgstr "YUY2 - YUV non compresso" - -#: ../src/vcodecs.c:135 -msgid "RGB - uncomp BMP" -msgstr "RGB - BMP non compresso" - -#: ../src/vcodecs.c:171 +#: ../gview_encoder/video_codecs.c:147 msgid "MPEG video 1" msgstr "MPEG video 1" -#: ../src/vcodecs.c:207 +#: ../gview_encoder/video_codecs.c:183 msgid "FLV1 - flash video 1" msgstr "FLV1 - flash video 1" -#: ../src/vcodecs.c:243 +#: ../gview_encoder/video_codecs.c:219 msgid "WMV1 - win. med. video 7" msgstr "WMV1 - win. med. video 7" -#: ../src/vcodecs.c:279 +#: ../gview_encoder/video_codecs.c:255 msgid "MPG2 - MPG2 format" msgstr "MPG2 - formato MPG2" -#: ../src/vcodecs.c:315 +#: ../gview_encoder/video_codecs.c:291 msgid "MS MP4 V3" msgstr "MS MP4 V3" -#: ../src/vcodecs.c:351 +#: ../gview_encoder/video_codecs.c:327 msgid "MPEG4-ASP" msgstr "MPEG4-ASP" -#: ../src/vcodecs.c:387 +#: ../gview_encoder/video_codecs.c:363 msgid "MPEG4-AVC (H264)" msgstr "MPEG4-AVC (H264)" -#: ../src/vcodecs.c:427 +#: ../gview_encoder/video_codecs.c:403 msgid "VP8 (VP8)" msgstr "VP8 (VP8)" -#: ../src/vcodecs.c:463 +#: ../gview_encoder/video_codecs.c:439 msgid "Theora (ogg theora)" msgstr "Theora (ogg theora)" -#: ../src/video_format.c:43 -msgid "AVI - avi format" -msgstr "AVI - formato avi" +#: ../guvcview/gui_gtk3_audioctrls.c:95 +msgid "Audio API:" +msgstr "API dell'audio:" -#: ../src/video_format.c:52 -msgid "MKV - Matroska format" -msgstr "MKV - formato Matroska" - -#: ../src/video_format.c:61 -msgid "WEBM - format" -msgstr "WEBM - formato WEBM" +#: ../guvcview/gui_gtk3_audioctrls.c:106 +msgid "NO SOUND" +msgstr "" -#: ../src/video_tab.c:216 -msgid "Frame Rate:" -msgstr "Frame rate:" +#: ../guvcview/gui_gtk3_audioctrls.c:107 +msgid "PORTAUDIO" +msgstr "PORTAUDIO" + +#: ../guvcview/gui_gtk3_audioctrls.c:110 +msgid "PULSEAUDIO" +msgstr "PULSEAUDIO" -#: ../src/video_tab.c:223 -msgid " Show" -msgstr " Visualizza" +#: ../guvcview/gui_gtk3_audioctrls.c:127 +msgid "Input Device:" +msgstr "Dispositivo di ingresso:" -#: ../src/video_tab.c:245 -msgid "Resolution:" -msgstr "Risoluzione:" +#: ../guvcview/gui_gtk3_audioctrls.c:161 +msgid "Sample Rate:" +msgstr "Frequenza di campionamento:" + +#: ../guvcview/gui_gtk3_audioctrls.c:168 ../guvcview/gui_gtk3_audioctrls.c:214 +msgid "Dev. Default" +msgstr "Impostazione predefinita del dispositivo" + +#: ../guvcview/gui_gtk3_audioctrls.c:207 +msgid "Channels:" +msgstr "Canali:" + +#: ../guvcview/gui_gtk3_audioctrls.c:215 +msgid "1 - mono" +msgstr "1 - mono" + +#: ../guvcview/gui_gtk3_audioctrls.c:216 +msgid "2 - stereo" +msgstr "2 - stereo" + +#: ../guvcview/gui_gtk3_audioctrls.c:235 +#, fuzzy +msgid "---- Audio Filters ----" +msgstr "---- Filtri video ----" + +#. Echo FX +#: ../guvcview/gui_gtk3_audioctrls.c:255 +msgid " Echo" +msgstr " Eco" + +#. Reverb FX +#: ../guvcview/gui_gtk3_audioctrls.c:268 +msgid " Reverb" +msgstr " Riverbero" + +#. Fuzz FX +#: ../guvcview/gui_gtk3_audioctrls.c:281 +msgid " Fuzz" +msgstr " Rumore" + +#. WahWah FX +#: ../guvcview/gui_gtk3_audioctrls.c:294 +msgid " WahWah" +msgstr " WahWah" + +#. Ducky FX +#: ../guvcview/gui_gtk3_audioctrls.c:307 +msgid " Ducky" +msgstr " Anatroccolo" + +#: ../guvcview/gui_gtk3.c:310 ../guvcview/gui_gtk3_callbacks.c:749 +msgid "Stop Video (V)" +msgstr "Ferma il video (V)" + +#. video button +#: ../guvcview/gui_gtk3.c:315 ../guvcview/gui_gtk3.c:600 +#: ../guvcview/gui_gtk3_callbacks.c:755 +msgid "Cap. Video (V)" +msgstr "Registra video (V)" + +#: ../guvcview/gui_gtk3.c:376 ../guvcview/gui_gtk3.c:383 +msgid "Error" +msgstr "Errore" + +#: ../guvcview/gui_gtk3.c:379 ../guvcview/gui_gtk3.c:386 +#: ../guvcview/gui_gtk3_callbacks.c:2097 +msgid "_Ok" +msgstr "" + +#: ../guvcview/gui_gtk3.c:380 ../guvcview/gui_gtk3_callbacks.c:185 +#: ../guvcview/gui_gtk3_callbacks.c:199 ../guvcview/gui_gtk3_callbacks.c:522 +#: ../guvcview/gui_gtk3_callbacks.c:624 ../guvcview/gui_gtk3_callbacks.c:1755 +#: ../guvcview/gui_gtk3_callbacks.c:2098 +#, fuzzy +msgid "_Cancel" +msgstr "annulla" + +#: ../guvcview/gui_gtk3.c:407 +msgid "" +"\n" +"You have more than one video device installed.\n" +"Do you want to try another one ?\n" +msgstr "" +"\n" +"C'Ăš piĂč di un dispositivo video installato.\n" +"Vuoi provare l'altro ?\n" + +#. ---- Devices ---- +#: ../guvcview/gui_gtk3.c:414 ../guvcview/gui_gtk3_videoctrls.c:106 +msgid "Device:" +msgstr "Dispositivo:" + +#: ../guvcview/gui_gtk3.c:516 +msgid "Guvcview Video Capture" +msgstr "Cattura video di Guvcview" + +#: ../guvcview/gui_gtk3.c:525 +#, fuzzy +msgid "Guvcview" +msgstr "guvcview" + +#: ../guvcview/gui_gtk3.c:572 +#, fuzzy +msgid "Stop Cap. (I)" +msgstr "Arresto automatico (I)" + +#: ../guvcview/gui_gtk3.c:578 ../guvcview/gui_gtk3_callbacks.c:720 +#: ../guvcview/video_capture.c:250 +msgid "Cap. Image (I)" +msgstr "Cattura immagine (I)" + +#. quit button +#. GtkWidget *quitButton = gtk_button_new_from_stock(GTK_STOCK_QUIT); +#: ../guvcview/gui_gtk3.c:621 +msgid "_Quit" +msgstr "" + +#: ../guvcview/gui_gtk3.c:667 +msgid "Image Controls" +msgstr "Controlli dell'immagine" + +#: ../guvcview/gui_gtk3.c:703 +#, fuzzy +msgid "H264 Controls" +msgstr "Controlli dell'utente" + +#: ../guvcview/gui_gtk3.c:742 +#, fuzzy +msgid "Video Controls" +msgstr "Controlli dell'utente" + +#: ../guvcview/gui_gtk3.c:777 +#, fuzzy +msgid "Audio Controls" +msgstr "Controlli dell'utente" + +#: ../guvcview/gui_gtk3_callbacks.c:182 ../guvcview/gui_gtk3_menu.c:72 +msgid "Save Profile" +msgstr "Salva profilo" + +#: ../guvcview/gui_gtk3_callbacks.c:186 ../guvcview/gui_gtk3_callbacks.c:523 +#: ../guvcview/gui_gtk3_callbacks.c:625 +msgid "_Save" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:196 ../guvcview/gui_gtk3_menu.c:71 +msgid "Load Profile" +msgstr "Carica profilo" + +#: ../guvcview/gui_gtk3_callbacks.c:200 +msgid "_Open" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:208 ../guvcview/gui_gtk3_callbacks.c:531 +#: ../guvcview/gui_gtk3_callbacks.c:634 +msgid "File Format:" +msgstr "Formato del file:" + +#: ../guvcview/gui_gtk3_callbacks.c:220 +msgid "gpfl (*.gpfl)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:221 +msgid "any (*.*)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:519 +#, fuzzy +msgid "Photo file name" +msgstr "Nome del file immagine" + +#: ../guvcview/gui_gtk3_callbacks.c:543 +#, fuzzy +msgid "Raw (*.raw)" +msgstr "Immagine raw (raw)" + +#: ../guvcview/gui_gtk3_callbacks.c:544 +#, fuzzy +msgid "Jpeg (*.jpg)" +msgstr "Jpeg (jpg)" + +#: ../guvcview/gui_gtk3_callbacks.c:545 +msgid "Png (*.png)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:546 +msgid "Bmp (*.bmp)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:621 +#, fuzzy +msgid "Video file name" +msgstr "Nome del file immagine" + +#: ../guvcview/gui_gtk3_callbacks.c:646 +msgid "Matroska (*.mkv)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:647 +msgid "WebM (*.webm)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:648 +msgid "Avi (*.avi)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:1158 +msgid "start new" +msgstr "inizia nuovo" + +#: ../guvcview/gui_gtk3_callbacks.c:1161 +msgid "restart" +msgstr "riavvia" + +#: ../guvcview/gui_gtk3_callbacks.c:1163 +msgid "new" +msgstr "nuovo" + +#: ../guvcview/gui_gtk3_callbacks.c:1165 +msgid "cancel" +msgstr "annulla" + +#: ../guvcview/gui_gtk3_callbacks.c:1170 +msgid "" +"launch new process or restart?.\n" +"\n" +msgstr "" +"vuoi lanciare un nuovo processo o riavviare?.\n" +"\n" + +#: ../guvcview/gui_gtk3_callbacks.c:1751 +#, fuzzy +msgid "video codec values" +msgstr "valori del codec audio" + +#: ../guvcview/gui_gtk3_callbacks.c:1754 +msgid "_OK" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:1760 +msgid "" +" encoder fps: \n" +" (0 - use fps combobox value)" +msgstr "" +" encoder fps: \n" +" (0 - usare il valore fps della combobox)" + +#: ../guvcview/gui_gtk3_callbacks.c:1773 +msgid " monotonic pts" +msgstr " punti monocromatici" + +#. bit rate +#: ../guvcview/gui_gtk3_callbacks.c:1780 ../guvcview/gui_gtk3_callbacks.c:2105 +msgid "bit rate: " +msgstr "bit rate: " + +#: ../guvcview/gui_gtk3_callbacks.c:1793 +msgid "qmax: " +msgstr "qmax: " + +#: ../guvcview/gui_gtk3_callbacks.c:1806 +msgid "qmin: " +msgstr "qmin: " + +#: ../guvcview/gui_gtk3_callbacks.c:1819 +msgid "max. qdiff: " +msgstr "max. qdiff: " + +#: ../guvcview/gui_gtk3_callbacks.c:1832 +msgid "dia size: " +msgstr "dim. dia: " + +#: ../guvcview/gui_gtk3_callbacks.c:1845 +msgid "pre dia size: " +msgstr "dim. pre dia: " + +#: ../guvcview/gui_gtk3_callbacks.c:1858 +msgid "pre me: " +msgstr "pre me: " + +#: ../guvcview/gui_gtk3_callbacks.c:1871 +msgid "pre cmp: " +msgstr "pre cmp: " + +#: ../guvcview/gui_gtk3_callbacks.c:1884 +msgid "cmp: " +msgstr "cmp: " + +#: ../guvcview/gui_gtk3_callbacks.c:1897 +msgid "sub cmp: " +msgstr "sub cmp: " + +#: ../guvcview/gui_gtk3_callbacks.c:1910 +msgid "last predictor count: " +msgstr "conteggio dell'ultimo indicatore: " -#: ../src/video_tab.c:271 -msgid "Camera Output:" -msgstr "Uscita della webcam:" +#: ../guvcview/gui_gtk3_callbacks.c:1923 +msgid "gop size: " +msgstr "dim. gop: " -#: ../src/video_tab.c:293 -msgid "Apply" -msgstr "Applica" +#: ../guvcview/gui_gtk3_callbacks.c:1936 +msgid "qcompress: " +msgstr "qcompress: " -#: ../src/video_tab.c:300 -msgid "Quality:" -msgstr "QualitĂ :" +#: ../guvcview/gui_gtk3_callbacks.c:1949 +msgid "qblur: " +msgstr "qblur: " -#: ../src/video_tab.c:310 -msgid "---- Video Filters ----" -msgstr "---- Filtri video ----" +#: ../guvcview/gui_gtk3_callbacks.c:1962 +msgid "subq: " +msgstr "subq: " -#. Mirror -#: ../src/video_tab.c:329 -msgid " Mirror" -msgstr " Specchio" +#: ../guvcview/gui_gtk3_callbacks.c:1975 +msgid "framerefs: " +msgstr "framerefs: " -#. Upturn -#: ../src/video_tab.c:340 -msgid " Invert" -msgstr " Inverti" +#: ../guvcview/gui_gtk3_callbacks.c:1988 +msgid "me method: " +msgstr "metodo me: " -#. Negate -#: ../src/video_tab.c:351 -msgid " Negative" -msgstr " Negativo" +#: ../guvcview/gui_gtk3_callbacks.c:2001 +msgid "mb decision: " +msgstr "decisione mb: " -#. Mono -#: ../src/video_tab.c:362 -msgid " Mono" -msgstr " Monocromatico" +#: ../guvcview/gui_gtk3_callbacks.c:2014 +msgid "max B frames: " +msgstr "numero massimo di immagini B: " -#. Pieces -#: ../src/video_tab.c:374 -msgid " Pieces" -msgstr " Pezzi" +#: ../guvcview/gui_gtk3_callbacks.c:2027 +msgid "num threads: " +msgstr "numero di thread: " -#. Particles -#: ../src/video_tab.c:386 -msgid " Particles" -msgstr " Particelle" +#: ../guvcview/gui_gtk3_callbacks.c:2094 +msgid "audio codec values" +msgstr "valori del codec audio" -#: ../src/uvc_h264.c:596 -msgid "H264 Controls" -msgstr "" +#. sample format +#: ../guvcview/gui_gtk3_callbacks.c:2119 +msgid "sample format: " +msgstr "Formato di campionamento: " -#: ../src/uvc_h264.c:615 +#: ../guvcview/gui_gtk3_h264ctrls.c:622 +#, fuzzy msgid "Rate Control Mode:" -msgstr "" +msgstr "Controlli dell'immagine" -#: ../src/uvc_h264.c:626 +#: ../guvcview/gui_gtk3_h264ctrls.c:633 msgid "CBR" msgstr "" -#: ../src/uvc_h264.c:629 +#: ../guvcview/gui_gtk3_h264ctrls.c:636 msgid "VBR" msgstr "" -#: ../src/uvc_h264.c:633 +#: ../guvcview/gui_gtk3_h264ctrls.c:640 msgid "Constant QP" msgstr "" -#: ../src/uvc_h264.c:651 +#: ../guvcview/gui_gtk3_h264ctrls.c:658 msgid "Rate Control Mode flags:" msgstr "" -#: ../src/uvc_h264.c:676 +#: ../guvcview/gui_gtk3_h264ctrls.c:683 msgid "Temporal Scale Mode:" msgstr "" -#: ../src/uvc_h264.c:704 +#: ../guvcview/gui_gtk3_h264ctrls.c:711 msgid "Spatial Scale Mode:" msgstr "" -#: ../src/uvc_h264.c:737 +#: ../guvcview/gui_gtk3_h264ctrls.c:741 msgid "Frame Interval (100ns units):" msgstr "" -#: ../src/uvc_h264.c:772 +#: ../guvcview/gui_gtk3_h264ctrls.c:778 +#, fuzzy msgid "Bit Rate:" -msgstr "" +msgstr "bit rate: " -#: ../src/uvc_h264.c:795 +#: ../guvcview/gui_gtk3_h264ctrls.c:801 msgid "Hints:" msgstr "" -#: ../src/uvc_h264.c:800 +#: ../guvcview/gui_gtk3_h264ctrls.c:806 +#, fuzzy msgid "Resolution" -msgstr "" +msgstr "Risoluzione:" -#: ../src/uvc_h264.c:804 +#: ../guvcview/gui_gtk3_h264ctrls.c:810 +#, fuzzy msgid "Profile" -msgstr "" +msgstr "Salva profilo" -#: ../src/uvc_h264.c:808 +#: ../guvcview/gui_gtk3_h264ctrls.c:814 +#, fuzzy msgid "Rate Control" -msgstr "" +msgstr "Controlli dell'immagine" -#: ../src/uvc_h264.c:812 +#: ../guvcview/gui_gtk3_h264ctrls.c:818 msgid "Usage Type" msgstr "" -#: ../src/uvc_h264.c:816 +#: ../guvcview/gui_gtk3_h264ctrls.c:822 msgid "Slice Mode" msgstr "" -#: ../src/uvc_h264.c:820 +#: ../guvcview/gui_gtk3_h264ctrls.c:826 msgid "Slice Unit" msgstr "" -#: ../src/uvc_h264.c:824 +#: ../guvcview/gui_gtk3_h264ctrls.c:830 msgid "MVC View" msgstr "" -#: ../src/uvc_h264.c:828 +#: ../guvcview/gui_gtk3_h264ctrls.c:834 msgid "Temporal Scale" msgstr "" -#: ../src/uvc_h264.c:832 +#: ../guvcview/gui_gtk3_h264ctrls.c:838 msgid "SNR Scale" msgstr "" -#: ../src/uvc_h264.c:836 +#: ../guvcview/gui_gtk3_h264ctrls.c:842 msgid "Spatial Scale" msgstr "" -#: ../src/uvc_h264.c:840 +#: ../guvcview/gui_gtk3_h264ctrls.c:846 msgid "Spatial Layer Ratio" msgstr "" -#: ../src/uvc_h264.c:844 +#: ../guvcview/gui_gtk3_h264ctrls.c:850 +#, fuzzy msgid "Frame Interval" -msgstr "" +msgstr "Frame rate:" -#: ../src/uvc_h264.c:848 +#: ../guvcview/gui_gtk3_h264ctrls.c:854 msgid "Leaky Bucket Size" msgstr "" -#: ../src/uvc_h264.c:852 +#: ../guvcview/gui_gtk3_h264ctrls.c:858 msgid "Bit Rate" msgstr "" -#: ../src/uvc_h264.c:856 ../src/uvc_h264.c:1250 +#: ../guvcview/gui_gtk3_h264ctrls.c:862 ../guvcview/gui_gtk3_h264ctrls.c:1220 msgid "CABAC" msgstr "" -#: ../src/uvc_h264.c:860 +#: ../guvcview/gui_gtk3_h264ctrls.c:866 msgid "(I) Frame Period" msgstr "" -#: ../src/uvc_h264.c:907 +#: ../guvcview/gui_gtk3_h264ctrls.c:878 msgid "Slice Mode:" msgstr "" -#: ../src/uvc_h264.c:914 +#: ../guvcview/gui_gtk3_h264ctrls.c:885 msgid "no multiple slices" msgstr "" -#: ../src/uvc_h264.c:916 +#: ../guvcview/gui_gtk3_h264ctrls.c:887 msgid "bits/slice" msgstr "" -#: ../src/uvc_h264.c:918 +#: ../guvcview/gui_gtk3_h264ctrls.c:889 msgid "Mbits/slice" msgstr "" -#: ../src/uvc_h264.c:920 +#: ../guvcview/gui_gtk3_h264ctrls.c:891 msgid "slices/frame" msgstr "" -#: ../src/uvc_h264.c:929 +#: ../guvcview/gui_gtk3_h264ctrls.c:900 msgid "Slice Units:" msgstr "" -#: ../src/uvc_h264.c:950 +#: ../guvcview/gui_gtk3_h264ctrls.c:921 +#, fuzzy msgid "Profile:" -msgstr "" +msgstr "Salva profilo" -#: ../src/uvc_h264.c:957 +#: ../guvcview/gui_gtk3_h264ctrls.c:928 +#, fuzzy msgid "Baseline Profile" -msgstr "" +msgstr "Salva profilo" -#: ../src/uvc_h264.c:959 +#: ../guvcview/gui_gtk3_h264ctrls.c:930 +#, fuzzy msgid "Main Profile" -msgstr "" +msgstr "Salva profilo" -#: ../src/uvc_h264.c:961 +#: ../guvcview/gui_gtk3_h264ctrls.c:932 +#, fuzzy msgid "High Profile" -msgstr "" +msgstr "Salva profilo" -#: ../src/uvc_h264.c:963 +#: ../guvcview/gui_gtk3_h264ctrls.c:934 msgid "Scalable Baseline Profile" msgstr "" -#: ../src/uvc_h264.c:965 +#: ../guvcview/gui_gtk3_h264ctrls.c:936 +#, fuzzy msgid "Scalable High Profile" -msgstr "" +msgstr "Salva profilo" -#: ../src/uvc_h264.c:967 +#: ../guvcview/gui_gtk3_h264ctrls.c:938 msgid "Multiview High Profile" msgstr "" -#: ../src/uvc_h264.c:969 +#: ../guvcview/gui_gtk3_h264ctrls.c:940 +#, fuzzy msgid "Stereo High Profile" -msgstr "" +msgstr "Salva profilo" -#: ../src/uvc_h264.c:1008 +#: ../guvcview/gui_gtk3_h264ctrls.c:979 msgid "Profile flags:" msgstr "" -#: ../src/uvc_h264.c:1033 +#: ../guvcview/gui_gtk3_h264ctrls.c:1004 msgid "(I) Frame Period (ms):" msgstr "" -#: ../src/uvc_h264.c:1054 +#: ../guvcview/gui_gtk3_h264ctrls.c:1025 msgid "Estimated Video Delay (ms):" msgstr "" -#: ../src/uvc_h264.c:1075 +#: ../guvcview/gui_gtk3_h264ctrls.c:1046 msgid "Estimated Max Config Delay (ms):" msgstr "" -#: ../src/uvc_h264.c:1096 +#: ../guvcview/gui_gtk3_h264ctrls.c:1067 msgid "Usage Type:" msgstr "" -#: ../src/uvc_h264.c:1103 +#: ../guvcview/gui_gtk3_h264ctrls.c:1074 msgid "Real-time" msgstr "" -#: ../src/uvc_h264.c:1105 +#: ../guvcview/gui_gtk3_h264ctrls.c:1076 msgid "Broadcast" msgstr "" -#: ../src/uvc_h264.c:1107 +#: ../guvcview/gui_gtk3_h264ctrls.c:1078 msgid "Storage" msgstr "" -#: ../src/uvc_h264.c:1109 +#: ../guvcview/gui_gtk3_h264ctrls.c:1080 msgid "(0) Non-scalable single layer AVC" msgstr "" -#: ../src/uvc_h264.c:1111 +#: ../guvcview/gui_gtk3_h264ctrls.c:1082 msgid "(1) SVC temporal scalability with hierarchical P" msgstr "" -#: ../src/uvc_h264.c:1113 +#: ../guvcview/gui_gtk3_h264ctrls.c:1084 msgid "(2q) SVC temporal scalability + Quality/SNR scalability" msgstr "" -#: ../src/uvc_h264.c:1115 +#: ../guvcview/gui_gtk3_h264ctrls.c:1086 msgid "(2s) SVC temporal scalability + spatial scalability" msgstr "" -#: ../src/uvc_h264.c:1117 +#: ../guvcview/gui_gtk3_h264ctrls.c:1088 msgid "(3) Full SVC scalability" msgstr "" -#: ../src/uvc_h264.c:1131 +#: ../guvcview/gui_gtk3_h264ctrls.c:1102 msgid "SNR Control Mode:" msgstr "" -#: ../src/uvc_h264.c:1138 +#: ../guvcview/gui_gtk3_h264ctrls.c:1109 msgid "No SNR Enhancement Layer" msgstr "" -#: ../src/uvc_h264.c:1140 +#: ../guvcview/gui_gtk3_h264ctrls.c:1111 msgid "CGS NonRewrite (2 Layer)" msgstr "" -#: ../src/uvc_h264.c:1142 +#: ../guvcview/gui_gtk3_h264ctrls.c:1113 msgid "CGS NonRewrite (3 Layer)" msgstr "" -#: ../src/uvc_h264.c:1144 +#: ../guvcview/gui_gtk3_h264ctrls.c:1115 msgid "CGS Rewrite (2 Layer)" msgstr "" -#: ../src/uvc_h264.c:1146 +#: ../guvcview/gui_gtk3_h264ctrls.c:1117 msgid "CGS Rewrite (3 Layer)" msgstr "" -#: ../src/uvc_h264.c:1148 +#: ../guvcview/gui_gtk3_h264ctrls.c:1119 msgid "MGS (2 Layer)" msgstr "" -#: ../src/uvc_h264.c:1173 +#: ../guvcview/gui_gtk3_h264ctrls.c:1144 msgid "Stream Mux Enable" msgstr "" -#: ../src/uvc_h264.c:1180 +#: ../guvcview/gui_gtk3_h264ctrls.c:1151 msgid "Embed H.264 aux stream" msgstr "" -#: ../src/uvc_h264.c:1182 +#: ../guvcview/gui_gtk3_h264ctrls.c:1153 msgid "Embed YUY2 aux stream" msgstr "" -#: ../src/uvc_h264.c:1184 +#: ../guvcview/gui_gtk3_h264ctrls.c:1155 msgid "Embed NV12 aux stream" msgstr "" -#: ../src/uvc_h264.c:1204 +#: ../guvcview/gui_gtk3_h264ctrls.c:1175 msgid "MJPG payload container" msgstr "" -#: ../src/uvc_h264.c:1219 +#: ../guvcview/gui_gtk3_h264ctrls.c:1189 +#, fuzzy msgid "Stream Format:" -msgstr "" +msgstr "Formato del file:" -#: ../src/uvc_h264.c:1227 +#: ../guvcview/gui_gtk3_h264ctrls.c:1197 msgid "Byte stream format (H.264 Annex-B)" msgstr "" -#: ../src/uvc_h264.c:1229 +#: ../guvcview/gui_gtk3_h264ctrls.c:1199 +#, fuzzy msgid "NAL stream format" -msgstr "" +msgstr "AVI - formato avi" -#: ../src/uvc_h264.c:1240 +#: ../guvcview/gui_gtk3_h264ctrls.c:1210 msgid "Entropy CABAC:" msgstr "" -#: ../src/uvc_h264.c:1248 +#: ../guvcview/gui_gtk3_h264ctrls.c:1218 msgid "CAVLC" msgstr "" -#: ../src/uvc_h264.c:1261 +#: ../guvcview/gui_gtk3_h264ctrls.c:1231 msgid "Picture timing SEI" msgstr "" -#: ../src/uvc_h264.c:1268 +#: ../guvcview/gui_gtk3_h264ctrls.c:1238 +#, fuzzy msgid "B Frames:" -msgstr "" +msgstr "numero massimo di immagini B: " -#: ../src/uvc_h264.c:1293 +#: ../guvcview/gui_gtk3_h264ctrls.c:1263 msgid "Preview Flipped" msgstr "" -#: ../src/uvc_h264.c:1300 +#: ../guvcview/gui_gtk3_h264ctrls.c:1270 msgid "Additional MVC Views:" msgstr "" -#: ../src/uvc_h264.c:1325 +#: ../guvcview/gui_gtk3_h264ctrls.c:1295 msgid "Simulcast stream index:" msgstr "" -#: ../src/uvc_h264.c:1350 +#: ../guvcview/gui_gtk3_h264ctrls.c:1320 msgid "Spatial Layer Ratio:" msgstr "" -#: ../src/uvc_h264.c:1379 +#: ../guvcview/gui_gtk3_h264ctrls.c:1349 msgid "Leaky Bucket Size (ms):" msgstr "" #. encoder reset -#: ../src/uvc_h264.c:1406 +#: ../guvcview/gui_gtk3_h264ctrls.c:1376 +#, fuzzy msgid "Encoder Reset" -msgstr "" +msgstr "Ripristina la panoramica" -#. -#. h264_controls->probe_button = gtk_button_new_with_label(_("PROBE")); -#. g_signal_connect (GTK_BUTTON(h264_controls->probe_button), "clicked", +#. +#. GtkWidget *probe_button = gtk_button_new_with_label(_("PROBE")); +#. g_signal_connect (GTK_BUTTON(probe_button), "clicked", #. G_CALLBACK (h264_probe_button_clicked), all_data); -#. -#. gtk_grid_attach (GTK_GRID(table), h264_controls->probe_button, 0, line, 1 ,1); -#. gtk_widget_show(h264_controls->probe_button); -#. -#: ../src/uvc_h264.c:1421 +#. +#. gtk_grid_attach (GTK_GRID(h264_controls_grid), probe_button, 0, line, 1 ,1); +#. gtk_widget_show(probe_button); +#. +#: ../guvcview/gui_gtk3_h264ctrls.c:1391 msgid "COMMIT" msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:70 +msgid "Settings" +msgstr "Impostazioni" + +#: ../guvcview/gui_gtk3_menu.c:73 +msgid "Hardware Defaults" +msgstr "Ripristina l'hardware di default" + +#: ../guvcview/gui_gtk3_menu.c:81 +msgid "Camera Button" +msgstr "Pulsante della camera" + +#: ../guvcview/gui_gtk3_menu.c:86 +msgid "Capture Image" +msgstr "Cattura l'immagine" + +#: ../guvcview/gui_gtk3_menu.c:91 +msgid "Capture Video" +msgstr "Registra il video" + +#: ../guvcview/gui_gtk3_menu.c:134 +msgid "Photo" +msgstr "Foto" + +#: ../guvcview/gui_gtk3_menu.c:135 ../guvcview/gui_gtk3_menu.c:159 +msgid "File" +msgstr "File" + +#: ../guvcview/gui_gtk3_menu.c:136 ../guvcview/gui_gtk3_menu.c:160 +msgid "Increment Filename" +msgstr "Incrementa il nome del file" + +#: ../guvcview/gui_gtk3_menu.c:158 +msgid "Video" +msgstr "Video" + +#: ../guvcview/gui_gtk3_menu.c:175 +msgid "Video Codec" +msgstr "Codec video" + +#: ../guvcview/gui_gtk3_menu.c:202 +msgid "Video Codec Properties" +msgstr "ProprietĂ  del codec video" + +#: ../guvcview/gui_gtk3_menu.c:208 +msgid "Audio Codec" +msgstr "Codec audio" + +#: ../guvcview/gui_gtk3_menu.c:235 +msgid "Audio Codec Properties" +msgstr "ProprietĂ  del codec audio" + +#: ../guvcview/gui_gtk3_v4l2ctrls.c:174 +msgid "Left" +msgstr "Sinistra" + +#: ../guvcview/gui_gtk3_v4l2ctrls.c:175 +msgid "Right" +msgstr "Destra" + +#: ../guvcview/gui_gtk3_v4l2ctrls.c:179 +msgid "Down" +msgstr "Sotto" + +#: ../guvcview/gui_gtk3_v4l2ctrls.c:180 +msgid "Up" +msgstr "Sopra" + +#. turn it into a menu control +#: ../guvcview/gui_gtk3_v4l2ctrls.c:296 +msgid "8 bit" +msgstr "8 bit" + +#: ../guvcview/gui_gtk3_v4l2ctrls.c:296 +msgid "12 bit" +msgstr "12 bit" + +#. add a virtual control for software autofocus +#: ../guvcview/gui_gtk3_v4l2ctrls.c:348 +msgid "Auto Focus (continuous)" +msgstr "Messa a fuoco automatica (continua)" + +#: ../guvcview/gui_gtk3_v4l2ctrls.c:349 +msgid "set Focus" +msgstr "imposta la messa a fuoco" + +#. control_widgets_list[n].widget2 = gtk_button_new_from_stock(GTK_STOCK_APPLY); +#. control_widgets_list[n].widget2= gtk_button_new_from_stock(GTK_STOCK_APPLY); +#. control_widgets_list[n].widget2 = gtk_button_new_from_stock(GTK_STOCK_APPLY); +#: ../guvcview/gui_gtk3_v4l2ctrls.c:433 ../guvcview/gui_gtk3_v4l2ctrls.c:456 +#: ../guvcview/gui_gtk3_v4l2ctrls.c:478 +#, fuzzy +msgid "_Apply" +msgstr "Applica" + +#: ../guvcview/gui_gtk3_videoctrls.c:144 +msgid "Frame Rate:" +msgstr "Frame rate:" + +#: ../guvcview/gui_gtk3_videoctrls.c:204 +msgid "Resolution:" +msgstr "Risoluzione:" + +#: ../guvcview/gui_gtk3_videoctrls.c:254 +msgid "Camera Output:" +msgstr "Uscita della webcam:" + +#: ../guvcview/gui_gtk3_videoctrls.c:287 +msgid "---- Video Filters ----" +msgstr "---- Filtri video ----" + +#. Mirror FX +#: ../guvcview/gui_gtk3_videoctrls.c:307 +msgid " Mirror" +msgstr " Specchio" + +#. Upturn FX +#: ../guvcview/gui_gtk3_videoctrls.c:319 +msgid " Invert" +msgstr " Inverti" + +#. Negate FX +#: ../guvcview/gui_gtk3_videoctrls.c:331 +msgid " Negative" +msgstr " Negativo" + +#. Mono FX +#: ../guvcview/gui_gtk3_videoctrls.c:343 +msgid " Mono" +msgstr " Monocromatico" + +#. Pieces FX +#: ../guvcview/gui_gtk3_videoctrls.c:356 +msgid " Pieces" +msgstr " Pezzi" + +#. Particles +#: ../guvcview/gui_gtk3_videoctrls.c:369 +msgid " Particles" +msgstr " Particelle" + +#: ../guvcview/options.c:51 +msgid "Print help" +msgstr "" + +#: ../guvcview/options.c:58 +#, fuzzy +msgid "Print version" +msgstr "Visualizza la versione" + +#: ../guvcview/options.c:64 +msgid "LEVEL" +msgstr "" + +#: ../guvcview/options.c:65 +msgid "Set Verbosity level (def: 0)" +msgstr "" + +#: ../guvcview/options.c:71 +msgid "DEVICE" +msgstr "" + +#: ../guvcview/options.c:72 +#, fuzzy +msgid "Set device name (def: /dev/video0)" +msgstr "Dispositivo video da utilizzare [predefinito: /dev/video0]" + +#: ../guvcview/options.c:78 +msgid "METHOD" +msgstr "" + +#: ../guvcview/options.c:79 +#, fuzzy +msgid "Set capture method [read | mmap (def)]" +msgstr "Metodo di registrazione (1-mmap (predefinito) 2-read)" + +#: ../guvcview/options.c:85 +msgid "WIDTHxHEIGHT" +msgstr "" + +#: ../guvcview/options.c:86 +msgid "Request resolution (e.g 640x480)" +msgstr "" + +#: ../guvcview/options.c:92 +msgid "FOURCC" +msgstr "" + +#: ../guvcview/options.c:93 +msgid "Request format (e.g MJPG)" +msgstr "" + +#: ../guvcview/options.c:99 +msgid "RENDER_API" +msgstr "" + +#: ../guvcview/options.c:100 +msgid "Select render API (e.g none; sdl)" +msgstr "" + +#: ../guvcview/options.c:106 +msgid "AUDIO_API" +msgstr "" + +#: ../guvcview/options.c:107 +msgid "Select audio API (e.g none; port; pulse)" +msgstr "" + +#: ../guvcview/options.c:113 +msgid "AUDIO_DEVICE" +msgstr "" + +#: ../guvcview/options.c:114 +msgid "Select audio device index for selected api (0..N)" +msgstr "" + +#: ../guvcview/options.c:120 +msgid "GUI_API" +msgstr "" + +#: ../guvcview/options.c:121 +msgid "Select GUI API (e.g none; gtk3)" +msgstr "" + +#: ../guvcview/options.c:127 ../guvcview/options.c:134 +msgid "CODEC" +msgstr "" + +#: ../guvcview/options.c:128 +msgid "Audio codec [pcm mp2 mp3 aac ac3 vorb]" +msgstr "" + +#: ../guvcview/options.c:135 +msgid "Video codec [raw mjpg mpeg flv1 wmv1 mpg2 mp43 dx50 h264 vp80 theo]" +msgstr "" + +#: ../guvcview/options.c:141 ../guvcview/options.c:148 +#: ../guvcview/options.c:155 +msgid "FILENAME" +msgstr "" + +#: ../guvcview/options.c:142 +#, fuzzy +msgid "load control profile" +msgstr "Carica profilo" + +#: ../guvcview/options.c:149 +msgid "filename for captured video)" +msgstr "" + +#: ../guvcview/options.c:156 +msgid "filename for captured image)" +msgstr "" + +#: ../guvcview/options.c:162 ../guvcview/options.c:169 +msgid "TIME_IN_SEC" +msgstr "" + +#: ../guvcview/options.c:163 +msgid "time (double) in sec. for video capture)" +msgstr "" + +#: ../guvcview/options.c:170 +msgid "time (double) in sec. between captured photos)" +msgstr "" + +#: ../guvcview/options.c:176 +msgid "TOTAL" +msgstr "" + +#: ../guvcview/options.c:177 +msgid "total number of captured photos)" +msgstr "" + +#: ../guvcview/options.c:184 +msgid "Start in control panel mode" +msgstr "" + +#: ../guvcview/options.c:307 +#, fuzzy, c-format +msgid "" +"Guvcview version %s\n" +"\n" +msgstr "Avviso di Guvcview:" + +#: ../guvcview/options.c:308 +#, c-format +msgid "" +"Usage:\n" +" guvcview [OPTIONS]\n" +"\n" +msgstr "" + +#: ../guvcview/options.c:309 +#, c-format +msgid "OPTIONS:\n" +msgstr "" + +#: ../guvcview/video_capture.c:819 +#, fuzzy, c-format +msgid "saving video to %s" +msgstr "registra video da" + +#. if(debug_level > 1) +#. printf("GUVCVIEW: saving image to %s\n", img_filename); +#: ../guvcview/video_capture.c:1069 +#, c-format +msgid "saving image to %s" +msgstr "" + +#~ msgid "MPEG2 - (lavc)" +#~ msgstr "MPEG2 - (lavc)" + +#~ msgid "MP3 - (lavc)" +#~ msgstr "MP3 - (lavc)" + +#~ msgid "Dolby AC3 - (lavc)" +#~ msgstr "Dolby AC3 - (lavc)" + +#~ msgid "ACC Low - (faac)" +#~ msgstr "ACC Low - (faac)" + +#~ msgid "Audio" +#~ msgstr "Audio" + +#~ msgid " Sound" +#~ msgstr " Suono" + +#~ msgid " Show VU meter" +#~ msgstr " Visualizza VU meter" + +#~ msgid "---- Audio Effects ----" +#~ msgstr "---- Effetti audio ----" + +#~ msgid "Save File" +#~ msgstr "Salva file" + +#~ msgid "codec values" +#~ msgstr "valori dei codec" + +#~ msgid "capturing photo to" +#~ msgstr "cattura foto da" + +#~ msgid "Cap. Video" +#~ msgstr "Registra video" + +#~ msgid "GUVCViewer Controls" +#~ msgstr "Controlli di Guvcview" + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to open device" +#~ msgstr "" +#~ "Errore di Guvcview:\n" +#~ "\n" +#~ "Impossibile accedere al dispositivo" + +#~ msgid "" +#~ "Please make sure the camera is connected\n" +#~ "and that the correct driver is installed." +#~ msgstr "" +#~ "Assicurarsi che la webcam sia connessa\n" +#~ "e che sia installato il rispettivo driver." + +#~ msgid "" +#~ "Guvcview:\n" +#~ "\n" +#~ "UVC Extension controls" +#~ msgstr "" +#~ "Guvcview:\n" +#~ "\n" +#~ "Controlli dell'estensione di UVC" + +#~ msgid "Extension controls were added to the UVC driver" +#~ msgstr "I controlli dell'estensione sono stati aggiunti al driver UVC" + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "UVC Extension controls" +#~ msgstr "" +#~ "Errore di Guvcview:\n" +#~ "\n" +#~ "Controlli dell'estensione di UVC" + +#~ msgid "" +#~ "An error occurred while adding extension\n" +#~ "controls to the UVC driver\n" +#~ "Make sure you run guvcview as root (or sudo)." +#~ msgstr "" +#~ "Si Ăš verificato un errore nell'aggiungere\n" +#~ "i controlli dell'estensione al driver UVC\n" +#~ "Assicurarsi di avviare guvcview da root (o sudo)." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Can't set a valid video stream for guvcview" +#~ msgstr "" +#~ "Errore di Guvcview:\n" +#~ "\n" +#~ "Impossibile impostare un flusso video valido per guvcview" + +#~ msgid "" +#~ "Make sure your device driver is v4l2 compliant\n" +#~ "and that it is properly installed." +#~ msgstr "" +#~ "Assicurarsi che il driver del dispositivo sia\n" +#~ "v4l2 compatibile e che sia correttamente installato." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to start with minimum setup" +#~ msgstr "" +#~ "Errore di Guvcview:\n" +#~ "\n" +#~ "Impossibile avviare con l'installazione minima" + +#~ msgid "Please reconnect your camera." +#~ msgstr "Riconnettere la webcam." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Couldn't query device capabilities" +#~ msgstr "" +#~ "Errore di Guvcview:\n" +#~ "\n" +#~ "Impossibile interrogare le funzionalitĂ  del dispositivo" + +#~ msgid "Make sure the device driver supports v4l2." +#~ msgstr "Assicurarsi che il driver del dispositivo supporti v4l2." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Read method error" +#~ msgstr "" +#~ "Errore di Guvcview:\n" +#~ "\n" +#~ "Errore del metodo di lettura" + +#~ msgid "Please try mmap instead (--capture_method=1)." +#~ msgstr "In alternativa, provare mmap (--capture_method=1)." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to allocate Buffers" +#~ msgstr "" +#~ "Errore di Guvcview:\n" +#~ "\n" +#~ "Impossibile allocare i buffer" + +#~ msgid "Please try restarting your system." +#~ msgstr "Provare a riavviare il sistema." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to create Video Thread" +#~ msgstr "" +#~ "Errore di Guvcview:\n" +#~ "\n" +#~ "Impossibile creare un flusso video" + +#~ msgid "Please report it to http://developer.berlios.de/bugs/?group_id=8179" +#~ msgstr "" +#~ "Siete pregati di segnalarlo a http://developer.berlios.de/bugs/?" +#~ "group_id=8179" + +#~ msgid "Bitmap (Bmp)" +#~ msgstr "Bitmap (Bmp)" + +#~ msgid "Portable Network Graphics (Png)" +#~ msgstr "Portable Network Graphics (Png)" + +#~ msgid "Displays debug information" +#~ msgstr "Visualizza le informazioni di debug" + +#~ msgid "Exit after adding UVC extension controls (needs root/sudo)" +#~ msgstr "" +#~ "Uscire dopo aver aggiunto i controlli dell'estensione di UVC (necessita " +#~ "di root/sudo)" + +#~ msgid "Don't stream video (image controls only)" +#~ msgstr "Non attivare il flusso video (solo controlli dell'immagine)" + +#~ msgid "Don't display a GUI" +#~ msgstr "Non visualizzare la GUI" + +#~ msgid "Configuration file" +#~ msgstr "File di configurazione" + +#~ msgid "Hardware accelaration (enable(1) | disable(0))" +#~ msgstr "Accelerazione hardware (abilita(1) | disabilita(0))" + +#~ msgid "" +#~ "Pixel format(mjpg|jpeg|yuyv|yvyu|uyvy|yyuv|yu12|yv12|nv12|nv21|nv16|nv61|" +#~ "y41p|grey|y10b|y16 |s501|s505|s508|gbrg|grbg|ba81|rggb|bgr3|rgb3)" +#~ msgstr "" +#~ "Formato del pixel(mjpg|jpeg|yuyv|yvyu|uyvy|yyuv|yu12|yv12|nv12|nv21|nv16|" +#~ "nv61|y41p|grey|y10b|y16 |s501|s505|s508|gbrg|grbg|ba81|rggb|bgr3|rgb3)" + +#~ msgid "Frame size, default: 640x480" +#~ msgstr "Risoluzione predefinita: 640x480" + +#~ msgid "Image capture interval in seconds" +#~ msgstr "Intervallo di registrazione dell'immagine in secondi" + +#~ msgid "Number of Pictures to capture" +#~ msgstr "Numero di immagini da registrare" + +#~ msgid "Video File name (capture from start)" +#~ msgstr "Nome del file video (registra dall'inizio)" + +#~ msgid "Video capture time (in seconds)" +#~ msgstr "Durata della registrazione video (in secondi)" + +#~ msgid "Exits guvcview after closing video" +#~ msgstr "Esci da guvcview dopo aver chiuso il video" + +#~ msgid "Number of initial frames to skip" +#~ msgstr "Numero di immagini iniziali da ignorare" + +#~ msgid "Show FPS value (enable(1) | disable (0))" +#~ msgstr "Mostra il valore degli FPS (abilita(1) | disabilita (0))" + +#~ msgid "Load Profile at start" +#~ msgstr "Carica profilo all'avvio" + +#~ msgid "- local options" +#~ msgstr "- opzioni locali" + +#~ msgid "Cap. Image" +#~ msgstr "Cattura immagine" + +#~ msgid "Not enough free space left on disk" +#~ msgstr "Spazio libero sul disco insufficiente" + +#~ msgid "YUY2 - uncomp YUV" +#~ msgstr "YUY2 - YUV non compresso" + +#~ msgid "RGB - uncomp BMP" +#~ msgstr "RGB - BMP non compresso" + +#~ msgid "MKV - Matroska format" +#~ msgstr "MKV - formato Matroska" + +#~ msgid "WEBM - format" +#~ msgstr "WEBM - formato WEBM" + +#~ msgid " Show" +#~ msgstr " Visualizza" + +#~ msgid "Quality:" +#~ msgstr "QualitĂ :" diff -Nru guvcview-1.7.3/po/ja.po guvcview-2.0.1+ubuntu1~ppa1/po/ja.po --- guvcview-1.7.3/po/ja.po 2014-03-24 22:56:28.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/po/ja.po 2014-10-05 10:41:44.000000000 +0000 @@ -7,17 +7,17 @@ msgstr "" "Project-Id-Version: GUVCView 1.0.2\n" "Report-Msgid-Bugs-To: pj.assis@gmail.com\n" -"POT-Creation-Date: 2013-11-14 22:15+0000\n" +"POT-Creation-Date: 2014-08-17 22:49+0100\n" "PO-Revision-Date: 2013-02-25 05:38+0000\n" "Last-Translator: Paulo Assis \n" "Language-Team: LANGUAGE \n" +"Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-12-08 10:36+0000\n" "X-Generator: Launchpad (build 16869)\n" "X-Poedit-Country: JAPAN\n" -"Language: \n" "X-Poedit-Language: Japanese\n" #: ../data/guvcview.desktop.in.in.h:1 @@ -32,1364 +32,1454 @@ msgid "A video viewer and capturer for the linux uvc driver" msgstr "" -#: ../src/acodecs.c:59 -msgid "PCM - uncompressed (16 bit)" -msgstr "" - -#: ../src/acodecs.c:76 -msgid "MPEG2 - (lavc)" -msgstr "" - -#: ../src/acodecs.c:93 -msgid "MP3 - (lavc)" -msgstr "" - -#: ../src/acodecs.c:110 -msgid "Dolby AC3 - (lavc)" -msgstr "" - -#: ../src/acodecs.c:127 -msgid "ACC Low - (faac)" -msgstr "" - -#: ../src/acodecs.c:144 -msgid "Vorbis" -msgstr "" - -#: ../src/audio_tab.c:87 -msgid "Audio" -msgstr "ă‚ȘăƒŒăƒ‡ă‚Łă‚Ș" - -#: ../src/audio_tab.c:105 -msgid " Sound" -msgstr " ă‚”ă‚Šăƒłăƒ‰" - -#. VU meter on the image (OSD) -#: ../src/audio_tab.c:116 -msgid " Show VU meter" -msgstr "" - -#: ../src/audio_tab.c:128 -msgid "Audio API:" -msgstr "" - -#: ../src/audio_tab.c:139 -msgid "PORTAUDIO" -msgstr "" - -#: ../src/audio_tab.c:140 -msgid "PULSEAUDIO" -msgstr "" - -#: ../src/audio_tab.c:156 ../src/audio_tab.c:179 -msgid "Input Device:" -msgstr "ć…„ćŠ›ăƒ‡ăƒă‚€ă‚č:" - -#: ../src/audio_tab.c:189 ../src/audio_tab.c:221 -msgid "Dev. Default" -msgstr "ăƒ‡ăƒă‚€ă‚č ăƒ‡ăƒ•ă‚©ăƒ«ăƒˆ" - -#: ../src/audio_tab.c:211 -msgid "Sample Rate:" -msgstr "ă‚”ăƒłăƒ—ăƒ«ăƒŹăƒŒăƒˆ:" - -#: ../src/audio_tab.c:222 -msgid "1 - mono" -msgstr "1 - ăƒąăƒŽăƒ©ăƒ«" - -#: ../src/audio_tab.c:223 -msgid "2 - stereo" -msgstr "2 - ă‚čテレă‚Ș" - -#: ../src/audio_tab.c:258 -msgid "Channels:" -msgstr "ăƒăƒŁăƒłăƒăƒ«:" - -#: ../src/audio_tab.c:309 -msgid "---- Audio Effects ----" -msgstr "---- ă‚ȘăƒŒăƒ‡ă‚Łă‚Ș スフェクト ----" - -#. Echo -#: ../src/audio_tab.c:328 -msgid " Echo" -msgstr " Echo" - -#. FUZZ -#: ../src/audio_tab.c:339 -msgid " Fuzz" -msgstr " Fuzz" - -#. Reverb -#: ../src/audio_tab.c:351 -msgid " Reverb" -msgstr " Reverb" - -#. WahWah -#: ../src/audio_tab.c:363 -msgid " WahWah" -msgstr " WahWah" - -#. Ducky -#: ../src/audio_tab.c:375 -msgid " Ducky" -msgstr " Ducky" - -#: ../src/callbacks.c:109 -msgid "Error" -msgstr "" - -#: ../src/callbacks.c:133 -msgid "" -"\n" -"You have more than one video device installed.\n" -"Do you want to try another one ?\n" -msgstr "" - -#. Devices -#: ../src/callbacks.c:140 ../src/video_tab.c:111 -msgid "Device:" -msgstr "ăƒ‡ăƒă‚€ă‚č:" - -#: ../src/callbacks.c:272 -msgid "Save File" -msgstr "ăƒ•ă‚Ąă‚€ăƒ«ă‚’äżć­˜ă™ă‚‹" - -#: ../src/callbacks.c:284 -msgid "File Format:" -msgstr "" - -#: ../src/callbacks.c:455 -msgid "codec values" -msgstr "" - -#: ../src/callbacks.c:466 -msgid "" -" encoder fps: \n" -" (0 - use fps combobox value)" -msgstr "" - -#: ../src/callbacks.c:479 -msgid " monotonic pts" -msgstr "" - -#. bit rate -#: ../src/callbacks.c:486 ../src/callbacks.c:809 -msgid "bit rate: " -msgstr "" - -#: ../src/callbacks.c:499 -msgid "qmax: " -msgstr "" - -#: ../src/callbacks.c:512 -msgid "qmin: " -msgstr "" - -#: ../src/callbacks.c:525 -msgid "max. qdiff: " -msgstr "" - -#: ../src/callbacks.c:538 -msgid "dia size: " -msgstr "" - -#: ../src/callbacks.c:551 -msgid "pre dia size: " -msgstr "" - -#: ../src/callbacks.c:564 -msgid "pre me: " -msgstr "" - -#: ../src/callbacks.c:577 -msgid "pre cmp: " -msgstr "" - -#: ../src/callbacks.c:590 -msgid "cmp: " -msgstr "" - -#: ../src/callbacks.c:603 -msgid "sub cmp: " -msgstr "" - -#: ../src/callbacks.c:616 -msgid "last predictor count: " -msgstr "" - -#: ../src/callbacks.c:629 -msgid "gop size: " -msgstr "" - -#: ../src/callbacks.c:642 -msgid "qcompress: " -msgstr "" - -#: ../src/callbacks.c:655 -msgid "qblur: " -msgstr "" - -#: ../src/callbacks.c:668 -msgid "subq: " -msgstr "" - -#: ../src/callbacks.c:681 -msgid "framerefs: " -msgstr "" - -#: ../src/callbacks.c:694 -msgid "me method: " -msgstr "" - -#: ../src/callbacks.c:707 -msgid "mb decision: " -msgstr "" - -#: ../src/callbacks.c:720 -msgid "max B frames: " -msgstr "" - -#: ../src/callbacks.c:733 -msgid "num threads: " -msgstr "" - -#: ../src/callbacks.c:796 -msgid "audio codec values" -msgstr "" - -#. sample format -#: ../src/callbacks.c:823 -msgid "sample format: " -msgstr "" - -#: ../src/callbacks.c:1311 -msgid "start new" -msgstr "æ–°ă—ăé–‹ć§‹ă™ă‚‹" - -#: ../src/callbacks.c:1314 -msgid "restart" -msgstr "ć†è”·ć‹•" - -#: ../src/callbacks.c:1316 -msgid "new" -msgstr "新芏" - -#: ../src/callbacks.c:1318 -msgid "cancel" -msgstr "ă‚­ăƒŁăƒłă‚»ăƒ«" - -#: ../src/callbacks.c:1323 -msgid "" -"launch new process or restart?.\n" -"\n" -msgstr "" -"æ–°ă—ă„ăƒ—ăƒ­ă‚»ă‚čă‚’ç«‹ăĄäžŠă’ă‚‹ă‹ă€ć†è”·ć‹•ă—ăŸă™ă‹?\n" -"\n" - -#: ../src/callbacks.c:1780 ../src/guvcview.c:565 -msgid "Cap. Image (I)" -msgstr "" - -#. disable image controls -#: ../src/callbacks.c:1791 ../src/guvcview.c:690 ../src/timers.c:101 -msgid "capturing photo to" -msgstr "" - -#: ../src/callbacks.c:1850 ../src/guvcview.c:575 -msgid "Cap. Video (V)" -msgstr "" - -#: ../src/callbacks.c:1876 ../src/guvcview.c:740 -msgid "capturing video to" -msgstr "" - -#. vid capture enabled from start -#: ../src/callbacks.c:1911 ../src/guvcview.c:570 -msgid "Stop Video (V)" -msgstr "" - -#: ../src/callbacks.c:1967 ../src/menubar.c:66 -msgid "Save Profile" -msgstr "" - -#: ../src/callbacks.c:1980 ../src/menubar.c:65 -msgid "Load Profile" -msgstr "" - -#: ../src/create_video.c:1098 ../src/guvcview.c:732 -msgid "Cap. Video" -msgstr "" - -#: ../src/guvcview.c:280 -msgid "Guvcview Video Capture" -msgstr "" - -#: ../src/guvcview.c:292 -msgid "GUVCViewer Controls" -msgstr "GUVCViewer ă‚łăƒłăƒˆăƒ­ăƒŒăƒ«" - -#. can't open device -#: ../src/guvcview.c:342 -msgid "" -"Guvcview error:\n" -"\n" -"Unable to open device" -msgstr "" -"Guvcview ă‚šăƒ©ăƒŒ:\n" -"\n" -"ăƒ‡ăƒă‚€ă‚čをă‚ȘăƒŒăƒ—ăƒłă™ă‚‹ă“ăšăŒă§ăăŸă›ă‚“" - -#: ../src/guvcview.c:343 -msgid "" -"Please make sure the camera is connected\n" -"and that the correct driver is installed." -msgstr "" - -#. uvc extension controls OK, give warning and shutdown (called with --add_ctrls) -#: ../src/guvcview.c:348 -msgid "" -"Guvcview:\n" -"\n" -"UVC Extension controls" -msgstr "" - -#: ../src/guvcview.c:349 -msgid "Extension controls were added to the UVC driver" -msgstr "" - -#. uvc extension controls error - EACCES (needs root user) -#: ../src/guvcview.c:356 -msgid "" -"Guvcview error:\n" -"\n" -"UVC Extension controls" -msgstr "" - -#: ../src/guvcview.c:357 -msgid "" -"An error occurred while adding extension\n" -"controls to the UVC driver\n" -"Make sure you run guvcview as root (or sudo)." -msgstr "" - -#: ../src/guvcview.c:391 ../src/guvcview.c:399 ../src/guvcview.c:477 -msgid "" -"Guvcview error:\n" -"\n" -"Can't set a valid video stream for guvcview" -msgstr "" - -#: ../src/guvcview.c:392 ../src/guvcview.c:400 ../src/guvcview.c:478 -msgid "" -"Make sure your device driver is v4l2 compliant\n" -"and that it is properly installed." -msgstr "" - -#: ../src/guvcview.c:422 ../src/guvcview.c:444 -msgid "" -"Guvcview error:\n" -"\n" -"Unable to start with minimum setup" -msgstr "" -"Guvcview ă‚šăƒ©ăƒŒ:\n" -"\n" -"æœ€ć°é™ăźă‚»ăƒƒăƒˆă‚ąăƒƒăƒ—ă‹ă‚‰ć§‹ă‚ă‚‹ă“ăšăŒă§ăăŸă›ă‚“" - -#: ../src/guvcview.c:423 ../src/guvcview.c:445 -msgid "Please reconnect your camera." -msgstr "ă‚«ăƒĄăƒ©ă‚’ć†æŽ„ç¶šă—ăŠăă ă•ă„ă€‚" - -#: ../src/guvcview.c:452 -msgid "" -"Guvcview error:\n" -"\n" -"Couldn't query device capabilities" -msgstr "" - -#: ../src/guvcview.c:453 -msgid "Make sure the device driver supports v4l2." -msgstr "" - -#: ../src/guvcview.c:457 -msgid "" -"Guvcview error:\n" -"\n" -"Read method error" -msgstr "" - -#: ../src/guvcview.c:458 -msgid "Please try mmap instead (--capture_method=1)." -msgstr "" - -#: ../src/guvcview.c:466 -msgid "" -"Guvcview error:\n" -"\n" -"Unable to allocate Buffers" -msgstr "" -"Guvcview ă‚šăƒ©ăƒŒ:\n" -"\n" -"バッファをçąșäżă§ăăŸă›ă‚“" - -#: ../src/guvcview.c:467 -msgid "Please try restarting your system." -msgstr "ă‚·ă‚čăƒ†ăƒ ă‚’ć†è”·ć‹•ă—ăŠăżăŠăă ă•ă„ă€‚" - -#: ../src/guvcview.c:518 -msgid "Image Controls" -msgstr "ă‚€ăƒĄăƒŒă‚žă‚łăƒłăƒˆăƒ­ăƒŒăƒ«" - -#. image auto capture -#: ../src/guvcview.c:561 -msgid "Stop Auto (I)" -msgstr "" - -#: ../src/guvcview.c:676 -msgid "" -"Guvcview error:\n" -"\n" -"Unable to create Video Thread" -msgstr "" -"Guvcview ă‚šăƒ©ăƒŒ:\n" -"\n" -"ビデă‚Șă‚čăƒŹăƒƒăƒ‰ă‚’äœœæˆă™ă‚‹ă“ăšăŒă§ăăŸă›ă‚“" - -#: ../src/guvcview.c:677 -msgid "Please report it to http://developer.berlios.de/bugs/?group_id=8179" -msgstr "http://developer.berlios.de/bugs/?group_id=8179 ă«ăƒŹăƒăƒŒăƒˆă—ăŠăă ă•ă„ă€‚" - -#: ../src/img_controls.c:121 -msgid "Auto Focus (continuous)" -msgstr "ă‚ȘăƒŒăƒˆăƒ•ă‚©ăƒŒă‚«ă‚č(連続)" - -#: ../src/img_controls.c:122 -msgid "set Focus" -msgstr "ăƒ•ă‚©ăƒŒă‚«ă‚čă‚’èš­ćźšă™ă‚‹" - -#: ../src/image_format.c:35 -msgid "Jpeg (jpg)" -msgstr "" - -#: ../src/image_format.c:41 -msgid "Bitmap (Bmp)" -msgstr "" - -#: ../src/image_format.c:47 -msgid "Portable Network Graphics (Png)" -msgstr "" - -#: ../src/image_format.c:53 -msgid "Raw Image (raw)" -msgstr "" - -#. controls menu -#: ../src/menubar.c:64 -msgid "Settings" -msgstr "" - -#: ../src/menubar.c:67 -msgid "Hardware Defaults" -msgstr "" - -#: ../src/menubar.c:75 -msgid "Camera Button" -msgstr "" - -#: ../src/menubar.c:79 -msgid "Capture Image" -msgstr "" - -#: ../src/menubar.c:84 -msgid "Capture Video" -msgstr "" - -#. video menu -#: ../src/menubar.c:144 ../src/video_tab.c:95 -msgid "Video" -msgstr "" - -#: ../src/menubar.c:145 ../src/menubar.c:233 -msgid "File" -msgstr "" - -#: ../src/menubar.c:146 ../src/menubar.c:234 -msgid "Increment Filename" -msgstr "" - -#: ../src/menubar.c:164 -msgid "Video Codec" -msgstr "" - -#: ../src/menubar.c:189 -msgid "Video Codec Properties" -msgstr "" - -#: ../src/menubar.c:196 -msgid "Audio Codec" -msgstr "" - -#: ../src/menubar.c:217 -msgid "Audio Codec Properties" -msgstr "" - -#. photo menu -#: ../src/menubar.c:232 -msgid "Photo" -msgstr "" - -#: ../src/options.c:753 -msgid "Prints version" -msgstr "ăƒăƒŒă‚žăƒ§ăƒłă‚’èĄšç€șする" - -#: ../src/options.c:754 -msgid "Displays debug information" -msgstr "ăƒ‡ăƒăƒƒă‚°æƒ…ć ±ă‚’èĄšç€șする" - -#: ../src/options.c:755 -msgid "Video Device to use [default: /dev/video0]" -msgstr "äœżç”šă™ă‚‹ăƒ“ăƒ‡ă‚Șăƒ‡ăƒă‚€ă‚č [ăƒ‡ăƒ•ă‚©ăƒ«ăƒˆ: /dev/video0]" - -#: ../src/options.c:756 -msgid "Exit after adding UVC extension controls (needs root/sudo)" -msgstr "" - -#: ../src/options.c:757 -msgid "Don't stream video (image controls only)" -msgstr "" - -#: ../src/options.c:758 -msgid "Don't display a GUI" -msgstr "" - -#: ../src/options.c:759 -msgid "Capture method (1-mmap (default) 2-read)" -msgstr "" - -#: ../src/options.c:760 -msgid "Configuration file" -msgstr "èš­ćźšăƒ•ă‚Ąă‚€ăƒ«" - -#: ../src/options.c:761 -msgid "Hardware accelaration (enable(1) | disable(0))" -msgstr "ăƒăƒŒăƒ‰ă‚Šă‚§ă‚ąă‚ąă‚Żă‚»ăƒ©ăƒŹăƒŒă‚·ăƒ§ăƒł (有ćŠč(1) | 無ćŠč(0))" - -#: ../src/options.c:762 -msgid "" -"Pixel " -"format(mjpg|jpeg|yuyv|yvyu|uyvy|yyuv|yu12|yv12|nv12|nv21|nv16|nv61|y41p|grey|" -"y10b|y16 |s501|s505|s508|gbrg|grbg|ba81|rggb|bgr3|rgb3)" -msgstr "" - -#: ../src/options.c:763 -msgid "Frame size, default: 640x480" -msgstr "ăƒ•ăƒŹăƒŒăƒ ă‚”ă‚€ă‚șă€ăƒ‡ăƒ•ă‚©ăƒ«ăƒˆ: 640x480" - -#: ../src/options.c:764 -msgid "Image File name" -msgstr "ç”»ćƒăƒ•ă‚Ąă‚€ăƒ«ć" - -#: ../src/options.c:765 -msgid "Image capture interval in seconds" -msgstr "ç§’ć˜äœăźç”»ćƒă‚­ăƒŁăƒ—ăƒăƒŁé–“éš”" - -#: ../src/options.c:766 -msgid "Number of Pictures to capture" -msgstr "ă‚­ăƒŁăƒ—ăƒăƒŁă™ă‚‹ç”»ćƒæ•°" - -#: ../src/options.c:767 -msgid "Video File name (capture from start)" -msgstr "" - -#: ../src/options.c:768 -msgid "Video capture time (in seconds)" -msgstr "" - -#: ../src/options.c:769 -msgid "Exits guvcview after closing video" -msgstr "" - -#: ../src/options.c:770 -msgid "Number of initial frames to skip" -msgstr "" - -#: ../src/options.c:771 -msgid "Show FPS value (enable(1) | disable (0))" -msgstr "FPS ć€€ăźèĄšç€ș (有ćŠč(1) | 無ćŠč (0))" - -#: ../src/options.c:772 -msgid "Load Profile at start" -msgstr "é–‹ć§‹æ™‚ă«ăƒ—ăƒ­ăƒ•ă‚Ąă‚€ăƒ«ă‚’èȘ­ăżèŸŒă‚€" - -#: ../src/options.c:773 -msgid "List controls method (0:loop, 1:next_ctrl flag [def])" -msgstr "" - -#: ../src/options.c:779 -msgid "- local options" -msgstr "- ăƒ­ăƒŒă‚«ăƒ«ă‚Șăƒ—ă‚·ăƒ§ăƒł" - -#. gdk_threads_enter(); -#: ../src/timers.c:119 -msgid "Cap. Image" -msgstr "キャプチャ.ç”»ćƒ" - -#: ../src/timers.c:217 -msgid "Guvcview Warning:" -msgstr "" - -#: ../src/timers.c:217 -msgid "Not enough free space left on disk" -msgstr "" - -#: ../src/v4l2_controls.c:794 -msgid "Left" -msgstr "ć·Š" - -#: ../src/v4l2_controls.c:795 -msgid "Right" -msgstr "揳" - -#: ../src/v4l2_controls.c:799 -msgid "Down" -msgstr "例" - -#: ../src/v4l2_controls.c:800 -msgid "Up" -msgstr "侊" - -#: ../src/v4l2_controls.c:845 -msgid "Off" -msgstr "" - -#: ../src/v4l2_controls.c:845 -msgid "On" -msgstr "" - -#: ../src/v4l2_controls.c:845 -msgid "Blinking" -msgstr "" - -#: ../src/v4l2_controls.c:845 -msgid "Auto" -msgstr "" - -#. turn it into a menu control -#: ../src/v4l2_controls.c:894 -msgid "8 bit" -msgstr "" - -#: ../src/v4l2_controls.c:894 -msgid "12 bit" -msgstr "" - -#: ../src/v4l2_dyna_ctrls.c:96 -msgid "Pan (relative)" -msgstr "パン (ç›žćŻŸ)" - -#: ../src/v4l2_dyna_ctrls.c:109 -msgid "Tilt (relative)" -msgstr "チルト (ç›žćŻŸ)" - -#: ../src/v4l2_dyna_ctrls.c:122 -msgid "Pan Reset" -msgstr "パン ăƒȘă‚»ăƒƒăƒˆ" - -#: ../src/v4l2_dyna_ctrls.c:135 -msgid "Tilt Reset" -msgstr "チルト ăƒȘă‚»ăƒƒăƒˆ" - -#: ../src/v4l2_dyna_ctrls.c:148 -msgid "Focus (absolute)" -msgstr "ăƒ•ă‚©ăƒŒă‚«ă‚č (漌慹ăȘ)" - -#: ../src/v4l2_dyna_ctrls.c:161 -msgid "LED1 Mode" -msgstr "LED1 ăƒąăƒŒăƒ‰" - -#: ../src/v4l2_dyna_ctrls.c:174 -msgid "LED1 Frequency" -msgstr "LED1 ć›žæ•°" - -#: ../src/v4l2_dyna_ctrls.c:187 -msgid "Disable video processing" -msgstr "ビデă‚Ș懩理 を無ćŠčにする" +#: ../data/guvcview.appdata.xml.in.in.h:1 +msgid "capture video from v4l2 devices" +msgstr "" -#: ../src/v4l2_dyna_ctrls.c:200 -msgid "Raw bits per pixel" -msgstr "1ç”»çŽ ă‚ăŸă‚Šăźç”Ÿăźăƒ“ăƒƒăƒˆ" +#: ../data/guvcview.appdata.xml.in.in.h:2 +msgid "" +"Video capture tool for video4linux2 compliant cameras, with special emphasis " +"on the linux uvc driver. It provides Image (jpg, png, bmp) and Video (mjpeg, " +"flv1, wmv1, mpg2, mpg4,...) capture with sound in several " +"formats( currently: avi and matroska). I also supports a control panel " +"option (--control_only) that is compatible with any other v4l2 app." +msgstr "" -#. needed only for language files (not used) +#. +#. * needed only for language files (not used) +#. #. V4L2 control strings -#: ../src/v4l2uvc.c:57 +#: ../gview_v4l2core/v4l2_controls.c:49 msgid "User Controls" msgstr "" -#: ../src/v4l2uvc.c:58 +#: ../gview_v4l2core/v4l2_controls.c:50 msgid "Brightness" msgstr "茝ćșŠ" -#: ../src/v4l2uvc.c:59 +#: ../gview_v4l2core/v4l2_controls.c:51 msgid "Contrast" msgstr "ă‚łăƒłăƒˆăƒ©ă‚čト" -#: ../src/v4l2uvc.c:60 +#: ../gview_v4l2core/v4l2_controls.c:52 msgid "Hue" msgstr "è‰Č盾" -#: ../src/v4l2uvc.c:61 +#: ../gview_v4l2core/v4l2_controls.c:53 msgid "Saturation" msgstr "ćœ©ćșŠ" -#: ../src/v4l2uvc.c:62 +#: ../gview_v4l2core/v4l2_controls.c:54 msgid "Sharpness" msgstr "éźźæ˜ŽćșŠ" -#: ../src/v4l2uvc.c:63 +#: ../gview_v4l2core/v4l2_controls.c:55 msgid "Gamma" msgstr "ガンマ" -#: ../src/v4l2uvc.c:64 +#: ../gview_v4l2core/v4l2_controls.c:56 msgid "Backlight Compensation" msgstr "ăƒăƒƒă‚Żăƒ©ă‚€ăƒˆèŁœæ­Ł" -#: ../src/v4l2uvc.c:65 +#: ../gview_v4l2core/v4l2_controls.c:57 msgid "Power Line Frequency" msgstr "電æșăƒ©ă‚€ăƒłć‘šæłąæ•°" -#: ../src/v4l2uvc.c:66 +#: ../gview_v4l2core/v4l2_controls.c:58 msgid "Hue, Automatic" msgstr "" -#: ../src/v4l2uvc.c:67 +#: ../gview_v4l2core/v4l2_controls.c:59 msgid "Focus, Auto" msgstr "ăƒ•ă‚©ăƒŒă‚«ă‚č,è‡Ș拕" -#: ../src/v4l2uvc.c:68 +#: ../gview_v4l2core/v4l2_controls.c:60 msgid "Manual Mode" msgstr "æ‰‹ć‹•ăƒąăƒŒăƒ‰" -#: ../src/v4l2uvc.c:69 +#: ../gview_v4l2core/v4l2_controls.c:61 msgid "Auto Mode" msgstr "è‡Șć‹•ăƒąăƒŒăƒ‰" -#: ../src/v4l2uvc.c:70 +#: ../gview_v4l2core/v4l2_controls.c:62 msgid "Shutter Priority Mode" msgstr "ă‚·ăƒŁăƒƒă‚żăƒŒć„Șć…ˆăƒąăƒŒăƒ‰" -#: ../src/v4l2uvc.c:71 +#: ../gview_v4l2core/v4l2_controls.c:63 msgid "Aperture Priority Mode" msgstr "甞りć„Șć…ˆăƒąăƒŒăƒ‰" -#: ../src/v4l2uvc.c:72 +#: ../gview_v4l2core/v4l2_controls.c:64 msgid "Black Level" msgstr "" -#: ../src/v4l2uvc.c:73 +#: ../gview_v4l2core/v4l2_controls.c:65 msgid "White Balance, Automatic" msgstr "" -#: ../src/v4l2uvc.c:74 +#: ../gview_v4l2core/v4l2_controls.c:66 msgid "Do White Balance" msgstr "" -#: ../src/v4l2uvc.c:75 +#: ../gview_v4l2core/v4l2_controls.c:67 msgid "Red Balance" msgstr "" -#: ../src/v4l2uvc.c:76 +#: ../gview_v4l2core/v4l2_controls.c:68 msgid "Blue Balance" msgstr "" -#: ../src/v4l2uvc.c:77 +#: ../gview_v4l2core/v4l2_controls.c:69 msgid "Exposure" msgstr "" -#: ../src/v4l2uvc.c:78 +#: ../gview_v4l2core/v4l2_controls.c:70 msgid "Gain, Automatic" msgstr "" -#: ../src/v4l2uvc.c:79 +#: ../gview_v4l2core/v4l2_controls.c:71 msgid "Gain" msgstr "ă‚Čă‚€ăƒł" -#: ../src/v4l2uvc.c:80 +#: ../gview_v4l2core/v4l2_controls.c:72 msgid "Horizontal Flip" msgstr "" -#: ../src/v4l2uvc.c:81 +#: ../gview_v4l2core/v4l2_controls.c:73 msgid "Vertical Flip" msgstr "" -#: ../src/v4l2uvc.c:82 +#: ../gview_v4l2core/v4l2_controls.c:74 msgid "Horizontal Center" msgstr "" -#: ../src/v4l2uvc.c:83 +#: ../gview_v4l2core/v4l2_controls.c:75 msgid "Vertical Center" msgstr "" -#: ../src/v4l2uvc.c:84 +#: ../gview_v4l2core/v4l2_controls.c:76 msgid "Chroma AGC" msgstr "" -#: ../src/v4l2uvc.c:85 +#: ../gview_v4l2core/v4l2_controls.c:77 msgid "Color Killer" msgstr "" -#: ../src/v4l2uvc.c:86 +#: ../gview_v4l2core/v4l2_controls.c:78 msgid "Color Effects" msgstr "" #. CAMERA CLASS control strings -#: ../src/v4l2uvc.c:89 +#: ../gview_v4l2core/v4l2_controls.c:81 msgid "Camera Controls" msgstr "" -#: ../src/v4l2uvc.c:90 +#: ../gview_v4l2core/v4l2_controls.c:82 msgid "Auto Exposure" msgstr "" -#: ../src/v4l2uvc.c:91 +#: ../gview_v4l2core/v4l2_controls.c:83 msgid "Exposure Time, Absolute" msgstr "" -#: ../src/v4l2uvc.c:92 +#: ../gview_v4l2core/v4l2_controls.c:84 msgid "Exposure, Dynamic Framerate" msgstr "" -#: ../src/v4l2uvc.c:93 +#: ../gview_v4l2core/v4l2_controls.c:85 msgid "Pan, Relative" msgstr "" -#: ../src/v4l2uvc.c:94 +#: ../gview_v4l2core/v4l2_controls.c:86 msgid "Tilt, Relative" msgstr "" -#: ../src/v4l2uvc.c:95 +#: ../gview_v4l2core/v4l2_controls.c:87 msgid "Pan, Reset" msgstr "" -#: ../src/v4l2uvc.c:96 +#: ../gview_v4l2core/v4l2_controls.c:88 msgid "Tilt, Reset" msgstr "" -#: ../src/v4l2uvc.c:97 +#: ../gview_v4l2core/v4l2_controls.c:89 msgid "Pan, Absolute" msgstr "" -#: ../src/v4l2uvc.c:99 +#: ../gview_v4l2core/v4l2_controls.c:91 msgid "Focus, Absolute" msgstr "" -#: ../src/v4l2uvc.c:100 +#: ../gview_v4l2core/v4l2_controls.c:92 msgid "Focus, Relative" msgstr "" -#: ../src/v4l2uvc.c:101 +#: ../gview_v4l2core/v4l2_controls.c:93 msgid "Focus, Automatic" msgstr "" -#: ../src/v4l2uvc.c:102 +#: ../gview_v4l2core/v4l2_controls.c:94 msgid "Zoom, Absolute" msgstr "" -#: ../src/v4l2uvc.c:103 +#: ../gview_v4l2core/v4l2_controls.c:95 msgid "Zoom, Relative" msgstr "" -#: ../src/v4l2uvc.c:104 +#: ../gview_v4l2core/v4l2_controls.c:96 msgid "Zoom, Continuous" msgstr "" -#: ../src/v4l2uvc.c:105 +#: ../gview_v4l2core/v4l2_controls.c:97 msgid "Privacy" msgstr "" #. UVC specific control strings -#: ../src/v4l2uvc.c:108 +#: ../gview_v4l2core/v4l2_controls.c:100 msgid "Exposure, Auto" msgstr "éœČć‡ș、è‡Ș拕" -#: ../src/v4l2uvc.c:109 +#: ../gview_v4l2core/v4l2_controls.c:101 msgid "Exposure, Auto Priority" msgstr "éœČć‡ș、è‡Ș拕ć„Ș慈" -#: ../src/v4l2uvc.c:110 +#: ../gview_v4l2core/v4l2_controls.c:102 msgid "Exposure (Absolute)" msgstr "Exposure (漌慹ăȘ)" -#: ../src/v4l2uvc.c:111 +#: ../gview_v4l2core/v4l2_controls.c:103 msgid "White Balance Temperature, Auto" msgstr "ăƒ›ăƒŻă‚€ăƒˆăƒăƒ©ăƒłă‚čæž©ćșŠă€è‡Ș拕" -#: ../src/v4l2uvc.c:112 +#: ../gview_v4l2core/v4l2_controls.c:104 msgid "White Balance Temperature" msgstr "ăƒ›ăƒŻă‚€ăƒˆăƒăƒ©ăƒłă‚čæž©ćșŠ" -#: ../src/v4l2uvc.c:113 +#: ../gview_v4l2core/v4l2_controls.c:105 msgid "White Balance Component, Auto" msgstr "ăƒ›ăƒŻă‚€ăƒˆăƒăƒ©ăƒłă‚čæˆćˆ†ă€è‡Ș拕" -#: ../src/v4l2uvc.c:114 +#: ../gview_v4l2core/v4l2_controls.c:106 msgid "White Balance Blue Component" msgstr "ăƒ›ăƒŻă‚€ăƒˆăƒăƒ©ăƒłă‚čé’æˆćˆ†" -#: ../src/v4l2uvc.c:115 +#: ../gview_v4l2core/v4l2_controls.c:107 msgid "White Balance Red Component" msgstr "ăƒ›ăƒŻă‚€ăƒˆăƒăƒ©ăƒłă‚čè”€æˆćˆ†" #. libwebcam specific control strings -#: ../src/v4l2uvc.c:118 +#: ../gview_v4l2core/v4l2_controls.c:110 msgid "Focus" msgstr "" -#: ../src/v4l2uvc.c:119 +#: ../gview_v4l2core/v4l2_controls.c:111 msgid "Focus (Absolute)" msgstr "" -#: ../src/vcodecs.c:63 +#: ../gview_v4l2core/v4l2_xu_ctrls.c:63 ../guvcview/gui_gtk3_v4l2ctrls.c:239 +msgid "Off" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:64 ../guvcview/gui_gtk3_v4l2ctrls.c:239 +msgid "On" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:65 ../guvcview/gui_gtk3_v4l2ctrls.c:239 +msgid "Blinking" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:66 ../guvcview/gui_gtk3_v4l2ctrls.c:239 +msgid "Auto" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:73 +msgid "Pan (relative)" +msgstr "パン (ç›žćŻŸ)" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:86 +msgid "Tilt (relative)" +msgstr "チルト (ç›žćŻŸ)" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:99 +msgid "Pan Reset" +msgstr "パン ăƒȘă‚»ăƒƒăƒˆ" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:112 +msgid "Tilt Reset" +msgstr "チルト ăƒȘă‚»ăƒƒăƒˆ" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:125 +msgid "Focus (absolute)" +msgstr "ăƒ•ă‚©ăƒŒă‚«ă‚č (漌慹ăȘ)" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:138 +msgid "LED1 Mode" +msgstr "LED1 ăƒąăƒŒăƒ‰" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:151 +msgid "LED1 Frequency" +msgstr "LED1 ć›žæ•°" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:164 +msgid "Disable video processing" +msgstr "ビデă‚Ș懩理 を無ćŠčにする" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:177 +msgid "Raw bits per pixel" +msgstr "1ç”»çŽ ă‚ăŸă‚Šăźç”Ÿăźăƒ“ăƒƒăƒˆ" + +#: ../gview_encoder/audio_codecs.c:63 +msgid "PCM - uncompressed (float 32 bit)" +msgstr "" + +#: ../gview_encoder/audio_codecs.c:80 +msgid "MP2 (MPEG audio layer 2)" +msgstr "" + +#: ../gview_encoder/audio_codecs.c:97 +msgid "MP3 (MPEG audio layer 3)" +msgstr "" + +#: ../gview_encoder/audio_codecs.c:118 +msgid "AC-3 (ATSC A/52A)" +msgstr "" + +#: ../gview_encoder/audio_codecs.c:139 +msgid "AAC (Advanced Audio Coding)" +msgstr "" + +#: ../gview_encoder/audio_codecs.c:160 +msgid "Vorbis" +msgstr "" + +#: ../gview_encoder/video_codecs.c:75 +#, fuzzy +msgid "Raw camera input" +msgstr "ă‚«ăƒĄăƒ©ć‡ș抛:" + +#: ../gview_encoder/video_codecs.c:111 msgid "MJPG - compressed" msgstr "MJPG - 朧羼" -#: ../src/vcodecs.c:99 -msgid "YUY2 - uncomp YUV" -msgstr "YUY2 - 非朧羼 YUV" - -#: ../src/vcodecs.c:135 -msgid "RGB - uncomp BMP" -msgstr "RGB - 非朧羼 BMP" - -#: ../src/vcodecs.c:171 +#: ../gview_encoder/video_codecs.c:147 msgid "MPEG video 1" msgstr "" -#: ../src/vcodecs.c:207 +#: ../gview_encoder/video_codecs.c:183 msgid "FLV1 - flash video 1" msgstr "" -#: ../src/vcodecs.c:243 +#: ../gview_encoder/video_codecs.c:219 msgid "WMV1 - win. med. video 7" msgstr "" -#: ../src/vcodecs.c:279 +#: ../gview_encoder/video_codecs.c:255 msgid "MPG2 - MPG2 format" msgstr "" -#: ../src/vcodecs.c:315 +#: ../gview_encoder/video_codecs.c:291 msgid "MS MP4 V3" msgstr "" -#: ../src/vcodecs.c:351 +#: ../gview_encoder/video_codecs.c:327 msgid "MPEG4-ASP" msgstr "" -#: ../src/vcodecs.c:387 +#: ../gview_encoder/video_codecs.c:363 msgid "MPEG4-AVC (H264)" msgstr "" -#: ../src/vcodecs.c:427 +#: ../gview_encoder/video_codecs.c:403 msgid "VP8 (VP8)" msgstr "" -#: ../src/vcodecs.c:463 +#: ../gview_encoder/video_codecs.c:439 msgid "Theora (ogg theora)" msgstr "" -#: ../src/video_format.c:43 -msgid "AVI - avi format" +#: ../guvcview/gui_gtk3_audioctrls.c:95 +msgid "Audio API:" +msgstr "" + +#: ../guvcview/gui_gtk3_audioctrls.c:106 +msgid "NO SOUND" +msgstr "" + +#: ../guvcview/gui_gtk3_audioctrls.c:107 +msgid "PORTAUDIO" +msgstr "" + +#: ../guvcview/gui_gtk3_audioctrls.c:110 +msgid "PULSEAUDIO" +msgstr "" + +#: ../guvcview/gui_gtk3_audioctrls.c:127 +msgid "Input Device:" +msgstr "ć…„ćŠ›ăƒ‡ăƒă‚€ă‚č:" + +#: ../guvcview/gui_gtk3_audioctrls.c:161 +msgid "Sample Rate:" +msgstr "ă‚”ăƒłăƒ—ăƒ«ăƒŹăƒŒăƒˆ:" + +#: ../guvcview/gui_gtk3_audioctrls.c:168 ../guvcview/gui_gtk3_audioctrls.c:214 +msgid "Dev. Default" +msgstr "ăƒ‡ăƒă‚€ă‚č ăƒ‡ăƒ•ă‚©ăƒ«ăƒˆ" + +#: ../guvcview/gui_gtk3_audioctrls.c:207 +msgid "Channels:" +msgstr "ăƒăƒŁăƒłăƒăƒ«:" + +#: ../guvcview/gui_gtk3_audioctrls.c:215 +msgid "1 - mono" +msgstr "1 - ăƒąăƒŽăƒ©ăƒ«" + +#: ../guvcview/gui_gtk3_audioctrls.c:216 +msgid "2 - stereo" +msgstr "2 - ă‚čテレă‚Ș" + +#: ../guvcview/gui_gtk3_audioctrls.c:235 +#, fuzzy +msgid "---- Audio Filters ----" +msgstr "---- ビデă‚Șăƒ•ă‚Łăƒ«ă‚ż ----" + +#. Echo FX +#: ../guvcview/gui_gtk3_audioctrls.c:255 +msgid " Echo" +msgstr " Echo" + +#. Reverb FX +#: ../guvcview/gui_gtk3_audioctrls.c:268 +msgid " Reverb" +msgstr " Reverb" + +#. Fuzz FX +#: ../guvcview/gui_gtk3_audioctrls.c:281 +msgid " Fuzz" +msgstr " Fuzz" + +#. WahWah FX +#: ../guvcview/gui_gtk3_audioctrls.c:294 +msgid " WahWah" +msgstr " WahWah" + +#. Ducky FX +#: ../guvcview/gui_gtk3_audioctrls.c:307 +msgid " Ducky" +msgstr " Ducky" + +#: ../guvcview/gui_gtk3.c:310 ../guvcview/gui_gtk3_callbacks.c:749 +msgid "Stop Video (V)" +msgstr "" + +#. video button +#: ../guvcview/gui_gtk3.c:315 ../guvcview/gui_gtk3.c:600 +#: ../guvcview/gui_gtk3_callbacks.c:755 +msgid "Cap. Video (V)" +msgstr "" + +#: ../guvcview/gui_gtk3.c:376 ../guvcview/gui_gtk3.c:383 +msgid "Error" +msgstr "" + +#: ../guvcview/gui_gtk3.c:379 ../guvcview/gui_gtk3.c:386 +#: ../guvcview/gui_gtk3_callbacks.c:2097 +msgid "_Ok" +msgstr "" + +#: ../guvcview/gui_gtk3.c:380 ../guvcview/gui_gtk3_callbacks.c:185 +#: ../guvcview/gui_gtk3_callbacks.c:199 ../guvcview/gui_gtk3_callbacks.c:522 +#: ../guvcview/gui_gtk3_callbacks.c:624 ../guvcview/gui_gtk3_callbacks.c:1755 +#: ../guvcview/gui_gtk3_callbacks.c:2098 +#, fuzzy +msgid "_Cancel" +msgstr "ă‚­ăƒŁăƒłă‚»ăƒ«" + +#: ../guvcview/gui_gtk3.c:407 +msgid "" +"\n" +"You have more than one video device installed.\n" +"Do you want to try another one ?\n" +msgstr "" + +#. ---- Devices ---- +#: ../guvcview/gui_gtk3.c:414 ../guvcview/gui_gtk3_videoctrls.c:106 +msgid "Device:" +msgstr "ăƒ‡ăƒă‚€ă‚č:" + +#: ../guvcview/gui_gtk3.c:516 +msgid "Guvcview Video Capture" +msgstr "" + +#: ../guvcview/gui_gtk3.c:525 +msgid "Guvcview" +msgstr "" + +#: ../guvcview/gui_gtk3.c:572 +msgid "Stop Cap. (I)" +msgstr "" + +#: ../guvcview/gui_gtk3.c:578 ../guvcview/gui_gtk3_callbacks.c:720 +#: ../guvcview/video_capture.c:250 +msgid "Cap. Image (I)" +msgstr "" + +#. quit button +#. GtkWidget *quitButton = gtk_button_new_from_stock(GTK_STOCK_QUIT); +#: ../guvcview/gui_gtk3.c:621 +msgid "_Quit" +msgstr "" + +#: ../guvcview/gui_gtk3.c:667 +msgid "Image Controls" +msgstr "ă‚€ăƒĄăƒŒă‚žă‚łăƒłăƒˆăƒ­ăƒŒăƒ«" + +#: ../guvcview/gui_gtk3.c:703 +#, fuzzy +msgid "H264 Controls" +msgstr "ă‚€ăƒĄăƒŒă‚žă‚łăƒłăƒˆăƒ­ăƒŒăƒ«" + +#: ../guvcview/gui_gtk3.c:742 +#, fuzzy +msgid "Video Controls" +msgstr "GUVCViewer ă‚łăƒłăƒˆăƒ­ăƒŒăƒ«" + +#: ../guvcview/gui_gtk3.c:777 +#, fuzzy +msgid "Audio Controls" +msgstr "ă‚€ăƒĄăƒŒă‚žă‚łăƒłăƒˆăƒ­ăƒŒăƒ«" + +#: ../guvcview/gui_gtk3_callbacks.c:182 ../guvcview/gui_gtk3_menu.c:72 +msgid "Save Profile" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:186 ../guvcview/gui_gtk3_callbacks.c:523 +#: ../guvcview/gui_gtk3_callbacks.c:625 +msgid "_Save" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:196 ../guvcview/gui_gtk3_menu.c:71 +msgid "Load Profile" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:200 +msgid "_Open" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:208 ../guvcview/gui_gtk3_callbacks.c:531 +#: ../guvcview/gui_gtk3_callbacks.c:634 +msgid "File Format:" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:220 +msgid "gpfl (*.gpfl)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:221 +msgid "any (*.*)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:519 +#, fuzzy +msgid "Photo file name" +msgstr "ç”»ćƒăƒ•ă‚Ąă‚€ăƒ«ć" + +#: ../guvcview/gui_gtk3_callbacks.c:543 +msgid "Raw (*.raw)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:544 +msgid "Jpeg (*.jpg)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:545 +msgid "Png (*.png)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:546 +msgid "Bmp (*.bmp)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:621 +#, fuzzy +msgid "Video file name" +msgstr "ç”»ćƒăƒ•ă‚Ąă‚€ăƒ«ć" + +#: ../guvcview/gui_gtk3_callbacks.c:646 +msgid "Matroska (*.mkv)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:647 +msgid "WebM (*.webm)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:648 +msgid "Avi (*.avi)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:1158 +msgid "start new" +msgstr "æ–°ă—ăé–‹ć§‹ă™ă‚‹" + +#: ../guvcview/gui_gtk3_callbacks.c:1161 +msgid "restart" +msgstr "ć†è”·ć‹•" + +#: ../guvcview/gui_gtk3_callbacks.c:1163 +msgid "new" +msgstr "新芏" + +#: ../guvcview/gui_gtk3_callbacks.c:1165 +msgid "cancel" +msgstr "ă‚­ăƒŁăƒłă‚»ăƒ«" + +#: ../guvcview/gui_gtk3_callbacks.c:1170 +msgid "" +"launch new process or restart?.\n" +"\n" +msgstr "" +"æ–°ă—ă„ăƒ—ăƒ­ă‚»ă‚čă‚’ç«‹ăĄäžŠă’ă‚‹ă‹ă€ć†è”·ć‹•ă—ăŸă™ă‹?\n" +"\n" + +#: ../guvcview/gui_gtk3_callbacks.c:1751 +msgid "video codec values" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:1754 +msgid "_OK" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:1760 +msgid "" +" encoder fps: \n" +" (0 - use fps combobox value)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:1773 +msgid " monotonic pts" +msgstr "" + +#. bit rate +#: ../guvcview/gui_gtk3_callbacks.c:1780 ../guvcview/gui_gtk3_callbacks.c:2105 +msgid "bit rate: " +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:1793 +msgid "qmax: " +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:1806 +msgid "qmin: " +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:1819 +msgid "max. qdiff: " +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:1832 +msgid "dia size: " +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:1845 +msgid "pre dia size: " +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:1858 +msgid "pre me: " +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:1871 +msgid "pre cmp: " +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:1884 +msgid "cmp: " +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:1897 +msgid "sub cmp: " +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:1910 +msgid "last predictor count: " +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:1923 +msgid "gop size: " +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:1936 +msgid "qcompress: " +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:1949 +msgid "qblur: " msgstr "" -#: ../src/video_format.c:52 -msgid "MKV - Matroska format" +#: ../guvcview/gui_gtk3_callbacks.c:1962 +msgid "subq: " msgstr "" -#: ../src/video_format.c:61 -msgid "WEBM - format" +#: ../guvcview/gui_gtk3_callbacks.c:1975 +msgid "framerefs: " msgstr "" -#: ../src/video_tab.c:216 -msgid "Frame Rate:" -msgstr "ăƒ•ăƒŹăƒŒăƒ ăƒŹăƒŒăƒˆ:" - -#: ../src/video_tab.c:223 -msgid " Show" -msgstr " èĄšç€ș" - -#: ../src/video_tab.c:245 -msgid "Resolution:" -msgstr "è§ŁćƒćșŠ:" - -#: ../src/video_tab.c:271 -msgid "Camera Output:" -msgstr "ă‚«ăƒĄăƒ©ć‡ș抛:" - -#: ../src/video_tab.c:293 -msgid "Apply" +#: ../guvcview/gui_gtk3_callbacks.c:1988 +msgid "me method: " msgstr "" -#: ../src/video_tab.c:300 -msgid "Quality:" +#: ../guvcview/gui_gtk3_callbacks.c:2001 +msgid "mb decision: " msgstr "" -#: ../src/video_tab.c:310 -msgid "---- Video Filters ----" -msgstr "---- ビデă‚Șăƒ•ă‚Łăƒ«ă‚ż ----" - -#. Mirror -#: ../src/video_tab.c:329 -msgid " Mirror" -msgstr " 鏡" - -#. Upturn -#: ../src/video_tab.c:340 -msgid " Invert" -msgstr " ćè»ą" - -#. Negate -#: ../src/video_tab.c:351 -msgid " Negative" -msgstr " ネガ" - -#. Mono -#: ../src/video_tab.c:362 -msgid " Mono" -msgstr " ヱノクロ" +#: ../guvcview/gui_gtk3_callbacks.c:2014 +msgid "max B frames: " +msgstr "" -#. Pieces -#: ../src/video_tab.c:374 -msgid " Pieces" -msgstr " 断片" +#: ../guvcview/gui_gtk3_callbacks.c:2027 +msgid "num threads: " +msgstr "" -#. Particles -#: ../src/video_tab.c:386 -msgid " Particles" +#: ../guvcview/gui_gtk3_callbacks.c:2094 +msgid "audio codec values" msgstr "" -#: ../src/uvc_h264.c:596 -msgid "H264 Controls" +#. sample format +#: ../guvcview/gui_gtk3_callbacks.c:2119 +msgid "sample format: " msgstr "" -#: ../src/uvc_h264.c:615 +#: ../guvcview/gui_gtk3_h264ctrls.c:622 +#, fuzzy msgid "Rate Control Mode:" -msgstr "" +msgstr "ă‚€ăƒĄăƒŒă‚žă‚łăƒłăƒˆăƒ­ăƒŒăƒ«" -#: ../src/uvc_h264.c:626 +#: ../guvcview/gui_gtk3_h264ctrls.c:633 msgid "CBR" msgstr "" -#: ../src/uvc_h264.c:629 +#: ../guvcview/gui_gtk3_h264ctrls.c:636 msgid "VBR" msgstr "" -#: ../src/uvc_h264.c:633 +#: ../guvcview/gui_gtk3_h264ctrls.c:640 msgid "Constant QP" msgstr "" -#: ../src/uvc_h264.c:651 +#: ../guvcview/gui_gtk3_h264ctrls.c:658 msgid "Rate Control Mode flags:" msgstr "" -#: ../src/uvc_h264.c:676 +#: ../guvcview/gui_gtk3_h264ctrls.c:683 msgid "Temporal Scale Mode:" msgstr "" -#: ../src/uvc_h264.c:704 +#: ../guvcview/gui_gtk3_h264ctrls.c:711 msgid "Spatial Scale Mode:" msgstr "" -#: ../src/uvc_h264.c:737 +#: ../guvcview/gui_gtk3_h264ctrls.c:741 msgid "Frame Interval (100ns units):" msgstr "" -#: ../src/uvc_h264.c:772 +#: ../guvcview/gui_gtk3_h264ctrls.c:778 +#, fuzzy msgid "Bit Rate:" -msgstr "" +msgstr "ăƒ•ăƒŹăƒŒăƒ ăƒŹăƒŒăƒˆ:" -#: ../src/uvc_h264.c:795 +#: ../guvcview/gui_gtk3_h264ctrls.c:801 msgid "Hints:" msgstr "" -#: ../src/uvc_h264.c:800 +#: ../guvcview/gui_gtk3_h264ctrls.c:806 +#, fuzzy msgid "Resolution" -msgstr "" +msgstr "è§ŁćƒćșŠ:" -#: ../src/uvc_h264.c:804 +#: ../guvcview/gui_gtk3_h264ctrls.c:810 msgid "Profile" msgstr "" -#: ../src/uvc_h264.c:808 +#: ../guvcview/gui_gtk3_h264ctrls.c:814 +#, fuzzy msgid "Rate Control" -msgstr "" +msgstr "ă‚€ăƒĄăƒŒă‚žă‚łăƒłăƒˆăƒ­ăƒŒăƒ«" -#: ../src/uvc_h264.c:812 +#: ../guvcview/gui_gtk3_h264ctrls.c:818 msgid "Usage Type" msgstr "" -#: ../src/uvc_h264.c:816 +#: ../guvcview/gui_gtk3_h264ctrls.c:822 msgid "Slice Mode" msgstr "" -#: ../src/uvc_h264.c:820 +#: ../guvcview/gui_gtk3_h264ctrls.c:826 msgid "Slice Unit" msgstr "" -#: ../src/uvc_h264.c:824 +#: ../guvcview/gui_gtk3_h264ctrls.c:830 msgid "MVC View" msgstr "" -#: ../src/uvc_h264.c:828 +#: ../guvcview/gui_gtk3_h264ctrls.c:834 msgid "Temporal Scale" msgstr "" -#: ../src/uvc_h264.c:832 +#: ../guvcview/gui_gtk3_h264ctrls.c:838 msgid "SNR Scale" msgstr "" -#: ../src/uvc_h264.c:836 +#: ../guvcview/gui_gtk3_h264ctrls.c:842 msgid "Spatial Scale" msgstr "" -#: ../src/uvc_h264.c:840 +#: ../guvcview/gui_gtk3_h264ctrls.c:846 msgid "Spatial Layer Ratio" msgstr "" -#: ../src/uvc_h264.c:844 +#: ../guvcview/gui_gtk3_h264ctrls.c:850 +#, fuzzy msgid "Frame Interval" -msgstr "" +msgstr "ăƒ•ăƒŹăƒŒăƒ ăƒŹăƒŒăƒˆ:" -#: ../src/uvc_h264.c:848 +#: ../guvcview/gui_gtk3_h264ctrls.c:854 msgid "Leaky Bucket Size" msgstr "" -#: ../src/uvc_h264.c:852 +#: ../guvcview/gui_gtk3_h264ctrls.c:858 msgid "Bit Rate" msgstr "" -#: ../src/uvc_h264.c:856 ../src/uvc_h264.c:1250 +#: ../guvcview/gui_gtk3_h264ctrls.c:862 ../guvcview/gui_gtk3_h264ctrls.c:1220 msgid "CABAC" msgstr "" -#: ../src/uvc_h264.c:860 +#: ../guvcview/gui_gtk3_h264ctrls.c:866 msgid "(I) Frame Period" msgstr "" -#: ../src/uvc_h264.c:907 +#: ../guvcview/gui_gtk3_h264ctrls.c:878 msgid "Slice Mode:" msgstr "" -#: ../src/uvc_h264.c:914 +#: ../guvcview/gui_gtk3_h264ctrls.c:885 msgid "no multiple slices" msgstr "" -#: ../src/uvc_h264.c:916 +#: ../guvcview/gui_gtk3_h264ctrls.c:887 msgid "bits/slice" msgstr "" -#: ../src/uvc_h264.c:918 +#: ../guvcview/gui_gtk3_h264ctrls.c:889 msgid "Mbits/slice" msgstr "" -#: ../src/uvc_h264.c:920 +#: ../guvcview/gui_gtk3_h264ctrls.c:891 msgid "slices/frame" msgstr "" -#: ../src/uvc_h264.c:929 +#: ../guvcview/gui_gtk3_h264ctrls.c:900 msgid "Slice Units:" msgstr "" -#: ../src/uvc_h264.c:950 +#: ../guvcview/gui_gtk3_h264ctrls.c:921 msgid "Profile:" msgstr "" -#: ../src/uvc_h264.c:957 +#: ../guvcview/gui_gtk3_h264ctrls.c:928 msgid "Baseline Profile" msgstr "" -#: ../src/uvc_h264.c:959 +#: ../guvcview/gui_gtk3_h264ctrls.c:930 msgid "Main Profile" msgstr "" -#: ../src/uvc_h264.c:961 +#: ../guvcview/gui_gtk3_h264ctrls.c:932 msgid "High Profile" msgstr "" -#: ../src/uvc_h264.c:963 +#: ../guvcview/gui_gtk3_h264ctrls.c:934 msgid "Scalable Baseline Profile" msgstr "" -#: ../src/uvc_h264.c:965 +#: ../guvcview/gui_gtk3_h264ctrls.c:936 msgid "Scalable High Profile" msgstr "" -#: ../src/uvc_h264.c:967 +#: ../guvcview/gui_gtk3_h264ctrls.c:938 msgid "Multiview High Profile" msgstr "" -#: ../src/uvc_h264.c:969 +#: ../guvcview/gui_gtk3_h264ctrls.c:940 msgid "Stereo High Profile" msgstr "" -#: ../src/uvc_h264.c:1008 +#: ../guvcview/gui_gtk3_h264ctrls.c:979 msgid "Profile flags:" msgstr "" -#: ../src/uvc_h264.c:1033 +#: ../guvcview/gui_gtk3_h264ctrls.c:1004 msgid "(I) Frame Period (ms):" msgstr "" -#: ../src/uvc_h264.c:1054 +#: ../guvcview/gui_gtk3_h264ctrls.c:1025 msgid "Estimated Video Delay (ms):" msgstr "" -#: ../src/uvc_h264.c:1075 +#: ../guvcview/gui_gtk3_h264ctrls.c:1046 msgid "Estimated Max Config Delay (ms):" msgstr "" -#: ../src/uvc_h264.c:1096 +#: ../guvcview/gui_gtk3_h264ctrls.c:1067 msgid "Usage Type:" msgstr "" -#: ../src/uvc_h264.c:1103 +#: ../guvcview/gui_gtk3_h264ctrls.c:1074 msgid "Real-time" msgstr "" -#: ../src/uvc_h264.c:1105 +#: ../guvcview/gui_gtk3_h264ctrls.c:1076 msgid "Broadcast" msgstr "" -#: ../src/uvc_h264.c:1107 +#: ../guvcview/gui_gtk3_h264ctrls.c:1078 msgid "Storage" msgstr "" -#: ../src/uvc_h264.c:1109 +#: ../guvcview/gui_gtk3_h264ctrls.c:1080 msgid "(0) Non-scalable single layer AVC" msgstr "" -#: ../src/uvc_h264.c:1111 +#: ../guvcview/gui_gtk3_h264ctrls.c:1082 msgid "(1) SVC temporal scalability with hierarchical P" msgstr "" -#: ../src/uvc_h264.c:1113 +#: ../guvcview/gui_gtk3_h264ctrls.c:1084 msgid "(2q) SVC temporal scalability + Quality/SNR scalability" msgstr "" -#: ../src/uvc_h264.c:1115 +#: ../guvcview/gui_gtk3_h264ctrls.c:1086 msgid "(2s) SVC temporal scalability + spatial scalability" msgstr "" -#: ../src/uvc_h264.c:1117 +#: ../guvcview/gui_gtk3_h264ctrls.c:1088 msgid "(3) Full SVC scalability" msgstr "" -#: ../src/uvc_h264.c:1131 +#: ../guvcview/gui_gtk3_h264ctrls.c:1102 msgid "SNR Control Mode:" msgstr "" -#: ../src/uvc_h264.c:1138 +#: ../guvcview/gui_gtk3_h264ctrls.c:1109 msgid "No SNR Enhancement Layer" msgstr "" -#: ../src/uvc_h264.c:1140 +#: ../guvcview/gui_gtk3_h264ctrls.c:1111 msgid "CGS NonRewrite (2 Layer)" msgstr "" -#: ../src/uvc_h264.c:1142 +#: ../guvcview/gui_gtk3_h264ctrls.c:1113 msgid "CGS NonRewrite (3 Layer)" msgstr "" -#: ../src/uvc_h264.c:1144 +#: ../guvcview/gui_gtk3_h264ctrls.c:1115 msgid "CGS Rewrite (2 Layer)" msgstr "" -#: ../src/uvc_h264.c:1146 +#: ../guvcview/gui_gtk3_h264ctrls.c:1117 msgid "CGS Rewrite (3 Layer)" msgstr "" -#: ../src/uvc_h264.c:1148 +#: ../guvcview/gui_gtk3_h264ctrls.c:1119 msgid "MGS (2 Layer)" msgstr "" -#: ../src/uvc_h264.c:1173 +#: ../guvcview/gui_gtk3_h264ctrls.c:1144 msgid "Stream Mux Enable" msgstr "" -#: ../src/uvc_h264.c:1180 +#: ../guvcview/gui_gtk3_h264ctrls.c:1151 msgid "Embed H.264 aux stream" msgstr "" -#: ../src/uvc_h264.c:1182 +#: ../guvcview/gui_gtk3_h264ctrls.c:1153 msgid "Embed YUY2 aux stream" msgstr "" -#: ../src/uvc_h264.c:1184 +#: ../guvcview/gui_gtk3_h264ctrls.c:1155 msgid "Embed NV12 aux stream" msgstr "" -#: ../src/uvc_h264.c:1204 +#: ../guvcview/gui_gtk3_h264ctrls.c:1175 msgid "MJPG payload container" msgstr "" -#: ../src/uvc_h264.c:1219 +#: ../guvcview/gui_gtk3_h264ctrls.c:1189 msgid "Stream Format:" msgstr "" -#: ../src/uvc_h264.c:1227 +#: ../guvcview/gui_gtk3_h264ctrls.c:1197 msgid "Byte stream format (H.264 Annex-B)" msgstr "" -#: ../src/uvc_h264.c:1229 +#: ../guvcview/gui_gtk3_h264ctrls.c:1199 msgid "NAL stream format" msgstr "" -#: ../src/uvc_h264.c:1240 +#: ../guvcview/gui_gtk3_h264ctrls.c:1210 msgid "Entropy CABAC:" msgstr "" -#: ../src/uvc_h264.c:1248 +#: ../guvcview/gui_gtk3_h264ctrls.c:1218 msgid "CAVLC" msgstr "" -#: ../src/uvc_h264.c:1261 +#: ../guvcview/gui_gtk3_h264ctrls.c:1231 msgid "Picture timing SEI" msgstr "" -#: ../src/uvc_h264.c:1268 +#: ../guvcview/gui_gtk3_h264ctrls.c:1238 +#, fuzzy msgid "B Frames:" -msgstr "" +msgstr "ăƒ•ăƒŹăƒŒăƒ ăƒŹăƒŒăƒˆ:" -#: ../src/uvc_h264.c:1293 +#: ../guvcview/gui_gtk3_h264ctrls.c:1263 msgid "Preview Flipped" msgstr "" -#: ../src/uvc_h264.c:1300 +#: ../guvcview/gui_gtk3_h264ctrls.c:1270 msgid "Additional MVC Views:" msgstr "" -#: ../src/uvc_h264.c:1325 +#: ../guvcview/gui_gtk3_h264ctrls.c:1295 msgid "Simulcast stream index:" msgstr "" -#: ../src/uvc_h264.c:1350 +#: ../guvcview/gui_gtk3_h264ctrls.c:1320 msgid "Spatial Layer Ratio:" msgstr "" -#: ../src/uvc_h264.c:1379 +#: ../guvcview/gui_gtk3_h264ctrls.c:1349 msgid "Leaky Bucket Size (ms):" msgstr "" #. encoder reset -#: ../src/uvc_h264.c:1406 +#: ../guvcview/gui_gtk3_h264ctrls.c:1376 +#, fuzzy msgid "Encoder Reset" -msgstr "" +msgstr "パン ăƒȘă‚»ăƒƒăƒˆ" -#. -#. h264_controls->probe_button = gtk_button_new_with_label(_("PROBE")); -#. g_signal_connect (GTK_BUTTON(h264_controls->probe_button), "clicked", +#. +#. GtkWidget *probe_button = gtk_button_new_with_label(_("PROBE")); +#. g_signal_connect (GTK_BUTTON(probe_button), "clicked", #. G_CALLBACK (h264_probe_button_clicked), all_data); -#. -#. gtk_grid_attach (GTK_GRID(table), h264_controls->probe_button, 0, line, 1 ,1); -#. gtk_widget_show(h264_controls->probe_button); -#. -#: ../src/uvc_h264.c:1421 +#. +#. gtk_grid_attach (GTK_GRID(h264_controls_grid), probe_button, 0, line, 1 ,1); +#. gtk_widget_show(probe_button); +#. +#: ../guvcview/gui_gtk3_h264ctrls.c:1391 msgid "COMMIT" msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:70 +msgid "Settings" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:73 +msgid "Hardware Defaults" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:81 +msgid "Camera Button" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:86 +msgid "Capture Image" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:91 +msgid "Capture Video" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:134 +msgid "Photo" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:135 ../guvcview/gui_gtk3_menu.c:159 +msgid "File" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:136 ../guvcview/gui_gtk3_menu.c:160 +msgid "Increment Filename" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:158 +msgid "Video" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:175 +msgid "Video Codec" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:202 +msgid "Video Codec Properties" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:208 +msgid "Audio Codec" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:235 +msgid "Audio Codec Properties" +msgstr "" + +#: ../guvcview/gui_gtk3_v4l2ctrls.c:174 +msgid "Left" +msgstr "ć·Š" + +#: ../guvcview/gui_gtk3_v4l2ctrls.c:175 +msgid "Right" +msgstr "揳" + +#: ../guvcview/gui_gtk3_v4l2ctrls.c:179 +msgid "Down" +msgstr "例" + +#: ../guvcview/gui_gtk3_v4l2ctrls.c:180 +msgid "Up" +msgstr "侊" + +#. turn it into a menu control +#: ../guvcview/gui_gtk3_v4l2ctrls.c:296 +msgid "8 bit" +msgstr "" + +#: ../guvcview/gui_gtk3_v4l2ctrls.c:296 +msgid "12 bit" +msgstr "" + +#. add a virtual control for software autofocus +#: ../guvcview/gui_gtk3_v4l2ctrls.c:348 +msgid "Auto Focus (continuous)" +msgstr "ă‚ȘăƒŒăƒˆăƒ•ă‚©ăƒŒă‚«ă‚č(連続)" + +#: ../guvcview/gui_gtk3_v4l2ctrls.c:349 +msgid "set Focus" +msgstr "ăƒ•ă‚©ăƒŒă‚«ă‚čă‚’èš­ćźšă™ă‚‹" + +#. control_widgets_list[n].widget2 = gtk_button_new_from_stock(GTK_STOCK_APPLY); +#. control_widgets_list[n].widget2= gtk_button_new_from_stock(GTK_STOCK_APPLY); +#. control_widgets_list[n].widget2 = gtk_button_new_from_stock(GTK_STOCK_APPLY); +#: ../guvcview/gui_gtk3_v4l2ctrls.c:433 ../guvcview/gui_gtk3_v4l2ctrls.c:456 +#: ../guvcview/gui_gtk3_v4l2ctrls.c:478 +msgid "_Apply" +msgstr "" + +#: ../guvcview/gui_gtk3_videoctrls.c:144 +msgid "Frame Rate:" +msgstr "ăƒ•ăƒŹăƒŒăƒ ăƒŹăƒŒăƒˆ:" + +#: ../guvcview/gui_gtk3_videoctrls.c:204 +msgid "Resolution:" +msgstr "è§ŁćƒćșŠ:" + +#: ../guvcview/gui_gtk3_videoctrls.c:254 +msgid "Camera Output:" +msgstr "ă‚«ăƒĄăƒ©ć‡ș抛:" + +#: ../guvcview/gui_gtk3_videoctrls.c:287 +msgid "---- Video Filters ----" +msgstr "---- ビデă‚Șăƒ•ă‚Łăƒ«ă‚ż ----" + +#. Mirror FX +#: ../guvcview/gui_gtk3_videoctrls.c:307 +msgid " Mirror" +msgstr " 鏡" + +#. Upturn FX +#: ../guvcview/gui_gtk3_videoctrls.c:319 +msgid " Invert" +msgstr " ćè»ą" + +#. Negate FX +#: ../guvcview/gui_gtk3_videoctrls.c:331 +msgid " Negative" +msgstr " ネガ" + +#. Mono FX +#: ../guvcview/gui_gtk3_videoctrls.c:343 +msgid " Mono" +msgstr " ヱノクロ" + +#. Pieces FX +#: ../guvcview/gui_gtk3_videoctrls.c:356 +msgid " Pieces" +msgstr " 断片" + +#. Particles +#: ../guvcview/gui_gtk3_videoctrls.c:369 +msgid " Particles" +msgstr "" + +#: ../guvcview/options.c:51 +msgid "Print help" +msgstr "" + +#: ../guvcview/options.c:58 +#, fuzzy +msgid "Print version" +msgstr "ăƒăƒŒă‚žăƒ§ăƒłă‚’èĄšç€șする" + +#: ../guvcview/options.c:64 +msgid "LEVEL" +msgstr "" + +#: ../guvcview/options.c:65 +msgid "Set Verbosity level (def: 0)" +msgstr "" + +#: ../guvcview/options.c:71 +msgid "DEVICE" +msgstr "" + +#: ../guvcview/options.c:72 +#, fuzzy +msgid "Set device name (def: /dev/video0)" +msgstr "äœżç”šă™ă‚‹ăƒ“ăƒ‡ă‚Șăƒ‡ăƒă‚€ă‚č [ăƒ‡ăƒ•ă‚©ăƒ«ăƒˆ: /dev/video0]" + +#: ../guvcview/options.c:78 +msgid "METHOD" +msgstr "" + +#: ../guvcview/options.c:79 +msgid "Set capture method [read | mmap (def)]" +msgstr "" + +#: ../guvcview/options.c:85 +msgid "WIDTHxHEIGHT" +msgstr "" + +#: ../guvcview/options.c:86 +msgid "Request resolution (e.g 640x480)" +msgstr "" + +#: ../guvcview/options.c:92 +msgid "FOURCC" +msgstr "" + +#: ../guvcview/options.c:93 +msgid "Request format (e.g MJPG)" +msgstr "" + +#: ../guvcview/options.c:99 +msgid "RENDER_API" +msgstr "" + +#: ../guvcview/options.c:100 +msgid "Select render API (e.g none; sdl)" +msgstr "" + +#: ../guvcview/options.c:106 +msgid "AUDIO_API" +msgstr "" + +#: ../guvcview/options.c:107 +msgid "Select audio API (e.g none; port; pulse)" +msgstr "" + +#: ../guvcview/options.c:113 +msgid "AUDIO_DEVICE" +msgstr "" + +#: ../guvcview/options.c:114 +msgid "Select audio device index for selected api (0..N)" +msgstr "" + +#: ../guvcview/options.c:120 +msgid "GUI_API" +msgstr "" + +#: ../guvcview/options.c:121 +msgid "Select GUI API (e.g none; gtk3)" +msgstr "" + +#: ../guvcview/options.c:127 ../guvcview/options.c:134 +msgid "CODEC" +msgstr "" + +#: ../guvcview/options.c:128 +msgid "Audio codec [pcm mp2 mp3 aac ac3 vorb]" +msgstr "" + +#: ../guvcview/options.c:135 +msgid "Video codec [raw mjpg mpeg flv1 wmv1 mpg2 mp43 dx50 h264 vp80 theo]" +msgstr "" + +#: ../guvcview/options.c:141 ../guvcview/options.c:148 +#: ../guvcview/options.c:155 +msgid "FILENAME" +msgstr "" + +#: ../guvcview/options.c:142 +msgid "load control profile" +msgstr "" + +#: ../guvcview/options.c:149 +msgid "filename for captured video)" +msgstr "" + +#: ../guvcview/options.c:156 +msgid "filename for captured image)" +msgstr "" + +#: ../guvcview/options.c:162 ../guvcview/options.c:169 +msgid "TIME_IN_SEC" +msgstr "" + +#: ../guvcview/options.c:163 +msgid "time (double) in sec. for video capture)" +msgstr "" + +#: ../guvcview/options.c:170 +msgid "time (double) in sec. between captured photos)" +msgstr "" + +#: ../guvcview/options.c:176 +msgid "TOTAL" +msgstr "" + +#: ../guvcview/options.c:177 +msgid "total number of captured photos)" +msgstr "" + +#: ../guvcview/options.c:184 +msgid "Start in control panel mode" +msgstr "" + +#: ../guvcview/options.c:307 +#, c-format +msgid "" +"Guvcview version %s\n" +"\n" +msgstr "" + +#: ../guvcview/options.c:308 +#, c-format +msgid "" +"Usage:\n" +" guvcview [OPTIONS]\n" +"\n" +msgstr "" + +#: ../guvcview/options.c:309 +#, c-format +msgid "OPTIONS:\n" +msgstr "" + +#: ../guvcview/video_capture.c:819 +#, c-format +msgid "saving video to %s" +msgstr "" + +#. if(debug_level > 1) +#. printf("GUVCVIEW: saving image to %s\n", img_filename); +#: ../guvcview/video_capture.c:1069 +#, c-format +msgid "saving image to %s" +msgstr "" + +#~ msgid "Audio" +#~ msgstr "ă‚ȘăƒŒăƒ‡ă‚Łă‚Ș" + +#~ msgid " Sound" +#~ msgstr " ă‚”ă‚Šăƒłăƒ‰" + +#~ msgid "---- Audio Effects ----" +#~ msgstr "---- ă‚ȘăƒŒăƒ‡ă‚Łă‚Ș スフェクト ----" + +#~ msgid "Save File" +#~ msgstr "ăƒ•ă‚Ąă‚€ăƒ«ă‚’äżć­˜ă™ă‚‹" + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to open device" +#~ msgstr "" +#~ "Guvcview ă‚šăƒ©ăƒŒ:\n" +#~ "\n" +#~ "ăƒ‡ăƒă‚€ă‚čをă‚ȘăƒŒăƒ—ăƒłă™ă‚‹ă“ăšăŒă§ăăŸă›ă‚“" + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to start with minimum setup" +#~ msgstr "" +#~ "Guvcview ă‚šăƒ©ăƒŒ:\n" +#~ "\n" +#~ "æœ€ć°é™ăźă‚»ăƒƒăƒˆă‚ąăƒƒăƒ—ă‹ă‚‰ć§‹ă‚ă‚‹ă“ăšăŒă§ăăŸă›ă‚“" + +#~ msgid "Please reconnect your camera." +#~ msgstr "ă‚«ăƒĄăƒ©ă‚’ć†æŽ„ç¶šă—ăŠăă ă•ă„ă€‚" + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to allocate Buffers" +#~ msgstr "" +#~ "Guvcview ă‚šăƒ©ăƒŒ:\n" +#~ "\n" +#~ "バッファをçąșäżă§ăăŸă›ă‚“" + +#~ msgid "Please try restarting your system." +#~ msgstr "ă‚·ă‚čăƒ†ăƒ ă‚’ć†è”·ć‹•ă—ăŠăżăŠăă ă•ă„ă€‚" + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to create Video Thread" +#~ msgstr "" +#~ "Guvcview ă‚šăƒ©ăƒŒ:\n" +#~ "\n" +#~ "ビデă‚Șă‚čăƒŹăƒƒăƒ‰ă‚’äœœæˆă™ă‚‹ă“ăšăŒă§ăăŸă›ă‚“" + +#~ msgid "Please report it to http://developer.berlios.de/bugs/?group_id=8179" +#~ msgstr "" +#~ "http://developer.berlios.de/bugs/?group_id=8179 ă«ăƒŹăƒăƒŒăƒˆă—ăŠăă ă•ă„ă€‚" + +#~ msgid "Displays debug information" +#~ msgstr "ăƒ‡ăƒăƒƒă‚°æƒ…ć ±ă‚’èĄšç€șする" + +#~ msgid "Configuration file" +#~ msgstr "èš­ćźšăƒ•ă‚Ąă‚€ăƒ«" + +#~ msgid "Hardware accelaration (enable(1) | disable(0))" +#~ msgstr "ăƒăƒŒăƒ‰ă‚Šă‚§ă‚ąă‚ąă‚Żă‚»ăƒ©ăƒŹăƒŒă‚·ăƒ§ăƒł (有ćŠč(1) | 無ćŠč(0))" + +#~ msgid "Frame size, default: 640x480" +#~ msgstr "ăƒ•ăƒŹăƒŒăƒ ă‚”ă‚€ă‚șă€ăƒ‡ăƒ•ă‚©ăƒ«ăƒˆ: 640x480" + +#~ msgid "Image capture interval in seconds" +#~ msgstr "ç§’ć˜äœăźç”»ćƒă‚­ăƒŁăƒ—ăƒăƒŁé–“éš”" + +#~ msgid "Number of Pictures to capture" +#~ msgstr "ă‚­ăƒŁăƒ—ăƒăƒŁă™ă‚‹ç”»ćƒæ•°" + +#~ msgid "Show FPS value (enable(1) | disable (0))" +#~ msgstr "FPS ć€€ăźèĄšç€ș (有ćŠč(1) | 無ćŠč (0))" + +#~ msgid "Load Profile at start" +#~ msgstr "é–‹ć§‹æ™‚ă«ăƒ—ăƒ­ăƒ•ă‚Ąă‚€ăƒ«ă‚’èȘ­ăżèŸŒă‚€" + +#~ msgid "- local options" +#~ msgstr "- ăƒ­ăƒŒă‚«ăƒ«ă‚Șăƒ—ă‚·ăƒ§ăƒł" + +#~ msgid "Cap. Image" +#~ msgstr "キャプチャ.ç”»ćƒ" + +#~ msgid "YUY2 - uncomp YUV" +#~ msgstr "YUY2 - 非朧羼 YUV" + +#~ msgid "RGB - uncomp BMP" +#~ msgstr "RGB - 非朧羼 BMP" + +#~ msgid " Show" +#~ msgstr " èĄšç€ș" diff -Nru guvcview-1.7.3/po/lv.po guvcview-2.0.1+ubuntu1~ppa1/po/lv.po --- guvcview-1.7.3/po/lv.po 2014-03-24 22:56:28.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/po/lv.po 2014-10-05 10:41:44.000000000 +0000 @@ -7,1416 +7,1644 @@ msgstr "" "Project-Id-Version: guvcview\n" "Report-Msgid-Bugs-To: pj.assis@gmail.com\n" -"POT-Creation-Date: 2013-11-14 22:15+0000\n" +"POT-Creation-Date: 2014-08-17 22:49+0100\n" "PO-Revision-Date: 2013-05-01 09:27+0000\n" "Last-Translator: tuxmaniack \n" "Language-Team: Latvian \n" +"Language: lv\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-12-08 10:36+0000\n" "X-Generator: Launchpad (build 16869)\n" -"Language: lv\n" #: ../data/guvcview.desktop.in.in.h:1 msgid "guvcview" -msgstr "guvcview" - -#: ../data/guvcview.desktop.in.in.h:2 -msgid "GTK UVC video viewer" -msgstr "GTK UVC video skatÄ«tājs" - -#: ../data/guvcview.desktop.in.in.h:3 -msgid "A video viewer and capturer for the linux uvc driver" -msgstr "Video skatÄ«tājs un uzƆēmējs Linux UVC draiverim" - -#: ../src/acodecs.c:59 -msgid "PCM - uncompressed (16 bit)" -msgstr "PCM - nesaspiests (16 biti)" - -#: ../src/acodecs.c:76 -msgid "MPEG2 - (lavc)" -msgstr "MPEG2 - (lavc)" - -#: ../src/acodecs.c:93 -msgid "MP3 - (lavc)" -msgstr "MP3 - (lavc)" - -#: ../src/acodecs.c:110 -msgid "Dolby AC3 - (lavc)" -msgstr "Dolby AC3 - (lavc)" - -#: ../src/acodecs.c:127 -msgid "ACC Low - (faac)" -msgstr "ACC Low - (faac)" - -#: ../src/acodecs.c:144 -msgid "Vorbis" -msgstr "Vorbis" - -#: ../src/audio_tab.c:87 -msgid "Audio" -msgstr "SkaƆa" - -#: ../src/audio_tab.c:105 -msgid " Sound" -msgstr " SkaƆa" - -#. VU meter on the image (OSD) -#: ../src/audio_tab.c:116 -msgid " Show VU meter" -msgstr " RādÄ«t skaƆas lÄ«meƆa indikatoru" - -#: ../src/audio_tab.c:128 -msgid "Audio API:" -msgstr "Audio saskarne:" - -#: ../src/audio_tab.c:139 -msgid "PORTAUDIO" -msgstr "PORTAUDIO" - -#: ../src/audio_tab.c:140 -msgid "PULSEAUDIO" -msgstr "PULSEAUDIO" - -#: ../src/audio_tab.c:156 ../src/audio_tab.c:179 -msgid "Input Device:" -msgstr "Ievades ierÄ«ce:" - -#: ../src/audio_tab.c:189 ../src/audio_tab.c:221 -msgid "Dev. Default" -msgstr "Izstrādātāja noklusējums" - -#: ../src/audio_tab.c:211 -msgid "Sample Rate:" -msgstr "Nolases bieĆŸums:" - -#: ../src/audio_tab.c:222 -msgid "1 - mono" -msgstr "1 - mono" - -#: ../src/audio_tab.c:223 -msgid "2 - stereo" -msgstr "2 - stereo" - -#: ../src/audio_tab.c:258 -msgid "Channels:" -msgstr "Kanāli:" - -#: ../src/audio_tab.c:309 -msgid "---- Audio Effects ----" -msgstr "---- Audio efekti ----" - -#. Echo -#: ../src/audio_tab.c:328 -msgid " Echo" -msgstr " Atbalss" - -#. FUZZ -#: ../src/audio_tab.c:339 -msgid " Fuzz" -msgstr " Rācija" - -#. Reverb -#: ../src/audio_tab.c:351 -msgid " Reverb" -msgstr " Reverbācija" - -#. WahWah -#: ../src/audio_tab.c:363 -msgid " WahWah" -msgstr " VahVah" - -#. Ducky -#: ../src/audio_tab.c:375 -msgid " Ducky" -msgstr " PÄ«le" - -#: ../src/callbacks.c:109 -msgid "Error" -msgstr "KÄŒĆ«da" - -#: ../src/callbacks.c:133 -msgid "" -"\n" -"You have more than one video device installed.\n" -"Do you want to try another one ?\n" -msgstr "" -"\n" -"Ir pieejamas vairākas video ierÄ«ces.\n" -"Vai vēlaties izmēģināt citu?\n" - -#. Devices -#: ../src/callbacks.c:140 ../src/video_tab.c:111 -msgid "Device:" -msgstr "IerÄ«ce:" - -#: ../src/callbacks.c:272 -msgid "Save File" -msgstr "Saglabāt failu" - -#: ../src/callbacks.c:284 -msgid "File Format:" -msgstr "Faila formāts:" - -#: ../src/callbacks.c:455 -msgid "codec values" -msgstr "kodeka vērtÄ«bas" - -#: ../src/callbacks.c:466 -msgid "" -" encoder fps: \n" -" (0 - use fps combobox value)" -msgstr "" - -#: ../src/callbacks.c:479 -msgid " monotonic pts" -msgstr "" - -#. bit rate -#: ../src/callbacks.c:486 ../src/callbacks.c:809 -msgid "bit rate: " -msgstr "bitu ātrums: " - -#: ../src/callbacks.c:499 -msgid "qmax: " -msgstr "" - -#: ../src/callbacks.c:512 -msgid "qmin: " -msgstr "" - -#: ../src/callbacks.c:525 -msgid "max. qdiff: " -msgstr "" - -#: ../src/callbacks.c:538 -msgid "dia size: " -msgstr "" - -#: ../src/callbacks.c:551 -msgid "pre dia size: " -msgstr "" - -#: ../src/callbacks.c:564 -msgid "pre me: " -msgstr "" - -#: ../src/callbacks.c:577 -msgid "pre cmp: " -msgstr "" - -#: ../src/callbacks.c:590 -msgid "cmp: " -msgstr "" - -#: ../src/callbacks.c:603 -msgid "sub cmp: " -msgstr "" - -#: ../src/callbacks.c:616 -msgid "last predictor count: " -msgstr "" - -#: ../src/callbacks.c:629 -msgid "gop size: " -msgstr "" - -#: ../src/callbacks.c:642 -msgid "qcompress: " -msgstr "" - -#: ../src/callbacks.c:655 -msgid "qblur: " -msgstr "" - -#: ../src/callbacks.c:668 -msgid "subq: " -msgstr "" - -#: ../src/callbacks.c:681 -msgid "framerefs: " -msgstr "" - -#: ../src/callbacks.c:694 -msgid "me method: " -msgstr "" - -#: ../src/callbacks.c:707 -msgid "mb decision: " -msgstr "" - -#: ../src/callbacks.c:720 -msgid "max B frames: " -msgstr "" - -#: ../src/callbacks.c:733 -msgid "num threads: " -msgstr "" - -#: ../src/callbacks.c:796 -msgid "audio codec values" -msgstr "audio kodeka vērtÄ«bas" - -#. sample format -#: ../src/callbacks.c:823 -msgid "sample format: " -msgstr "" - -#: ../src/callbacks.c:1311 -msgid "start new" -msgstr "sākt jaunu" - -#: ../src/callbacks.c:1314 -msgid "restart" -msgstr "pārstartēt" - -#: ../src/callbacks.c:1316 -msgid "new" -msgstr "jauns" - -#: ../src/callbacks.c:1318 -msgid "cancel" -msgstr "atcelt" - -#: ../src/callbacks.c:1323 -msgid "" -"launch new process or restart?.\n" -"\n" -msgstr "" -"palaist jaunu procesu vai pārstartēt?\n" -"\n" - -#: ../src/callbacks.c:1780 ../src/guvcview.c:565 -msgid "Cap. Image (I)" -msgstr "UzƆemt attēlu (I)" - -#. disable image controls -#: ../src/callbacks.c:1791 ../src/guvcview.c:690 ../src/timers.c:101 -msgid "capturing photo to" -msgstr "" - -#: ../src/callbacks.c:1850 ../src/guvcview.c:575 -msgid "Cap. Video (V)" -msgstr "UzƆemt video (V)" - -#: ../src/callbacks.c:1876 ../src/guvcview.c:740 -msgid "capturing video to" -msgstr "" - -#. vid capture enabled from start -#: ../src/callbacks.c:1911 ../src/guvcview.c:570 -msgid "Stop Video (V)" -msgstr "" - -#: ../src/callbacks.c:1967 ../src/menubar.c:66 -msgid "Save Profile" -msgstr "Saglabāt profilu" - -#: ../src/callbacks.c:1980 ../src/menubar.c:65 -msgid "Load Profile" -msgstr "Ielādēt profilu" - -#: ../src/create_video.c:1098 ../src/guvcview.c:732 -msgid "Cap. Video" -msgstr "UzƆemt video" - -#: ../src/guvcview.c:280 -msgid "Guvcview Video Capture" -msgstr "Guvcview video uzƆemĆĄana" - -#: ../src/guvcview.c:292 -msgid "GUVCViewer Controls" -msgstr "GUVCViewer vadÄ«klas" - -#. can't open device -#: ../src/guvcview.c:342 -msgid "" -"Guvcview error:\n" -"\n" -"Unable to open device" -msgstr "" -"Guvcview kÄŒĆ«da:\n" -"\n" -"Neizdevās atvērt ierÄ«ci" - -#: ../src/guvcview.c:343 -msgid "" -"Please make sure the camera is connected\n" -"and that the correct driver is installed." -msgstr "" -"LĆ«dzu, pārliecinieties, vai kamera ir pievienota\n" -"un pareizais draiveris ir instalēts." - -#. uvc extension controls OK, give warning and shutdown (called with --add_ctrls) -#: ../src/guvcview.c:348 -msgid "" -"Guvcview:\n" -"\n" -"UVC Extension controls" -msgstr "" -"Guvcview:\n" -"\n" -"UVC paplaĆĄinājumu vadÄ«klas" - -#: ../src/guvcview.c:349 -msgid "Extension controls were added to the UVC driver" -msgstr "PaplaĆĄinājumu vadÄ«klas tika pievienotas UVC draiverim" - -#. uvc extension controls error - EACCES (needs root user) -#: ../src/guvcview.c:356 -msgid "" -"Guvcview error:\n" -"\n" -"UVC Extension controls" -msgstr "" -"Guvcview kÄŒĆ«da:\n" -"\n" -"UVC paplaĆĄinājumu vadÄ«klas" - -#: ../src/guvcview.c:357 -msgid "" -"An error occurred while adding extension\n" -"controls to the UVC driver\n" -"Make sure you run guvcview as root (or sudo)." -msgstr "" -"GadÄ«jās kÄŒĆ«da, pievienojot paplaĆĄinājumu\n" -"vadÄ«klas UVC draiverim\n" -"Pārliecinieties, vai guvcview tiek palaists kā root (vai sudo)." - -#: ../src/guvcview.c:391 ../src/guvcview.c:399 ../src/guvcview.c:477 -msgid "" -"Guvcview error:\n" -"\n" -"Can't set a valid video stream for guvcview" -msgstr "" -"Guvcview kÄŒĆ«da:\n" -"\n" -"Neizdevās iestatÄ«t guvcview derÄ«gu video plĆ«smu" - -#: ../src/guvcview.c:392 ../src/guvcview.c:400 ../src/guvcview.c:478 -msgid "" -"Make sure your device driver is v4l2 compliant\n" -"and that it is properly installed." -msgstr "" -"LĆ«dzu, pārliecinieties, vai ierÄ«ces draiveris ir v4l2 saderÄ«gs\n" -"un vai tas ir pareizi instalēts." - -#: ../src/guvcview.c:422 ../src/guvcview.c:444 -msgid "" -"Guvcview error:\n" -"\n" -"Unable to start with minimum setup" -msgstr "" -"Guvcview kÄŒĆ«da:\n" -"\n" -"Neizdevās sākt ar minimālajiem iestatÄ«jumiem" - -#: ../src/guvcview.c:423 ../src/guvcview.c:445 -msgid "Please reconnect your camera." -msgstr "LĆ«dzu, pārvienojiet kameru." - -#: ../src/guvcview.c:452 -msgid "" -"Guvcview error:\n" -"\n" -"Couldn't query device capabilities" -msgstr "" -"Guvcview kÄŒĆ«da:\n" -"\n" -"Neizdevās vaicājums ierÄ«ces iespējām" - -#: ../src/guvcview.c:453 -msgid "Make sure the device driver supports v4l2." -msgstr "Pārliecinieties, ka ierÄ«ces draiveris atbalsta v4l2." - -#: ../src/guvcview.c:457 -msgid "" -"Guvcview error:\n" -"\n" -"Read method error" -msgstr "" -"Guvcview kÄŒĆ«da:\n" -"\n" -"LasÄ«ĆĄanas metodes kÄŒĆ«da" - -#: ../src/guvcview.c:458 -msgid "Please try mmap instead (--capture_method=1)." -msgstr "LĆ«dzu, mēģiniet mmap, --capture_method=1 vietā." - -#: ../src/guvcview.c:466 -msgid "" -"Guvcview error:\n" -"\n" -"Unable to allocate Buffers" -msgstr "" -"Guvcview kÄŒĆ«da:\n" -"\n" -"Neizdevās pieĆĄÄ·irt buferi" - -#: ../src/guvcview.c:467 -msgid "Please try restarting your system." -msgstr "LĆ«dzu, mēģiniet pārstartēt sistēmu." - -#: ../src/guvcview.c:518 -msgid "Image Controls" -msgstr "Attēla vadÄ«klas" - -#. image auto capture -#: ../src/guvcview.c:561 -msgid "Stop Auto (I)" -msgstr "" - -#: ../src/guvcview.c:676 -msgid "" -"Guvcview error:\n" -"\n" -"Unable to create Video Thread" -msgstr "" -"Guvcview kÄŒĆ«da:\n" -"\n" -"Neizdevās izveidot video dzÄ«slu" - -#: ../src/guvcview.c:677 -msgid "Please report it to http://developer.berlios.de/bugs/?group_id=8179" -msgstr "LĆ«dzu, paziƆojiet http://developer.berlios.de/bugs/?group_id=8179" - -#: ../src/img_controls.c:121 -msgid "Auto Focus (continuous)" -msgstr "Automātisks fokuss (nepārtraukts)" - -#: ../src/img_controls.c:122 -msgid "set Focus" -msgstr "iestatÄ«t fokusu" - -#: ../src/image_format.c:35 -msgid "Jpeg (jpg)" -msgstr "Jpeg (jpg)" - -#: ../src/image_format.c:41 -msgid "Bitmap (Bmp)" -msgstr "Bitmap (Bmp)" - -#: ../src/image_format.c:47 -msgid "Portable Network Graphics (Png)" -msgstr "Portable Network Graphics (Png)" - -#: ../src/image_format.c:53 -msgid "Raw Image (raw)" -msgstr "Raw Image (raw)" - -#. controls menu -#: ../src/menubar.c:64 -msgid "Settings" -msgstr "IestatÄ«jumi" - -#: ../src/menubar.c:67 -msgid "Hardware Defaults" -msgstr "AparatĆ«ras noklusējums" - -#: ../src/menubar.c:75 -msgid "Camera Button" -msgstr "Kameras poga" - -#: ../src/menubar.c:79 -msgid "Capture Image" -msgstr "UzƆemt attēlu" - -#: ../src/menubar.c:84 -msgid "Capture Video" -msgstr "UzƆemt video" - -#. video menu -#: ../src/menubar.c:144 ../src/video_tab.c:95 -msgid "Video" -msgstr "Video" - -#: ../src/menubar.c:145 ../src/menubar.c:233 -msgid "File" -msgstr "Fails" - -#: ../src/menubar.c:146 ../src/menubar.c:234 -msgid "Increment Filename" -msgstr "Automātiski pieaugoĆĄs" - -#: ../src/menubar.c:164 -msgid "Video Codec" -msgstr "Video kodeks" - -#: ../src/menubar.c:189 -msgid "Video Codec Properties" -msgstr "Video kodeka Ä«paĆĄÄ«bas" - -#: ../src/menubar.c:196 -msgid "Audio Codec" -msgstr "Audio kodeks" - -#: ../src/menubar.c:217 -msgid "Audio Codec Properties" -msgstr "Audio kodeka Ä«paĆĄÄ«bas" - -#. photo menu -#: ../src/menubar.c:232 -msgid "Photo" -msgstr "Foto" - -#: ../src/options.c:753 -msgid "Prints version" -msgstr "Izdrukas versija" - -#: ../src/options.c:754 -msgid "Displays debug information" -msgstr "Attēlo atkÄŒĆ«doĆĄanas informāciju" - -#: ../src/options.c:755 -msgid "Video Device to use [default: /dev/video0]" -msgstr "Video ierÄ«ce, kuru izmantot [noklusējums: /dev/video0]" - -#: ../src/options.c:756 -msgid "Exit after adding UVC extension controls (needs root/sudo)" -msgstr "" -"Iziet pēc UVC paplaĆĄinājuma vadÄ«klu pievienoĆĄanas (nepiecieĆĄams root/sudo)" - -#: ../src/options.c:757 -msgid "Don't stream video (image controls only)" -msgstr "Nestraumēt video (tikai attēla vadÄ«klas)" - -#: ../src/options.c:758 -msgid "Don't display a GUI" -msgstr "Neattēlot saskarni" - -#: ../src/options.c:759 -msgid "Capture method (1-mmap (default) 2-read)" -msgstr "UzƆemĆĄanas metode (1-mmap (noklusētais) 2-read)" - -#: ../src/options.c:760 -msgid "Configuration file" -msgstr "Konfigurācijas fails" - -#: ../src/options.c:761 -msgid "Hardware accelaration (enable(1) | disable(0))" -msgstr "AparatĆ«ras paātrinājums (ieslēgts(1) | izslēgts(0))" - -#: ../src/options.c:762 -msgid "" -"Pixel " -"format(mjpg|jpeg|yuyv|yvyu|uyvy|yyuv|yu12|yv12|nv12|nv21|nv16|nv61|y41p|grey|" -"y10b|y16 |s501|s505|s508|gbrg|grbg|ba81|rggb|bgr3|rgb3)" -msgstr "" -"PikseÄŒa " -"formāts(mjpg|jpeg|yuyv|yvyu|uyvy|yyuv|yu12|yv12|nv12|nv21|nv16|nv61|y41p|grey" -"|y10b|y16 |s501|s505|s508|gbrg|grbg|ba81|rggb|bgr3|rgb3)" - -#: ../src/options.c:763 -msgid "Frame size, default: 640x480" -msgstr "Kadra lielums, noklusējums: 640x480" - -#: ../src/options.c:764 -msgid "Image File name" -msgstr "Attēla faila nosaukums" - -#: ../src/options.c:765 -msgid "Image capture interval in seconds" -msgstr "Attēlu uzƆemĆĄanas intervāls sekundēs" - -#: ../src/options.c:766 -msgid "Number of Pictures to capture" -msgstr "Attēlu skaits, cik uzƆemt" - -#: ../src/options.c:767 -msgid "Video File name (capture from start)" -msgstr "Video faila nosaukums (uzƆemt no sākuma)" - -#: ../src/options.c:768 -msgid "Video capture time (in seconds)" -msgstr "Video uzƆemĆĄanas laiks (sekundēs)" - -#: ../src/options.c:769 -msgid "Exits guvcview after closing video" -msgstr "Iziet guvcview pēc video aizvērĆĄanas" - -#: ../src/options.c:770 -msgid "Number of initial frames to skip" -msgstr "Pirmreizējo kadru skaits, ko izlaist" - -#: ../src/options.c:771 -msgid "Show FPS value (enable(1) | disable (0))" -msgstr "RādÄ«t kadrātruma vērtÄ«bu (ieslēgts(1) | izslēgts(0))" - -#: ../src/options.c:772 -msgid "Load Profile at start" -msgstr "Ielādēt profilu sākot" - -#: ../src/options.c:773 -msgid "List controls method (0:loop, 1:next_ctrl flag [def])" -msgstr "" - -#: ../src/options.c:779 -msgid "- local options" -msgstr "- lokālās opcijas" - -#. gdk_threads_enter(); -#: ../src/timers.c:119 -msgid "Cap. Image" -msgstr "UzƆemt attēlu" - -#: ../src/timers.c:217 -msgid "Guvcview Warning:" -msgstr "Guvcview brÄ«dinājums:" - -#: ../src/timers.c:217 -msgid "Not enough free space left on disk" -msgstr "Diskā nav pietiekami daudz brÄ«vas vietas" - -#: ../src/v4l2_controls.c:794 -msgid "Left" -msgstr "Pa kreisi" - -#: ../src/v4l2_controls.c:795 -msgid "Right" -msgstr "Pa labi" - -#: ../src/v4l2_controls.c:799 -msgid "Down" -msgstr "Lejup" - -#: ../src/v4l2_controls.c:800 -msgid "Up" -msgstr "AugĆĄup" - -#: ../src/v4l2_controls.c:845 -msgid "Off" -msgstr "Izslēgts" - -#: ../src/v4l2_controls.c:845 -msgid "On" -msgstr "Ieslēgts" - -#: ../src/v4l2_controls.c:845 -msgid "Blinking" -msgstr "MirgoĆĄana" - -#: ../src/v4l2_controls.c:845 -msgid "Auto" -msgstr "Automātiski" - -#. turn it into a menu control -#: ../src/v4l2_controls.c:894 -msgid "8 bit" -msgstr "8 biti" - -#: ../src/v4l2_controls.c:894 -msgid "12 bit" -msgstr "12 biti" - -#: ../src/v4l2_dyna_ctrls.c:96 -msgid "Pan (relative)" -msgstr "Vert. pagrieziens (relatÄ«vi)" - -#: ../src/v4l2_dyna_ctrls.c:109 -msgid "Tilt (relative)" -msgstr "Horiz. pagrieziens (relatÄ«vi)" - -#: ../src/v4l2_dyna_ctrls.c:122 -msgid "Pan Reset" -msgstr "Vert. pagrieziens, pārstatÄ«t" - -#: ../src/v4l2_dyna_ctrls.c:135 -msgid "Tilt Reset" -msgstr "Horiz. pagrieziens, pārstatÄ«t" - -#: ../src/v4l2_dyna_ctrls.c:148 -msgid "Focus (absolute)" -msgstr "Fokuss (absolĆ«ts)" +msgstr "guvcview" -#: ../src/v4l2_dyna_ctrls.c:161 -msgid "LED1 Mode" -msgstr "LED1 reĆŸÄ«ms" +#: ../data/guvcview.desktop.in.in.h:2 +msgid "GTK UVC video viewer" +msgstr "GTK UVC video skatÄ«tājs" -#: ../src/v4l2_dyna_ctrls.c:174 -msgid "LED1 Frequency" -msgstr "LED1 frekvence" +#: ../data/guvcview.desktop.in.in.h:3 +msgid "A video viewer and capturer for the linux uvc driver" +msgstr "Video skatÄ«tājs un uzƆēmējs Linux UVC draiverim" -#: ../src/v4l2_dyna_ctrls.c:187 -msgid "Disable video processing" -msgstr "Atslēgt video apstrādi" +#: ../data/guvcview.appdata.xml.in.in.h:1 +msgid "capture video from v4l2 devices" +msgstr "" -#: ../src/v4l2_dyna_ctrls.c:200 -msgid "Raw bits per pixel" +#: ../data/guvcview.appdata.xml.in.in.h:2 +msgid "" +"Video capture tool for video4linux2 compliant cameras, with special emphasis " +"on the linux uvc driver. It provides Image (jpg, png, bmp) and Video (mjpeg, " +"flv1, wmv1, mpg2, mpg4,...) capture with sound in several " +"formats( currently: avi and matroska). I also supports a control panel " +"option (--control_only) that is compatible with any other v4l2 app." msgstr "" -#. needed only for language files (not used) +#. +#. * needed only for language files (not used) +#. #. V4L2 control strings -#: ../src/v4l2uvc.c:57 +#: ../gview_v4l2core/v4l2_controls.c:49 msgid "User Controls" msgstr "Lietotāja vadÄ«klas" -#: ../src/v4l2uvc.c:58 +#: ../gview_v4l2core/v4l2_controls.c:50 msgid "Brightness" msgstr "GaiĆĄums" -#: ../src/v4l2uvc.c:59 +#: ../gview_v4l2core/v4l2_controls.c:51 msgid "Contrast" msgstr "Kontrasts" -#: ../src/v4l2uvc.c:60 +#: ../gview_v4l2core/v4l2_controls.c:52 msgid "Hue" msgstr "Tonis" -#: ../src/v4l2uvc.c:61 +#: ../gview_v4l2core/v4l2_controls.c:53 msgid "Saturation" msgstr "Piesātinājums" -#: ../src/v4l2uvc.c:62 +#: ../gview_v4l2core/v4l2_controls.c:54 msgid "Sharpness" msgstr "Asums" -#: ../src/v4l2uvc.c:63 +#: ../gview_v4l2core/v4l2_controls.c:55 msgid "Gamma" msgstr "Gamma" -#: ../src/v4l2uvc.c:64 +#: ../gview_v4l2core/v4l2_controls.c:56 msgid "Backlight Compensation" msgstr "Fona apgaismojuma kompensācija" -#: ../src/v4l2uvc.c:65 +#: ../gview_v4l2core/v4l2_controls.c:57 msgid "Power Line Frequency" msgstr "LÄ«nijas frekvence" -#: ../src/v4l2uvc.c:66 +#: ../gview_v4l2core/v4l2_controls.c:58 msgid "Hue, Automatic" msgstr "Tonis, automātiski" -#: ../src/v4l2uvc.c:67 +#: ../gview_v4l2core/v4l2_controls.c:59 msgid "Focus, Auto" msgstr "Fokuss, automātiski" -#: ../src/v4l2uvc.c:68 +#: ../gview_v4l2core/v4l2_controls.c:60 msgid "Manual Mode" msgstr "Rokas reĆŸÄ«ms" -#: ../src/v4l2uvc.c:69 +#: ../gview_v4l2core/v4l2_controls.c:61 msgid "Auto Mode" msgstr "Automātiskais reĆŸÄ«ms" -#: ../src/v4l2uvc.c:70 +#: ../gview_v4l2core/v4l2_controls.c:62 msgid "Shutter Priority Mode" msgstr "Aizvara prioritātes reĆŸÄ«ms" -#: ../src/v4l2uvc.c:71 +#: ../gview_v4l2core/v4l2_controls.c:63 msgid "Aperture Priority Mode" msgstr "Diafragmas prioritātes reĆŸÄ«ms" -#: ../src/v4l2uvc.c:72 +#: ../gview_v4l2core/v4l2_controls.c:64 msgid "Black Level" msgstr "Melnā lÄ«menis" -#: ../src/v4l2uvc.c:73 +#: ../gview_v4l2core/v4l2_controls.c:65 msgid "White Balance, Automatic" msgstr "Baltās krāsas lÄ«dzsvars, automātiski" -#: ../src/v4l2uvc.c:74 +#: ../gview_v4l2core/v4l2_controls.c:66 msgid "Do White Balance" msgstr "" -#: ../src/v4l2uvc.c:75 +#: ../gview_v4l2core/v4l2_controls.c:67 msgid "Red Balance" msgstr "Sarkanais lÄ«dzsvars" -#: ../src/v4l2uvc.c:76 +#: ../gview_v4l2core/v4l2_controls.c:68 msgid "Blue Balance" msgstr "Zilais lÄ«dzsvars" -#: ../src/v4l2uvc.c:77 +#: ../gview_v4l2core/v4l2_controls.c:69 msgid "Exposure" msgstr "EkspozÄ«cija" -#: ../src/v4l2uvc.c:78 +#: ../gview_v4l2core/v4l2_controls.c:70 msgid "Gain, Automatic" msgstr "Pieaugums, automātiski" -#: ../src/v4l2uvc.c:79 +#: ../gview_v4l2core/v4l2_controls.c:71 msgid "Gain" msgstr "Pieaugums" -#: ../src/v4l2uvc.c:80 +#: ../gview_v4l2core/v4l2_controls.c:72 msgid "Horizontal Flip" msgstr "Horizontāli apgriezts" -#: ../src/v4l2uvc.c:81 +#: ../gview_v4l2core/v4l2_controls.c:73 msgid "Vertical Flip" msgstr "Vertikāli apgriezts" -#: ../src/v4l2uvc.c:82 +#: ../gview_v4l2core/v4l2_controls.c:74 msgid "Horizontal Center" msgstr "Horizontāli centrā" -#: ../src/v4l2uvc.c:83 +#: ../gview_v4l2core/v4l2_controls.c:75 msgid "Vertical Center" msgstr "Vertikāli centrā" -#: ../src/v4l2uvc.c:84 +#: ../gview_v4l2core/v4l2_controls.c:76 msgid "Chroma AGC" msgstr "" -#: ../src/v4l2uvc.c:85 +#: ../gview_v4l2core/v4l2_controls.c:77 msgid "Color Killer" msgstr "Krāsu slepkava" -#: ../src/v4l2uvc.c:86 +#: ../gview_v4l2core/v4l2_controls.c:78 msgid "Color Effects" msgstr "Krāsu efekti" #. CAMERA CLASS control strings -#: ../src/v4l2uvc.c:89 +#: ../gview_v4l2core/v4l2_controls.c:81 msgid "Camera Controls" msgstr "Kameras vadÄ«klas" -#: ../src/v4l2uvc.c:90 +#: ../gview_v4l2core/v4l2_controls.c:82 msgid "Auto Exposure" msgstr "Automātiska ekspozÄ«cija" -#: ../src/v4l2uvc.c:91 +#: ../gview_v4l2core/v4l2_controls.c:83 msgid "Exposure Time, Absolute" msgstr "EkspozÄ«cijas laiks, absolĆ«ts" -#: ../src/v4l2uvc.c:92 +#: ../gview_v4l2core/v4l2_controls.c:84 msgid "Exposure, Dynamic Framerate" msgstr "EkspozÄ«cija, dinamisks kadrātrums" -#: ../src/v4l2uvc.c:93 +#: ../gview_v4l2core/v4l2_controls.c:85 msgid "Pan, Relative" msgstr "Vert. pagrieziens, relatÄ«vi" -#: ../src/v4l2uvc.c:94 +#: ../gview_v4l2core/v4l2_controls.c:86 msgid "Tilt, Relative" msgstr "Horiz. pagrieziens, relatÄ«vi" -#: ../src/v4l2uvc.c:95 +#: ../gview_v4l2core/v4l2_controls.c:87 msgid "Pan, Reset" msgstr "Vert. pagrieziens, pārstatÄ«t" -#: ../src/v4l2uvc.c:96 +#: ../gview_v4l2core/v4l2_controls.c:88 msgid "Tilt, Reset" msgstr "Horiz. pagrieziens, pārstatÄ«t" -#: ../src/v4l2uvc.c:97 +#: ../gview_v4l2core/v4l2_controls.c:89 msgid "Pan, Absolute" msgstr "Vert. pagrieziens, absolĆ«ti" -#: ../src/v4l2uvc.c:99 +#: ../gview_v4l2core/v4l2_controls.c:91 msgid "Focus, Absolute" msgstr "Fokuss, absolĆ«ts" -#: ../src/v4l2uvc.c:100 +#: ../gview_v4l2core/v4l2_controls.c:92 msgid "Focus, Relative" msgstr "Fokuss, relatÄ«vs" -#: ../src/v4l2uvc.c:101 +#: ../gview_v4l2core/v4l2_controls.c:93 msgid "Focus, Automatic" msgstr "Fokuss, automātiski" -#: ../src/v4l2uvc.c:102 +#: ../gview_v4l2core/v4l2_controls.c:94 msgid "Zoom, Absolute" msgstr "MērogoĆĄana, absolĆ«ta" -#: ../src/v4l2uvc.c:103 +#: ../gview_v4l2core/v4l2_controls.c:95 msgid "Zoom, Relative" msgstr "MērogoĆĄana, relatÄ«va" -#: ../src/v4l2uvc.c:104 +#: ../gview_v4l2core/v4l2_controls.c:96 msgid "Zoom, Continuous" msgstr "MērogoĆĄana, nepārtraukta" -#: ../src/v4l2uvc.c:105 +#: ../gview_v4l2core/v4l2_controls.c:97 msgid "Privacy" msgstr "Privātums" #. UVC specific control strings -#: ../src/v4l2uvc.c:108 +#: ../gview_v4l2core/v4l2_controls.c:100 msgid "Exposure, Auto" msgstr "EkspozÄ«cija" -#: ../src/v4l2uvc.c:109 +#: ../gview_v4l2core/v4l2_controls.c:101 msgid "Exposure, Auto Priority" msgstr "EkspozÄ«cija, automātiska prioritāte" -#: ../src/v4l2uvc.c:110 +#: ../gview_v4l2core/v4l2_controls.c:102 msgid "Exposure (Absolute)" msgstr "EkspozÄ«cija (absolĆ«ta)" -#: ../src/v4l2uvc.c:111 +#: ../gview_v4l2core/v4l2_controls.c:103 msgid "White Balance Temperature, Auto" msgstr "Baltās krāsas lÄ«dzsvars, automātiski" -#: ../src/v4l2uvc.c:112 +#: ../gview_v4l2core/v4l2_controls.c:104 msgid "White Balance Temperature" msgstr "Baltās krāsas lÄ«dzsvars" -#: ../src/v4l2uvc.c:113 +#: ../gview_v4l2core/v4l2_controls.c:105 msgid "White Balance Component, Auto" msgstr "Baltās krāsas lÄ«dzsvara komponents, automātiski" -#: ../src/v4l2uvc.c:114 +#: ../gview_v4l2core/v4l2_controls.c:106 msgid "White Balance Blue Component" msgstr "Baltās krāsas lÄ«dzsvara zilais komponents" -#: ../src/v4l2uvc.c:115 +#: ../gview_v4l2core/v4l2_controls.c:107 msgid "White Balance Red Component" msgstr "Baltās krāsas lÄ«dzsvara sarkanais komponents" #. libwebcam specific control strings -#: ../src/v4l2uvc.c:118 +#: ../gview_v4l2core/v4l2_controls.c:110 msgid "Focus" msgstr "Fokuss" -#: ../src/v4l2uvc.c:119 +#: ../gview_v4l2core/v4l2_controls.c:111 msgid "Focus (Absolute)" msgstr "Fokuss (absolĆ«ts)" -#: ../src/vcodecs.c:63 +#: ../gview_v4l2core/v4l2_xu_ctrls.c:63 ../guvcview/gui_gtk3_v4l2ctrls.c:239 +msgid "Off" +msgstr "Izslēgts" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:64 ../guvcview/gui_gtk3_v4l2ctrls.c:239 +msgid "On" +msgstr "Ieslēgts" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:65 ../guvcview/gui_gtk3_v4l2ctrls.c:239 +msgid "Blinking" +msgstr "MirgoĆĄana" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:66 ../guvcview/gui_gtk3_v4l2ctrls.c:239 +msgid "Auto" +msgstr "Automātiski" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:73 +msgid "Pan (relative)" +msgstr "Vert. pagrieziens (relatÄ«vi)" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:86 +msgid "Tilt (relative)" +msgstr "Horiz. pagrieziens (relatÄ«vi)" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:99 +msgid "Pan Reset" +msgstr "Vert. pagrieziens, pārstatÄ«t" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:112 +msgid "Tilt Reset" +msgstr "Horiz. pagrieziens, pārstatÄ«t" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:125 +msgid "Focus (absolute)" +msgstr "Fokuss (absolĆ«ts)" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:138 +msgid "LED1 Mode" +msgstr "LED1 reĆŸÄ«ms" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:151 +msgid "LED1 Frequency" +msgstr "LED1 frekvence" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:164 +msgid "Disable video processing" +msgstr "Atslēgt video apstrādi" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:177 +msgid "Raw bits per pixel" +msgstr "" + +#: ../gview_encoder/audio_codecs.c:63 +#, fuzzy +msgid "PCM - uncompressed (float 32 bit)" +msgstr "PCM - nesaspiests (16 biti)" + +#: ../gview_encoder/audio_codecs.c:80 +msgid "MP2 (MPEG audio layer 2)" +msgstr "" + +#: ../gview_encoder/audio_codecs.c:97 +msgid "MP3 (MPEG audio layer 3)" +msgstr "" + +#: ../gview_encoder/audio_codecs.c:118 +msgid "AC-3 (ATSC A/52A)" +msgstr "" + +#: ../gview_encoder/audio_codecs.c:139 +msgid "AAC (Advanced Audio Coding)" +msgstr "" + +#: ../gview_encoder/audio_codecs.c:160 +msgid "Vorbis" +msgstr "Vorbis" + +#: ../gview_encoder/video_codecs.c:75 +#, fuzzy +msgid "Raw camera input" +msgstr "Kameras izvade:" + +#: ../gview_encoder/video_codecs.c:111 msgid "MJPG - compressed" msgstr "MJPG - saspiests" -#: ../src/vcodecs.c:99 -msgid "YUY2 - uncomp YUV" -msgstr "YUY2 - nesaspiests YUV" - -#: ../src/vcodecs.c:135 -msgid "RGB - uncomp BMP" -msgstr "RGB - nesaspiests BMP" - -#: ../src/vcodecs.c:171 +#: ../gview_encoder/video_codecs.c:147 msgid "MPEG video 1" msgstr "MPEG video 1" -#: ../src/vcodecs.c:207 +#: ../gview_encoder/video_codecs.c:183 msgid "FLV1 - flash video 1" msgstr "FLV1 - flash video 1" -#: ../src/vcodecs.c:243 +#: ../gview_encoder/video_codecs.c:219 msgid "WMV1 - win. med. video 7" msgstr "WMV1 - win. med. video 7" -#: ../src/vcodecs.c:279 +#: ../gview_encoder/video_codecs.c:255 msgid "MPG2 - MPG2 format" msgstr "MPG2 - MPG2 formāts" -#: ../src/vcodecs.c:315 +#: ../gview_encoder/video_codecs.c:291 msgid "MS MP4 V3" msgstr "MS MP4 V3" -#: ../src/vcodecs.c:351 +#: ../gview_encoder/video_codecs.c:327 msgid "MPEG4-ASP" msgstr "MPEG4-ASP" -#: ../src/vcodecs.c:387 +#: ../gview_encoder/video_codecs.c:363 msgid "MPEG4-AVC (H264)" msgstr "MPEG4-AVC (H264)" -#: ../src/vcodecs.c:427 +#: ../gview_encoder/video_codecs.c:403 msgid "VP8 (VP8)" msgstr "VP8 (VP8)" -#: ../src/vcodecs.c:463 +#: ../gview_encoder/video_codecs.c:439 msgid "Theora (ogg theora)" msgstr "Theora (ogg theora)" -#: ../src/video_format.c:43 -msgid "AVI - avi format" -msgstr "AVI - avi formāts" +#: ../guvcview/gui_gtk3_audioctrls.c:95 +msgid "Audio API:" +msgstr "Audio saskarne:" -#: ../src/video_format.c:52 -msgid "MKV - Matroska format" -msgstr "MKV - Matroska formāts" - -#: ../src/video_format.c:61 -msgid "WEBM - format" -msgstr "WEBM - formāts" +#: ../guvcview/gui_gtk3_audioctrls.c:106 +msgid "NO SOUND" +msgstr "" -#: ../src/video_tab.c:216 -msgid "Frame Rate:" -msgstr "Kadru ātrums:" +#: ../guvcview/gui_gtk3_audioctrls.c:107 +msgid "PORTAUDIO" +msgstr "PORTAUDIO" + +#: ../guvcview/gui_gtk3_audioctrls.c:110 +msgid "PULSEAUDIO" +msgstr "PULSEAUDIO" + +#: ../guvcview/gui_gtk3_audioctrls.c:127 +msgid "Input Device:" +msgstr "Ievades ierÄ«ce:" + +#: ../guvcview/gui_gtk3_audioctrls.c:161 +msgid "Sample Rate:" +msgstr "Nolases bieĆŸums:" + +#: ../guvcview/gui_gtk3_audioctrls.c:168 ../guvcview/gui_gtk3_audioctrls.c:214 +msgid "Dev. Default" +msgstr "Izstrādātāja noklusējums" + +#: ../guvcview/gui_gtk3_audioctrls.c:207 +msgid "Channels:" +msgstr "Kanāli:" + +#: ../guvcview/gui_gtk3_audioctrls.c:215 +msgid "1 - mono" +msgstr "1 - mono" + +#: ../guvcview/gui_gtk3_audioctrls.c:216 +msgid "2 - stereo" +msgstr "2 - stereo" + +#: ../guvcview/gui_gtk3_audioctrls.c:235 +#, fuzzy +msgid "---- Audio Filters ----" +msgstr "---- Video filtri ----" + +#. Echo FX +#: ../guvcview/gui_gtk3_audioctrls.c:255 +msgid " Echo" +msgstr " Atbalss" + +#. Reverb FX +#: ../guvcview/gui_gtk3_audioctrls.c:268 +msgid " Reverb" +msgstr " Reverbācija" + +#. Fuzz FX +#: ../guvcview/gui_gtk3_audioctrls.c:281 +msgid " Fuzz" +msgstr " Rācija" + +#. WahWah FX +#: ../guvcview/gui_gtk3_audioctrls.c:294 +msgid " WahWah" +msgstr " VahVah" + +#. Ducky FX +#: ../guvcview/gui_gtk3_audioctrls.c:307 +msgid " Ducky" +msgstr " PÄ«le" + +#: ../guvcview/gui_gtk3.c:310 ../guvcview/gui_gtk3_callbacks.c:749 +msgid "Stop Video (V)" +msgstr "" + +#. video button +#: ../guvcview/gui_gtk3.c:315 ../guvcview/gui_gtk3.c:600 +#: ../guvcview/gui_gtk3_callbacks.c:755 +msgid "Cap. Video (V)" +msgstr "UzƆemt video (V)" + +#: ../guvcview/gui_gtk3.c:376 ../guvcview/gui_gtk3.c:383 +msgid "Error" +msgstr "KÄŒĆ«da" + +#: ../guvcview/gui_gtk3.c:379 ../guvcview/gui_gtk3.c:386 +#: ../guvcview/gui_gtk3_callbacks.c:2097 +msgid "_Ok" +msgstr "" + +#: ../guvcview/gui_gtk3.c:380 ../guvcview/gui_gtk3_callbacks.c:185 +#: ../guvcview/gui_gtk3_callbacks.c:199 ../guvcview/gui_gtk3_callbacks.c:522 +#: ../guvcview/gui_gtk3_callbacks.c:624 ../guvcview/gui_gtk3_callbacks.c:1755 +#: ../guvcview/gui_gtk3_callbacks.c:2098 +#, fuzzy +msgid "_Cancel" +msgstr "atcelt" + +#: ../guvcview/gui_gtk3.c:407 +msgid "" +"\n" +"You have more than one video device installed.\n" +"Do you want to try another one ?\n" +msgstr "" +"\n" +"Ir pieejamas vairākas video ierÄ«ces.\n" +"Vai vēlaties izmēģināt citu?\n" + +#. ---- Devices ---- +#: ../guvcview/gui_gtk3.c:414 ../guvcview/gui_gtk3_videoctrls.c:106 +msgid "Device:" +msgstr "IerÄ«ce:" + +#: ../guvcview/gui_gtk3.c:516 +msgid "Guvcview Video Capture" +msgstr "Guvcview video uzƆemĆĄana" + +#: ../guvcview/gui_gtk3.c:525 +#, fuzzy +msgid "Guvcview" +msgstr "guvcview" + +#: ../guvcview/gui_gtk3.c:572 +msgid "Stop Cap. (I)" +msgstr "" + +#: ../guvcview/gui_gtk3.c:578 ../guvcview/gui_gtk3_callbacks.c:720 +#: ../guvcview/video_capture.c:250 +msgid "Cap. Image (I)" +msgstr "UzƆemt attēlu (I)" + +#. quit button +#. GtkWidget *quitButton = gtk_button_new_from_stock(GTK_STOCK_QUIT); +#: ../guvcview/gui_gtk3.c:621 +msgid "_Quit" +msgstr "" + +#: ../guvcview/gui_gtk3.c:667 +msgid "Image Controls" +msgstr "Attēla vadÄ«klas" + +#: ../guvcview/gui_gtk3.c:703 +#, fuzzy +msgid "H264 Controls" +msgstr "Lietotāja vadÄ«klas" + +#: ../guvcview/gui_gtk3.c:742 +#, fuzzy +msgid "Video Controls" +msgstr "Lietotāja vadÄ«klas" + +#: ../guvcview/gui_gtk3.c:777 +#, fuzzy +msgid "Audio Controls" +msgstr "Lietotāja vadÄ«klas" + +#: ../guvcview/gui_gtk3_callbacks.c:182 ../guvcview/gui_gtk3_menu.c:72 +msgid "Save Profile" +msgstr "Saglabāt profilu" + +#: ../guvcview/gui_gtk3_callbacks.c:186 ../guvcview/gui_gtk3_callbacks.c:523 +#: ../guvcview/gui_gtk3_callbacks.c:625 +msgid "_Save" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:196 ../guvcview/gui_gtk3_menu.c:71 +msgid "Load Profile" +msgstr "Ielādēt profilu" + +#: ../guvcview/gui_gtk3_callbacks.c:200 +msgid "_Open" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:208 ../guvcview/gui_gtk3_callbacks.c:531 +#: ../guvcview/gui_gtk3_callbacks.c:634 +msgid "File Format:" +msgstr "Faila formāts:" + +#: ../guvcview/gui_gtk3_callbacks.c:220 +msgid "gpfl (*.gpfl)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:221 +msgid "any (*.*)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:519 +#, fuzzy +msgid "Photo file name" +msgstr "Attēla faila nosaukums" + +#: ../guvcview/gui_gtk3_callbacks.c:543 +#, fuzzy +msgid "Raw (*.raw)" +msgstr "Raw Image (raw)" + +#: ../guvcview/gui_gtk3_callbacks.c:544 +#, fuzzy +msgid "Jpeg (*.jpg)" +msgstr "Jpeg (jpg)" + +#: ../guvcview/gui_gtk3_callbacks.c:545 +msgid "Png (*.png)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:546 +msgid "Bmp (*.bmp)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:621 +#, fuzzy +msgid "Video file name" +msgstr "Attēla faila nosaukums" + +#: ../guvcview/gui_gtk3_callbacks.c:646 +msgid "Matroska (*.mkv)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:647 +msgid "WebM (*.webm)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:648 +msgid "Avi (*.avi)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:1158 +msgid "start new" +msgstr "sākt jaunu" + +#: ../guvcview/gui_gtk3_callbacks.c:1161 +msgid "restart" +msgstr "pārstartēt" + +#: ../guvcview/gui_gtk3_callbacks.c:1163 +msgid "new" +msgstr "jauns" + +#: ../guvcview/gui_gtk3_callbacks.c:1165 +msgid "cancel" +msgstr "atcelt" + +#: ../guvcview/gui_gtk3_callbacks.c:1170 +msgid "" +"launch new process or restart?.\n" +"\n" +msgstr "" +"palaist jaunu procesu vai pārstartēt?\n" +"\n" + +#: ../guvcview/gui_gtk3_callbacks.c:1751 +#, fuzzy +msgid "video codec values" +msgstr "audio kodeka vērtÄ«bas" + +#: ../guvcview/gui_gtk3_callbacks.c:1754 +msgid "_OK" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:1760 +msgid "" +" encoder fps: \n" +" (0 - use fps combobox value)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:1773 +msgid " monotonic pts" +msgstr "" + +#. bit rate +#: ../guvcview/gui_gtk3_callbacks.c:1780 ../guvcview/gui_gtk3_callbacks.c:2105 +msgid "bit rate: " +msgstr "bitu ātrums: " + +#: ../guvcview/gui_gtk3_callbacks.c:1793 +msgid "qmax: " +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:1806 +msgid "qmin: " +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:1819 +msgid "max. qdiff: " +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:1832 +msgid "dia size: " +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:1845 +msgid "pre dia size: " +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:1858 +msgid "pre me: " +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:1871 +msgid "pre cmp: " +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:1884 +msgid "cmp: " +msgstr "" -#: ../src/video_tab.c:223 -msgid " Show" -msgstr " RādÄ«t" +#: ../guvcview/gui_gtk3_callbacks.c:1897 +msgid "sub cmp: " +msgstr "" -#: ../src/video_tab.c:245 -msgid "Resolution:" -msgstr "IzĆĄÄ·irtspēja:" +#: ../guvcview/gui_gtk3_callbacks.c:1910 +msgid "last predictor count: " +msgstr "" -#: ../src/video_tab.c:271 -msgid "Camera Output:" -msgstr "Kameras izvade:" +#: ../guvcview/gui_gtk3_callbacks.c:1923 +msgid "gop size: " +msgstr "" -#: ../src/video_tab.c:293 -msgid "Apply" -msgstr "Pielietot" +#: ../guvcview/gui_gtk3_callbacks.c:1936 +msgid "qcompress: " +msgstr "" -#: ../src/video_tab.c:300 -msgid "Quality:" -msgstr "Kvalitāte:" +#: ../guvcview/gui_gtk3_callbacks.c:1949 +msgid "qblur: " +msgstr "" -#: ../src/video_tab.c:310 -msgid "---- Video Filters ----" -msgstr "---- Video filtri ----" +#: ../guvcview/gui_gtk3_callbacks.c:1962 +msgid "subq: " +msgstr "" -#. Mirror -#: ../src/video_tab.c:329 -msgid " Mirror" -msgstr " Spogulis" +#: ../guvcview/gui_gtk3_callbacks.c:1975 +msgid "framerefs: " +msgstr "" -#. Upturn -#: ../src/video_tab.c:340 -msgid " Invert" -msgstr " Invertēt" +#: ../guvcview/gui_gtk3_callbacks.c:1988 +msgid "me method: " +msgstr "" -#. Negate -#: ../src/video_tab.c:351 -msgid " Negative" -msgstr " NegatÄ«vs" +#: ../guvcview/gui_gtk3_callbacks.c:2001 +msgid "mb decision: " +msgstr "" -#. Mono -#: ../src/video_tab.c:362 -msgid " Mono" -msgstr " Melnbalts" +#: ../guvcview/gui_gtk3_callbacks.c:2014 +msgid "max B frames: " +msgstr "" -#. Pieces -#: ../src/video_tab.c:374 -msgid " Pieces" -msgstr " MozaÄ«ka" +#: ../guvcview/gui_gtk3_callbacks.c:2027 +msgid "num threads: " +msgstr "" -#. Particles -#: ../src/video_tab.c:386 -msgid " Particles" -msgstr " DaÄŒiƆas" +#: ../guvcview/gui_gtk3_callbacks.c:2094 +msgid "audio codec values" +msgstr "audio kodeka vērtÄ«bas" -#: ../src/uvc_h264.c:596 -msgid "H264 Controls" +#. sample format +#: ../guvcview/gui_gtk3_callbacks.c:2119 +msgid "sample format: " msgstr "" -#: ../src/uvc_h264.c:615 +#: ../guvcview/gui_gtk3_h264ctrls.c:622 +#, fuzzy msgid "Rate Control Mode:" -msgstr "" +msgstr "Attēla vadÄ«klas" -#: ../src/uvc_h264.c:626 +#: ../guvcview/gui_gtk3_h264ctrls.c:633 msgid "CBR" msgstr "" -#: ../src/uvc_h264.c:629 +#: ../guvcview/gui_gtk3_h264ctrls.c:636 msgid "VBR" msgstr "" -#: ../src/uvc_h264.c:633 +#: ../guvcview/gui_gtk3_h264ctrls.c:640 msgid "Constant QP" msgstr "" -#: ../src/uvc_h264.c:651 +#: ../guvcview/gui_gtk3_h264ctrls.c:658 msgid "Rate Control Mode flags:" msgstr "" -#: ../src/uvc_h264.c:676 +#: ../guvcview/gui_gtk3_h264ctrls.c:683 msgid "Temporal Scale Mode:" msgstr "" -#: ../src/uvc_h264.c:704 +#: ../guvcview/gui_gtk3_h264ctrls.c:711 msgid "Spatial Scale Mode:" msgstr "" -#: ../src/uvc_h264.c:737 +#: ../guvcview/gui_gtk3_h264ctrls.c:741 msgid "Frame Interval (100ns units):" msgstr "" -#: ../src/uvc_h264.c:772 +#: ../guvcview/gui_gtk3_h264ctrls.c:778 +#, fuzzy msgid "Bit Rate:" -msgstr "" +msgstr "bitu ātrums: " -#: ../src/uvc_h264.c:795 +#: ../guvcview/gui_gtk3_h264ctrls.c:801 msgid "Hints:" msgstr "" -#: ../src/uvc_h264.c:800 +#: ../guvcview/gui_gtk3_h264ctrls.c:806 +#, fuzzy msgid "Resolution" -msgstr "" +msgstr "IzĆĄÄ·irtspēja:" -#: ../src/uvc_h264.c:804 +#: ../guvcview/gui_gtk3_h264ctrls.c:810 +#, fuzzy msgid "Profile" -msgstr "" +msgstr "Saglabāt profilu" -#: ../src/uvc_h264.c:808 +#: ../guvcview/gui_gtk3_h264ctrls.c:814 +#, fuzzy msgid "Rate Control" -msgstr "" +msgstr "Attēla vadÄ«klas" -#: ../src/uvc_h264.c:812 +#: ../guvcview/gui_gtk3_h264ctrls.c:818 msgid "Usage Type" msgstr "" -#: ../src/uvc_h264.c:816 +#: ../guvcview/gui_gtk3_h264ctrls.c:822 msgid "Slice Mode" msgstr "" -#: ../src/uvc_h264.c:820 +#: ../guvcview/gui_gtk3_h264ctrls.c:826 msgid "Slice Unit" msgstr "" -#: ../src/uvc_h264.c:824 +#: ../guvcview/gui_gtk3_h264ctrls.c:830 msgid "MVC View" msgstr "" -#: ../src/uvc_h264.c:828 +#: ../guvcview/gui_gtk3_h264ctrls.c:834 msgid "Temporal Scale" msgstr "" -#: ../src/uvc_h264.c:832 +#: ../guvcview/gui_gtk3_h264ctrls.c:838 msgid "SNR Scale" msgstr "" -#: ../src/uvc_h264.c:836 +#: ../guvcview/gui_gtk3_h264ctrls.c:842 msgid "Spatial Scale" msgstr "" -#: ../src/uvc_h264.c:840 +#: ../guvcview/gui_gtk3_h264ctrls.c:846 msgid "Spatial Layer Ratio" msgstr "" -#: ../src/uvc_h264.c:844 +#: ../guvcview/gui_gtk3_h264ctrls.c:850 +#, fuzzy msgid "Frame Interval" -msgstr "" +msgstr "Kadru ātrums:" -#: ../src/uvc_h264.c:848 +#: ../guvcview/gui_gtk3_h264ctrls.c:854 msgid "Leaky Bucket Size" msgstr "" -#: ../src/uvc_h264.c:852 +#: ../guvcview/gui_gtk3_h264ctrls.c:858 msgid "Bit Rate" msgstr "" -#: ../src/uvc_h264.c:856 ../src/uvc_h264.c:1250 +#: ../guvcview/gui_gtk3_h264ctrls.c:862 ../guvcview/gui_gtk3_h264ctrls.c:1220 msgid "CABAC" msgstr "" -#: ../src/uvc_h264.c:860 +#: ../guvcview/gui_gtk3_h264ctrls.c:866 msgid "(I) Frame Period" msgstr "" -#: ../src/uvc_h264.c:907 +#: ../guvcview/gui_gtk3_h264ctrls.c:878 msgid "Slice Mode:" msgstr "" -#: ../src/uvc_h264.c:914 +#: ../guvcview/gui_gtk3_h264ctrls.c:885 msgid "no multiple slices" msgstr "" -#: ../src/uvc_h264.c:916 +#: ../guvcview/gui_gtk3_h264ctrls.c:887 msgid "bits/slice" msgstr "" -#: ../src/uvc_h264.c:918 +#: ../guvcview/gui_gtk3_h264ctrls.c:889 msgid "Mbits/slice" msgstr "" -#: ../src/uvc_h264.c:920 +#: ../guvcview/gui_gtk3_h264ctrls.c:891 msgid "slices/frame" msgstr "" -#: ../src/uvc_h264.c:929 +#: ../guvcview/gui_gtk3_h264ctrls.c:900 msgid "Slice Units:" msgstr "" -#: ../src/uvc_h264.c:950 +#: ../guvcview/gui_gtk3_h264ctrls.c:921 +#, fuzzy msgid "Profile:" -msgstr "" +msgstr "Saglabāt profilu" -#: ../src/uvc_h264.c:957 +#: ../guvcview/gui_gtk3_h264ctrls.c:928 +#, fuzzy msgid "Baseline Profile" -msgstr "" +msgstr "Saglabāt profilu" -#: ../src/uvc_h264.c:959 +#: ../guvcview/gui_gtk3_h264ctrls.c:930 +#, fuzzy msgid "Main Profile" -msgstr "" +msgstr "Saglabāt profilu" -#: ../src/uvc_h264.c:961 +#: ../guvcview/gui_gtk3_h264ctrls.c:932 +#, fuzzy msgid "High Profile" -msgstr "" +msgstr "Saglabāt profilu" -#: ../src/uvc_h264.c:963 +#: ../guvcview/gui_gtk3_h264ctrls.c:934 msgid "Scalable Baseline Profile" msgstr "" -#: ../src/uvc_h264.c:965 +#: ../guvcview/gui_gtk3_h264ctrls.c:936 +#, fuzzy msgid "Scalable High Profile" -msgstr "" +msgstr "Saglabāt profilu" -#: ../src/uvc_h264.c:967 +#: ../guvcview/gui_gtk3_h264ctrls.c:938 msgid "Multiview High Profile" msgstr "" -#: ../src/uvc_h264.c:969 +#: ../guvcview/gui_gtk3_h264ctrls.c:940 +#, fuzzy msgid "Stereo High Profile" -msgstr "" +msgstr "Saglabāt profilu" -#: ../src/uvc_h264.c:1008 +#: ../guvcview/gui_gtk3_h264ctrls.c:979 msgid "Profile flags:" msgstr "" -#: ../src/uvc_h264.c:1033 +#: ../guvcview/gui_gtk3_h264ctrls.c:1004 msgid "(I) Frame Period (ms):" msgstr "" -#: ../src/uvc_h264.c:1054 +#: ../guvcview/gui_gtk3_h264ctrls.c:1025 msgid "Estimated Video Delay (ms):" msgstr "" -#: ../src/uvc_h264.c:1075 +#: ../guvcview/gui_gtk3_h264ctrls.c:1046 msgid "Estimated Max Config Delay (ms):" msgstr "" -#: ../src/uvc_h264.c:1096 +#: ../guvcview/gui_gtk3_h264ctrls.c:1067 msgid "Usage Type:" msgstr "" -#: ../src/uvc_h264.c:1103 +#: ../guvcview/gui_gtk3_h264ctrls.c:1074 msgid "Real-time" msgstr "" -#: ../src/uvc_h264.c:1105 +#: ../guvcview/gui_gtk3_h264ctrls.c:1076 msgid "Broadcast" msgstr "" -#: ../src/uvc_h264.c:1107 +#: ../guvcview/gui_gtk3_h264ctrls.c:1078 msgid "Storage" msgstr "" -#: ../src/uvc_h264.c:1109 +#: ../guvcview/gui_gtk3_h264ctrls.c:1080 msgid "(0) Non-scalable single layer AVC" msgstr "" -#: ../src/uvc_h264.c:1111 +#: ../guvcview/gui_gtk3_h264ctrls.c:1082 msgid "(1) SVC temporal scalability with hierarchical P" msgstr "" -#: ../src/uvc_h264.c:1113 +#: ../guvcview/gui_gtk3_h264ctrls.c:1084 msgid "(2q) SVC temporal scalability + Quality/SNR scalability" msgstr "" -#: ../src/uvc_h264.c:1115 +#: ../guvcview/gui_gtk3_h264ctrls.c:1086 msgid "(2s) SVC temporal scalability + spatial scalability" msgstr "" -#: ../src/uvc_h264.c:1117 +#: ../guvcview/gui_gtk3_h264ctrls.c:1088 msgid "(3) Full SVC scalability" msgstr "" -#: ../src/uvc_h264.c:1131 +#: ../guvcview/gui_gtk3_h264ctrls.c:1102 msgid "SNR Control Mode:" msgstr "" -#: ../src/uvc_h264.c:1138 +#: ../guvcview/gui_gtk3_h264ctrls.c:1109 msgid "No SNR Enhancement Layer" msgstr "" -#: ../src/uvc_h264.c:1140 +#: ../guvcview/gui_gtk3_h264ctrls.c:1111 msgid "CGS NonRewrite (2 Layer)" msgstr "" -#: ../src/uvc_h264.c:1142 +#: ../guvcview/gui_gtk3_h264ctrls.c:1113 msgid "CGS NonRewrite (3 Layer)" msgstr "" -#: ../src/uvc_h264.c:1144 +#: ../guvcview/gui_gtk3_h264ctrls.c:1115 msgid "CGS Rewrite (2 Layer)" msgstr "" -#: ../src/uvc_h264.c:1146 +#: ../guvcview/gui_gtk3_h264ctrls.c:1117 msgid "CGS Rewrite (3 Layer)" msgstr "" -#: ../src/uvc_h264.c:1148 +#: ../guvcview/gui_gtk3_h264ctrls.c:1119 msgid "MGS (2 Layer)" msgstr "" -#: ../src/uvc_h264.c:1173 +#: ../guvcview/gui_gtk3_h264ctrls.c:1144 msgid "Stream Mux Enable" msgstr "" -#: ../src/uvc_h264.c:1180 +#: ../guvcview/gui_gtk3_h264ctrls.c:1151 msgid "Embed H.264 aux stream" msgstr "" -#: ../src/uvc_h264.c:1182 +#: ../guvcview/gui_gtk3_h264ctrls.c:1153 msgid "Embed YUY2 aux stream" msgstr "" -#: ../src/uvc_h264.c:1184 +#: ../guvcview/gui_gtk3_h264ctrls.c:1155 msgid "Embed NV12 aux stream" msgstr "" -#: ../src/uvc_h264.c:1204 +#: ../guvcview/gui_gtk3_h264ctrls.c:1175 msgid "MJPG payload container" msgstr "" -#: ../src/uvc_h264.c:1219 +#: ../guvcview/gui_gtk3_h264ctrls.c:1189 +#, fuzzy msgid "Stream Format:" -msgstr "" +msgstr "Faila formāts:" -#: ../src/uvc_h264.c:1227 +#: ../guvcview/gui_gtk3_h264ctrls.c:1197 msgid "Byte stream format (H.264 Annex-B)" msgstr "" -#: ../src/uvc_h264.c:1229 +#: ../guvcview/gui_gtk3_h264ctrls.c:1199 +#, fuzzy msgid "NAL stream format" -msgstr "" +msgstr "AVI - avi formāts" -#: ../src/uvc_h264.c:1240 +#: ../guvcview/gui_gtk3_h264ctrls.c:1210 msgid "Entropy CABAC:" msgstr "" -#: ../src/uvc_h264.c:1248 +#: ../guvcview/gui_gtk3_h264ctrls.c:1218 msgid "CAVLC" msgstr "" -#: ../src/uvc_h264.c:1261 +#: ../guvcview/gui_gtk3_h264ctrls.c:1231 msgid "Picture timing SEI" msgstr "" -#: ../src/uvc_h264.c:1268 +#: ../guvcview/gui_gtk3_h264ctrls.c:1238 +#, fuzzy msgid "B Frames:" -msgstr "" +msgstr "Kadru ātrums:" -#: ../src/uvc_h264.c:1293 +#: ../guvcview/gui_gtk3_h264ctrls.c:1263 msgid "Preview Flipped" msgstr "" -#: ../src/uvc_h264.c:1300 +#: ../guvcview/gui_gtk3_h264ctrls.c:1270 msgid "Additional MVC Views:" msgstr "" -#: ../src/uvc_h264.c:1325 +#: ../guvcview/gui_gtk3_h264ctrls.c:1295 msgid "Simulcast stream index:" msgstr "" -#: ../src/uvc_h264.c:1350 +#: ../guvcview/gui_gtk3_h264ctrls.c:1320 msgid "Spatial Layer Ratio:" msgstr "" -#: ../src/uvc_h264.c:1379 +#: ../guvcview/gui_gtk3_h264ctrls.c:1349 msgid "Leaky Bucket Size (ms):" msgstr "" #. encoder reset -#: ../src/uvc_h264.c:1406 +#: ../guvcview/gui_gtk3_h264ctrls.c:1376 +#, fuzzy msgid "Encoder Reset" -msgstr "" +msgstr "Vert. pagrieziens, pārstatÄ«t" -#. -#. h264_controls->probe_button = gtk_button_new_with_label(_("PROBE")); -#. g_signal_connect (GTK_BUTTON(h264_controls->probe_button), "clicked", +#. +#. GtkWidget *probe_button = gtk_button_new_with_label(_("PROBE")); +#. g_signal_connect (GTK_BUTTON(probe_button), "clicked", #. G_CALLBACK (h264_probe_button_clicked), all_data); -#. -#. gtk_grid_attach (GTK_GRID(table), h264_controls->probe_button, 0, line, 1 ,1); -#. gtk_widget_show(h264_controls->probe_button); -#. -#: ../src/uvc_h264.c:1421 +#. +#. gtk_grid_attach (GTK_GRID(h264_controls_grid), probe_button, 0, line, 1 ,1); +#. gtk_widget_show(probe_button); +#. +#: ../guvcview/gui_gtk3_h264ctrls.c:1391 msgid "COMMIT" msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:70 +msgid "Settings" +msgstr "IestatÄ«jumi" + +#: ../guvcview/gui_gtk3_menu.c:73 +msgid "Hardware Defaults" +msgstr "AparatĆ«ras noklusējums" + +#: ../guvcview/gui_gtk3_menu.c:81 +msgid "Camera Button" +msgstr "Kameras poga" + +#: ../guvcview/gui_gtk3_menu.c:86 +msgid "Capture Image" +msgstr "UzƆemt attēlu" + +#: ../guvcview/gui_gtk3_menu.c:91 +msgid "Capture Video" +msgstr "UzƆemt video" + +#: ../guvcview/gui_gtk3_menu.c:134 +msgid "Photo" +msgstr "Foto" + +#: ../guvcview/gui_gtk3_menu.c:135 ../guvcview/gui_gtk3_menu.c:159 +msgid "File" +msgstr "Fails" + +#: ../guvcview/gui_gtk3_menu.c:136 ../guvcview/gui_gtk3_menu.c:160 +msgid "Increment Filename" +msgstr "Automātiski pieaugoĆĄs" + +#: ../guvcview/gui_gtk3_menu.c:158 +msgid "Video" +msgstr "Video" + +#: ../guvcview/gui_gtk3_menu.c:175 +msgid "Video Codec" +msgstr "Video kodeks" + +#: ../guvcview/gui_gtk3_menu.c:202 +msgid "Video Codec Properties" +msgstr "Video kodeka Ä«paĆĄÄ«bas" + +#: ../guvcview/gui_gtk3_menu.c:208 +msgid "Audio Codec" +msgstr "Audio kodeks" + +#: ../guvcview/gui_gtk3_menu.c:235 +msgid "Audio Codec Properties" +msgstr "Audio kodeka Ä«paĆĄÄ«bas" + +#: ../guvcview/gui_gtk3_v4l2ctrls.c:174 +msgid "Left" +msgstr "Pa kreisi" + +#: ../guvcview/gui_gtk3_v4l2ctrls.c:175 +msgid "Right" +msgstr "Pa labi" + +#: ../guvcview/gui_gtk3_v4l2ctrls.c:179 +msgid "Down" +msgstr "Lejup" + +#: ../guvcview/gui_gtk3_v4l2ctrls.c:180 +msgid "Up" +msgstr "AugĆĄup" + +#. turn it into a menu control +#: ../guvcview/gui_gtk3_v4l2ctrls.c:296 +msgid "8 bit" +msgstr "8 biti" + +#: ../guvcview/gui_gtk3_v4l2ctrls.c:296 +msgid "12 bit" +msgstr "12 biti" + +#. add a virtual control for software autofocus +#: ../guvcview/gui_gtk3_v4l2ctrls.c:348 +msgid "Auto Focus (continuous)" +msgstr "Automātisks fokuss (nepārtraukts)" + +#: ../guvcview/gui_gtk3_v4l2ctrls.c:349 +msgid "set Focus" +msgstr "iestatÄ«t fokusu" + +#. control_widgets_list[n].widget2 = gtk_button_new_from_stock(GTK_STOCK_APPLY); +#. control_widgets_list[n].widget2= gtk_button_new_from_stock(GTK_STOCK_APPLY); +#. control_widgets_list[n].widget2 = gtk_button_new_from_stock(GTK_STOCK_APPLY); +#: ../guvcview/gui_gtk3_v4l2ctrls.c:433 ../guvcview/gui_gtk3_v4l2ctrls.c:456 +#: ../guvcview/gui_gtk3_v4l2ctrls.c:478 +#, fuzzy +msgid "_Apply" +msgstr "Pielietot" + +#: ../guvcview/gui_gtk3_videoctrls.c:144 +msgid "Frame Rate:" +msgstr "Kadru ātrums:" + +#: ../guvcview/gui_gtk3_videoctrls.c:204 +msgid "Resolution:" +msgstr "IzĆĄÄ·irtspēja:" + +#: ../guvcview/gui_gtk3_videoctrls.c:254 +msgid "Camera Output:" +msgstr "Kameras izvade:" + +#: ../guvcview/gui_gtk3_videoctrls.c:287 +msgid "---- Video Filters ----" +msgstr "---- Video filtri ----" + +#. Mirror FX +#: ../guvcview/gui_gtk3_videoctrls.c:307 +msgid " Mirror" +msgstr " Spogulis" + +#. Upturn FX +#: ../guvcview/gui_gtk3_videoctrls.c:319 +msgid " Invert" +msgstr " Invertēt" + +#. Negate FX +#: ../guvcview/gui_gtk3_videoctrls.c:331 +msgid " Negative" +msgstr " NegatÄ«vs" + +#. Mono FX +#: ../guvcview/gui_gtk3_videoctrls.c:343 +msgid " Mono" +msgstr " Melnbalts" + +#. Pieces FX +#: ../guvcview/gui_gtk3_videoctrls.c:356 +msgid " Pieces" +msgstr " MozaÄ«ka" + +#. Particles +#: ../guvcview/gui_gtk3_videoctrls.c:369 +msgid " Particles" +msgstr " DaÄŒiƆas" + +#: ../guvcview/options.c:51 +msgid "Print help" +msgstr "" + +#: ../guvcview/options.c:58 +#, fuzzy +msgid "Print version" +msgstr "Izdrukas versija" + +#: ../guvcview/options.c:64 +msgid "LEVEL" +msgstr "" + +#: ../guvcview/options.c:65 +msgid "Set Verbosity level (def: 0)" +msgstr "" + +#: ../guvcview/options.c:71 +msgid "DEVICE" +msgstr "" + +#: ../guvcview/options.c:72 +#, fuzzy +msgid "Set device name (def: /dev/video0)" +msgstr "Video ierÄ«ce, kuru izmantot [noklusējums: /dev/video0]" + +#: ../guvcview/options.c:78 +msgid "METHOD" +msgstr "" + +#: ../guvcview/options.c:79 +#, fuzzy +msgid "Set capture method [read | mmap (def)]" +msgstr "UzƆemĆĄanas metode (1-mmap (noklusētais) 2-read)" + +#: ../guvcview/options.c:85 +msgid "WIDTHxHEIGHT" +msgstr "" + +#: ../guvcview/options.c:86 +msgid "Request resolution (e.g 640x480)" +msgstr "" + +#: ../guvcview/options.c:92 +msgid "FOURCC" +msgstr "" + +#: ../guvcview/options.c:93 +msgid "Request format (e.g MJPG)" +msgstr "" + +#: ../guvcview/options.c:99 +msgid "RENDER_API" +msgstr "" + +#: ../guvcview/options.c:100 +msgid "Select render API (e.g none; sdl)" +msgstr "" + +#: ../guvcview/options.c:106 +msgid "AUDIO_API" +msgstr "" + +#: ../guvcview/options.c:107 +msgid "Select audio API (e.g none; port; pulse)" +msgstr "" + +#: ../guvcview/options.c:113 +msgid "AUDIO_DEVICE" +msgstr "" + +#: ../guvcview/options.c:114 +msgid "Select audio device index for selected api (0..N)" +msgstr "" + +#: ../guvcview/options.c:120 +msgid "GUI_API" +msgstr "" + +#: ../guvcview/options.c:121 +msgid "Select GUI API (e.g none; gtk3)" +msgstr "" + +#: ../guvcview/options.c:127 ../guvcview/options.c:134 +msgid "CODEC" +msgstr "" + +#: ../guvcview/options.c:128 +msgid "Audio codec [pcm mp2 mp3 aac ac3 vorb]" +msgstr "" + +#: ../guvcview/options.c:135 +msgid "Video codec [raw mjpg mpeg flv1 wmv1 mpg2 mp43 dx50 h264 vp80 theo]" +msgstr "" + +#: ../guvcview/options.c:141 ../guvcview/options.c:148 +#: ../guvcview/options.c:155 +msgid "FILENAME" +msgstr "" + +#: ../guvcview/options.c:142 +#, fuzzy +msgid "load control profile" +msgstr "Ielādēt profilu" + +#: ../guvcview/options.c:149 +msgid "filename for captured video)" +msgstr "" + +#: ../guvcview/options.c:156 +msgid "filename for captured image)" +msgstr "" + +#: ../guvcview/options.c:162 ../guvcview/options.c:169 +msgid "TIME_IN_SEC" +msgstr "" + +#: ../guvcview/options.c:163 +msgid "time (double) in sec. for video capture)" +msgstr "" + +#: ../guvcview/options.c:170 +msgid "time (double) in sec. between captured photos)" +msgstr "" + +#: ../guvcview/options.c:176 +msgid "TOTAL" +msgstr "" + +#: ../guvcview/options.c:177 +msgid "total number of captured photos)" +msgstr "" + +#: ../guvcview/options.c:184 +msgid "Start in control panel mode" +msgstr "" + +#: ../guvcview/options.c:307 +#, fuzzy, c-format +msgid "" +"Guvcview version %s\n" +"\n" +msgstr "Guvcview brÄ«dinājums:" + +#: ../guvcview/options.c:308 +#, c-format +msgid "" +"Usage:\n" +" guvcview [OPTIONS]\n" +"\n" +msgstr "" + +#: ../guvcview/options.c:309 +#, c-format +msgid "OPTIONS:\n" +msgstr "" + +#: ../guvcview/video_capture.c:819 +#, c-format +msgid "saving video to %s" +msgstr "" + +#. if(debug_level > 1) +#. printf("GUVCVIEW: saving image to %s\n", img_filename); +#: ../guvcview/video_capture.c:1069 +#, c-format +msgid "saving image to %s" +msgstr "" + +#~ msgid "MPEG2 - (lavc)" +#~ msgstr "MPEG2 - (lavc)" + +#~ msgid "MP3 - (lavc)" +#~ msgstr "MP3 - (lavc)" + +#~ msgid "Dolby AC3 - (lavc)" +#~ msgstr "Dolby AC3 - (lavc)" + +#~ msgid "ACC Low - (faac)" +#~ msgstr "ACC Low - (faac)" + +#~ msgid "Audio" +#~ msgstr "SkaƆa" + +#~ msgid " Sound" +#~ msgstr " SkaƆa" + +#~ msgid " Show VU meter" +#~ msgstr " RādÄ«t skaƆas lÄ«meƆa indikatoru" + +#~ msgid "---- Audio Effects ----" +#~ msgstr "---- Audio efekti ----" + +#~ msgid "Save File" +#~ msgstr "Saglabāt failu" + +#~ msgid "codec values" +#~ msgstr "kodeka vērtÄ«bas" + +#~ msgid "Cap. Video" +#~ msgstr "UzƆemt video" + +#~ msgid "GUVCViewer Controls" +#~ msgstr "GUVCViewer vadÄ«klas" + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to open device" +#~ msgstr "" +#~ "Guvcview kÄŒĆ«da:\n" +#~ "\n" +#~ "Neizdevās atvērt ierÄ«ci" + +#~ msgid "" +#~ "Please make sure the camera is connected\n" +#~ "and that the correct driver is installed." +#~ msgstr "" +#~ "LĆ«dzu, pārliecinieties, vai kamera ir pievienota\n" +#~ "un pareizais draiveris ir instalēts." + +#~ msgid "" +#~ "Guvcview:\n" +#~ "\n" +#~ "UVC Extension controls" +#~ msgstr "" +#~ "Guvcview:\n" +#~ "\n" +#~ "UVC paplaĆĄinājumu vadÄ«klas" + +#~ msgid "Extension controls were added to the UVC driver" +#~ msgstr "PaplaĆĄinājumu vadÄ«klas tika pievienotas UVC draiverim" + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "UVC Extension controls" +#~ msgstr "" +#~ "Guvcview kÄŒĆ«da:\n" +#~ "\n" +#~ "UVC paplaĆĄinājumu vadÄ«klas" + +#~ msgid "" +#~ "An error occurred while adding extension\n" +#~ "controls to the UVC driver\n" +#~ "Make sure you run guvcview as root (or sudo)." +#~ msgstr "" +#~ "GadÄ«jās kÄŒĆ«da, pievienojot paplaĆĄinājumu\n" +#~ "vadÄ«klas UVC draiverim\n" +#~ "Pārliecinieties, vai guvcview tiek palaists kā root (vai sudo)." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Can't set a valid video stream for guvcview" +#~ msgstr "" +#~ "Guvcview kÄŒĆ«da:\n" +#~ "\n" +#~ "Neizdevās iestatÄ«t guvcview derÄ«gu video plĆ«smu" + +#~ msgid "" +#~ "Make sure your device driver is v4l2 compliant\n" +#~ "and that it is properly installed." +#~ msgstr "" +#~ "LĆ«dzu, pārliecinieties, vai ierÄ«ces draiveris ir v4l2 saderÄ«gs\n" +#~ "un vai tas ir pareizi instalēts." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to start with minimum setup" +#~ msgstr "" +#~ "Guvcview kÄŒĆ«da:\n" +#~ "\n" +#~ "Neizdevās sākt ar minimālajiem iestatÄ«jumiem" + +#~ msgid "Please reconnect your camera." +#~ msgstr "LĆ«dzu, pārvienojiet kameru." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Couldn't query device capabilities" +#~ msgstr "" +#~ "Guvcview kÄŒĆ«da:\n" +#~ "\n" +#~ "Neizdevās vaicājums ierÄ«ces iespējām" + +#~ msgid "Make sure the device driver supports v4l2." +#~ msgstr "Pārliecinieties, ka ierÄ«ces draiveris atbalsta v4l2." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Read method error" +#~ msgstr "" +#~ "Guvcview kÄŒĆ«da:\n" +#~ "\n" +#~ "LasÄ«ĆĄanas metodes kÄŒĆ«da" + +#~ msgid "Please try mmap instead (--capture_method=1)." +#~ msgstr "LĆ«dzu, mēģiniet mmap, --capture_method=1 vietā." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to allocate Buffers" +#~ msgstr "" +#~ "Guvcview kÄŒĆ«da:\n" +#~ "\n" +#~ "Neizdevās pieĆĄÄ·irt buferi" + +#~ msgid "Please try restarting your system." +#~ msgstr "LĆ«dzu, mēģiniet pārstartēt sistēmu." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to create Video Thread" +#~ msgstr "" +#~ "Guvcview kÄŒĆ«da:\n" +#~ "\n" +#~ "Neizdevās izveidot video dzÄ«slu" + +#~ msgid "Please report it to http://developer.berlios.de/bugs/?group_id=8179" +#~ msgstr "LĆ«dzu, paziƆojiet http://developer.berlios.de/bugs/?group_id=8179" + +#~ msgid "Bitmap (Bmp)" +#~ msgstr "Bitmap (Bmp)" + +#~ msgid "Portable Network Graphics (Png)" +#~ msgstr "Portable Network Graphics (Png)" + +#~ msgid "Displays debug information" +#~ msgstr "Attēlo atkÄŒĆ«doĆĄanas informāciju" + +#~ msgid "Exit after adding UVC extension controls (needs root/sudo)" +#~ msgstr "" +#~ "Iziet pēc UVC paplaĆĄinājuma vadÄ«klu pievienoĆĄanas (nepiecieĆĄams root/sudo)" + +#~ msgid "Don't stream video (image controls only)" +#~ msgstr "Nestraumēt video (tikai attēla vadÄ«klas)" + +#~ msgid "Don't display a GUI" +#~ msgstr "Neattēlot saskarni" + +#~ msgid "Configuration file" +#~ msgstr "Konfigurācijas fails" + +#~ msgid "Hardware accelaration (enable(1) | disable(0))" +#~ msgstr "AparatĆ«ras paātrinājums (ieslēgts(1) | izslēgts(0))" + +#~ msgid "" +#~ "Pixel format(mjpg|jpeg|yuyv|yvyu|uyvy|yyuv|yu12|yv12|nv12|nv21|nv16|nv61|" +#~ "y41p|grey|y10b|y16 |s501|s505|s508|gbrg|grbg|ba81|rggb|bgr3|rgb3)" +#~ msgstr "" +#~ "PikseÄŒa formāts(mjpg|jpeg|yuyv|yvyu|uyvy|yyuv|yu12|yv12|nv12|nv21|nv16|" +#~ "nv61|y41p|grey|y10b|y16 |s501|s505|s508|gbrg|grbg|ba81|rggb|bgr3|rgb3)" + +#~ msgid "Frame size, default: 640x480" +#~ msgstr "Kadra lielums, noklusējums: 640x480" + +#~ msgid "Image capture interval in seconds" +#~ msgstr "Attēlu uzƆemĆĄanas intervāls sekundēs" + +#~ msgid "Number of Pictures to capture" +#~ msgstr "Attēlu skaits, cik uzƆemt" + +#~ msgid "Video File name (capture from start)" +#~ msgstr "Video faila nosaukums (uzƆemt no sākuma)" + +#~ msgid "Video capture time (in seconds)" +#~ msgstr "Video uzƆemĆĄanas laiks (sekundēs)" + +#~ msgid "Exits guvcview after closing video" +#~ msgstr "Iziet guvcview pēc video aizvērĆĄanas" + +#~ msgid "Number of initial frames to skip" +#~ msgstr "Pirmreizējo kadru skaits, ko izlaist" + +#~ msgid "Show FPS value (enable(1) | disable (0))" +#~ msgstr "RādÄ«t kadrātruma vērtÄ«bu (ieslēgts(1) | izslēgts(0))" + +#~ msgid "Load Profile at start" +#~ msgstr "Ielādēt profilu sākot" + +#~ msgid "- local options" +#~ msgstr "- lokālās opcijas" + +#~ msgid "Cap. Image" +#~ msgstr "UzƆemt attēlu" + +#~ msgid "Not enough free space left on disk" +#~ msgstr "Diskā nav pietiekami daudz brÄ«vas vietas" + +#~ msgid "YUY2 - uncomp YUV" +#~ msgstr "YUY2 - nesaspiests YUV" + +#~ msgid "RGB - uncomp BMP" +#~ msgstr "RGB - nesaspiests BMP" + +#~ msgid "MKV - Matroska format" +#~ msgstr "MKV - Matroska formāts" + +#~ msgid "WEBM - format" +#~ msgstr "WEBM - formāts" + +#~ msgid " Show" +#~ msgstr " RādÄ«t" + +#~ msgid "Quality:" +#~ msgstr "Kvalitāte:" diff -Nru guvcview-1.7.3/po/Makefile.in.in guvcview-2.0.1+ubuntu1~ppa1/po/Makefile.in.in --- guvcview-1.7.3/po/Makefile.in.in 2014-03-24 22:56:28.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/po/Makefile.in.in 2014-10-05 10:41:44.000000000 +0000 @@ -49,8 +49,8 @@ XGETTEXT = @XGETTEXT@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ -MSGMERGE = INTLTOOL_EXTRACT=$(INTLTOOL_EXTRACT) srcdir=$(srcdir) $(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --dist -GENPOT = INTLTOOL_EXTRACT=$(INTLTOOL_EXTRACT) srcdir=$(srcdir) $(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --pot +MSGMERGE = INTLTOOL_EXTRACT="$(INTLTOOL_EXTRACT)" XGETTEXT="$(XGETTEXT)" srcdir=$(srcdir) $(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --dist +GENPOT = INTLTOOL_EXTRACT="$(INTLTOOL_EXTRACT)" XGETTEXT="$(XGETTEXT)" srcdir=$(srcdir) $(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --pot ALL_LINGUAS = @ALL_LINGUAS@ @@ -70,20 +70,23 @@ CATALOGS=$(shell LINGUAS="$(USE_LINGUAS)"; for lang in $$LINGUAS; do printf "$$lang.gmo "; done) -XGETTEXT_KEYWORDS = --keyword --keyword=N_ - .SUFFIXES: .SUFFIXES: .po .pox .gmo .mo .msg .cat +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +INTLTOOL_V_MSGFMT = $(INTLTOOL__v_MSGFMT_$(V)) +INTLTOOL__v_MSGFMT_= $(INTLTOOL__v_MSGFMT_$(AM_DEFAULT_VERBOSITY)) +INTLTOOL__v_MSGFMT_0 = @echo " MSGFMT" $@; + .po.pox: $(MAKE) $(GETTEXT_PACKAGE).pot $(MSGMERGE) $< $(GETTEXT_PACKAGE).pot -o $*.pox .po.mo: - $(MSGFMT) -o $@ $< + $(INTLTOOL_V_MSGFMT)$(MSGFMT) -o $@ $< .po.gmo: - file=`echo $* | sed 's,.*/,,'`.gmo \ + $(INTLTOOL_V_MSGFMT)file=`echo $* | sed 's,.*/,,'`.gmo \ && rm -f $$file && $(GMSGFMT) -o $$file $< .po.cat: @@ -198,7 +201,7 @@ fi; \ fi; \ else \ - echo "msgmerge for $$lang.gmo failed!"; \ + echo "msgmerge for $$lang.gmo failed!"; \ rm -f $$tmpdir/$$lang.new.po; \ fi; \ done diff -Nru guvcview-1.7.3/po/nl.po guvcview-2.0.1+ubuntu1~ppa1/po/nl.po --- guvcview-1.7.3/po/nl.po 2014-03-24 22:56:28.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/po/nl.po 2014-10-05 10:41:44.000000000 +0000 @@ -7,16 +7,16 @@ msgstr "" "Project-Id-Version: guvcview\n" "Report-Msgid-Bugs-To: pj.assis@gmail.com\n" -"POT-Creation-Date: 2013-11-14 22:15+0000\n" +"POT-Creation-Date: 2014-08-17 22:49+0100\n" "PO-Revision-Date: 2013-05-04 16:28+0000\n" "Last-Translator: Pjotr12345 \n" "Language-Team: Dutch \n" +"Language: nl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-12-08 10:36+0000\n" "X-Generator: Launchpad (build 16869)\n" -"Language: nl\n" #: ../data/guvcview.desktop.in.in.h:1 msgid "guvcview" @@ -30,1404 +30,1637 @@ msgid "A video viewer and capturer for the linux uvc driver" msgstr "" "Een programma voor het bekijken en opnemen van video, voor het " -"Linuxstuurprogramma uvc" - -#: ../src/acodecs.c:59 -msgid "PCM - uncompressed (16 bit)" -msgstr "PCM - niet-gecomprimeerd (16 bit)" - -#: ../src/acodecs.c:76 -msgid "MPEG2 - (lavc)" -msgstr "MPEG2 - (lavc)" - -#: ../src/acodecs.c:93 -msgid "MP3 - (lavc)" -msgstr "MP3 - (lavc)" - -#: ../src/acodecs.c:110 -msgid "Dolby AC3 - (lavc)" -msgstr "Dolby AC3 - (lavc)" - -#: ../src/acodecs.c:127 -msgid "ACC Low - (faac)" -msgstr "ACC Low - (faac)" - -#: ../src/acodecs.c:144 -msgid "Vorbis" -msgstr "Vorbis" - -#: ../src/audio_tab.c:87 -msgid "Audio" -msgstr "Audio" - -#: ../src/audio_tab.c:105 -msgid " Sound" -msgstr " Geluid" - -#. VU meter on the image (OSD) -#: ../src/audio_tab.c:116 -msgid " Show VU meter" -msgstr " VU-meter tonen" - -#: ../src/audio_tab.c:128 -msgid "Audio API:" -msgstr "Audio API:" - -#: ../src/audio_tab.c:139 -msgid "PORTAUDIO" -msgstr "PORTAUDIO" - -#: ../src/audio_tab.c:140 -msgid "PULSEAUDIO" -msgstr "PULSEAUDIO" - -#: ../src/audio_tab.c:156 ../src/audio_tab.c:179 -msgid "Input Device:" -msgstr "Invoerapparaat:" - -#: ../src/audio_tab.c:189 ../src/audio_tab.c:221 -msgid "Dev. Default" -msgstr "Dev. standaard" - -#: ../src/audio_tab.c:211 -msgid "Sample Rate:" -msgstr "Samplesnelheid:" - -#: ../src/audio_tab.c:222 -msgid "1 - mono" -msgstr "1 - mono" - -#: ../src/audio_tab.c:223 -msgid "2 - stereo" -msgstr "2 - stereo" - -#: ../src/audio_tab.c:258 -msgid "Channels:" -msgstr "Kanalen:" - -#: ../src/audio_tab.c:309 -msgid "---- Audio Effects ----" -msgstr "---- Audio-effecten ----" - -#. Echo -#: ../src/audio_tab.c:328 -msgid " Echo" -msgstr " Echo" - -#. FUZZ -#: ../src/audio_tab.c:339 -msgid " Fuzz" -msgstr " Fuzz" - -#. Reverb -#: ../src/audio_tab.c:351 -msgid " Reverb" -msgstr " Weergalm" - -#. WahWah -#: ../src/audio_tab.c:363 -msgid " WahWah" -msgstr " WahWah" - -#. Ducky -#: ../src/audio_tab.c:375 -msgid " Ducky" -msgstr " Ducky" - -#: ../src/callbacks.c:109 -msgid "Error" -msgstr "Fout" - -#: ../src/callbacks.c:133 -msgid "" -"\n" -"You have more than one video device installed.\n" -"Do you want to try another one ?\n" -msgstr "" -"\n" -"U hebt meer dan Ă©Ă©n video-apparaat geĂŻnstalleerd.\n" -"Wilt u een ander proberen?\n" - -#. Devices -#: ../src/callbacks.c:140 ../src/video_tab.c:111 -msgid "Device:" -msgstr "Apparaat:" - -#: ../src/callbacks.c:272 -msgid "Save File" -msgstr "Bestand opslaan" - -#: ../src/callbacks.c:284 -msgid "File Format:" -msgstr "Bestandtype:" - -#: ../src/callbacks.c:455 -msgid "codec values" -msgstr "codecwaarden" - -#: ../src/callbacks.c:466 -msgid "" -" encoder fps: \n" -" (0 - use fps combobox value)" -msgstr "" -" encoder fps: \n" -" (0 - gebruik fps-comboboxwaarde)" - -#: ../src/callbacks.c:479 -msgid " monotonic pts" -msgstr " monotonic pts" - -#. bit rate -#: ../src/callbacks.c:486 ../src/callbacks.c:809 -msgid "bit rate: " -msgstr "bitrate: " - -#: ../src/callbacks.c:499 -msgid "qmax: " -msgstr "qmax: " - -#: ../src/callbacks.c:512 -msgid "qmin: " -msgstr "qmin: " - -#: ../src/callbacks.c:525 -msgid "max. qdiff: " -msgstr "max. qdiff: " - -#: ../src/callbacks.c:538 -msgid "dia size: " -msgstr "diagrootte: " - -#: ../src/callbacks.c:551 -msgid "pre dia size: " -msgstr "pre-diagrootte: " - -#: ../src/callbacks.c:564 -msgid "pre me: " -msgstr "pre me: " - -#: ../src/callbacks.c:577 -msgid "pre cmp: " -msgstr "pre cmp: " - -#: ../src/callbacks.c:590 -msgid "cmp: " -msgstr "cmp: " - -#: ../src/callbacks.c:603 -msgid "sub cmp: " -msgstr "sub cmp: " - -#: ../src/callbacks.c:616 -msgid "last predictor count: " -msgstr "laatste telling van voorspeller: " - -#: ../src/callbacks.c:629 -msgid "gop size: " -msgstr "gop-grootte: " - -#: ../src/callbacks.c:642 -msgid "qcompress: " -msgstr "qcompress: " - -#: ../src/callbacks.c:655 -msgid "qblur: " -msgstr "qblur: " - -#: ../src/callbacks.c:668 -msgid "subq: " -msgstr "subq: " - -#: ../src/callbacks.c:681 -msgid "framerefs: " -msgstr "framerefs: " - -#: ../src/callbacks.c:694 -msgid "me method: " -msgstr "me-methode: " - -#: ../src/callbacks.c:707 -msgid "mb decision: " -msgstr "mb-besluit: " - -#: ../src/callbacks.c:720 -msgid "max B frames: " -msgstr "max B frames: " - -#: ../src/callbacks.c:733 -msgid "num threads: " -msgstr "num threads: " - -#: ../src/callbacks.c:796 -msgid "audio codec values" -msgstr "audio codec-waarden" - -#. sample format -#: ../src/callbacks.c:823 -msgid "sample format: " -msgstr "bestandtype van voorbeeld: " - -#: ../src/callbacks.c:1311 -msgid "start new" -msgstr "start nieuw" - -#: ../src/callbacks.c:1314 -msgid "restart" -msgstr "herstarten" - -#: ../src/callbacks.c:1316 -msgid "new" -msgstr "nieuw" - -#: ../src/callbacks.c:1318 -msgid "cancel" -msgstr "annuleren" - -#: ../src/callbacks.c:1323 -msgid "" -"launch new process or restart?.\n" -"\n" -msgstr "" -"nieuw proces starten of herstarten?\n" -"\n" - -#: ../src/callbacks.c:1780 ../src/guvcview.c:565 -msgid "Cap. Image (I)" -msgstr "Afbeelding vastleggen (I)" - -#. disable image controls -#: ../src/callbacks.c:1791 ../src/guvcview.c:690 ../src/timers.c:101 -msgid "capturing photo to" -msgstr "foto wordt vastgelegd naar" - -#: ../src/callbacks.c:1850 ../src/guvcview.c:575 -msgid "Cap. Video (V)" -msgstr "Video Vastleggen (V)" - -#: ../src/callbacks.c:1876 ../src/guvcview.c:740 -msgid "capturing video to" -msgstr "video wordt vastgelegd naar" - -#. vid capture enabled from start -#: ../src/callbacks.c:1911 ../src/guvcview.c:570 -msgid "Stop Video (V)" -msgstr "Stop Video (V)" - -#: ../src/callbacks.c:1967 ../src/menubar.c:66 -msgid "Save Profile" -msgstr "Profiel opslaan" - -#: ../src/callbacks.c:1980 ../src/menubar.c:65 -msgid "Load Profile" -msgstr "Profiel laden" - -#: ../src/create_video.c:1098 ../src/guvcview.c:732 -msgid "Cap. Video" -msgstr "Video opn." - -#: ../src/guvcview.c:280 -msgid "Guvcview Video Capture" -msgstr "Guvcview video-opname" - -#: ../src/guvcview.c:292 -msgid "GUVCViewer Controls" -msgstr "GUVCkijker bedieningsknoppen" - -#. can't open device -#: ../src/guvcview.c:342 -msgid "" -"Guvcview error:\n" -"\n" -"Unable to open device" -msgstr "" -"Guvcview-fout:\n" -"\n" -"Kan apparaat niet openen" - -#: ../src/guvcview.c:343 -msgid "" -"Please make sure the camera is connected\n" -"and that the correct driver is installed." -msgstr "" -"Zorg er a.u.b. voor, dat de camera is verbonden\n" -"en dat het juiste stuurprogramma is geĂŻnstalleerd." - -#. uvc extension controls OK, give warning and shutdown (called with --add_ctrls) -#: ../src/guvcview.c:348 -msgid "" -"Guvcview:\n" -"\n" -"UVC Extension controls" -msgstr "" -"Guvcview:\n" -"\n" -"Bedieningsknoppen voor UVC Extensie" - -#: ../src/guvcview.c:349 -msgid "Extension controls were added to the UVC driver" -msgstr "" -"Bedieningsknoppen voor extensie werden toegevoegd aan het UVC-stuurprogramma" - -#. uvc extension controls error - EACCES (needs root user) -#: ../src/guvcview.c:356 -msgid "" -"Guvcview error:\n" -"\n" -"UVC Extension controls" -msgstr "" -"Guvcview-fout:\n" -"\n" -"Bedieningsknoppen voor UVC Extensie" - -#: ../src/guvcview.c:357 -msgid "" -"An error occurred while adding extension\n" -"controls to the UVC driver\n" -"Make sure you run guvcview as root (or sudo)." -msgstr "" -"Er is een fout opgetreden tijdens het\n" -"toevoegen van bedieningsknoppen aan\n" -"het UVC-stuurprogramma.\n" -"Zorg ervoor dat u guvcview draait als root\n" -"(of met sudo)." - -#: ../src/guvcview.c:391 ../src/guvcview.c:399 ../src/guvcview.c:477 -msgid "" -"Guvcview error:\n" -"\n" -"Can't set a valid video stream for guvcview" -msgstr "" -"Guvcview-fout:\n" -"\n" -"Kan geen geldige videostroom instellen voor guvcview" - -#: ../src/guvcview.c:392 ../src/guvcview.c:400 ../src/guvcview.c:478 -msgid "" -"Make sure your device driver is v4l2 compliant\n" -"and that it is properly installed." -msgstr "" -"Zorg ervoor dat het stuurprogramma van uw\n" -"apparaat voldoet aan v4l2 en dat het\n" -"correct is geĂŻnstalleerd." - -#: ../src/guvcview.c:422 ../src/guvcview.c:444 -msgid "" -"Guvcview error:\n" -"\n" -"Unable to start with minimum setup" -msgstr "" -"Guvcview-fout:\n" -"\n" -"Kan niet opstarten met minimale\n" -"instellingen" - -#: ../src/guvcview.c:423 ../src/guvcview.c:445 -msgid "Please reconnect your camera." -msgstr "Sluit uw camera opnieuw aan a.u.b." - -#: ../src/guvcview.c:452 -msgid "" -"Guvcview error:\n" -"\n" -"Couldn't query device capabilities" -msgstr "" -"Guvcview-fout:\n" -"\n" -"Kon de capaciteiten van het\n" -"apparaat niet opvragen" - -#: ../src/guvcview.c:453 -msgid "Make sure the device driver supports v4l2." -msgstr "Zorg ervoor dat het stuurprogramma v4l2 ondersteunt." - -#: ../src/guvcview.c:457 -msgid "" -"Guvcview error:\n" -"\n" -"Read method error" -msgstr "" -"Guvcview-fout:\n" -"\n" -"Leesmethodefout" - -#: ../src/guvcview.c:458 -msgid "Please try mmap instead (--capture_method=1)." -msgstr "Probeer in plaats daarvan a.u.b. mmap (--capture_method=1)." - -#: ../src/guvcview.c:466 -msgid "" -"Guvcview error:\n" -"\n" -"Unable to allocate Buffers" -msgstr "" -"Guvcview-fout:\n" -"\n" -"Kan geen buffers toewijzen" - -#: ../src/guvcview.c:467 -msgid "Please try restarting your system." -msgstr "Probeer a.u.b. of het helpt wanneer u uw systeem herstart." - -#: ../src/guvcview.c:518 -msgid "Image Controls" -msgstr "Fotobedieningsknoppen" - -#. image auto capture -#: ../src/guvcview.c:561 -msgid "Stop Auto (I)" -msgstr "Stop Auto (I)" - -#: ../src/guvcview.c:676 -msgid "" -"Guvcview error:\n" -"\n" -"Unable to create Video Thread" -msgstr "" -"Guvcview-fout:\n" -"\n" -"Kan geen videodraad maken" - -#: ../src/guvcview.c:677 -msgid "Please report it to http://developer.berlios.de/bugs/?group_id=8179" -msgstr "Meld het a.u.b. aan http://developer.berlios.de/bugs/?group_id=8179" - -#: ../src/img_controls.c:121 -msgid "Auto Focus (continuous)" -msgstr "Automatische scherpstelling (voortdurend)" - -#: ../src/img_controls.c:122 -msgid "set Focus" -msgstr "scherpstelling instellen" - -#: ../src/image_format.c:35 -msgid "Jpeg (jpg)" -msgstr "Jpeg (jpg)" - -#: ../src/image_format.c:41 -msgid "Bitmap (Bmp)" -msgstr "Bitmap (Bmp)" - -#: ../src/image_format.c:47 -msgid "Portable Network Graphics (Png)" -msgstr "Portable Network Graphics (Png)" - -#: ../src/image_format.c:53 -msgid "Raw Image (raw)" -msgstr "Raw Image (raw)" - -#. controls menu -#: ../src/menubar.c:64 -msgid "Settings" -msgstr "Instellingen" - -#: ../src/menubar.c:67 -msgid "Hardware Defaults" -msgstr "Apparatuurstandaarden" - -#: ../src/menubar.c:75 -msgid "Camera Button" -msgstr "Cameraknop" - -#: ../src/menubar.c:79 -msgid "Capture Image" -msgstr "Afbeelding vastleggen" - -#: ../src/menubar.c:84 -msgid "Capture Video" -msgstr "Video vastleggen" - -#. video menu -#: ../src/menubar.c:144 ../src/video_tab.c:95 -msgid "Video" -msgstr "Video" - -#: ../src/menubar.c:145 ../src/menubar.c:233 -msgid "File" -msgstr "Bestand" - -#: ../src/menubar.c:146 ../src/menubar.c:234 -msgid "Increment Filename" -msgstr "Bestandnaam aanvullen" - -#: ../src/menubar.c:164 -msgid "Video Codec" -msgstr "Videocodec" - -#: ../src/menubar.c:189 -msgid "Video Codec Properties" -msgstr "Eigenschappen van videocodec" - -#: ../src/menubar.c:196 -msgid "Audio Codec" -msgstr "Audiocodec" - -#: ../src/menubar.c:217 -msgid "Audio Codec Properties" -msgstr "Eigenschappen van audiocodec" - -#. photo menu -#: ../src/menubar.c:232 -msgid "Photo" -msgstr "Foto" - -#: ../src/options.c:753 -msgid "Prints version" -msgstr "Drukt versie af" - -#: ../src/options.c:754 -msgid "Displays debug information" -msgstr "Toont foutopsporingsinformatie" - -#: ../src/options.c:755 -msgid "Video Device to use [default: /dev/video0]" -msgstr "Te gebruiken video-apparaat [standaard: /dev/video0]" - -#: ../src/options.c:756 -msgid "Exit after adding UVC extension controls (needs root/sudo)" -msgstr "" -"Afsluiten na het toevoegen van bedieningsknoppen voor UVC-extensie (heeft " -"root/sudo nodig)" - -#: ../src/options.c:757 -msgid "Don't stream video (image controls only)" -msgstr "Maak geen videostroom (alleen fotobedieningsknoppen)" - -#: ../src/options.c:758 -msgid "Don't display a GUI" -msgstr "Toon geen grafische schil" - -#: ../src/options.c:759 -msgid "Capture method (1-mmap (default) 2-read)" -msgstr "Opnamemethode (1-mmap (standaard) 2-read)" - -#: ../src/options.c:760 -msgid "Configuration file" -msgstr "Configuratiebestand" - -#: ../src/options.c:761 -msgid "Hardware accelaration (enable(1) | disable(0))" -msgstr "Hardwareversnelling (aan(1) | uit(0))" - -#: ../src/options.c:762 -msgid "" -"Pixel " -"format(mjpg|jpeg|yuyv|yvyu|uyvy|yyuv|yu12|yv12|nv12|nv21|nv16|nv61|y41p|grey|" -"y10b|y16 |s501|s505|s508|gbrg|grbg|ba81|rggb|bgr3|rgb3)" -msgstr "" -"Pixel " -"format(mjpg|jpeg|yuyv|yvyu|uyvy|yyuv|yu12|yv12|nv12|nv21|nv16|nv61|y41p|grey|" -"y10b|y16 |s501|s505|s508|gbrg|grbg|ba81|rggb|bgr3|rgb3)" - -#: ../src/options.c:763 -msgid "Frame size, default: 640x480" -msgstr "Beeldgrootte, standaard: 640x480" - -#: ../src/options.c:764 -msgid "Image File name" -msgstr "Naam van fotobestand" - -#: ../src/options.c:765 -msgid "Image capture interval in seconds" -msgstr "Tussenpoze tussen foto's maken, in seconden" - -#: ../src/options.c:766 -msgid "Number of Pictures to capture" -msgstr "Aantal te maken foto's" - -#: ../src/options.c:767 -msgid "Video File name (capture from start)" -msgstr "Naam van videobestand (opnemen vanaf begin)" - -#: ../src/options.c:768 -msgid "Video capture time (in seconds)" -msgstr "Video-opnametijd (in seconden)" - -#: ../src/options.c:769 -msgid "Exits guvcview after closing video" -msgstr "Sluit guvcview af na sluiten van film" - -#: ../src/options.c:770 -msgid "Number of initial frames to skip" -msgstr "Aantal filmbeeldjes dat in het begin moet worden overgeslagen" - -#: ../src/options.c:771 -msgid "Show FPS value (enable(1) | disable (0))" -msgstr "Toon FPS-waarde (aan(1) | uit (0))" - -#: ../src/options.c:772 -msgid "Load Profile at start" -msgstr "Profiel laden bij start" - -#: ../src/options.c:773 -msgid "List controls method (0:loop, 1:next_ctrl flag [def])" -msgstr "" - -#: ../src/options.c:779 -msgid "- local options" -msgstr "- plaatselijke opties" - -#. gdk_threads_enter(); -#: ../src/timers.c:119 -msgid "Cap. Image" -msgstr "Foto maken" - -#: ../src/timers.c:217 -msgid "Guvcview Warning:" -msgstr "Guvcview -waarschuwing:" - -#: ../src/timers.c:217 -msgid "Not enough free space left on disk" -msgstr "Niet genoeg vrije ruimte over op schijf" - -#: ../src/v4l2_controls.c:794 -msgid "Left" -msgstr "Links" - -#: ../src/v4l2_controls.c:795 -msgid "Right" -msgstr "Rechts" - -#: ../src/v4l2_controls.c:799 -msgid "Down" -msgstr "Omlaag" - -#: ../src/v4l2_controls.c:800 -msgid "Up" -msgstr "Omhoog" - -#: ../src/v4l2_controls.c:845 -msgid "Off" -msgstr "Uit" - -#: ../src/v4l2_controls.c:845 -msgid "On" -msgstr "Aan" - -#: ../src/v4l2_controls.c:845 -msgid "Blinking" -msgstr "Knipperen" - -#: ../src/v4l2_controls.c:845 -msgid "Auto" -msgstr "Auto" - -#. turn it into a menu control -#: ../src/v4l2_controls.c:894 -msgid "8 bit" -msgstr "8-bit" - -#: ../src/v4l2_controls.c:894 -msgid "12 bit" -msgstr "12-bit" - -#: ../src/v4l2_dyna_ctrls.c:96 -msgid "Pan (relative)" -msgstr "Meedraaien (relatief)" - -#: ../src/v4l2_dyna_ctrls.c:109 -msgid "Tilt (relative)" -msgstr "Kantelen (relatief)" - -#: ../src/v4l2_dyna_ctrls.c:122 -msgid "Pan Reset" -msgstr "Meedraaien terugzetten op standaardwaarden" - -#: ../src/v4l2_dyna_ctrls.c:135 -msgid "Tilt Reset" -msgstr "Kantelen terugzetten op standaardwaarden" - -#: ../src/v4l2_dyna_ctrls.c:148 -msgid "Focus (absolute)" -msgstr "Scherpstellen (absoluut)" - -#: ../src/v4l2_dyna_ctrls.c:161 -msgid "LED1 Mode" -msgstr "LED1-modus" - -#: ../src/v4l2_dyna_ctrls.c:174 -msgid "LED1 Frequency" -msgstr "LED1-frequentie" +"Linuxstuurprogramma uvc" -#: ../src/v4l2_dyna_ctrls.c:187 -msgid "Disable video processing" -msgstr "Videobewerking uitschakelen" +#: ../data/guvcview.appdata.xml.in.in.h:1 +msgid "capture video from v4l2 devices" +msgstr "" -#: ../src/v4l2_dyna_ctrls.c:200 -msgid "Raw bits per pixel" -msgstr "Ruwe bits per pixel" +#: ../data/guvcview.appdata.xml.in.in.h:2 +msgid "" +"Video capture tool for video4linux2 compliant cameras, with special emphasis " +"on the linux uvc driver. It provides Image (jpg, png, bmp) and Video (mjpeg, " +"flv1, wmv1, mpg2, mpg4,...) capture with sound in several " +"formats( currently: avi and matroska). I also supports a control panel " +"option (--control_only) that is compatible with any other v4l2 app." +msgstr "" -#. needed only for language files (not used) +#. +#. * needed only for language files (not used) +#. #. V4L2 control strings -#: ../src/v4l2uvc.c:57 +#: ../gview_v4l2core/v4l2_controls.c:49 msgid "User Controls" msgstr "Bedieningsknoppen voor gebruiker" -#: ../src/v4l2uvc.c:58 +#: ../gview_v4l2core/v4l2_controls.c:50 msgid "Brightness" msgstr "Helderheid" -#: ../src/v4l2uvc.c:59 +#: ../gview_v4l2core/v4l2_controls.c:51 msgid "Contrast" msgstr "Contrast" -#: ../src/v4l2uvc.c:60 +#: ../gview_v4l2core/v4l2_controls.c:52 msgid "Hue" msgstr "Tint" -#: ../src/v4l2uvc.c:61 +#: ../gview_v4l2core/v4l2_controls.c:53 msgid "Saturation" msgstr "Verzadiging" -#: ../src/v4l2uvc.c:62 +#: ../gview_v4l2core/v4l2_controls.c:54 msgid "Sharpness" msgstr "Scherpte" -#: ../src/v4l2uvc.c:63 +#: ../gview_v4l2core/v4l2_controls.c:55 msgid "Gamma" msgstr "Gamma" -#: ../src/v4l2uvc.c:64 +#: ../gview_v4l2core/v4l2_controls.c:56 msgid "Backlight Compensation" msgstr "Achtergrondverlichtingscompensatie" -#: ../src/v4l2uvc.c:65 +#: ../gview_v4l2core/v4l2_controls.c:57 msgid "Power Line Frequency" msgstr "Frequentie van de elektrische aansluiting" -#: ../src/v4l2uvc.c:66 +#: ../gview_v4l2core/v4l2_controls.c:58 msgid "Hue, Automatic" msgstr "Waas, automatisch" -#: ../src/v4l2uvc.c:67 +#: ../gview_v4l2core/v4l2_controls.c:59 msgid "Focus, Auto" msgstr "Scherpstelling, automatisch" -#: ../src/v4l2uvc.c:68 +#: ../gview_v4l2core/v4l2_controls.c:60 msgid "Manual Mode" msgstr "Handmatige modus" -#: ../src/v4l2uvc.c:69 +#: ../gview_v4l2core/v4l2_controls.c:61 msgid "Auto Mode" msgstr "Automatische modus" -#: ../src/v4l2uvc.c:70 +#: ../gview_v4l2core/v4l2_controls.c:62 msgid "Shutter Priority Mode" msgstr "Voorkeurmodus van sluiter" -#: ../src/v4l2uvc.c:71 +#: ../gview_v4l2core/v4l2_controls.c:63 msgid "Aperture Priority Mode" msgstr "Voorkeurmodus van lensopening" -#: ../src/v4l2uvc.c:72 +#: ../gview_v4l2core/v4l2_controls.c:64 msgid "Black Level" msgstr "Zwartniveau" -#: ../src/v4l2uvc.c:73 +#: ../gview_v4l2core/v4l2_controls.c:65 msgid "White Balance, Automatic" msgstr "Witbalans, automatisch" -#: ../src/v4l2uvc.c:74 +#: ../gview_v4l2core/v4l2_controls.c:66 msgid "Do White Balance" msgstr "Pas witbalans toe" -#: ../src/v4l2uvc.c:75 +#: ../gview_v4l2core/v4l2_controls.c:67 msgid "Red Balance" msgstr "Roodbalans" -#: ../src/v4l2uvc.c:76 +#: ../gview_v4l2core/v4l2_controls.c:68 msgid "Blue Balance" msgstr "Blauwbalans" -#: ../src/v4l2uvc.c:77 +#: ../gview_v4l2core/v4l2_controls.c:69 msgid "Exposure" msgstr "Belichting" -#: ../src/v4l2uvc.c:78 +#: ../gview_v4l2core/v4l2_controls.c:70 msgid "Gain, Automatic" msgstr "Versterking, automatisch" -#: ../src/v4l2uvc.c:79 +#: ../gview_v4l2core/v4l2_controls.c:71 msgid "Gain" msgstr "Versterking" -#: ../src/v4l2uvc.c:80 +#: ../gview_v4l2core/v4l2_controls.c:72 msgid "Horizontal Flip" msgstr "Horizontaal spiegelen" -#: ../src/v4l2uvc.c:81 +#: ../gview_v4l2core/v4l2_controls.c:73 msgid "Vertical Flip" msgstr "Verticaal spiegelen" -#: ../src/v4l2uvc.c:82 +#: ../gview_v4l2core/v4l2_controls.c:74 msgid "Horizontal Center" msgstr "Horizontaal centreren" -#: ../src/v4l2uvc.c:83 +#: ../gview_v4l2core/v4l2_controls.c:75 msgid "Vertical Center" msgstr "Verticaal centreren" -#: ../src/v4l2uvc.c:84 +#: ../gview_v4l2core/v4l2_controls.c:76 msgid "Chroma AGC" msgstr "Chroma AGC" -#: ../src/v4l2uvc.c:85 +#: ../gview_v4l2core/v4l2_controls.c:77 msgid "Color Killer" msgstr "Kleurdoder" -#: ../src/v4l2uvc.c:86 +#: ../gview_v4l2core/v4l2_controls.c:78 msgid "Color Effects" msgstr "Kleureffecten" #. CAMERA CLASS control strings -#: ../src/v4l2uvc.c:89 +#: ../gview_v4l2core/v4l2_controls.c:81 msgid "Camera Controls" msgstr "Bedieningsknoppen voor camera" -#: ../src/v4l2uvc.c:90 +#: ../gview_v4l2core/v4l2_controls.c:82 msgid "Auto Exposure" msgstr "Autobelichting" -#: ../src/v4l2uvc.c:91 +#: ../gview_v4l2core/v4l2_controls.c:83 msgid "Exposure Time, Absolute" msgstr "Belichtingstijd, absoluut" -#: ../src/v4l2uvc.c:92 +#: ../gview_v4l2core/v4l2_controls.c:84 msgid "Exposure, Dynamic Framerate" msgstr "Belichtingstijd, dynamische opnamesnelheid" -#: ../src/v4l2uvc.c:93 +#: ../gview_v4l2core/v4l2_controls.c:85 msgid "Pan, Relative" msgstr "Meedraaien, relatief" -#: ../src/v4l2uvc.c:94 +#: ../gview_v4l2core/v4l2_controls.c:86 msgid "Tilt, Relative" msgstr "Kantelen, relatief" -#: ../src/v4l2uvc.c:95 +#: ../gview_v4l2core/v4l2_controls.c:87 msgid "Pan, Reset" msgstr "Meedraaien, terugzetten op standaardwaarden" -#: ../src/v4l2uvc.c:96 +#: ../gview_v4l2core/v4l2_controls.c:88 msgid "Tilt, Reset" msgstr "Kantelen, terugzetten op standaardwaarden" -#: ../src/v4l2uvc.c:97 +#: ../gview_v4l2core/v4l2_controls.c:89 msgid "Pan, Absolute" msgstr "Meedraaien, absoluut" -#: ../src/v4l2uvc.c:99 +#: ../gview_v4l2core/v4l2_controls.c:91 msgid "Focus, Absolute" msgstr "Scherpstellen, absoluut" -#: ../src/v4l2uvc.c:100 +#: ../gview_v4l2core/v4l2_controls.c:92 msgid "Focus, Relative" msgstr "Scherpstellen, relatief" -#: ../src/v4l2uvc.c:101 +#: ../gview_v4l2core/v4l2_controls.c:93 msgid "Focus, Automatic" msgstr "Scherpstellen, automatisch" -#: ../src/v4l2uvc.c:102 +#: ../gview_v4l2core/v4l2_controls.c:94 msgid "Zoom, Absolute" msgstr "Zoomen, absoluut" -#: ../src/v4l2uvc.c:103 +#: ../gview_v4l2core/v4l2_controls.c:95 msgid "Zoom, Relative" msgstr "Zoomen, relatief" -#: ../src/v4l2uvc.c:104 +#: ../gview_v4l2core/v4l2_controls.c:96 msgid "Zoom, Continuous" msgstr "Zoomen, bij voortduring" -#: ../src/v4l2uvc.c:105 +#: ../gview_v4l2core/v4l2_controls.c:97 msgid "Privacy" msgstr "PrivĂ©leven" #. UVC specific control strings -#: ../src/v4l2uvc.c:108 +#: ../gview_v4l2core/v4l2_controls.c:100 msgid "Exposure, Auto" msgstr "Belichting, auto" -#: ../src/v4l2uvc.c:109 +#: ../gview_v4l2core/v4l2_controls.c:101 msgid "Exposure, Auto Priority" msgstr "Belichting, auto-prioriteit" -#: ../src/v4l2uvc.c:110 +#: ../gview_v4l2core/v4l2_controls.c:102 msgid "Exposure (Absolute)" msgstr "Belichting (absoluut)" -#: ../src/v4l2uvc.c:111 +#: ../gview_v4l2core/v4l2_controls.c:103 msgid "White Balance Temperature, Auto" msgstr "Witbalanstemperatuur, auto" -#: ../src/v4l2uvc.c:112 +#: ../gview_v4l2core/v4l2_controls.c:104 msgid "White Balance Temperature" msgstr "Witbalanstemperatuur" -#: ../src/v4l2uvc.c:113 +#: ../gview_v4l2core/v4l2_controls.c:105 msgid "White Balance Component, Auto" msgstr "Witbalans-onderdeel, auto" -#: ../src/v4l2uvc.c:114 +#: ../gview_v4l2core/v4l2_controls.c:106 msgid "White Balance Blue Component" msgstr "Blauw witbalansonderdeel" -#: ../src/v4l2uvc.c:115 +#: ../gview_v4l2core/v4l2_controls.c:107 msgid "White Balance Red Component" msgstr "Rood witbalansonderdeel" #. libwebcam specific control strings -#: ../src/v4l2uvc.c:118 +#: ../gview_v4l2core/v4l2_controls.c:110 msgid "Focus" msgstr "Scherpstelling" -#: ../src/v4l2uvc.c:119 +#: ../gview_v4l2core/v4l2_controls.c:111 msgid "Focus (Absolute)" msgstr "Scherpstelling (absoluut)" -#: ../src/vcodecs.c:63 +#: ../gview_v4l2core/v4l2_xu_ctrls.c:63 ../guvcview/gui_gtk3_v4l2ctrls.c:239 +msgid "Off" +msgstr "Uit" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:64 ../guvcview/gui_gtk3_v4l2ctrls.c:239 +msgid "On" +msgstr "Aan" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:65 ../guvcview/gui_gtk3_v4l2ctrls.c:239 +msgid "Blinking" +msgstr "Knipperen" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:66 ../guvcview/gui_gtk3_v4l2ctrls.c:239 +msgid "Auto" +msgstr "Auto" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:73 +msgid "Pan (relative)" +msgstr "Meedraaien (relatief)" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:86 +msgid "Tilt (relative)" +msgstr "Kantelen (relatief)" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:99 +msgid "Pan Reset" +msgstr "Meedraaien terugzetten op standaardwaarden" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:112 +msgid "Tilt Reset" +msgstr "Kantelen terugzetten op standaardwaarden" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:125 +msgid "Focus (absolute)" +msgstr "Scherpstellen (absoluut)" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:138 +msgid "LED1 Mode" +msgstr "LED1-modus" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:151 +msgid "LED1 Frequency" +msgstr "LED1-frequentie" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:164 +msgid "Disable video processing" +msgstr "Videobewerking uitschakelen" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:177 +msgid "Raw bits per pixel" +msgstr "Ruwe bits per pixel" + +#: ../gview_encoder/audio_codecs.c:63 +#, fuzzy +msgid "PCM - uncompressed (float 32 bit)" +msgstr "PCM - niet-gecomprimeerd (16 bit)" + +#: ../gview_encoder/audio_codecs.c:80 +msgid "MP2 (MPEG audio layer 2)" +msgstr "" + +#: ../gview_encoder/audio_codecs.c:97 +msgid "MP3 (MPEG audio layer 3)" +msgstr "" + +#: ../gview_encoder/audio_codecs.c:118 +msgid "AC-3 (ATSC A/52A)" +msgstr "" + +#: ../gview_encoder/audio_codecs.c:139 +msgid "AAC (Advanced Audio Coding)" +msgstr "" + +#: ../gview_encoder/audio_codecs.c:160 +msgid "Vorbis" +msgstr "Vorbis" + +#: ../gview_encoder/video_codecs.c:75 +#, fuzzy +msgid "Raw camera input" +msgstr "Camera-uitvoer:" + +#: ../gview_encoder/video_codecs.c:111 msgid "MJPG - compressed" msgstr "MJPG - gecomprimeerd" -#: ../src/vcodecs.c:99 -msgid "YUY2 - uncomp YUV" -msgstr "YUY2 - ongecomp YUV" - -#: ../src/vcodecs.c:135 -msgid "RGB - uncomp BMP" -msgstr "RGB - ongecomp BMP" - -#: ../src/vcodecs.c:171 +#: ../gview_encoder/video_codecs.c:147 msgid "MPEG video 1" msgstr "MPEG video 1" -#: ../src/vcodecs.c:207 +#: ../gview_encoder/video_codecs.c:183 msgid "FLV1 - flash video 1" msgstr "FLV1 - flash video 1" -#: ../src/vcodecs.c:243 +#: ../gview_encoder/video_codecs.c:219 msgid "WMV1 - win. med. video 7" msgstr "WMV1 - win. med. video 7" -#: ../src/vcodecs.c:279 +#: ../gview_encoder/video_codecs.c:255 msgid "MPG2 - MPG2 format" msgstr "MPG2 - MPG2 formaat" -#: ../src/vcodecs.c:315 +#: ../gview_encoder/video_codecs.c:291 msgid "MS MP4 V3" msgstr "MS MP4 V3" -#: ../src/vcodecs.c:351 +#: ../gview_encoder/video_codecs.c:327 msgid "MPEG4-ASP" msgstr "MPEG4-ASP" -#: ../src/vcodecs.c:387 +#: ../gview_encoder/video_codecs.c:363 msgid "MPEG4-AVC (H264)" msgstr "MPEG4-AVC (H264)" -#: ../src/vcodecs.c:427 +#: ../gview_encoder/video_codecs.c:403 msgid "VP8 (VP8)" msgstr "VP8 (VP8)" -#: ../src/vcodecs.c:463 +#: ../gview_encoder/video_codecs.c:439 msgid "Theora (ogg theora)" msgstr "Theora (ogg theora)" -#: ../src/video_format.c:43 -msgid "AVI - avi format" -msgstr "AVI - aviformaat" +#: ../guvcview/gui_gtk3_audioctrls.c:95 +msgid "Audio API:" +msgstr "Audio API:" -#: ../src/video_format.c:52 -msgid "MKV - Matroska format" -msgstr "MKV - Matroskaformaat" - -#: ../src/video_format.c:61 -msgid "WEBM - format" -msgstr "WEBM - formaat" +#: ../guvcview/gui_gtk3_audioctrls.c:106 +msgid "NO SOUND" +msgstr "" -#: ../src/video_tab.c:216 -msgid "Frame Rate:" -msgstr "Beelden per seconde:" +#: ../guvcview/gui_gtk3_audioctrls.c:107 +msgid "PORTAUDIO" +msgstr "PORTAUDIO" + +#: ../guvcview/gui_gtk3_audioctrls.c:110 +msgid "PULSEAUDIO" +msgstr "PULSEAUDIO" -#: ../src/video_tab.c:223 -msgid " Show" -msgstr " Tonen" +#: ../guvcview/gui_gtk3_audioctrls.c:127 +msgid "Input Device:" +msgstr "Invoerapparaat:" -#: ../src/video_tab.c:245 -msgid "Resolution:" -msgstr "Resolutie:" +#: ../guvcview/gui_gtk3_audioctrls.c:161 +msgid "Sample Rate:" +msgstr "Samplesnelheid:" + +#: ../guvcview/gui_gtk3_audioctrls.c:168 ../guvcview/gui_gtk3_audioctrls.c:214 +msgid "Dev. Default" +msgstr "Dev. standaard" + +#: ../guvcview/gui_gtk3_audioctrls.c:207 +msgid "Channels:" +msgstr "Kanalen:" + +#: ../guvcview/gui_gtk3_audioctrls.c:215 +msgid "1 - mono" +msgstr "1 - mono" + +#: ../guvcview/gui_gtk3_audioctrls.c:216 +msgid "2 - stereo" +msgstr "2 - stereo" + +#: ../guvcview/gui_gtk3_audioctrls.c:235 +#, fuzzy +msgid "---- Audio Filters ----" +msgstr "---- Videofilters ----" + +#. Echo FX +#: ../guvcview/gui_gtk3_audioctrls.c:255 +msgid " Echo" +msgstr " Echo" + +#. Reverb FX +#: ../guvcview/gui_gtk3_audioctrls.c:268 +msgid " Reverb" +msgstr " Weergalm" + +#. Fuzz FX +#: ../guvcview/gui_gtk3_audioctrls.c:281 +msgid " Fuzz" +msgstr " Fuzz" + +#. WahWah FX +#: ../guvcview/gui_gtk3_audioctrls.c:294 +msgid " WahWah" +msgstr " WahWah" + +#. Ducky FX +#: ../guvcview/gui_gtk3_audioctrls.c:307 +msgid " Ducky" +msgstr " Ducky" + +#: ../guvcview/gui_gtk3.c:310 ../guvcview/gui_gtk3_callbacks.c:749 +msgid "Stop Video (V)" +msgstr "Stop Video (V)" + +#. video button +#: ../guvcview/gui_gtk3.c:315 ../guvcview/gui_gtk3.c:600 +#: ../guvcview/gui_gtk3_callbacks.c:755 +msgid "Cap. Video (V)" +msgstr "Video Vastleggen (V)" + +#: ../guvcview/gui_gtk3.c:376 ../guvcview/gui_gtk3.c:383 +msgid "Error" +msgstr "Fout" + +#: ../guvcview/gui_gtk3.c:379 ../guvcview/gui_gtk3.c:386 +#: ../guvcview/gui_gtk3_callbacks.c:2097 +msgid "_Ok" +msgstr "" + +#: ../guvcview/gui_gtk3.c:380 ../guvcview/gui_gtk3_callbacks.c:185 +#: ../guvcview/gui_gtk3_callbacks.c:199 ../guvcview/gui_gtk3_callbacks.c:522 +#: ../guvcview/gui_gtk3_callbacks.c:624 ../guvcview/gui_gtk3_callbacks.c:1755 +#: ../guvcview/gui_gtk3_callbacks.c:2098 +#, fuzzy +msgid "_Cancel" +msgstr "annuleren" + +#: ../guvcview/gui_gtk3.c:407 +msgid "" +"\n" +"You have more than one video device installed.\n" +"Do you want to try another one ?\n" +msgstr "" +"\n" +"U hebt meer dan Ă©Ă©n video-apparaat geĂŻnstalleerd.\n" +"Wilt u een ander proberen?\n" + +#. ---- Devices ---- +#: ../guvcview/gui_gtk3.c:414 ../guvcview/gui_gtk3_videoctrls.c:106 +msgid "Device:" +msgstr "Apparaat:" + +#: ../guvcview/gui_gtk3.c:516 +msgid "Guvcview Video Capture" +msgstr "Guvcview video-opname" + +#: ../guvcview/gui_gtk3.c:525 +#, fuzzy +msgid "Guvcview" +msgstr "guvcview" + +#: ../guvcview/gui_gtk3.c:572 +#, fuzzy +msgid "Stop Cap. (I)" +msgstr "Stop Auto (I)" + +#: ../guvcview/gui_gtk3.c:578 ../guvcview/gui_gtk3_callbacks.c:720 +#: ../guvcview/video_capture.c:250 +msgid "Cap. Image (I)" +msgstr "Afbeelding vastleggen (I)" + +#. quit button +#. GtkWidget *quitButton = gtk_button_new_from_stock(GTK_STOCK_QUIT); +#: ../guvcview/gui_gtk3.c:621 +msgid "_Quit" +msgstr "" + +#: ../guvcview/gui_gtk3.c:667 +msgid "Image Controls" +msgstr "Fotobedieningsknoppen" + +#: ../guvcview/gui_gtk3.c:703 +#, fuzzy +msgid "H264 Controls" +msgstr "Bedieningsknoppen voor gebruiker" + +#: ../guvcview/gui_gtk3.c:742 +#, fuzzy +msgid "Video Controls" +msgstr "Bedieningsknoppen voor gebruiker" + +#: ../guvcview/gui_gtk3.c:777 +#, fuzzy +msgid "Audio Controls" +msgstr "Bedieningsknoppen voor gebruiker" + +#: ../guvcview/gui_gtk3_callbacks.c:182 ../guvcview/gui_gtk3_menu.c:72 +msgid "Save Profile" +msgstr "Profiel opslaan" + +#: ../guvcview/gui_gtk3_callbacks.c:186 ../guvcview/gui_gtk3_callbacks.c:523 +#: ../guvcview/gui_gtk3_callbacks.c:625 +msgid "_Save" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:196 ../guvcview/gui_gtk3_menu.c:71 +msgid "Load Profile" +msgstr "Profiel laden" + +#: ../guvcview/gui_gtk3_callbacks.c:200 +msgid "_Open" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:208 ../guvcview/gui_gtk3_callbacks.c:531 +#: ../guvcview/gui_gtk3_callbacks.c:634 +msgid "File Format:" +msgstr "Bestandtype:" + +#: ../guvcview/gui_gtk3_callbacks.c:220 +msgid "gpfl (*.gpfl)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:221 +msgid "any (*.*)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:519 +#, fuzzy +msgid "Photo file name" +msgstr "Naam van fotobestand" + +#: ../guvcview/gui_gtk3_callbacks.c:543 +#, fuzzy +msgid "Raw (*.raw)" +msgstr "Raw Image (raw)" + +#: ../guvcview/gui_gtk3_callbacks.c:544 +#, fuzzy +msgid "Jpeg (*.jpg)" +msgstr "Jpeg (jpg)" + +#: ../guvcview/gui_gtk3_callbacks.c:545 +msgid "Png (*.png)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:546 +msgid "Bmp (*.bmp)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:621 +#, fuzzy +msgid "Video file name" +msgstr "Naam van fotobestand" + +#: ../guvcview/gui_gtk3_callbacks.c:646 +msgid "Matroska (*.mkv)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:647 +msgid "WebM (*.webm)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:648 +msgid "Avi (*.avi)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:1158 +msgid "start new" +msgstr "start nieuw" + +#: ../guvcview/gui_gtk3_callbacks.c:1161 +msgid "restart" +msgstr "herstarten" + +#: ../guvcview/gui_gtk3_callbacks.c:1163 +msgid "new" +msgstr "nieuw" + +#: ../guvcview/gui_gtk3_callbacks.c:1165 +msgid "cancel" +msgstr "annuleren" + +#: ../guvcview/gui_gtk3_callbacks.c:1170 +msgid "" +"launch new process or restart?.\n" +"\n" +msgstr "" +"nieuw proces starten of herstarten?\n" +"\n" + +#: ../guvcview/gui_gtk3_callbacks.c:1751 +#, fuzzy +msgid "video codec values" +msgstr "audio codec-waarden" + +#: ../guvcview/gui_gtk3_callbacks.c:1754 +msgid "_OK" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:1760 +msgid "" +" encoder fps: \n" +" (0 - use fps combobox value)" +msgstr "" +" encoder fps: \n" +" (0 - gebruik fps-comboboxwaarde)" + +#: ../guvcview/gui_gtk3_callbacks.c:1773 +msgid " monotonic pts" +msgstr " monotonic pts" + +#. bit rate +#: ../guvcview/gui_gtk3_callbacks.c:1780 ../guvcview/gui_gtk3_callbacks.c:2105 +msgid "bit rate: " +msgstr "bitrate: " + +#: ../guvcview/gui_gtk3_callbacks.c:1793 +msgid "qmax: " +msgstr "qmax: " + +#: ../guvcview/gui_gtk3_callbacks.c:1806 +msgid "qmin: " +msgstr "qmin: " + +#: ../guvcview/gui_gtk3_callbacks.c:1819 +msgid "max. qdiff: " +msgstr "max. qdiff: " + +#: ../guvcview/gui_gtk3_callbacks.c:1832 +msgid "dia size: " +msgstr "diagrootte: " + +#: ../guvcview/gui_gtk3_callbacks.c:1845 +msgid "pre dia size: " +msgstr "pre-diagrootte: " + +#: ../guvcview/gui_gtk3_callbacks.c:1858 +msgid "pre me: " +msgstr "pre me: " + +#: ../guvcview/gui_gtk3_callbacks.c:1871 +msgid "pre cmp: " +msgstr "pre cmp: " + +#: ../guvcview/gui_gtk3_callbacks.c:1884 +msgid "cmp: " +msgstr "cmp: " + +#: ../guvcview/gui_gtk3_callbacks.c:1897 +msgid "sub cmp: " +msgstr "sub cmp: " + +#: ../guvcview/gui_gtk3_callbacks.c:1910 +msgid "last predictor count: " +msgstr "laatste telling van voorspeller: " -#: ../src/video_tab.c:271 -msgid "Camera Output:" -msgstr "Camera-uitvoer:" +#: ../guvcview/gui_gtk3_callbacks.c:1923 +msgid "gop size: " +msgstr "gop-grootte: " -#: ../src/video_tab.c:293 -msgid "Apply" -msgstr "Toepassen" +#: ../guvcview/gui_gtk3_callbacks.c:1936 +msgid "qcompress: " +msgstr "qcompress: " -#: ../src/video_tab.c:300 -msgid "Quality:" -msgstr "Kwaliteit:" +#: ../guvcview/gui_gtk3_callbacks.c:1949 +msgid "qblur: " +msgstr "qblur: " -#: ../src/video_tab.c:310 -msgid "---- Video Filters ----" -msgstr "---- Videofilters ----" +#: ../guvcview/gui_gtk3_callbacks.c:1962 +msgid "subq: " +msgstr "subq: " -#. Mirror -#: ../src/video_tab.c:329 -msgid " Mirror" -msgstr " Spiegelen" +#: ../guvcview/gui_gtk3_callbacks.c:1975 +msgid "framerefs: " +msgstr "framerefs: " -#. Upturn -#: ../src/video_tab.c:340 -msgid " Invert" -msgstr " Omdraaien" +#: ../guvcview/gui_gtk3_callbacks.c:1988 +msgid "me method: " +msgstr "me-methode: " -#. Negate -#: ../src/video_tab.c:351 -msgid " Negative" -msgstr " Negatief" +#: ../guvcview/gui_gtk3_callbacks.c:2001 +msgid "mb decision: " +msgstr "mb-besluit: " -#. Mono -#: ../src/video_tab.c:362 -msgid " Mono" -msgstr " Mono" +#: ../guvcview/gui_gtk3_callbacks.c:2014 +msgid "max B frames: " +msgstr "max B frames: " -#. Pieces -#: ../src/video_tab.c:374 -msgid " Pieces" -msgstr " Delen" +#: ../guvcview/gui_gtk3_callbacks.c:2027 +msgid "num threads: " +msgstr "num threads: " -#. Particles -#: ../src/video_tab.c:386 -msgid " Particles" -msgstr " Deeltjes" +#: ../guvcview/gui_gtk3_callbacks.c:2094 +msgid "audio codec values" +msgstr "audio codec-waarden" -#: ../src/uvc_h264.c:596 -msgid "H264 Controls" -msgstr "" +#. sample format +#: ../guvcview/gui_gtk3_callbacks.c:2119 +msgid "sample format: " +msgstr "bestandtype van voorbeeld: " -#: ../src/uvc_h264.c:615 +#: ../guvcview/gui_gtk3_h264ctrls.c:622 +#, fuzzy msgid "Rate Control Mode:" -msgstr "" +msgstr "Fotobedieningsknoppen" -#: ../src/uvc_h264.c:626 +#: ../guvcview/gui_gtk3_h264ctrls.c:633 msgid "CBR" msgstr "" -#: ../src/uvc_h264.c:629 +#: ../guvcview/gui_gtk3_h264ctrls.c:636 msgid "VBR" msgstr "" -#: ../src/uvc_h264.c:633 +#: ../guvcview/gui_gtk3_h264ctrls.c:640 msgid "Constant QP" msgstr "" -#: ../src/uvc_h264.c:651 +#: ../guvcview/gui_gtk3_h264ctrls.c:658 msgid "Rate Control Mode flags:" msgstr "" -#: ../src/uvc_h264.c:676 +#: ../guvcview/gui_gtk3_h264ctrls.c:683 msgid "Temporal Scale Mode:" msgstr "" -#: ../src/uvc_h264.c:704 +#: ../guvcview/gui_gtk3_h264ctrls.c:711 msgid "Spatial Scale Mode:" msgstr "" -#: ../src/uvc_h264.c:737 +#: ../guvcview/gui_gtk3_h264ctrls.c:741 msgid "Frame Interval (100ns units):" msgstr "" -#: ../src/uvc_h264.c:772 +#: ../guvcview/gui_gtk3_h264ctrls.c:778 +#, fuzzy msgid "Bit Rate:" -msgstr "" +msgstr "bitrate: " -#: ../src/uvc_h264.c:795 +#: ../guvcview/gui_gtk3_h264ctrls.c:801 msgid "Hints:" msgstr "" -#: ../src/uvc_h264.c:800 +#: ../guvcview/gui_gtk3_h264ctrls.c:806 +#, fuzzy msgid "Resolution" -msgstr "" +msgstr "Resolutie:" -#: ../src/uvc_h264.c:804 +#: ../guvcview/gui_gtk3_h264ctrls.c:810 +#, fuzzy msgid "Profile" -msgstr "" +msgstr "Profiel opslaan" -#: ../src/uvc_h264.c:808 +#: ../guvcview/gui_gtk3_h264ctrls.c:814 +#, fuzzy msgid "Rate Control" -msgstr "" +msgstr "Fotobedieningsknoppen" -#: ../src/uvc_h264.c:812 +#: ../guvcview/gui_gtk3_h264ctrls.c:818 msgid "Usage Type" msgstr "" -#: ../src/uvc_h264.c:816 +#: ../guvcview/gui_gtk3_h264ctrls.c:822 msgid "Slice Mode" msgstr "" -#: ../src/uvc_h264.c:820 +#: ../guvcview/gui_gtk3_h264ctrls.c:826 msgid "Slice Unit" msgstr "" -#: ../src/uvc_h264.c:824 +#: ../guvcview/gui_gtk3_h264ctrls.c:830 msgid "MVC View" msgstr "" -#: ../src/uvc_h264.c:828 +#: ../guvcview/gui_gtk3_h264ctrls.c:834 msgid "Temporal Scale" msgstr "" -#: ../src/uvc_h264.c:832 +#: ../guvcview/gui_gtk3_h264ctrls.c:838 msgid "SNR Scale" msgstr "" -#: ../src/uvc_h264.c:836 +#: ../guvcview/gui_gtk3_h264ctrls.c:842 msgid "Spatial Scale" msgstr "" -#: ../src/uvc_h264.c:840 +#: ../guvcview/gui_gtk3_h264ctrls.c:846 msgid "Spatial Layer Ratio" msgstr "" -#: ../src/uvc_h264.c:844 +#: ../guvcview/gui_gtk3_h264ctrls.c:850 +#, fuzzy msgid "Frame Interval" -msgstr "" +msgstr "Beelden per seconde:" -#: ../src/uvc_h264.c:848 +#: ../guvcview/gui_gtk3_h264ctrls.c:854 msgid "Leaky Bucket Size" msgstr "" -#: ../src/uvc_h264.c:852 +#: ../guvcview/gui_gtk3_h264ctrls.c:858 msgid "Bit Rate" msgstr "" -#: ../src/uvc_h264.c:856 ../src/uvc_h264.c:1250 +#: ../guvcview/gui_gtk3_h264ctrls.c:862 ../guvcview/gui_gtk3_h264ctrls.c:1220 msgid "CABAC" msgstr "" -#: ../src/uvc_h264.c:860 +#: ../guvcview/gui_gtk3_h264ctrls.c:866 msgid "(I) Frame Period" msgstr "" -#: ../src/uvc_h264.c:907 +#: ../guvcview/gui_gtk3_h264ctrls.c:878 msgid "Slice Mode:" msgstr "" -#: ../src/uvc_h264.c:914 +#: ../guvcview/gui_gtk3_h264ctrls.c:885 msgid "no multiple slices" msgstr "" -#: ../src/uvc_h264.c:916 +#: ../guvcview/gui_gtk3_h264ctrls.c:887 msgid "bits/slice" msgstr "" -#: ../src/uvc_h264.c:918 +#: ../guvcview/gui_gtk3_h264ctrls.c:889 msgid "Mbits/slice" msgstr "" -#: ../src/uvc_h264.c:920 +#: ../guvcview/gui_gtk3_h264ctrls.c:891 msgid "slices/frame" msgstr "" -#: ../src/uvc_h264.c:929 +#: ../guvcview/gui_gtk3_h264ctrls.c:900 msgid "Slice Units:" msgstr "" -#: ../src/uvc_h264.c:950 +#: ../guvcview/gui_gtk3_h264ctrls.c:921 +#, fuzzy msgid "Profile:" -msgstr "" +msgstr "Profiel opslaan" -#: ../src/uvc_h264.c:957 +#: ../guvcview/gui_gtk3_h264ctrls.c:928 +#, fuzzy msgid "Baseline Profile" -msgstr "" +msgstr "Profiel opslaan" -#: ../src/uvc_h264.c:959 +#: ../guvcview/gui_gtk3_h264ctrls.c:930 +#, fuzzy msgid "Main Profile" -msgstr "" +msgstr "Profiel opslaan" -#: ../src/uvc_h264.c:961 +#: ../guvcview/gui_gtk3_h264ctrls.c:932 +#, fuzzy msgid "High Profile" -msgstr "" +msgstr "Profiel opslaan" -#: ../src/uvc_h264.c:963 +#: ../guvcview/gui_gtk3_h264ctrls.c:934 msgid "Scalable Baseline Profile" msgstr "" -#: ../src/uvc_h264.c:965 +#: ../guvcview/gui_gtk3_h264ctrls.c:936 +#, fuzzy msgid "Scalable High Profile" -msgstr "" +msgstr "Profiel opslaan" -#: ../src/uvc_h264.c:967 +#: ../guvcview/gui_gtk3_h264ctrls.c:938 msgid "Multiview High Profile" msgstr "" -#: ../src/uvc_h264.c:969 +#: ../guvcview/gui_gtk3_h264ctrls.c:940 +#, fuzzy msgid "Stereo High Profile" -msgstr "" +msgstr "Profiel opslaan" -#: ../src/uvc_h264.c:1008 +#: ../guvcview/gui_gtk3_h264ctrls.c:979 msgid "Profile flags:" msgstr "" -#: ../src/uvc_h264.c:1033 +#: ../guvcview/gui_gtk3_h264ctrls.c:1004 msgid "(I) Frame Period (ms):" msgstr "" -#: ../src/uvc_h264.c:1054 +#: ../guvcview/gui_gtk3_h264ctrls.c:1025 msgid "Estimated Video Delay (ms):" msgstr "" -#: ../src/uvc_h264.c:1075 +#: ../guvcview/gui_gtk3_h264ctrls.c:1046 msgid "Estimated Max Config Delay (ms):" msgstr "" -#: ../src/uvc_h264.c:1096 +#: ../guvcview/gui_gtk3_h264ctrls.c:1067 msgid "Usage Type:" msgstr "" -#: ../src/uvc_h264.c:1103 +#: ../guvcview/gui_gtk3_h264ctrls.c:1074 msgid "Real-time" msgstr "" -#: ../src/uvc_h264.c:1105 +#: ../guvcview/gui_gtk3_h264ctrls.c:1076 msgid "Broadcast" msgstr "" -#: ../src/uvc_h264.c:1107 +#: ../guvcview/gui_gtk3_h264ctrls.c:1078 msgid "Storage" msgstr "" -#: ../src/uvc_h264.c:1109 +#: ../guvcview/gui_gtk3_h264ctrls.c:1080 msgid "(0) Non-scalable single layer AVC" msgstr "" -#: ../src/uvc_h264.c:1111 +#: ../guvcview/gui_gtk3_h264ctrls.c:1082 msgid "(1) SVC temporal scalability with hierarchical P" msgstr "" -#: ../src/uvc_h264.c:1113 +#: ../guvcview/gui_gtk3_h264ctrls.c:1084 msgid "(2q) SVC temporal scalability + Quality/SNR scalability" msgstr "" -#: ../src/uvc_h264.c:1115 +#: ../guvcview/gui_gtk3_h264ctrls.c:1086 msgid "(2s) SVC temporal scalability + spatial scalability" msgstr "" -#: ../src/uvc_h264.c:1117 +#: ../guvcview/gui_gtk3_h264ctrls.c:1088 msgid "(3) Full SVC scalability" msgstr "" -#: ../src/uvc_h264.c:1131 +#: ../guvcview/gui_gtk3_h264ctrls.c:1102 msgid "SNR Control Mode:" msgstr "" -#: ../src/uvc_h264.c:1138 +#: ../guvcview/gui_gtk3_h264ctrls.c:1109 msgid "No SNR Enhancement Layer" msgstr "" -#: ../src/uvc_h264.c:1140 +#: ../guvcview/gui_gtk3_h264ctrls.c:1111 msgid "CGS NonRewrite (2 Layer)" msgstr "" -#: ../src/uvc_h264.c:1142 +#: ../guvcview/gui_gtk3_h264ctrls.c:1113 msgid "CGS NonRewrite (3 Layer)" msgstr "" -#: ../src/uvc_h264.c:1144 +#: ../guvcview/gui_gtk3_h264ctrls.c:1115 msgid "CGS Rewrite (2 Layer)" msgstr "" -#: ../src/uvc_h264.c:1146 +#: ../guvcview/gui_gtk3_h264ctrls.c:1117 msgid "CGS Rewrite (3 Layer)" msgstr "" -#: ../src/uvc_h264.c:1148 +#: ../guvcview/gui_gtk3_h264ctrls.c:1119 msgid "MGS (2 Layer)" msgstr "" -#: ../src/uvc_h264.c:1173 +#: ../guvcview/gui_gtk3_h264ctrls.c:1144 msgid "Stream Mux Enable" msgstr "" -#: ../src/uvc_h264.c:1180 +#: ../guvcview/gui_gtk3_h264ctrls.c:1151 msgid "Embed H.264 aux stream" msgstr "" -#: ../src/uvc_h264.c:1182 +#: ../guvcview/gui_gtk3_h264ctrls.c:1153 msgid "Embed YUY2 aux stream" msgstr "" -#: ../src/uvc_h264.c:1184 +#: ../guvcview/gui_gtk3_h264ctrls.c:1155 msgid "Embed NV12 aux stream" msgstr "" -#: ../src/uvc_h264.c:1204 +#: ../guvcview/gui_gtk3_h264ctrls.c:1175 msgid "MJPG payload container" msgstr "" -#: ../src/uvc_h264.c:1219 +#: ../guvcview/gui_gtk3_h264ctrls.c:1189 +#, fuzzy msgid "Stream Format:" -msgstr "" +msgstr "Bestandtype:" -#: ../src/uvc_h264.c:1227 +#: ../guvcview/gui_gtk3_h264ctrls.c:1197 msgid "Byte stream format (H.264 Annex-B)" msgstr "" -#: ../src/uvc_h264.c:1229 +#: ../guvcview/gui_gtk3_h264ctrls.c:1199 +#, fuzzy msgid "NAL stream format" -msgstr "" +msgstr "AVI - aviformaat" -#: ../src/uvc_h264.c:1240 +#: ../guvcview/gui_gtk3_h264ctrls.c:1210 msgid "Entropy CABAC:" msgstr "" -#: ../src/uvc_h264.c:1248 +#: ../guvcview/gui_gtk3_h264ctrls.c:1218 msgid "CAVLC" msgstr "" -#: ../src/uvc_h264.c:1261 +#: ../guvcview/gui_gtk3_h264ctrls.c:1231 msgid "Picture timing SEI" msgstr "" -#: ../src/uvc_h264.c:1268 +#: ../guvcview/gui_gtk3_h264ctrls.c:1238 +#, fuzzy msgid "B Frames:" -msgstr "" +msgstr "max B frames: " -#: ../src/uvc_h264.c:1293 +#: ../guvcview/gui_gtk3_h264ctrls.c:1263 msgid "Preview Flipped" msgstr "" -#: ../src/uvc_h264.c:1300 +#: ../guvcview/gui_gtk3_h264ctrls.c:1270 msgid "Additional MVC Views:" msgstr "" -#: ../src/uvc_h264.c:1325 +#: ../guvcview/gui_gtk3_h264ctrls.c:1295 msgid "Simulcast stream index:" msgstr "" -#: ../src/uvc_h264.c:1350 +#: ../guvcview/gui_gtk3_h264ctrls.c:1320 msgid "Spatial Layer Ratio:" msgstr "" -#: ../src/uvc_h264.c:1379 +#: ../guvcview/gui_gtk3_h264ctrls.c:1349 msgid "Leaky Bucket Size (ms):" msgstr "" #. encoder reset -#: ../src/uvc_h264.c:1406 +#: ../guvcview/gui_gtk3_h264ctrls.c:1376 +#, fuzzy msgid "Encoder Reset" -msgstr "" +msgstr "Meedraaien terugzetten op standaardwaarden" -#. -#. h264_controls->probe_button = gtk_button_new_with_label(_("PROBE")); -#. g_signal_connect (GTK_BUTTON(h264_controls->probe_button), "clicked", +#. +#. GtkWidget *probe_button = gtk_button_new_with_label(_("PROBE")); +#. g_signal_connect (GTK_BUTTON(probe_button), "clicked", #. G_CALLBACK (h264_probe_button_clicked), all_data); -#. -#. gtk_grid_attach (GTK_GRID(table), h264_controls->probe_button, 0, line, 1 ,1); -#. gtk_widget_show(h264_controls->probe_button); -#. -#: ../src/uvc_h264.c:1421 +#. +#. gtk_grid_attach (GTK_GRID(h264_controls_grid), probe_button, 0, line, 1 ,1); +#. gtk_widget_show(probe_button); +#. +#: ../guvcview/gui_gtk3_h264ctrls.c:1391 msgid "COMMIT" msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:70 +msgid "Settings" +msgstr "Instellingen" + +#: ../guvcview/gui_gtk3_menu.c:73 +msgid "Hardware Defaults" +msgstr "Apparatuurstandaarden" + +#: ../guvcview/gui_gtk3_menu.c:81 +msgid "Camera Button" +msgstr "Cameraknop" + +#: ../guvcview/gui_gtk3_menu.c:86 +msgid "Capture Image" +msgstr "Afbeelding vastleggen" + +#: ../guvcview/gui_gtk3_menu.c:91 +msgid "Capture Video" +msgstr "Video vastleggen" + +#: ../guvcview/gui_gtk3_menu.c:134 +msgid "Photo" +msgstr "Foto" + +#: ../guvcview/gui_gtk3_menu.c:135 ../guvcview/gui_gtk3_menu.c:159 +msgid "File" +msgstr "Bestand" + +#: ../guvcview/gui_gtk3_menu.c:136 ../guvcview/gui_gtk3_menu.c:160 +msgid "Increment Filename" +msgstr "Bestandnaam aanvullen" + +#: ../guvcview/gui_gtk3_menu.c:158 +msgid "Video" +msgstr "Video" + +#: ../guvcview/gui_gtk3_menu.c:175 +msgid "Video Codec" +msgstr "Videocodec" + +#: ../guvcview/gui_gtk3_menu.c:202 +msgid "Video Codec Properties" +msgstr "Eigenschappen van videocodec" + +#: ../guvcview/gui_gtk3_menu.c:208 +msgid "Audio Codec" +msgstr "Audiocodec" + +#: ../guvcview/gui_gtk3_menu.c:235 +msgid "Audio Codec Properties" +msgstr "Eigenschappen van audiocodec" + +#: ../guvcview/gui_gtk3_v4l2ctrls.c:174 +msgid "Left" +msgstr "Links" + +#: ../guvcview/gui_gtk3_v4l2ctrls.c:175 +msgid "Right" +msgstr "Rechts" + +#: ../guvcview/gui_gtk3_v4l2ctrls.c:179 +msgid "Down" +msgstr "Omlaag" + +#: ../guvcview/gui_gtk3_v4l2ctrls.c:180 +msgid "Up" +msgstr "Omhoog" + +#. turn it into a menu control +#: ../guvcview/gui_gtk3_v4l2ctrls.c:296 +msgid "8 bit" +msgstr "8-bit" + +#: ../guvcview/gui_gtk3_v4l2ctrls.c:296 +msgid "12 bit" +msgstr "12-bit" + +#. add a virtual control for software autofocus +#: ../guvcview/gui_gtk3_v4l2ctrls.c:348 +msgid "Auto Focus (continuous)" +msgstr "Automatische scherpstelling (voortdurend)" + +#: ../guvcview/gui_gtk3_v4l2ctrls.c:349 +msgid "set Focus" +msgstr "scherpstelling instellen" + +#. control_widgets_list[n].widget2 = gtk_button_new_from_stock(GTK_STOCK_APPLY); +#. control_widgets_list[n].widget2= gtk_button_new_from_stock(GTK_STOCK_APPLY); +#. control_widgets_list[n].widget2 = gtk_button_new_from_stock(GTK_STOCK_APPLY); +#: ../guvcview/gui_gtk3_v4l2ctrls.c:433 ../guvcview/gui_gtk3_v4l2ctrls.c:456 +#: ../guvcview/gui_gtk3_v4l2ctrls.c:478 +#, fuzzy +msgid "_Apply" +msgstr "Toepassen" + +#: ../guvcview/gui_gtk3_videoctrls.c:144 +msgid "Frame Rate:" +msgstr "Beelden per seconde:" + +#: ../guvcview/gui_gtk3_videoctrls.c:204 +msgid "Resolution:" +msgstr "Resolutie:" + +#: ../guvcview/gui_gtk3_videoctrls.c:254 +msgid "Camera Output:" +msgstr "Camera-uitvoer:" + +#: ../guvcview/gui_gtk3_videoctrls.c:287 +msgid "---- Video Filters ----" +msgstr "---- Videofilters ----" + +#. Mirror FX +#: ../guvcview/gui_gtk3_videoctrls.c:307 +msgid " Mirror" +msgstr " Spiegelen" + +#. Upturn FX +#: ../guvcview/gui_gtk3_videoctrls.c:319 +msgid " Invert" +msgstr " Omdraaien" + +#. Negate FX +#: ../guvcview/gui_gtk3_videoctrls.c:331 +msgid " Negative" +msgstr " Negatief" + +#. Mono FX +#: ../guvcview/gui_gtk3_videoctrls.c:343 +msgid " Mono" +msgstr " Mono" + +#. Pieces FX +#: ../guvcview/gui_gtk3_videoctrls.c:356 +msgid " Pieces" +msgstr " Delen" + +#. Particles +#: ../guvcview/gui_gtk3_videoctrls.c:369 +msgid " Particles" +msgstr " Deeltjes" + +#: ../guvcview/options.c:51 +msgid "Print help" +msgstr "" + +#: ../guvcview/options.c:58 +#, fuzzy +msgid "Print version" +msgstr "Drukt versie af" + +#: ../guvcview/options.c:64 +msgid "LEVEL" +msgstr "" + +#: ../guvcview/options.c:65 +msgid "Set Verbosity level (def: 0)" +msgstr "" + +#: ../guvcview/options.c:71 +msgid "DEVICE" +msgstr "" + +#: ../guvcview/options.c:72 +#, fuzzy +msgid "Set device name (def: /dev/video0)" +msgstr "Te gebruiken video-apparaat [standaard: /dev/video0]" + +#: ../guvcview/options.c:78 +msgid "METHOD" +msgstr "" + +#: ../guvcview/options.c:79 +#, fuzzy +msgid "Set capture method [read | mmap (def)]" +msgstr "Opnamemethode (1-mmap (standaard) 2-read)" + +#: ../guvcview/options.c:85 +msgid "WIDTHxHEIGHT" +msgstr "" + +#: ../guvcview/options.c:86 +msgid "Request resolution (e.g 640x480)" +msgstr "" + +#: ../guvcview/options.c:92 +msgid "FOURCC" +msgstr "" + +#: ../guvcview/options.c:93 +msgid "Request format (e.g MJPG)" +msgstr "" + +#: ../guvcview/options.c:99 +msgid "RENDER_API" +msgstr "" + +#: ../guvcview/options.c:100 +msgid "Select render API (e.g none; sdl)" +msgstr "" + +#: ../guvcview/options.c:106 +msgid "AUDIO_API" +msgstr "" + +#: ../guvcview/options.c:107 +msgid "Select audio API (e.g none; port; pulse)" +msgstr "" + +#: ../guvcview/options.c:113 +msgid "AUDIO_DEVICE" +msgstr "" + +#: ../guvcview/options.c:114 +msgid "Select audio device index for selected api (0..N)" +msgstr "" + +#: ../guvcview/options.c:120 +msgid "GUI_API" +msgstr "" + +#: ../guvcview/options.c:121 +msgid "Select GUI API (e.g none; gtk3)" +msgstr "" + +#: ../guvcview/options.c:127 ../guvcview/options.c:134 +msgid "CODEC" +msgstr "" + +#: ../guvcview/options.c:128 +msgid "Audio codec [pcm mp2 mp3 aac ac3 vorb]" +msgstr "" + +#: ../guvcview/options.c:135 +msgid "Video codec [raw mjpg mpeg flv1 wmv1 mpg2 mp43 dx50 h264 vp80 theo]" +msgstr "" + +#: ../guvcview/options.c:141 ../guvcview/options.c:148 +#: ../guvcview/options.c:155 +msgid "FILENAME" +msgstr "" + +#: ../guvcview/options.c:142 +#, fuzzy +msgid "load control profile" +msgstr "Profiel laden" + +#: ../guvcview/options.c:149 +msgid "filename for captured video)" +msgstr "" + +#: ../guvcview/options.c:156 +msgid "filename for captured image)" +msgstr "" + +#: ../guvcview/options.c:162 ../guvcview/options.c:169 +msgid "TIME_IN_SEC" +msgstr "" + +#: ../guvcview/options.c:163 +msgid "time (double) in sec. for video capture)" +msgstr "" + +#: ../guvcview/options.c:170 +msgid "time (double) in sec. between captured photos)" +msgstr "" + +#: ../guvcview/options.c:176 +msgid "TOTAL" +msgstr "" + +#: ../guvcview/options.c:177 +msgid "total number of captured photos)" +msgstr "" + +#: ../guvcview/options.c:184 +msgid "Start in control panel mode" +msgstr "" + +#: ../guvcview/options.c:307 +#, fuzzy, c-format +msgid "" +"Guvcview version %s\n" +"\n" +msgstr "Guvcview -waarschuwing:" + +#: ../guvcview/options.c:308 +#, c-format +msgid "" +"Usage:\n" +" guvcview [OPTIONS]\n" +"\n" +msgstr "" + +#: ../guvcview/options.c:309 +#, c-format +msgid "OPTIONS:\n" +msgstr "" + +#: ../guvcview/video_capture.c:819 +#, fuzzy, c-format +msgid "saving video to %s" +msgstr "video wordt vastgelegd naar" + +#. if(debug_level > 1) +#. printf("GUVCVIEW: saving image to %s\n", img_filename); +#: ../guvcview/video_capture.c:1069 +#, c-format +msgid "saving image to %s" +msgstr "" + +#~ msgid "MPEG2 - (lavc)" +#~ msgstr "MPEG2 - (lavc)" + +#~ msgid "MP3 - (lavc)" +#~ msgstr "MP3 - (lavc)" + +#~ msgid "Dolby AC3 - (lavc)" +#~ msgstr "Dolby AC3 - (lavc)" + +#~ msgid "ACC Low - (faac)" +#~ msgstr "ACC Low - (faac)" + +#~ msgid "Audio" +#~ msgstr "Audio" + +#~ msgid " Sound" +#~ msgstr " Geluid" + +#~ msgid " Show VU meter" +#~ msgstr " VU-meter tonen" + +#~ msgid "---- Audio Effects ----" +#~ msgstr "---- Audio-effecten ----" + +#~ msgid "Save File" +#~ msgstr "Bestand opslaan" + +#~ msgid "codec values" +#~ msgstr "codecwaarden" + +#~ msgid "capturing photo to" +#~ msgstr "foto wordt vastgelegd naar" + +#~ msgid "Cap. Video" +#~ msgstr "Video opn." + +#~ msgid "GUVCViewer Controls" +#~ msgstr "GUVCkijker bedieningsknoppen" + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to open device" +#~ msgstr "" +#~ "Guvcview-fout:\n" +#~ "\n" +#~ "Kan apparaat niet openen" + +#~ msgid "" +#~ "Please make sure the camera is connected\n" +#~ "and that the correct driver is installed." +#~ msgstr "" +#~ "Zorg er a.u.b. voor, dat de camera is verbonden\n" +#~ "en dat het juiste stuurprogramma is geĂŻnstalleerd." + +#~ msgid "" +#~ "Guvcview:\n" +#~ "\n" +#~ "UVC Extension controls" +#~ msgstr "" +#~ "Guvcview:\n" +#~ "\n" +#~ "Bedieningsknoppen voor UVC Extensie" + +#~ msgid "Extension controls were added to the UVC driver" +#~ msgstr "" +#~ "Bedieningsknoppen voor extensie werden toegevoegd aan het UVC-" +#~ "stuurprogramma" + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "UVC Extension controls" +#~ msgstr "" +#~ "Guvcview-fout:\n" +#~ "\n" +#~ "Bedieningsknoppen voor UVC Extensie" + +#~ msgid "" +#~ "An error occurred while adding extension\n" +#~ "controls to the UVC driver\n" +#~ "Make sure you run guvcview as root (or sudo)." +#~ msgstr "" +#~ "Er is een fout opgetreden tijdens het\n" +#~ "toevoegen van bedieningsknoppen aan\n" +#~ "het UVC-stuurprogramma.\n" +#~ "Zorg ervoor dat u guvcview draait als root\n" +#~ "(of met sudo)." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Can't set a valid video stream for guvcview" +#~ msgstr "" +#~ "Guvcview-fout:\n" +#~ "\n" +#~ "Kan geen geldige videostroom instellen voor guvcview" + +#~ msgid "" +#~ "Make sure your device driver is v4l2 compliant\n" +#~ "and that it is properly installed." +#~ msgstr "" +#~ "Zorg ervoor dat het stuurprogramma van uw\n" +#~ "apparaat voldoet aan v4l2 en dat het\n" +#~ "correct is geĂŻnstalleerd." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to start with minimum setup" +#~ msgstr "" +#~ "Guvcview-fout:\n" +#~ "\n" +#~ "Kan niet opstarten met minimale\n" +#~ "instellingen" + +#~ msgid "Please reconnect your camera." +#~ msgstr "Sluit uw camera opnieuw aan a.u.b." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Couldn't query device capabilities" +#~ msgstr "" +#~ "Guvcview-fout:\n" +#~ "\n" +#~ "Kon de capaciteiten van het\n" +#~ "apparaat niet opvragen" + +#~ msgid "Make sure the device driver supports v4l2." +#~ msgstr "Zorg ervoor dat het stuurprogramma v4l2 ondersteunt." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Read method error" +#~ msgstr "" +#~ "Guvcview-fout:\n" +#~ "\n" +#~ "Leesmethodefout" + +#~ msgid "Please try mmap instead (--capture_method=1)." +#~ msgstr "Probeer in plaats daarvan a.u.b. mmap (--capture_method=1)." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to allocate Buffers" +#~ msgstr "" +#~ "Guvcview-fout:\n" +#~ "\n" +#~ "Kan geen buffers toewijzen" + +#~ msgid "Please try restarting your system." +#~ msgstr "Probeer a.u.b. of het helpt wanneer u uw systeem herstart." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to create Video Thread" +#~ msgstr "" +#~ "Guvcview-fout:\n" +#~ "\n" +#~ "Kan geen videodraad maken" + +#~ msgid "Please report it to http://developer.berlios.de/bugs/?group_id=8179" +#~ msgstr "Meld het a.u.b. aan http://developer.berlios.de/bugs/?group_id=8179" + +#~ msgid "Bitmap (Bmp)" +#~ msgstr "Bitmap (Bmp)" + +#~ msgid "Portable Network Graphics (Png)" +#~ msgstr "Portable Network Graphics (Png)" + +#~ msgid "Displays debug information" +#~ msgstr "Toont foutopsporingsinformatie" + +#~ msgid "Exit after adding UVC extension controls (needs root/sudo)" +#~ msgstr "" +#~ "Afsluiten na het toevoegen van bedieningsknoppen voor UVC-extensie (heeft " +#~ "root/sudo nodig)" + +#~ msgid "Don't stream video (image controls only)" +#~ msgstr "Maak geen videostroom (alleen fotobedieningsknoppen)" + +#~ msgid "Don't display a GUI" +#~ msgstr "Toon geen grafische schil" + +#~ msgid "Configuration file" +#~ msgstr "Configuratiebestand" + +#~ msgid "Hardware accelaration (enable(1) | disable(0))" +#~ msgstr "Hardwareversnelling (aan(1) | uit(0))" + +#~ msgid "" +#~ "Pixel format(mjpg|jpeg|yuyv|yvyu|uyvy|yyuv|yu12|yv12|nv12|nv21|nv16|nv61|" +#~ "y41p|grey|y10b|y16 |s501|s505|s508|gbrg|grbg|ba81|rggb|bgr3|rgb3)" +#~ msgstr "" +#~ "Pixel format(mjpg|jpeg|yuyv|yvyu|uyvy|yyuv|yu12|yv12|nv12|nv21|nv16|nv61|" +#~ "y41p|grey|y10b|y16 |s501|s505|s508|gbrg|grbg|ba81|rggb|bgr3|rgb3)" + +#~ msgid "Frame size, default: 640x480" +#~ msgstr "Beeldgrootte, standaard: 640x480" + +#~ msgid "Image capture interval in seconds" +#~ msgstr "Tussenpoze tussen foto's maken, in seconden" + +#~ msgid "Number of Pictures to capture" +#~ msgstr "Aantal te maken foto's" + +#~ msgid "Video File name (capture from start)" +#~ msgstr "Naam van videobestand (opnemen vanaf begin)" + +#~ msgid "Video capture time (in seconds)" +#~ msgstr "Video-opnametijd (in seconden)" + +#~ msgid "Exits guvcview after closing video" +#~ msgstr "Sluit guvcview af na sluiten van film" + +#~ msgid "Number of initial frames to skip" +#~ msgstr "Aantal filmbeeldjes dat in het begin moet worden overgeslagen" + +#~ msgid "Show FPS value (enable(1) | disable (0))" +#~ msgstr "Toon FPS-waarde (aan(1) | uit (0))" + +#~ msgid "Load Profile at start" +#~ msgstr "Profiel laden bij start" + +#~ msgid "- local options" +#~ msgstr "- plaatselijke opties" + +#~ msgid "Cap. Image" +#~ msgstr "Foto maken" + +#~ msgid "Not enough free space left on disk" +#~ msgstr "Niet genoeg vrije ruimte over op schijf" + +#~ msgid "YUY2 - uncomp YUV" +#~ msgstr "YUY2 - ongecomp YUV" + +#~ msgid "RGB - uncomp BMP" +#~ msgstr "RGB - ongecomp BMP" + +#~ msgid "MKV - Matroska format" +#~ msgstr "MKV - Matroskaformaat" + +#~ msgid "WEBM - format" +#~ msgstr "WEBM - formaat" + +#~ msgid " Show" +#~ msgstr " Tonen" + +#~ msgid "Quality:" +#~ msgstr "Kwaliteit:" diff -Nru guvcview-1.7.3/po/pl.po guvcview-2.0.1+ubuntu1~ppa1/po/pl.po --- guvcview-1.7.3/po/pl.po 2014-03-24 22:56:28.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/po/pl.po 2014-10-05 10:41:44.000000000 +0000 @@ -7,1408 +7,1531 @@ msgstr "" "Project-Id-Version: guvcview\n" "Report-Msgid-Bugs-To: pj.assis@gmail.com\n" -"POT-Creation-Date: 2013-11-14 22:15+0000\n" +"POT-Creation-Date: 2014-08-17 22:49+0100\n" "PO-Revision-Date: 2013-02-25 05:33+0000\n" "Last-Translator: Adam Czabara \n" "Language-Team: Polish \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-12-08 10:36+0000\n" -"X-Generator: Launchpad (build 16869)\n" -"Language: pl\n" - -#: ../data/guvcview.desktop.in.in.h:1 -msgid "guvcview" -msgstr "" - -#: ../data/guvcview.desktop.in.in.h:2 -msgid "GTK UVC video viewer" -msgstr "" - -#: ../data/guvcview.desktop.in.in.h:3 -msgid "A video viewer and capturer for the linux uvc driver" -msgstr "" - -#: ../src/acodecs.c:59 -msgid "PCM - uncompressed (16 bit)" -msgstr "" - -#: ../src/acodecs.c:76 -msgid "MPEG2 - (lavc)" -msgstr "" - -#: ../src/acodecs.c:93 -msgid "MP3 - (lavc)" -msgstr "" - -#: ../src/acodecs.c:110 -msgid "Dolby AC3 - (lavc)" -msgstr "" - -#: ../src/acodecs.c:127 -msgid "ACC Low - (faac)" -msgstr "" - -#: ../src/acodecs.c:144 -msgid "Vorbis" -msgstr "" - -#: ../src/audio_tab.c:87 -msgid "Audio" -msgstr "Audio" - -#: ../src/audio_tab.c:105 -msgid " Sound" -msgstr " DĆșwięk" - -#. VU meter on the image (OSD) -#: ../src/audio_tab.c:116 -msgid " Show VU meter" -msgstr "" - -#: ../src/audio_tab.c:128 -msgid "Audio API:" -msgstr "Audio API:" - -#: ../src/audio_tab.c:139 -msgid "PORTAUDIO" -msgstr "PORTAUDIO" - -#: ../src/audio_tab.c:140 -msgid "PULSEAUDIO" -msgstr "PULSEAUDIO" - -#: ../src/audio_tab.c:156 ../src/audio_tab.c:179 -msgid "Input Device:" -msgstr "Urządzenie wejƛcia:" - -#: ../src/audio_tab.c:189 ../src/audio_tab.c:221 -msgid "Dev. Default" -msgstr "Urzadzenie domyƛlne" - -#: ../src/audio_tab.c:211 -msgid "Sample Rate:" -msgstr "PrĂłbkowanie audio:" - -#: ../src/audio_tab.c:222 -msgid "1 - mono" -msgstr "1 - mono" - -#: ../src/audio_tab.c:223 -msgid "2 - stereo" -msgstr "2 - stereo" - -#: ../src/audio_tab.c:258 -msgid "Channels:" -msgstr "KanaƂy:" - -#: ../src/audio_tab.c:309 -msgid "---- Audio Effects ----" -msgstr "---- Efekty audio ----" - -#. Echo -#: ../src/audio_tab.c:328 -msgid " Echo" -msgstr " Echo" - -#. FUZZ -#: ../src/audio_tab.c:339 -msgid " Fuzz" -msgstr "" - -#. Reverb -#: ../src/audio_tab.c:351 -msgid " Reverb" -msgstr "" - -#. WahWah -#: ../src/audio_tab.c:363 -msgid " WahWah" -msgstr "" - -#. Ducky -#: ../src/audio_tab.c:375 -msgid " Ducky" -msgstr "" - -#: ../src/callbacks.c:109 -msgid "Error" -msgstr "" - -#: ../src/callbacks.c:133 -msgid "" -"\n" -"You have more than one video device installed.\n" -"Do you want to try another one ?\n" -msgstr "" - -#. Devices -#: ../src/callbacks.c:140 ../src/video_tab.c:111 -msgid "Device:" -msgstr "Urządzenie:" - -#: ../src/callbacks.c:272 -msgid "Save File" -msgstr "Zapisz Plik" - -#: ../src/callbacks.c:284 -msgid "File Format:" -msgstr "" - -#: ../src/callbacks.c:455 -msgid "codec values" -msgstr "wartoƛci kodekĂłw" - -#: ../src/callbacks.c:466 -msgid "" -" encoder fps: \n" -" (0 - use fps combobox value)" -msgstr "" -" enkoder fps: \n" -" (0 - uĆŒycie wartoƛci fps combobox)" - -#: ../src/callbacks.c:479 -msgid " monotonic pts" -msgstr "" - -#. bit rate -#: ../src/callbacks.c:486 ../src/callbacks.c:809 -msgid "bit rate: " -msgstr "bit rate: " - -#: ../src/callbacks.c:499 -msgid "qmax: " -msgstr "qmaks: " - -#: ../src/callbacks.c:512 -msgid "qmin: " -msgstr "qmin: " - -#: ../src/callbacks.c:525 -msgid "max. qdiff: " -msgstr "max. qdiff: " - -#: ../src/callbacks.c:538 -msgid "dia size: " -msgstr "rozmiar dia: " - -#: ../src/callbacks.c:551 -msgid "pre dia size: " -msgstr "rozmiar pre dia: " - -#: ../src/callbacks.c:564 -msgid "pre me: " -msgstr "pre me: " - -#: ../src/callbacks.c:577 -msgid "pre cmp: " -msgstr "pre cmp: " - -#: ../src/callbacks.c:590 -msgid "cmp: " -msgstr "cmp: " - -#: ../src/callbacks.c:603 -msgid "sub cmp: " -msgstr "sub cmp: " - -#: ../src/callbacks.c:616 -msgid "last predictor count: " -msgstr "" - -#: ../src/callbacks.c:629 -msgid "gop size: " -msgstr "rozmiar gop: " - -#: ../src/callbacks.c:642 -msgid "qcompress: " -msgstr "" - -#: ../src/callbacks.c:655 -msgid "qblur: " -msgstr "qblur: " - -#: ../src/callbacks.c:668 -msgid "subq: " -msgstr "subq: " - -#: ../src/callbacks.c:681 -msgid "framerefs: " -msgstr "" - -#: ../src/callbacks.c:694 -msgid "me method: " -msgstr "" - -#: ../src/callbacks.c:707 -msgid "mb decision: " -msgstr "" - -#: ../src/callbacks.c:720 -msgid "max B frames: " -msgstr "max klatek B: " - -#: ../src/callbacks.c:733 -msgid "num threads: " -msgstr "" - -#: ../src/callbacks.c:796 -msgid "audio codec values" -msgstr "wartoƛci kodeka audio" - -#. sample format -#: ../src/callbacks.c:823 -msgid "sample format: " -msgstr "" - -#: ../src/callbacks.c:1311 -msgid "start new" -msgstr "" - -#: ../src/callbacks.c:1314 -msgid "restart" -msgstr "" - -#: ../src/callbacks.c:1316 -msgid "new" -msgstr "" - -#: ../src/callbacks.c:1318 -msgid "cancel" -msgstr "" - -#: ../src/callbacks.c:1323 -msgid "" -"launch new process or restart?.\n" -"\n" -msgstr "" - -#: ../src/callbacks.c:1780 ../src/guvcview.c:565 -msgid "Cap. Image (I)" -msgstr "Przechwycenie obrazu (I)" - -#. disable image controls -#: ../src/callbacks.c:1791 ../src/guvcview.c:690 ../src/timers.c:101 -msgid "capturing photo to" -msgstr "" - -#: ../src/callbacks.c:1850 ../src/guvcview.c:575 -msgid "Cap. Video (V)" -msgstr "Przechwicenie Wideo (V)" - -#: ../src/callbacks.c:1876 ../src/guvcview.c:740 -msgid "capturing video to" -msgstr "" - -#. vid capture enabled from start -#: ../src/callbacks.c:1911 ../src/guvcview.c:570 -msgid "Stop Video (V)" -msgstr "Stop Video (V)" - -#: ../src/callbacks.c:1967 ../src/menubar.c:66 -msgid "Save Profile" -msgstr "" - -#: ../src/callbacks.c:1980 ../src/menubar.c:65 -msgid "Load Profile" -msgstr "" - -#: ../src/create_video.c:1098 ../src/guvcview.c:732 -msgid "Cap. Video" -msgstr "Przechwicenie Wideo" - -#: ../src/guvcview.c:280 -msgid "Guvcview Video Capture" -msgstr "Przechwytywanie wideo Guvcview" - -#: ../src/guvcview.c:292 -msgid "GUVCViewer Controls" -msgstr "Kontrolki GUVCViewer" - -#. can't open device -#: ../src/guvcview.c:342 -msgid "" -"Guvcview error:\n" -"\n" -"Unable to open device" -msgstr "" -"BƂąd Guvcview:\n" -"\n" -"Nie moĆŒna otworzyć urządzenia" - -#: ../src/guvcview.c:343 -msgid "" -"Please make sure the camera is connected\n" -"and that the correct driver is installed." -msgstr "" -"Proszę się upewnić, czy kamera jest podƂączona\n" -"oraz czy jest zainstalowany odpowiedni sterownik." - -#. uvc extension controls OK, give warning and shutdown (called with --add_ctrls) -#: ../src/guvcview.c:348 -msgid "" -"Guvcview:\n" -"\n" -"UVC Extension controls" -msgstr "" -"Guvcview:\n" -"\n" -"Kontrolki rozszerzenia UVC" - -#: ../src/guvcview.c:349 -msgid "Extension controls were added to the UVC driver" -msgstr "Kontrolki rozszerzenia zostaƂy dodane do steronika UVC" - -#. uvc extension controls error - EACCES (needs root user) -#: ../src/guvcview.c:356 -msgid "" -"Guvcview error:\n" -"\n" -"UVC Extension controls" -msgstr "" -"BƂąd Guvcview:\n" -"\n" -"Kontrolki rozszerzenia UVC" - -#: ../src/guvcview.c:357 -msgid "" -"An error occurred while adding extension\n" -"controls to the UVC driver\n" -"Make sure you run guvcview as root (or sudo)." -msgstr "" -"WystąpiƂ bƂąd podczas dodawania kontrolek\n" -"rozszerzenia sterownika UVC\n" -"Guvciew musi być uruchomiony w trybie root(lub sudo)." - -#: ../src/guvcview.c:391 ../src/guvcview.c:399 ../src/guvcview.c:477 -msgid "" -"Guvcview error:\n" -"\n" -"Can't set a valid video stream for guvcview" -msgstr "" -"BƂąd Guvcview:\n" -"Nie moĆŒna ustanowić prawidƂowego strumienia wideo dla guvcview" - -#: ../src/guvcview.c:392 ../src/guvcview.c:400 ../src/guvcview.c:478 -msgid "" -"Make sure your device driver is v4l2 compliant\n" -"and that it is properly installed." -msgstr "" -"Upewnij się, ĆŒe twoje urządzenie jest kompatybilne z v4l2\n" -"i jest poprawnie zainstalowane." - -#: ../src/guvcview.c:422 ../src/guvcview.c:444 -msgid "" -"Guvcview error:\n" -"\n" -"Unable to start with minimum setup" -msgstr "" -"BƂąd Guvcview:\n" -"\n" -"Nie moĆŒna uruchomić minimalnej konfiguracji" - -#: ../src/guvcview.c:423 ../src/guvcview.c:445 -msgid "Please reconnect your camera." -msgstr "Ponownie podƂącz kamerę." - -#: ../src/guvcview.c:452 -msgid "" -"Guvcview error:\n" -"\n" -"Couldn't query device capabilities" -msgstr "" -"BƂąd Guvcview:\n" -"\n" -"Nie moĆŒna pobrać listy kompatybilnych urządzeƄ" - -#: ../src/guvcview.c:453 -msgid "Make sure the device driver supports v4l2." -msgstr "Upewnij się, ĆŒe urządzenie obsƂuguje v4l2." - -#: ../src/guvcview.c:457 -msgid "" -"Guvcview error:\n" -"\n" -"Read method error" -msgstr "" -"BƂąd Guvcview:\n" -"\n" -"BƂąd metody odczytu" - -#: ../src/guvcview.c:458 -msgid "Please try mmap instead (--capture_method=1)." -msgstr "Proszę sprĂłbować mmap zamiast (--capture_method=1)." - -#: ../src/guvcview.c:466 -msgid "" -"Guvcview error:\n" -"\n" -"Unable to allocate Buffers" -msgstr "" -"BƂąd Guvcview:\n" -"\n" -"BƂąd alokacji buforĂłw" - -#: ../src/guvcview.c:467 -msgid "Please try restarting your system." -msgstr "Proszę zrestartować system." - -#: ../src/guvcview.c:518 -msgid "Image Controls" -msgstr "Kontrola obrazu" - -#. image auto capture -#: ../src/guvcview.c:561 -msgid "Stop Auto (I)" -msgstr "Stop Auto (I)" - -#: ../src/guvcview.c:676 -msgid "" -"Guvcview error:\n" -"\n" -"Unable to create Video Thread" -msgstr "" -"BƂąd Guvcview:\n" -"\n" -"Nie moĆŒna utworzyć wątku wideo" - -#: ../src/guvcview.c:677 -msgid "Please report it to http://developer.berlios.de/bugs/?group_id=8179" -msgstr "Proszę zgƂosić na http://developer.berlios.de/bugs/?group_id=8179" - -#: ../src/img_controls.c:121 -msgid "Auto Focus (continuous)" -msgstr "" - -#: ../src/img_controls.c:122 -msgid "set Focus" -msgstr "" - -#: ../src/image_format.c:35 -msgid "Jpeg (jpg)" -msgstr "" - -#: ../src/image_format.c:41 -msgid "Bitmap (Bmp)" -msgstr "" - -#: ../src/image_format.c:47 -msgid "Portable Network Graphics (Png)" -msgstr "" - -#: ../src/image_format.c:53 -msgid "Raw Image (raw)" -msgstr "" - -#. controls menu -#: ../src/menubar.c:64 -msgid "Settings" -msgstr "" - -#: ../src/menubar.c:67 -msgid "Hardware Defaults" -msgstr "" - -#: ../src/menubar.c:75 -msgid "Camera Button" -msgstr "" - -#: ../src/menubar.c:79 -msgid "Capture Image" -msgstr "" - -#: ../src/menubar.c:84 -msgid "Capture Video" -msgstr "" - -#. video menu -#: ../src/menubar.c:144 ../src/video_tab.c:95 -msgid "Video" -msgstr "" - -#: ../src/menubar.c:145 ../src/menubar.c:233 -msgid "File" -msgstr "" - -#: ../src/menubar.c:146 ../src/menubar.c:234 -msgid "Increment Filename" -msgstr "" - -#: ../src/menubar.c:164 -msgid "Video Codec" -msgstr "" - -#: ../src/menubar.c:189 -msgid "Video Codec Properties" -msgstr "" - -#: ../src/menubar.c:196 -msgid "Audio Codec" -msgstr "" - -#: ../src/menubar.c:217 -msgid "Audio Codec Properties" -msgstr "" - -#. photo menu -#: ../src/menubar.c:232 -msgid "Photo" -msgstr "" - -#: ../src/options.c:753 -msgid "Prints version" -msgstr "" - -#: ../src/options.c:754 -msgid "Displays debug information" -msgstr "Wyƛwietlanie informacji debugowania" - -#: ../src/options.c:755 -msgid "Video Device to use [default: /dev/video0]" -msgstr "" - -#: ../src/options.c:756 -msgid "Exit after adding UVC extension controls (needs root/sudo)" -msgstr "" - -#: ../src/options.c:757 -msgid "Don't stream video (image controls only)" -msgstr "" - -#: ../src/options.c:758 -msgid "Don't display a GUI" -msgstr "" - -#: ../src/options.c:759 -msgid "Capture method (1-mmap (default) 2-read)" -msgstr "" - -#: ../src/options.c:760 -msgid "Configuration file" -msgstr "" - -#: ../src/options.c:761 -msgid "Hardware accelaration (enable(1) | disable(0))" -msgstr "" - -#: ../src/options.c:762 -msgid "" -"Pixel " -"format(mjpg|jpeg|yuyv|yvyu|uyvy|yyuv|yu12|yv12|nv12|nv21|nv16|nv61|y41p|grey|" -"y10b|y16 |s501|s505|s508|gbrg|grbg|ba81|rggb|bgr3|rgb3)" -msgstr "" - -#: ../src/options.c:763 -msgid "Frame size, default: 640x480" -msgstr "" - -#: ../src/options.c:764 -msgid "Image File name" -msgstr "" - -#: ../src/options.c:765 -msgid "Image capture interval in seconds" -msgstr "" - -#: ../src/options.c:766 -msgid "Number of Pictures to capture" -msgstr "" - -#: ../src/options.c:767 -msgid "Video File name (capture from start)" -msgstr "" - -#: ../src/options.c:768 -msgid "Video capture time (in seconds)" -msgstr "" - -#: ../src/options.c:769 -msgid "Exits guvcview after closing video" -msgstr "" - -#: ../src/options.c:770 -msgid "Number of initial frames to skip" -msgstr "" - -#: ../src/options.c:771 -msgid "Show FPS value (enable(1) | disable (0))" -msgstr "" - -#: ../src/options.c:772 -msgid "Load Profile at start" -msgstr "" - -#: ../src/options.c:773 -msgid "List controls method (0:loop, 1:next_ctrl flag [def])" -msgstr "" - -#: ../src/options.c:779 -msgid "- local options" -msgstr "" - -#. gdk_threads_enter(); -#: ../src/timers.c:119 -msgid "Cap. Image" -msgstr "Przechwycenie obrazu" - -#: ../src/timers.c:217 -msgid "Guvcview Warning:" -msgstr "" - -#: ../src/timers.c:217 -msgid "Not enough free space left on disk" -msgstr "" - -#: ../src/v4l2_controls.c:794 -msgid "Left" -msgstr "Lewy" - -#: ../src/v4l2_controls.c:795 -msgid "Right" -msgstr "Prawy" - -#: ../src/v4l2_controls.c:799 -msgid "Down" -msgstr "DóƂ" - -#: ../src/v4l2_controls.c:800 -msgid "Up" -msgstr "GĂłra" - -#: ../src/v4l2_controls.c:845 -msgid "Off" -msgstr "" - -#: ../src/v4l2_controls.c:845 -msgid "On" -msgstr "" - -#: ../src/v4l2_controls.c:845 -msgid "Blinking" -msgstr "" - -#: ../src/v4l2_controls.c:845 -msgid "Auto" -msgstr "" - -#. turn it into a menu control -#: ../src/v4l2_controls.c:894 -msgid "8 bit" -msgstr "" - -#: ../src/v4l2_controls.c:894 -msgid "12 bit" -msgstr "" - -#: ../src/v4l2_dyna_ctrls.c:96 -msgid "Pan (relative)" -msgstr "" - -#: ../src/v4l2_dyna_ctrls.c:109 -msgid "Tilt (relative)" -msgstr "" - -#: ../src/v4l2_dyna_ctrls.c:122 -msgid "Pan Reset" -msgstr "" - -#: ../src/v4l2_dyna_ctrls.c:135 -msgid "Tilt Reset" -msgstr "" +"Language: pl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2013-12-08 10:36+0000\n" +"X-Generator: Launchpad (build 16869)\n" -#: ../src/v4l2_dyna_ctrls.c:148 -msgid "Focus (absolute)" +#: ../data/guvcview.desktop.in.in.h:1 +msgid "guvcview" msgstr "" -#: ../src/v4l2_dyna_ctrls.c:161 -msgid "LED1 Mode" +#: ../data/guvcview.desktop.in.in.h:2 +msgid "GTK UVC video viewer" msgstr "" -#: ../src/v4l2_dyna_ctrls.c:174 -msgid "LED1 Frequency" +#: ../data/guvcview.desktop.in.in.h:3 +msgid "A video viewer and capturer for the linux uvc driver" msgstr "" -#: ../src/v4l2_dyna_ctrls.c:187 -msgid "Disable video processing" +#: ../data/guvcview.appdata.xml.in.in.h:1 +msgid "capture video from v4l2 devices" msgstr "" -#: ../src/v4l2_dyna_ctrls.c:200 -msgid "Raw bits per pixel" +#: ../data/guvcview.appdata.xml.in.in.h:2 +msgid "" +"Video capture tool for video4linux2 compliant cameras, with special emphasis " +"on the linux uvc driver. It provides Image (jpg, png, bmp) and Video (mjpeg, " +"flv1, wmv1, mpg2, mpg4,...) capture with sound in several " +"formats( currently: avi and matroska). I also supports a control panel " +"option (--control_only) that is compatible with any other v4l2 app." msgstr "" -#. needed only for language files (not used) +#. +#. * needed only for language files (not used) +#. #. V4L2 control strings -#: ../src/v4l2uvc.c:57 +#: ../gview_v4l2core/v4l2_controls.c:49 msgid "User Controls" msgstr "Kontrolki uĆŒytkownika" -#: ../src/v4l2uvc.c:58 +#: ../gview_v4l2core/v4l2_controls.c:50 msgid "Brightness" msgstr "Jasnoƛć:" -#: ../src/v4l2uvc.c:59 +#: ../gview_v4l2core/v4l2_controls.c:51 msgid "Contrast" msgstr "Kontrast" -#: ../src/v4l2uvc.c:60 +#: ../gview_v4l2core/v4l2_controls.c:52 msgid "Hue" msgstr "Barwa:" -#: ../src/v4l2uvc.c:61 +#: ../gview_v4l2core/v4l2_controls.c:53 msgid "Saturation" msgstr "Nasycenie" -#: ../src/v4l2uvc.c:62 +#: ../gview_v4l2core/v4l2_controls.c:54 msgid "Sharpness" msgstr "Ostroƛć" -#: ../src/v4l2uvc.c:63 +#: ../gview_v4l2core/v4l2_controls.c:55 msgid "Gamma" msgstr "Gamma" -#: ../src/v4l2uvc.c:64 +#: ../gview_v4l2core/v4l2_controls.c:56 msgid "Backlight Compensation" msgstr "Kompensacja oƛwietlenia tƂa" -#: ../src/v4l2uvc.c:65 +#: ../gview_v4l2core/v4l2_controls.c:57 msgid "Power Line Frequency" msgstr "Częstotliwoƛć lini zasilania" -#: ../src/v4l2uvc.c:66 +#: ../gview_v4l2core/v4l2_controls.c:58 msgid "Hue, Automatic" msgstr "Barwa: Automatycznie" -#: ../src/v4l2uvc.c:67 +#: ../gview_v4l2core/v4l2_controls.c:59 msgid "Focus, Auto" msgstr "Ostroƛć, Auto" -#: ../src/v4l2uvc.c:68 +#: ../gview_v4l2core/v4l2_controls.c:60 msgid "Manual Mode" msgstr "Tryb ręczny" -#: ../src/v4l2uvc.c:69 +#: ../gview_v4l2core/v4l2_controls.c:61 msgid "Auto Mode" msgstr "Tryb automatyczny" -#: ../src/v4l2uvc.c:70 +#: ../gview_v4l2core/v4l2_controls.c:62 msgid "Shutter Priority Mode" msgstr "Priorytet migwaki" -#: ../src/v4l2uvc.c:71 +#: ../gview_v4l2core/v4l2_controls.c:63 msgid "Aperture Priority Mode" msgstr "Priorytet przysƂony" -#: ../src/v4l2uvc.c:72 +#: ../gview_v4l2core/v4l2_controls.c:64 msgid "Black Level" msgstr "Poziom czerni" -#: ../src/v4l2uvc.c:73 +#: ../gview_v4l2core/v4l2_controls.c:65 msgid "White Balance, Automatic" msgstr "Automatyczny balans bieli" -#: ../src/v4l2uvc.c:74 +#: ../gview_v4l2core/v4l2_controls.c:66 msgid "Do White Balance" msgstr "Balans bieli" -#: ../src/v4l2uvc.c:75 +#: ../gview_v4l2core/v4l2_controls.c:67 msgid "Red Balance" msgstr "Balans czerwieni" -#: ../src/v4l2uvc.c:76 +#: ../gview_v4l2core/v4l2_controls.c:68 msgid "Blue Balance" msgstr "Balans niebieskiego" -#: ../src/v4l2uvc.c:77 +#: ../gview_v4l2core/v4l2_controls.c:69 msgid "Exposure" msgstr "Ekspozycja" -#: ../src/v4l2uvc.c:78 +#: ../gview_v4l2core/v4l2_controls.c:70 msgid "Gain, Automatic" msgstr "Automatyczna ziarnistoƛć" -#: ../src/v4l2uvc.c:79 +#: ../gview_v4l2core/v4l2_controls.c:71 msgid "Gain" msgstr "Wzmocnienie" -#: ../src/v4l2uvc.c:80 +#: ../gview_v4l2core/v4l2_controls.c:72 msgid "Horizontal Flip" msgstr "Odbicie poziome" -#: ../src/v4l2uvc.c:81 +#: ../gview_v4l2core/v4l2_controls.c:73 msgid "Vertical Flip" msgstr "Odbicie pionowe" -#: ../src/v4l2uvc.c:82 +#: ../gview_v4l2core/v4l2_controls.c:74 msgid "Horizontal Center" msgstr "Wyƛrodkowanie poziome" -#: ../src/v4l2uvc.c:83 +#: ../gview_v4l2core/v4l2_controls.c:75 msgid "Vertical Center" msgstr "Wyƛrodkowanie pionowe" -#: ../src/v4l2uvc.c:84 +#: ../gview_v4l2core/v4l2_controls.c:76 msgid "Chroma AGC" msgstr "Automatyczna kontrola kluczowania" -#: ../src/v4l2uvc.c:85 +#: ../gview_v4l2core/v4l2_controls.c:77 msgid "Color Killer" msgstr "Usunięcie koloru" -#: ../src/v4l2uvc.c:86 +#: ../gview_v4l2core/v4l2_controls.c:78 msgid "Color Effects" msgstr "Efekty kolorĂłw" #. CAMERA CLASS control strings -#: ../src/v4l2uvc.c:89 +#: ../gview_v4l2core/v4l2_controls.c:81 msgid "Camera Controls" msgstr "Kontrola kamery" -#: ../src/v4l2uvc.c:90 +#: ../gview_v4l2core/v4l2_controls.c:82 msgid "Auto Exposure" msgstr "Automatyczna ekspozycja" -#: ../src/v4l2uvc.c:91 +#: ../gview_v4l2core/v4l2_controls.c:83 msgid "Exposure Time, Absolute" msgstr "Absolutny czas ekspozycji" -#: ../src/v4l2uvc.c:92 +#: ../gview_v4l2core/v4l2_controls.c:84 msgid "Exposure, Dynamic Framerate" msgstr "dynamiczna iloƛc klatek/s ekspozycji" -#: ../src/v4l2uvc.c:93 +#: ../gview_v4l2core/v4l2_controls.c:85 msgid "Pan, Relative" msgstr "Względne Pan" -#: ../src/v4l2uvc.c:94 +#: ../gview_v4l2core/v4l2_controls.c:86 msgid "Tilt, Relative" msgstr "Przechylenie względne" -#: ../src/v4l2uvc.c:95 +#: ../gview_v4l2core/v4l2_controls.c:87 msgid "Pan, Reset" msgstr "Reset Pan" -#: ../src/v4l2uvc.c:96 +#: ../gview_v4l2core/v4l2_controls.c:88 msgid "Tilt, Reset" msgstr "Reset nachylenia" -#: ../src/v4l2uvc.c:97 +#: ../gview_v4l2core/v4l2_controls.c:89 msgid "Pan, Absolute" msgstr "Absolutny Pan" -#: ../src/v4l2uvc.c:99 +#: ../gview_v4l2core/v4l2_controls.c:91 msgid "Focus, Absolute" msgstr "Ostroƛc absolutna" -#: ../src/v4l2uvc.c:100 +#: ../gview_v4l2core/v4l2_controls.c:92 msgid "Focus, Relative" msgstr "Ostroƛć względna" -#: ../src/v4l2uvc.c:101 +#: ../gview_v4l2core/v4l2_controls.c:93 msgid "Focus, Automatic" msgstr "Automatyczna ostroƛć" -#: ../src/v4l2uvc.c:102 +#: ../gview_v4l2core/v4l2_controls.c:94 msgid "Zoom, Absolute" msgstr "Absolutny zoom" -#: ../src/v4l2uvc.c:103 +#: ../gview_v4l2core/v4l2_controls.c:95 msgid "Zoom, Relative" msgstr "Względny zoom" -#: ../src/v4l2uvc.c:104 +#: ../gview_v4l2core/v4l2_controls.c:96 msgid "Zoom, Continuous" msgstr "Zoom ciągƂy" -#: ../src/v4l2uvc.c:105 +#: ../gview_v4l2core/v4l2_controls.c:97 msgid "Privacy" msgstr "Prywatnoƛć" #. UVC specific control strings -#: ../src/v4l2uvc.c:108 +#: ../gview_v4l2core/v4l2_controls.c:100 msgid "Exposure, Auto" msgstr "Auto ekspozycja" -#: ../src/v4l2uvc.c:109 +#: ../gview_v4l2core/v4l2_controls.c:101 msgid "Exposure, Auto Priority" msgstr "Auto priorytet ekspozycji" -#: ../src/v4l2uvc.c:110 +#: ../gview_v4l2core/v4l2_controls.c:102 msgid "Exposure (Absolute)" msgstr "Ekspozycja (absolutna)" -#: ../src/v4l2uvc.c:111 +#: ../gview_v4l2core/v4l2_controls.c:103 msgid "White Balance Temperature, Auto" msgstr "Automatyczny balans bieli temperatury" -#: ../src/v4l2uvc.c:112 +#: ../gview_v4l2core/v4l2_controls.c:104 msgid "White Balance Temperature" msgstr "Temperatura balansu bieli" -#: ../src/v4l2uvc.c:113 +#: ../gview_v4l2core/v4l2_controls.c:105 msgid "White Balance Component, Auto" msgstr "Automatyczny komponent balansu bieli" -#: ../src/v4l2uvc.c:114 +#: ../gview_v4l2core/v4l2_controls.c:106 msgid "White Balance Blue Component" msgstr "Komponent balansu bieli - niebieskiego" -#: ../src/v4l2uvc.c:115 +#: ../gview_v4l2core/v4l2_controls.c:107 msgid "White Balance Red Component" msgstr "Komponent balansu bieli - czerwonego" #. libwebcam specific control strings -#: ../src/v4l2uvc.c:118 +#: ../gview_v4l2core/v4l2_controls.c:110 msgid "Focus" msgstr "Ostroƛć" -#: ../src/v4l2uvc.c:119 +#: ../gview_v4l2core/v4l2_controls.c:111 msgid "Focus (Absolute)" msgstr "Ostroƛć (absolutna)" -#: ../src/vcodecs.c:63 -msgid "MJPG - compressed" +#: ../gview_v4l2core/v4l2_xu_ctrls.c:63 ../guvcview/gui_gtk3_v4l2ctrls.c:239 +msgid "Off" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:64 ../guvcview/gui_gtk3_v4l2ctrls.c:239 +msgid "On" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:65 ../guvcview/gui_gtk3_v4l2ctrls.c:239 +msgid "Blinking" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:66 ../guvcview/gui_gtk3_v4l2ctrls.c:239 +msgid "Auto" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:73 +msgid "Pan (relative)" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:86 +msgid "Tilt (relative)" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:99 +msgid "Pan Reset" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:112 +msgid "Tilt Reset" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:125 +msgid "Focus (absolute)" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:138 +msgid "LED1 Mode" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:151 +msgid "LED1 Frequency" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:164 +msgid "Disable video processing" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:177 +msgid "Raw bits per pixel" +msgstr "" + +#: ../gview_encoder/audio_codecs.c:63 +msgid "PCM - uncompressed (float 32 bit)" +msgstr "" + +#: ../gview_encoder/audio_codecs.c:80 +msgid "MP2 (MPEG audio layer 2)" +msgstr "" + +#: ../gview_encoder/audio_codecs.c:97 +msgid "MP3 (MPEG audio layer 3)" +msgstr "" + +#: ../gview_encoder/audio_codecs.c:118 +msgid "AC-3 (ATSC A/52A)" +msgstr "" + +#: ../gview_encoder/audio_codecs.c:139 +msgid "AAC (Advanced Audio Coding)" +msgstr "" + +#: ../gview_encoder/audio_codecs.c:160 +msgid "Vorbis" msgstr "" -#: ../src/vcodecs.c:99 -msgid "YUY2 - uncomp YUV" +#: ../gview_encoder/video_codecs.c:75 +msgid "Raw camera input" msgstr "" -#: ../src/vcodecs.c:135 -msgid "RGB - uncomp BMP" +#: ../gview_encoder/video_codecs.c:111 +msgid "MJPG - compressed" msgstr "" -#: ../src/vcodecs.c:171 +#: ../gview_encoder/video_codecs.c:147 msgid "MPEG video 1" msgstr "MPEG video 1" -#: ../src/vcodecs.c:207 +#: ../gview_encoder/video_codecs.c:183 msgid "FLV1 - flash video 1" msgstr "FLV1 - flash video 1" -#: ../src/vcodecs.c:243 +#: ../gview_encoder/video_codecs.c:219 msgid "WMV1 - win. med. video 7" msgstr "WMV1 - win. med. video 7" -#: ../src/vcodecs.c:279 +#: ../gview_encoder/video_codecs.c:255 msgid "MPG2 - MPG2 format" msgstr "MPG2 - MPG2 format" -#: ../src/vcodecs.c:315 +#: ../gview_encoder/video_codecs.c:291 msgid "MS MP4 V3" msgstr "MS MP4 V3" -#: ../src/vcodecs.c:351 +#: ../gview_encoder/video_codecs.c:327 msgid "MPEG4-ASP" msgstr "MPEG4-ASP" -#: ../src/vcodecs.c:387 +#: ../gview_encoder/video_codecs.c:363 msgid "MPEG4-AVC (H264)" msgstr "MPEG4-AVC (H264)" -#: ../src/vcodecs.c:427 -msgid "VP8 (VP8)" -msgstr "" +#: ../gview_encoder/video_codecs.c:403 +msgid "VP8 (VP8)" +msgstr "" + +#: ../gview_encoder/video_codecs.c:439 +msgid "Theora (ogg theora)" +msgstr "" + +#: ../guvcview/gui_gtk3_audioctrls.c:95 +msgid "Audio API:" +msgstr "Audio API:" + +#: ../guvcview/gui_gtk3_audioctrls.c:106 +msgid "NO SOUND" +msgstr "" + +#: ../guvcview/gui_gtk3_audioctrls.c:107 +msgid "PORTAUDIO" +msgstr "PORTAUDIO" + +#: ../guvcview/gui_gtk3_audioctrls.c:110 +msgid "PULSEAUDIO" +msgstr "PULSEAUDIO" + +#: ../guvcview/gui_gtk3_audioctrls.c:127 +msgid "Input Device:" +msgstr "Urządzenie wejƛcia:" + +#: ../guvcview/gui_gtk3_audioctrls.c:161 +msgid "Sample Rate:" +msgstr "PrĂłbkowanie audio:" + +#: ../guvcview/gui_gtk3_audioctrls.c:168 ../guvcview/gui_gtk3_audioctrls.c:214 +msgid "Dev. Default" +msgstr "Urzadzenie domyƛlne" + +#: ../guvcview/gui_gtk3_audioctrls.c:207 +msgid "Channels:" +msgstr "KanaƂy:" + +#: ../guvcview/gui_gtk3_audioctrls.c:215 +msgid "1 - mono" +msgstr "1 - mono" + +#: ../guvcview/gui_gtk3_audioctrls.c:216 +msgid "2 - stereo" +msgstr "2 - stereo" + +#: ../guvcview/gui_gtk3_audioctrls.c:235 +#, fuzzy +msgid "---- Audio Filters ----" +msgstr "---- Filtry wideo ----" + +#. Echo FX +#: ../guvcview/gui_gtk3_audioctrls.c:255 +msgid " Echo" +msgstr " Echo" + +#. Reverb FX +#: ../guvcview/gui_gtk3_audioctrls.c:268 +msgid " Reverb" +msgstr "" + +#. Fuzz FX +#: ../guvcview/gui_gtk3_audioctrls.c:281 +msgid " Fuzz" +msgstr "" + +#. WahWah FX +#: ../guvcview/gui_gtk3_audioctrls.c:294 +msgid " WahWah" +msgstr "" + +#. Ducky FX +#: ../guvcview/gui_gtk3_audioctrls.c:307 +msgid " Ducky" +msgstr "" + +#: ../guvcview/gui_gtk3.c:310 ../guvcview/gui_gtk3_callbacks.c:749 +msgid "Stop Video (V)" +msgstr "Stop Video (V)" + +#. video button +#: ../guvcview/gui_gtk3.c:315 ../guvcview/gui_gtk3.c:600 +#: ../guvcview/gui_gtk3_callbacks.c:755 +msgid "Cap. Video (V)" +msgstr "Przechwicenie Wideo (V)" + +#: ../guvcview/gui_gtk3.c:376 ../guvcview/gui_gtk3.c:383 +msgid "Error" +msgstr "" + +#: ../guvcview/gui_gtk3.c:379 ../guvcview/gui_gtk3.c:386 +#: ../guvcview/gui_gtk3_callbacks.c:2097 +msgid "_Ok" +msgstr "" + +#: ../guvcview/gui_gtk3.c:380 ../guvcview/gui_gtk3_callbacks.c:185 +#: ../guvcview/gui_gtk3_callbacks.c:199 ../guvcview/gui_gtk3_callbacks.c:522 +#: ../guvcview/gui_gtk3_callbacks.c:624 ../guvcview/gui_gtk3_callbacks.c:1755 +#: ../guvcview/gui_gtk3_callbacks.c:2098 +msgid "_Cancel" +msgstr "" + +#: ../guvcview/gui_gtk3.c:407 +msgid "" +"\n" +"You have more than one video device installed.\n" +"Do you want to try another one ?\n" +msgstr "" + +#. ---- Devices ---- +#: ../guvcview/gui_gtk3.c:414 ../guvcview/gui_gtk3_videoctrls.c:106 +msgid "Device:" +msgstr "Urządzenie:" + +#: ../guvcview/gui_gtk3.c:516 +msgid "Guvcview Video Capture" +msgstr "Przechwytywanie wideo Guvcview" + +#: ../guvcview/gui_gtk3.c:525 +msgid "Guvcview" +msgstr "" + +#: ../guvcview/gui_gtk3.c:572 +#, fuzzy +msgid "Stop Cap. (I)" +msgstr "Stop Auto (I)" + +#: ../guvcview/gui_gtk3.c:578 ../guvcview/gui_gtk3_callbacks.c:720 +#: ../guvcview/video_capture.c:250 +msgid "Cap. Image (I)" +msgstr "Przechwycenie obrazu (I)" + +#. quit button +#. GtkWidget *quitButton = gtk_button_new_from_stock(GTK_STOCK_QUIT); +#: ../guvcview/gui_gtk3.c:621 +msgid "_Quit" +msgstr "" + +#: ../guvcview/gui_gtk3.c:667 +msgid "Image Controls" +msgstr "Kontrola obrazu" + +#: ../guvcview/gui_gtk3.c:703 +#, fuzzy +msgid "H264 Controls" +msgstr "Kontrolki uĆŒytkownika" + +#: ../guvcview/gui_gtk3.c:742 +#, fuzzy +msgid "Video Controls" +msgstr "Kontrolki uĆŒytkownika" + +#: ../guvcview/gui_gtk3.c:777 +#, fuzzy +msgid "Audio Controls" +msgstr "Kontrolki uĆŒytkownika" + +#: ../guvcview/gui_gtk3_callbacks.c:182 ../guvcview/gui_gtk3_menu.c:72 +msgid "Save Profile" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:186 ../guvcview/gui_gtk3_callbacks.c:523 +#: ../guvcview/gui_gtk3_callbacks.c:625 +msgid "_Save" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:196 ../guvcview/gui_gtk3_menu.c:71 +msgid "Load Profile" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:200 +msgid "_Open" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:208 ../guvcview/gui_gtk3_callbacks.c:531 +#: ../guvcview/gui_gtk3_callbacks.c:634 +msgid "File Format:" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:220 +msgid "gpfl (*.gpfl)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:221 +msgid "any (*.*)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:519 +msgid "Photo file name" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:543 +msgid "Raw (*.raw)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:544 +msgid "Jpeg (*.jpg)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:545 +msgid "Png (*.png)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:546 +msgid "Bmp (*.bmp)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:621 +msgid "Video file name" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:646 +msgid "Matroska (*.mkv)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:647 +msgid "WebM (*.webm)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:648 +msgid "Avi (*.avi)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:1158 +msgid "start new" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:1161 +msgid "restart" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:1163 +msgid "new" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:1165 +msgid "cancel" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:1170 +msgid "" +"launch new process or restart?.\n" +"\n" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:1751 +#, fuzzy +msgid "video codec values" +msgstr "wartoƛci kodeka audio" + +#: ../guvcview/gui_gtk3_callbacks.c:1754 +msgid "_OK" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:1760 +msgid "" +" encoder fps: \n" +" (0 - use fps combobox value)" +msgstr "" +" enkoder fps: \n" +" (0 - uĆŒycie wartoƛci fps combobox)" + +#: ../guvcview/gui_gtk3_callbacks.c:1773 +msgid " monotonic pts" +msgstr "" + +#. bit rate +#: ../guvcview/gui_gtk3_callbacks.c:1780 ../guvcview/gui_gtk3_callbacks.c:2105 +msgid "bit rate: " +msgstr "bit rate: " + +#: ../guvcview/gui_gtk3_callbacks.c:1793 +msgid "qmax: " +msgstr "qmaks: " + +#: ../guvcview/gui_gtk3_callbacks.c:1806 +msgid "qmin: " +msgstr "qmin: " -#: ../src/vcodecs.c:463 -msgid "Theora (ogg theora)" -msgstr "" +#: ../guvcview/gui_gtk3_callbacks.c:1819 +msgid "max. qdiff: " +msgstr "max. qdiff: " -#: ../src/video_format.c:43 -msgid "AVI - avi format" -msgstr "" +#: ../guvcview/gui_gtk3_callbacks.c:1832 +msgid "dia size: " +msgstr "rozmiar dia: " -#: ../src/video_format.c:52 -msgid "MKV - Matroska format" -msgstr "" +#: ../guvcview/gui_gtk3_callbacks.c:1845 +msgid "pre dia size: " +msgstr "rozmiar pre dia: " -#: ../src/video_format.c:61 -msgid "WEBM - format" -msgstr "" +#: ../guvcview/gui_gtk3_callbacks.c:1858 +msgid "pre me: " +msgstr "pre me: " -#: ../src/video_tab.c:216 -msgid "Frame Rate:" -msgstr "Klatki na sekundę:" +#: ../guvcview/gui_gtk3_callbacks.c:1871 +msgid "pre cmp: " +msgstr "pre cmp: " -#: ../src/video_tab.c:223 -msgid " Show" -msgstr " Pokaz" +#: ../guvcview/gui_gtk3_callbacks.c:1884 +msgid "cmp: " +msgstr "cmp: " -#: ../src/video_tab.c:245 -msgid "Resolution:" -msgstr "Rozdzielczoƛć:" +#: ../guvcview/gui_gtk3_callbacks.c:1897 +msgid "sub cmp: " +msgstr "sub cmp: " -#: ../src/video_tab.c:271 -msgid "Camera Output:" +#: ../guvcview/gui_gtk3_callbacks.c:1910 +msgid "last predictor count: " msgstr "" -#: ../src/video_tab.c:293 -msgid "Apply" -msgstr "Zastosuj" +#: ../guvcview/gui_gtk3_callbacks.c:1923 +msgid "gop size: " +msgstr "rozmiar gop: " -#: ../src/video_tab.c:300 -msgid "Quality:" -msgstr "Jakoƛć:" +#: ../guvcview/gui_gtk3_callbacks.c:1936 +msgid "qcompress: " +msgstr "" -#: ../src/video_tab.c:310 -msgid "---- Video Filters ----" -msgstr "---- Filtry wideo ----" +#: ../guvcview/gui_gtk3_callbacks.c:1949 +msgid "qblur: " +msgstr "qblur: " -#. Mirror -#: ../src/video_tab.c:329 -msgid " Mirror" +#: ../guvcview/gui_gtk3_callbacks.c:1962 +msgid "subq: " +msgstr "subq: " + +#: ../guvcview/gui_gtk3_callbacks.c:1975 +msgid "framerefs: " msgstr "" -#. Upturn -#: ../src/video_tab.c:340 -msgid " Invert" -msgstr " OdwrĂłcenie" +#: ../guvcview/gui_gtk3_callbacks.c:1988 +msgid "me method: " +msgstr "" -#. Negate -#: ../src/video_tab.c:351 -msgid " Negative" -msgstr " Negatyw" +#: ../guvcview/gui_gtk3_callbacks.c:2001 +msgid "mb decision: " +msgstr "" -#. Mono -#: ../src/video_tab.c:362 -msgid " Mono" -msgstr " Mono" +#: ../guvcview/gui_gtk3_callbacks.c:2014 +msgid "max B frames: " +msgstr "max klatek B: " -#. Pieces -#: ../src/video_tab.c:374 -msgid " Pieces" +#: ../guvcview/gui_gtk3_callbacks.c:2027 +msgid "num threads: " msgstr "" -#. Particles -#: ../src/video_tab.c:386 -msgid " Particles" -msgstr "" +#: ../guvcview/gui_gtk3_callbacks.c:2094 +msgid "audio codec values" +msgstr "wartoƛci kodeka audio" -#: ../src/uvc_h264.c:596 -msgid "H264 Controls" +#. sample format +#: ../guvcview/gui_gtk3_callbacks.c:2119 +msgid "sample format: " msgstr "" -#: ../src/uvc_h264.c:615 +#: ../guvcview/gui_gtk3_h264ctrls.c:622 +#, fuzzy msgid "Rate Control Mode:" -msgstr "" +msgstr "Kontrola obrazu" -#: ../src/uvc_h264.c:626 +#: ../guvcview/gui_gtk3_h264ctrls.c:633 msgid "CBR" msgstr "" -#: ../src/uvc_h264.c:629 +#: ../guvcview/gui_gtk3_h264ctrls.c:636 msgid "VBR" msgstr "" -#: ../src/uvc_h264.c:633 +#: ../guvcview/gui_gtk3_h264ctrls.c:640 msgid "Constant QP" msgstr "" -#: ../src/uvc_h264.c:651 +#: ../guvcview/gui_gtk3_h264ctrls.c:658 msgid "Rate Control Mode flags:" msgstr "" -#: ../src/uvc_h264.c:676 +#: ../guvcview/gui_gtk3_h264ctrls.c:683 msgid "Temporal Scale Mode:" msgstr "" -#: ../src/uvc_h264.c:704 +#: ../guvcview/gui_gtk3_h264ctrls.c:711 msgid "Spatial Scale Mode:" msgstr "" -#: ../src/uvc_h264.c:737 +#: ../guvcview/gui_gtk3_h264ctrls.c:741 msgid "Frame Interval (100ns units):" msgstr "" -#: ../src/uvc_h264.c:772 +#: ../guvcview/gui_gtk3_h264ctrls.c:778 +#, fuzzy msgid "Bit Rate:" -msgstr "" +msgstr "bit rate: " -#: ../src/uvc_h264.c:795 +#: ../guvcview/gui_gtk3_h264ctrls.c:801 msgid "Hints:" msgstr "" -#: ../src/uvc_h264.c:800 +#: ../guvcview/gui_gtk3_h264ctrls.c:806 +#, fuzzy msgid "Resolution" -msgstr "" +msgstr "Rozdzielczoƛć:" -#: ../src/uvc_h264.c:804 +#: ../guvcview/gui_gtk3_h264ctrls.c:810 msgid "Profile" msgstr "" -#: ../src/uvc_h264.c:808 +#: ../guvcview/gui_gtk3_h264ctrls.c:814 +#, fuzzy msgid "Rate Control" -msgstr "" +msgstr "Kontrola obrazu" -#: ../src/uvc_h264.c:812 +#: ../guvcview/gui_gtk3_h264ctrls.c:818 msgid "Usage Type" msgstr "" -#: ../src/uvc_h264.c:816 +#: ../guvcview/gui_gtk3_h264ctrls.c:822 msgid "Slice Mode" msgstr "" -#: ../src/uvc_h264.c:820 +#: ../guvcview/gui_gtk3_h264ctrls.c:826 msgid "Slice Unit" msgstr "" -#: ../src/uvc_h264.c:824 +#: ../guvcview/gui_gtk3_h264ctrls.c:830 msgid "MVC View" msgstr "" -#: ../src/uvc_h264.c:828 +#: ../guvcview/gui_gtk3_h264ctrls.c:834 msgid "Temporal Scale" msgstr "" -#: ../src/uvc_h264.c:832 +#: ../guvcview/gui_gtk3_h264ctrls.c:838 msgid "SNR Scale" msgstr "" -#: ../src/uvc_h264.c:836 +#: ../guvcview/gui_gtk3_h264ctrls.c:842 msgid "Spatial Scale" msgstr "" -#: ../src/uvc_h264.c:840 +#: ../guvcview/gui_gtk3_h264ctrls.c:846 msgid "Spatial Layer Ratio" msgstr "" -#: ../src/uvc_h264.c:844 +#: ../guvcview/gui_gtk3_h264ctrls.c:850 +#, fuzzy msgid "Frame Interval" -msgstr "" +msgstr "Klatki na sekundę:" -#: ../src/uvc_h264.c:848 +#: ../guvcview/gui_gtk3_h264ctrls.c:854 msgid "Leaky Bucket Size" msgstr "" -#: ../src/uvc_h264.c:852 +#: ../guvcview/gui_gtk3_h264ctrls.c:858 msgid "Bit Rate" msgstr "" -#: ../src/uvc_h264.c:856 ../src/uvc_h264.c:1250 +#: ../guvcview/gui_gtk3_h264ctrls.c:862 ../guvcview/gui_gtk3_h264ctrls.c:1220 msgid "CABAC" msgstr "" -#: ../src/uvc_h264.c:860 +#: ../guvcview/gui_gtk3_h264ctrls.c:866 msgid "(I) Frame Period" msgstr "" -#: ../src/uvc_h264.c:907 +#: ../guvcview/gui_gtk3_h264ctrls.c:878 msgid "Slice Mode:" msgstr "" -#: ../src/uvc_h264.c:914 +#: ../guvcview/gui_gtk3_h264ctrls.c:885 msgid "no multiple slices" msgstr "" -#: ../src/uvc_h264.c:916 +#: ../guvcview/gui_gtk3_h264ctrls.c:887 msgid "bits/slice" msgstr "" -#: ../src/uvc_h264.c:918 +#: ../guvcview/gui_gtk3_h264ctrls.c:889 msgid "Mbits/slice" msgstr "" -#: ../src/uvc_h264.c:920 +#: ../guvcview/gui_gtk3_h264ctrls.c:891 msgid "slices/frame" msgstr "" -#: ../src/uvc_h264.c:929 +#: ../guvcview/gui_gtk3_h264ctrls.c:900 msgid "Slice Units:" msgstr "" -#: ../src/uvc_h264.c:950 +#: ../guvcview/gui_gtk3_h264ctrls.c:921 msgid "Profile:" msgstr "" -#: ../src/uvc_h264.c:957 +#: ../guvcview/gui_gtk3_h264ctrls.c:928 msgid "Baseline Profile" msgstr "" -#: ../src/uvc_h264.c:959 +#: ../guvcview/gui_gtk3_h264ctrls.c:930 msgid "Main Profile" msgstr "" -#: ../src/uvc_h264.c:961 +#: ../guvcview/gui_gtk3_h264ctrls.c:932 msgid "High Profile" msgstr "" -#: ../src/uvc_h264.c:963 +#: ../guvcview/gui_gtk3_h264ctrls.c:934 msgid "Scalable Baseline Profile" msgstr "" -#: ../src/uvc_h264.c:965 +#: ../guvcview/gui_gtk3_h264ctrls.c:936 msgid "Scalable High Profile" msgstr "" -#: ../src/uvc_h264.c:967 +#: ../guvcview/gui_gtk3_h264ctrls.c:938 msgid "Multiview High Profile" msgstr "" -#: ../src/uvc_h264.c:969 +#: ../guvcview/gui_gtk3_h264ctrls.c:940 msgid "Stereo High Profile" msgstr "" -#: ../src/uvc_h264.c:1008 +#: ../guvcview/gui_gtk3_h264ctrls.c:979 msgid "Profile flags:" msgstr "" -#: ../src/uvc_h264.c:1033 +#: ../guvcview/gui_gtk3_h264ctrls.c:1004 msgid "(I) Frame Period (ms):" msgstr "" -#: ../src/uvc_h264.c:1054 +#: ../guvcview/gui_gtk3_h264ctrls.c:1025 msgid "Estimated Video Delay (ms):" msgstr "" -#: ../src/uvc_h264.c:1075 +#: ../guvcview/gui_gtk3_h264ctrls.c:1046 msgid "Estimated Max Config Delay (ms):" msgstr "" -#: ../src/uvc_h264.c:1096 +#: ../guvcview/gui_gtk3_h264ctrls.c:1067 msgid "Usage Type:" msgstr "" -#: ../src/uvc_h264.c:1103 +#: ../guvcview/gui_gtk3_h264ctrls.c:1074 msgid "Real-time" msgstr "" -#: ../src/uvc_h264.c:1105 +#: ../guvcview/gui_gtk3_h264ctrls.c:1076 msgid "Broadcast" msgstr "" -#: ../src/uvc_h264.c:1107 +#: ../guvcview/gui_gtk3_h264ctrls.c:1078 msgid "Storage" msgstr "" -#: ../src/uvc_h264.c:1109 +#: ../guvcview/gui_gtk3_h264ctrls.c:1080 msgid "(0) Non-scalable single layer AVC" msgstr "" -#: ../src/uvc_h264.c:1111 +#: ../guvcview/gui_gtk3_h264ctrls.c:1082 msgid "(1) SVC temporal scalability with hierarchical P" msgstr "" -#: ../src/uvc_h264.c:1113 +#: ../guvcview/gui_gtk3_h264ctrls.c:1084 msgid "(2q) SVC temporal scalability + Quality/SNR scalability" msgstr "" -#: ../src/uvc_h264.c:1115 +#: ../guvcview/gui_gtk3_h264ctrls.c:1086 msgid "(2s) SVC temporal scalability + spatial scalability" msgstr "" -#: ../src/uvc_h264.c:1117 +#: ../guvcview/gui_gtk3_h264ctrls.c:1088 msgid "(3) Full SVC scalability" msgstr "" -#: ../src/uvc_h264.c:1131 +#: ../guvcview/gui_gtk3_h264ctrls.c:1102 msgid "SNR Control Mode:" msgstr "" -#: ../src/uvc_h264.c:1138 +#: ../guvcview/gui_gtk3_h264ctrls.c:1109 msgid "No SNR Enhancement Layer" msgstr "" -#: ../src/uvc_h264.c:1140 +#: ../guvcview/gui_gtk3_h264ctrls.c:1111 msgid "CGS NonRewrite (2 Layer)" msgstr "" -#: ../src/uvc_h264.c:1142 +#: ../guvcview/gui_gtk3_h264ctrls.c:1113 msgid "CGS NonRewrite (3 Layer)" msgstr "" -#: ../src/uvc_h264.c:1144 +#: ../guvcview/gui_gtk3_h264ctrls.c:1115 msgid "CGS Rewrite (2 Layer)" msgstr "" -#: ../src/uvc_h264.c:1146 +#: ../guvcview/gui_gtk3_h264ctrls.c:1117 msgid "CGS Rewrite (3 Layer)" msgstr "" -#: ../src/uvc_h264.c:1148 +#: ../guvcview/gui_gtk3_h264ctrls.c:1119 msgid "MGS (2 Layer)" msgstr "" -#: ../src/uvc_h264.c:1173 +#: ../guvcview/gui_gtk3_h264ctrls.c:1144 msgid "Stream Mux Enable" msgstr "" -#: ../src/uvc_h264.c:1180 +#: ../guvcview/gui_gtk3_h264ctrls.c:1151 msgid "Embed H.264 aux stream" msgstr "" -#: ../src/uvc_h264.c:1182 +#: ../guvcview/gui_gtk3_h264ctrls.c:1153 msgid "Embed YUY2 aux stream" msgstr "" -#: ../src/uvc_h264.c:1184 +#: ../guvcview/gui_gtk3_h264ctrls.c:1155 msgid "Embed NV12 aux stream" msgstr "" -#: ../src/uvc_h264.c:1204 +#: ../guvcview/gui_gtk3_h264ctrls.c:1175 msgid "MJPG payload container" msgstr "" -#: ../src/uvc_h264.c:1219 +#: ../guvcview/gui_gtk3_h264ctrls.c:1189 msgid "Stream Format:" msgstr "" -#: ../src/uvc_h264.c:1227 +#: ../guvcview/gui_gtk3_h264ctrls.c:1197 msgid "Byte stream format (H.264 Annex-B)" msgstr "" -#: ../src/uvc_h264.c:1229 +#: ../guvcview/gui_gtk3_h264ctrls.c:1199 msgid "NAL stream format" msgstr "" -#: ../src/uvc_h264.c:1240 +#: ../guvcview/gui_gtk3_h264ctrls.c:1210 msgid "Entropy CABAC:" msgstr "" -#: ../src/uvc_h264.c:1248 +#: ../guvcview/gui_gtk3_h264ctrls.c:1218 msgid "CAVLC" msgstr "" -#: ../src/uvc_h264.c:1261 +#: ../guvcview/gui_gtk3_h264ctrls.c:1231 msgid "Picture timing SEI" msgstr "" -#: ../src/uvc_h264.c:1268 +#: ../guvcview/gui_gtk3_h264ctrls.c:1238 +#, fuzzy msgid "B Frames:" -msgstr "" +msgstr "max klatek B: " -#: ../src/uvc_h264.c:1293 +#: ../guvcview/gui_gtk3_h264ctrls.c:1263 msgid "Preview Flipped" msgstr "" -#: ../src/uvc_h264.c:1300 +#: ../guvcview/gui_gtk3_h264ctrls.c:1270 msgid "Additional MVC Views:" msgstr "" -#: ../src/uvc_h264.c:1325 +#: ../guvcview/gui_gtk3_h264ctrls.c:1295 msgid "Simulcast stream index:" msgstr "" -#: ../src/uvc_h264.c:1350 +#: ../guvcview/gui_gtk3_h264ctrls.c:1320 msgid "Spatial Layer Ratio:" msgstr "" -#: ../src/uvc_h264.c:1379 +#: ../guvcview/gui_gtk3_h264ctrls.c:1349 msgid "Leaky Bucket Size (ms):" msgstr "" #. encoder reset -#: ../src/uvc_h264.c:1406 +#: ../guvcview/gui_gtk3_h264ctrls.c:1376 +#, fuzzy msgid "Encoder Reset" -msgstr "" +msgstr "Reset Pan" -#. -#. h264_controls->probe_button = gtk_button_new_with_label(_("PROBE")); -#. g_signal_connect (GTK_BUTTON(h264_controls->probe_button), "clicked", +#. +#. GtkWidget *probe_button = gtk_button_new_with_label(_("PROBE")); +#. g_signal_connect (GTK_BUTTON(probe_button), "clicked", #. G_CALLBACK (h264_probe_button_clicked), all_data); -#. -#. gtk_grid_attach (GTK_GRID(table), h264_controls->probe_button, 0, line, 1 ,1); -#. gtk_widget_show(h264_controls->probe_button); -#. -#: ../src/uvc_h264.c:1421 +#. +#. gtk_grid_attach (GTK_GRID(h264_controls_grid), probe_button, 0, line, 1 ,1); +#. gtk_widget_show(probe_button); +#. +#: ../guvcview/gui_gtk3_h264ctrls.c:1391 msgid "COMMIT" msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:70 +msgid "Settings" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:73 +msgid "Hardware Defaults" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:81 +msgid "Camera Button" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:86 +msgid "Capture Image" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:91 +msgid "Capture Video" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:134 +msgid "Photo" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:135 ../guvcview/gui_gtk3_menu.c:159 +msgid "File" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:136 ../guvcview/gui_gtk3_menu.c:160 +msgid "Increment Filename" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:158 +msgid "Video" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:175 +msgid "Video Codec" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:202 +msgid "Video Codec Properties" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:208 +msgid "Audio Codec" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:235 +msgid "Audio Codec Properties" +msgstr "" + +#: ../guvcview/gui_gtk3_v4l2ctrls.c:174 +msgid "Left" +msgstr "Lewy" + +#: ../guvcview/gui_gtk3_v4l2ctrls.c:175 +msgid "Right" +msgstr "Prawy" + +#: ../guvcview/gui_gtk3_v4l2ctrls.c:179 +msgid "Down" +msgstr "DóƂ" + +#: ../guvcview/gui_gtk3_v4l2ctrls.c:180 +msgid "Up" +msgstr "GĂłra" + +#. turn it into a menu control +#: ../guvcview/gui_gtk3_v4l2ctrls.c:296 +msgid "8 bit" +msgstr "" + +#: ../guvcview/gui_gtk3_v4l2ctrls.c:296 +msgid "12 bit" +msgstr "" + +#. add a virtual control for software autofocus +#: ../guvcview/gui_gtk3_v4l2ctrls.c:348 +msgid "Auto Focus (continuous)" +msgstr "" + +#: ../guvcview/gui_gtk3_v4l2ctrls.c:349 +msgid "set Focus" +msgstr "" + +#. control_widgets_list[n].widget2 = gtk_button_new_from_stock(GTK_STOCK_APPLY); +#. control_widgets_list[n].widget2= gtk_button_new_from_stock(GTK_STOCK_APPLY); +#. control_widgets_list[n].widget2 = gtk_button_new_from_stock(GTK_STOCK_APPLY); +#: ../guvcview/gui_gtk3_v4l2ctrls.c:433 ../guvcview/gui_gtk3_v4l2ctrls.c:456 +#: ../guvcview/gui_gtk3_v4l2ctrls.c:478 +#, fuzzy +msgid "_Apply" +msgstr "Zastosuj" + +#: ../guvcview/gui_gtk3_videoctrls.c:144 +msgid "Frame Rate:" +msgstr "Klatki na sekundę:" + +#: ../guvcview/gui_gtk3_videoctrls.c:204 +msgid "Resolution:" +msgstr "Rozdzielczoƛć:" + +#: ../guvcview/gui_gtk3_videoctrls.c:254 +msgid "Camera Output:" +msgstr "" + +#: ../guvcview/gui_gtk3_videoctrls.c:287 +msgid "---- Video Filters ----" +msgstr "---- Filtry wideo ----" + +#. Mirror FX +#: ../guvcview/gui_gtk3_videoctrls.c:307 +msgid " Mirror" +msgstr "" + +#. Upturn FX +#: ../guvcview/gui_gtk3_videoctrls.c:319 +msgid " Invert" +msgstr " OdwrĂłcenie" + +#. Negate FX +#: ../guvcview/gui_gtk3_videoctrls.c:331 +msgid " Negative" +msgstr " Negatyw" + +#. Mono FX +#: ../guvcview/gui_gtk3_videoctrls.c:343 +msgid " Mono" +msgstr " Mono" + +#. Pieces FX +#: ../guvcview/gui_gtk3_videoctrls.c:356 +msgid " Pieces" +msgstr "" + +#. Particles +#: ../guvcview/gui_gtk3_videoctrls.c:369 +msgid " Particles" +msgstr "" + +#: ../guvcview/options.c:51 +msgid "Print help" +msgstr "" + +#: ../guvcview/options.c:58 +msgid "Print version" +msgstr "" + +#: ../guvcview/options.c:64 +msgid "LEVEL" +msgstr "" + +#: ../guvcview/options.c:65 +msgid "Set Verbosity level (def: 0)" +msgstr "" + +#: ../guvcview/options.c:71 +msgid "DEVICE" +msgstr "" + +#: ../guvcview/options.c:72 +msgid "Set device name (def: /dev/video0)" +msgstr "" + +#: ../guvcview/options.c:78 +msgid "METHOD" +msgstr "" + +#: ../guvcview/options.c:79 +msgid "Set capture method [read | mmap (def)]" +msgstr "" + +#: ../guvcview/options.c:85 +msgid "WIDTHxHEIGHT" +msgstr "" + +#: ../guvcview/options.c:86 +msgid "Request resolution (e.g 640x480)" +msgstr "" + +#: ../guvcview/options.c:92 +msgid "FOURCC" +msgstr "" + +#: ../guvcview/options.c:93 +msgid "Request format (e.g MJPG)" +msgstr "" + +#: ../guvcview/options.c:99 +msgid "RENDER_API" +msgstr "" + +#: ../guvcview/options.c:100 +msgid "Select render API (e.g none; sdl)" +msgstr "" + +#: ../guvcview/options.c:106 +msgid "AUDIO_API" +msgstr "" + +#: ../guvcview/options.c:107 +msgid "Select audio API (e.g none; port; pulse)" +msgstr "" + +#: ../guvcview/options.c:113 +msgid "AUDIO_DEVICE" +msgstr "" + +#: ../guvcview/options.c:114 +msgid "Select audio device index for selected api (0..N)" +msgstr "" + +#: ../guvcview/options.c:120 +msgid "GUI_API" +msgstr "" + +#: ../guvcview/options.c:121 +msgid "Select GUI API (e.g none; gtk3)" +msgstr "" + +#: ../guvcview/options.c:127 ../guvcview/options.c:134 +msgid "CODEC" +msgstr "" + +#: ../guvcview/options.c:128 +msgid "Audio codec [pcm mp2 mp3 aac ac3 vorb]" +msgstr "" + +#: ../guvcview/options.c:135 +msgid "Video codec [raw mjpg mpeg flv1 wmv1 mpg2 mp43 dx50 h264 vp80 theo]" +msgstr "" + +#: ../guvcview/options.c:141 ../guvcview/options.c:148 +#: ../guvcview/options.c:155 +msgid "FILENAME" +msgstr "" + +#: ../guvcview/options.c:142 +msgid "load control profile" +msgstr "" + +#: ../guvcview/options.c:149 +msgid "filename for captured video)" +msgstr "" + +#: ../guvcview/options.c:156 +msgid "filename for captured image)" +msgstr "" + +#: ../guvcview/options.c:162 ../guvcview/options.c:169 +msgid "TIME_IN_SEC" +msgstr "" + +#: ../guvcview/options.c:163 +msgid "time (double) in sec. for video capture)" +msgstr "" + +#: ../guvcview/options.c:170 +msgid "time (double) in sec. between captured photos)" +msgstr "" + +#: ../guvcview/options.c:176 +msgid "TOTAL" +msgstr "" + +#: ../guvcview/options.c:177 +msgid "total number of captured photos)" +msgstr "" + +#: ../guvcview/options.c:184 +msgid "Start in control panel mode" +msgstr "" + +#: ../guvcview/options.c:307 +#, c-format +msgid "" +"Guvcview version %s\n" +"\n" +msgstr "" + +#: ../guvcview/options.c:308 +#, c-format +msgid "" +"Usage:\n" +" guvcview [OPTIONS]\n" +"\n" +msgstr "" + +#: ../guvcview/options.c:309 +#, c-format +msgid "OPTIONS:\n" +msgstr "" + +#: ../guvcview/video_capture.c:819 +#, c-format +msgid "saving video to %s" +msgstr "" + +#. if(debug_level > 1) +#. printf("GUVCVIEW: saving image to %s\n", img_filename); +#: ../guvcview/video_capture.c:1069 +#, c-format +msgid "saving image to %s" +msgstr "" + +#~ msgid "Audio" +#~ msgstr "Audio" + +#~ msgid " Sound" +#~ msgstr " DĆșwięk" + +#~ msgid "---- Audio Effects ----" +#~ msgstr "---- Efekty audio ----" + +#~ msgid "Save File" +#~ msgstr "Zapisz Plik" + +#~ msgid "codec values" +#~ msgstr "wartoƛci kodekĂłw" + +#~ msgid "Cap. Video" +#~ msgstr "Przechwicenie Wideo" + +#~ msgid "GUVCViewer Controls" +#~ msgstr "Kontrolki GUVCViewer" + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to open device" +#~ msgstr "" +#~ "BƂąd Guvcview:\n" +#~ "\n" +#~ "Nie moĆŒna otworzyć urządzenia" + +#~ msgid "" +#~ "Please make sure the camera is connected\n" +#~ "and that the correct driver is installed." +#~ msgstr "" +#~ "Proszę się upewnić, czy kamera jest podƂączona\n" +#~ "oraz czy jest zainstalowany odpowiedni sterownik." + +#~ msgid "" +#~ "Guvcview:\n" +#~ "\n" +#~ "UVC Extension controls" +#~ msgstr "" +#~ "Guvcview:\n" +#~ "\n" +#~ "Kontrolki rozszerzenia UVC" + +#~ msgid "Extension controls were added to the UVC driver" +#~ msgstr "Kontrolki rozszerzenia zostaƂy dodane do steronika UVC" + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "UVC Extension controls" +#~ msgstr "" +#~ "BƂąd Guvcview:\n" +#~ "\n" +#~ "Kontrolki rozszerzenia UVC" + +#~ msgid "" +#~ "An error occurred while adding extension\n" +#~ "controls to the UVC driver\n" +#~ "Make sure you run guvcview as root (or sudo)." +#~ msgstr "" +#~ "WystąpiƂ bƂąd podczas dodawania kontrolek\n" +#~ "rozszerzenia sterownika UVC\n" +#~ "Guvciew musi być uruchomiony w trybie root(lub sudo)." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Can't set a valid video stream for guvcview" +#~ msgstr "" +#~ "BƂąd Guvcview:\n" +#~ "Nie moĆŒna ustanowić prawidƂowego strumienia wideo dla guvcview" + +#~ msgid "" +#~ "Make sure your device driver is v4l2 compliant\n" +#~ "and that it is properly installed." +#~ msgstr "" +#~ "Upewnij się, ĆŒe twoje urządzenie jest kompatybilne z v4l2\n" +#~ "i jest poprawnie zainstalowane." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to start with minimum setup" +#~ msgstr "" +#~ "BƂąd Guvcview:\n" +#~ "\n" +#~ "Nie moĆŒna uruchomić minimalnej konfiguracji" + +#~ msgid "Please reconnect your camera." +#~ msgstr "Ponownie podƂącz kamerę." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Couldn't query device capabilities" +#~ msgstr "" +#~ "BƂąd Guvcview:\n" +#~ "\n" +#~ "Nie moĆŒna pobrać listy kompatybilnych urządzeƄ" + +#~ msgid "Make sure the device driver supports v4l2." +#~ msgstr "Upewnij się, ĆŒe urządzenie obsƂuguje v4l2." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Read method error" +#~ msgstr "" +#~ "BƂąd Guvcview:\n" +#~ "\n" +#~ "BƂąd metody odczytu" + +#~ msgid "Please try mmap instead (--capture_method=1)." +#~ msgstr "Proszę sprĂłbować mmap zamiast (--capture_method=1)." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to allocate Buffers" +#~ msgstr "" +#~ "BƂąd Guvcview:\n" +#~ "\n" +#~ "BƂąd alokacji buforĂłw" + +#~ msgid "Please try restarting your system." +#~ msgstr "Proszę zrestartować system." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to create Video Thread" +#~ msgstr "" +#~ "BƂąd Guvcview:\n" +#~ "\n" +#~ "Nie moĆŒna utworzyć wątku wideo" + +#~ msgid "Please report it to http://developer.berlios.de/bugs/?group_id=8179" +#~ msgstr "Proszę zgƂosić na http://developer.berlios.de/bugs/?group_id=8179" + +#~ msgid "Displays debug information" +#~ msgstr "Wyƛwietlanie informacji debugowania" + +#~ msgid "Cap. Image" +#~ msgstr "Przechwycenie obrazu" + +#~ msgid " Show" +#~ msgstr " Pokaz" + +#~ msgid "Quality:" +#~ msgstr "Jakoƛć:" diff -Nru guvcview-1.7.3/po/POTFILES.in guvcview-2.0.1+ubuntu1~ppa1/po/POTFILES.in --- guvcview-1.7.3/po/POTFILES.in 2014-03-24 22:56:28.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/po/POTFILES.in 2014-10-05 10:41:44.000000000 +0000 @@ -1,26 +1,22 @@ -[encoding: UTF-8] - +#desktop file data/guvcview.desktop.in.in -src/acodecs.c -src/audio_tab.c -src/callbacks.c -src/close.c -src/create_video.c -src/globals.c -src/guvcview.c -src/img_controls.c -src/image_format.c -src/menubar.c -src/options.c -src/osd.c -src/timers.c -src/v4l2_controls.c -src/v4l2_devices.c -src/v4l2_dyna_ctrls.c -src/v4l2_formats.c -src/v4l2uvc.c -src/vcodecs.c -src/video.c -src/video_format.c -src/video_tab.c -src/uvc_h264.c +#appdata file +data/guvcview.appdata.xml.in.in +#gview_v4l2core lib +gview_v4l2core/v4l2_controls.c +gview_v4l2core/v4l2_xu_ctrls.c +#gview_render lib +#gview_audio lib +#gview_encoder +gview_encoder/audio_codecs.c +gview_encoder/video_codecs.c +#guvcview +guvcview/gui_gtk3_audioctrls.c +guvcview/gui_gtk3.c +guvcview/gui_gtk3_callbacks.c +guvcview/gui_gtk3_h264ctrls.c +guvcview/gui_gtk3_menu.c +guvcview/gui_gtk3_v4l2ctrls.c +guvcview/gui_gtk3_videoctrls.c +guvcview/options.c +guvcview/video_capture.c diff -Nru guvcview-1.7.3/po/POTFILES.skip guvcview-2.0.1+ubuntu1~ppa1/po/POTFILES.skip --- guvcview-1.7.3/po/POTFILES.skip 2014-03-24 22:56:28.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/po/POTFILES.skip 2014-10-05 10:41:44.000000000 +0000 @@ -1,2 +1,3 @@ data/guvcview.desktop.in +data/guvcview.appdata.xml.in diff -Nru guvcview-1.7.3/po/pt_BR.po guvcview-2.0.1+ubuntu1~ppa1/po/pt_BR.po --- guvcview-1.7.3/po/pt_BR.po 2014-03-24 22:56:28.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/po/pt_BR.po 2014-10-05 10:41:44.000000000 +0000 @@ -8,1416 +8,1629 @@ msgstr "" "Project-Id-Version: pt_BR\n" "Report-Msgid-Bugs-To: pj.assis@gmail.com\n" -"POT-Creation-Date: 2013-11-14 22:15+0000\n" +"POT-Creation-Date: 2014-08-17 22:49+0100\n" "PO-Revision-Date: 2013-08-25 02:20+0000\n" "Last-Translator: Celio Alves \n" "Language-Team: Brazilian Portuguese \n" +"Language: pt\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-12-08 10:36+0000\n" "X-Generator: Launchpad (build 16869)\n" "X-Project-Style: default\n" -"Language: pt\n" #: ../data/guvcview.desktop.in.in.h:1 msgid "guvcview" msgstr "guvcview" -#: ../data/guvcview.desktop.in.in.h:2 -msgid "GTK UVC video viewer" -msgstr "Visualizador de vĂ­deo GTK UVC" - -#: ../data/guvcview.desktop.in.in.h:3 -msgid "A video viewer and capturer for the linux uvc driver" -msgstr "Um visualizador de vĂ­deos e captura para o driver linux uvc" - -#: ../src/acodecs.c:59 -msgid "PCM - uncompressed (16 bit)" -msgstr "" - -#: ../src/acodecs.c:76 -msgid "MPEG2 - (lavc)" -msgstr "MPEG2 - (lavc)" - -#: ../src/acodecs.c:93 -msgid "MP3 - (lavc)" -msgstr "MP3 - (lavc)" - -#: ../src/acodecs.c:110 -msgid "Dolby AC3 - (lavc)" -msgstr "Dolby AC3 - (lavc)" - -#: ../src/acodecs.c:127 -msgid "ACC Low - (faac)" -msgstr "" - -#: ../src/acodecs.c:144 -msgid "Vorbis" -msgstr "Vorbis" - -#: ../src/audio_tab.c:87 -msgid "Audio" -msgstr "Áudio" - -#: ../src/audio_tab.c:105 -msgid " Sound" -msgstr " Som" - -#. VU meter on the image (OSD) -#: ../src/audio_tab.c:116 -msgid " Show VU meter" -msgstr " Mostrar Volume" - -#: ../src/audio_tab.c:128 -msgid "Audio API:" -msgstr "API de ĂĄudio:" - -#: ../src/audio_tab.c:139 -msgid "PORTAUDIO" -msgstr "PORTAUDIO" - -#: ../src/audio_tab.c:140 -msgid "PULSEAUDIO" -msgstr "PULSEAUDIO" - -#: ../src/audio_tab.c:156 ../src/audio_tab.c:179 -msgid "Input Device:" -msgstr "Dispositivo de entrada:" - -#: ../src/audio_tab.c:189 ../src/audio_tab.c:221 -msgid "Dev. Default" -msgstr "PadrĂŁo" - -#: ../src/audio_tab.c:211 -msgid "Sample Rate:" -msgstr "Taxa de amostragem:" - -#: ../src/audio_tab.c:222 -msgid "1 - mono" -msgstr "1 - mono" - -#: ../src/audio_tab.c:223 -msgid "2 - stereo" -msgstr "2 - stereo" - -#: ../src/audio_tab.c:258 -msgid "Channels:" -msgstr "Canais:" - -#: ../src/audio_tab.c:309 -msgid "---- Audio Effects ----" -msgstr "---- Efeitos de ĂĄudio ----" - -#. Echo -#: ../src/audio_tab.c:328 -msgid " Echo" -msgstr " Eco" - -#. FUZZ -#: ../src/audio_tab.c:339 -msgid " Fuzz" -msgstr " RuĂ­do" - -#. Reverb -#: ../src/audio_tab.c:351 -msgid " Reverb" -msgstr " Reverb" - -#. WahWah -#: ../src/audio_tab.c:363 -msgid " WahWah" -msgstr " WahWah" - -#. Ducky -#: ../src/audio_tab.c:375 -msgid " Ducky" -msgstr " Patinho" - -#: ../src/callbacks.c:109 -msgid "Error" -msgstr "Erro" - -#: ../src/callbacks.c:133 -msgid "" -"\n" -"You have more than one video device installed.\n" -"Do you want to try another one ?\n" -msgstr "" -"\n" -"Foram detectados mĂșltiplos dispositivos de vĂ­deo.\n" -"Quer tentar outro?\n" - -#. Devices -#: ../src/callbacks.c:140 ../src/video_tab.c:111 -msgid "Device:" -msgstr "Dispositivo:" - -#: ../src/callbacks.c:272 -msgid "Save File" -msgstr "Salvar arquivo" - -#: ../src/callbacks.c:284 -msgid "File Format:" -msgstr "Formato do arquivo:" - -#: ../src/callbacks.c:455 -msgid "codec values" -msgstr "valores do codec" - -#: ../src/callbacks.c:466 -msgid "" -" encoder fps: \n" -" (0 - use fps combobox value)" -msgstr "" -" codificador fps: \n" -" (0 - use o valor fps da caixa de marcação)" - -#: ../src/callbacks.c:479 -msgid " monotonic pts" -msgstr " pts monotonico" - -#. bit rate -#: ../src/callbacks.c:486 ../src/callbacks.c:809 -msgid "bit rate: " -msgstr "taxa de bits: " - -#: ../src/callbacks.c:499 -msgid "qmax: " -msgstr "qmax: " - -#: ../src/callbacks.c:512 -msgid "qmin: " -msgstr "qmin: " - -#: ../src/callbacks.c:525 -msgid "max. qdiff: " -msgstr "qdiff max: " - -#: ../src/callbacks.c:538 -msgid "dia size: " -msgstr "tamanho do dia: " - -#: ../src/callbacks.c:551 -msgid "pre dia size: " -msgstr "tamanho do diĂą prĂ©: " - -#: ../src/callbacks.c:564 -msgid "pre me: " -msgstr "pre me: " - -#: ../src/callbacks.c:577 -msgid "pre cmp: " -msgstr "pre cmp: " - -#: ../src/callbacks.c:590 -msgid "cmp: " -msgstr "cmp: " - -#: ../src/callbacks.c:603 -msgid "sub cmp: " -msgstr "sub cmp: " - -#: ../src/callbacks.c:616 -msgid "last predictor count: " -msgstr "Ășltima contagem preditor: " - -#: ../src/callbacks.c:629 -msgid "gop size: " -msgstr "tamanho do gop: " - -#: ../src/callbacks.c:642 -msgid "qcompress: " -msgstr "qcompress: " - -#: ../src/callbacks.c:655 -msgid "qblur: " -msgstr "qblur: " - -#: ../src/callbacks.c:668 -msgid "subq: " -msgstr "subq: " - -#: ../src/callbacks.c:681 -msgid "framerefs: " -msgstr "framerefs: " - -#: ../src/callbacks.c:694 -msgid "me method: " -msgstr "mĂ©todo me: " - -#: ../src/callbacks.c:707 -msgid "mb decision: " -msgstr "decisĂŁo mb: " - -#: ../src/callbacks.c:720 -msgid "max B frames: " -msgstr "Max quadros B: " - -#: ../src/callbacks.c:733 -msgid "num threads: " -msgstr "num threads: " - -#: ../src/callbacks.c:796 -msgid "audio codec values" -msgstr "valores do codec de ĂĄudio" - -#. sample format -#: ../src/callbacks.c:823 -msgid "sample format: " -msgstr "" - -#: ../src/callbacks.c:1311 -msgid "start new" -msgstr "iniciar novo" - -#: ../src/callbacks.c:1314 -msgid "restart" -msgstr "reiniciar" - -#: ../src/callbacks.c:1316 -msgid "new" -msgstr "novo" - -#: ../src/callbacks.c:1318 -msgid "cancel" -msgstr "cancelar" - -#: ../src/callbacks.c:1323 -msgid "" -"launch new process or restart?.\n" -"\n" -msgstr "" -"lançar novo processo ou recomeçar?.\n" -"\n" - -#: ../src/callbacks.c:1780 ../src/guvcview.c:565 -msgid "Cap. Image (I)" -msgstr "Cap. imagem (I)" - -#. disable image controls -#: ../src/callbacks.c:1791 ../src/guvcview.c:690 ../src/timers.c:101 -msgid "capturing photo to" -msgstr "" - -#: ../src/callbacks.c:1850 ../src/guvcview.c:575 -msgid "Cap. Video (V)" -msgstr "Cap. vĂ­deo (V)" - -#: ../src/callbacks.c:1876 ../src/guvcview.c:740 -msgid "capturing video to" -msgstr "" - -#. vid capture enabled from start -#: ../src/callbacks.c:1911 ../src/guvcview.c:570 -msgid "Stop Video (V)" -msgstr "Parar vĂ­deo (V)" - -#: ../src/callbacks.c:1967 ../src/menubar.c:66 -msgid "Save Profile" -msgstr "Salvar perfil" - -#: ../src/callbacks.c:1980 ../src/menubar.c:65 -msgid "Load Profile" -msgstr "Carregar Perfil" - -#: ../src/create_video.c:1098 ../src/guvcview.c:732 -msgid "Cap. Video" -msgstr "Cap. vĂ­deo" - -#: ../src/guvcview.c:280 -msgid "Guvcview Video Capture" -msgstr "Capturador de vĂ­deo Guvcview" - -#: ../src/guvcview.c:292 -msgid "GUVCViewer Controls" -msgstr "Controles do GUVCViewer" - -#. can't open device -#: ../src/guvcview.c:342 -msgid "" -"Guvcview error:\n" -"\n" -"Unable to open device" -msgstr "" -"Erro do Guvcview:\n" -"\n" -"NĂŁo foi possĂ­vel conectar a cĂąmera" - -#: ../src/guvcview.c:343 -msgid "" -"Please make sure the camera is connected\n" -"and that the correct driver is installed." -msgstr "" -"Por favor, verifique a conexĂŁo\n" -"e se o driver correto estĂĄ instalado." - -#. uvc extension controls OK, give warning and shutdown (called with --add_ctrls) -#: ../src/guvcview.c:348 -msgid "" -"Guvcview:\n" -"\n" -"UVC Extension controls" -msgstr "" -"Guvcview:\n" -"\n" -"ExtensĂŁo de controles UVC" - -#: ../src/guvcview.c:349 -msgid "Extension controls were added to the UVC driver" -msgstr "As extensĂ”es de controles foram adicionadas ao driver UVC" - -#. uvc extension controls error - EACCES (needs root user) -#: ../src/guvcview.c:356 -msgid "" -"Guvcview error:\n" -"\n" -"UVC Extension controls" -msgstr "" -"Erro do Guvcview:\n" -"\n" -"ExtensĂ”es de controles UVC" - -#: ../src/guvcview.c:357 -msgid "" -"An error occurred while adding extension\n" -"controls to the UVC driver\n" -"Make sure you run guvcview as root (or sudo)." -msgstr "" -"Ocorreu um erro ao adicionar as extensĂ”es de\n" -"controles ao driver UVC\n" -"Verifique se iniciou o guvcview como root (ou sudo)." - -#: ../src/guvcview.c:391 ../src/guvcview.c:399 ../src/guvcview.c:477 -msgid "" -"Guvcview error:\n" -"\n" -"Can't set a valid video stream for guvcview" -msgstr "" -"Erro do Guvcview:\n" -"\n" -"NĂŁo foi possĂ­vel definir um fluxo de vĂ­deo para o guvcview" - -#: ../src/guvcview.c:392 ../src/guvcview.c:400 ../src/guvcview.c:478 -msgid "" -"Make sure your device driver is v4l2 compliant\n" -"and that it is properly installed." -msgstr "" -"Verifique se o driver Ă© compatĂ­vel com v4l2\n" -"e se este se estĂĄ instalado corretamente." - -#: ../src/guvcview.c:422 ../src/guvcview.c:444 -msgid "" -"Guvcview error:\n" -"\n" -"Unable to start with minimum setup" -msgstr "" -"Guvcview erro:\n" -"\n" -"NĂŁo foi possĂ­vel iniciar com as definiçÔes mĂ­nimas" - -#: ../src/guvcview.c:423 ../src/guvcview.c:445 -msgid "Please reconnect your camera." -msgstr "Por favor, reconecte sua cĂąmera." - -#: ../src/guvcview.c:452 -msgid "" -"Guvcview error:\n" -"\n" -"Couldn't query device capabilities" -msgstr "" -"Guvcview erro:\n" -"\n" -"NĂŁo foi possĂ­vel consultar as propriedades do dispositivo" - -#: ../src/guvcview.c:453 -msgid "Make sure the device driver supports v4l2." -msgstr "Por favor, verifique se o driver oferece suporte v4l2." - -#: ../src/guvcview.c:457 -msgid "" -"Guvcview error:\n" -"\n" -"Read method error" -msgstr "" -"Erro do Guvcview:\n" -"\n" -"Erro do mĂ©todo de leitura" - -#: ../src/guvcview.c:458 -msgid "Please try mmap instead (--capture_method=1)." -msgstr "Por favor, tente o mmap no lugar (--capture_method=1)" - -#: ../src/guvcview.c:466 -msgid "" -"Guvcview error:\n" -"\n" -"Unable to allocate Buffers" -msgstr "" -"Erro do Guvcview:\n" -"\n" -"NĂŁo foi possĂ­vel alocar Buffers" - -#: ../src/guvcview.c:467 -msgid "Please try restarting your system." -msgstr "Por favor, tente reiniciar o sistema." - -#: ../src/guvcview.c:518 -msgid "Image Controls" -msgstr "Controles de imagem" - -#. image auto capture -#: ../src/guvcview.c:561 -msgid "Stop Auto (I)" -msgstr "Parar auto (I):" - -#: ../src/guvcview.c:676 -msgid "" -"Guvcview error:\n" -"\n" -"Unable to create Video Thread" -msgstr "" -"Erro de Guvcview:\n" -"\n" -"NĂŁo foi possĂ­vel criar o thread de vĂ­deo" - -#: ../src/guvcview.c:677 -msgid "Please report it to http://developer.berlios.de/bugs/?group_id=8179" -msgstr "" -"Por favor, reporte em http://developer.berlios.de/bugs/?group_id=8179" - -#: ../src/img_controls.c:121 -msgid "Auto Focus (continuous)" -msgstr "Focagem automĂĄtica (contĂ­nua)" - -#: ../src/img_controls.c:122 -msgid "set Focus" -msgstr "Definir foco" - -#: ../src/image_format.c:35 -msgid "Jpeg (jpg)" -msgstr "Jpeg (jpg)" - -#: ../src/image_format.c:41 -msgid "Bitmap (Bmp)" -msgstr "Bitmap (Bmp)" - -#: ../src/image_format.c:47 -msgid "Portable Network Graphics (Png)" -msgstr "" - -#: ../src/image_format.c:53 -msgid "Raw Image (raw)" -msgstr "Imagem Raw (raw)" - -#. controls menu -#: ../src/menubar.c:64 -msgid "Settings" -msgstr "DefiniçÔes" - -#: ../src/menubar.c:67 -msgid "Hardware Defaults" -msgstr "PrĂ©-definição de Hardware" - -#: ../src/menubar.c:75 -msgid "Camera Button" -msgstr "BotĂŁo da CĂąmera" - -#: ../src/menubar.c:79 -msgid "Capture Image" -msgstr "Capturar Imagem" - -#: ../src/menubar.c:84 -msgid "Capture Video" -msgstr "Capturar Video" - -#. video menu -#: ../src/menubar.c:144 ../src/video_tab.c:95 -msgid "Video" -msgstr "Video" - -#: ../src/menubar.c:145 ../src/menubar.c:233 -msgid "File" -msgstr "Ficheiro" - -#: ../src/menubar.c:146 ../src/menubar.c:234 -msgid "Increment Filename" -msgstr "Increm. nome do ficheiro" - -#: ../src/menubar.c:164 -msgid "Video Codec" -msgstr "Codec de Video" - -#: ../src/menubar.c:189 -msgid "Video Codec Properties" -msgstr "Propr. Codec de Video" - -#: ../src/menubar.c:196 -msgid "Audio Codec" -msgstr "Codec de Audio" - -#: ../src/menubar.c:217 -msgid "Audio Codec Properties" -msgstr "Propr. Codec de Audio" - -#. photo menu -#: ../src/menubar.c:232 -msgid "Photo" -msgstr "Foto" - -#: ../src/options.c:753 -msgid "Prints version" -msgstr "Exibe a versĂŁo" - -#: ../src/options.c:754 -msgid "Displays debug information" -msgstr "Mostra informação de depuração" - -#: ../src/options.c:755 -msgid "Video Device to use [default: /dev/video0]" -msgstr "Dispositivo de vĂ­deo para usar [padrĂŁo: /dev/video0]" - -#: ../src/options.c:756 -msgid "Exit after adding UVC extension controls (needs root/sudo)" -msgstr "Sair apĂłs adicionar extensĂŁo de controles UVC (precisa de root/sudo)" - -#: ../src/options.c:757 -msgid "Don't stream video (image controls only)" -msgstr "Desabilitar o fluxo de vĂ­deo (apenas controles de imagens)" - -#: ../src/options.c:758 -msgid "Don't display a GUI" -msgstr "NĂŁo mostrar GUI" - -#: ../src/options.c:759 -msgid "Capture method (1-mmap (default) 2-read)" -msgstr "MĂ©todo de captura (1-mmap (padrĂŁo) 2-leitura)" - -#: ../src/options.c:760 -msgid "Configuration file" -msgstr "Arquivo de configuração" - -#: ../src/options.c:761 -msgid "Hardware accelaration (enable(1) | disable(0))" -msgstr "Aceleração de hardware (habilitado(1) | desabilitado(0))" - -#: ../src/options.c:762 -msgid "" -"Pixel " -"format(mjpg|jpeg|yuyv|yvyu|uyvy|yyuv|yu12|yv12|nv12|nv21|nv16|nv61|y41p|grey|" -"y10b|y16 |s501|s505|s508|gbrg|grbg|ba81|rggb|bgr3|rgb3)" -msgstr "" - -#: ../src/options.c:763 -msgid "Frame size, default: 640x480" -msgstr "Tamanho do quadro, padrĂŁo: 640x480" - -#: ../src/options.c:764 -msgid "Image File name" -msgstr "Nome do arquivo de imagem" - -#: ../src/options.c:765 -msgid "Image capture interval in seconds" -msgstr "Intervalo de captura de imagens em segundos" - -#: ../src/options.c:766 -msgid "Number of Pictures to capture" -msgstr "Numero de imagens a capturar" - -#: ../src/options.c:767 -msgid "Video File name (capture from start)" -msgstr "Arquivo de vĂ­deo (captura ao iniciar)" - -#: ../src/options.c:768 -msgid "Video capture time (in seconds)" -msgstr "Tempo de captura de vĂ­deo (em segundos)" - -#: ../src/options.c:769 -msgid "Exits guvcview after closing video" -msgstr "Termina o guvcview depois de fechar o vĂ­deo" - -#: ../src/options.c:770 -msgid "Number of initial frames to skip" -msgstr "Numero inicial de quadros a ignorar" - -#: ../src/options.c:771 -msgid "Show FPS value (enable(1) | disable (0))" -msgstr "Apresentar o valor FPS (habilitado(1) | desabilitado(0))" - -#: ../src/options.c:772 -msgid "Load Profile at start" -msgstr "Carrega perfil ao iniciar" - -#: ../src/options.c:773 -msgid "List controls method (0:loop, 1:next_ctrl flag [def])" -msgstr "" - -#: ../src/options.c:779 -msgid "- local options" -msgstr "- opçÔes locais" - -#. gdk_threads_enter(); -#: ../src/timers.c:119 -msgid "Cap. Image" -msgstr "Cap. imagem" - -#: ../src/timers.c:217 -msgid "Guvcview Warning:" -msgstr "Alerta Guvcview:" - -#: ../src/timers.c:217 -msgid "Not enough free space left on disk" -msgstr "Sem espaço livre suficiente no disco" - -#: ../src/v4l2_controls.c:794 -msgid "Left" -msgstr "Esquerda" - -#: ../src/v4l2_controls.c:795 -msgid "Right" -msgstr "Direita" - -#: ../src/v4l2_controls.c:799 -msgid "Down" -msgstr "Baixo" - -#: ../src/v4l2_controls.c:800 -msgid "Up" -msgstr "Cima" - -#: ../src/v4l2_controls.c:845 -msgid "Off" -msgstr "Desligado" - -#: ../src/v4l2_controls.c:845 -msgid "On" -msgstr "Ligado" - -#: ../src/v4l2_controls.c:845 -msgid "Blinking" -msgstr "Intermitente" - -#: ../src/v4l2_controls.c:845 -msgid "Auto" -msgstr "Auto" - -#. turn it into a menu control -#: ../src/v4l2_controls.c:894 -msgid "8 bit" -msgstr "8 bit" - -#: ../src/v4l2_controls.c:894 -msgid "12 bit" -msgstr "12 bit" - -#: ../src/v4l2_dyna_ctrls.c:96 -msgid "Pan (relative)" -msgstr "Deslocamento (relativo)" - -#: ../src/v4l2_dyna_ctrls.c:109 -msgid "Tilt (relative)" -msgstr "Inclinação (relativo)" - -#: ../src/v4l2_dyna_ctrls.c:122 -msgid "Pan Reset" -msgstr "Restaurar deslocamento" - -#: ../src/v4l2_dyna_ctrls.c:135 -msgid "Tilt Reset" -msgstr "Restaurar inclinação" - -#: ../src/v4l2_dyna_ctrls.c:148 -msgid "Focus (absolute)" -msgstr "Foco (absoluto)" - -#: ../src/v4l2_dyna_ctrls.c:161 -msgid "LED1 Mode" -msgstr "Modo LED1" +#: ../data/guvcview.desktop.in.in.h:2 +msgid "GTK UVC video viewer" +msgstr "Visualizador de vĂ­deo GTK UVC" -#: ../src/v4l2_dyna_ctrls.c:174 -msgid "LED1 Frequency" -msgstr "FrequĂȘncia LED1" +#: ../data/guvcview.desktop.in.in.h:3 +msgid "A video viewer and capturer for the linux uvc driver" +msgstr "Um visualizador de vĂ­deos e captura para o driver linux uvc" -#: ../src/v4l2_dyna_ctrls.c:187 -msgid "Disable video processing" -msgstr "Parar processamento de vĂ­deo" +#: ../data/guvcview.appdata.xml.in.in.h:1 +msgid "capture video from v4l2 devices" +msgstr "" -#: ../src/v4l2_dyna_ctrls.c:200 -msgid "Raw bits per pixel" -msgstr "Bits brutos por pixel" +#: ../data/guvcview.appdata.xml.in.in.h:2 +msgid "" +"Video capture tool for video4linux2 compliant cameras, with special emphasis " +"on the linux uvc driver. It provides Image (jpg, png, bmp) and Video (mjpeg, " +"flv1, wmv1, mpg2, mpg4,...) capture with sound in several " +"formats( currently: avi and matroska). I also supports a control panel " +"option (--control_only) that is compatible with any other v4l2 app." +msgstr "" -#. needed only for language files (not used) +#. +#. * needed only for language files (not used) +#. #. V4L2 control strings -#: ../src/v4l2uvc.c:57 +#: ../gview_v4l2core/v4l2_controls.c:49 msgid "User Controls" msgstr "Controles do usuĂĄrio" -#: ../src/v4l2uvc.c:58 +#: ../gview_v4l2core/v4l2_controls.c:50 msgid "Brightness" msgstr "Brilho" -#: ../src/v4l2uvc.c:59 +#: ../gview_v4l2core/v4l2_controls.c:51 msgid "Contrast" msgstr "Contraste" -#: ../src/v4l2uvc.c:60 +#: ../gview_v4l2core/v4l2_controls.c:52 msgid "Hue" msgstr "Matiz" -#: ../src/v4l2uvc.c:61 +#: ../gview_v4l2core/v4l2_controls.c:53 msgid "Saturation" msgstr "Saturação" -#: ../src/v4l2uvc.c:62 +#: ../gview_v4l2core/v4l2_controls.c:54 msgid "Sharpness" msgstr "Nitidez" -#: ../src/v4l2uvc.c:63 +#: ../gview_v4l2core/v4l2_controls.c:55 msgid "Gamma" msgstr "Gama" -#: ../src/v4l2uvc.c:64 +#: ../gview_v4l2core/v4l2_controls.c:56 msgid "Backlight Compensation" msgstr "Compensação de Luz" -#: ../src/v4l2uvc.c:65 +#: ../gview_v4l2core/v4l2_controls.c:57 msgid "Power Line Frequency" msgstr "FrequĂȘncia da linha de transmissĂŁo" -#: ../src/v4l2uvc.c:66 +#: ../gview_v4l2core/v4l2_controls.c:58 msgid "Hue, Automatic" msgstr "Matiz, AutomĂĄtico" -#: ../src/v4l2uvc.c:67 +#: ../gview_v4l2core/v4l2_controls.c:59 msgid "Focus, Auto" msgstr "Focagem, auto" -#: ../src/v4l2uvc.c:68 +#: ../gview_v4l2core/v4l2_controls.c:60 msgid "Manual Mode" msgstr "Modo manual" -#: ../src/v4l2uvc.c:69 +#: ../gview_v4l2core/v4l2_controls.c:61 msgid "Auto Mode" msgstr "Modo automĂĄtico" -#: ../src/v4l2uvc.c:70 +#: ../gview_v4l2core/v4l2_controls.c:62 msgid "Shutter Priority Mode" msgstr "Modo prioridade do obturador" -#: ../src/v4l2uvc.c:71 +#: ../gview_v4l2core/v4l2_controls.c:63 msgid "Aperture Priority Mode" msgstr "Modo prioridade da abertura" -#: ../src/v4l2uvc.c:72 +#: ../gview_v4l2core/v4l2_controls.c:64 msgid "Black Level" msgstr "NĂ­veis de preto" -#: ../src/v4l2uvc.c:73 +#: ../gview_v4l2core/v4l2_controls.c:65 msgid "White Balance, Automatic" msgstr "Balanço de brancos" -#: ../src/v4l2uvc.c:74 +#: ../gview_v4l2core/v4l2_controls.c:66 msgid "Do White Balance" msgstr "Fazer balanço de brancos" -#: ../src/v4l2uvc.c:75 +#: ../gview_v4l2core/v4l2_controls.c:67 msgid "Red Balance" msgstr "Balanço do vermelho" -#: ../src/v4l2uvc.c:76 +#: ../gview_v4l2core/v4l2_controls.c:68 msgid "Blue Balance" msgstr "Balanço do azul" -#: ../src/v4l2uvc.c:77 +#: ../gview_v4l2core/v4l2_controls.c:69 msgid "Exposure" msgstr "Exposição" -#: ../src/v4l2uvc.c:78 +#: ../gview_v4l2core/v4l2_controls.c:70 msgid "Gain, Automatic" msgstr "Ganho, automĂĄtico" -#: ../src/v4l2uvc.c:79 +#: ../gview_v4l2core/v4l2_controls.c:71 msgid "Gain" msgstr "Ganho" -#: ../src/v4l2uvc.c:80 +#: ../gview_v4l2core/v4l2_controls.c:72 msgid "Horizontal Flip" msgstr "Virar horizontalmente" -#: ../src/v4l2uvc.c:81 +#: ../gview_v4l2core/v4l2_controls.c:73 msgid "Vertical Flip" msgstr "Virar verticalmente" -#: ../src/v4l2uvc.c:82 +#: ../gview_v4l2core/v4l2_controls.c:74 msgid "Horizontal Center" msgstr "Eixo horizontal" -#: ../src/v4l2uvc.c:83 +#: ../gview_v4l2core/v4l2_controls.c:75 msgid "Vertical Center" msgstr "Eixo vertical" -#: ../src/v4l2uvc.c:84 +#: ../gview_v4l2core/v4l2_controls.c:76 msgid "Chroma AGC" msgstr "AGC de Chroma" -#: ../src/v4l2uvc.c:85 +#: ../gview_v4l2core/v4l2_controls.c:77 msgid "Color Killer" msgstr "Removedor de cores" -#: ../src/v4l2uvc.c:86 +#: ../gview_v4l2core/v4l2_controls.c:78 msgid "Color Effects" msgstr "Efeitos de cor" #. CAMERA CLASS control strings -#: ../src/v4l2uvc.c:89 +#: ../gview_v4l2core/v4l2_controls.c:81 msgid "Camera Controls" msgstr "Controles de cĂąmera" -#: ../src/v4l2uvc.c:90 +#: ../gview_v4l2core/v4l2_controls.c:82 msgid "Auto Exposure" msgstr "Exposição automĂĄtica" -#: ../src/v4l2uvc.c:91 +#: ../gview_v4l2core/v4l2_controls.c:83 msgid "Exposure Time, Absolute" msgstr "Tempo de exposição, absoluto" -#: ../src/v4l2uvc.c:92 +#: ../gview_v4l2core/v4l2_controls.c:84 msgid "Exposure, Dynamic Framerate" msgstr "Exposição, taxa de quadros dinĂąmicos" -#: ../src/v4l2uvc.c:93 +#: ../gview_v4l2core/v4l2_controls.c:85 msgid "Pan, Relative" msgstr "Deslocamento, relativo" -#: ../src/v4l2uvc.c:94 +#: ../gview_v4l2core/v4l2_controls.c:86 msgid "Tilt, Relative" msgstr "Inclinação, relativo" -#: ../src/v4l2uvc.c:95 +#: ../gview_v4l2core/v4l2_controls.c:87 msgid "Pan, Reset" msgstr "Deslocamento, restaurar" -#: ../src/v4l2uvc.c:96 +#: ../gview_v4l2core/v4l2_controls.c:88 msgid "Tilt, Reset" msgstr "Inclinação, restaurar" -#: ../src/v4l2uvc.c:97 +#: ../gview_v4l2core/v4l2_controls.c:89 msgid "Pan, Absolute" msgstr "Deslocamento, absoluto" -#: ../src/v4l2uvc.c:99 +#: ../gview_v4l2core/v4l2_controls.c:91 msgid "Focus, Absolute" msgstr "Foco, absoluto" -#: ../src/v4l2uvc.c:100 +#: ../gview_v4l2core/v4l2_controls.c:92 msgid "Focus, Relative" msgstr "Foco, relativo" -#: ../src/v4l2uvc.c:101 +#: ../gview_v4l2core/v4l2_controls.c:93 msgid "Focus, Automatic" msgstr "Foco, automĂĄtico" -#: ../src/v4l2uvc.c:102 +#: ../gview_v4l2core/v4l2_controls.c:94 msgid "Zoom, Absolute" msgstr "Zoom, absoluto" -#: ../src/v4l2uvc.c:103 +#: ../gview_v4l2core/v4l2_controls.c:95 msgid "Zoom, Relative" msgstr "Zoom, relativo" -#: ../src/v4l2uvc.c:104 +#: ../gview_v4l2core/v4l2_controls.c:96 msgid "Zoom, Continuous" msgstr "Zoom, contĂ­nuo" -#: ../src/v4l2uvc.c:105 +#: ../gview_v4l2core/v4l2_controls.c:97 msgid "Privacy" msgstr "Privacidade" #. UVC specific control strings -#: ../src/v4l2uvc.c:108 +#: ../gview_v4l2core/v4l2_controls.c:100 msgid "Exposure, Auto" msgstr "Exposição, auto" -#: ../src/v4l2uvc.c:109 +#: ../gview_v4l2core/v4l2_controls.c:101 msgid "Exposure, Auto Priority" msgstr "Exposição, prioridade auto" -#: ../src/v4l2uvc.c:110 +#: ../gview_v4l2core/v4l2_controls.c:102 msgid "Exposure (Absolute)" msgstr "Exposição (absoluta)" -#: ../src/v4l2uvc.c:111 +#: ../gview_v4l2core/v4l2_controls.c:103 msgid "White Balance Temperature, Auto" msgstr "Balanço de branco, auto" -#: ../src/v4l2uvc.c:112 +#: ../gview_v4l2core/v4l2_controls.c:104 msgid "White Balance Temperature" msgstr "Balanço de branco temperatura" -#: ../src/v4l2uvc.c:113 +#: ../gview_v4l2core/v4l2_controls.c:105 msgid "White Balance Component, Auto" msgstr "Componente de cor, auto" -#: ../src/v4l2uvc.c:114 +#: ../gview_v4l2core/v4l2_controls.c:106 msgid "White Balance Blue Component" msgstr "Balanço de branco componente azul" -#: ../src/v4l2uvc.c:115 +#: ../gview_v4l2core/v4l2_controls.c:107 msgid "White Balance Red Component" msgstr "Balando de branco componente vermelho" #. libwebcam specific control strings -#: ../src/v4l2uvc.c:118 +#: ../gview_v4l2core/v4l2_controls.c:110 msgid "Focus" msgstr "Foco" -#: ../src/v4l2uvc.c:119 +#: ../gview_v4l2core/v4l2_controls.c:111 msgid "Focus (Absolute)" msgstr "Foco (absoluto)" -#: ../src/vcodecs.c:63 +#: ../gview_v4l2core/v4l2_xu_ctrls.c:63 ../guvcview/gui_gtk3_v4l2ctrls.c:239 +msgid "Off" +msgstr "Desligado" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:64 ../guvcview/gui_gtk3_v4l2ctrls.c:239 +msgid "On" +msgstr "Ligado" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:65 ../guvcview/gui_gtk3_v4l2ctrls.c:239 +msgid "Blinking" +msgstr "Intermitente" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:66 ../guvcview/gui_gtk3_v4l2ctrls.c:239 +msgid "Auto" +msgstr "Auto" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:73 +msgid "Pan (relative)" +msgstr "Deslocamento (relativo)" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:86 +msgid "Tilt (relative)" +msgstr "Inclinação (relativo)" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:99 +msgid "Pan Reset" +msgstr "Restaurar deslocamento" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:112 +msgid "Tilt Reset" +msgstr "Restaurar inclinação" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:125 +msgid "Focus (absolute)" +msgstr "Foco (absoluto)" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:138 +msgid "LED1 Mode" +msgstr "Modo LED1" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:151 +msgid "LED1 Frequency" +msgstr "FrequĂȘncia LED1" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:164 +msgid "Disable video processing" +msgstr "Parar processamento de vĂ­deo" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:177 +msgid "Raw bits per pixel" +msgstr "Bits brutos por pixel" + +#: ../gview_encoder/audio_codecs.c:63 +msgid "PCM - uncompressed (float 32 bit)" +msgstr "" + +#: ../gview_encoder/audio_codecs.c:80 +msgid "MP2 (MPEG audio layer 2)" +msgstr "" + +#: ../gview_encoder/audio_codecs.c:97 +msgid "MP3 (MPEG audio layer 3)" +msgstr "" + +#: ../gview_encoder/audio_codecs.c:118 +msgid "AC-3 (ATSC A/52A)" +msgstr "" + +#: ../gview_encoder/audio_codecs.c:139 +msgid "AAC (Advanced Audio Coding)" +msgstr "" + +#: ../gview_encoder/audio_codecs.c:160 +msgid "Vorbis" +msgstr "Vorbis" + +#: ../gview_encoder/video_codecs.c:75 +#, fuzzy +msgid "Raw camera input" +msgstr "SaĂ­da de cĂąmera:" + +#: ../gview_encoder/video_codecs.c:111 msgid "MJPG - compressed" msgstr "MJPG - com compressĂŁo" -#: ../src/vcodecs.c:99 -msgid "YUY2 - uncomp YUV" -msgstr "YUY2 - sem compressĂŁo YUV" - -#: ../src/vcodecs.c:135 -msgid "RGB - uncomp BMP" -msgstr "RGB - Sem compressĂŁo BMP" - -#: ../src/vcodecs.c:171 +#: ../gview_encoder/video_codecs.c:147 msgid "MPEG video 1" msgstr "VĂ­deo MPEG 1" -#: ../src/vcodecs.c:207 +#: ../gview_encoder/video_codecs.c:183 msgid "FLV1 - flash video 1" msgstr "FLV1 - vĂ­deo flash 1" -#: ../src/vcodecs.c:243 +#: ../gview_encoder/video_codecs.c:219 msgid "WMV1 - win. med. video 7" msgstr "WMV1 - win. med. video 7" -#: ../src/vcodecs.c:279 +#: ../gview_encoder/video_codecs.c:255 msgid "MPG2 - MPG2 format" msgstr "MPG2 - MPEG vĂ­deo 2" -#: ../src/vcodecs.c:315 +#: ../gview_encoder/video_codecs.c:291 msgid "MS MP4 V3" msgstr "MS MP4 V3" -#: ../src/vcodecs.c:351 +#: ../gview_encoder/video_codecs.c:327 msgid "MPEG4-ASP" msgstr "MPEG4-ASP" -#: ../src/vcodecs.c:387 +#: ../gview_encoder/video_codecs.c:363 msgid "MPEG4-AVC (H264)" msgstr "MPEG4-AVC (H264)" -#: ../src/vcodecs.c:427 +#: ../gview_encoder/video_codecs.c:403 msgid "VP8 (VP8)" msgstr "VP8 (VP8)" -#: ../src/vcodecs.c:463 +#: ../gview_encoder/video_codecs.c:439 msgid "Theora (ogg theora)" msgstr "Theora (ogg theora)" -#: ../src/video_format.c:43 -msgid "AVI - avi format" -msgstr "AVI - formato avi" +#: ../guvcview/gui_gtk3_audioctrls.c:95 +msgid "Audio API:" +msgstr "API de ĂĄudio:" -#: ../src/video_format.c:52 -msgid "MKV - Matroska format" +#: ../guvcview/gui_gtk3_audioctrls.c:106 +msgid "NO SOUND" msgstr "" -#: ../src/video_format.c:61 -msgid "WEBM - format" +#: ../guvcview/gui_gtk3_audioctrls.c:107 +msgid "PORTAUDIO" +msgstr "PORTAUDIO" + +#: ../guvcview/gui_gtk3_audioctrls.c:110 +msgid "PULSEAUDIO" +msgstr "PULSEAUDIO" + +#: ../guvcview/gui_gtk3_audioctrls.c:127 +msgid "Input Device:" +msgstr "Dispositivo de entrada:" + +#: ../guvcview/gui_gtk3_audioctrls.c:161 +msgid "Sample Rate:" +msgstr "Taxa de amostragem:" + +#: ../guvcview/gui_gtk3_audioctrls.c:168 ../guvcview/gui_gtk3_audioctrls.c:214 +msgid "Dev. Default" +msgstr "PadrĂŁo" + +#: ../guvcview/gui_gtk3_audioctrls.c:207 +msgid "Channels:" +msgstr "Canais:" + +#: ../guvcview/gui_gtk3_audioctrls.c:215 +msgid "1 - mono" +msgstr "1 - mono" + +#: ../guvcview/gui_gtk3_audioctrls.c:216 +msgid "2 - stereo" +msgstr "2 - stereo" + +#: ../guvcview/gui_gtk3_audioctrls.c:235 +#, fuzzy +msgid "---- Audio Filters ----" +msgstr "---- Filtros de vĂ­deo ----" + +#. Echo FX +#: ../guvcview/gui_gtk3_audioctrls.c:255 +msgid " Echo" +msgstr " Eco" + +#. Reverb FX +#: ../guvcview/gui_gtk3_audioctrls.c:268 +msgid " Reverb" +msgstr " Reverb" + +#. Fuzz FX +#: ../guvcview/gui_gtk3_audioctrls.c:281 +msgid " Fuzz" +msgstr " RuĂ­do" + +#. WahWah FX +#: ../guvcview/gui_gtk3_audioctrls.c:294 +msgid " WahWah" +msgstr " WahWah" + +#. Ducky FX +#: ../guvcview/gui_gtk3_audioctrls.c:307 +msgid " Ducky" +msgstr " Patinho" + +#: ../guvcview/gui_gtk3.c:310 ../guvcview/gui_gtk3_callbacks.c:749 +msgid "Stop Video (V)" +msgstr "Parar vĂ­deo (V)" + +#. video button +#: ../guvcview/gui_gtk3.c:315 ../guvcview/gui_gtk3.c:600 +#: ../guvcview/gui_gtk3_callbacks.c:755 +msgid "Cap. Video (V)" +msgstr "Cap. vĂ­deo (V)" + +#: ../guvcview/gui_gtk3.c:376 ../guvcview/gui_gtk3.c:383 +msgid "Error" +msgstr "Erro" + +#: ../guvcview/gui_gtk3.c:379 ../guvcview/gui_gtk3.c:386 +#: ../guvcview/gui_gtk3_callbacks.c:2097 +msgid "_Ok" msgstr "" -#: ../src/video_tab.c:216 -msgid "Frame Rate:" -msgstr "Taxa de quadros:" +#: ../guvcview/gui_gtk3.c:380 ../guvcview/gui_gtk3_callbacks.c:185 +#: ../guvcview/gui_gtk3_callbacks.c:199 ../guvcview/gui_gtk3_callbacks.c:522 +#: ../guvcview/gui_gtk3_callbacks.c:624 ../guvcview/gui_gtk3_callbacks.c:1755 +#: ../guvcview/gui_gtk3_callbacks.c:2098 +#, fuzzy +msgid "_Cancel" +msgstr "cancelar" + +#: ../guvcview/gui_gtk3.c:407 +msgid "" +"\n" +"You have more than one video device installed.\n" +"Do you want to try another one ?\n" +msgstr "" +"\n" +"Foram detectados mĂșltiplos dispositivos de vĂ­deo.\n" +"Quer tentar outro?\n" + +#. ---- Devices ---- +#: ../guvcview/gui_gtk3.c:414 ../guvcview/gui_gtk3_videoctrls.c:106 +msgid "Device:" +msgstr "Dispositivo:" + +#: ../guvcview/gui_gtk3.c:516 +msgid "Guvcview Video Capture" +msgstr "Capturador de vĂ­deo Guvcview" + +#: ../guvcview/gui_gtk3.c:525 +#, fuzzy +msgid "Guvcview" +msgstr "guvcview" + +#: ../guvcview/gui_gtk3.c:572 +#, fuzzy +msgid "Stop Cap. (I)" +msgstr "Parar auto (I):" + +#: ../guvcview/gui_gtk3.c:578 ../guvcview/gui_gtk3_callbacks.c:720 +#: ../guvcview/video_capture.c:250 +msgid "Cap. Image (I)" +msgstr "Cap. imagem (I)" + +#. quit button +#. GtkWidget *quitButton = gtk_button_new_from_stock(GTK_STOCK_QUIT); +#: ../guvcview/gui_gtk3.c:621 +msgid "_Quit" +msgstr "" + +#: ../guvcview/gui_gtk3.c:667 +msgid "Image Controls" +msgstr "Controles de imagem" + +#: ../guvcview/gui_gtk3.c:703 +#, fuzzy +msgid "H264 Controls" +msgstr "Controles do usuĂĄrio" + +#: ../guvcview/gui_gtk3.c:742 +#, fuzzy +msgid "Video Controls" +msgstr "Controles do usuĂĄrio" + +#: ../guvcview/gui_gtk3.c:777 +#, fuzzy +msgid "Audio Controls" +msgstr "Controles do usuĂĄrio" + +#: ../guvcview/gui_gtk3_callbacks.c:182 ../guvcview/gui_gtk3_menu.c:72 +msgid "Save Profile" +msgstr "Salvar perfil" + +#: ../guvcview/gui_gtk3_callbacks.c:186 ../guvcview/gui_gtk3_callbacks.c:523 +#: ../guvcview/gui_gtk3_callbacks.c:625 +msgid "_Save" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:196 ../guvcview/gui_gtk3_menu.c:71 +msgid "Load Profile" +msgstr "Carregar Perfil" + +#: ../guvcview/gui_gtk3_callbacks.c:200 +msgid "_Open" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:208 ../guvcview/gui_gtk3_callbacks.c:531 +#: ../guvcview/gui_gtk3_callbacks.c:634 +msgid "File Format:" +msgstr "Formato do arquivo:" + +#: ../guvcview/gui_gtk3_callbacks.c:220 +msgid "gpfl (*.gpfl)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:221 +msgid "any (*.*)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:519 +#, fuzzy +msgid "Photo file name" +msgstr "Nome do arquivo de imagem" + +#: ../guvcview/gui_gtk3_callbacks.c:543 +#, fuzzy +msgid "Raw (*.raw)" +msgstr "Imagem Raw (raw)" + +#: ../guvcview/gui_gtk3_callbacks.c:544 +#, fuzzy +msgid "Jpeg (*.jpg)" +msgstr "Jpeg (jpg)" + +#: ../guvcview/gui_gtk3_callbacks.c:545 +msgid "Png (*.png)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:546 +msgid "Bmp (*.bmp)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:621 +#, fuzzy +msgid "Video file name" +msgstr "Nome do arquivo de imagem" + +#: ../guvcview/gui_gtk3_callbacks.c:646 +msgid "Matroska (*.mkv)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:647 +msgid "WebM (*.webm)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:648 +msgid "Avi (*.avi)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:1158 +msgid "start new" +msgstr "iniciar novo" + +#: ../guvcview/gui_gtk3_callbacks.c:1161 +msgid "restart" +msgstr "reiniciar" + +#: ../guvcview/gui_gtk3_callbacks.c:1163 +msgid "new" +msgstr "novo" + +#: ../guvcview/gui_gtk3_callbacks.c:1165 +msgid "cancel" +msgstr "cancelar" + +#: ../guvcview/gui_gtk3_callbacks.c:1170 +msgid "" +"launch new process or restart?.\n" +"\n" +msgstr "" +"lançar novo processo ou recomeçar?.\n" +"\n" + +#: ../guvcview/gui_gtk3_callbacks.c:1751 +#, fuzzy +msgid "video codec values" +msgstr "valores do codec de ĂĄudio" + +#: ../guvcview/gui_gtk3_callbacks.c:1754 +msgid "_OK" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:1760 +msgid "" +" encoder fps: \n" +" (0 - use fps combobox value)" +msgstr "" +" codificador fps: \n" +" (0 - use o valor fps da caixa de marcação)" + +#: ../guvcview/gui_gtk3_callbacks.c:1773 +msgid " monotonic pts" +msgstr " pts monotonico" + +#. bit rate +#: ../guvcview/gui_gtk3_callbacks.c:1780 ../guvcview/gui_gtk3_callbacks.c:2105 +msgid "bit rate: " +msgstr "taxa de bits: " + +#: ../guvcview/gui_gtk3_callbacks.c:1793 +msgid "qmax: " +msgstr "qmax: " + +#: ../guvcview/gui_gtk3_callbacks.c:1806 +msgid "qmin: " +msgstr "qmin: " + +#: ../guvcview/gui_gtk3_callbacks.c:1819 +msgid "max. qdiff: " +msgstr "qdiff max: " + +#: ../guvcview/gui_gtk3_callbacks.c:1832 +msgid "dia size: " +msgstr "tamanho do dia: " + +#: ../guvcview/gui_gtk3_callbacks.c:1845 +msgid "pre dia size: " +msgstr "tamanho do diĂą prĂ©: " + +#: ../guvcview/gui_gtk3_callbacks.c:1858 +msgid "pre me: " +msgstr "pre me: " + +#: ../guvcview/gui_gtk3_callbacks.c:1871 +msgid "pre cmp: " +msgstr "pre cmp: " + +#: ../guvcview/gui_gtk3_callbacks.c:1884 +msgid "cmp: " +msgstr "cmp: " -#: ../src/video_tab.c:223 -msgid " Show" -msgstr " Mostrar" +#: ../guvcview/gui_gtk3_callbacks.c:1897 +msgid "sub cmp: " +msgstr "sub cmp: " -#: ../src/video_tab.c:245 -msgid "Resolution:" -msgstr "Resolução:" +#: ../guvcview/gui_gtk3_callbacks.c:1910 +msgid "last predictor count: " +msgstr "Ășltima contagem preditor: " -#: ../src/video_tab.c:271 -msgid "Camera Output:" -msgstr "SaĂ­da de cĂąmera:" +#: ../guvcview/gui_gtk3_callbacks.c:1923 +msgid "gop size: " +msgstr "tamanho do gop: " -#: ../src/video_tab.c:293 -msgid "Apply" -msgstr "Aplicar" +#: ../guvcview/gui_gtk3_callbacks.c:1936 +msgid "qcompress: " +msgstr "qcompress: " -#: ../src/video_tab.c:300 -msgid "Quality:" -msgstr "Qualidade:" +#: ../guvcview/gui_gtk3_callbacks.c:1949 +msgid "qblur: " +msgstr "qblur: " -#: ../src/video_tab.c:310 -msgid "---- Video Filters ----" -msgstr "---- Filtros de vĂ­deo ----" +#: ../guvcview/gui_gtk3_callbacks.c:1962 +msgid "subq: " +msgstr "subq: " -#. Mirror -#: ../src/video_tab.c:329 -msgid " Mirror" -msgstr " Espelho" +#: ../guvcview/gui_gtk3_callbacks.c:1975 +msgid "framerefs: " +msgstr "framerefs: " -#. Upturn -#: ../src/video_tab.c:340 -msgid " Invert" -msgstr " Invertido" +#: ../guvcview/gui_gtk3_callbacks.c:1988 +msgid "me method: " +msgstr "mĂ©todo me: " -#. Negate -#: ../src/video_tab.c:351 -msgid " Negative" -msgstr " Negativo" +#: ../guvcview/gui_gtk3_callbacks.c:2001 +msgid "mb decision: " +msgstr "decisĂŁo mb: " -#. Mono -#: ../src/video_tab.c:362 -msgid " Mono" -msgstr " Cinza" +#: ../guvcview/gui_gtk3_callbacks.c:2014 +msgid "max B frames: " +msgstr "Max quadros B: " -#. Pieces -#: ../src/video_tab.c:374 -msgid " Pieces" -msgstr " Pedaços" +#: ../guvcview/gui_gtk3_callbacks.c:2027 +msgid "num threads: " +msgstr "num threads: " -#. Particles -#: ../src/video_tab.c:386 -msgid " Particles" -msgstr " PartĂ­culas" +#: ../guvcview/gui_gtk3_callbacks.c:2094 +msgid "audio codec values" +msgstr "valores do codec de ĂĄudio" -#: ../src/uvc_h264.c:596 -msgid "H264 Controls" +#. sample format +#: ../guvcview/gui_gtk3_callbacks.c:2119 +msgid "sample format: " msgstr "" -#: ../src/uvc_h264.c:615 +#: ../guvcview/gui_gtk3_h264ctrls.c:622 +#, fuzzy msgid "Rate Control Mode:" -msgstr "" +msgstr "Controles de imagem" -#: ../src/uvc_h264.c:626 +#: ../guvcview/gui_gtk3_h264ctrls.c:633 msgid "CBR" msgstr "" -#: ../src/uvc_h264.c:629 +#: ../guvcview/gui_gtk3_h264ctrls.c:636 msgid "VBR" msgstr "" -#: ../src/uvc_h264.c:633 +#: ../guvcview/gui_gtk3_h264ctrls.c:640 msgid "Constant QP" msgstr "" -#: ../src/uvc_h264.c:651 +#: ../guvcview/gui_gtk3_h264ctrls.c:658 msgid "Rate Control Mode flags:" msgstr "" -#: ../src/uvc_h264.c:676 +#: ../guvcview/gui_gtk3_h264ctrls.c:683 msgid "Temporal Scale Mode:" msgstr "" -#: ../src/uvc_h264.c:704 +#: ../guvcview/gui_gtk3_h264ctrls.c:711 msgid "Spatial Scale Mode:" msgstr "" -#: ../src/uvc_h264.c:737 +#: ../guvcview/gui_gtk3_h264ctrls.c:741 msgid "Frame Interval (100ns units):" msgstr "" -#: ../src/uvc_h264.c:772 +#: ../guvcview/gui_gtk3_h264ctrls.c:778 +#, fuzzy msgid "Bit Rate:" -msgstr "" +msgstr "taxa de bits: " -#: ../src/uvc_h264.c:795 +#: ../guvcview/gui_gtk3_h264ctrls.c:801 msgid "Hints:" msgstr "" -#: ../src/uvc_h264.c:800 +#: ../guvcview/gui_gtk3_h264ctrls.c:806 +#, fuzzy msgid "Resolution" -msgstr "" +msgstr "Resolução:" -#: ../src/uvc_h264.c:804 +#: ../guvcview/gui_gtk3_h264ctrls.c:810 +#, fuzzy msgid "Profile" -msgstr "" +msgstr "Salvar perfil" -#: ../src/uvc_h264.c:808 +#: ../guvcview/gui_gtk3_h264ctrls.c:814 +#, fuzzy msgid "Rate Control" -msgstr "" +msgstr "Controles de imagem" -#: ../src/uvc_h264.c:812 +#: ../guvcview/gui_gtk3_h264ctrls.c:818 msgid "Usage Type" msgstr "" -#: ../src/uvc_h264.c:816 +#: ../guvcview/gui_gtk3_h264ctrls.c:822 msgid "Slice Mode" msgstr "" -#: ../src/uvc_h264.c:820 +#: ../guvcview/gui_gtk3_h264ctrls.c:826 msgid "Slice Unit" msgstr "" -#: ../src/uvc_h264.c:824 +#: ../guvcview/gui_gtk3_h264ctrls.c:830 msgid "MVC View" msgstr "" -#: ../src/uvc_h264.c:828 +#: ../guvcview/gui_gtk3_h264ctrls.c:834 msgid "Temporal Scale" msgstr "" -#: ../src/uvc_h264.c:832 +#: ../guvcview/gui_gtk3_h264ctrls.c:838 msgid "SNR Scale" msgstr "" -#: ../src/uvc_h264.c:836 +#: ../guvcview/gui_gtk3_h264ctrls.c:842 msgid "Spatial Scale" msgstr "" -#: ../src/uvc_h264.c:840 +#: ../guvcview/gui_gtk3_h264ctrls.c:846 msgid "Spatial Layer Ratio" msgstr "" -#: ../src/uvc_h264.c:844 +#: ../guvcview/gui_gtk3_h264ctrls.c:850 +#, fuzzy msgid "Frame Interval" -msgstr "" +msgstr "Taxa de quadros:" -#: ../src/uvc_h264.c:848 +#: ../guvcview/gui_gtk3_h264ctrls.c:854 msgid "Leaky Bucket Size" msgstr "" -#: ../src/uvc_h264.c:852 +#: ../guvcview/gui_gtk3_h264ctrls.c:858 msgid "Bit Rate" msgstr "" -#: ../src/uvc_h264.c:856 ../src/uvc_h264.c:1250 +#: ../guvcview/gui_gtk3_h264ctrls.c:862 ../guvcview/gui_gtk3_h264ctrls.c:1220 msgid "CABAC" msgstr "" -#: ../src/uvc_h264.c:860 +#: ../guvcview/gui_gtk3_h264ctrls.c:866 msgid "(I) Frame Period" msgstr "" -#: ../src/uvc_h264.c:907 +#: ../guvcview/gui_gtk3_h264ctrls.c:878 msgid "Slice Mode:" msgstr "" -#: ../src/uvc_h264.c:914 +#: ../guvcview/gui_gtk3_h264ctrls.c:885 msgid "no multiple slices" msgstr "" -#: ../src/uvc_h264.c:916 +#: ../guvcview/gui_gtk3_h264ctrls.c:887 msgid "bits/slice" msgstr "" -#: ../src/uvc_h264.c:918 +#: ../guvcview/gui_gtk3_h264ctrls.c:889 msgid "Mbits/slice" msgstr "" -#: ../src/uvc_h264.c:920 +#: ../guvcview/gui_gtk3_h264ctrls.c:891 msgid "slices/frame" msgstr "" -#: ../src/uvc_h264.c:929 +#: ../guvcview/gui_gtk3_h264ctrls.c:900 msgid "Slice Units:" msgstr "" -#: ../src/uvc_h264.c:950 +#: ../guvcview/gui_gtk3_h264ctrls.c:921 +#, fuzzy msgid "Profile:" -msgstr "" +msgstr "Salvar perfil" -#: ../src/uvc_h264.c:957 +#: ../guvcview/gui_gtk3_h264ctrls.c:928 +#, fuzzy msgid "Baseline Profile" -msgstr "" +msgstr "Salvar perfil" -#: ../src/uvc_h264.c:959 +#: ../guvcview/gui_gtk3_h264ctrls.c:930 +#, fuzzy msgid "Main Profile" -msgstr "" +msgstr "Salvar perfil" -#: ../src/uvc_h264.c:961 +#: ../guvcview/gui_gtk3_h264ctrls.c:932 +#, fuzzy msgid "High Profile" -msgstr "" +msgstr "Salvar perfil" -#: ../src/uvc_h264.c:963 +#: ../guvcview/gui_gtk3_h264ctrls.c:934 msgid "Scalable Baseline Profile" msgstr "" -#: ../src/uvc_h264.c:965 +#: ../guvcview/gui_gtk3_h264ctrls.c:936 +#, fuzzy msgid "Scalable High Profile" -msgstr "" +msgstr "Salvar perfil" -#: ../src/uvc_h264.c:967 +#: ../guvcview/gui_gtk3_h264ctrls.c:938 msgid "Multiview High Profile" msgstr "" -#: ../src/uvc_h264.c:969 +#: ../guvcview/gui_gtk3_h264ctrls.c:940 +#, fuzzy msgid "Stereo High Profile" -msgstr "" +msgstr "Salvar perfil" -#: ../src/uvc_h264.c:1008 +#: ../guvcview/gui_gtk3_h264ctrls.c:979 msgid "Profile flags:" msgstr "" -#: ../src/uvc_h264.c:1033 +#: ../guvcview/gui_gtk3_h264ctrls.c:1004 msgid "(I) Frame Period (ms):" msgstr "" -#: ../src/uvc_h264.c:1054 +#: ../guvcview/gui_gtk3_h264ctrls.c:1025 msgid "Estimated Video Delay (ms):" msgstr "" -#: ../src/uvc_h264.c:1075 +#: ../guvcview/gui_gtk3_h264ctrls.c:1046 msgid "Estimated Max Config Delay (ms):" msgstr "" -#: ../src/uvc_h264.c:1096 +#: ../guvcview/gui_gtk3_h264ctrls.c:1067 msgid "Usage Type:" msgstr "" -#: ../src/uvc_h264.c:1103 +#: ../guvcview/gui_gtk3_h264ctrls.c:1074 msgid "Real-time" msgstr "" -#: ../src/uvc_h264.c:1105 +#: ../guvcview/gui_gtk3_h264ctrls.c:1076 msgid "Broadcast" msgstr "" -#: ../src/uvc_h264.c:1107 +#: ../guvcview/gui_gtk3_h264ctrls.c:1078 msgid "Storage" msgstr "" -#: ../src/uvc_h264.c:1109 +#: ../guvcview/gui_gtk3_h264ctrls.c:1080 msgid "(0) Non-scalable single layer AVC" msgstr "" -#: ../src/uvc_h264.c:1111 +#: ../guvcview/gui_gtk3_h264ctrls.c:1082 msgid "(1) SVC temporal scalability with hierarchical P" msgstr "" -#: ../src/uvc_h264.c:1113 +#: ../guvcview/gui_gtk3_h264ctrls.c:1084 msgid "(2q) SVC temporal scalability + Quality/SNR scalability" msgstr "" -#: ../src/uvc_h264.c:1115 +#: ../guvcview/gui_gtk3_h264ctrls.c:1086 msgid "(2s) SVC temporal scalability + spatial scalability" msgstr "" -#: ../src/uvc_h264.c:1117 +#: ../guvcview/gui_gtk3_h264ctrls.c:1088 msgid "(3) Full SVC scalability" msgstr "" -#: ../src/uvc_h264.c:1131 +#: ../guvcview/gui_gtk3_h264ctrls.c:1102 msgid "SNR Control Mode:" msgstr "" -#: ../src/uvc_h264.c:1138 +#: ../guvcview/gui_gtk3_h264ctrls.c:1109 msgid "No SNR Enhancement Layer" msgstr "" -#: ../src/uvc_h264.c:1140 +#: ../guvcview/gui_gtk3_h264ctrls.c:1111 msgid "CGS NonRewrite (2 Layer)" msgstr "" -#: ../src/uvc_h264.c:1142 +#: ../guvcview/gui_gtk3_h264ctrls.c:1113 msgid "CGS NonRewrite (3 Layer)" msgstr "" -#: ../src/uvc_h264.c:1144 +#: ../guvcview/gui_gtk3_h264ctrls.c:1115 msgid "CGS Rewrite (2 Layer)" msgstr "" -#: ../src/uvc_h264.c:1146 +#: ../guvcview/gui_gtk3_h264ctrls.c:1117 msgid "CGS Rewrite (3 Layer)" msgstr "" -#: ../src/uvc_h264.c:1148 +#: ../guvcview/gui_gtk3_h264ctrls.c:1119 msgid "MGS (2 Layer)" msgstr "" -#: ../src/uvc_h264.c:1173 +#: ../guvcview/gui_gtk3_h264ctrls.c:1144 msgid "Stream Mux Enable" msgstr "" -#: ../src/uvc_h264.c:1180 +#: ../guvcview/gui_gtk3_h264ctrls.c:1151 msgid "Embed H.264 aux stream" msgstr "" -#: ../src/uvc_h264.c:1182 +#: ../guvcview/gui_gtk3_h264ctrls.c:1153 msgid "Embed YUY2 aux stream" msgstr "" -#: ../src/uvc_h264.c:1184 +#: ../guvcview/gui_gtk3_h264ctrls.c:1155 msgid "Embed NV12 aux stream" msgstr "" -#: ../src/uvc_h264.c:1204 +#: ../guvcview/gui_gtk3_h264ctrls.c:1175 msgid "MJPG payload container" msgstr "" -#: ../src/uvc_h264.c:1219 +#: ../guvcview/gui_gtk3_h264ctrls.c:1189 +#, fuzzy msgid "Stream Format:" -msgstr "" +msgstr "Formato do arquivo:" -#: ../src/uvc_h264.c:1227 +#: ../guvcview/gui_gtk3_h264ctrls.c:1197 msgid "Byte stream format (H.264 Annex-B)" msgstr "" -#: ../src/uvc_h264.c:1229 +#: ../guvcview/gui_gtk3_h264ctrls.c:1199 +#, fuzzy msgid "NAL stream format" -msgstr "" +msgstr "AVI - formato avi" -#: ../src/uvc_h264.c:1240 +#: ../guvcview/gui_gtk3_h264ctrls.c:1210 msgid "Entropy CABAC:" msgstr "" -#: ../src/uvc_h264.c:1248 +#: ../guvcview/gui_gtk3_h264ctrls.c:1218 msgid "CAVLC" msgstr "" -#: ../src/uvc_h264.c:1261 +#: ../guvcview/gui_gtk3_h264ctrls.c:1231 msgid "Picture timing SEI" msgstr "" -#: ../src/uvc_h264.c:1268 +#: ../guvcview/gui_gtk3_h264ctrls.c:1238 +#, fuzzy msgid "B Frames:" -msgstr "" +msgstr "Max quadros B: " -#: ../src/uvc_h264.c:1293 +#: ../guvcview/gui_gtk3_h264ctrls.c:1263 msgid "Preview Flipped" msgstr "" -#: ../src/uvc_h264.c:1300 +#: ../guvcview/gui_gtk3_h264ctrls.c:1270 msgid "Additional MVC Views:" msgstr "" -#: ../src/uvc_h264.c:1325 +#: ../guvcview/gui_gtk3_h264ctrls.c:1295 msgid "Simulcast stream index:" msgstr "" -#: ../src/uvc_h264.c:1350 +#: ../guvcview/gui_gtk3_h264ctrls.c:1320 msgid "Spatial Layer Ratio:" msgstr "" -#: ../src/uvc_h264.c:1379 +#: ../guvcview/gui_gtk3_h264ctrls.c:1349 msgid "Leaky Bucket Size (ms):" msgstr "" #. encoder reset -#: ../src/uvc_h264.c:1406 +#: ../guvcview/gui_gtk3_h264ctrls.c:1376 +#, fuzzy msgid "Encoder Reset" -msgstr "" +msgstr "Restaurar deslocamento" -#. -#. h264_controls->probe_button = gtk_button_new_with_label(_("PROBE")); -#. g_signal_connect (GTK_BUTTON(h264_controls->probe_button), "clicked", +#. +#. GtkWidget *probe_button = gtk_button_new_with_label(_("PROBE")); +#. g_signal_connect (GTK_BUTTON(probe_button), "clicked", #. G_CALLBACK (h264_probe_button_clicked), all_data); -#. -#. gtk_grid_attach (GTK_GRID(table), h264_controls->probe_button, 0, line, 1 ,1); -#. gtk_widget_show(h264_controls->probe_button); -#. -#: ../src/uvc_h264.c:1421 +#. +#. gtk_grid_attach (GTK_GRID(h264_controls_grid), probe_button, 0, line, 1 ,1); +#. gtk_widget_show(probe_button); +#. +#: ../guvcview/gui_gtk3_h264ctrls.c:1391 msgid "COMMIT" msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:70 +msgid "Settings" +msgstr "DefiniçÔes" + +#: ../guvcview/gui_gtk3_menu.c:73 +msgid "Hardware Defaults" +msgstr "PrĂ©-definição de Hardware" + +#: ../guvcview/gui_gtk3_menu.c:81 +msgid "Camera Button" +msgstr "BotĂŁo da CĂąmera" + +#: ../guvcview/gui_gtk3_menu.c:86 +msgid "Capture Image" +msgstr "Capturar Imagem" + +#: ../guvcview/gui_gtk3_menu.c:91 +msgid "Capture Video" +msgstr "Capturar Video" + +#: ../guvcview/gui_gtk3_menu.c:134 +msgid "Photo" +msgstr "Foto" + +#: ../guvcview/gui_gtk3_menu.c:135 ../guvcview/gui_gtk3_menu.c:159 +msgid "File" +msgstr "Ficheiro" + +#: ../guvcview/gui_gtk3_menu.c:136 ../guvcview/gui_gtk3_menu.c:160 +msgid "Increment Filename" +msgstr "Increm. nome do ficheiro" + +#: ../guvcview/gui_gtk3_menu.c:158 +msgid "Video" +msgstr "Video" + +#: ../guvcview/gui_gtk3_menu.c:175 +msgid "Video Codec" +msgstr "Codec de Video" + +#: ../guvcview/gui_gtk3_menu.c:202 +msgid "Video Codec Properties" +msgstr "Propr. Codec de Video" + +#: ../guvcview/gui_gtk3_menu.c:208 +msgid "Audio Codec" +msgstr "Codec de Audio" + +#: ../guvcview/gui_gtk3_menu.c:235 +msgid "Audio Codec Properties" +msgstr "Propr. Codec de Audio" + +#: ../guvcview/gui_gtk3_v4l2ctrls.c:174 +msgid "Left" +msgstr "Esquerda" + +#: ../guvcview/gui_gtk3_v4l2ctrls.c:175 +msgid "Right" +msgstr "Direita" + +#: ../guvcview/gui_gtk3_v4l2ctrls.c:179 +msgid "Down" +msgstr "Baixo" + +#: ../guvcview/gui_gtk3_v4l2ctrls.c:180 +msgid "Up" +msgstr "Cima" + +#. turn it into a menu control +#: ../guvcview/gui_gtk3_v4l2ctrls.c:296 +msgid "8 bit" +msgstr "8 bit" + +#: ../guvcview/gui_gtk3_v4l2ctrls.c:296 +msgid "12 bit" +msgstr "12 bit" + +#. add a virtual control for software autofocus +#: ../guvcview/gui_gtk3_v4l2ctrls.c:348 +msgid "Auto Focus (continuous)" +msgstr "Focagem automĂĄtica (contĂ­nua)" + +#: ../guvcview/gui_gtk3_v4l2ctrls.c:349 +msgid "set Focus" +msgstr "Definir foco" + +#. control_widgets_list[n].widget2 = gtk_button_new_from_stock(GTK_STOCK_APPLY); +#. control_widgets_list[n].widget2= gtk_button_new_from_stock(GTK_STOCK_APPLY); +#. control_widgets_list[n].widget2 = gtk_button_new_from_stock(GTK_STOCK_APPLY); +#: ../guvcview/gui_gtk3_v4l2ctrls.c:433 ../guvcview/gui_gtk3_v4l2ctrls.c:456 +#: ../guvcview/gui_gtk3_v4l2ctrls.c:478 +#, fuzzy +msgid "_Apply" +msgstr "Aplicar" + +#: ../guvcview/gui_gtk3_videoctrls.c:144 +msgid "Frame Rate:" +msgstr "Taxa de quadros:" + +#: ../guvcview/gui_gtk3_videoctrls.c:204 +msgid "Resolution:" +msgstr "Resolução:" + +#: ../guvcview/gui_gtk3_videoctrls.c:254 +msgid "Camera Output:" +msgstr "SaĂ­da de cĂąmera:" + +#: ../guvcview/gui_gtk3_videoctrls.c:287 +msgid "---- Video Filters ----" +msgstr "---- Filtros de vĂ­deo ----" + +#. Mirror FX +#: ../guvcview/gui_gtk3_videoctrls.c:307 +msgid " Mirror" +msgstr " Espelho" + +#. Upturn FX +#: ../guvcview/gui_gtk3_videoctrls.c:319 +msgid " Invert" +msgstr " Invertido" + +#. Negate FX +#: ../guvcview/gui_gtk3_videoctrls.c:331 +msgid " Negative" +msgstr " Negativo" + +#. Mono FX +#: ../guvcview/gui_gtk3_videoctrls.c:343 +msgid " Mono" +msgstr " Cinza" + +#. Pieces FX +#: ../guvcview/gui_gtk3_videoctrls.c:356 +msgid " Pieces" +msgstr " Pedaços" + +#. Particles +#: ../guvcview/gui_gtk3_videoctrls.c:369 +msgid " Particles" +msgstr " PartĂ­culas" + +#: ../guvcview/options.c:51 +msgid "Print help" +msgstr "" + +#: ../guvcview/options.c:58 +#, fuzzy +msgid "Print version" +msgstr "Exibe a versĂŁo" + +#: ../guvcview/options.c:64 +msgid "LEVEL" +msgstr "" + +#: ../guvcview/options.c:65 +msgid "Set Verbosity level (def: 0)" +msgstr "" + +#: ../guvcview/options.c:71 +msgid "DEVICE" +msgstr "" + +#: ../guvcview/options.c:72 +#, fuzzy +msgid "Set device name (def: /dev/video0)" +msgstr "Dispositivo de vĂ­deo para usar [padrĂŁo: /dev/video0]" + +#: ../guvcview/options.c:78 +msgid "METHOD" +msgstr "" + +#: ../guvcview/options.c:79 +#, fuzzy +msgid "Set capture method [read | mmap (def)]" +msgstr "MĂ©todo de captura (1-mmap (padrĂŁo) 2-leitura)" + +#: ../guvcview/options.c:85 +msgid "WIDTHxHEIGHT" +msgstr "" + +#: ../guvcview/options.c:86 +msgid "Request resolution (e.g 640x480)" +msgstr "" + +#: ../guvcview/options.c:92 +msgid "FOURCC" +msgstr "" + +#: ../guvcview/options.c:93 +msgid "Request format (e.g MJPG)" +msgstr "" + +#: ../guvcview/options.c:99 +msgid "RENDER_API" +msgstr "" + +#: ../guvcview/options.c:100 +msgid "Select render API (e.g none; sdl)" +msgstr "" + +#: ../guvcview/options.c:106 +msgid "AUDIO_API" +msgstr "" + +#: ../guvcview/options.c:107 +msgid "Select audio API (e.g none; port; pulse)" +msgstr "" + +#: ../guvcview/options.c:113 +msgid "AUDIO_DEVICE" +msgstr "" + +#: ../guvcview/options.c:114 +msgid "Select audio device index for selected api (0..N)" +msgstr "" + +#: ../guvcview/options.c:120 +msgid "GUI_API" +msgstr "" + +#: ../guvcview/options.c:121 +msgid "Select GUI API (e.g none; gtk3)" +msgstr "" + +#: ../guvcview/options.c:127 ../guvcview/options.c:134 +msgid "CODEC" +msgstr "" + +#: ../guvcview/options.c:128 +msgid "Audio codec [pcm mp2 mp3 aac ac3 vorb]" +msgstr "" + +#: ../guvcview/options.c:135 +msgid "Video codec [raw mjpg mpeg flv1 wmv1 mpg2 mp43 dx50 h264 vp80 theo]" +msgstr "" + +#: ../guvcview/options.c:141 ../guvcview/options.c:148 +#: ../guvcview/options.c:155 +msgid "FILENAME" +msgstr "" + +#: ../guvcview/options.c:142 +#, fuzzy +msgid "load control profile" +msgstr "Carregar Perfil" + +#: ../guvcview/options.c:149 +msgid "filename for captured video)" +msgstr "" + +#: ../guvcview/options.c:156 +msgid "filename for captured image)" +msgstr "" + +#: ../guvcview/options.c:162 ../guvcview/options.c:169 +msgid "TIME_IN_SEC" +msgstr "" + +#: ../guvcview/options.c:163 +msgid "time (double) in sec. for video capture)" +msgstr "" + +#: ../guvcview/options.c:170 +msgid "time (double) in sec. between captured photos)" +msgstr "" + +#: ../guvcview/options.c:176 +msgid "TOTAL" +msgstr "" + +#: ../guvcview/options.c:177 +msgid "total number of captured photos)" +msgstr "" + +#: ../guvcview/options.c:184 +msgid "Start in control panel mode" +msgstr "" + +#: ../guvcview/options.c:307 +#, fuzzy, c-format +msgid "" +"Guvcview version %s\n" +"\n" +msgstr "Alerta Guvcview:" + +#: ../guvcview/options.c:308 +#, c-format +msgid "" +"Usage:\n" +" guvcview [OPTIONS]\n" +"\n" +msgstr "" + +#: ../guvcview/options.c:309 +#, c-format +msgid "OPTIONS:\n" +msgstr "" + +#: ../guvcview/video_capture.c:819 +#, c-format +msgid "saving video to %s" +msgstr "" + +#. if(debug_level > 1) +#. printf("GUVCVIEW: saving image to %s\n", img_filename); +#: ../guvcview/video_capture.c:1069 +#, c-format +msgid "saving image to %s" +msgstr "" + +#~ msgid "MPEG2 - (lavc)" +#~ msgstr "MPEG2 - (lavc)" + +#~ msgid "MP3 - (lavc)" +#~ msgstr "MP3 - (lavc)" + +#~ msgid "Dolby AC3 - (lavc)" +#~ msgstr "Dolby AC3 - (lavc)" + +#~ msgid "Audio" +#~ msgstr "Áudio" + +#~ msgid " Sound" +#~ msgstr " Som" + +#~ msgid " Show VU meter" +#~ msgstr " Mostrar Volume" + +#~ msgid "---- Audio Effects ----" +#~ msgstr "---- Efeitos de ĂĄudio ----" + +#~ msgid "Save File" +#~ msgstr "Salvar arquivo" + +#~ msgid "codec values" +#~ msgstr "valores do codec" + +#~ msgid "Cap. Video" +#~ msgstr "Cap. vĂ­deo" + +#~ msgid "GUVCViewer Controls" +#~ msgstr "Controles do GUVCViewer" + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to open device" +#~ msgstr "" +#~ "Erro do Guvcview:\n" +#~ "\n" +#~ "NĂŁo foi possĂ­vel conectar a cĂąmera" + +#~ msgid "" +#~ "Please make sure the camera is connected\n" +#~ "and that the correct driver is installed." +#~ msgstr "" +#~ "Por favor, verifique a conexĂŁo\n" +#~ "e se o driver correto estĂĄ instalado." + +#~ msgid "" +#~ "Guvcview:\n" +#~ "\n" +#~ "UVC Extension controls" +#~ msgstr "" +#~ "Guvcview:\n" +#~ "\n" +#~ "ExtensĂŁo de controles UVC" + +#~ msgid "Extension controls were added to the UVC driver" +#~ msgstr "As extensĂ”es de controles foram adicionadas ao driver UVC" + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "UVC Extension controls" +#~ msgstr "" +#~ "Erro do Guvcview:\n" +#~ "\n" +#~ "ExtensĂ”es de controles UVC" + +#~ msgid "" +#~ "An error occurred while adding extension\n" +#~ "controls to the UVC driver\n" +#~ "Make sure you run guvcview as root (or sudo)." +#~ msgstr "" +#~ "Ocorreu um erro ao adicionar as extensĂ”es de\n" +#~ "controles ao driver UVC\n" +#~ "Verifique se iniciou o guvcview como root (ou sudo)." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Can't set a valid video stream for guvcview" +#~ msgstr "" +#~ "Erro do Guvcview:\n" +#~ "\n" +#~ "NĂŁo foi possĂ­vel definir um fluxo de vĂ­deo para o guvcview" + +#~ msgid "" +#~ "Make sure your device driver is v4l2 compliant\n" +#~ "and that it is properly installed." +#~ msgstr "" +#~ "Verifique se o driver Ă© compatĂ­vel com v4l2\n" +#~ "e se este se estĂĄ instalado corretamente." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to start with minimum setup" +#~ msgstr "" +#~ "Guvcview erro:\n" +#~ "\n" +#~ "NĂŁo foi possĂ­vel iniciar com as definiçÔes mĂ­nimas" + +#~ msgid "Please reconnect your camera." +#~ msgstr "Por favor, reconecte sua cĂąmera." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Couldn't query device capabilities" +#~ msgstr "" +#~ "Guvcview erro:\n" +#~ "\n" +#~ "NĂŁo foi possĂ­vel consultar as propriedades do dispositivo" + +#~ msgid "Make sure the device driver supports v4l2." +#~ msgstr "Por favor, verifique se o driver oferece suporte v4l2." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Read method error" +#~ msgstr "" +#~ "Erro do Guvcview:\n" +#~ "\n" +#~ "Erro do mĂ©todo de leitura" + +#~ msgid "Please try mmap instead (--capture_method=1)." +#~ msgstr "Por favor, tente o mmap no lugar (--capture_method=1)" + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to allocate Buffers" +#~ msgstr "" +#~ "Erro do Guvcview:\n" +#~ "\n" +#~ "NĂŁo foi possĂ­vel alocar Buffers" + +#~ msgid "Please try restarting your system." +#~ msgstr "Por favor, tente reiniciar o sistema." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to create Video Thread" +#~ msgstr "" +#~ "Erro de Guvcview:\n" +#~ "\n" +#~ "NĂŁo foi possĂ­vel criar o thread de vĂ­deo" + +#~ msgid "Please report it to http://developer.berlios.de/bugs/?group_id=8179" +#~ msgstr "" +#~ "Por favor, reporte em http://developer.berlios.de/bugs/?group_id=8179" + +#~ msgid "Bitmap (Bmp)" +#~ msgstr "Bitmap (Bmp)" + +#~ msgid "Displays debug information" +#~ msgstr "Mostra informação de depuração" + +#~ msgid "Exit after adding UVC extension controls (needs root/sudo)" +#~ msgstr "" +#~ "Sair apĂłs adicionar extensĂŁo de controles UVC (precisa de root/sudo)" + +#~ msgid "Don't stream video (image controls only)" +#~ msgstr "Desabilitar o fluxo de vĂ­deo (apenas controles de imagens)" + +#~ msgid "Don't display a GUI" +#~ msgstr "NĂŁo mostrar GUI" + +#~ msgid "Configuration file" +#~ msgstr "Arquivo de configuração" + +#~ msgid "Hardware accelaration (enable(1) | disable(0))" +#~ msgstr "Aceleração de hardware (habilitado(1) | desabilitado(0))" + +#~ msgid "Frame size, default: 640x480" +#~ msgstr "Tamanho do quadro, padrĂŁo: 640x480" + +#~ msgid "Image capture interval in seconds" +#~ msgstr "Intervalo de captura de imagens em segundos" + +#~ msgid "Number of Pictures to capture" +#~ msgstr "Numero de imagens a capturar" + +#~ msgid "Video File name (capture from start)" +#~ msgstr "Arquivo de vĂ­deo (captura ao iniciar)" + +#~ msgid "Video capture time (in seconds)" +#~ msgstr "Tempo de captura de vĂ­deo (em segundos)" + +#~ msgid "Exits guvcview after closing video" +#~ msgstr "Termina o guvcview depois de fechar o vĂ­deo" + +#~ msgid "Number of initial frames to skip" +#~ msgstr "Numero inicial de quadros a ignorar" + +#~ msgid "Show FPS value (enable(1) | disable (0))" +#~ msgstr "Apresentar o valor FPS (habilitado(1) | desabilitado(0))" + +#~ msgid "Load Profile at start" +#~ msgstr "Carrega perfil ao iniciar" + +#~ msgid "- local options" +#~ msgstr "- opçÔes locais" + +#~ msgid "Cap. Image" +#~ msgstr "Cap. imagem" + +#~ msgid "Not enough free space left on disk" +#~ msgstr "Sem espaço livre suficiente no disco" + +#~ msgid "YUY2 - uncomp YUV" +#~ msgstr "YUY2 - sem compressĂŁo YUV" + +#~ msgid "RGB - uncomp BMP" +#~ msgstr "RGB - Sem compressĂŁo BMP" + +#~ msgid " Show" +#~ msgstr " Mostrar" + +#~ msgid "Quality:" +#~ msgstr "Qualidade:" diff -Nru guvcview-1.7.3/po/pt.po guvcview-2.0.1+ubuntu1~ppa1/po/pt.po --- guvcview-1.7.3/po/pt.po 2014-03-24 22:56:28.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/po/pt.po 2014-10-05 10:41:44.000000000 +0000 @@ -8,1418 +8,1636 @@ msgstr "" "Project-Id-Version: pt_PT\n" "Report-Msgid-Bugs-To: pj.assis@gmail.com\n" -"POT-Creation-Date: 2013-11-14 22:15+0000\n" +"POT-Creation-Date: 2014-08-17 22:49+0100\n" "PO-Revision-Date: 2013-02-25 05:38+0000\n" "Last-Translator: Paulo Assis \n" "Language-Team: Portuguese\n" +"Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-12-08 10:36+0000\n" "X-Generator: Launchpad (build 16869)\n" -"Language: \n" #: ../data/guvcview.desktop.in.in.h:1 -msgid "guvcview" -msgstr "guvcview" - -#: ../data/guvcview.desktop.in.in.h:2 -msgid "GTK UVC video viewer" -msgstr "Visualizador de vĂ­deo GTK UVC" - -#: ../data/guvcview.desktop.in.in.h:3 -msgid "A video viewer and capturer for the linux uvc driver" -msgstr "" -"Um visualizador e capturador de de vĂ­deo para o controlador linux uvc" - -#: ../src/acodecs.c:59 -msgid "PCM - uncompressed (16 bit)" -msgstr "PCM - nĂŁo comprimido (16 bit)" - -#: ../src/acodecs.c:76 -msgid "MPEG2 - (lavc)" -msgstr "MPEG2 - (lavc)" - -#: ../src/acodecs.c:93 -msgid "MP3 - (lavc)" -msgstr "MP3 - (lavc)" - -#: ../src/acodecs.c:110 -msgid "Dolby AC3 - (lavc)" -msgstr "Dolby AC3 - (lavc)" - -#: ../src/acodecs.c:127 -msgid "ACC Low - (faac)" -msgstr "ACC - (faac)" - -#: ../src/acodecs.c:144 -msgid "Vorbis" -msgstr "" - -#: ../src/audio_tab.c:87 -msgid "Audio" -msgstr "Áudio" - -#: ../src/audio_tab.c:105 -msgid " Sound" -msgstr " Som" - -#. VU meter on the image (OSD) -#: ../src/audio_tab.c:116 -msgid " Show VU meter" -msgstr " Mostrar medidor VU" - -#: ../src/audio_tab.c:128 -msgid "Audio API:" -msgstr "Áudio API:" - -#: ../src/audio_tab.c:139 -msgid "PORTAUDIO" -msgstr "PORTAUDIO" - -#: ../src/audio_tab.c:140 -msgid "PULSEAUDIO" -msgstr "PULSEAUDIO" - -#: ../src/audio_tab.c:156 ../src/audio_tab.c:179 -msgid "Input Device:" -msgstr "Dispositivo de som:" - -#: ../src/audio_tab.c:189 ../src/audio_tab.c:221 -msgid "Dev. Default" -msgstr "AutomĂĄtico" - -#: ../src/audio_tab.c:211 -msgid "Sample Rate:" -msgstr "FrequĂȘncia:" - -#: ../src/audio_tab.c:222 -msgid "1 - mono" -msgstr "1 - mono" - -#: ../src/audio_tab.c:223 -msgid "2 - stereo" -msgstr "2 - estĂ©reo" - -#: ../src/audio_tab.c:258 -msgid "Channels:" -msgstr "Canais:" - -#: ../src/audio_tab.c:309 -msgid "---- Audio Effects ----" -msgstr "---- Efeitos ĂĄudio ----" - -#. Echo -#: ../src/audio_tab.c:328 -msgid " Echo" -msgstr " Eco" - -#. FUZZ -#: ../src/audio_tab.c:339 -msgid " Fuzz" -msgstr " RuĂ­do" - -#. Reverb -#: ../src/audio_tab.c:351 -msgid " Reverb" -msgstr " Reverb" - -#. WahWah -#: ../src/audio_tab.c:363 -msgid " WahWah" -msgstr " WhaWah" - -#. Ducky -#: ../src/audio_tab.c:375 -msgid " Ducky" -msgstr " Patinho" - -#: ../src/callbacks.c:109 -msgid "Error" -msgstr "Erro" - -#: ../src/callbacks.c:133 -msgid "" -"\n" -"You have more than one video device installed.\n" -"Do you want to try another one ?\n" -msgstr "" -"\n" -"Parece que possui mais do que 1 dispositivo de vĂ­deo.\n" -"Quer tentar outro?\n" - -#. Devices -#: ../src/callbacks.c:140 ../src/video_tab.c:111 -msgid "Device:" -msgstr "Dispositivo:" - -#: ../src/callbacks.c:272 -msgid "Save File" -msgstr "Gravar ficheiro" - -#: ../src/callbacks.c:284 -msgid "File Format:" -msgstr "" - -#: ../src/callbacks.c:455 -msgid "codec values" -msgstr "valores do codificador" - -#: ../src/callbacks.c:466 -msgid "" -" encoder fps: \n" -" (0 - use fps combobox value)" -msgstr "" -" fps do codificador: \n" -" (0 - utilizar valor da caixa de combinação)" - -#: ../src/callbacks.c:479 -msgid " monotonic pts" -msgstr " pts monĂłtonos" - -#. bit rate -#: ../src/callbacks.c:486 ../src/callbacks.c:809 -msgid "bit rate: " -msgstr "taxa de dados " - -#: ../src/callbacks.c:499 -msgid "qmax: " -msgstr "qmax: " - -#: ../src/callbacks.c:512 -msgid "qmin: " -msgstr "qmin: " - -#: ../src/callbacks.c:525 -msgid "max. qdiff: " -msgstr "max. qdiff: " - -#: ../src/callbacks.c:538 -msgid "dia size: " -msgstr "tamanho dia: " - -#: ../src/callbacks.c:551 -msgid "pre dia size: " -msgstr "tamanho prĂ©-dia: " - -#: ../src/callbacks.c:564 -msgid "pre me: " -msgstr "pre me: " - -#: ../src/callbacks.c:577 -msgid "pre cmp: " -msgstr "pre cmp: " - -#: ../src/callbacks.c:590 -msgid "cmp: " -msgstr "cmp: " - -#: ../src/callbacks.c:603 -msgid "sub cmp: " -msgstr "sub cmp: " - -#: ../src/callbacks.c:616 -msgid "last predictor count: " -msgstr "Ășltima contagem: " - -#: ../src/callbacks.c:629 -msgid "gop size: " -msgstr "tamanho gop: " - -#: ../src/callbacks.c:642 -msgid "qcompress: " -msgstr "qcompress: " - -#: ../src/callbacks.c:655 -msgid "qblur: " -msgstr "qblur: " - -#: ../src/callbacks.c:668 -msgid "subq: " -msgstr "subq: " - -#: ../src/callbacks.c:681 -msgid "framerefs: " -msgstr "framerefs: " - -#: ../src/callbacks.c:694 -msgid "me method: " -msgstr "mĂ©todo me: " - -#: ../src/callbacks.c:707 -msgid "mb decision: " -msgstr "decisĂŁo mb: " - -#: ../src/callbacks.c:720 -msgid "max B frames: " -msgstr "max B frames: " - -#: ../src/callbacks.c:733 -msgid "num threads: " -msgstr "processos: " - -#: ../src/callbacks.c:796 -msgid "audio codec values" -msgstr "valores do codificador ĂĄudio" - -#. sample format -#: ../src/callbacks.c:823 -msgid "sample format: " -msgstr "" - -#: ../src/callbacks.c:1311 -msgid "start new" -msgstr "iniciar novo" - -#: ../src/callbacks.c:1314 -msgid "restart" -msgstr "reiniciar" - -#: ../src/callbacks.c:1316 -msgid "new" -msgstr "novo" - -#: ../src/callbacks.c:1318 -msgid "cancel" -msgstr "cancelar" - -#: ../src/callbacks.c:1323 -msgid "" -"launch new process or restart?.\n" -"\n" -msgstr "" -"quer iniciar um novo processo ou reiniciar?\n" -"\n" - -#: ../src/callbacks.c:1780 ../src/guvcview.c:565 -msgid "Cap. Image (I)" -msgstr "Cap. Imagem (I)" - -#. disable image controls -#: ../src/callbacks.c:1791 ../src/guvcview.c:690 ../src/timers.c:101 -msgid "capturing photo to" -msgstr "" - -#: ../src/callbacks.c:1850 ../src/guvcview.c:575 -msgid "Cap. Video (V)" -msgstr "Cap. Video (V)" - -#: ../src/callbacks.c:1876 ../src/guvcview.c:740 -msgid "capturing video to" -msgstr "" - -#. vid capture enabled from start -#: ../src/callbacks.c:1911 ../src/guvcview.c:570 -msgid "Stop Video (V)" -msgstr "Parar Video (V)" - -#: ../src/callbacks.c:1967 ../src/menubar.c:66 -msgid "Save Profile" -msgstr "Gravar Perfil" - -#: ../src/callbacks.c:1980 ../src/menubar.c:65 -msgid "Load Profile" -msgstr "Carregar Perfil" - -#: ../src/create_video.c:1098 ../src/guvcview.c:732 -msgid "Cap. Video" -msgstr "Capturar vĂ­deo" - -#: ../src/guvcview.c:280 -msgid "Guvcview Video Capture" -msgstr "Captura de vĂ­deo Guvcview" - -#: ../src/guvcview.c:292 -msgid "GUVCViewer Controls" -msgstr "Controlos do Guvcview" - -#. can't open device -#: ../src/guvcview.c:342 -msgid "" -"Guvcview error:\n" -"\n" -"Unable to open device" -msgstr "" -"Erro Guvcview:\n" -"\n" -"NĂŁo foi possĂ­vel ligar Ă  cĂąmara" - -#: ../src/guvcview.c:343 -msgid "" -"Please make sure the camera is connected\n" -"and that the correct driver is installed." -msgstr "" -"Verifique a ligação Ă  cĂąmara e certifique-se\n" -"que tem o controlador instalado" - -#. uvc extension controls OK, give warning and shutdown (called with --add_ctrls) -#: ../src/guvcview.c:348 -msgid "" -"Guvcview:\n" -"\n" -"UVC Extension controls" -msgstr "" -"Guvcview:\n" -"\n" -"Controlos dinĂąmicos UVC" - -#: ../src/guvcview.c:349 -msgid "Extension controls were added to the UVC driver" -msgstr "Os controlos dinĂąmicos foram adicionados ao controlador UVC" - -#. uvc extension controls error - EACCES (needs root user) -#: ../src/guvcview.c:356 -msgid "" -"Guvcview error:\n" -"\n" -"UVC Extension controls" -msgstr "" -"Erro Guvcview:\n" -"\n" -"Controlos dinĂąmicos UVC" - -#: ../src/guvcview.c:357 -msgid "" -"An error occurred while adding extension\n" -"controls to the UVC driver\n" -"Make sure you run guvcview as root (or sudo)." -msgstr "" -"Ocorreu um erro ao adicionar os controlos\n" -"dinĂąmicos ao controlador UVC\n" -"Verifique se iniciou guvcview como root (ou sudo)." - -#: ../src/guvcview.c:391 ../src/guvcview.c:399 ../src/guvcview.c:477 -msgid "" -"Guvcview error:\n" -"\n" -"Can't set a valid video stream for guvcview" -msgstr "" -"Erro Guvcview:\n" -"\n" -"NĂŁo foi possĂ­vel definir um formato de vĂ­deo vĂĄlido" - -#: ../src/guvcview.c:392 ../src/guvcview.c:400 ../src/guvcview.c:478 -msgid "" -"Make sure your device driver is v4l2 compliant\n" -"and that it is properly installed." -msgstr "" -"Certifique-se que a cĂąmara Ă© compatĂ­vel com\n" -"o v4l2 e que estĂĄ instalada corretamente" - -#: ../src/guvcview.c:422 ../src/guvcview.c:444 -msgid "" -"Guvcview error:\n" -"\n" -"Unable to start with minimum setup" -msgstr "" -"Erro Guvcview:\n" -"\n" -"NĂŁo foi possĂ­vel iniciar a configuração mĂ­nima" - -#: ../src/guvcview.c:423 ../src/guvcview.c:445 -msgid "Please reconnect your camera." -msgstr "Deve remover e ligar novamente a cĂąmara" - -#: ../src/guvcview.c:452 -msgid "" -"Guvcview error:\n" -"\n" -"Couldn't query device capabilities" -msgstr "" -"Erro Guvcview:\n" -"\n" -"NĂŁo foi possĂ­vel verificar as propriedades do dispositivo" - -#: ../src/guvcview.c:453 -msgid "Make sure the device driver supports v4l2." -msgstr "Certifique-se que o dispositivo tem suporte ao v4l2" - -#: ../src/guvcview.c:457 -msgid "" -"Guvcview error:\n" -"\n" -"Read method error" -msgstr "" -"Erro Guvcview:\n" -"\n" -"Erro no mĂ©todo de leitura" - -#: ../src/guvcview.c:458 -msgid "Please try mmap instead (--capture_method=1)." -msgstr "Tente com mmap (--capture_method=1)" - -#: ../src/guvcview.c:466 -msgid "" -"Guvcview error:\n" -"\n" -"Unable to allocate Buffers" -msgstr "" -"Erro Guvcview:\n" -"\n" -"NĂŁo foi possĂ­vel alocar os \"buffers\"" - -#: ../src/guvcview.c:467 -msgid "Please try restarting your system." -msgstr "Por favor reinicie o sistema" - -#: ../src/guvcview.c:518 -msgid "Image Controls" -msgstr "Controlos de imagem" - -#. image auto capture -#: ../src/guvcview.c:561 -msgid "Stop Auto (I)" -msgstr "Parar Auto (I):" - -#: ../src/guvcview.c:676 -msgid "" -"Guvcview error:\n" -"\n" -"Unable to create Video Thread" -msgstr "" -"Erro Guvcview:\n" -"\n" -"NĂŁo foi possĂ­vel criar processo de vĂ­deo" - -#: ../src/guvcview.c:677 -msgid "Please report it to http://developer.berlios.de/bugs/?group_id=8179" -msgstr "Reporte este erro em http://developer.berlios.de/bugs/?group_id=8179" - -#: ../src/img_controls.c:121 -msgid "Auto Focus (continuous)" -msgstr "Foco automĂĄtico (continuo)" - -#: ../src/img_controls.c:122 -msgid "set Focus" -msgstr "Focar" - -#: ../src/image_format.c:35 -msgid "Jpeg (jpg)" -msgstr "" - -#: ../src/image_format.c:41 -msgid "Bitmap (Bmp)" -msgstr "" - -#: ../src/image_format.c:47 -msgid "Portable Network Graphics (Png)" -msgstr "" - -#: ../src/image_format.c:53 -msgid "Raw Image (raw)" -msgstr "" - -#. controls menu -#: ../src/menubar.c:64 -msgid "Settings" -msgstr "DefiniçÔes" - -#: ../src/menubar.c:67 -msgid "Hardware Defaults" -msgstr "PrĂ©-definição de Hardware" - -#: ../src/menubar.c:75 -msgid "Camera Button" -msgstr "BotĂŁo da CĂąmera" - -#: ../src/menubar.c:79 -msgid "Capture Image" -msgstr "Capturar Imagem" - -#: ../src/menubar.c:84 -msgid "Capture Video" -msgstr "Capturar Video" - -#. video menu -#: ../src/menubar.c:144 ../src/video_tab.c:95 -msgid "Video" -msgstr "Video" - -#: ../src/menubar.c:145 ../src/menubar.c:233 -msgid "File" -msgstr "Ficheiro" - -#: ../src/menubar.c:146 ../src/menubar.c:234 -msgid "Increment Filename" -msgstr "Increm. nome do ficheiro" - -#: ../src/menubar.c:164 -msgid "Video Codec" -msgstr "Codec de Video" - -#: ../src/menubar.c:189 -msgid "Video Codec Properties" -msgstr "Propr. Codec de Video" - -#: ../src/menubar.c:196 -msgid "Audio Codec" -msgstr "Codec de Audio" - -#: ../src/menubar.c:217 -msgid "Audio Codec Properties" -msgstr "Propr. Codec de Audio" - -#. photo menu -#: ../src/menubar.c:232 -msgid "Photo" -msgstr "Foto" - -#: ../src/options.c:753 -msgid "Prints version" -msgstr "Mostra a versĂŁo" - -#: ../src/options.c:754 -msgid "Displays debug information" -msgstr "Mostrar informaçÔes de depuração" - -#: ../src/options.c:755 -msgid "Video Device to use [default: /dev/video0]" -msgstr "Dispositivo de vĂ­deo [predefinição: /dev/video0]" - -#: ../src/options.c:756 -msgid "Exit after adding UVC extension controls (needs root/sudo)" -msgstr "Sair apĂłs adicionar os controlos dinĂąmicos ao UVC (requer root/sudo)" - -#: ../src/options.c:757 -msgid "Don't stream video (image controls only)" -msgstr "NĂŁo emitir vĂ­deo (sĂł controlo de imagem)" - -#: ../src/options.c:758 -msgid "Don't display a GUI" -msgstr "NĂŁo mostrar interface" - -#: ../src/options.c:759 -msgid "Capture method (1-mmap (default) 2-read)" -msgstr "MĂ©todo de captura (1-mmap (predefinido) 2 -leitura)" - -#: ../src/options.c:760 -msgid "Configuration file" -msgstr "Ficheiro de configuração" - -#: ../src/options.c:761 -msgid "Hardware accelaration (enable(1) | disable(0))" -msgstr "Aceleração de vĂ­deo (ativa (1) | inativa (0))" - -#: ../src/options.c:762 -msgid "" -"Pixel " -"format(mjpg|jpeg|yuyv|yvyu|uyvy|yyuv|yu12|yv12|nv12|nv21|nv16|nv61|y41p|grey|" -"y10b|y16 |s501|s505|s508|gbrg|grbg|ba81|rggb|bgr3|rgb3)" -msgstr "" -"Formatos pixel " -"(mjpg|jpeg|yuyv|yvyu|uyvy|yyuv|yu12|yv12|nv12|nv21|nv16|nv61|y41p|grey|y10b|y" -"16 |s501|s505|s508|gbrg|grbg|ba81|rggb|bgr3|rgb3)" - -#: ../src/options.c:763 -msgid "Frame size, default: 640x480" -msgstr "Resolução (predefinido: 640x480" - -#: ../src/options.c:764 -msgid "Image File name" -msgstr "Nome do ficheiro" - -#: ../src/options.c:765 -msgid "Image capture interval in seconds" -msgstr "Intervalo entre capturas (em segundos)" - -#: ../src/options.c:766 -msgid "Number of Pictures to capture" -msgstr "Numero de imagens a capturar" - -#: ../src/options.c:767 -msgid "Video File name (capture from start)" -msgstr "Nome do ficheiro (capturar ao iniciar)" - -#: ../src/options.c:768 -msgid "Video capture time (in seconds)" -msgstr "Tempo de captura vĂ­deo (em segundos)" - -#: ../src/options.c:769 -msgid "Exits guvcview after closing video" -msgstr "Sair do Guvcview ao fechar o vĂ­deo" - -#: ../src/options.c:770 -msgid "Number of initial frames to skip" -msgstr "NĂșmero de fotogramas iniciais a ignorar" - -#: ../src/options.c:771 -msgid "Show FPS value (enable(1) | disable (0))" -msgstr "Mostrar valor FPS (ativo (1) | inativo (0))" - -#: ../src/options.c:772 -msgid "Load Profile at start" -msgstr "Carregar perfil ao iniciar" - -#: ../src/options.c:773 -msgid "List controls method (0:loop, 1:next_ctrl flag [def])" -msgstr "" - -#: ../src/options.c:779 -msgid "- local options" -msgstr "- opçÔes locais" - -#. gdk_threads_enter(); -#: ../src/timers.c:119 -msgid "Cap. Image" -msgstr "Capturar imagem" - -#: ../src/timers.c:217 -msgid "Guvcview Warning:" -msgstr "Alerta do Guvcview:" - -#: ../src/timers.c:217 -msgid "Not enough free space left on disk" -msgstr "O espaço livre do disco nĂŁo Ă© suficiente" - -#: ../src/v4l2_controls.c:794 -msgid "Left" -msgstr "Esquerda" - -#: ../src/v4l2_controls.c:795 -msgid "Right" -msgstr "Direita" - -#: ../src/v4l2_controls.c:799 -msgid "Down" -msgstr "Baixo" - -#: ../src/v4l2_controls.c:800 -msgid "Up" -msgstr "Cima" - -#: ../src/v4l2_controls.c:845 -msgid "Off" -msgstr "Desligado" - -#: ../src/v4l2_controls.c:845 -msgid "On" -msgstr "Ligado" - -#: ../src/v4l2_controls.c:845 -msgid "Blinking" -msgstr "Intermitente" - -#: ../src/v4l2_controls.c:845 -msgid "Auto" -msgstr "AutomĂĄtico" - -#. turn it into a menu control -#: ../src/v4l2_controls.c:894 -msgid "8 bit" -msgstr "8 bits" - -#: ../src/v4l2_controls.c:894 -msgid "12 bit" -msgstr "12 bits" - -#: ../src/v4l2_dyna_ctrls.c:96 -msgid "Pan (relative)" -msgstr "Rotação (relativa)" - -#: ../src/v4l2_dyna_ctrls.c:109 -msgid "Tilt (relative)" -msgstr "Inclinação (relativa)" - -#: ../src/v4l2_dyna_ctrls.c:122 -msgid "Pan Reset" -msgstr "Restaurar rotação" - -#: ../src/v4l2_dyna_ctrls.c:135 -msgid "Tilt Reset" -msgstr "Restaurar inclinação" - -#: ../src/v4l2_dyna_ctrls.c:148 -msgid "Focus (absolute)" -msgstr "Focagem (absoluta)" +msgid "guvcview" +msgstr "guvcview" -#: ../src/v4l2_dyna_ctrls.c:161 -msgid "LED1 Mode" -msgstr "Modo LED1" +#: ../data/guvcview.desktop.in.in.h:2 +msgid "GTK UVC video viewer" +msgstr "Visualizador de vĂ­deo GTK UVC" -#: ../src/v4l2_dyna_ctrls.c:174 -msgid "LED1 Frequency" -msgstr "FrequĂȘncia LED1" +#: ../data/guvcview.desktop.in.in.h:3 +msgid "A video viewer and capturer for the linux uvc driver" +msgstr "Um visualizador e capturador de de vĂ­deo para o controlador linux uvc" -#: ../src/v4l2_dyna_ctrls.c:187 -msgid "Disable video processing" -msgstr "Desativar processamento vĂ­deo" +#: ../data/guvcview.appdata.xml.in.in.h:1 +msgid "capture video from v4l2 devices" +msgstr "" -#: ../src/v4l2_dyna_ctrls.c:200 -msgid "Raw bits per pixel" -msgstr "Bits por pixel (Raw)" +#: ../data/guvcview.appdata.xml.in.in.h:2 +msgid "" +"Video capture tool for video4linux2 compliant cameras, with special emphasis " +"on the linux uvc driver. It provides Image (jpg, png, bmp) and Video (mjpeg, " +"flv1, wmv1, mpg2, mpg4,...) capture with sound in several " +"formats( currently: avi and matroska). I also supports a control panel " +"option (--control_only) that is compatible with any other v4l2 app." +msgstr "" -#. needed only for language files (not used) +#. +#. * needed only for language files (not used) +#. #. V4L2 control strings -#: ../src/v4l2uvc.c:57 +#: ../gview_v4l2core/v4l2_controls.c:49 msgid "User Controls" msgstr "Controlos de utilizador" -#: ../src/v4l2uvc.c:58 +#: ../gview_v4l2core/v4l2_controls.c:50 msgid "Brightness" msgstr "Brilho" -#: ../src/v4l2uvc.c:59 +#: ../gview_v4l2core/v4l2_controls.c:51 msgid "Contrast" msgstr "Contraste" -#: ../src/v4l2uvc.c:60 +#: ../gview_v4l2core/v4l2_controls.c:52 msgid "Hue" msgstr "Cor" -#: ../src/v4l2uvc.c:61 +#: ../gview_v4l2core/v4l2_controls.c:53 msgid "Saturation" msgstr "Saturação" -#: ../src/v4l2uvc.c:62 +#: ../gview_v4l2core/v4l2_controls.c:54 msgid "Sharpness" msgstr "Nitidez" -#: ../src/v4l2uvc.c:63 +#: ../gview_v4l2core/v4l2_controls.c:55 msgid "Gamma" msgstr "Gama" -#: ../src/v4l2uvc.c:64 +#: ../gview_v4l2core/v4l2_controls.c:56 msgid "Backlight Compensation" msgstr "Compensação da iluminação" -#: ../src/v4l2uvc.c:65 +#: ../gview_v4l2core/v4l2_controls.c:57 msgid "Power Line Frequency" msgstr "FrequĂȘncia da linha elĂ©trica" -#: ../src/v4l2uvc.c:66 +#: ../gview_v4l2core/v4l2_controls.c:58 msgid "Hue, Automatic" msgstr "Cor automĂĄtica" -#: ../src/v4l2uvc.c:67 +#: ../gview_v4l2core/v4l2_controls.c:59 msgid "Focus, Auto" msgstr "Focagem automĂĄtica" -#: ../src/v4l2uvc.c:68 +#: ../gview_v4l2core/v4l2_controls.c:60 msgid "Manual Mode" msgstr "Modo manual" -#: ../src/v4l2uvc.c:69 +#: ../gview_v4l2core/v4l2_controls.c:61 msgid "Auto Mode" msgstr "Modo automĂĄtico" -#: ../src/v4l2uvc.c:70 +#: ../gview_v4l2core/v4l2_controls.c:62 msgid "Shutter Priority Mode" msgstr "Modo prioridade do obturador" -#: ../src/v4l2uvc.c:71 +#: ../gview_v4l2core/v4l2_controls.c:63 msgid "Aperture Priority Mode" msgstr "Modo prioridade da abertura" -#: ../src/v4l2uvc.c:72 +#: ../gview_v4l2core/v4l2_controls.c:64 msgid "Black Level" msgstr "NĂ­vel do preto" -#: ../src/v4l2uvc.c:73 +#: ../gview_v4l2core/v4l2_controls.c:65 msgid "White Balance, Automatic" msgstr "Balanço de brancos automĂĄtico" -#: ../src/v4l2uvc.c:74 +#: ../gview_v4l2core/v4l2_controls.c:66 msgid "Do White Balance" msgstr "Balancear brancos" -#: ../src/v4l2uvc.c:75 +#: ../gview_v4l2core/v4l2_controls.c:67 msgid "Red Balance" msgstr "Balancear vermelhos" -#: ../src/v4l2uvc.c:76 +#: ../gview_v4l2core/v4l2_controls.c:68 msgid "Blue Balance" msgstr "Balancear azuis" -#: ../src/v4l2uvc.c:77 +#: ../gview_v4l2core/v4l2_controls.c:69 msgid "Exposure" msgstr "Exposição" -#: ../src/v4l2uvc.c:78 +#: ../gview_v4l2core/v4l2_controls.c:70 msgid "Gain, Automatic" msgstr "Ganho automĂĄtico" -#: ../src/v4l2uvc.c:79 +#: ../gview_v4l2core/v4l2_controls.c:71 msgid "Gain" msgstr "Ganho" -#: ../src/v4l2uvc.c:80 +#: ../gview_v4l2core/v4l2_controls.c:72 msgid "Horizontal Flip" msgstr "InversĂŁo horizontal" -#: ../src/v4l2uvc.c:81 +#: ../gview_v4l2core/v4l2_controls.c:73 msgid "Vertical Flip" msgstr "InversĂŁo vertical" -#: ../src/v4l2uvc.c:82 +#: ../gview_v4l2core/v4l2_controls.c:74 msgid "Horizontal Center" msgstr "Eixo horizontal" -#: ../src/v4l2uvc.c:83 +#: ../gview_v4l2core/v4l2_controls.c:75 msgid "Vertical Center" msgstr "Eixo vertical" -#: ../src/v4l2uvc.c:84 +#: ../gview_v4l2core/v4l2_controls.c:76 msgid "Chroma AGC" msgstr "Chroma AGC" -#: ../src/v4l2uvc.c:85 +#: ../gview_v4l2core/v4l2_controls.c:77 msgid "Color Killer" msgstr "Remoção de cores" -#: ../src/v4l2uvc.c:86 +#: ../gview_v4l2core/v4l2_controls.c:78 msgid "Color Effects" msgstr "Efeitos de cor" #. CAMERA CLASS control strings -#: ../src/v4l2uvc.c:89 +#: ../gview_v4l2core/v4l2_controls.c:81 msgid "Camera Controls" msgstr "Controlos de cĂąmara" -#: ../src/v4l2uvc.c:90 +#: ../gview_v4l2core/v4l2_controls.c:82 msgid "Auto Exposure" msgstr "Exposição automĂĄtica" -#: ../src/v4l2uvc.c:91 +#: ../gview_v4l2core/v4l2_controls.c:83 msgid "Exposure Time, Absolute" msgstr "Tempo de exposição absoluto" -#: ../src/v4l2uvc.c:92 +#: ../gview_v4l2core/v4l2_controls.c:84 msgid "Exposure, Dynamic Framerate" msgstr "Exposição com fotogramas dinĂąmicos" -#: ../src/v4l2uvc.c:93 +#: ../gview_v4l2core/v4l2_controls.c:85 msgid "Pan, Relative" msgstr "Rotação relativa" -#: ../src/v4l2uvc.c:94 +#: ../gview_v4l2core/v4l2_controls.c:86 msgid "Tilt, Relative" msgstr "Inclinação relativa" -#: ../src/v4l2uvc.c:95 +#: ../gview_v4l2core/v4l2_controls.c:87 msgid "Pan, Reset" msgstr "Restaurar rotação" -#: ../src/v4l2uvc.c:96 +#: ../gview_v4l2core/v4l2_controls.c:88 msgid "Tilt, Reset" msgstr "Restaurar inclinação" -#: ../src/v4l2uvc.c:97 +#: ../gview_v4l2core/v4l2_controls.c:89 msgid "Pan, Absolute" msgstr "Rotação absoluta" -#: ../src/v4l2uvc.c:99 +#: ../gview_v4l2core/v4l2_controls.c:91 msgid "Focus, Absolute" msgstr "Focagem absoluta" -#: ../src/v4l2uvc.c:100 +#: ../gview_v4l2core/v4l2_controls.c:92 msgid "Focus, Relative" msgstr "Focagem relativa" -#: ../src/v4l2uvc.c:101 +#: ../gview_v4l2core/v4l2_controls.c:93 msgid "Focus, Automatic" msgstr "Focagem automĂĄtica" -#: ../src/v4l2uvc.c:102 +#: ../gview_v4l2core/v4l2_controls.c:94 msgid "Zoom, Absolute" msgstr "Ampliação absoluta" -#: ../src/v4l2uvc.c:103 +#: ../gview_v4l2core/v4l2_controls.c:95 msgid "Zoom, Relative" msgstr "Ampliação relativa" -#: ../src/v4l2uvc.c:104 +#: ../gview_v4l2core/v4l2_controls.c:96 msgid "Zoom, Continuous" msgstr "Ampliação continua" -#: ../src/v4l2uvc.c:105 +#: ../gview_v4l2core/v4l2_controls.c:97 msgid "Privacy" msgstr "Privacidade" #. UVC specific control strings -#: ../src/v4l2uvc.c:108 +#: ../gview_v4l2core/v4l2_controls.c:100 msgid "Exposure, Auto" msgstr "Exposição automĂĄtica" -#: ../src/v4l2uvc.c:109 +#: ../gview_v4l2core/v4l2_controls.c:101 msgid "Exposure, Auto Priority" msgstr "Esxposição com prioridade automĂĄtica" -#: ../src/v4l2uvc.c:110 +#: ../gview_v4l2core/v4l2_controls.c:102 msgid "Exposure (Absolute)" msgstr "Exposição absoluta" -#: ../src/v4l2uvc.c:111 +#: ../gview_v4l2core/v4l2_controls.c:103 msgid "White Balance Temperature, Auto" msgstr "Balanceamento de brancos automĂĄtico" -#: ../src/v4l2uvc.c:112 +#: ../gview_v4l2core/v4l2_controls.c:104 msgid "White Balance Temperature" msgstr "Temperatura do balanceamento de brancos" -#: ../src/v4l2uvc.c:113 +#: ../gview_v4l2core/v4l2_controls.c:105 msgid "White Balance Component, Auto" msgstr "Componente de brancos automĂĄtica" -#: ../src/v4l2uvc.c:114 +#: ../gview_v4l2core/v4l2_controls.c:106 msgid "White Balance Blue Component" msgstr "Componente azul" -#: ../src/v4l2uvc.c:115 +#: ../gview_v4l2core/v4l2_controls.c:107 msgid "White Balance Red Component" msgstr "Componente vermelho" #. libwebcam specific control strings -#: ../src/v4l2uvc.c:118 +#: ../gview_v4l2core/v4l2_controls.c:110 msgid "Focus" msgstr "Focagem" -#: ../src/v4l2uvc.c:119 +#: ../gview_v4l2core/v4l2_controls.c:111 msgid "Focus (Absolute)" msgstr "Focagem absoluta" -#: ../src/vcodecs.c:63 +#: ../gview_v4l2core/v4l2_xu_ctrls.c:63 ../guvcview/gui_gtk3_v4l2ctrls.c:239 +msgid "Off" +msgstr "Desligado" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:64 ../guvcview/gui_gtk3_v4l2ctrls.c:239 +msgid "On" +msgstr "Ligado" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:65 ../guvcview/gui_gtk3_v4l2ctrls.c:239 +msgid "Blinking" +msgstr "Intermitente" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:66 ../guvcview/gui_gtk3_v4l2ctrls.c:239 +msgid "Auto" +msgstr "AutomĂĄtico" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:73 +msgid "Pan (relative)" +msgstr "Rotação (relativa)" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:86 +msgid "Tilt (relative)" +msgstr "Inclinação (relativa)" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:99 +msgid "Pan Reset" +msgstr "Restaurar rotação" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:112 +msgid "Tilt Reset" +msgstr "Restaurar inclinação" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:125 +msgid "Focus (absolute)" +msgstr "Focagem (absoluta)" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:138 +msgid "LED1 Mode" +msgstr "Modo LED1" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:151 +msgid "LED1 Frequency" +msgstr "FrequĂȘncia LED1" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:164 +msgid "Disable video processing" +msgstr "Desativar processamento vĂ­deo" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:177 +msgid "Raw bits per pixel" +msgstr "Bits por pixel (Raw)" + +#: ../gview_encoder/audio_codecs.c:63 +#, fuzzy +msgid "PCM - uncompressed (float 32 bit)" +msgstr "PCM - nĂŁo comprimido (16 bit)" + +#: ../gview_encoder/audio_codecs.c:80 +msgid "MP2 (MPEG audio layer 2)" +msgstr "" + +#: ../gview_encoder/audio_codecs.c:97 +msgid "MP3 (MPEG audio layer 3)" +msgstr "" + +#: ../gview_encoder/audio_codecs.c:118 +msgid "AC-3 (ATSC A/52A)" +msgstr "" + +#: ../gview_encoder/audio_codecs.c:139 +msgid "AAC (Advanced Audio Coding)" +msgstr "" + +#: ../gview_encoder/audio_codecs.c:160 +msgid "Vorbis" +msgstr "" + +#: ../gview_encoder/video_codecs.c:75 +#, fuzzy +msgid "Raw camera input" +msgstr "SaĂ­da da cĂąmara:" + +#: ../gview_encoder/video_codecs.c:111 msgid "MJPG - compressed" msgstr "MJPG - com compressĂŁo" -#: ../src/vcodecs.c:99 -msgid "YUY2 - uncomp YUV" -msgstr "YUY2 - YUV sem compressĂŁo" - -#: ../src/vcodecs.c:135 -msgid "RGB - uncomp BMP" -msgstr "RGB - BMP sem compressĂŁo" - -#: ../src/vcodecs.c:171 +#: ../gview_encoder/video_codecs.c:147 msgid "MPEG video 1" msgstr "MPEG vĂ­deo 1" -#: ../src/vcodecs.c:207 +#: ../gview_encoder/video_codecs.c:183 msgid "FLV1 - flash video 1" msgstr "FLV1 - VĂ­deo flash 1" -#: ../src/vcodecs.c:243 +#: ../gview_encoder/video_codecs.c:219 msgid "WMV1 - win. med. video 7" msgstr "WMV1 - vĂ­deo wma 7" -#: ../src/vcodecs.c:279 +#: ../gview_encoder/video_codecs.c:255 msgid "MPG2 - MPG2 format" msgstr "MPG2 - vĂ­deo MPG2" -#: ../src/vcodecs.c:315 +#: ../gview_encoder/video_codecs.c:291 msgid "MS MP4 V3" msgstr "MS MP4 V3" -#: ../src/vcodecs.c:351 +#: ../gview_encoder/video_codecs.c:327 msgid "MPEG4-ASP" msgstr "MPEG4-ASP" -#: ../src/vcodecs.c:387 +#: ../gview_encoder/video_codecs.c:363 msgid "MPEG4-AVC (H264)" msgstr "MPEG4-AVC (H264)" -#: ../src/vcodecs.c:427 +#: ../gview_encoder/video_codecs.c:403 msgid "VP8 (VP8)" msgstr "" -#: ../src/vcodecs.c:463 +#: ../gview_encoder/video_codecs.c:439 msgid "Theora (ogg theora)" msgstr "" -#: ../src/video_format.c:43 -msgid "AVI - avi format" -msgstr "AVI - vĂ­deo avi" +#: ../guvcview/gui_gtk3_audioctrls.c:95 +msgid "Audio API:" +msgstr "Áudio API:" + +#: ../guvcview/gui_gtk3_audioctrls.c:106 +msgid "NO SOUND" +msgstr "" + +#: ../guvcview/gui_gtk3_audioctrls.c:107 +msgid "PORTAUDIO" +msgstr "PORTAUDIO" + +#: ../guvcview/gui_gtk3_audioctrls.c:110 +msgid "PULSEAUDIO" +msgstr "PULSEAUDIO" + +#: ../guvcview/gui_gtk3_audioctrls.c:127 +msgid "Input Device:" +msgstr "Dispositivo de som:" + +#: ../guvcview/gui_gtk3_audioctrls.c:161 +msgid "Sample Rate:" +msgstr "FrequĂȘncia:" + +#: ../guvcview/gui_gtk3_audioctrls.c:168 ../guvcview/gui_gtk3_audioctrls.c:214 +msgid "Dev. Default" +msgstr "AutomĂĄtico" + +#: ../guvcview/gui_gtk3_audioctrls.c:207 +msgid "Channels:" +msgstr "Canais:" + +#: ../guvcview/gui_gtk3_audioctrls.c:215 +msgid "1 - mono" +msgstr "1 - mono" + +#: ../guvcview/gui_gtk3_audioctrls.c:216 +msgid "2 - stereo" +msgstr "2 - estĂ©reo" + +#: ../guvcview/gui_gtk3_audioctrls.c:235 +#, fuzzy +msgid "---- Audio Filters ----" +msgstr "---- Filtros de vĂ­deo ----" + +#. Echo FX +#: ../guvcview/gui_gtk3_audioctrls.c:255 +msgid " Echo" +msgstr " Eco" + +#. Reverb FX +#: ../guvcview/gui_gtk3_audioctrls.c:268 +msgid " Reverb" +msgstr " Reverb" + +#. Fuzz FX +#: ../guvcview/gui_gtk3_audioctrls.c:281 +msgid " Fuzz" +msgstr " RuĂ­do" + +#. WahWah FX +#: ../guvcview/gui_gtk3_audioctrls.c:294 +msgid " WahWah" +msgstr " WhaWah" + +#. Ducky FX +#: ../guvcview/gui_gtk3_audioctrls.c:307 +msgid " Ducky" +msgstr " Patinho" + +#: ../guvcview/gui_gtk3.c:310 ../guvcview/gui_gtk3_callbacks.c:749 +msgid "Stop Video (V)" +msgstr "Parar Video (V)" + +#. video button +#: ../guvcview/gui_gtk3.c:315 ../guvcview/gui_gtk3.c:600 +#: ../guvcview/gui_gtk3_callbacks.c:755 +msgid "Cap. Video (V)" +msgstr "Cap. Video (V)" + +#: ../guvcview/gui_gtk3.c:376 ../guvcview/gui_gtk3.c:383 +msgid "Error" +msgstr "Erro" -#: ../src/video_format.c:52 -msgid "MKV - Matroska format" -msgstr "MKV - VĂ­deo mkv" +#: ../guvcview/gui_gtk3.c:379 ../guvcview/gui_gtk3.c:386 +#: ../guvcview/gui_gtk3_callbacks.c:2097 +msgid "_Ok" +msgstr "" + +#: ../guvcview/gui_gtk3.c:380 ../guvcview/gui_gtk3_callbacks.c:185 +#: ../guvcview/gui_gtk3_callbacks.c:199 ../guvcview/gui_gtk3_callbacks.c:522 +#: ../guvcview/gui_gtk3_callbacks.c:624 ../guvcview/gui_gtk3_callbacks.c:1755 +#: ../guvcview/gui_gtk3_callbacks.c:2098 +#, fuzzy +msgid "_Cancel" +msgstr "cancelar" + +#: ../guvcview/gui_gtk3.c:407 +msgid "" +"\n" +"You have more than one video device installed.\n" +"Do you want to try another one ?\n" +msgstr "" +"\n" +"Parece que possui mais do que 1 dispositivo de vĂ­deo.\n" +"Quer tentar outro?\n" + +#. ---- Devices ---- +#: ../guvcview/gui_gtk3.c:414 ../guvcview/gui_gtk3_videoctrls.c:106 +msgid "Device:" +msgstr "Dispositivo:" + +#: ../guvcview/gui_gtk3.c:516 +msgid "Guvcview Video Capture" +msgstr "Captura de vĂ­deo Guvcview" + +#: ../guvcview/gui_gtk3.c:525 +#, fuzzy +msgid "Guvcview" +msgstr "guvcview" + +#: ../guvcview/gui_gtk3.c:572 +#, fuzzy +msgid "Stop Cap. (I)" +msgstr "Parar Auto (I):" + +#: ../guvcview/gui_gtk3.c:578 ../guvcview/gui_gtk3_callbacks.c:720 +#: ../guvcview/video_capture.c:250 +msgid "Cap. Image (I)" +msgstr "Cap. Imagem (I)" + +#. quit button +#. GtkWidget *quitButton = gtk_button_new_from_stock(GTK_STOCK_QUIT); +#: ../guvcview/gui_gtk3.c:621 +msgid "_Quit" +msgstr "" + +#: ../guvcview/gui_gtk3.c:667 +msgid "Image Controls" +msgstr "Controlos de imagem" + +#: ../guvcview/gui_gtk3.c:703 +#, fuzzy +msgid "H264 Controls" +msgstr "Controlos de utilizador" + +#: ../guvcview/gui_gtk3.c:742 +#, fuzzy +msgid "Video Controls" +msgstr "Controlos de utilizador" + +#: ../guvcview/gui_gtk3.c:777 +#, fuzzy +msgid "Audio Controls" +msgstr "Controlos de utilizador" + +#: ../guvcview/gui_gtk3_callbacks.c:182 ../guvcview/gui_gtk3_menu.c:72 +msgid "Save Profile" +msgstr "Gravar Perfil" + +#: ../guvcview/gui_gtk3_callbacks.c:186 ../guvcview/gui_gtk3_callbacks.c:523 +#: ../guvcview/gui_gtk3_callbacks.c:625 +msgid "_Save" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:196 ../guvcview/gui_gtk3_menu.c:71 +msgid "Load Profile" +msgstr "Carregar Perfil" + +#: ../guvcview/gui_gtk3_callbacks.c:200 +msgid "_Open" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:208 ../guvcview/gui_gtk3_callbacks.c:531 +#: ../guvcview/gui_gtk3_callbacks.c:634 +msgid "File Format:" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:220 +msgid "gpfl (*.gpfl)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:221 +msgid "any (*.*)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:519 +#, fuzzy +msgid "Photo file name" +msgstr "Nome do ficheiro" + +#: ../guvcview/gui_gtk3_callbacks.c:543 +msgid "Raw (*.raw)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:544 +msgid "Jpeg (*.jpg)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:545 +msgid "Png (*.png)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:546 +msgid "Bmp (*.bmp)" +msgstr "" -#: ../src/video_format.c:61 -msgid "WEBM - format" +#: ../guvcview/gui_gtk3_callbacks.c:621 +#, fuzzy +msgid "Video file name" +msgstr "Nome do ficheiro" + +#: ../guvcview/gui_gtk3_callbacks.c:646 +msgid "Matroska (*.mkv)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:647 +msgid "WebM (*.webm)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:648 +msgid "Avi (*.avi)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:1158 +msgid "start new" +msgstr "iniciar novo" + +#: ../guvcview/gui_gtk3_callbacks.c:1161 +msgid "restart" +msgstr "reiniciar" + +#: ../guvcview/gui_gtk3_callbacks.c:1163 +msgid "new" +msgstr "novo" + +#: ../guvcview/gui_gtk3_callbacks.c:1165 +msgid "cancel" +msgstr "cancelar" + +#: ../guvcview/gui_gtk3_callbacks.c:1170 +msgid "" +"launch new process or restart?.\n" +"\n" +msgstr "" +"quer iniciar um novo processo ou reiniciar?\n" +"\n" + +#: ../guvcview/gui_gtk3_callbacks.c:1751 +#, fuzzy +msgid "video codec values" +msgstr "valores do codificador ĂĄudio" + +#: ../guvcview/gui_gtk3_callbacks.c:1754 +msgid "_OK" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:1760 +msgid "" +" encoder fps: \n" +" (0 - use fps combobox value)" msgstr "" +" fps do codificador: \n" +" (0 - utilizar valor da caixa de combinação)" + +#: ../guvcview/gui_gtk3_callbacks.c:1773 +msgid " monotonic pts" +msgstr " pts monĂłtonos" + +#. bit rate +#: ../guvcview/gui_gtk3_callbacks.c:1780 ../guvcview/gui_gtk3_callbacks.c:2105 +msgid "bit rate: " +msgstr "taxa de dados " + +#: ../guvcview/gui_gtk3_callbacks.c:1793 +msgid "qmax: " +msgstr "qmax: " + +#: ../guvcview/gui_gtk3_callbacks.c:1806 +msgid "qmin: " +msgstr "qmin: " + +#: ../guvcview/gui_gtk3_callbacks.c:1819 +msgid "max. qdiff: " +msgstr "max. qdiff: " + +#: ../guvcview/gui_gtk3_callbacks.c:1832 +msgid "dia size: " +msgstr "tamanho dia: " + +#: ../guvcview/gui_gtk3_callbacks.c:1845 +msgid "pre dia size: " +msgstr "tamanho prĂ©-dia: " + +#: ../guvcview/gui_gtk3_callbacks.c:1858 +msgid "pre me: " +msgstr "pre me: " + +#: ../guvcview/gui_gtk3_callbacks.c:1871 +msgid "pre cmp: " +msgstr "pre cmp: " -#: ../src/video_tab.c:216 -msgid "Frame Rate:" -msgstr "Taxa de imagens:" +#: ../guvcview/gui_gtk3_callbacks.c:1884 +msgid "cmp: " +msgstr "cmp: " -#: ../src/video_tab.c:223 -msgid " Show" -msgstr " Mostrar" +#: ../guvcview/gui_gtk3_callbacks.c:1897 +msgid "sub cmp: " +msgstr "sub cmp: " -#: ../src/video_tab.c:245 -msgid "Resolution:" -msgstr "Resolução:" +#: ../guvcview/gui_gtk3_callbacks.c:1910 +msgid "last predictor count: " +msgstr "Ășltima contagem: " -#: ../src/video_tab.c:271 -msgid "Camera Output:" -msgstr "SaĂ­da da cĂąmara:" +#: ../guvcview/gui_gtk3_callbacks.c:1923 +msgid "gop size: " +msgstr "tamanho gop: " -#: ../src/video_tab.c:293 -msgid "Apply" -msgstr "Aplicar" +#: ../guvcview/gui_gtk3_callbacks.c:1936 +msgid "qcompress: " +msgstr "qcompress: " -#: ../src/video_tab.c:300 -msgid "Quality:" -msgstr "Qualidade:" +#: ../guvcview/gui_gtk3_callbacks.c:1949 +msgid "qblur: " +msgstr "qblur: " -#: ../src/video_tab.c:310 -msgid "---- Video Filters ----" -msgstr "---- Filtros de vĂ­deo ----" +#: ../guvcview/gui_gtk3_callbacks.c:1962 +msgid "subq: " +msgstr "subq: " -#. Mirror -#: ../src/video_tab.c:329 -msgid " Mirror" -msgstr " Espelho" +#: ../guvcview/gui_gtk3_callbacks.c:1975 +msgid "framerefs: " +msgstr "framerefs: " -#. Upturn -#: ../src/video_tab.c:340 -msgid " Invert" -msgstr " Invertido" +#: ../guvcview/gui_gtk3_callbacks.c:1988 +msgid "me method: " +msgstr "mĂ©todo me: " -#. Negate -#: ../src/video_tab.c:351 -msgid " Negative" -msgstr " Negativo" +#: ../guvcview/gui_gtk3_callbacks.c:2001 +msgid "mb decision: " +msgstr "decisĂŁo mb: " -#. Mono -#: ../src/video_tab.c:362 -msgid " Mono" -msgstr " Cinza" +#: ../guvcview/gui_gtk3_callbacks.c:2014 +msgid "max B frames: " +msgstr "max B frames: " -#. Pieces -#: ../src/video_tab.c:374 -msgid " Pieces" -msgstr " Pedaços" +#: ../guvcview/gui_gtk3_callbacks.c:2027 +msgid "num threads: " +msgstr "processos: " -#. Particles -#: ../src/video_tab.c:386 -msgid " Particles" -msgstr " PartĂ­culas" +#: ../guvcview/gui_gtk3_callbacks.c:2094 +msgid "audio codec values" +msgstr "valores do codificador ĂĄudio" -#: ../src/uvc_h264.c:596 -msgid "H264 Controls" +#. sample format +#: ../guvcview/gui_gtk3_callbacks.c:2119 +msgid "sample format: " msgstr "" -#: ../src/uvc_h264.c:615 +#: ../guvcview/gui_gtk3_h264ctrls.c:622 +#, fuzzy msgid "Rate Control Mode:" -msgstr "" +msgstr "Controlos de imagem" -#: ../src/uvc_h264.c:626 +#: ../guvcview/gui_gtk3_h264ctrls.c:633 msgid "CBR" msgstr "" -#: ../src/uvc_h264.c:629 +#: ../guvcview/gui_gtk3_h264ctrls.c:636 msgid "VBR" msgstr "" -#: ../src/uvc_h264.c:633 +#: ../guvcview/gui_gtk3_h264ctrls.c:640 msgid "Constant QP" msgstr "" -#: ../src/uvc_h264.c:651 +#: ../guvcview/gui_gtk3_h264ctrls.c:658 msgid "Rate Control Mode flags:" msgstr "" -#: ../src/uvc_h264.c:676 +#: ../guvcview/gui_gtk3_h264ctrls.c:683 msgid "Temporal Scale Mode:" msgstr "" -#: ../src/uvc_h264.c:704 +#: ../guvcview/gui_gtk3_h264ctrls.c:711 msgid "Spatial Scale Mode:" msgstr "" -#: ../src/uvc_h264.c:737 +#: ../guvcview/gui_gtk3_h264ctrls.c:741 msgid "Frame Interval (100ns units):" msgstr "" -#: ../src/uvc_h264.c:772 +#: ../guvcview/gui_gtk3_h264ctrls.c:778 +#, fuzzy msgid "Bit Rate:" -msgstr "" +msgstr "taxa de dados " -#: ../src/uvc_h264.c:795 +#: ../guvcview/gui_gtk3_h264ctrls.c:801 msgid "Hints:" msgstr "" -#: ../src/uvc_h264.c:800 +#: ../guvcview/gui_gtk3_h264ctrls.c:806 +#, fuzzy msgid "Resolution" -msgstr "" +msgstr "Resolução:" -#: ../src/uvc_h264.c:804 +#: ../guvcview/gui_gtk3_h264ctrls.c:810 +#, fuzzy msgid "Profile" -msgstr "" +msgstr "Gravar Perfil" -#: ../src/uvc_h264.c:808 +#: ../guvcview/gui_gtk3_h264ctrls.c:814 +#, fuzzy msgid "Rate Control" -msgstr "" +msgstr "Controlos de imagem" -#: ../src/uvc_h264.c:812 +#: ../guvcview/gui_gtk3_h264ctrls.c:818 msgid "Usage Type" msgstr "" -#: ../src/uvc_h264.c:816 +#: ../guvcview/gui_gtk3_h264ctrls.c:822 msgid "Slice Mode" msgstr "" -#: ../src/uvc_h264.c:820 +#: ../guvcview/gui_gtk3_h264ctrls.c:826 msgid "Slice Unit" msgstr "" -#: ../src/uvc_h264.c:824 +#: ../guvcview/gui_gtk3_h264ctrls.c:830 msgid "MVC View" msgstr "" -#: ../src/uvc_h264.c:828 +#: ../guvcview/gui_gtk3_h264ctrls.c:834 msgid "Temporal Scale" msgstr "" -#: ../src/uvc_h264.c:832 +#: ../guvcview/gui_gtk3_h264ctrls.c:838 msgid "SNR Scale" msgstr "" -#: ../src/uvc_h264.c:836 +#: ../guvcview/gui_gtk3_h264ctrls.c:842 msgid "Spatial Scale" msgstr "" -#: ../src/uvc_h264.c:840 +#: ../guvcview/gui_gtk3_h264ctrls.c:846 msgid "Spatial Layer Ratio" msgstr "" -#: ../src/uvc_h264.c:844 +#: ../guvcview/gui_gtk3_h264ctrls.c:850 +#, fuzzy msgid "Frame Interval" -msgstr "" +msgstr "Taxa de imagens:" -#: ../src/uvc_h264.c:848 +#: ../guvcview/gui_gtk3_h264ctrls.c:854 msgid "Leaky Bucket Size" msgstr "" -#: ../src/uvc_h264.c:852 +#: ../guvcview/gui_gtk3_h264ctrls.c:858 msgid "Bit Rate" msgstr "" -#: ../src/uvc_h264.c:856 ../src/uvc_h264.c:1250 +#: ../guvcview/gui_gtk3_h264ctrls.c:862 ../guvcview/gui_gtk3_h264ctrls.c:1220 msgid "CABAC" msgstr "" -#: ../src/uvc_h264.c:860 +#: ../guvcview/gui_gtk3_h264ctrls.c:866 msgid "(I) Frame Period" msgstr "" -#: ../src/uvc_h264.c:907 +#: ../guvcview/gui_gtk3_h264ctrls.c:878 msgid "Slice Mode:" msgstr "" -#: ../src/uvc_h264.c:914 +#: ../guvcview/gui_gtk3_h264ctrls.c:885 msgid "no multiple slices" msgstr "" -#: ../src/uvc_h264.c:916 +#: ../guvcview/gui_gtk3_h264ctrls.c:887 msgid "bits/slice" msgstr "" -#: ../src/uvc_h264.c:918 +#: ../guvcview/gui_gtk3_h264ctrls.c:889 msgid "Mbits/slice" msgstr "" -#: ../src/uvc_h264.c:920 +#: ../guvcview/gui_gtk3_h264ctrls.c:891 msgid "slices/frame" msgstr "" -#: ../src/uvc_h264.c:929 +#: ../guvcview/gui_gtk3_h264ctrls.c:900 msgid "Slice Units:" msgstr "" -#: ../src/uvc_h264.c:950 +#: ../guvcview/gui_gtk3_h264ctrls.c:921 +#, fuzzy msgid "Profile:" -msgstr "" +msgstr "Gravar Perfil" -#: ../src/uvc_h264.c:957 +#: ../guvcview/gui_gtk3_h264ctrls.c:928 +#, fuzzy msgid "Baseline Profile" -msgstr "" +msgstr "Gravar Perfil" -#: ../src/uvc_h264.c:959 +#: ../guvcview/gui_gtk3_h264ctrls.c:930 +#, fuzzy msgid "Main Profile" -msgstr "" +msgstr "Gravar Perfil" -#: ../src/uvc_h264.c:961 +#: ../guvcview/gui_gtk3_h264ctrls.c:932 +#, fuzzy msgid "High Profile" -msgstr "" +msgstr "Gravar Perfil" -#: ../src/uvc_h264.c:963 +#: ../guvcview/gui_gtk3_h264ctrls.c:934 msgid "Scalable Baseline Profile" msgstr "" -#: ../src/uvc_h264.c:965 +#: ../guvcview/gui_gtk3_h264ctrls.c:936 +#, fuzzy msgid "Scalable High Profile" -msgstr "" +msgstr "Gravar Perfil" -#: ../src/uvc_h264.c:967 +#: ../guvcview/gui_gtk3_h264ctrls.c:938 msgid "Multiview High Profile" msgstr "" -#: ../src/uvc_h264.c:969 +#: ../guvcview/gui_gtk3_h264ctrls.c:940 +#, fuzzy msgid "Stereo High Profile" -msgstr "" +msgstr "Gravar Perfil" -#: ../src/uvc_h264.c:1008 +#: ../guvcview/gui_gtk3_h264ctrls.c:979 msgid "Profile flags:" msgstr "" -#: ../src/uvc_h264.c:1033 +#: ../guvcview/gui_gtk3_h264ctrls.c:1004 msgid "(I) Frame Period (ms):" msgstr "" -#: ../src/uvc_h264.c:1054 +#: ../guvcview/gui_gtk3_h264ctrls.c:1025 msgid "Estimated Video Delay (ms):" msgstr "" -#: ../src/uvc_h264.c:1075 +#: ../guvcview/gui_gtk3_h264ctrls.c:1046 msgid "Estimated Max Config Delay (ms):" msgstr "" -#: ../src/uvc_h264.c:1096 +#: ../guvcview/gui_gtk3_h264ctrls.c:1067 msgid "Usage Type:" msgstr "" -#: ../src/uvc_h264.c:1103 +#: ../guvcview/gui_gtk3_h264ctrls.c:1074 msgid "Real-time" msgstr "" -#: ../src/uvc_h264.c:1105 +#: ../guvcview/gui_gtk3_h264ctrls.c:1076 msgid "Broadcast" msgstr "" -#: ../src/uvc_h264.c:1107 +#: ../guvcview/gui_gtk3_h264ctrls.c:1078 msgid "Storage" msgstr "" -#: ../src/uvc_h264.c:1109 +#: ../guvcview/gui_gtk3_h264ctrls.c:1080 msgid "(0) Non-scalable single layer AVC" msgstr "" -#: ../src/uvc_h264.c:1111 +#: ../guvcview/gui_gtk3_h264ctrls.c:1082 msgid "(1) SVC temporal scalability with hierarchical P" msgstr "" -#: ../src/uvc_h264.c:1113 +#: ../guvcview/gui_gtk3_h264ctrls.c:1084 msgid "(2q) SVC temporal scalability + Quality/SNR scalability" msgstr "" -#: ../src/uvc_h264.c:1115 +#: ../guvcview/gui_gtk3_h264ctrls.c:1086 msgid "(2s) SVC temporal scalability + spatial scalability" msgstr "" -#: ../src/uvc_h264.c:1117 +#: ../guvcview/gui_gtk3_h264ctrls.c:1088 msgid "(3) Full SVC scalability" msgstr "" -#: ../src/uvc_h264.c:1131 +#: ../guvcview/gui_gtk3_h264ctrls.c:1102 msgid "SNR Control Mode:" msgstr "" -#: ../src/uvc_h264.c:1138 +#: ../guvcview/gui_gtk3_h264ctrls.c:1109 msgid "No SNR Enhancement Layer" msgstr "" -#: ../src/uvc_h264.c:1140 +#: ../guvcview/gui_gtk3_h264ctrls.c:1111 msgid "CGS NonRewrite (2 Layer)" msgstr "" -#: ../src/uvc_h264.c:1142 +#: ../guvcview/gui_gtk3_h264ctrls.c:1113 msgid "CGS NonRewrite (3 Layer)" msgstr "" -#: ../src/uvc_h264.c:1144 +#: ../guvcview/gui_gtk3_h264ctrls.c:1115 msgid "CGS Rewrite (2 Layer)" msgstr "" -#: ../src/uvc_h264.c:1146 +#: ../guvcview/gui_gtk3_h264ctrls.c:1117 msgid "CGS Rewrite (3 Layer)" msgstr "" -#: ../src/uvc_h264.c:1148 +#: ../guvcview/gui_gtk3_h264ctrls.c:1119 msgid "MGS (2 Layer)" msgstr "" -#: ../src/uvc_h264.c:1173 +#: ../guvcview/gui_gtk3_h264ctrls.c:1144 msgid "Stream Mux Enable" msgstr "" -#: ../src/uvc_h264.c:1180 +#: ../guvcview/gui_gtk3_h264ctrls.c:1151 msgid "Embed H.264 aux stream" msgstr "" -#: ../src/uvc_h264.c:1182 +#: ../guvcview/gui_gtk3_h264ctrls.c:1153 msgid "Embed YUY2 aux stream" msgstr "" -#: ../src/uvc_h264.c:1184 +#: ../guvcview/gui_gtk3_h264ctrls.c:1155 msgid "Embed NV12 aux stream" msgstr "" -#: ../src/uvc_h264.c:1204 +#: ../guvcview/gui_gtk3_h264ctrls.c:1175 msgid "MJPG payload container" msgstr "" -#: ../src/uvc_h264.c:1219 +#: ../guvcview/gui_gtk3_h264ctrls.c:1189 msgid "Stream Format:" msgstr "" -#: ../src/uvc_h264.c:1227 +#: ../guvcview/gui_gtk3_h264ctrls.c:1197 msgid "Byte stream format (H.264 Annex-B)" msgstr "" -#: ../src/uvc_h264.c:1229 +#: ../guvcview/gui_gtk3_h264ctrls.c:1199 +#, fuzzy msgid "NAL stream format" -msgstr "" +msgstr "AVI - vĂ­deo avi" -#: ../src/uvc_h264.c:1240 +#: ../guvcview/gui_gtk3_h264ctrls.c:1210 msgid "Entropy CABAC:" msgstr "" -#: ../src/uvc_h264.c:1248 +#: ../guvcview/gui_gtk3_h264ctrls.c:1218 msgid "CAVLC" msgstr "" -#: ../src/uvc_h264.c:1261 +#: ../guvcview/gui_gtk3_h264ctrls.c:1231 msgid "Picture timing SEI" msgstr "" -#: ../src/uvc_h264.c:1268 +#: ../guvcview/gui_gtk3_h264ctrls.c:1238 +#, fuzzy msgid "B Frames:" -msgstr "" +msgstr "max B frames: " -#: ../src/uvc_h264.c:1293 +#: ../guvcview/gui_gtk3_h264ctrls.c:1263 msgid "Preview Flipped" msgstr "" -#: ../src/uvc_h264.c:1300 +#: ../guvcview/gui_gtk3_h264ctrls.c:1270 msgid "Additional MVC Views:" msgstr "" -#: ../src/uvc_h264.c:1325 +#: ../guvcview/gui_gtk3_h264ctrls.c:1295 msgid "Simulcast stream index:" msgstr "" -#: ../src/uvc_h264.c:1350 +#: ../guvcview/gui_gtk3_h264ctrls.c:1320 msgid "Spatial Layer Ratio:" msgstr "" -#: ../src/uvc_h264.c:1379 +#: ../guvcview/gui_gtk3_h264ctrls.c:1349 msgid "Leaky Bucket Size (ms):" msgstr "" #. encoder reset -#: ../src/uvc_h264.c:1406 +#: ../guvcview/gui_gtk3_h264ctrls.c:1376 +#, fuzzy msgid "Encoder Reset" -msgstr "" +msgstr "Restaurar rotação" -#. -#. h264_controls->probe_button = gtk_button_new_with_label(_("PROBE")); -#. g_signal_connect (GTK_BUTTON(h264_controls->probe_button), "clicked", +#. +#. GtkWidget *probe_button = gtk_button_new_with_label(_("PROBE")); +#. g_signal_connect (GTK_BUTTON(probe_button), "clicked", #. G_CALLBACK (h264_probe_button_clicked), all_data); -#. -#. gtk_grid_attach (GTK_GRID(table), h264_controls->probe_button, 0, line, 1 ,1); -#. gtk_widget_show(h264_controls->probe_button); -#. -#: ../src/uvc_h264.c:1421 +#. +#. gtk_grid_attach (GTK_GRID(h264_controls_grid), probe_button, 0, line, 1 ,1); +#. gtk_widget_show(probe_button); +#. +#: ../guvcview/gui_gtk3_h264ctrls.c:1391 msgid "COMMIT" msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:70 +msgid "Settings" +msgstr "DefiniçÔes" + +#: ../guvcview/gui_gtk3_menu.c:73 +msgid "Hardware Defaults" +msgstr "PrĂ©-definição de Hardware" + +#: ../guvcview/gui_gtk3_menu.c:81 +msgid "Camera Button" +msgstr "BotĂŁo da CĂąmera" + +#: ../guvcview/gui_gtk3_menu.c:86 +msgid "Capture Image" +msgstr "Capturar Imagem" + +#: ../guvcview/gui_gtk3_menu.c:91 +msgid "Capture Video" +msgstr "Capturar Video" + +#: ../guvcview/gui_gtk3_menu.c:134 +msgid "Photo" +msgstr "Foto" + +#: ../guvcview/gui_gtk3_menu.c:135 ../guvcview/gui_gtk3_menu.c:159 +msgid "File" +msgstr "Ficheiro" + +#: ../guvcview/gui_gtk3_menu.c:136 ../guvcview/gui_gtk3_menu.c:160 +msgid "Increment Filename" +msgstr "Increm. nome do ficheiro" + +#: ../guvcview/gui_gtk3_menu.c:158 +msgid "Video" +msgstr "Video" + +#: ../guvcview/gui_gtk3_menu.c:175 +msgid "Video Codec" +msgstr "Codec de Video" + +#: ../guvcview/gui_gtk3_menu.c:202 +msgid "Video Codec Properties" +msgstr "Propr. Codec de Video" + +#: ../guvcview/gui_gtk3_menu.c:208 +msgid "Audio Codec" +msgstr "Codec de Audio" + +#: ../guvcview/gui_gtk3_menu.c:235 +msgid "Audio Codec Properties" +msgstr "Propr. Codec de Audio" + +#: ../guvcview/gui_gtk3_v4l2ctrls.c:174 +msgid "Left" +msgstr "Esquerda" + +#: ../guvcview/gui_gtk3_v4l2ctrls.c:175 +msgid "Right" +msgstr "Direita" + +#: ../guvcview/gui_gtk3_v4l2ctrls.c:179 +msgid "Down" +msgstr "Baixo" + +#: ../guvcview/gui_gtk3_v4l2ctrls.c:180 +msgid "Up" +msgstr "Cima" + +#. turn it into a menu control +#: ../guvcview/gui_gtk3_v4l2ctrls.c:296 +msgid "8 bit" +msgstr "8 bits" + +#: ../guvcview/gui_gtk3_v4l2ctrls.c:296 +msgid "12 bit" +msgstr "12 bits" + +#. add a virtual control for software autofocus +#: ../guvcview/gui_gtk3_v4l2ctrls.c:348 +msgid "Auto Focus (continuous)" +msgstr "Foco automĂĄtico (continuo)" + +#: ../guvcview/gui_gtk3_v4l2ctrls.c:349 +msgid "set Focus" +msgstr "Focar" + +#. control_widgets_list[n].widget2 = gtk_button_new_from_stock(GTK_STOCK_APPLY); +#. control_widgets_list[n].widget2= gtk_button_new_from_stock(GTK_STOCK_APPLY); +#. control_widgets_list[n].widget2 = gtk_button_new_from_stock(GTK_STOCK_APPLY); +#: ../guvcview/gui_gtk3_v4l2ctrls.c:433 ../guvcview/gui_gtk3_v4l2ctrls.c:456 +#: ../guvcview/gui_gtk3_v4l2ctrls.c:478 +#, fuzzy +msgid "_Apply" +msgstr "Aplicar" + +#: ../guvcview/gui_gtk3_videoctrls.c:144 +msgid "Frame Rate:" +msgstr "Taxa de imagens:" + +#: ../guvcview/gui_gtk3_videoctrls.c:204 +msgid "Resolution:" +msgstr "Resolução:" + +#: ../guvcview/gui_gtk3_videoctrls.c:254 +msgid "Camera Output:" +msgstr "SaĂ­da da cĂąmara:" + +#: ../guvcview/gui_gtk3_videoctrls.c:287 +msgid "---- Video Filters ----" +msgstr "---- Filtros de vĂ­deo ----" + +#. Mirror FX +#: ../guvcview/gui_gtk3_videoctrls.c:307 +msgid " Mirror" +msgstr " Espelho" + +#. Upturn FX +#: ../guvcview/gui_gtk3_videoctrls.c:319 +msgid " Invert" +msgstr " Invertido" + +#. Negate FX +#: ../guvcview/gui_gtk3_videoctrls.c:331 +msgid " Negative" +msgstr " Negativo" + +#. Mono FX +#: ../guvcview/gui_gtk3_videoctrls.c:343 +msgid " Mono" +msgstr " Cinza" + +#. Pieces FX +#: ../guvcview/gui_gtk3_videoctrls.c:356 +msgid " Pieces" +msgstr " Pedaços" + +#. Particles +#: ../guvcview/gui_gtk3_videoctrls.c:369 +msgid " Particles" +msgstr " PartĂ­culas" + +#: ../guvcview/options.c:51 +msgid "Print help" +msgstr "" + +#: ../guvcview/options.c:58 +#, fuzzy +msgid "Print version" +msgstr "Mostra a versĂŁo" + +#: ../guvcview/options.c:64 +msgid "LEVEL" +msgstr "" + +#: ../guvcview/options.c:65 +msgid "Set Verbosity level (def: 0)" +msgstr "" + +#: ../guvcview/options.c:71 +msgid "DEVICE" +msgstr "" + +#: ../guvcview/options.c:72 +#, fuzzy +msgid "Set device name (def: /dev/video0)" +msgstr "Dispositivo de vĂ­deo [predefinição: /dev/video0]" + +#: ../guvcview/options.c:78 +msgid "METHOD" +msgstr "" + +#: ../guvcview/options.c:79 +#, fuzzy +msgid "Set capture method [read | mmap (def)]" +msgstr "MĂ©todo de captura (1-mmap (predefinido) 2 -leitura)" + +#: ../guvcview/options.c:85 +msgid "WIDTHxHEIGHT" +msgstr "" + +#: ../guvcview/options.c:86 +msgid "Request resolution (e.g 640x480)" +msgstr "" + +#: ../guvcview/options.c:92 +msgid "FOURCC" +msgstr "" + +#: ../guvcview/options.c:93 +msgid "Request format (e.g MJPG)" +msgstr "" + +#: ../guvcview/options.c:99 +msgid "RENDER_API" +msgstr "" + +#: ../guvcview/options.c:100 +msgid "Select render API (e.g none; sdl)" +msgstr "" + +#: ../guvcview/options.c:106 +msgid "AUDIO_API" +msgstr "" + +#: ../guvcview/options.c:107 +msgid "Select audio API (e.g none; port; pulse)" +msgstr "" + +#: ../guvcview/options.c:113 +msgid "AUDIO_DEVICE" +msgstr "" + +#: ../guvcview/options.c:114 +msgid "Select audio device index for selected api (0..N)" +msgstr "" + +#: ../guvcview/options.c:120 +msgid "GUI_API" +msgstr "" + +#: ../guvcview/options.c:121 +msgid "Select GUI API (e.g none; gtk3)" +msgstr "" + +#: ../guvcview/options.c:127 ../guvcview/options.c:134 +msgid "CODEC" +msgstr "" + +#: ../guvcview/options.c:128 +msgid "Audio codec [pcm mp2 mp3 aac ac3 vorb]" +msgstr "" + +#: ../guvcview/options.c:135 +msgid "Video codec [raw mjpg mpeg flv1 wmv1 mpg2 mp43 dx50 h264 vp80 theo]" +msgstr "" + +#: ../guvcview/options.c:141 ../guvcview/options.c:148 +#: ../guvcview/options.c:155 +msgid "FILENAME" +msgstr "" + +#: ../guvcview/options.c:142 +#, fuzzy +msgid "load control profile" +msgstr "Carregar Perfil" + +#: ../guvcview/options.c:149 +msgid "filename for captured video)" +msgstr "" + +#: ../guvcview/options.c:156 +msgid "filename for captured image)" +msgstr "" + +#: ../guvcview/options.c:162 ../guvcview/options.c:169 +msgid "TIME_IN_SEC" +msgstr "" + +#: ../guvcview/options.c:163 +msgid "time (double) in sec. for video capture)" +msgstr "" + +#: ../guvcview/options.c:170 +msgid "time (double) in sec. between captured photos)" +msgstr "" + +#: ../guvcview/options.c:176 +msgid "TOTAL" +msgstr "" + +#: ../guvcview/options.c:177 +msgid "total number of captured photos)" +msgstr "" + +#: ../guvcview/options.c:184 +msgid "Start in control panel mode" +msgstr "" + +#: ../guvcview/options.c:307 +#, fuzzy, c-format +msgid "" +"Guvcview version %s\n" +"\n" +msgstr "Alerta do Guvcview:" + +#: ../guvcview/options.c:308 +#, c-format +msgid "" +"Usage:\n" +" guvcview [OPTIONS]\n" +"\n" +msgstr "" + +#: ../guvcview/options.c:309 +#, c-format +msgid "OPTIONS:\n" +msgstr "" + +#: ../guvcview/video_capture.c:819 +#, c-format +msgid "saving video to %s" +msgstr "" + +#. if(debug_level > 1) +#. printf("GUVCVIEW: saving image to %s\n", img_filename); +#: ../guvcview/video_capture.c:1069 +#, c-format +msgid "saving image to %s" +msgstr "" + +#~ msgid "MPEG2 - (lavc)" +#~ msgstr "MPEG2 - (lavc)" + +#~ msgid "MP3 - (lavc)" +#~ msgstr "MP3 - (lavc)" + +#~ msgid "Dolby AC3 - (lavc)" +#~ msgstr "Dolby AC3 - (lavc)" + +#~ msgid "ACC Low - (faac)" +#~ msgstr "ACC - (faac)" + +#~ msgid "Audio" +#~ msgstr "Áudio" + +#~ msgid " Sound" +#~ msgstr " Som" + +#~ msgid " Show VU meter" +#~ msgstr " Mostrar medidor VU" + +#~ msgid "---- Audio Effects ----" +#~ msgstr "---- Efeitos ĂĄudio ----" + +#~ msgid "Save File" +#~ msgstr "Gravar ficheiro" + +#~ msgid "codec values" +#~ msgstr "valores do codificador" + +#~ msgid "Cap. Video" +#~ msgstr "Capturar vĂ­deo" + +#~ msgid "GUVCViewer Controls" +#~ msgstr "Controlos do Guvcview" + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to open device" +#~ msgstr "" +#~ "Erro Guvcview:\n" +#~ "\n" +#~ "NĂŁo foi possĂ­vel ligar Ă  cĂąmara" + +#~ msgid "" +#~ "Please make sure the camera is connected\n" +#~ "and that the correct driver is installed." +#~ msgstr "" +#~ "Verifique a ligação Ă  cĂąmara e certifique-se\n" +#~ "que tem o controlador instalado" + +#~ msgid "" +#~ "Guvcview:\n" +#~ "\n" +#~ "UVC Extension controls" +#~ msgstr "" +#~ "Guvcview:\n" +#~ "\n" +#~ "Controlos dinĂąmicos UVC" + +#~ msgid "Extension controls were added to the UVC driver" +#~ msgstr "Os controlos dinĂąmicos foram adicionados ao controlador UVC" + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "UVC Extension controls" +#~ msgstr "" +#~ "Erro Guvcview:\n" +#~ "\n" +#~ "Controlos dinĂąmicos UVC" + +#~ msgid "" +#~ "An error occurred while adding extension\n" +#~ "controls to the UVC driver\n" +#~ "Make sure you run guvcview as root (or sudo)." +#~ msgstr "" +#~ "Ocorreu um erro ao adicionar os controlos\n" +#~ "dinĂąmicos ao controlador UVC\n" +#~ "Verifique se iniciou guvcview como root (ou sudo)." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Can't set a valid video stream for guvcview" +#~ msgstr "" +#~ "Erro Guvcview:\n" +#~ "\n" +#~ "NĂŁo foi possĂ­vel definir um formato de vĂ­deo vĂĄlido" + +#~ msgid "" +#~ "Make sure your device driver is v4l2 compliant\n" +#~ "and that it is properly installed." +#~ msgstr "" +#~ "Certifique-se que a cĂąmara Ă© compatĂ­vel com\n" +#~ "o v4l2 e que estĂĄ instalada corretamente" + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to start with minimum setup" +#~ msgstr "" +#~ "Erro Guvcview:\n" +#~ "\n" +#~ "NĂŁo foi possĂ­vel iniciar a configuração mĂ­nima" + +#~ msgid "Please reconnect your camera." +#~ msgstr "Deve remover e ligar novamente a cĂąmara" + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Couldn't query device capabilities" +#~ msgstr "" +#~ "Erro Guvcview:\n" +#~ "\n" +#~ "NĂŁo foi possĂ­vel verificar as propriedades do dispositivo" + +#~ msgid "Make sure the device driver supports v4l2." +#~ msgstr "Certifique-se que o dispositivo tem suporte ao v4l2" + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Read method error" +#~ msgstr "" +#~ "Erro Guvcview:\n" +#~ "\n" +#~ "Erro no mĂ©todo de leitura" + +#~ msgid "Please try mmap instead (--capture_method=1)." +#~ msgstr "Tente com mmap (--capture_method=1)" + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to allocate Buffers" +#~ msgstr "" +#~ "Erro Guvcview:\n" +#~ "\n" +#~ "NĂŁo foi possĂ­vel alocar os \"buffers\"" + +#~ msgid "Please try restarting your system." +#~ msgstr "Por favor reinicie o sistema" + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to create Video Thread" +#~ msgstr "" +#~ "Erro Guvcview:\n" +#~ "\n" +#~ "NĂŁo foi possĂ­vel criar processo de vĂ­deo" + +#~ msgid "Please report it to http://developer.berlios.de/bugs/?group_id=8179" +#~ msgstr "" +#~ "Reporte este erro em http://developer.berlios.de/bugs/?group_id=8179" + +#~ msgid "Displays debug information" +#~ msgstr "Mostrar informaçÔes de depuração" + +#~ msgid "Exit after adding UVC extension controls (needs root/sudo)" +#~ msgstr "" +#~ "Sair apĂłs adicionar os controlos dinĂąmicos ao UVC (requer root/sudo)" + +#~ msgid "Don't stream video (image controls only)" +#~ msgstr "NĂŁo emitir vĂ­deo (sĂł controlo de imagem)" + +#~ msgid "Don't display a GUI" +#~ msgstr "NĂŁo mostrar interface" + +#~ msgid "Configuration file" +#~ msgstr "Ficheiro de configuração" + +#~ msgid "Hardware accelaration (enable(1) | disable(0))" +#~ msgstr "Aceleração de vĂ­deo (ativa (1) | inativa (0))" + +#~ msgid "" +#~ "Pixel format(mjpg|jpeg|yuyv|yvyu|uyvy|yyuv|yu12|yv12|nv12|nv21|nv16|nv61|" +#~ "y41p|grey|y10b|y16 |s501|s505|s508|gbrg|grbg|ba81|rggb|bgr3|rgb3)" +#~ msgstr "" +#~ "Formatos pixel (mjpg|jpeg|yuyv|yvyu|uyvy|yyuv|yu12|yv12|nv12|nv21|nv16|" +#~ "nv61|y41p|grey|y10b|y16 |s501|s505|s508|gbrg|grbg|ba81|rggb|bgr3|rgb3)" + +#~ msgid "Frame size, default: 640x480" +#~ msgstr "Resolução (predefinido: 640x480" + +#~ msgid "Image capture interval in seconds" +#~ msgstr "Intervalo entre capturas (em segundos)" + +#~ msgid "Number of Pictures to capture" +#~ msgstr "Numero de imagens a capturar" + +#~ msgid "Video File name (capture from start)" +#~ msgstr "Nome do ficheiro (capturar ao iniciar)" + +#~ msgid "Video capture time (in seconds)" +#~ msgstr "Tempo de captura vĂ­deo (em segundos)" + +#~ msgid "Exits guvcview after closing video" +#~ msgstr "Sair do Guvcview ao fechar o vĂ­deo" + +#~ msgid "Number of initial frames to skip" +#~ msgstr "NĂșmero de fotogramas iniciais a ignorar" + +#~ msgid "Show FPS value (enable(1) | disable (0))" +#~ msgstr "Mostrar valor FPS (ativo (1) | inativo (0))" + +#~ msgid "Load Profile at start" +#~ msgstr "Carregar perfil ao iniciar" + +#~ msgid "- local options" +#~ msgstr "- opçÔes locais" + +#~ msgid "Cap. Image" +#~ msgstr "Capturar imagem" + +#~ msgid "Not enough free space left on disk" +#~ msgstr "O espaço livre do disco nĂŁo Ă© suficiente" + +#~ msgid "YUY2 - uncomp YUV" +#~ msgstr "YUY2 - YUV sem compressĂŁo" + +#~ msgid "RGB - uncomp BMP" +#~ msgstr "RGB - BMP sem compressĂŁo" + +#~ msgid "MKV - Matroska format" +#~ msgstr "MKV - VĂ­deo mkv" + +#~ msgid " Show" +#~ msgstr " Mostrar" + +#~ msgid "Quality:" +#~ msgstr "Qualidade:" diff -Nru guvcview-1.7.3/po/ru.po guvcview-2.0.1+ubuntu1~ppa1/po/ru.po --- guvcview-1.7.3/po/ru.po 2014-03-24 22:56:28.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/po/ru.po 2014-10-05 10:41:44.000000000 +0000 @@ -6,17 +6,17 @@ msgstr "" "Project-Id-Version: guvcview\n" "Report-Msgid-Bugs-To: pj.assis@gmail.com\n" -"POT-Creation-Date: 2013-11-14 22:15+0000\n" +"POT-Creation-Date: 2014-08-17 22:49+0100\n" "PO-Revision-Date: 2013-06-06 13:32+0000\n" -"Last-Translator: НоĐșĐŸĐ»Đ°Đč АĐČЎДДĐČ (NickKolok, Nikolay Avdeev) " -"\n" +"Last-Translator: НоĐșĐŸĐ»Đ°Đč АĐČЎДДĐČ (NickKolok, Nikolay Avdeev) \n" "Language-Team: Russian <>\n" +"Language: ru\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-12-08 10:36+0000\n" "X-Generator: Launchpad (build 16869)\n" -"Language: ru\n" #: ../data/guvcview.desktop.in.in.h:1 msgid "guvcview" @@ -26,1399 +26,1631 @@ msgid "GTK UVC video viewer" msgstr "GTK UVC ĐČĐžĐŽĐ”ĐŸ ĐŸĐ±ĐŸĐ·Ń€Đ”ĐČĐ°Ń‚Đ”Đ»ŃŒ" -#: ../data/guvcview.desktop.in.in.h:3 -msgid "A video viewer and capturer for the linux uvc driver" -msgstr "ĐŸŃ€ĐŸĐłŃ€Đ°ĐŒĐŒĐ° ĐżŃ€ĐŸŃĐŒĐŸŃ‚Ń€Đ° Đž запОсО ĐČĐžĐŽĐ”ĐŸ ĐŽĐ»Ń ЮраĐčĐČДра Linux UVC" - -#: ../src/acodecs.c:59 -msgid "PCM - uncompressed (16 bit)" -msgstr "PCM - бДз ŃĐ¶Đ°Ń‚ĐžŃ (16-Ń€Đ°Đ·Ń€ŃĐŽĐœŃ‹Đč)" - -#: ../src/acodecs.c:76 -msgid "MPEG2 - (lavc)" -msgstr "MPEG2 - (lavc)" - -#: ../src/acodecs.c:93 -msgid "MP3 - (lavc)" -msgstr "MP3 - (lavc)" - -#: ../src/acodecs.c:110 -msgid "Dolby AC3 - (lavc)" -msgstr "Dolby AC3 - (lavc)" - -#: ../src/acodecs.c:127 -msgid "ACC Low - (faac)" -msgstr "ACC Low - (faac)" - -#: ../src/acodecs.c:144 -msgid "Vorbis" -msgstr "Vorbis" - -#: ../src/audio_tab.c:87 -msgid "Audio" -msgstr "ЗĐČуĐș" - -#: ../src/audio_tab.c:105 -msgid " Sound" -msgstr " ЗĐČуĐș" - -#. VU meter on the image (OSD) -#: ../src/audio_tab.c:116 -msgid " Show VU meter" -msgstr " ĐžŃ‚ĐŸĐ±Ń€Đ°Đ¶Đ°Ń‚ŃŒ Đ·ĐœĐ°Ń‡Đ”ĐœĐžĐ” VU" - -#: ../src/audio_tab.c:128 -msgid "Audio API:" -msgstr "ĐŃƒĐŽĐžĐŸ-API:" - -#: ../src/audio_tab.c:139 -msgid "PORTAUDIO" -msgstr "PORTAUDIO" - -#: ../src/audio_tab.c:140 -msgid "PULSEAUDIO" -msgstr "PULSEAUDIO" - -#: ../src/audio_tab.c:156 ../src/audio_tab.c:179 -msgid "Input Device:" -msgstr "ĐŁŃŃ‚Ń€ĐŸĐčстĐČĐŸ ĐČĐČĐŸĐŽĐ°:" - -#: ../src/audio_tab.c:189 ../src/audio_tab.c:221 -msgid "Dev. Default" -msgstr "ĐżĐŸ ŃƒĐŒĐŸĐ»Ń‡Đ°ĐœĐžŃŽ" - -#: ../src/audio_tab.c:211 -msgid "Sample Rate:" -msgstr "Đ§Đ°ŃŃ‚ĐŸŃ‚Đ° ЎОсĐșрДтОзацОО:" - -#: ../src/audio_tab.c:222 -msgid "1 - mono" -msgstr "1 - ĐŒĐŸĐœĐŸ" - -#: ../src/audio_tab.c:223 -msgid "2 - stereo" -msgstr "2 - ŃŃ‚Đ”Ń€Đ”ĐŸ" - -#: ../src/audio_tab.c:258 -msgid "Channels:" -msgstr "ĐšĐ°ĐœĐ°Đ»ĐŸĐČ:" - -#: ../src/audio_tab.c:309 -msgid "---- Audio Effects ----" -msgstr "---- ĐŃƒĐŽĐžĐŸ-ŃŃ„Ń„Đ”Đșты ----" - -#. Echo -#: ../src/audio_tab.c:328 -msgid " Echo" -msgstr " Đ­Ń…ĐŸ" - -#. FUZZ -#: ../src/audio_tab.c:339 -msgid " Fuzz" -msgstr " Ѐуз" - -#. Reverb -#: ../src/audio_tab.c:351 -msgid " Reverb" -msgstr " Đ Đ”ĐČĐ”Ń€Đ±Đ”Ń€Đ°Ń†ĐžŃ" - -#. WahWah -#: ../src/audio_tab.c:363 -msgid " WahWah" -msgstr " КĐČĐ°ĐșушĐșĐ°" - -#. Ducky -#: ../src/audio_tab.c:375 -msgid " Ducky" -msgstr " ĐŁŃ‚Ń‘ĐœĐŸĐș" - -#: ../src/callbacks.c:109 -msgid "Error" -msgstr "ĐžŃˆĐžĐ±ĐșĐ°" - -#: ../src/callbacks.c:133 -msgid "" -"\n" -"You have more than one video device installed.\n" -"Do you want to try another one ?\n" -msgstr "" -"\n" -"ĐŁ ĐČас ŃƒŃŃ‚Đ°ĐœĐŸĐČĐ»Đ”Đœ ĐŽĐŸĐżĐŸĐ»ĐœĐžŃ‚Đ”Đ»ŃŒĐœŃ‹Đč ĐČĐžĐŽĐ”ĐŸ ĐżŃ€ĐžĐ±ĐŸŃ€.\n" -"Đ„ĐŸŃ‚ĐžŃ‚Đ” ĐżĐŸĐżŃ€ĐŸĐ±ĐŸĐČать ĐŽŃ€ŃƒĐłĐŸĐč?\n" - -#. Devices -#: ../src/callbacks.c:140 ../src/video_tab.c:111 -msgid "Device:" -msgstr "ĐŁŃŃ‚Ń€ĐŸĐčстĐČĐŸ:" - -#: ../src/callbacks.c:272 -msgid "Save File" -msgstr "ĐĄĐŸŃ…Ń€Đ°ĐœĐžŃ‚ŃŒ фаĐčĐ»" - -#: ../src/callbacks.c:284 -msgid "File Format:" -msgstr "Đ€ĐŸŃ€ĐŒĐ°Ń‚ фаĐčла:" - -#: ../src/callbacks.c:455 -msgid "codec values" -msgstr "ĐŸĐ°Ń€Đ°ĐŒĐ”Ń‚Ń€Ń‹ ĐșĐŸĐŽĐ”ĐșĐ°" - -#: ../src/callbacks.c:466 -msgid "" -" encoder fps: \n" -" (0 - use fps combobox value)" -msgstr "" -" ĐșĐŸĐŽĐ”Đș ĐșĐ°ĐŽŃ€ĐŸĐČ/с.: \n" -" (0 - ĐžŃĐżĐŸĐ»ŃŒĐ·ĐŸĐČать Đ·ĐœĐ°Ń‡Đ”ĐœĐžĐ” спОсĐșĐ°)" - -#: ../src/callbacks.c:479 -msgid " monotonic pts" -msgstr "" - -#. bit rate -#: ../src/callbacks.c:486 ../src/callbacks.c:809 -msgid "bit rate: " -msgstr "БОтрДĐčт: " - -#: ../src/callbacks.c:499 -msgid "qmax: " -msgstr "qmax: " - -#: ../src/callbacks.c:512 -msgid "qmin: " -msgstr "qmin: " - -#: ../src/callbacks.c:525 -msgid "max. qdiff: " -msgstr "ĐŒĐ°Đșс. qdiff: " - -#: ../src/callbacks.c:538 -msgid "dia size: " -msgstr "dia-size: " - -#: ../src/callbacks.c:551 -msgid "pre dia size: " -msgstr "pre-dia-size: " - -#: ../src/callbacks.c:564 -msgid "pre me: " -msgstr "pre-me: " - -#: ../src/callbacks.c:577 -msgid "pre cmp: " -msgstr "pre-cmp: " - -#: ../src/callbacks.c:590 -msgid "cmp: " -msgstr "cmp: " - -#: ../src/callbacks.c:603 -msgid "sub cmp: " -msgstr "sub-cmp: " - -#: ../src/callbacks.c:616 -msgid "last predictor count: " -msgstr "last-predictor-count: " - -#: ../src/callbacks.c:629 -msgid "gop size: " -msgstr "gop-size: " - -#: ../src/callbacks.c:642 -msgid "qcompress: " -msgstr "qcompress: " - -#: ../src/callbacks.c:655 -msgid "qblur: " -msgstr "qblur: " - -#: ../src/callbacks.c:668 -msgid "subq: " -msgstr "" - -#: ../src/callbacks.c:681 -msgid "framerefs: " -msgstr "" - -#: ../src/callbacks.c:694 -msgid "me method: " -msgstr "me-method: " - -#: ../src/callbacks.c:707 -msgid "mb decision: " -msgstr "mb-decision: " - -#: ../src/callbacks.c:720 -msgid "max B frames: " -msgstr "" - -#: ../src/callbacks.c:733 -msgid "num threads: " -msgstr "" - -#: ../src/callbacks.c:796 -msgid "audio codec values" -msgstr "Đ·ĐœĐ°Ń‡Đ”ĐœĐžŃ Đ·ĐČуĐșĐŸĐČĐŸĐłĐŸ ĐșĐŸĐŽĐ”ĐșĐ°" - -#. sample format -#: ../src/callbacks.c:823 -msgid "sample format: " -msgstr "Đ€ĐŸŃ€ĐŒĐ°Ń‚ ŃŃĐŒĐżĐ»Đ° " - -#: ../src/callbacks.c:1311 -msgid "start new" -msgstr "ЗапусĐș ĐœĐŸĐČĐŸĐłĐŸ" - -#: ../src/callbacks.c:1314 -msgid "restart" -msgstr "ĐżĐ”Ń€Đ”Đ·Đ°ĐłŃ€ŃƒĐ·ĐžŃ‚ŃŒ" - -#: ../src/callbacks.c:1316 -msgid "new" -msgstr "ĐĐŸĐČыĐč" - -#: ../src/callbacks.c:1318 -msgid "cancel" -msgstr "ĐžŃ‚ĐŒĐ”ĐœĐ°" - -#: ../src/callbacks.c:1323 -msgid "" -"launch new process or restart?.\n" -"\n" -msgstr "" -"Запустоть ĐœĐŸĐČыĐč ĐżŃ€ĐŸŃ†Đ”ŃŃ ОлО ĐżĐ”Ń€Đ”Đ·Đ°ĐżŃƒŃŃ‚ĐžŃ‚ŃŒ?\n" -"\n" - -#: ../src/callbacks.c:1780 ../src/guvcview.c:565 -msgid "Cap. Image (I)" -msgstr "ЗахĐČ. Đ˜Đ·ĐŸĐ±Ń€Đ°Đ¶Đ”ĐœĐžĐ” (I)" - -#. disable image controls -#: ../src/callbacks.c:1791 ../src/guvcview.c:690 ../src/timers.c:101 -msgid "capturing photo to" -msgstr "Đ·Đ°Ń…ĐČат Ń„ĐŸŃ‚ĐŸ ĐČ" - -#: ../src/callbacks.c:1850 ../src/guvcview.c:575 -msgid "Cap. Video (V)" -msgstr "ЗахĐČ. ĐČĐžĐŽĐ”ĐŸ (V)" - -#: ../src/callbacks.c:1876 ../src/guvcview.c:740 -msgid "capturing video to" -msgstr "Đ·Đ°Ń…ĐČат ĐČĐžĐŽĐ”ĐŸ ĐČ" - -#. vid capture enabled from start -#: ../src/callbacks.c:1911 ../src/guvcview.c:570 -msgid "Stop Video (V)" -msgstr "ĐžŃŃ‚Đ°ĐœĐŸĐČоть ĐČĐžĐŽĐ”ĐŸ (V)" - -#: ../src/callbacks.c:1967 ../src/menubar.c:66 -msgid "Save Profile" -msgstr "ĐĄĐŸŃ…Ń€Đ°ĐœĐžŃ‚ŃŒ ĐżŃ€ĐŸŃ„ĐžĐ»ŃŒ" - -#: ../src/callbacks.c:1980 ../src/menubar.c:65 -msgid "Load Profile" -msgstr "Đ—Đ°ĐłŃ€ŃƒĐ·ĐžŃ‚ŃŒ ĐżŃ€ĐŸŃ„ĐžĐ»ŃŒ" - -#: ../src/create_video.c:1098 ../src/guvcview.c:732 -msgid "Cap. Video" -msgstr "ЗахĐČ. ĐČĐžĐŽĐ”ĐŸ" - -#: ../src/guvcview.c:280 -msgid "Guvcview Video Capture" -msgstr "ЗаxĐČат ĐČĐžĐŽĐ”ĐŸ чДрДз Guvcview" - -#: ../src/guvcview.c:292 -msgid "GUVCViewer Controls" -msgstr "ĐŸĐ°ĐœĐ”Đ»ŃŒ упраĐČĐ»Đ”ĐœĐžŃ ĐżŃ€ĐŸĐłŃ€Đ°ĐŒĐŒŃ‹ GUVCViewer" - -#. can't open device -#: ../src/guvcview.c:342 -msgid "" -"Guvcview error:\n" -"\n" -"Unable to open device" -msgstr "" -"ĐžŃˆĐžĐ±ĐșĐ° Guvcview:\n" -"\n" -"ĐĐ” ŃƒĐŽĐ°Đ»ĐŸŃŃŒ ĐŸŃ‚Đșрыть ŃƒŃŃ‚Ń€ĐŸĐčстĐČĐŸ" - -#: ../src/guvcview.c:343 -msgid "" -"Please make sure the camera is connected\n" -"and that the correct driver is installed." -msgstr "" -"ĐŸĐŸĐ¶Đ°Đ»ŃƒĐčста ŃƒĐ±Đ”ĐŽĐžŃ‚Đ”ŃŃŒ ĐČ Ń‚ĐŸĐŒ, Ń‡Ń‚ĐŸ ĐșĐ°ĐŒĐ”Ń€Đ° ĐżĐŸĐŽĐșĐ»ŃŽŃ‡Đ”ĐœĐ°\n" -"Đž ЮраĐčĐČДр ŃƒŃŃ‚Đ°ĐœĐŸĐČĐ»Đ”Đœ ĐșĐŸŃ€Ń€Đ”ĐșŃ‚ĐœĐŸ." - -#. uvc extension controls OK, give warning and shutdown (called with --add_ctrls) -#: ../src/guvcview.c:348 -msgid "" -"Guvcview:\n" -"\n" -"UVC Extension controls" -msgstr "" -"Guvcview:\n" -"УпраĐČĐ»Đ”ĐœĐžĐ” UVC Ń€Đ°ŃŃˆĐžŃ€Đ”ĐœĐžŃĐŒĐž" - -#: ../src/guvcview.c:349 -msgid "Extension controls were added to the UVC driver" -msgstr "УпраĐČĐ»Đ”ĐœĐžŃ Ń€Đ°ŃŃˆĐžŃ€Đ”ĐœĐžŃĐŒĐž был ЎлбаĐČĐ»Đ”Đœ Đș ЮраĐčĐČĐ”Ń€Ńƒ UVC" - -#. uvc extension controls error - EACCES (needs root user) -#: ../src/guvcview.c:356 -msgid "" -"Guvcview error:\n" -"\n" -"UVC Extension controls" -msgstr "" -"ĐžŃˆĐžĐ±ĐșĐ° Guvcview:\n" -"УпраĐČĐ»Đ”ĐœĐžĐ” UVC Ń€Đ°ŃŃˆĐžŃ€Đ”ĐœĐžŃĐŒĐž" - -#: ../src/guvcview.c:357 -msgid "" -"An error occurred while adding extension\n" -"controls to the UVC driver\n" -"Make sure you run guvcview as root (or sudo)." -msgstr "" -"ĐŸŃ€ĐŸĐžĐ·ĐŸŃˆĐ»Đ° ĐŸŃˆĐžĐ±ĐșĐ° ĐČ ĐŽĐŸĐ±Đ°ĐČĐ»Đ”ĐœĐžĐ”\n" -"упраĐČĐ»Đ”ĐœĐžĐč Đș Ń€Đ°ŃŃˆĐžŃ€Đ”ĐœĐžŃŽ UVC ЮраĐčĐČДра.\n" -"ĐŁĐ±Đ”ĐŽĐžŃ‚Đ”ŃŃŒ, Ń‡Ń‚ĐŸ ĐČы Đ·Đ°ĐżŃƒŃŃ‚ĐžĐ»Đž guvcview ĐșĐ°Đș root (ОлО sudo)" - -#: ../src/guvcview.c:391 ../src/guvcview.c:399 ../src/guvcview.c:477 -msgid "" -"Guvcview error:\n" -"\n" -"Can't set a valid video stream for guvcview" -msgstr "" -"ĐžŃˆĐžĐ±ĐșĐ° Guvcview:\n" -"ПраĐČĐžĐ»ŃŒĐœŃ‹Đč ĐČĐžĐŽĐ”ĐŸ ĐżĐŸŃ‚ĐŸĐș ĐœĐ” ĐŒĐŸĐ¶Đ”Ń‚ Đ±Ń‹Ń‚ŃŒ ŃƒŃŃ‚Đ°ĐœĐŸĐČĐ»Đ”Đœ ĐŽĐ»Ń guvcview" - -#: ../src/guvcview.c:392 ../src/guvcview.c:400 ../src/guvcview.c:478 -msgid "" -"Make sure your device driver is v4l2 compliant\n" -"and that it is properly installed." -msgstr "" -"ĐŁĐ±Đ”ĐŽĐžŃ‚Đ”ŃŃŒ Ń‡Ń‚ĐŸ ЮраĐčĐČДр ŃĐŸĐČĐŒĐ”ŃŃ‚ĐžĐŒ с v4l2\n" -"Đž праĐČĐžĐ»ŃŒĐœĐŸ ŃƒŃŃ‚Đ°ĐœĐŸĐČĐ»Đ”Đœ" - -#: ../src/guvcview.c:422 ../src/guvcview.c:444 -msgid "" -"Guvcview error:\n" -"\n" -"Unable to start with minimum setup" -msgstr "" -"ĐžŃˆĐžĐ±ĐșĐ° Guvcview:\n" -"\n" -"ĐĐ” ŃƒĐŽĐ°Đ»ŃŃ запусĐș с ĐŒĐžĐœĐžĐŒĐ°Đ»ŃŒĐœĐŸĐč ĐœĐ°Ń‡Đ°Đ»ŃŒĐœĐŸĐč ŃƒŃŃ‚Đ°ĐœĐŸĐČĐșĐŸĐč" - -#: ../src/guvcview.c:423 ../src/guvcview.c:445 -msgid "Please reconnect your camera." -msgstr "ĐŸĐŸĐ¶Đ°Đ»ŃƒĐčста, ĐżĐ”Ń€Đ”ĐżĐŸĐŽĐșлючОтД ĐșĐ°ĐŒĐ”Ń€Ńƒ." - -#: ../src/guvcview.c:452 -msgid "" -"Guvcview error:\n" -"\n" -"Couldn't query device capabilities" -msgstr "" -"ĐžŃˆĐžĐ±ĐșĐ° Guvcview:\n" -"ĐĐ” ĐŒĐŸĐłŃƒ ĐżĐŸĐ»ŃƒŃ‡ĐžŃ‚ŃŒ сĐČĐŸĐčстĐČĐ° ŃƒŃŃ‚Ń€ĐŸĐčстĐČĐ°" - -#: ../src/guvcview.c:453 -msgid "Make sure the device driver supports v4l2." -msgstr "ĐŁĐ±Đ”ĐŽĐžŃ‚Đ”ŃŃŒ ĐČ Ń‚ĐŸĐŒ, Ń‡Ń‚ĐŸ ЮраĐčĐČДр ŃƒŃŃ‚Ń€ĐŸĐčстĐČĐ° ĐżĐŸĐŽĐŽĐ”Ń€Đ¶ĐžĐČаДт v4l2." - -#: ../src/guvcview.c:457 -msgid "" -"Guvcview error:\n" -"\n" -"Read method error" -msgstr "" -"ĐžŃˆĐžĐ±ĐșĐ° Guvcview:\n" -"\n" -"ĐžŃˆĐžĐ±ĐșĐ° ĐŒĐ”Ń‚ĐŸĐŽĐ° Ń‡Ń‚Đ”ĐœĐžŃ" - -#: ../src/guvcview.c:458 -msgid "Please try mmap instead (--capture_method=1)." -msgstr "ĐŸĐŸĐżŃ€ĐŸĐ±ŃƒĐčŃ‚Đ” Đ»ŃƒŃ‡ŃˆĐ” mmap (--capture_method=1)." - -#: ../src/guvcview.c:466 -msgid "" -"Guvcview error:\n" -"\n" -"Unable to allocate Buffers" -msgstr "" -"ĐžŃˆĐžĐ±ĐșĐ° Guvcview:\n" -"\n" -"ĐĐ” ŃƒĐŽĐ°Đ»ĐŸŃŃŒ ĐČŃ‹ĐŽĐ”Đ»ĐžŃ‚ŃŒ ĐŒĐ”ŃŃ‚ĐŸ ĐŽĐ»Ń Đ±ŃƒŃ„Đ”Ń€ĐŸĐČ" - -#: ../src/guvcview.c:467 -msgid "Please try restarting your system." -msgstr "ĐĄĐ»Đ”ĐŽŃƒĐ”Ń‚ ĐżĐŸĐżŃ€ĐŸĐ±ĐŸĐČать ĐżĐ”Ń€Đ”Đ·Đ°ĐżŃƒŃŃ‚ĐžŃ‚ŃŒ ŃĐžŃŃ‚Đ”ĐŒŃƒ." - -#: ../src/guvcview.c:518 -msgid "Image Controls" -msgstr "Đ Đ”ĐłŃƒĐ»ĐžŃ€ĐŸĐČĐșĐ° ĐžĐ·ĐŸĐ±Ń€Đ°Đ¶Đ”ĐœĐžŃ" - -#. image auto capture -#: ../src/guvcview.c:561 -msgid "Stop Auto (I)" -msgstr "ĐŸŃ€Đ”Đșратоть Đ°ĐČŃ‚ĐŸĐŒĐ°Ń‚ĐžŃ‡Đ”ŃĐșĐžĐč Đ·Đ°Ń…ĐČат (I)" - -#: ../src/guvcview.c:676 -msgid "" -"Guvcview error:\n" -"\n" -"Unable to create Video Thread" -msgstr "" -"ĐžŃˆĐžĐ±ĐșĐ° Guvcview:\n" -"\n" -"ĐĐ” ŃƒĐŽĐ°Đ»ĐŸŃŃŒ ŃĐŸĐ·ĐŽĐ°Ń‚ŃŒ ĐżĐŸŃ‚ĐŸĐș ĐșĐŸĐŒĐ°ĐœĐŽ ĐŽĐ»Ń ĐČĐžĐŽĐ”ĐŸ" - -#: ../src/guvcview.c:677 -msgid "Please report it to http://developer.berlios.de/bugs/?group_id=8179" -msgstr "" -"ĐĄĐ»Đ”ĐŽŃƒĐ”Ń‚ ŃĐŸĐŸĐ±Ń‰ĐžŃ‚ŃŒ ĐŸĐ± ŃŃ‚ĐŸĐŒ сюЮа: " -"http://developer.berlios.de/bugs/?group_id=8179" - -#: ../src/img_controls.c:121 -msgid "Auto Focus (continuous)" -msgstr "АĐČŃ‚ĐŸŃ„ĐŸĐșŃƒŃĐžŃ€ĐŸĐČĐșĐ° (ĐœĐ”ĐżŃ€Đ”Ń€Ń‹ĐČĐœĐ°Ń)" - -#: ../src/img_controls.c:122 -msgid "set Focus" -msgstr "ĐŁŃŃ‚Đ°ĐœĐŸĐČĐșĐ° Ń„ĐŸĐșуса" - -#: ../src/image_format.c:35 -msgid "Jpeg (jpg)" -msgstr "Jpeg (jpg)" - -#: ../src/image_format.c:41 -msgid "Bitmap (Bmp)" -msgstr "Bitmap (Bmp)" - -#: ../src/image_format.c:47 -msgid "Portable Network Graphics (Png)" -msgstr "Portable Network Graphics (Png)" - -#: ../src/image_format.c:53 -msgid "Raw Image (raw)" -msgstr "ĐĐ”ĐŸĐ±Ń€Đ°Đ±ĐŸŃ‚Đ°ĐœĐœĐŸĐ” ĐžĐ·ĐŸĐ±Ń€Đ°Đ¶Đ”ĐœĐžĐ” Raw Image (raw)" - -#. controls menu -#: ../src/menubar.c:64 -msgid "Settings" -msgstr "ĐĐ°ŃŃ‚Ń€ĐŸĐčĐșĐž" - -#: ../src/menubar.c:67 -msgid "Hardware Defaults" -msgstr "ĐĐ°ŃŃ‚Ń€ĐŸĐčĐșĐž ĐŸĐ±ĐŸŃ€ŃƒĐŽĐŸĐČĐ°ĐœĐžŃ ĐżĐŸ ŃƒĐŒĐŸĐ»Ń‡Đ°ĐœĐžŃŽ" - -#: ../src/menubar.c:75 -msgid "Camera Button" -msgstr "ĐšĐœĐŸĐżĐșĐ° ĐșĐ°ĐŒĐ”Ń€Ń‹" - -#: ../src/menubar.c:79 -msgid "Capture Image" -msgstr "ЗахĐČатоть ĐžĐ·ĐŸĐ±Ń€Đ°Đ¶Đ”ĐœĐžĐ”" - -#: ../src/menubar.c:84 -msgid "Capture Video" -msgstr "ЗахĐČатоть ĐČĐžĐŽĐ”ĐŸ" - -#. video menu -#: ../src/menubar.c:144 ../src/video_tab.c:95 -msgid "Video" -msgstr "Đ’ĐžĐŽĐ”ĐŸ" - -#: ../src/menubar.c:145 ../src/menubar.c:233 -msgid "File" -msgstr "ЀаĐčĐ»" - -#: ../src/menubar.c:146 ../src/menubar.c:234 -msgid "Increment Filename" -msgstr "ĐŁĐČĐ”Đ»ĐžŃ‡ĐžŃ‚ŃŒ ĐžĐŒŃ фаĐčла" - -#: ../src/menubar.c:164 -msgid "Video Codec" -msgstr "Đ’ĐžĐŽĐ”ĐŸĐșĐŸĐŽĐ”Đș" - -#: ../src/menubar.c:189 -msgid "Video Codec Properties" -msgstr "ĐĄĐČĐŸĐčстĐČĐ° ĐČĐžĐŽĐ”ĐŸĐșĐŸĐŽĐ”ĐșĐ°" - -#: ../src/menubar.c:196 -msgid "Audio Codec" -msgstr "ЗĐČуĐșĐŸĐČĐŸĐč ĐșĐŸĐŽĐ”Đș" - -#: ../src/menubar.c:217 -msgid "Audio Codec Properties" -msgstr "ĐĄĐČĐŸĐčстĐČĐ° Đ·ĐČуĐșĐŸĐČĐŸĐłĐŸ ĐșĐŸĐŽĐ”ĐșĐ°" - -#. photo menu -#: ../src/menubar.c:232 -msgid "Photo" -msgstr "Đ€ĐŸŃ‚ĐŸ" - -#: ../src/options.c:753 -msgid "Prints version" -msgstr "ĐŸĐŸĐșĐ°Đ·Ń‹ĐČаДт ĐČДрсОю" - -#: ../src/options.c:754 -msgid "Displays debug information" -msgstr "ĐŸĐŸĐșĐ°Đ·Ń‹ĐČаДт ĐžĐœŃ„ĐŸŃ€ĐŒĐ°Ń†ĐžŃŽ ĐŽĐ»Ń ĐŸŃ‚Đ»Đ°ĐŽĐșĐž" - -#: ../src/options.c:755 -msgid "Video Device to use [default: /dev/video0]" -msgstr "Đ˜ŃĐżĐŸĐ»ŃŒĐ·ŃƒĐ”ĐŒĐŸĐ” ĐČĐžĐŽĐ”ĐŸ-ŃƒŃŃ‚Ń€ĐŸĐčстĐČĐŸ (ĐżĐŸ ŃƒĐŒĐŸĐ»Ń‡Đ°ĐœĐžŃŽ /dev/video0)" - -#: ../src/options.c:756 -msgid "Exit after adding UVC extension controls (needs root/sudo)" -msgstr "" -"Đ’Ń‹Ń…ĐŸĐŽ ĐżĐŸŃĐ»Đ” ĐŽĐŸĐ±Đ°ĐČĐ»Đ”ĐœĐžŃ Ń€Đ°ŃŃˆĐžŃ€Đ”ĐœĐœŃ‹Ń… ŃĐ»Đ”ĐŒĐ”ĐœŃ‚ĐŸĐČ ŃƒĐżŃ€Đ°ĐČĐ»Đ”ĐœĐžŃ UVC (Ń‚Ń€Đ”Đ±ŃƒĐ”Ń‚ " -"root/sudo)" - -#: ../src/options.c:757 -msgid "Don't stream video (image controls only)" -msgstr "" -"ĐĐ” Ń€Đ°Đ±ĐŸŃ‚Đ°Ń‚ŃŒ с ĐżĐŸŃ‚ĐŸĐșĐŸĐČŃ‹ĐŒ ĐČĐžĐŽĐ”ĐŸ (Ń‚ĐŸĐ»ŃŒĐșĐŸ ŃĐ»Đ”ĐŒĐ”ĐœŃ‚Ń‹ упраĐČĐ»Đ”ĐœĐžŃ ĐžĐ·ĐŸĐ±Ń€Đ°Đ¶Đ”ĐœĐžĐ”ĐŒ)" - -#: ../src/options.c:758 -msgid "Don't display a GUI" -msgstr "ĐĐ” ĐŸŃ‚ĐŸĐ±Ń€Đ°Đ¶Đ°Ń‚ŃŒ графОчДсĐșĐžĐč ĐžĐœŃ‚Đ”Ń€Ń„Đ”Đčс" - -#: ../src/options.c:759 -msgid "Capture method (1-mmap (default) 2-read)" -msgstr "ĐœĐ”Ń‚ĐŸĐŽ Đ·Đ°Ń…ĐČата (1 - mmap (ĐżĐŸ ŃƒĐŒĐŸĐ»Ń‡Đ°ĐœĐžŃŽ) 2-чотать)" - -#: ../src/options.c:760 -msgid "Configuration file" -msgstr "ĐšĐŸĐœŃ„ĐžĐłŃƒŃ€Đ°Ń†ĐžĐŸĐœĐœŃ‹Đč фаĐčĐ»" - -#: ../src/options.c:761 -msgid "Hardware accelaration (enable(1) | disable(0))" -msgstr "ĐĐżĐżĐ°Ń€Đ°Ń‚ĐœĐŸĐ” усĐșĐŸŃ€Đ”ĐœĐžĐ” (ĐČĐșĐ».(1) | ĐČыĐșĐ».(0))" - -#: ../src/options.c:762 -msgid "" -"Pixel " -"format(mjpg|jpeg|yuyv|yvyu|uyvy|yyuv|yu12|yv12|nv12|nv21|nv16|nv61|y41p|grey|" -"y10b|y16 |s501|s505|s508|gbrg|grbg|ba81|rggb|bgr3|rgb3)" -msgstr "" -"Đ€ĐŸŃ€ĐŒĐ°Ń‚ " -"пОĐșсДлДĐč(mjpg|jpeg|yuyv|yvyu|uyvy|yyuv|yu12|yv12|nv12|nv21|nv16|nv61|y41p|gre" -"y|y10b|y16 |s501|s505|s508|gbrg|grbg|ba81|rggb|bgr3|rgb3)" - -#: ../src/options.c:763 -msgid "Frame size, default: 640x480" -msgstr "Đ Đ°Đ·ĐŒĐ”Ń€ ĐșаЮра (ĐżĐŸ ŃƒĐŒĐŸĐ»Ń‡Đ°ĐœĐžŃŽ 640х480)" - -#: ../src/options.c:764 -msgid "Image File name" -msgstr "Đ˜ĐŒŃ фаĐčла ĐžĐ·ĐŸĐ±Ń€Đ°Đ¶Đ”ĐœĐžŃ" - -#: ../src/options.c:765 -msgid "Image capture interval in seconds" -msgstr "Đ˜ĐœŃ‚Đ”Ń€ĐČĐ°Đ» ĐŒĐ”Đ¶ĐŽŃƒ ŃĐœĐžĐŒĐșĐ°ĐŒĐž (сДĐș)" - -#: ../src/options.c:766 -msgid "Number of Pictures to capture" -msgstr "ĐšĐŸĐ»ĐžŃ‡Đ”ŃŃ‚ĐČĐŸ ŃĐœĐžĐŒĐșĐŸĐČ" - -#: ../src/options.c:767 -msgid "Video File name (capture from start)" -msgstr "Đ˜ĐŒŃ ĐČĐžĐŽĐ”ĐŸ-фаĐčла (Đ·Đ°ĐżĐžŃŃŒ ŃŃ€Đ°Đ·Ńƒ ĐżĐŸŃĐ»Đ” запусĐșĐ°)" - -#: ../src/options.c:768 -msgid "Video capture time (in seconds)" -msgstr "ĐŸŃ€ĐŸĐŽĐŸĐ»Đ¶ĐžŃ‚Đ”Đ»ŃŒĐœĐŸŃŃ‚ŃŒ ĐČĐžĐŽĐ”ĐŸ-запОсО (сДĐș)" - -#: ../src/options.c:769 -msgid "Exits guvcview after closing video" -msgstr "ЗаĐČĐ”Ń€ŃˆĐ°Đ”Ń‚ Ń€Đ°Đ±ĐŸŃ‚Ńƒ guvcview ĐżĐŸŃĐ»Đ” Đ·Đ°Đșрытоя ĐČĐžĐŽĐ”ĐŸ" - -#: ../src/options.c:770 -msgid "Number of initial frames to skip" -msgstr "ĐšĐŸĐ»ĐžŃ‡Đ”ŃŃ‚ĐČĐŸ ĐœĐ°Ń‡Đ°Đ»ŃŒĐœŃ‹Ń… ĐșĐ°ĐŽŃ€ĐŸĐČ ĐŽĐ»Ń ĐżŃ€ĐŸĐżŃƒŃĐșĐ°" - -#: ../src/options.c:771 -msgid "Show FPS value (enable(1) | disable (0))" -msgstr "ĐžŃ‚ĐŸĐ±Ń€Đ°Đ¶Đ”ĐœĐžĐ” Ń‡Đ°ŃŃ‚ĐŸŃ‚Ń‹ ĐșĐ°ĐŽŃ€ĐŸĐČ (ĐČĐșĐ».(1) | ĐČыĐșĐ».(0))" - -#: ../src/options.c:772 -msgid "Load Profile at start" -msgstr "Đ—Đ°ĐłŃ€ŃƒĐ·ĐșĐ° ĐżŃ€ĐŸŃ„ĐžĐ»Ń про запусĐșĐ”" - -#: ../src/options.c:773 -msgid "List controls method (0:loop, 1:next_ctrl flag [def])" -msgstr "" - -#: ../src/options.c:779 -msgid "- local options" -msgstr "- Đ»ĐŸĐșĐ°Đ»ŃŒĐœŃ‹Đ” ĐżĐ°Ń€Đ°ĐŒĐ”Ń‚Ń€Ń‹" - -#. gdk_threads_enter(); -#: ../src/timers.c:119 -msgid "Cap. Image" -msgstr "ĐĄĐŽĐ”Đ»Đ°Ń‚ŃŒ ŃĐœĐžĐŒĐŸĐș" - -#: ../src/timers.c:217 -msgid "Guvcview Warning:" -msgstr "Guvcview ĐżŃ€Đ”ĐŽŃƒĐżŃ€Đ”Đ¶ĐŽĐ”ĐœĐžĐ”:" - -#: ../src/timers.c:217 -msgid "Not enough free space left on disk" -msgstr "ĐĐ”ĐŽĐŸŃŃ‚Đ°Ń‚ĐŸŃ‡ĐœĐŸ сĐČĐŸĐ±ĐŸĐŽĐœĐŸĐłĐŸ ĐŒĐ”ŃŃ‚Đ° ĐœĐ° ЎОсĐșĐ”" - -#: ../src/v4l2_controls.c:794 -msgid "Left" -msgstr "ВлДĐČĐŸ" - -#: ../src/v4l2_controls.c:795 -msgid "Right" -msgstr "ВпраĐČĐŸ" - -#: ../src/v4l2_controls.c:799 -msgid "Down" -msgstr "Đ’ĐœĐžĐ·" - -#: ../src/v4l2_controls.c:800 -msgid "Up" -msgstr "ВĐČДрх" - -#: ../src/v4l2_controls.c:845 -msgid "Off" -msgstr "ОтĐșĐ»." - -#: ../src/v4l2_controls.c:845 -msgid "On" -msgstr "ВĐșĐ»." - -#: ../src/v4l2_controls.c:845 -msgid "Blinking" -msgstr "ĐœĐ”Ń€Ń†Đ°ĐœĐžĐ”" - -#: ../src/v4l2_controls.c:845 -msgid "Auto" -msgstr "АĐČŃ‚ĐŸ" - -#. turn it into a menu control -#: ../src/v4l2_controls.c:894 -msgid "8 bit" -msgstr "8 бОт" - -#: ../src/v4l2_controls.c:894 -msgid "12 bit" -msgstr "12 бОт" - -#: ../src/v4l2_dyna_ctrls.c:96 -msgid "Pan (relative)" -msgstr "Đ“ĐŸŃ€. ĐżĐŸĐČĐŸŃ€ĐŸŃ‚ (ĐŸŃ‚ĐœĐŸŃĐžŃ‚.)" - -#: ../src/v4l2_dyna_ctrls.c:109 -msgid "Tilt (relative)" -msgstr "ВДрт. ĐżĐŸĐČĐŸŃ€ĐŸŃ‚ (ĐŸŃ‚ĐœĐŸŃĐžŃ‚.)" - -#: ../src/v4l2_dyna_ctrls.c:122 -msgid "Pan Reset" -msgstr "Đ“ĐŸŃ€. ĐČĐŸĐ·ĐČрат" - -#: ../src/v4l2_dyna_ctrls.c:135 -msgid "Tilt Reset" -msgstr "ВДрт. ĐČĐŸĐ·ĐČрат" - -#: ../src/v4l2_dyna_ctrls.c:148 -msgid "Focus (absolute)" -msgstr "Đ€ĐŸĐșус (Đ°Đ±ŃĐŸĐ»ŃŽŃ‚ĐœŃ‹Đč)" - -#: ../src/v4l2_dyna_ctrls.c:161 -msgid "LED1 Mode" -msgstr "Đ Đ”Đ¶ĐžĐŒ сĐČĐ”Ń‚ĐŸĐŽĐžĐŸĐŽĐ°1" - -#: ../src/v4l2_dyna_ctrls.c:174 -msgid "LED1 Frequency" -msgstr "Đ§Đ°ŃŃ‚ĐŸŃ‚Đ° сĐČĐ”Ń‚ĐŸĐŽĐžĐŸĐŽĐ°1" +#: ../data/guvcview.desktop.in.in.h:3 +msgid "A video viewer and capturer for the linux uvc driver" +msgstr "ĐŸŃ€ĐŸĐłŃ€Đ°ĐŒĐŒĐ° ĐżŃ€ĐŸŃĐŒĐŸŃ‚Ń€Đ° Đž запОсО ĐČĐžĐŽĐ”ĐŸ ĐŽĐ»Ń ЮраĐčĐČДра Linux UVC" -#: ../src/v4l2_dyna_ctrls.c:187 -msgid "Disable video processing" -msgstr "ОтĐșĐ»ŃŽŃ‡Đ”ĐœĐžĐ” ĐŸĐ±Ń€Đ°Đ±ĐŸŃ‚ĐșĐž ĐČĐžĐŽĐ”ĐŸ" +#: ../data/guvcview.appdata.xml.in.in.h:1 +msgid "capture video from v4l2 devices" +msgstr "" -#: ../src/v4l2_dyna_ctrls.c:200 -msgid "Raw bits per pixel" -msgstr "ĐšĐŸĐ»-ĐČĐŸ бОт ĐœĐ° пОĐșсДл" +#: ../data/guvcview.appdata.xml.in.in.h:2 +msgid "" +"Video capture tool for video4linux2 compliant cameras, with special emphasis " +"on the linux uvc driver. It provides Image (jpg, png, bmp) and Video (mjpeg, " +"flv1, wmv1, mpg2, mpg4,...) capture with sound in several " +"formats( currently: avi and matroska). I also supports a control panel " +"option (--control_only) that is compatible with any other v4l2 app." +msgstr "" -#. needed only for language files (not used) +#. +#. * needed only for language files (not used) +#. #. V4L2 control strings -#: ../src/v4l2uvc.c:57 +#: ../gview_v4l2core/v4l2_controls.c:49 msgid "User Controls" msgstr "ĐĐ°ŃŃ‚Ń€ĐŸĐčĐșĐž ĐżĐŸĐ»ŃŒĐ·ĐŸĐČĐ°Ń‚Đ”Đ»Ń" -#: ../src/v4l2uvc.c:58 +#: ../gview_v4l2core/v4l2_controls.c:50 msgid "Brightness" msgstr "ЯрĐșĐŸŃŃ‚ŃŒ" -#: ../src/v4l2uvc.c:59 +#: ../gview_v4l2core/v4l2_controls.c:51 msgid "Contrast" msgstr "ĐšĐŸĐœŃ‚Ń€Đ°ŃŃ‚ĐœĐŸŃŃ‚ŃŒ" -#: ../src/v4l2uvc.c:60 +#: ../gview_v4l2core/v4l2_controls.c:52 msgid "Hue" msgstr "ĐžŃ‚Ń‚Đ”ĐœĐŸĐș" -#: ../src/v4l2uvc.c:61 +#: ../gview_v4l2core/v4l2_controls.c:53 msgid "Saturation" msgstr "ĐĐ°ŃŃ‹Ń‰Đ”ĐœĐœĐŸŃŃ‚ŃŒ" -#: ../src/v4l2uvc.c:62 +#: ../gview_v4l2core/v4l2_controls.c:54 msgid "Sharpness" msgstr "РДзĐșĐŸŃŃ‚ŃŒ" -#: ../src/v4l2uvc.c:63 +#: ../gview_v4l2core/v4l2_controls.c:55 msgid "Gamma" msgstr "Đ“Đ°ĐŒĐŒĐ°" -#: ../src/v4l2uvc.c:64 +#: ../gview_v4l2core/v4l2_controls.c:56 msgid "Backlight Compensation" msgstr "ĐšĐŸĐŒĐżĐ”ĐœŃĐ°Ń†ĐžŃ ярĐșох участĐșĐŸĐČ" -#: ../src/v4l2uvc.c:65 +#: ../gview_v4l2core/v4l2_controls.c:57 msgid "Power Line Frequency" msgstr "Đ§Đ°ŃŃ‚ĐŸŃ‚Đ° ĐČ ŃĐ»Đ”ĐșŃ‚Ń€ĐŸŃĐ”Ń‚Đž" -#: ../src/v4l2uvc.c:66 +#: ../gview_v4l2core/v4l2_controls.c:58 msgid "Hue, Automatic" msgstr "ĐžŃ‚Ń‚Đ”ĐœĐŸĐș, АĐČŃ‚ĐŸĐŒĐ°Ń‚ĐžŃ‡Đ”ŃĐșĐž" -#: ../src/v4l2uvc.c:67 +#: ../gview_v4l2core/v4l2_controls.c:59 msgid "Focus, Auto" msgstr "Đ€ĐŸĐșус, Đ°ĐČŃ‚ĐŸ" -#: ../src/v4l2uvc.c:68 +#: ../gview_v4l2core/v4l2_controls.c:60 msgid "Manual Mode" msgstr "Đ ŃƒŃ‡ĐœĐŸĐč Ń€Đ”Đ¶ĐžĐŒ" -#: ../src/v4l2uvc.c:69 +#: ../gview_v4l2core/v4l2_controls.c:61 msgid "Auto Mode" msgstr "АĐČŃ‚ĐŸŃ€Đ”Đ¶ĐžĐŒ" -#: ../src/v4l2uvc.c:70 +#: ../gview_v4l2core/v4l2_controls.c:62 msgid "Shutter Priority Mode" msgstr "Đ Đ”Đ¶ĐžĐŒ ĐżŃ€ĐžĐŸŃ€ĐžŃ‚Đ”Ń‚Đ° Đ·Đ°Ń‚ĐČĐŸŃ€Đ°" -#: ../src/v4l2uvc.c:71 +#: ../gview_v4l2core/v4l2_controls.c:63 msgid "Aperture Priority Mode" msgstr "Đ Đ”Đ¶ĐžĐŒ ĐżŃ€ĐžĐŸŃ€ĐžŃ‚Đ”Ń‚Đ° ĐŽĐžĐ°Ń„Ń€Đ°ĐłĐŒŃ‹" -#: ../src/v4l2uvc.c:72 +#: ../gview_v4l2core/v4l2_controls.c:64 msgid "Black Level" msgstr "ĐŁŃ€ĐŸĐČĐ”ĐœŃŒ Ń‡Ń‘Ń€ĐœĐŸĐłĐŸ" -#: ../src/v4l2uvc.c:73 +#: ../gview_v4l2core/v4l2_controls.c:65 msgid "White Balance, Automatic" msgstr "Đ‘Đ°Đ»Đ°ĐœŃ Đ±Đ”Đ»ĐŸĐłĐŸ, АĐČŃ‚ĐŸĐŒĐ°Ń‚ĐžŃ‡Đ”ŃĐșĐž" -#: ../src/v4l2uvc.c:74 +#: ../gview_v4l2core/v4l2_controls.c:66 msgid "Do White Balance" msgstr "ĐĄĐ±Đ°Đ»Đ°ĐœŃĐžŃ€ĐŸĐČать бДлыĐč цĐČДт" -#: ../src/v4l2uvc.c:75 +#: ../gview_v4l2core/v4l2_controls.c:67 msgid "Red Balance" msgstr "Đ‘Đ°Đ»Đ°ĐœŃ ĐșŃ€Đ°ŃĐœĐŸĐłĐŸ" -#: ../src/v4l2uvc.c:76 +#: ../gview_v4l2core/v4l2_controls.c:68 msgid "Blue Balance" msgstr "Đ‘Đ°Đ»Đ°ĐœŃ ŃĐžĐœĐ”ĐłĐŸ" -#: ../src/v4l2uvc.c:77 +#: ../gview_v4l2core/v4l2_controls.c:69 msgid "Exposure" msgstr "Đ­ĐșŃĐżĐŸĐ·ĐžŃ†ĐžŃ" -#: ../src/v4l2uvc.c:78 +#: ../gview_v4l2core/v4l2_controls.c:70 msgid "Gain, Automatic" msgstr "ĐŁŃĐžĐ»Đ”ĐœĐžĐ”, Đ°ĐČŃ‚ĐŸĐŒĐ°Ń‚ĐžŃ‡Đ”ŃĐșĐž" -#: ../src/v4l2uvc.c:79 +#: ../gview_v4l2core/v4l2_controls.c:71 msgid "Gain" msgstr "ĐŁŃĐžĐ»Đ”ĐœĐžĐ”" -#: ../src/v4l2uvc.c:80 +#: ../gview_v4l2core/v4l2_controls.c:72 msgid "Horizontal Flip" msgstr "ĐžŃ‚Ń€Đ°Đ·ĐžŃ‚ŃŒ ĐżĐŸ ĐłĐŸŃ€ĐžĐ·ĐŸĐœŃ‚Đ°Đ»Đž" -#: ../src/v4l2uvc.c:81 +#: ../gview_v4l2core/v4l2_controls.c:73 msgid "Vertical Flip" msgstr "ĐžŃ‚Ń€Đ°Đ·ĐžŃ‚ŃŒ ĐżĐŸ ĐČДртОĐșалО" -#: ../src/v4l2uvc.c:82 +#: ../gview_v4l2core/v4l2_controls.c:74 msgid "Horizontal Center" msgstr "Đ“ĐŸŃ€ĐžĐ·ĐŸĐœŃ‚Đ°Đ»ŃŒĐœŃ‹Đč Ń†Đ”ĐœŃ‚Ń€" -#: ../src/v4l2uvc.c:83 +#: ../gview_v4l2core/v4l2_controls.c:75 msgid "Vertical Center" msgstr "ВДртОĐșĐ°Đ»ŃŒĐœŃ‹Đč Ń†Đ”ĐœŃ‚Ń€" -#: ../src/v4l2uvc.c:84 +#: ../gview_v4l2core/v4l2_controls.c:76 msgid "Chroma AGC" msgstr "" -#: ../src/v4l2uvc.c:85 +#: ../gview_v4l2core/v4l2_controls.c:77 msgid "Color Killer" msgstr "ОбДсцĐČДчОĐČĐ°Ń‚Đ”Đ»ŃŒ" -#: ../src/v4l2uvc.c:86 +#: ../gview_v4l2core/v4l2_controls.c:78 msgid "Color Effects" msgstr "ĐŠĐČĐ”Ń‚ĐŸĐČŃ‹Đ” ŃŃ„Ń„Đ”Đșты" #. CAMERA CLASS control strings -#: ../src/v4l2uvc.c:89 +#: ../gview_v4l2core/v4l2_controls.c:81 msgid "Camera Controls" msgstr "ĐĐ°ŃŃ‚Ń€ĐŸĐčĐșĐž ĐșĐ°ĐŒĐ”Ń€Ń‹" -#: ../src/v4l2uvc.c:90 +#: ../gview_v4l2core/v4l2_controls.c:82 msgid "Auto Exposure" msgstr "АĐČŃ‚ĐŸ ĐČыЎДржĐșĐ°" -#: ../src/v4l2uvc.c:91 +#: ../gview_v4l2core/v4l2_controls.c:83 msgid "Exposure Time, Absolute" msgstr "Đ’Ń€Đ”ĐŒŃ ĐČыЎДржĐșĐž, ĐĐ±ŃĐŸĐ»ŃŽŃ‚ĐœĐŸĐ”" -#: ../src/v4l2uvc.c:92 +#: ../gview_v4l2core/v4l2_controls.c:84 msgid "Exposure, Dynamic Framerate" msgstr "ВыЎДржĐșĐ°, Đ”ĐžĐœĐ°ĐŒĐžŃ‡ĐœĐ°Ń Ń‡Đ°ŃŃ‚ĐŸŃ‚Đ° ĐșĐ°ĐŽŃ€ĐŸĐČ" -#: ../src/v4l2uvc.c:93 +#: ../gview_v4l2core/v4l2_controls.c:85 msgid "Pan, Relative" msgstr "" -#: ../src/v4l2uvc.c:94 +#: ../gview_v4l2core/v4l2_controls.c:86 msgid "Tilt, Relative" msgstr "" -#: ../src/v4l2uvc.c:95 +#: ../gview_v4l2core/v4l2_controls.c:87 msgid "Pan, Reset" msgstr "" -#: ../src/v4l2uvc.c:96 +#: ../gview_v4l2core/v4l2_controls.c:88 msgid "Tilt, Reset" msgstr "" -#: ../src/v4l2uvc.c:97 +#: ../gview_v4l2core/v4l2_controls.c:89 msgid "Pan, Absolute" msgstr "" -#: ../src/v4l2uvc.c:99 +#: ../gview_v4l2core/v4l2_controls.c:91 msgid "Focus, Absolute" msgstr "Đ€ĐŸĐșус, ĐĄĐŸĐČĐ”Ń€ŃˆĐ”ĐœĐœŃ‹Đč" -#: ../src/v4l2uvc.c:100 +#: ../gview_v4l2core/v4l2_controls.c:92 msgid "Focus, Relative" msgstr "Đ€ĐŸĐșус, ĐžŃ‚ĐœĐŸŃĐžŃ‚Đ”Đ»ŃŒĐœŃ‹Đč" -#: ../src/v4l2uvc.c:101 +#: ../gview_v4l2core/v4l2_controls.c:93 msgid "Focus, Automatic" msgstr "Đ€ĐŸĐșус, АĐČŃ‚ĐŸĐŒĐ°Ń‚ĐžŃ‡Đ”ŃĐșĐžĐč" -#: ../src/v4l2uvc.c:102 +#: ../gview_v4l2core/v4l2_controls.c:94 msgid "Zoom, Absolute" msgstr "ĐŁĐČĐ”Đ»ĐžŃ‡Đ”ĐœĐžĐ”, ĐĄĐŸĐČĐ”Ń€ŃˆĐ”ĐœĐœĐŸĐ”" -#: ../src/v4l2uvc.c:103 +#: ../gview_v4l2core/v4l2_controls.c:95 msgid "Zoom, Relative" msgstr "ĐŁĐČĐ”Đ»ĐžŃ‡Đ”ĐœĐžĐ”, ĐžŃ‚ĐœĐŸŃĐžŃ‚Đ”Đ»ŃŒĐœĐŸĐ”" -#: ../src/v4l2uvc.c:104 +#: ../gview_v4l2core/v4l2_controls.c:96 msgid "Zoom, Continuous" msgstr "ĐŁĐČĐ”Đ»ĐžŃ‡Đ”ĐœĐžĐ”, ĐŸĐŸŃŃ‚ĐŸŃĐœĐœĐŸĐ”" -#: ../src/v4l2uvc.c:105 +#: ../gview_v4l2core/v4l2_controls.c:97 msgid "Privacy" msgstr "ĐšĐŸĐœŃ„ĐžĐŽĐ”ĐœŃ†ĐžĐ°Đ»ŃŒĐœĐŸŃŃ‚ŃŒ" #. UVC specific control strings -#: ../src/v4l2uvc.c:108 +#: ../gview_v4l2core/v4l2_controls.c:100 msgid "Exposure, Auto" msgstr "Đ­ĐșŃĐżĐŸĐ·ĐžŃ†ĐžŃ, Đ°ĐČŃ‚ĐŸ" -#: ../src/v4l2uvc.c:109 +#: ../gview_v4l2core/v4l2_controls.c:101 msgid "Exposure, Auto Priority" msgstr "Đ Đ”Đ¶ĐžĐŒ Ń‡Đ°ŃŃ‚ĐŸŃ‚Ń‹ ĐșĐ°ĐŽŃ€ĐŸĐČ" -#: ../src/v4l2uvc.c:110 +#: ../gview_v4l2core/v4l2_controls.c:102 msgid "Exposure (Absolute)" msgstr "ВыЎДржĐșĐ° (ŃĐŸĐČĐ”Ń€ŃˆĐ”ĐœĐœĐ°Ń)" -#: ../src/v4l2uvc.c:111 +#: ../gview_v4l2core/v4l2_controls.c:103 msgid "White Balance Temperature, Auto" msgstr "ĐąĐ”ĐŒĐżĐ”Ń€Đ°Ń‚ŃƒŃ€Đ° Đ±Đ°Đ»Đ°ĐœŃĐ° Đ±Đ”Đ»ĐŸĐłĐŸ, Đ°ĐČŃ‚ĐŸ" -#: ../src/v4l2uvc.c:112 +#: ../gview_v4l2core/v4l2_controls.c:104 msgid "White Balance Temperature" msgstr "ĐąĐ”ĐŒĐżĐ”Ń€Đ°Ń‚ŃƒŃ€Đ° Đ±Đ°Đ»Đ°ĐœŃĐ° Đ±Đ”Đ»ĐŸĐłĐŸ" -#: ../src/v4l2uvc.c:113 +#: ../gview_v4l2core/v4l2_controls.c:105 msgid "White Balance Component, Auto" msgstr "ĐšĐŸĐŒĐżĐŸĐœĐ”ĐœŃ‚ Đ±Đ°Đ»Đ°ĐœŃĐ° Đ±Đ”Đ»ĐŸĐłĐŸ, Đ°ĐČŃ‚ĐŸ" -#: ../src/v4l2uvc.c:114 +#: ../gview_v4l2core/v4l2_controls.c:106 msgid "White Balance Blue Component" msgstr "ĐĄĐžĐœĐžĐč ĐșĐŸĐŒĐżĐŸĐœĐ”ĐœŃ‚ Đ±Đ°Đ»Đ°ĐœŃĐ° Đ±Đ”Đ»ĐŸĐłĐŸ" -#: ../src/v4l2uvc.c:115 +#: ../gview_v4l2core/v4l2_controls.c:107 msgid "White Balance Red Component" msgstr "ĐšŃ€Đ°ŃĐœŃ‹Đč ĐșĐŸĐŒĐżĐŸĐœĐ”ĐœŃ‚ Đ±Đ°Đ»Đ°ĐœŃĐ° Đ±Đ”Đ»ĐŸĐłĐŸ" #. libwebcam specific control strings -#: ../src/v4l2uvc.c:118 +#: ../gview_v4l2core/v4l2_controls.c:110 msgid "Focus" msgstr "Đ€ĐŸĐșŃƒŃĐžŃ€ĐŸĐČĐ°ĐœĐžĐ”" -#: ../src/v4l2uvc.c:119 +#: ../gview_v4l2core/v4l2_controls.c:111 msgid "Focus (Absolute)" msgstr "Đ€ĐŸĐșŃƒŃĐžŃ€ĐŸĐČĐ°ĐœĐžĐ” (ĐĐ±ŃĐŸĐ»ŃŽŃ‚ĐœĐŸĐ”)" -#: ../src/vcodecs.c:63 +#: ../gview_v4l2core/v4l2_xu_ctrls.c:63 ../guvcview/gui_gtk3_v4l2ctrls.c:239 +msgid "Off" +msgstr "ОтĐșĐ»." + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:64 ../guvcview/gui_gtk3_v4l2ctrls.c:239 +msgid "On" +msgstr "ВĐșĐ»." + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:65 ../guvcview/gui_gtk3_v4l2ctrls.c:239 +msgid "Blinking" +msgstr "ĐœĐ”Ń€Ń†Đ°ĐœĐžĐ”" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:66 ../guvcview/gui_gtk3_v4l2ctrls.c:239 +msgid "Auto" +msgstr "АĐČŃ‚ĐŸ" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:73 +msgid "Pan (relative)" +msgstr "Đ“ĐŸŃ€. ĐżĐŸĐČĐŸŃ€ĐŸŃ‚ (ĐŸŃ‚ĐœĐŸŃĐžŃ‚.)" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:86 +msgid "Tilt (relative)" +msgstr "ВДрт. ĐżĐŸĐČĐŸŃ€ĐŸŃ‚ (ĐŸŃ‚ĐœĐŸŃĐžŃ‚.)" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:99 +msgid "Pan Reset" +msgstr "Đ“ĐŸŃ€. ĐČĐŸĐ·ĐČрат" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:112 +msgid "Tilt Reset" +msgstr "ВДрт. ĐČĐŸĐ·ĐČрат" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:125 +msgid "Focus (absolute)" +msgstr "Đ€ĐŸĐșус (Đ°Đ±ŃĐŸĐ»ŃŽŃ‚ĐœŃ‹Đč)" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:138 +msgid "LED1 Mode" +msgstr "Đ Đ”Đ¶ĐžĐŒ сĐČĐ”Ń‚ĐŸĐŽĐžĐŸĐŽĐ°1" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:151 +msgid "LED1 Frequency" +msgstr "Đ§Đ°ŃŃ‚ĐŸŃ‚Đ° сĐČĐ”Ń‚ĐŸĐŽĐžĐŸĐŽĐ°1" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:164 +msgid "Disable video processing" +msgstr "ОтĐșĐ»ŃŽŃ‡Đ”ĐœĐžĐ” ĐŸĐ±Ń€Đ°Đ±ĐŸŃ‚ĐșĐž ĐČĐžĐŽĐ”ĐŸ" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:177 +msgid "Raw bits per pixel" +msgstr "ĐšĐŸĐ»-ĐČĐŸ бОт ĐœĐ° пОĐșсДл" + +#: ../gview_encoder/audio_codecs.c:63 +#, fuzzy +msgid "PCM - uncompressed (float 32 bit)" +msgstr "PCM - бДз ŃĐ¶Đ°Ń‚ĐžŃ (16-Ń€Đ°Đ·Ń€ŃĐŽĐœŃ‹Đč)" + +#: ../gview_encoder/audio_codecs.c:80 +msgid "MP2 (MPEG audio layer 2)" +msgstr "" + +#: ../gview_encoder/audio_codecs.c:97 +msgid "MP3 (MPEG audio layer 3)" +msgstr "" + +#: ../gview_encoder/audio_codecs.c:118 +msgid "AC-3 (ATSC A/52A)" +msgstr "" + +#: ../gview_encoder/audio_codecs.c:139 +msgid "AAC (Advanced Audio Coding)" +msgstr "" + +#: ../gview_encoder/audio_codecs.c:160 +msgid "Vorbis" +msgstr "Vorbis" + +#: ../gview_encoder/video_codecs.c:75 +#, fuzzy +msgid "Raw camera input" +msgstr "ВыĐČĐŸĐŽ ĐșĐ°ĐŒĐ”Ń€Ń‹:" + +#: ../gview_encoder/video_codecs.c:111 msgid "MJPG - compressed" msgstr "MJPG - сжатыĐč" -#: ../src/vcodecs.c:99 -msgid "YUY2 - uncomp YUV" -msgstr "YUY2 - ĐœĐ”ŃĐ¶Đ°Ń‚Ń‹Đč YUV" - -#: ../src/vcodecs.c:135 -msgid "RGB - uncomp BMP" -msgstr "RGB - ĐœĐ”ŃĐ¶Đ°Ń‚Ń‹Đč BMP" - -#: ../src/vcodecs.c:171 +#: ../gview_encoder/video_codecs.c:147 msgid "MPEG video 1" msgstr "MPEG-ĐČĐžĐŽĐ”ĐŸ 1" -#: ../src/vcodecs.c:207 +#: ../gview_encoder/video_codecs.c:183 msgid "FLV1 - flash video 1" msgstr "FLV1 - Ń„Đ»ŃŃˆ-ĐČĐžĐŽĐ”ĐŸ 1" -#: ../src/vcodecs.c:243 +#: ../gview_encoder/video_codecs.c:219 msgid "WMV1 - win. med. video 7" msgstr "WMV1 - ĐČĐžĐŽĐ”ĐŸ Windows Media 7" -#: ../src/vcodecs.c:279 +#: ../gview_encoder/video_codecs.c:255 msgid "MPG2 - MPG2 format" msgstr "MPG2 - Ń„ĐŸŃ€ĐŒĐ°Ń‚ MPG2" -#: ../src/vcodecs.c:315 +#: ../gview_encoder/video_codecs.c:291 msgid "MS MP4 V3" msgstr "MS MP4 V3" -#: ../src/vcodecs.c:351 +#: ../gview_encoder/video_codecs.c:327 msgid "MPEG4-ASP" msgstr "MPEG4-ASP" -#: ../src/vcodecs.c:387 +#: ../gview_encoder/video_codecs.c:363 msgid "MPEG4-AVC (H264)" msgstr "MPEG4-AVC (H264)" -#: ../src/vcodecs.c:427 +#: ../gview_encoder/video_codecs.c:403 msgid "VP8 (VP8)" msgstr "VP8 (VP8)" -#: ../src/vcodecs.c:463 +#: ../gview_encoder/video_codecs.c:439 msgid "Theora (ogg theora)" msgstr "" -#: ../src/video_format.c:43 -msgid "AVI - avi format" -msgstr "AVI - Ń„ĐŸŃ€ĐŒĐ°Ń‚ avi" +#: ../guvcview/gui_gtk3_audioctrls.c:95 +msgid "Audio API:" +msgstr "ĐŃƒĐŽĐžĐŸ-API:" -#: ../src/video_format.c:52 -msgid "MKV - Matroska format" -msgstr "MKV - Ń„ĐŸŃ€ĐŒĐ°Ń‚ Matroska" - -#: ../src/video_format.c:61 -msgid "WEBM - format" -msgstr "Đ€ĐŸŃ€ĐŒĐ°Ń‚ WEBM" +#: ../guvcview/gui_gtk3_audioctrls.c:106 +msgid "NO SOUND" +msgstr "" -#: ../src/video_tab.c:216 -msgid "Frame Rate:" -msgstr "Đ§Đ°ŃŃ‚ĐŸŃ‚Đ° ĐșĐ°ĐŽŃ€ĐŸĐČ:" +#: ../guvcview/gui_gtk3_audioctrls.c:107 +msgid "PORTAUDIO" +msgstr "PORTAUDIO" -#: ../src/video_tab.c:223 -msgid " Show" -msgstr " ĐŸĐŸĐșĐ°Đ·Đ°Ń‚ŃŒ" +#: ../guvcview/gui_gtk3_audioctrls.c:110 +msgid "PULSEAUDIO" +msgstr "PULSEAUDIO" -#: ../src/video_tab.c:245 -msgid "Resolution:" -msgstr "Đ Đ°Đ·Ń€Đ”ŃˆĐ”ĐœĐžĐ”:" +#: ../guvcview/gui_gtk3_audioctrls.c:127 +msgid "Input Device:" +msgstr "ĐŁŃŃ‚Ń€ĐŸĐčстĐČĐŸ ĐČĐČĐŸĐŽĐ°:" + +#: ../guvcview/gui_gtk3_audioctrls.c:161 +msgid "Sample Rate:" +msgstr "Đ§Đ°ŃŃ‚ĐŸŃ‚Đ° ЎОсĐșрДтОзацОО:" + +#: ../guvcview/gui_gtk3_audioctrls.c:168 ../guvcview/gui_gtk3_audioctrls.c:214 +msgid "Dev. Default" +msgstr "ĐżĐŸ ŃƒĐŒĐŸĐ»Ń‡Đ°ĐœĐžŃŽ" + +#: ../guvcview/gui_gtk3_audioctrls.c:207 +msgid "Channels:" +msgstr "ĐšĐ°ĐœĐ°Đ»ĐŸĐČ:" + +#: ../guvcview/gui_gtk3_audioctrls.c:215 +msgid "1 - mono" +msgstr "1 - ĐŒĐŸĐœĐŸ" + +#: ../guvcview/gui_gtk3_audioctrls.c:216 +msgid "2 - stereo" +msgstr "2 - ŃŃ‚Đ”Ń€Đ”ĐŸ" + +#: ../guvcview/gui_gtk3_audioctrls.c:235 +#, fuzzy +msgid "---- Audio Filters ----" +msgstr "---- Đ’ĐžĐŽĐ”ĐŸ-Ń„ĐžĐ»ŃŒŃ‚Ń€Ń‹ ----" + +#. Echo FX +#: ../guvcview/gui_gtk3_audioctrls.c:255 +msgid " Echo" +msgstr " Đ­Ń…ĐŸ" + +#. Reverb FX +#: ../guvcview/gui_gtk3_audioctrls.c:268 +msgid " Reverb" +msgstr " Đ Đ”ĐČĐ”Ń€Đ±Đ”Ń€Đ°Ń†ĐžŃ" + +#. Fuzz FX +#: ../guvcview/gui_gtk3_audioctrls.c:281 +msgid " Fuzz" +msgstr " Ѐуз" + +#. WahWah FX +#: ../guvcview/gui_gtk3_audioctrls.c:294 +msgid " WahWah" +msgstr " КĐČĐ°ĐșушĐșĐ°" + +#. Ducky FX +#: ../guvcview/gui_gtk3_audioctrls.c:307 +msgid " Ducky" +msgstr " ĐŁŃ‚Ń‘ĐœĐŸĐș" + +#: ../guvcview/gui_gtk3.c:310 ../guvcview/gui_gtk3_callbacks.c:749 +msgid "Stop Video (V)" +msgstr "ĐžŃŃ‚Đ°ĐœĐŸĐČоть ĐČĐžĐŽĐ”ĐŸ (V)" + +#. video button +#: ../guvcview/gui_gtk3.c:315 ../guvcview/gui_gtk3.c:600 +#: ../guvcview/gui_gtk3_callbacks.c:755 +msgid "Cap. Video (V)" +msgstr "ЗахĐČ. ĐČĐžĐŽĐ”ĐŸ (V)" + +#: ../guvcview/gui_gtk3.c:376 ../guvcview/gui_gtk3.c:383 +msgid "Error" +msgstr "ĐžŃˆĐžĐ±ĐșĐ°" + +#: ../guvcview/gui_gtk3.c:379 ../guvcview/gui_gtk3.c:386 +#: ../guvcview/gui_gtk3_callbacks.c:2097 +msgid "_Ok" +msgstr "" + +#: ../guvcview/gui_gtk3.c:380 ../guvcview/gui_gtk3_callbacks.c:185 +#: ../guvcview/gui_gtk3_callbacks.c:199 ../guvcview/gui_gtk3_callbacks.c:522 +#: ../guvcview/gui_gtk3_callbacks.c:624 ../guvcview/gui_gtk3_callbacks.c:1755 +#: ../guvcview/gui_gtk3_callbacks.c:2098 +#, fuzzy +msgid "_Cancel" +msgstr "ĐžŃ‚ĐŒĐ”ĐœĐ°" + +#: ../guvcview/gui_gtk3.c:407 +msgid "" +"\n" +"You have more than one video device installed.\n" +"Do you want to try another one ?\n" +msgstr "" +"\n" +"ĐŁ ĐČас ŃƒŃŃ‚Đ°ĐœĐŸĐČĐ»Đ”Đœ ĐŽĐŸĐżĐŸĐ»ĐœĐžŃ‚Đ”Đ»ŃŒĐœŃ‹Đč ĐČĐžĐŽĐ”ĐŸ ĐżŃ€ĐžĐ±ĐŸŃ€.\n" +"Đ„ĐŸŃ‚ĐžŃ‚Đ” ĐżĐŸĐżŃ€ĐŸĐ±ĐŸĐČать ĐŽŃ€ŃƒĐłĐŸĐč?\n" + +#. ---- Devices ---- +#: ../guvcview/gui_gtk3.c:414 ../guvcview/gui_gtk3_videoctrls.c:106 +msgid "Device:" +msgstr "ĐŁŃŃ‚Ń€ĐŸĐčстĐČĐŸ:" + +#: ../guvcview/gui_gtk3.c:516 +msgid "Guvcview Video Capture" +msgstr "ЗаxĐČат ĐČĐžĐŽĐ”ĐŸ чДрДз Guvcview" + +#: ../guvcview/gui_gtk3.c:525 +#, fuzzy +msgid "Guvcview" +msgstr "guvcview" + +#: ../guvcview/gui_gtk3.c:572 +#, fuzzy +msgid "Stop Cap. (I)" +msgstr "ĐŸŃ€Đ”Đșратоть Đ°ĐČŃ‚ĐŸĐŒĐ°Ń‚ĐžŃ‡Đ”ŃĐșĐžĐč Đ·Đ°Ń…ĐČат (I)" + +#: ../guvcview/gui_gtk3.c:578 ../guvcview/gui_gtk3_callbacks.c:720 +#: ../guvcview/video_capture.c:250 +msgid "Cap. Image (I)" +msgstr "ЗахĐČ. Đ˜Đ·ĐŸĐ±Ń€Đ°Đ¶Đ”ĐœĐžĐ” (I)" + +#. quit button +#. GtkWidget *quitButton = gtk_button_new_from_stock(GTK_STOCK_QUIT); +#: ../guvcview/gui_gtk3.c:621 +msgid "_Quit" +msgstr "" + +#: ../guvcview/gui_gtk3.c:667 +msgid "Image Controls" +msgstr "Đ Đ”ĐłŃƒĐ»ĐžŃ€ĐŸĐČĐșĐ° ĐžĐ·ĐŸĐ±Ń€Đ°Đ¶Đ”ĐœĐžŃ" + +#: ../guvcview/gui_gtk3.c:703 +#, fuzzy +msgid "H264 Controls" +msgstr "ĐĐ°ŃŃ‚Ń€ĐŸĐčĐșĐž ĐżĐŸĐ»ŃŒĐ·ĐŸĐČĐ°Ń‚Đ”Đ»Ń" + +#: ../guvcview/gui_gtk3.c:742 +#, fuzzy +msgid "Video Controls" +msgstr "ĐĐ°ŃŃ‚Ń€ĐŸĐčĐșĐž ĐżĐŸĐ»ŃŒĐ·ĐŸĐČĐ°Ń‚Đ”Đ»Ń" + +#: ../guvcview/gui_gtk3.c:777 +#, fuzzy +msgid "Audio Controls" +msgstr "ĐĐ°ŃŃ‚Ń€ĐŸĐčĐșĐž ĐżĐŸĐ»ŃŒĐ·ĐŸĐČĐ°Ń‚Đ”Đ»Ń" + +#: ../guvcview/gui_gtk3_callbacks.c:182 ../guvcview/gui_gtk3_menu.c:72 +msgid "Save Profile" +msgstr "ĐĄĐŸŃ…Ń€Đ°ĐœĐžŃ‚ŃŒ ĐżŃ€ĐŸŃ„ĐžĐ»ŃŒ" + +#: ../guvcview/gui_gtk3_callbacks.c:186 ../guvcview/gui_gtk3_callbacks.c:523 +#: ../guvcview/gui_gtk3_callbacks.c:625 +msgid "_Save" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:196 ../guvcview/gui_gtk3_menu.c:71 +msgid "Load Profile" +msgstr "Đ—Đ°ĐłŃ€ŃƒĐ·ĐžŃ‚ŃŒ ĐżŃ€ĐŸŃ„ĐžĐ»ŃŒ" + +#: ../guvcview/gui_gtk3_callbacks.c:200 +msgid "_Open" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:208 ../guvcview/gui_gtk3_callbacks.c:531 +#: ../guvcview/gui_gtk3_callbacks.c:634 +msgid "File Format:" +msgstr "Đ€ĐŸŃ€ĐŒĐ°Ń‚ фаĐčла:" + +#: ../guvcview/gui_gtk3_callbacks.c:220 +msgid "gpfl (*.gpfl)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:221 +msgid "any (*.*)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:519 +#, fuzzy +msgid "Photo file name" +msgstr "Đ˜ĐŒŃ фаĐčла ĐžĐ·ĐŸĐ±Ń€Đ°Đ¶Đ”ĐœĐžŃ" + +#: ../guvcview/gui_gtk3_callbacks.c:543 +#, fuzzy +msgid "Raw (*.raw)" +msgstr "ĐĐ”ĐŸĐ±Ń€Đ°Đ±ĐŸŃ‚Đ°ĐœĐœĐŸĐ” ĐžĐ·ĐŸĐ±Ń€Đ°Đ¶Đ”ĐœĐžĐ” Raw Image (raw)" + +#: ../guvcview/gui_gtk3_callbacks.c:544 +#, fuzzy +msgid "Jpeg (*.jpg)" +msgstr "Jpeg (jpg)" + +#: ../guvcview/gui_gtk3_callbacks.c:545 +msgid "Png (*.png)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:546 +msgid "Bmp (*.bmp)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:621 +#, fuzzy +msgid "Video file name" +msgstr "Đ˜ĐŒŃ фаĐčла ĐžĐ·ĐŸĐ±Ń€Đ°Đ¶Đ”ĐœĐžŃ" + +#: ../guvcview/gui_gtk3_callbacks.c:646 +msgid "Matroska (*.mkv)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:647 +msgid "WebM (*.webm)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:648 +msgid "Avi (*.avi)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:1158 +msgid "start new" +msgstr "ЗапусĐș ĐœĐŸĐČĐŸĐłĐŸ" + +#: ../guvcview/gui_gtk3_callbacks.c:1161 +msgid "restart" +msgstr "ĐżĐ”Ń€Đ”Đ·Đ°ĐłŃ€ŃƒĐ·ĐžŃ‚ŃŒ" + +#: ../guvcview/gui_gtk3_callbacks.c:1163 +msgid "new" +msgstr "ĐĐŸĐČыĐč" + +#: ../guvcview/gui_gtk3_callbacks.c:1165 +msgid "cancel" +msgstr "ĐžŃ‚ĐŒĐ”ĐœĐ°" + +#: ../guvcview/gui_gtk3_callbacks.c:1170 +msgid "" +"launch new process or restart?.\n" +"\n" +msgstr "" +"Запустоть ĐœĐŸĐČыĐč ĐżŃ€ĐŸŃ†Đ”ŃŃ ОлО ĐżĐ”Ń€Đ”Đ·Đ°ĐżŃƒŃŃ‚ĐžŃ‚ŃŒ?\n" +"\n" + +#: ../guvcview/gui_gtk3_callbacks.c:1751 +#, fuzzy +msgid "video codec values" +msgstr "Đ·ĐœĐ°Ń‡Đ”ĐœĐžŃ Đ·ĐČуĐșĐŸĐČĐŸĐłĐŸ ĐșĐŸĐŽĐ”ĐșĐ°" + +#: ../guvcview/gui_gtk3_callbacks.c:1754 +msgid "_OK" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:1760 +msgid "" +" encoder fps: \n" +" (0 - use fps combobox value)" +msgstr "" +" ĐșĐŸĐŽĐ”Đș ĐșĐ°ĐŽŃ€ĐŸĐČ/с.: \n" +" (0 - ĐžŃĐżĐŸĐ»ŃŒĐ·ĐŸĐČать Đ·ĐœĐ°Ń‡Đ”ĐœĐžĐ” спОсĐșĐ°)" + +#: ../guvcview/gui_gtk3_callbacks.c:1773 +msgid " monotonic pts" +msgstr "" + +#. bit rate +#: ../guvcview/gui_gtk3_callbacks.c:1780 ../guvcview/gui_gtk3_callbacks.c:2105 +msgid "bit rate: " +msgstr "БОтрДĐčт: " + +#: ../guvcview/gui_gtk3_callbacks.c:1793 +msgid "qmax: " +msgstr "qmax: " + +#: ../guvcview/gui_gtk3_callbacks.c:1806 +msgid "qmin: " +msgstr "qmin: " + +#: ../guvcview/gui_gtk3_callbacks.c:1819 +msgid "max. qdiff: " +msgstr "ĐŒĐ°Đșс. qdiff: " + +#: ../guvcview/gui_gtk3_callbacks.c:1832 +msgid "dia size: " +msgstr "dia-size: " + +#: ../guvcview/gui_gtk3_callbacks.c:1845 +msgid "pre dia size: " +msgstr "pre-dia-size: " + +#: ../guvcview/gui_gtk3_callbacks.c:1858 +msgid "pre me: " +msgstr "pre-me: " + +#: ../guvcview/gui_gtk3_callbacks.c:1871 +msgid "pre cmp: " +msgstr "pre-cmp: " + +#: ../guvcview/gui_gtk3_callbacks.c:1884 +msgid "cmp: " +msgstr "cmp: " -#: ../src/video_tab.c:271 -msgid "Camera Output:" -msgstr "ВыĐČĐŸĐŽ ĐșĐ°ĐŒĐ”Ń€Ń‹:" +#: ../guvcview/gui_gtk3_callbacks.c:1897 +msgid "sub cmp: " +msgstr "sub-cmp: " -#: ../src/video_tab.c:293 -msgid "Apply" -msgstr "ĐŸŃ€ĐžĐŒĐ”ĐœĐžŃ‚ŃŒ" +#: ../guvcview/gui_gtk3_callbacks.c:1910 +msgid "last predictor count: " +msgstr "last-predictor-count: " -#: ../src/video_tab.c:300 -msgid "Quality:" -msgstr "КачДстĐČĐŸ:" +#: ../guvcview/gui_gtk3_callbacks.c:1923 +msgid "gop size: " +msgstr "gop-size: " -#: ../src/video_tab.c:310 -msgid "---- Video Filters ----" -msgstr "---- Đ’ĐžĐŽĐ”ĐŸ-Ń„ĐžĐ»ŃŒŃ‚Ń€Ń‹ ----" +#: ../guvcview/gui_gtk3_callbacks.c:1936 +msgid "qcompress: " +msgstr "qcompress: " -#. Mirror -#: ../src/video_tab.c:329 -msgid " Mirror" -msgstr " Đ“ĐŸŃ€. ĐŸŃ‚Ń€Đ°Đ¶Đ”ĐœĐžĐ”" +#: ../guvcview/gui_gtk3_callbacks.c:1949 +msgid "qblur: " +msgstr "qblur: " -#. Upturn -#: ../src/video_tab.c:340 -msgid " Invert" -msgstr " ВДрт. ĐŸŃ‚Ń€Đ°Đ¶Đ”ĐœĐžĐ”" +#: ../guvcview/gui_gtk3_callbacks.c:1962 +msgid "subq: " +msgstr "" -#. Negate -#: ../src/video_tab.c:351 -msgid " Negative" -msgstr " ĐĐ”ĐłĐ°Ń‚ĐžĐČ" +#: ../guvcview/gui_gtk3_callbacks.c:1975 +msgid "framerefs: " +msgstr "" -#. Mono -#: ../src/video_tab.c:362 -msgid " Mono" -msgstr " Đ§Ń‘Ń€ĐœĐŸ-Đ±Đ”Đ»ĐŸĐ”" +#: ../guvcview/gui_gtk3_callbacks.c:1988 +msgid "me method: " +msgstr "me-method: " -#. Pieces -#: ../src/video_tab.c:374 -msgid " Pieces" -msgstr " ĐœĐŸĐ·Đ°ĐžĐșĐ°" +#: ../guvcview/gui_gtk3_callbacks.c:2001 +msgid "mb decision: " +msgstr "mb-decision: " -#. Particles -#: ../src/video_tab.c:386 -msgid " Particles" +#: ../guvcview/gui_gtk3_callbacks.c:2014 +msgid "max B frames: " msgstr "" -#: ../src/uvc_h264.c:596 -msgid "H264 Controls" +#: ../guvcview/gui_gtk3_callbacks.c:2027 +msgid "num threads: " msgstr "" -#: ../src/uvc_h264.c:615 +#: ../guvcview/gui_gtk3_callbacks.c:2094 +msgid "audio codec values" +msgstr "Đ·ĐœĐ°Ń‡Đ”ĐœĐžŃ Đ·ĐČуĐșĐŸĐČĐŸĐłĐŸ ĐșĐŸĐŽĐ”ĐșĐ°" + +#. sample format +#: ../guvcview/gui_gtk3_callbacks.c:2119 +msgid "sample format: " +msgstr "Đ€ĐŸŃ€ĐŒĐ°Ń‚ ŃŃĐŒĐżĐ»Đ° " + +#: ../guvcview/gui_gtk3_h264ctrls.c:622 +#, fuzzy msgid "Rate Control Mode:" -msgstr "" +msgstr "Đ Đ”ĐłŃƒĐ»ĐžŃ€ĐŸĐČĐșĐ° ĐžĐ·ĐŸĐ±Ń€Đ°Đ¶Đ”ĐœĐžŃ" -#: ../src/uvc_h264.c:626 +#: ../guvcview/gui_gtk3_h264ctrls.c:633 msgid "CBR" msgstr "" -#: ../src/uvc_h264.c:629 +#: ../guvcview/gui_gtk3_h264ctrls.c:636 msgid "VBR" msgstr "" -#: ../src/uvc_h264.c:633 +#: ../guvcview/gui_gtk3_h264ctrls.c:640 msgid "Constant QP" msgstr "" -#: ../src/uvc_h264.c:651 +#: ../guvcview/gui_gtk3_h264ctrls.c:658 msgid "Rate Control Mode flags:" msgstr "" -#: ../src/uvc_h264.c:676 +#: ../guvcview/gui_gtk3_h264ctrls.c:683 msgid "Temporal Scale Mode:" msgstr "" -#: ../src/uvc_h264.c:704 +#: ../guvcview/gui_gtk3_h264ctrls.c:711 msgid "Spatial Scale Mode:" msgstr "" -#: ../src/uvc_h264.c:737 +#: ../guvcview/gui_gtk3_h264ctrls.c:741 msgid "Frame Interval (100ns units):" msgstr "" -#: ../src/uvc_h264.c:772 +#: ../guvcview/gui_gtk3_h264ctrls.c:778 +#, fuzzy msgid "Bit Rate:" -msgstr "" +msgstr "БОтрДĐčт: " -#: ../src/uvc_h264.c:795 +#: ../guvcview/gui_gtk3_h264ctrls.c:801 msgid "Hints:" msgstr "" -#: ../src/uvc_h264.c:800 +#: ../guvcview/gui_gtk3_h264ctrls.c:806 +#, fuzzy msgid "Resolution" -msgstr "" +msgstr "Đ Đ°Đ·Ń€Đ”ŃˆĐ”ĐœĐžĐ”:" -#: ../src/uvc_h264.c:804 +#: ../guvcview/gui_gtk3_h264ctrls.c:810 +#, fuzzy msgid "Profile" -msgstr "" +msgstr "ĐĄĐŸŃ…Ń€Đ°ĐœĐžŃ‚ŃŒ ĐżŃ€ĐŸŃ„ĐžĐ»ŃŒ" -#: ../src/uvc_h264.c:808 +#: ../guvcview/gui_gtk3_h264ctrls.c:814 +#, fuzzy msgid "Rate Control" -msgstr "" +msgstr "Đ Đ”ĐłŃƒĐ»ĐžŃ€ĐŸĐČĐșĐ° ĐžĐ·ĐŸĐ±Ń€Đ°Đ¶Đ”ĐœĐžŃ" -#: ../src/uvc_h264.c:812 +#: ../guvcview/gui_gtk3_h264ctrls.c:818 msgid "Usage Type" msgstr "" -#: ../src/uvc_h264.c:816 +#: ../guvcview/gui_gtk3_h264ctrls.c:822 msgid "Slice Mode" msgstr "" -#: ../src/uvc_h264.c:820 +#: ../guvcview/gui_gtk3_h264ctrls.c:826 msgid "Slice Unit" msgstr "" -#: ../src/uvc_h264.c:824 +#: ../guvcview/gui_gtk3_h264ctrls.c:830 msgid "MVC View" msgstr "" -#: ../src/uvc_h264.c:828 +#: ../guvcview/gui_gtk3_h264ctrls.c:834 msgid "Temporal Scale" msgstr "" -#: ../src/uvc_h264.c:832 +#: ../guvcview/gui_gtk3_h264ctrls.c:838 msgid "SNR Scale" msgstr "" -#: ../src/uvc_h264.c:836 +#: ../guvcview/gui_gtk3_h264ctrls.c:842 msgid "Spatial Scale" msgstr "" -#: ../src/uvc_h264.c:840 +#: ../guvcview/gui_gtk3_h264ctrls.c:846 msgid "Spatial Layer Ratio" msgstr "" -#: ../src/uvc_h264.c:844 +#: ../guvcview/gui_gtk3_h264ctrls.c:850 +#, fuzzy msgid "Frame Interval" -msgstr "" +msgstr "Đ§Đ°ŃŃ‚ĐŸŃ‚Đ° ĐșĐ°ĐŽŃ€ĐŸĐČ:" -#: ../src/uvc_h264.c:848 +#: ../guvcview/gui_gtk3_h264ctrls.c:854 msgid "Leaky Bucket Size" msgstr "" -#: ../src/uvc_h264.c:852 +#: ../guvcview/gui_gtk3_h264ctrls.c:858 msgid "Bit Rate" msgstr "" -#: ../src/uvc_h264.c:856 ../src/uvc_h264.c:1250 +#: ../guvcview/gui_gtk3_h264ctrls.c:862 ../guvcview/gui_gtk3_h264ctrls.c:1220 msgid "CABAC" msgstr "" -#: ../src/uvc_h264.c:860 +#: ../guvcview/gui_gtk3_h264ctrls.c:866 msgid "(I) Frame Period" msgstr "" -#: ../src/uvc_h264.c:907 +#: ../guvcview/gui_gtk3_h264ctrls.c:878 msgid "Slice Mode:" msgstr "" -#: ../src/uvc_h264.c:914 +#: ../guvcview/gui_gtk3_h264ctrls.c:885 msgid "no multiple slices" msgstr "" -#: ../src/uvc_h264.c:916 +#: ../guvcview/gui_gtk3_h264ctrls.c:887 msgid "bits/slice" msgstr "" -#: ../src/uvc_h264.c:918 +#: ../guvcview/gui_gtk3_h264ctrls.c:889 msgid "Mbits/slice" msgstr "" -#: ../src/uvc_h264.c:920 +#: ../guvcview/gui_gtk3_h264ctrls.c:891 msgid "slices/frame" msgstr "" -#: ../src/uvc_h264.c:929 +#: ../guvcview/gui_gtk3_h264ctrls.c:900 msgid "Slice Units:" msgstr "" -#: ../src/uvc_h264.c:950 +#: ../guvcview/gui_gtk3_h264ctrls.c:921 +#, fuzzy msgid "Profile:" -msgstr "" +msgstr "ĐĄĐŸŃ…Ń€Đ°ĐœĐžŃ‚ŃŒ ĐżŃ€ĐŸŃ„ĐžĐ»ŃŒ" -#: ../src/uvc_h264.c:957 +#: ../guvcview/gui_gtk3_h264ctrls.c:928 +#, fuzzy msgid "Baseline Profile" -msgstr "" +msgstr "ĐĄĐŸŃ…Ń€Đ°ĐœĐžŃ‚ŃŒ ĐżŃ€ĐŸŃ„ĐžĐ»ŃŒ" -#: ../src/uvc_h264.c:959 +#: ../guvcview/gui_gtk3_h264ctrls.c:930 +#, fuzzy msgid "Main Profile" -msgstr "" +msgstr "ĐĄĐŸŃ…Ń€Đ°ĐœĐžŃ‚ŃŒ ĐżŃ€ĐŸŃ„ĐžĐ»ŃŒ" -#: ../src/uvc_h264.c:961 +#: ../guvcview/gui_gtk3_h264ctrls.c:932 +#, fuzzy msgid "High Profile" -msgstr "" +msgstr "ĐĄĐŸŃ…Ń€Đ°ĐœĐžŃ‚ŃŒ ĐżŃ€ĐŸŃ„ĐžĐ»ŃŒ" -#: ../src/uvc_h264.c:963 +#: ../guvcview/gui_gtk3_h264ctrls.c:934 msgid "Scalable Baseline Profile" msgstr "" -#: ../src/uvc_h264.c:965 +#: ../guvcview/gui_gtk3_h264ctrls.c:936 +#, fuzzy msgid "Scalable High Profile" -msgstr "" +msgstr "ĐĄĐŸŃ…Ń€Đ°ĐœĐžŃ‚ŃŒ ĐżŃ€ĐŸŃ„ĐžĐ»ŃŒ" -#: ../src/uvc_h264.c:967 +#: ../guvcview/gui_gtk3_h264ctrls.c:938 msgid "Multiview High Profile" msgstr "" -#: ../src/uvc_h264.c:969 +#: ../guvcview/gui_gtk3_h264ctrls.c:940 +#, fuzzy msgid "Stereo High Profile" -msgstr "" +msgstr "ĐĄĐŸŃ…Ń€Đ°ĐœĐžŃ‚ŃŒ ĐżŃ€ĐŸŃ„ĐžĐ»ŃŒ" -#: ../src/uvc_h264.c:1008 +#: ../guvcview/gui_gtk3_h264ctrls.c:979 msgid "Profile flags:" msgstr "" -#: ../src/uvc_h264.c:1033 +#: ../guvcview/gui_gtk3_h264ctrls.c:1004 msgid "(I) Frame Period (ms):" msgstr "" -#: ../src/uvc_h264.c:1054 +#: ../guvcview/gui_gtk3_h264ctrls.c:1025 msgid "Estimated Video Delay (ms):" msgstr "" -#: ../src/uvc_h264.c:1075 +#: ../guvcview/gui_gtk3_h264ctrls.c:1046 msgid "Estimated Max Config Delay (ms):" msgstr "" -#: ../src/uvc_h264.c:1096 +#: ../guvcview/gui_gtk3_h264ctrls.c:1067 msgid "Usage Type:" msgstr "" -#: ../src/uvc_h264.c:1103 +#: ../guvcview/gui_gtk3_h264ctrls.c:1074 msgid "Real-time" msgstr "" -#: ../src/uvc_h264.c:1105 +#: ../guvcview/gui_gtk3_h264ctrls.c:1076 msgid "Broadcast" msgstr "" -#: ../src/uvc_h264.c:1107 +#: ../guvcview/gui_gtk3_h264ctrls.c:1078 msgid "Storage" msgstr "" -#: ../src/uvc_h264.c:1109 +#: ../guvcview/gui_gtk3_h264ctrls.c:1080 msgid "(0) Non-scalable single layer AVC" msgstr "" -#: ../src/uvc_h264.c:1111 +#: ../guvcview/gui_gtk3_h264ctrls.c:1082 msgid "(1) SVC temporal scalability with hierarchical P" msgstr "" -#: ../src/uvc_h264.c:1113 +#: ../guvcview/gui_gtk3_h264ctrls.c:1084 msgid "(2q) SVC temporal scalability + Quality/SNR scalability" msgstr "" -#: ../src/uvc_h264.c:1115 +#: ../guvcview/gui_gtk3_h264ctrls.c:1086 msgid "(2s) SVC temporal scalability + spatial scalability" msgstr "" -#: ../src/uvc_h264.c:1117 +#: ../guvcview/gui_gtk3_h264ctrls.c:1088 msgid "(3) Full SVC scalability" msgstr "" -#: ../src/uvc_h264.c:1131 +#: ../guvcview/gui_gtk3_h264ctrls.c:1102 msgid "SNR Control Mode:" msgstr "" -#: ../src/uvc_h264.c:1138 +#: ../guvcview/gui_gtk3_h264ctrls.c:1109 msgid "No SNR Enhancement Layer" msgstr "" -#: ../src/uvc_h264.c:1140 +#: ../guvcview/gui_gtk3_h264ctrls.c:1111 msgid "CGS NonRewrite (2 Layer)" msgstr "" -#: ../src/uvc_h264.c:1142 +#: ../guvcview/gui_gtk3_h264ctrls.c:1113 msgid "CGS NonRewrite (3 Layer)" msgstr "" -#: ../src/uvc_h264.c:1144 +#: ../guvcview/gui_gtk3_h264ctrls.c:1115 msgid "CGS Rewrite (2 Layer)" msgstr "" -#: ../src/uvc_h264.c:1146 +#: ../guvcview/gui_gtk3_h264ctrls.c:1117 msgid "CGS Rewrite (3 Layer)" msgstr "" -#: ../src/uvc_h264.c:1148 +#: ../guvcview/gui_gtk3_h264ctrls.c:1119 msgid "MGS (2 Layer)" msgstr "" -#: ../src/uvc_h264.c:1173 +#: ../guvcview/gui_gtk3_h264ctrls.c:1144 msgid "Stream Mux Enable" msgstr "" -#: ../src/uvc_h264.c:1180 +#: ../guvcview/gui_gtk3_h264ctrls.c:1151 msgid "Embed H.264 aux stream" msgstr "" -#: ../src/uvc_h264.c:1182 +#: ../guvcview/gui_gtk3_h264ctrls.c:1153 msgid "Embed YUY2 aux stream" msgstr "" -#: ../src/uvc_h264.c:1184 +#: ../guvcview/gui_gtk3_h264ctrls.c:1155 msgid "Embed NV12 aux stream" msgstr "" -#: ../src/uvc_h264.c:1204 +#: ../guvcview/gui_gtk3_h264ctrls.c:1175 msgid "MJPG payload container" msgstr "" -#: ../src/uvc_h264.c:1219 +#: ../guvcview/gui_gtk3_h264ctrls.c:1189 +#, fuzzy msgid "Stream Format:" -msgstr "" +msgstr "Đ€ĐŸŃ€ĐŒĐ°Ń‚ фаĐčла:" -#: ../src/uvc_h264.c:1227 +#: ../guvcview/gui_gtk3_h264ctrls.c:1197 msgid "Byte stream format (H.264 Annex-B)" msgstr "" -#: ../src/uvc_h264.c:1229 +#: ../guvcview/gui_gtk3_h264ctrls.c:1199 +#, fuzzy msgid "NAL stream format" -msgstr "" +msgstr "AVI - Ń„ĐŸŃ€ĐŒĐ°Ń‚ avi" -#: ../src/uvc_h264.c:1240 +#: ../guvcview/gui_gtk3_h264ctrls.c:1210 msgid "Entropy CABAC:" msgstr "" -#: ../src/uvc_h264.c:1248 +#: ../guvcview/gui_gtk3_h264ctrls.c:1218 msgid "CAVLC" msgstr "" -#: ../src/uvc_h264.c:1261 +#: ../guvcview/gui_gtk3_h264ctrls.c:1231 msgid "Picture timing SEI" msgstr "" -#: ../src/uvc_h264.c:1268 +#: ../guvcview/gui_gtk3_h264ctrls.c:1238 +#, fuzzy msgid "B Frames:" -msgstr "" +msgstr "Đ§Đ°ŃŃ‚ĐŸŃ‚Đ° ĐșĐ°ĐŽŃ€ĐŸĐČ:" -#: ../src/uvc_h264.c:1293 +#: ../guvcview/gui_gtk3_h264ctrls.c:1263 msgid "Preview Flipped" msgstr "" -#: ../src/uvc_h264.c:1300 +#: ../guvcview/gui_gtk3_h264ctrls.c:1270 msgid "Additional MVC Views:" msgstr "" -#: ../src/uvc_h264.c:1325 +#: ../guvcview/gui_gtk3_h264ctrls.c:1295 msgid "Simulcast stream index:" msgstr "" -#: ../src/uvc_h264.c:1350 +#: ../guvcview/gui_gtk3_h264ctrls.c:1320 msgid "Spatial Layer Ratio:" msgstr "" -#: ../src/uvc_h264.c:1379 +#: ../guvcview/gui_gtk3_h264ctrls.c:1349 msgid "Leaky Bucket Size (ms):" msgstr "" #. encoder reset -#: ../src/uvc_h264.c:1406 +#: ../guvcview/gui_gtk3_h264ctrls.c:1376 +#, fuzzy msgid "Encoder Reset" -msgstr "" +msgstr "Đ“ĐŸŃ€. ĐČĐŸĐ·ĐČрат" -#. -#. h264_controls->probe_button = gtk_button_new_with_label(_("PROBE")); -#. g_signal_connect (GTK_BUTTON(h264_controls->probe_button), "clicked", +#. +#. GtkWidget *probe_button = gtk_button_new_with_label(_("PROBE")); +#. g_signal_connect (GTK_BUTTON(probe_button), "clicked", #. G_CALLBACK (h264_probe_button_clicked), all_data); -#. -#. gtk_grid_attach (GTK_GRID(table), h264_controls->probe_button, 0, line, 1 ,1); -#. gtk_widget_show(h264_controls->probe_button); -#. -#: ../src/uvc_h264.c:1421 +#. +#. gtk_grid_attach (GTK_GRID(h264_controls_grid), probe_button, 0, line, 1 ,1); +#. gtk_widget_show(probe_button); +#. +#: ../guvcview/gui_gtk3_h264ctrls.c:1391 msgid "COMMIT" msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:70 +msgid "Settings" +msgstr "ĐĐ°ŃŃ‚Ń€ĐŸĐčĐșĐž" + +#: ../guvcview/gui_gtk3_menu.c:73 +msgid "Hardware Defaults" +msgstr "ĐĐ°ŃŃ‚Ń€ĐŸĐčĐșĐž ĐŸĐ±ĐŸŃ€ŃƒĐŽĐŸĐČĐ°ĐœĐžŃ ĐżĐŸ ŃƒĐŒĐŸĐ»Ń‡Đ°ĐœĐžŃŽ" + +#: ../guvcview/gui_gtk3_menu.c:81 +msgid "Camera Button" +msgstr "ĐšĐœĐŸĐżĐșĐ° ĐșĐ°ĐŒĐ”Ń€Ń‹" + +#: ../guvcview/gui_gtk3_menu.c:86 +msgid "Capture Image" +msgstr "ЗахĐČатоть ĐžĐ·ĐŸĐ±Ń€Đ°Đ¶Đ”ĐœĐžĐ”" + +#: ../guvcview/gui_gtk3_menu.c:91 +msgid "Capture Video" +msgstr "ЗахĐČатоть ĐČĐžĐŽĐ”ĐŸ" + +#: ../guvcview/gui_gtk3_menu.c:134 +msgid "Photo" +msgstr "Đ€ĐŸŃ‚ĐŸ" + +#: ../guvcview/gui_gtk3_menu.c:135 ../guvcview/gui_gtk3_menu.c:159 +msgid "File" +msgstr "ЀаĐčĐ»" + +#: ../guvcview/gui_gtk3_menu.c:136 ../guvcview/gui_gtk3_menu.c:160 +msgid "Increment Filename" +msgstr "ĐŁĐČĐ”Đ»ĐžŃ‡ĐžŃ‚ŃŒ ĐžĐŒŃ фаĐčла" + +#: ../guvcview/gui_gtk3_menu.c:158 +msgid "Video" +msgstr "Đ’ĐžĐŽĐ”ĐŸ" + +#: ../guvcview/gui_gtk3_menu.c:175 +msgid "Video Codec" +msgstr "Đ’ĐžĐŽĐ”ĐŸĐșĐŸĐŽĐ”Đș" + +#: ../guvcview/gui_gtk3_menu.c:202 +msgid "Video Codec Properties" +msgstr "ĐĄĐČĐŸĐčстĐČĐ° ĐČĐžĐŽĐ”ĐŸĐșĐŸĐŽĐ”ĐșĐ°" + +#: ../guvcview/gui_gtk3_menu.c:208 +msgid "Audio Codec" +msgstr "ЗĐČуĐșĐŸĐČĐŸĐč ĐșĐŸĐŽĐ”Đș" + +#: ../guvcview/gui_gtk3_menu.c:235 +msgid "Audio Codec Properties" +msgstr "ĐĄĐČĐŸĐčстĐČĐ° Đ·ĐČуĐșĐŸĐČĐŸĐłĐŸ ĐșĐŸĐŽĐ”ĐșĐ°" + +#: ../guvcview/gui_gtk3_v4l2ctrls.c:174 +msgid "Left" +msgstr "ВлДĐČĐŸ" + +#: ../guvcview/gui_gtk3_v4l2ctrls.c:175 +msgid "Right" +msgstr "ВпраĐČĐŸ" + +#: ../guvcview/gui_gtk3_v4l2ctrls.c:179 +msgid "Down" +msgstr "Đ’ĐœĐžĐ·" + +#: ../guvcview/gui_gtk3_v4l2ctrls.c:180 +msgid "Up" +msgstr "ВĐČДрх" + +#. turn it into a menu control +#: ../guvcview/gui_gtk3_v4l2ctrls.c:296 +msgid "8 bit" +msgstr "8 бОт" + +#: ../guvcview/gui_gtk3_v4l2ctrls.c:296 +msgid "12 bit" +msgstr "12 бОт" + +#. add a virtual control for software autofocus +#: ../guvcview/gui_gtk3_v4l2ctrls.c:348 +msgid "Auto Focus (continuous)" +msgstr "АĐČŃ‚ĐŸŃ„ĐŸĐșŃƒŃĐžŃ€ĐŸĐČĐșĐ° (ĐœĐ”ĐżŃ€Đ”Ń€Ń‹ĐČĐœĐ°Ń)" + +#: ../guvcview/gui_gtk3_v4l2ctrls.c:349 +msgid "set Focus" +msgstr "ĐŁŃŃ‚Đ°ĐœĐŸĐČĐșĐ° Ń„ĐŸĐșуса" + +#. control_widgets_list[n].widget2 = gtk_button_new_from_stock(GTK_STOCK_APPLY); +#. control_widgets_list[n].widget2= gtk_button_new_from_stock(GTK_STOCK_APPLY); +#. control_widgets_list[n].widget2 = gtk_button_new_from_stock(GTK_STOCK_APPLY); +#: ../guvcview/gui_gtk3_v4l2ctrls.c:433 ../guvcview/gui_gtk3_v4l2ctrls.c:456 +#: ../guvcview/gui_gtk3_v4l2ctrls.c:478 +#, fuzzy +msgid "_Apply" +msgstr "ĐŸŃ€ĐžĐŒĐ”ĐœĐžŃ‚ŃŒ" + +#: ../guvcview/gui_gtk3_videoctrls.c:144 +msgid "Frame Rate:" +msgstr "Đ§Đ°ŃŃ‚ĐŸŃ‚Đ° ĐșĐ°ĐŽŃ€ĐŸĐČ:" + +#: ../guvcview/gui_gtk3_videoctrls.c:204 +msgid "Resolution:" +msgstr "Đ Đ°Đ·Ń€Đ”ŃˆĐ”ĐœĐžĐ”:" + +#: ../guvcview/gui_gtk3_videoctrls.c:254 +msgid "Camera Output:" +msgstr "ВыĐČĐŸĐŽ ĐșĐ°ĐŒĐ”Ń€Ń‹:" + +#: ../guvcview/gui_gtk3_videoctrls.c:287 +msgid "---- Video Filters ----" +msgstr "---- Đ’ĐžĐŽĐ”ĐŸ-Ń„ĐžĐ»ŃŒŃ‚Ń€Ń‹ ----" + +#. Mirror FX +#: ../guvcview/gui_gtk3_videoctrls.c:307 +msgid " Mirror" +msgstr " Đ“ĐŸŃ€. ĐŸŃ‚Ń€Đ°Đ¶Đ”ĐœĐžĐ”" + +#. Upturn FX +#: ../guvcview/gui_gtk3_videoctrls.c:319 +msgid " Invert" +msgstr " ВДрт. ĐŸŃ‚Ń€Đ°Đ¶Đ”ĐœĐžĐ”" + +#. Negate FX +#: ../guvcview/gui_gtk3_videoctrls.c:331 +msgid " Negative" +msgstr " ĐĐ”ĐłĐ°Ń‚ĐžĐČ" + +#. Mono FX +#: ../guvcview/gui_gtk3_videoctrls.c:343 +msgid " Mono" +msgstr " Đ§Ń‘Ń€ĐœĐŸ-Đ±Đ”Đ»ĐŸĐ”" + +#. Pieces FX +#: ../guvcview/gui_gtk3_videoctrls.c:356 +msgid " Pieces" +msgstr " ĐœĐŸĐ·Đ°ĐžĐșĐ°" + +#. Particles +#: ../guvcview/gui_gtk3_videoctrls.c:369 +msgid " Particles" +msgstr "" + +#: ../guvcview/options.c:51 +msgid "Print help" +msgstr "" + +#: ../guvcview/options.c:58 +#, fuzzy +msgid "Print version" +msgstr "ĐŸĐŸĐșĐ°Đ·Ń‹ĐČаДт ĐČДрсОю" + +#: ../guvcview/options.c:64 +msgid "LEVEL" +msgstr "" + +#: ../guvcview/options.c:65 +msgid "Set Verbosity level (def: 0)" +msgstr "" + +#: ../guvcview/options.c:71 +msgid "DEVICE" +msgstr "" + +#: ../guvcview/options.c:72 +#, fuzzy +msgid "Set device name (def: /dev/video0)" +msgstr "Đ˜ŃĐżĐŸĐ»ŃŒĐ·ŃƒĐ”ĐŒĐŸĐ” ĐČĐžĐŽĐ”ĐŸ-ŃƒŃŃ‚Ń€ĐŸĐčстĐČĐŸ (ĐżĐŸ ŃƒĐŒĐŸĐ»Ń‡Đ°ĐœĐžŃŽ /dev/video0)" + +#: ../guvcview/options.c:78 +msgid "METHOD" +msgstr "" + +#: ../guvcview/options.c:79 +#, fuzzy +msgid "Set capture method [read | mmap (def)]" +msgstr "ĐœĐ”Ń‚ĐŸĐŽ Đ·Đ°Ń…ĐČата (1 - mmap (ĐżĐŸ ŃƒĐŒĐŸĐ»Ń‡Đ°ĐœĐžŃŽ) 2-чотать)" + +#: ../guvcview/options.c:85 +msgid "WIDTHxHEIGHT" +msgstr "" + +#: ../guvcview/options.c:86 +msgid "Request resolution (e.g 640x480)" +msgstr "" + +#: ../guvcview/options.c:92 +msgid "FOURCC" +msgstr "" + +#: ../guvcview/options.c:93 +msgid "Request format (e.g MJPG)" +msgstr "" + +#: ../guvcview/options.c:99 +msgid "RENDER_API" +msgstr "" + +#: ../guvcview/options.c:100 +msgid "Select render API (e.g none; sdl)" +msgstr "" + +#: ../guvcview/options.c:106 +msgid "AUDIO_API" +msgstr "" + +#: ../guvcview/options.c:107 +msgid "Select audio API (e.g none; port; pulse)" +msgstr "" + +#: ../guvcview/options.c:113 +msgid "AUDIO_DEVICE" +msgstr "" + +#: ../guvcview/options.c:114 +msgid "Select audio device index for selected api (0..N)" +msgstr "" + +#: ../guvcview/options.c:120 +msgid "GUI_API" +msgstr "" + +#: ../guvcview/options.c:121 +msgid "Select GUI API (e.g none; gtk3)" +msgstr "" + +#: ../guvcview/options.c:127 ../guvcview/options.c:134 +msgid "CODEC" +msgstr "" + +#: ../guvcview/options.c:128 +msgid "Audio codec [pcm mp2 mp3 aac ac3 vorb]" +msgstr "" + +#: ../guvcview/options.c:135 +msgid "Video codec [raw mjpg mpeg flv1 wmv1 mpg2 mp43 dx50 h264 vp80 theo]" +msgstr "" + +#: ../guvcview/options.c:141 ../guvcview/options.c:148 +#: ../guvcview/options.c:155 +msgid "FILENAME" +msgstr "" + +#: ../guvcview/options.c:142 +#, fuzzy +msgid "load control profile" +msgstr "Đ—Đ°ĐłŃ€ŃƒĐ·ĐžŃ‚ŃŒ ĐżŃ€ĐŸŃ„ĐžĐ»ŃŒ" + +#: ../guvcview/options.c:149 +msgid "filename for captured video)" +msgstr "" + +#: ../guvcview/options.c:156 +msgid "filename for captured image)" +msgstr "" + +#: ../guvcview/options.c:162 ../guvcview/options.c:169 +msgid "TIME_IN_SEC" +msgstr "" + +#: ../guvcview/options.c:163 +msgid "time (double) in sec. for video capture)" +msgstr "" + +#: ../guvcview/options.c:170 +msgid "time (double) in sec. between captured photos)" +msgstr "" + +#: ../guvcview/options.c:176 +msgid "TOTAL" +msgstr "" + +#: ../guvcview/options.c:177 +msgid "total number of captured photos)" +msgstr "" + +#: ../guvcview/options.c:184 +msgid "Start in control panel mode" +msgstr "" + +#: ../guvcview/options.c:307 +#, fuzzy, c-format +msgid "" +"Guvcview version %s\n" +"\n" +msgstr "Guvcview ĐżŃ€Đ”ĐŽŃƒĐżŃ€Đ”Đ¶ĐŽĐ”ĐœĐžĐ”:" + +#: ../guvcview/options.c:308 +#, c-format +msgid "" +"Usage:\n" +" guvcview [OPTIONS]\n" +"\n" +msgstr "" + +#: ../guvcview/options.c:309 +#, c-format +msgid "OPTIONS:\n" +msgstr "" + +#: ../guvcview/video_capture.c:819 +#, fuzzy, c-format +msgid "saving video to %s" +msgstr "Đ·Đ°Ń…ĐČат ĐČĐžĐŽĐ”ĐŸ ĐČ" + +#. if(debug_level > 1) +#. printf("GUVCVIEW: saving image to %s\n", img_filename); +#: ../guvcview/video_capture.c:1069 +#, c-format +msgid "saving image to %s" +msgstr "" + +#~ msgid "MPEG2 - (lavc)" +#~ msgstr "MPEG2 - (lavc)" + +#~ msgid "MP3 - (lavc)" +#~ msgstr "MP3 - (lavc)" + +#~ msgid "Dolby AC3 - (lavc)" +#~ msgstr "Dolby AC3 - (lavc)" + +#~ msgid "ACC Low - (faac)" +#~ msgstr "ACC Low - (faac)" + +#~ msgid "Audio" +#~ msgstr "ЗĐČуĐș" + +#~ msgid " Sound" +#~ msgstr " ЗĐČуĐș" + +#~ msgid " Show VU meter" +#~ msgstr " ĐžŃ‚ĐŸĐ±Ń€Đ°Đ¶Đ°Ń‚ŃŒ Đ·ĐœĐ°Ń‡Đ”ĐœĐžĐ” VU" + +#~ msgid "---- Audio Effects ----" +#~ msgstr "---- ĐŃƒĐŽĐžĐŸ-ŃŃ„Ń„Đ”Đșты ----" + +#~ msgid "Save File" +#~ msgstr "ĐĄĐŸŃ…Ń€Đ°ĐœĐžŃ‚ŃŒ фаĐčĐ»" + +#~ msgid "codec values" +#~ msgstr "ĐŸĐ°Ń€Đ°ĐŒĐ”Ń‚Ń€Ń‹ ĐșĐŸĐŽĐ”ĐșĐ°" + +#~ msgid "capturing photo to" +#~ msgstr "Đ·Đ°Ń…ĐČат Ń„ĐŸŃ‚ĐŸ ĐČ" + +#~ msgid "Cap. Video" +#~ msgstr "ЗахĐČ. ĐČĐžĐŽĐ”ĐŸ" + +#~ msgid "GUVCViewer Controls" +#~ msgstr "ĐŸĐ°ĐœĐ”Đ»ŃŒ упраĐČĐ»Đ”ĐœĐžŃ ĐżŃ€ĐŸĐłŃ€Đ°ĐŒĐŒŃ‹ GUVCViewer" + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to open device" +#~ msgstr "" +#~ "ĐžŃˆĐžĐ±ĐșĐ° Guvcview:\n" +#~ "\n" +#~ "ĐĐ” ŃƒĐŽĐ°Đ»ĐŸŃŃŒ ĐŸŃ‚Đșрыть ŃƒŃŃ‚Ń€ĐŸĐčстĐČĐŸ" + +#~ msgid "" +#~ "Please make sure the camera is connected\n" +#~ "and that the correct driver is installed." +#~ msgstr "" +#~ "ĐŸĐŸĐ¶Đ°Đ»ŃƒĐčста ŃƒĐ±Đ”ĐŽĐžŃ‚Đ”ŃŃŒ ĐČ Ń‚ĐŸĐŒ, Ń‡Ń‚ĐŸ ĐșĐ°ĐŒĐ”Ń€Đ° ĐżĐŸĐŽĐșĐ»ŃŽŃ‡Đ”ĐœĐ°\n" +#~ "Đž ЮраĐčĐČДр ŃƒŃŃ‚Đ°ĐœĐŸĐČĐ»Đ”Đœ ĐșĐŸŃ€Ń€Đ”ĐșŃ‚ĐœĐŸ." + +#~ msgid "" +#~ "Guvcview:\n" +#~ "\n" +#~ "UVC Extension controls" +#~ msgstr "" +#~ "Guvcview:\n" +#~ "УпраĐČĐ»Đ”ĐœĐžĐ” UVC Ń€Đ°ŃŃˆĐžŃ€Đ”ĐœĐžŃĐŒĐž" + +#~ msgid "Extension controls were added to the UVC driver" +#~ msgstr "УпраĐČĐ»Đ”ĐœĐžŃ Ń€Đ°ŃŃˆĐžŃ€Đ”ĐœĐžŃĐŒĐž был ЎлбаĐČĐ»Đ”Đœ Đș ЮраĐčĐČĐ”Ń€Ńƒ UVC" + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "UVC Extension controls" +#~ msgstr "" +#~ "ĐžŃˆĐžĐ±ĐșĐ° Guvcview:\n" +#~ "УпраĐČĐ»Đ”ĐœĐžĐ” UVC Ń€Đ°ŃŃˆĐžŃ€Đ”ĐœĐžŃĐŒĐž" + +#~ msgid "" +#~ "An error occurred while adding extension\n" +#~ "controls to the UVC driver\n" +#~ "Make sure you run guvcview as root (or sudo)." +#~ msgstr "" +#~ "ĐŸŃ€ĐŸĐžĐ·ĐŸŃˆĐ»Đ° ĐŸŃˆĐžĐ±ĐșĐ° ĐČ ĐŽĐŸĐ±Đ°ĐČĐ»Đ”ĐœĐžĐ”\n" +#~ "упраĐČĐ»Đ”ĐœĐžĐč Đș Ń€Đ°ŃŃˆĐžŃ€Đ”ĐœĐžŃŽ UVC ЮраĐčĐČДра.\n" +#~ "ĐŁĐ±Đ”ĐŽĐžŃ‚Đ”ŃŃŒ, Ń‡Ń‚ĐŸ ĐČы Đ·Đ°ĐżŃƒŃŃ‚ĐžĐ»Đž guvcview ĐșĐ°Đș root (ОлО sudo)" + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Can't set a valid video stream for guvcview" +#~ msgstr "" +#~ "ĐžŃˆĐžĐ±ĐșĐ° Guvcview:\n" +#~ "ПраĐČĐžĐ»ŃŒĐœŃ‹Đč ĐČĐžĐŽĐ”ĐŸ ĐżĐŸŃ‚ĐŸĐș ĐœĐ” ĐŒĐŸĐ¶Đ”Ń‚ Đ±Ń‹Ń‚ŃŒ ŃƒŃŃ‚Đ°ĐœĐŸĐČĐ»Đ”Đœ ĐŽĐ»Ń guvcview" + +#~ msgid "" +#~ "Make sure your device driver is v4l2 compliant\n" +#~ "and that it is properly installed." +#~ msgstr "" +#~ "ĐŁĐ±Đ”ĐŽĐžŃ‚Đ”ŃŃŒ Ń‡Ń‚ĐŸ ЮраĐčĐČДр ŃĐŸĐČĐŒĐ”ŃŃ‚ĐžĐŒ с v4l2\n" +#~ "Đž праĐČĐžĐ»ŃŒĐœĐŸ ŃƒŃŃ‚Đ°ĐœĐŸĐČĐ»Đ”Đœ" + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to start with minimum setup" +#~ msgstr "" +#~ "ĐžŃˆĐžĐ±ĐșĐ° Guvcview:\n" +#~ "\n" +#~ "ĐĐ” ŃƒĐŽĐ°Đ»ŃŃ запусĐș с ĐŒĐžĐœĐžĐŒĐ°Đ»ŃŒĐœĐŸĐč ĐœĐ°Ń‡Đ°Đ»ŃŒĐœĐŸĐč ŃƒŃŃ‚Đ°ĐœĐŸĐČĐșĐŸĐč" + +#~ msgid "Please reconnect your camera." +#~ msgstr "ĐŸĐŸĐ¶Đ°Đ»ŃƒĐčста, ĐżĐ”Ń€Đ”ĐżĐŸĐŽĐșлючОтД ĐșĐ°ĐŒĐ”Ń€Ńƒ." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Couldn't query device capabilities" +#~ msgstr "" +#~ "ĐžŃˆĐžĐ±ĐșĐ° Guvcview:\n" +#~ "ĐĐ” ĐŒĐŸĐłŃƒ ĐżĐŸĐ»ŃƒŃ‡ĐžŃ‚ŃŒ сĐČĐŸĐčстĐČĐ° ŃƒŃŃ‚Ń€ĐŸĐčстĐČĐ°" + +#~ msgid "Make sure the device driver supports v4l2." +#~ msgstr "ĐŁĐ±Đ”ĐŽĐžŃ‚Đ”ŃŃŒ ĐČ Ń‚ĐŸĐŒ, Ń‡Ń‚ĐŸ ЮраĐčĐČДр ŃƒŃŃ‚Ń€ĐŸĐčстĐČĐ° ĐżĐŸĐŽĐŽĐ”Ń€Đ¶ĐžĐČаДт v4l2." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Read method error" +#~ msgstr "" +#~ "ĐžŃˆĐžĐ±ĐșĐ° Guvcview:\n" +#~ "\n" +#~ "ĐžŃˆĐžĐ±ĐșĐ° ĐŒĐ”Ń‚ĐŸĐŽĐ° Ń‡Ń‚Đ”ĐœĐžŃ" + +#~ msgid "Please try mmap instead (--capture_method=1)." +#~ msgstr "ĐŸĐŸĐżŃ€ĐŸĐ±ŃƒĐčŃ‚Đ” Đ»ŃƒŃ‡ŃˆĐ” mmap (--capture_method=1)." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to allocate Buffers" +#~ msgstr "" +#~ "ĐžŃˆĐžĐ±ĐșĐ° Guvcview:\n" +#~ "\n" +#~ "ĐĐ” ŃƒĐŽĐ°Đ»ĐŸŃŃŒ ĐČŃ‹ĐŽĐ”Đ»ĐžŃ‚ŃŒ ĐŒĐ”ŃŃ‚ĐŸ ĐŽĐ»Ń Đ±ŃƒŃ„Đ”Ń€ĐŸĐČ" + +#~ msgid "Please try restarting your system." +#~ msgstr "ĐĄĐ»Đ”ĐŽŃƒĐ”Ń‚ ĐżĐŸĐżŃ€ĐŸĐ±ĐŸĐČать ĐżĐ”Ń€Đ”Đ·Đ°ĐżŃƒŃŃ‚ĐžŃ‚ŃŒ ŃĐžŃŃ‚Đ”ĐŒŃƒ." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to create Video Thread" +#~ msgstr "" +#~ "ĐžŃˆĐžĐ±ĐșĐ° Guvcview:\n" +#~ "\n" +#~ "ĐĐ” ŃƒĐŽĐ°Đ»ĐŸŃŃŒ ŃĐŸĐ·ĐŽĐ°Ń‚ŃŒ ĐżĐŸŃ‚ĐŸĐș ĐșĐŸĐŒĐ°ĐœĐŽ ĐŽĐ»Ń ĐČĐžĐŽĐ”ĐŸ" + +#~ msgid "Please report it to http://developer.berlios.de/bugs/?group_id=8179" +#~ msgstr "" +#~ "ĐĄĐ»Đ”ĐŽŃƒĐ”Ń‚ ŃĐŸĐŸĐ±Ń‰ĐžŃ‚ŃŒ ĐŸĐ± ŃŃ‚ĐŸĐŒ сюЮа: http://developer.berlios.de/bugs/?" +#~ "group_id=8179" + +#~ msgid "Bitmap (Bmp)" +#~ msgstr "Bitmap (Bmp)" + +#~ msgid "Portable Network Graphics (Png)" +#~ msgstr "Portable Network Graphics (Png)" + +#~ msgid "Displays debug information" +#~ msgstr "ĐŸĐŸĐșĐ°Đ·Ń‹ĐČаДт ĐžĐœŃ„ĐŸŃ€ĐŒĐ°Ń†ĐžŃŽ ĐŽĐ»Ń ĐŸŃ‚Đ»Đ°ĐŽĐșĐž" + +#~ msgid "Exit after adding UVC extension controls (needs root/sudo)" +#~ msgstr "" +#~ "Đ’Ń‹Ń…ĐŸĐŽ ĐżĐŸŃĐ»Đ” ĐŽĐŸĐ±Đ°ĐČĐ»Đ”ĐœĐžŃ Ń€Đ°ŃŃˆĐžŃ€Đ”ĐœĐœŃ‹Ń… ŃĐ»Đ”ĐŒĐ”ĐœŃ‚ĐŸĐČ ŃƒĐżŃ€Đ°ĐČĐ»Đ”ĐœĐžŃ UVC (Ń‚Ń€Đ”Đ±ŃƒĐ”Ń‚ root/" +#~ "sudo)" + +#~ msgid "Don't stream video (image controls only)" +#~ msgstr "" +#~ "ĐĐ” Ń€Đ°Đ±ĐŸŃ‚Đ°Ń‚ŃŒ с ĐżĐŸŃ‚ĐŸĐșĐŸĐČŃ‹ĐŒ ĐČĐžĐŽĐ”ĐŸ (Ń‚ĐŸĐ»ŃŒĐșĐŸ ŃĐ»Đ”ĐŒĐ”ĐœŃ‚Ń‹ упраĐČĐ»Đ”ĐœĐžŃ ĐžĐ·ĐŸĐ±Ń€Đ°Đ¶Đ”ĐœĐžĐ”ĐŒ)" + +#~ msgid "Don't display a GUI" +#~ msgstr "ĐĐ” ĐŸŃ‚ĐŸĐ±Ń€Đ°Đ¶Đ°Ń‚ŃŒ графОчДсĐșĐžĐč ĐžĐœŃ‚Đ”Ń€Ń„Đ”Đčс" + +#~ msgid "Configuration file" +#~ msgstr "ĐšĐŸĐœŃ„ĐžĐłŃƒŃ€Đ°Ń†ĐžĐŸĐœĐœŃ‹Đč фаĐčĐ»" + +#~ msgid "Hardware accelaration (enable(1) | disable(0))" +#~ msgstr "ĐĐżĐżĐ°Ń€Đ°Ń‚ĐœĐŸĐ” усĐșĐŸŃ€Đ”ĐœĐžĐ” (ĐČĐșĐ».(1) | ĐČыĐșĐ».(0))" + +#~ msgid "" +#~ "Pixel format(mjpg|jpeg|yuyv|yvyu|uyvy|yyuv|yu12|yv12|nv12|nv21|nv16|nv61|" +#~ "y41p|grey|y10b|y16 |s501|s505|s508|gbrg|grbg|ba81|rggb|bgr3|rgb3)" +#~ msgstr "" +#~ "Đ€ĐŸŃ€ĐŒĐ°Ń‚ пОĐșсДлДĐč(mjpg|jpeg|yuyv|yvyu|uyvy|yyuv|yu12|yv12|nv12|nv21|nv16|" +#~ "nv61|y41p|grey|y10b|y16 |s501|s505|s508|gbrg|grbg|ba81|rggb|bgr3|rgb3)" + +#~ msgid "Frame size, default: 640x480" +#~ msgstr "Đ Đ°Đ·ĐŒĐ”Ń€ ĐșаЮра (ĐżĐŸ ŃƒĐŒĐŸĐ»Ń‡Đ°ĐœĐžŃŽ 640х480)" + +#~ msgid "Image capture interval in seconds" +#~ msgstr "Đ˜ĐœŃ‚Đ”Ń€ĐČĐ°Đ» ĐŒĐ”Đ¶ĐŽŃƒ ŃĐœĐžĐŒĐșĐ°ĐŒĐž (сДĐș)" + +#~ msgid "Number of Pictures to capture" +#~ msgstr "ĐšĐŸĐ»ĐžŃ‡Đ”ŃŃ‚ĐČĐŸ ŃĐœĐžĐŒĐșĐŸĐČ" + +#~ msgid "Video File name (capture from start)" +#~ msgstr "Đ˜ĐŒŃ ĐČĐžĐŽĐ”ĐŸ-фаĐčла (Đ·Đ°ĐżĐžŃŃŒ ŃŃ€Đ°Đ·Ńƒ ĐżĐŸŃĐ»Đ” запусĐșĐ°)" + +#~ msgid "Video capture time (in seconds)" +#~ msgstr "ĐŸŃ€ĐŸĐŽĐŸĐ»Đ¶ĐžŃ‚Đ”Đ»ŃŒĐœĐŸŃŃ‚ŃŒ ĐČĐžĐŽĐ”ĐŸ-запОсО (сДĐș)" + +#~ msgid "Exits guvcview after closing video" +#~ msgstr "ЗаĐČĐ”Ń€ŃˆĐ°Đ”Ń‚ Ń€Đ°Đ±ĐŸŃ‚Ńƒ guvcview ĐżĐŸŃĐ»Đ” Đ·Đ°Đșрытоя ĐČĐžĐŽĐ”ĐŸ" + +#~ msgid "Number of initial frames to skip" +#~ msgstr "ĐšĐŸĐ»ĐžŃ‡Đ”ŃŃ‚ĐČĐŸ ĐœĐ°Ń‡Đ°Đ»ŃŒĐœŃ‹Ń… ĐșĐ°ĐŽŃ€ĐŸĐČ ĐŽĐ»Ń ĐżŃ€ĐŸĐżŃƒŃĐșĐ°" + +#~ msgid "Show FPS value (enable(1) | disable (0))" +#~ msgstr "ĐžŃ‚ĐŸĐ±Ń€Đ°Đ¶Đ”ĐœĐžĐ” Ń‡Đ°ŃŃ‚ĐŸŃ‚Ń‹ ĐșĐ°ĐŽŃ€ĐŸĐČ (ĐČĐșĐ».(1) | ĐČыĐșĐ».(0))" + +#~ msgid "Load Profile at start" +#~ msgstr "Đ—Đ°ĐłŃ€ŃƒĐ·ĐșĐ° ĐżŃ€ĐŸŃ„ĐžĐ»Ń про запусĐșĐ”" + +#~ msgid "- local options" +#~ msgstr "- Đ»ĐŸĐșĐ°Đ»ŃŒĐœŃ‹Đ” ĐżĐ°Ń€Đ°ĐŒĐ”Ń‚Ń€Ń‹" + +#~ msgid "Cap. Image" +#~ msgstr "ĐĄĐŽĐ”Đ»Đ°Ń‚ŃŒ ŃĐœĐžĐŒĐŸĐș" + +#~ msgid "Not enough free space left on disk" +#~ msgstr "ĐĐ”ĐŽĐŸŃŃ‚Đ°Ń‚ĐŸŃ‡ĐœĐŸ сĐČĐŸĐ±ĐŸĐŽĐœĐŸĐłĐŸ ĐŒĐ”ŃŃ‚Đ° ĐœĐ° ЎОсĐșĐ”" + +#~ msgid "YUY2 - uncomp YUV" +#~ msgstr "YUY2 - ĐœĐ”ŃĐ¶Đ°Ń‚Ń‹Đč YUV" + +#~ msgid "RGB - uncomp BMP" +#~ msgstr "RGB - ĐœĐ”ŃĐ¶Đ°Ń‚Ń‹Đč BMP" + +#~ msgid "MKV - Matroska format" +#~ msgstr "MKV - Ń„ĐŸŃ€ĐŒĐ°Ń‚ Matroska" + +#~ msgid "WEBM - format" +#~ msgstr "Đ€ĐŸŃ€ĐŒĐ°Ń‚ WEBM" + +#~ msgid " Show" +#~ msgstr " ĐŸĐŸĐșĐ°Đ·Đ°Ń‚ŃŒ" + +#~ msgid "Quality:" +#~ msgstr "КачДстĐČĐŸ:" diff -Nru guvcview-1.7.3/po/si.po guvcview-2.0.1+ubuntu1~ppa1/po/si.po --- guvcview-1.7.3/po/si.po 2014-03-24 22:56:28.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/po/si.po 2014-10-05 10:41:44.000000000 +0000 @@ -7,16 +7,16 @@ msgstr "" "Project-Id-Version: guvcview\n" "Report-Msgid-Bugs-To: pj.assis@gmail.com\n" -"POT-Creation-Date: 2013-11-14 22:15+0000\n" +"POT-Creation-Date: 2014-08-17 22:49+0100\n" "PO-Revision-Date: 2013-06-03 09:59+0000\n" "Last-Translator: sajith \n" "Language-Team: Sinhalese \n" +"Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-12-08 10:36+0000\n" "X-Generator: Launchpad (build 16869)\n" -"Language: \n" #: ../data/guvcview.desktop.in.in.h:1 msgid "guvcview" @@ -28,1396 +28,1628 @@ #: ../data/guvcview.desktop.in.in.h:3 msgid "A video viewer and capturer for the linux uvc driver" -msgstr "ගිනක්ස් uvc ඩ්‍රà¶șිවරà¶ș à·ƒà¶łà·„à· වීඩිà¶șෝ ඎෙන්වන්නා සහ ග්‍රහණà¶ș කරන්නා" - -#: ../src/acodecs.c:59 -msgid "PCM - uncompressed (16 bit)" -msgstr "MJPG - සඞ්ඎීඩනà¶ș නොකරන à¶œà¶Ż" - -#: ../src/acodecs.c:76 -msgid "MPEG2 - (lavc)" -msgstr "MPEG2 - (lavc)" - -#: ../src/acodecs.c:93 -msgid "MP3 - (lavc)" -msgstr "MP3 - (lavc)" - -#: ../src/acodecs.c:110 -msgid "Dolby AC3 - (lavc)" -msgstr "Dolby AC3 - (lavc)" - -#: ../src/acodecs.c:127 -msgid "ACC Low - (faac)" -msgstr "ACC Low - (faac)" - -#: ../src/acodecs.c:144 -msgid "Vorbis" -msgstr "Vorbis" - -#: ../src/audio_tab.c:87 -msgid "Audio" -msgstr "ශ්‍රව්‍à¶ș" - -#: ../src/audio_tab.c:105 -msgid " Sound" -msgstr " à¶±à·à¶Żà¶ș" - -#. VU meter on the image (OSD) -#: ../src/audio_tab.c:116 -msgid " Show VU meter" -msgstr " VU ඞීටරà¶ș ඎෙන්වන්න" - -#: ../src/audio_tab.c:128 -msgid "Audio API:" -msgstr "ශ්‍රව්‍à¶ș API:" - -#: ../src/audio_tab.c:139 -msgid "PORTAUDIO" -msgstr "PORTAUDIO" - -#: ../src/audio_tab.c:140 -msgid "PULSEAUDIO" -msgstr "PULSEAUDIO" - -#: ../src/audio_tab.c:156 ../src/audio_tab.c:179 -msgid "Input Device:" -msgstr "à¶șà·™à¶Żà·€à·”à¶žà·Š උඎකරණà¶ș:" - -#: ../src/audio_tab.c:189 ../src/audio_tab.c:221 -msgid "Dev. Default" -msgstr "Dev. Default" - -#: ../src/audio_tab.c:211 -msgid "Sample Rate:" -msgstr "à¶†à¶Żà¶»à·Šà· අනුඎාතà¶ș:" - -#: ../src/audio_tab.c:222 -msgid "1 - mono" -msgstr "1 - එකක්" - -#: ../src/audio_tab.c:223 -msgid "2 - stereo" -msgstr "2 - ත්‍රිඞාන" - -#: ../src/audio_tab.c:258 -msgid "Channels:" -msgstr "නාගිකාවන්:" - -#: ../src/audio_tab.c:309 -msgid "---- Audio Effects ----" -msgstr "---- ශ්‍රවණ සැරසිගි ----" - -#. Echo -#: ../src/audio_tab.c:328 -msgid " Echo" -msgstr " අනුකරණà¶ș කරන්න" - -#. FUZZ -#: ../src/audio_tab.c:339 -msgid " Fuzz" -msgstr " Fuzz" - -#. Reverb -#: ../src/audio_tab.c:351 -msgid " Reverb" -msgstr " Reverb" - -#. WahWah -#: ../src/audio_tab.c:363 -msgid " WahWah" -msgstr " WahWah" - -#. Ducky -#: ../src/audio_tab.c:375 -msgid " Ducky" -msgstr " Ducky" - -#: ../src/callbacks.c:109 -msgid "Error" -msgstr "à¶Żà·à·‚à¶ș" - -#: ../src/callbacks.c:133 -msgid "" -"\n" -"You have more than one video device installed.\n" -"Do you want to try another one ?\n" -msgstr "" -"\n" -"ඔබ වීඩිà¶șෝ උඎකරණ එකකට වඩා වැඩිà¶șෙන් සවිකර ඇත.\n" -"ඔබට වෙනත් එකක් à¶…à¶­à·Šà·„à¶Żà· බැගීඞට අවශ්‍à¶șà¶Ż?\n" - -#. Devices -#: ../src/callbacks.c:140 ../src/video_tab.c:111 -msgid "Device:" -msgstr "උඎකරණà¶ș:" - -#: ../src/callbacks.c:272 -msgid "Save File" -msgstr "ගොනුව සුරකින්න" - -#: ../src/callbacks.c:284 -msgid "File Format:" -msgstr "ගොනු ආකෘතිà¶ș:" - -#: ../src/callbacks.c:455 -msgid "codec values" -msgstr "කොඩෙක් අගà¶șන්" - -#: ../src/callbacks.c:466 -msgid "" -" encoder fps: \n" -" (0 - use fps combobox value)" -msgstr "" -" fps සංකේතකà¶ș: \n" -" (0 - fps ගැà¶șිස්තුවක් සහිත රාඞුවේ අගà¶ș ඎාවිච්චි කරන්න)" - -#: ../src/callbacks.c:479 -msgid " monotonic pts" -msgstr " ඒකවිධ pts" - -#. bit rate -#: ../src/callbacks.c:486 ../src/callbacks.c:809 -msgid "bit rate: " -msgstr "බිට් අනුඎාතà¶ș: " - -#: ../src/callbacks.c:499 -msgid "qmax: " -msgstr "qmax: " - -#: ../src/callbacks.c:512 -msgid "qmin: " -msgstr "qmin: " - -#: ../src/callbacks.c:525 -msgid "max. qdiff: " -msgstr "උඎරිඞ qdiff: " - -#: ../src/callbacks.c:538 -msgid "dia size: " -msgstr "dia size: " - -#: ../src/callbacks.c:551 -msgid "pre dia size: " -msgstr "pre dia size: " - -#: ../src/callbacks.c:564 -msgid "pre me: " -msgstr "pre me: " - -#: ../src/callbacks.c:577 -msgid "pre cmp: " -msgstr "pre cmp: " - -#: ../src/callbacks.c:590 -msgid "cmp: " -msgstr "cmp: " - -#: ../src/callbacks.c:603 -msgid "sub cmp: " -msgstr "sub cmp: " - -#: ../src/callbacks.c:616 -msgid "last predictor count: " -msgstr "අවසාන අනාවැකි ගණන: " - -#: ../src/callbacks.c:629 -msgid "gop size: " -msgstr "gop size: " - -#: ../src/callbacks.c:642 -msgid "qcompress: " -msgstr "qcompress: " - -#: ../src/callbacks.c:655 -msgid "qblur: " -msgstr "qblur: " - -#: ../src/callbacks.c:668 -msgid "subq: " -msgstr "subq: " - -#: ../src/callbacks.c:681 -msgid "framerefs: " -msgstr "framerefs: " - -#: ../src/callbacks.c:694 -msgid "me method: " -msgstr "me method: " - -#: ../src/callbacks.c:707 -msgid "mb decision: " -msgstr "mb decision: " - -#: ../src/callbacks.c:720 -msgid "max B frames: " -msgstr "උඎරිඞ B රාඞු: " - -#: ../src/callbacks.c:733 -msgid "num threads: " -msgstr "num සඞ්බන්ධà¶șන්: " - -#: ../src/callbacks.c:796 -msgid "audio codec values" -msgstr "ශ්‍රව්‍à¶ș කොඩෙක් අගà¶șන්" - -#. sample format -#: ../src/callbacks.c:823 -msgid "sample format: " -msgstr "à¶†à¶Żà¶»à·Šà· ආකෘතිà¶ș: " - -#: ../src/callbacks.c:1311 -msgid "start new" -msgstr "අගුතින් අරà¶čන්න" - -#: ../src/callbacks.c:1314 -msgid "restart" -msgstr "නැවත අරà¶čන්න" - -#: ../src/callbacks.c:1316 -msgid "new" -msgstr "අගුත් එකක්" - -#: ../src/callbacks.c:1318 -msgid "cancel" -msgstr "අවගංගු කරන්න" - -#: ../src/callbacks.c:1323 -msgid "" -"launch new process or restart?.\n" -"\n" -msgstr "" -"අගුත් ක්‍රිà¶șාවගිà¶șක් à¶Żà·’à¶șත් කරන්න හෝ නැවත අරà¶čà¶±à·Šà¶±à¶Ż?.\n" -"\n" - -#: ../src/callbacks.c:1780 ../src/guvcview.c:565 -msgid "Cap. Image (I)" -msgstr "රූඎà¶ș ග්‍රහණà¶ș කරගන්න (I)" - -#. disable image controls -#: ../src/callbacks.c:1791 ../src/guvcview.c:690 ../src/timers.c:101 -msgid "capturing photo to" -msgstr "à¶Ąà·à¶șාරූඎà¶ș ග්‍රහණà¶ș කිරීඞ" - -#: ../src/callbacks.c:1850 ../src/guvcview.c:575 -msgid "Cap. Video (V)" -msgstr "වීඩිà¶șෝව ග්‍රහණà¶ș කරගන්න (V)" - -#: ../src/callbacks.c:1876 ../src/guvcview.c:740 -msgid "capturing video to" -msgstr "වීඩිà¶șෝව ග්‍රහණà¶ș කිරීඞ" - -#. vid capture enabled from start -#: ../src/callbacks.c:1911 ../src/guvcview.c:570 -msgid "Stop Video (V)" -msgstr "වීඩිà¶șෝව නවත්වන්න (V)" - -#: ../src/callbacks.c:1967 ../src/menubar.c:66 -msgid "Save Profile" -msgstr "ආකෘතිà¶ș සුරකින්න" - -#: ../src/callbacks.c:1980 ../src/menubar.c:65 -msgid "Load Profile" -msgstr "ආකෘතිà¶ș ඎ්‍රවේශනà¶ș කරන්න" - -#: ../src/create_video.c:1098 ../src/guvcview.c:732 -msgid "Cap. Video" -msgstr "වීඩිà¶șෝව ග්‍රහණà¶ș කරගන්න (V)" - -#: ../src/guvcview.c:280 -msgid "Guvcview Video Capture" -msgstr "Guvcview වීඩිà¶șෝ ග්‍රහණà¶ș කරගැනීඞ" - -#: ../src/guvcview.c:292 -msgid "GUVCViewer Controls" -msgstr "GUVCViewer ඎාගකà¶șන්" - -#. can't open device -#: ../src/guvcview.c:342 -msgid "" -"Guvcview error:\n" -"\n" -"Unable to open device" -msgstr "" -"Guvcview à¶Żà·à·‚à¶ș:\n" -"\n" -"උඎකරණà¶ș විවෘත කිරීඞට නොහැක" - -#: ../src/guvcview.c:343 -msgid "" -"Please make sure the camera is connected\n" -"and that the correct driver is installed." -msgstr "" -"කරැණාකර කැඞරාව සඞ්බන්ධ කර ඇති බව සහ \n" -"à¶±à·’à·€à·à¶»à¶Żà·’ ඩ්‍රà¶șිවරà¶ș ඎිහිටුවා ඇති බවට සහතික කරගන්න." - -#. uvc extension controls OK, give warning and shutdown (called with --add_ctrls) -#: ../src/guvcview.c:348 -msgid "" -"Guvcview:\n" -"\n" -"UVC Extension controls" -msgstr "" -"Guvcview:\n" -"\n" -"UVC ව්‍à¶șාඎ්ති ඎාගක" - -#: ../src/guvcview.c:349 -msgid "Extension controls were added to the UVC driver" -msgstr "UVC ඩ්‍රà¶șිවරà¶șට ව්‍à¶șාඎ්ති ඎාගක එක් à¶šà¶»ï»ż ඇත" - -#. uvc extension controls error - EACCES (needs root user) -#: ../src/guvcview.c:356 -msgid "" -"Guvcview error:\n" -"\n" -"UVC Extension controls" -msgstr "" -"Guvcview à¶Żà·à·‚à¶ș:\n" -"\n" -"UVC ව්‍à¶șාඎ්ති ඎාගක" - -#: ../src/guvcview.c:357 -msgid "" -"An error occurred while adding extension\n" -"controls to the UVC driver\n" -"Make sure you run guvcview as root (or sudo)." -msgstr "" -"UVC ඩ්‍රà¶șිවරà¶șට ඎාගක ව්‍à¶șාඎ්තිà¶ș එකතු කරන\n" -"අතරතුර à¶Żà·à·‚à¶șක් හට ගැනිණ\n" -"ඔබ guvcview root ගෙස (හෝ sudo) වැඩකරන බව සහතික කරගන්න." - -#: ../src/guvcview.c:391 ../src/guvcview.c:399 ../src/guvcview.c:477 -msgid "" -"Guvcview error:\n" -"\n" -"Can't set a valid video stream for guvcview" -msgstr "" -"Guvcview à¶Żà·à·‚à¶ș:\n" -"\n" -"guvcview à·ƒà¶łà·„à· වගංගු වීඩිà¶șෝවක් ඎිහිටුවීඞට නොහැක" - -#: ../src/guvcview.c:392 ../src/guvcview.c:400 ../src/guvcview.c:478 -msgid "" -"Make sure your device driver is v4l2 compliant\n" -"and that it is properly installed." -msgstr "" -"ඔබගේ උඎකරණ ඩ්‍රà¶șිවරà¶ș v4l2ට අනුකූග වන බව \n" -"සහ එà¶ș à·ƒà·”à¶Żà·”à·ƒà·” ගෙස ඎිහිටුවා ඇති බවට සහතික කරගන්න." - -#: ../src/guvcview.c:422 ../src/guvcview.c:444 -msgid "" -"Guvcview error:\n" -"\n" -"Unable to start with minimum setup" -msgstr "" -"Guvcview à¶Żà·à·‚à¶ș:\n" -"\n" -"අවඞ සැගැස්ඞ සඞඟ ඇරà¶čීඞට නොහැක" - -#: ../src/guvcview.c:423 ../src/guvcview.c:445 -msgid "Please reconnect your camera." -msgstr "කරුණාකර ඔබේ කැඞරාව නැවත සඞ්බන්ධ කරන්න." - -#: ../src/guvcview.c:452 -msgid "" -"Guvcview error:\n" -"\n" -"Couldn't query device capabilities" -msgstr "" -"Guvcview à¶Żà·à·‚à¶ș:\n" -"\n" -"උඎකරණà¶șන්ගේ හැකිà¶șාවන් විඞසුඞට නොහැකි විà¶ș" - -#: ../src/guvcview.c:453 -msgid "Make sure the device driver supports v4l2." -msgstr "උඎකරණ ඩ්‍රà¶șිවරà¶ș v4l2ට අනුග්‍රහà¶ș ගබා à¶Żà·™à¶± බව සහතික කරගන්න." - -#: ../src/guvcview.c:457 -msgid "" -"Guvcview error:\n" -"\n" -"Read method error" -msgstr "" -"Guvcview à¶Żà·à·‚à¶ș:\n" -"\n" -"කිà¶șවීඞ් ක්‍රඞà¶șේ à¶Żà·à·‚à¶șකි" - -#: ../src/guvcview.c:458 -msgid "Please try mmap instead (--capture_method=1)." -msgstr "කරුණාකර mmap වෙනුවට à¶…à¶­à·Šà·„à¶Żà· බගන්න (--capture_method=1)." - -#: ../src/guvcview.c:466 -msgid "" -"Guvcview error:\n" -"\n" -"Unable to allocate Buffers" -msgstr "" -"Guvcview à¶Żà·à·‚à¶ș:\n" -"බෆර්ස් වෙන්කිරීඞට නොහැක" - -#: ../src/guvcview.c:467 -msgid "Please try restarting your system." -msgstr "කරුණාකර ඔබේ à¶Žà¶Żà·Šà¶°à¶­à·’à¶ș නැවත ඇරà¶čීඞට උත්සාහ à¶Żà¶»à¶±à·Šà¶±" - -#: ../src/guvcview.c:518 -msgid "Image Controls" -msgstr "රූඎ ඎාගක" - -#. image auto capture -#: ../src/guvcview.c:561 -msgid "Stop Auto (I)" -msgstr "ස්වà¶șංක්‍රීà¶șව නවත්වන්න (I)" - -#: ../src/guvcview.c:676 -msgid "" -"Guvcview error:\n" -"\n" -"Unable to create Video Thread" -msgstr "" -"Guvcview à¶Żà·à·‚à¶ș:\n" -"\n" -"වීඩිà¶șෝ ඎටà¶șක් නිර්ඞාණà¶ș කිරීඞට නොහැක" - -#: ../src/guvcview.c:677 -msgid "Please report it to http://developer.berlios.de/bugs/?group_id=8179" -msgstr "" -"කරුණාකර එà¶ș ඞෙතනට වාර්තා කරන්න http://developer.berlios.de/bugs/?group_id=8179" - -#: ../src/img_controls.c:121 -msgid "Auto Focus (continuous)" -msgstr "ස්වà¶șංක්‍රීà¶șව නාභිගත කරන්න (අඛණ්ඩව)" - -#: ../src/img_controls.c:122 -msgid "set Focus" -msgstr "නාභිගත වීඞ සකස් කරන්න" - -#: ../src/image_format.c:35 -msgid "Jpeg (jpg)" -msgstr "Jpeg (jpg)" - -#: ../src/image_format.c:41 -msgid "Bitmap (Bmp)" -msgstr "Bitmap (Bmp)" - -#: ../src/image_format.c:47 -msgid "Portable Network Graphics (Png)" -msgstr "අතේ ගෙන à¶șාහැකි à¶ąà·à¶œà·’à¶š චිත්‍ර (Png)" - -#: ../src/image_format.c:53 -msgid "Raw Image (raw)" -msgstr "à¶Żà·… රූඎà¶ș (raw)" - -#. controls menu -#: ../src/menubar.c:64 -msgid "Settings" -msgstr "සැකසුඞ්" - -#: ../src/menubar.c:67 -msgid "Hardware Defaults" -msgstr "ස්වභාවික à¶Żà·˜à¶©à·à¶‚à¶œ" - -#: ../src/menubar.c:75 -msgid "Camera Button" -msgstr "කැඞරා බොත්තඞ" - -#: ../src/menubar.c:79 -msgid "Capture Image" -msgstr "රූඎà¶ș ග්‍රහණà¶ș කරගන්න" - -#: ../src/menubar.c:84 -msgid "Capture Video" -msgstr "වීඩිà¶șෝව ග්‍රහණà¶ș කරගන්න" - -#. video menu -#: ../src/menubar.c:144 ../src/video_tab.c:95 -msgid "Video" -msgstr "වීඩිà¶șෝ" - -#: ../src/menubar.c:145 ../src/menubar.c:233 -msgid "File" -msgstr "ගොනුව" - -#: ../src/menubar.c:146 ../src/menubar.c:234 -msgid "Increment Filename" -msgstr "වර්ධක ගොනු නාඞà¶ș" - -#: ../src/menubar.c:164 -msgid "Video Codec" -msgstr "වීඩිà¶șෝ කොඩෙක්" - -#: ../src/menubar.c:189 -msgid "Video Codec Properties" -msgstr "වීඩිà¶șෝ කොඩෙක් ගුණාංග" - -#: ../src/menubar.c:196 -msgid "Audio Codec" -msgstr "ශ්‍රව්‍à¶ș කොඩෙක්" - -#: ../src/menubar.c:217 -msgid "Audio Codec Properties" -msgstr "ශ්‍රව්‍à¶ș කොඩෙක් ගුණාංග" - -#. photo menu -#: ../src/menubar.c:232 -msgid "Photo" -msgstr "à¶Ąà·à¶șාරූඎà¶ș" - -#: ../src/options.c:753 -msgid "Prints version" -msgstr "ඎිටඎත à¶žà·”à¶Żà·Šâ€à¶»à¶«à¶ș කරන්න" - -#: ../src/options.c:754 -msgid "Displays debug information" -msgstr "à¶Żà·à·‚ ඞඟහැරීඞේ තොරතුරු ඎෙන්වන්න" - -#: ../src/options.c:755 -msgid "Video Device to use [default: /dev/video0]" -msgstr "ඎාවිච්චිà¶ș à·ƒà¶łà·„à· වීඩිà¶șෝ උඎකරණà¶ș [ස්වභාවික: /dev/video0]" - -#: ../src/options.c:756 -msgid "Exit after adding UVC extension controls (needs root/sudo)" -msgstr "UVC ව්‍à¶șාඎ්ති ඎාගක එකතු කිරීඞෙන් ඎසුව ඎිටවෙන්න (root/sudo අවශ්‍à¶șà¶șි)" - -#: ../src/options.c:757 -msgid "Don't stream video (image controls only)" -msgstr "ගගාà¶șන වීඩිà¶șෝවක් අවශ්‍à¶ș නැත (රූඎà¶ș ඎාගක ඎඞණි)" - -#: ../src/options.c:758 -msgid "Don't display a GUI" -msgstr "GUI එකක් à¶Žà·Šâ€à¶»à¶Żà¶»à·Šà·à¶±à¶ș කරන්න එඎා" - -#: ../src/options.c:759 -msgid "Capture method (1-mmap (default) 2-read)" -msgstr "ග්‍රහණà¶ș කරගැනීඞේ ක්‍රඞà¶ș (1-mmap (ස්වභාවික) 2-read)" - -#: ../src/options.c:760 -msgid "Configuration file" -msgstr "ආකෘති ගොනුව" - -#: ../src/options.c:761 -msgid "Hardware accelaration (enable(1) | disable(0))" -msgstr "à¶Żà·˜à¶©à·à¶‚à¶œ අධිවේගීකරණà¶ș (හැකිà¶șාව(1) | නොහැකිà¶șාව(0))" - -#: ../src/options.c:762 -msgid "" -"Pixel " -"format(mjpg|jpeg|yuyv|yvyu|uyvy|yyuv|yu12|yv12|nv12|nv21|nv16|nv61|y41p|grey|" -"y10b|y16 |s501|s505|s508|gbrg|grbg|ba81|rggb|bgr3|rgb3)" -msgstr "" -"Pixel " -"ආකෘතිà¶ș(mjpg|jpeg|yuyv|yvyu|uyvy|yyuv|yu12|yv12|nv12|nv21|nv16|nv61|y41p|grey|" -"y10b|y16 |s501|s505|s508|gbrg|grbg|ba81|rggb|bgr3|rgb3)" - -#: ../src/options.c:763 -msgid "Frame size, default: 640x480" -msgstr "රාඞුවක ඎ්‍රඞාණà¶ș, ස්වභාවික: 640x480" - -#: ../src/options.c:764 -msgid "Image File name" -msgstr "රූඎà¶șේ ගොනු නාඞà¶ș" - -#: ../src/options.c:765 -msgid "Image capture interval in seconds" -msgstr "රූඎà¶ș ග්‍රහණà¶ș කරගැනීඞ අතර කාගà¶ș තත්ඎර වගින්" - -#: ../src/options.c:766 -msgid "Number of Pictures to capture" -msgstr "ග්‍රහණà¶ș කරගැනීඞට ඇති ඎින්තූර ගණන" - -#: ../src/options.c:767 -msgid "Video File name (capture from start)" -msgstr "වීඩිà¶șෝවේ ගොනු නාඞà¶ș (ග්‍රහණà¶ș කරගැනීඞ ආරඞ්භà¶șේ සිට)" - -#: ../src/options.c:768 -msgid "Video capture time (in seconds)" -msgstr "වීඩිà¶șෝවේ ග්‍රහණà¶ș කරගැනීඞේ කාගà¶ș තත්ඎර වගින්" - -#: ../src/options.c:769 -msgid "Exits guvcview after closing video" -msgstr "වීඩිà¶șෝව වැසීඞෙන් ඎසුව guvcview එකෙන් ඎිටවෙන්න" - -#: ../src/options.c:770 -msgid "Number of initial frames to skip" -msgstr "නොසගකා හැරීඞට ඇති ආරඞ්භක රාඞු ගණන" - -#: ../src/options.c:771 -msgid "Show FPS value (enable(1) | disable (0))" -msgstr "FPS අගà¶ș ඎෙන්වන්න (හැකිà¶șාව(1) | නොහැකිà¶șාව(0))" - -#: ../src/options.c:772 -msgid "Load Profile at start" -msgstr "ආරඞ්භà¶șà·šà¶Żà·“ ආකෘතිà¶ș ඎ්‍රවේශනà¶ș කරන්න" - -#: ../src/options.c:773 -msgid "List controls method (0:loop, 1:next_ctrl flag [def])" -msgstr "" - -#: ../src/options.c:779 -msgid "- local options" -msgstr "- à·ƒà·Šà¶źà·à¶±à·“à¶ș විකග්ඎ" - -#. gdk_threads_enter(); -#: ../src/timers.c:119 -msgid "Cap. Image" -msgstr "රූඎà¶ș ග්‍රහණà¶ș කරගන්න" - -#: ../src/timers.c:217 -msgid "Guvcview Warning:" -msgstr "Guvcview අනතුරු ඇඟවීඞ:" - -#: ../src/timers.c:217 -msgid "Not enough free space left on disk" -msgstr "සෑ‍හෙන තරඞ් හිස් අවකාශà¶șක් තැටිà¶ș ඞත ඉතිරි වී නොඞැත" - -#: ../src/v4l2_controls.c:794 -msgid "Left" -msgstr "වඞ" - -#: ../src/v4l2_controls.c:795 -msgid "Right" -msgstr "à¶Żà¶šà·”à¶«" - -#: ../src/v4l2_controls.c:799 -msgid "Down" -msgstr "ඎහගට" - -#: ../src/v4l2_controls.c:800 -msgid "Up" -msgstr "ඉහළට" - -#: ../src/v4l2_controls.c:845 -msgid "Off" -msgstr "අක්‍රීà¶ș" - -#: ../src/v4l2_controls.c:845 -msgid "On" -msgstr "සක්‍රීà¶ș" - -#: ../src/v4l2_controls.c:845 -msgid "Blinking" -msgstr "ක්ෂණික ආගෝකà¶ș" - -#: ../src/v4l2_controls.c:845 -msgid "Auto" -msgstr "ස්වà¶șංක්‍රීà¶ș" - -#. turn it into a menu control -#: ../src/v4l2_controls.c:894 -msgid "8 bit" -msgstr "බිට් 8" - -#: ../src/v4l2_controls.c:894 -msgid "12 bit" -msgstr "බිට් 12" - -#: ../src/v4l2_dyna_ctrls.c:96 -msgid "Pan (relative)" -msgstr "තිරස් ගෙස කරකවන්න (සාඎේක්ෂව)" - -#: ../src/v4l2_dyna_ctrls.c:109 -msgid "Tilt (relative)" -msgstr "සිරස් ගෙස කරකවන්න (සාඎේක්ෂව)" - -#: ../src/v4l2_dyna_ctrls.c:122 -msgid "Pan Reset" -msgstr "තිරස් ගෙස කරකැවීඞ නැවත සකසන්න" - -#: ../src/v4l2_dyna_ctrls.c:135 -msgid "Tilt Reset" -msgstr "සිරස් ගෙස කරකැවීඞ නැවත සකසන්න" - -#: ../src/v4l2_dyna_ctrls.c:148 -msgid "Focus (absolute)" -msgstr "නාභිගත කරන්න (නිරඎේක්ෂව)" - -#: ../src/v4l2_dyna_ctrls.c:161 -msgid "LED1 Mode" -msgstr "LED1 ක්‍රඞà¶ș" - -#: ../src/v4l2_dyna_ctrls.c:174 -msgid "LED1 Frequency" -msgstr "LED1 සංඛ්‍à¶șාතà¶ș" +msgstr "ගිනක්ස් uvc ඩ්‍රà¶șිවරà¶ș à·ƒà¶łà·„à· වීඩිà¶șෝ ඎෙන්වන්නා සහ ග්‍රහණà¶ș කරන්නා" -#: ../src/v4l2_dyna_ctrls.c:187 -msgid "Disable video processing" -msgstr "වීඩිà¶șෝව සැකසීඞට නොහැක" +#: ../data/guvcview.appdata.xml.in.in.h:1 +msgid "capture video from v4l2 devices" +msgstr "" -#: ../src/v4l2_dyna_ctrls.c:200 -msgid "Raw bits per pixel" -msgstr "ඎික්සග් එකක් à·ƒà¶łà·„à· à¶Żà·… බිට් ඎ්‍රඞාණà¶ș" +#: ../data/guvcview.appdata.xml.in.in.h:2 +msgid "" +"Video capture tool for video4linux2 compliant cameras, with special emphasis " +"on the linux uvc driver. It provides Image (jpg, png, bmp) and Video (mjpeg, " +"flv1, wmv1, mpg2, mpg4,...) capture with sound in several " +"formats( currently: avi and matroska). I also supports a control panel " +"option (--control_only) that is compatible with any other v4l2 app." +msgstr "" -#. needed only for language files (not used) +#. +#. * needed only for language files (not used) +#. #. V4L2 control strings -#: ../src/v4l2uvc.c:57 +#: ../gview_v4l2core/v4l2_controls.c:49 msgid "User Controls" msgstr "ඎරිශ්‍රීගක ඎාගකà¶șන්" -#: ../src/v4l2uvc.c:58 +#: ../gview_v4l2core/v4l2_controls.c:50 msgid "Brightness" msgstr "à¶Żà·“à¶Žà·Šà¶­à·’à¶ș" -#: ../src/v4l2uvc.c:59 +#: ../gview_v4l2core/v4l2_controls.c:51 msgid "Contrast" msgstr "à¶Żà·“à¶Žà·Šà¶­à·’ වෙනස" -#: ../src/v4l2uvc.c:60 +#: ../gview_v4l2core/v4l2_controls.c:52 msgid "Hue" msgstr "ඎැහැà¶ș" -#: ../src/v4l2uvc.c:61 +#: ../gview_v4l2core/v4l2_controls.c:53 msgid "Saturation" msgstr "ඎරිඎූර්ණබව" -#: ../src/v4l2uvc.c:62 +#: ../gview_v4l2core/v4l2_controls.c:54 msgid "Sharpness" msgstr "තිà¶șුණු බව" -#: ../src/v4l2uvc.c:63 +#: ../gview_v4l2core/v4l2_controls.c:55 msgid "Gamma" msgstr "ගැඞා" -#: ../src/v4l2uvc.c:64 +#: ../gview_v4l2core/v4l2_controls.c:56 msgid "Backlight Compensation" msgstr "ඎසු ආගෝකන හානිඎූරණà¶ș" -#: ../src/v4l2uvc.c:65 +#: ../gview_v4l2core/v4l2_controls.c:57 msgid "Power Line Frequency" msgstr "බග සැඎà¶șුඞ් සංඛ්‍à¶șාතà¶ș" -#: ../src/v4l2uvc.c:66 +#: ../gview_v4l2core/v4l2_controls.c:58 msgid "Hue, Automatic" msgstr "ඎැහැà¶ș, ස්වà¶șංක්‍රීà¶șව" -#: ../src/v4l2uvc.c:67 +#: ../gview_v4l2core/v4l2_controls.c:59 msgid "Focus, Auto" msgstr "ස්වà¶șංක්‍රීà¶șව නාභිගත කරන්න" -#: ../src/v4l2uvc.c:68 +#: ../gview_v4l2core/v4l2_controls.c:60 msgid "Manual Mode" msgstr "අත්ඎොත් ක්‍රඞà¶ș" -#: ../src/v4l2uvc.c:69 +#: ../gview_v4l2core/v4l2_controls.c:61 msgid "Auto Mode" msgstr "ස්වà¶șංක්‍රීà¶ș ක්‍රඞà¶ș" -#: ../src/v4l2uvc.c:70 +#: ../gview_v4l2core/v4l2_controls.c:62 msgid "Shutter Priority Mode" msgstr "සංවෘත ඎ්‍රඞුඛතා ක්‍රඞà¶ș" -#: ../src/v4l2uvc.c:71 +#: ../gview_v4l2core/v4l2_controls.c:63 msgid "Aperture Priority Mode" msgstr "විවෘත ඎ්‍රඞුඛතා ක්‍රඞà¶ș" -#: ../src/v4l2uvc.c:72 +#: ../gview_v4l2core/v4l2_controls.c:64 msgid "Black Level" msgstr "කළු ඎාට ඞට්ටඞ" -#: ../src/v4l2uvc.c:73 +#: ../gview_v4l2core/v4l2_controls.c:65 msgid "White Balance, Automatic" msgstr "à·ƒà·”à¶Żà·” ඎාට සඞබරතාවà¶ș, ස්වà¶șංක්‍රීà¶ș" -#: ../src/v4l2uvc.c:74 +#: ../gview_v4l2core/v4l2_controls.c:66 msgid "Do White Balance" msgstr "à·ƒà·”à¶Żà·” සඞබර කරන්න" -#: ../src/v4l2uvc.c:75 +#: ../gview_v4l2core/v4l2_controls.c:67 msgid "Red Balance" msgstr "රතු සඞබරතාවà¶ș" -#: ../src/v4l2uvc.c:76 +#: ../gview_v4l2core/v4l2_controls.c:68 msgid "Blue Balance" msgstr "නිග් සඞබරතාවà¶ș" -#: ../src/v4l2uvc.c:77 +#: ../gview_v4l2core/v4l2_controls.c:69 msgid "Exposure" msgstr "අනාවර්ණà¶ș" -#: ../src/v4l2uvc.c:78 +#: ../gview_v4l2core/v4l2_controls.c:70 msgid "Gain, Automatic" msgstr "ගබාගන්න, ස්වà¶șංක්‍රීà¶șව" -#: ../src/v4l2uvc.c:79 +#: ../gview_v4l2core/v4l2_controls.c:71 msgid "Gain" msgstr "ගබාගන්න" -#: ../src/v4l2uvc.c:80 +#: ../gview_v4l2core/v4l2_controls.c:72 msgid "Horizontal Flip" msgstr "තිරස් හැරවුඞ" -#: ../src/v4l2uvc.c:81 +#: ../gview_v4l2core/v4l2_controls.c:73 msgid "Vertical Flip" msgstr "සිරස් හැරවුඞ" -#: ../src/v4l2uvc.c:82 +#: ../gview_v4l2core/v4l2_controls.c:74 msgid "Horizontal Center" msgstr "තිරස් ඞධ්‍à¶șà¶ș" -#: ../src/v4l2uvc.c:83 +#: ../gview_v4l2core/v4l2_controls.c:75 msgid "Vertical Center" msgstr "සිරස් ඞධ්‍à¶șà¶ș" -#: ../src/v4l2uvc.c:84 +#: ../gview_v4l2core/v4l2_controls.c:76 msgid "Chroma AGC" msgstr "AGC වර්ණතීව‍්‍රතාව" -#: ../src/v4l2uvc.c:85 +#: ../gview_v4l2core/v4l2_controls.c:77 msgid "Color Killer" msgstr "වර්ණ නැතිකරන්නා" -#: ../src/v4l2uvc.c:86 +#: ../gview_v4l2core/v4l2_controls.c:78 msgid "Color Effects" msgstr "වර්ණ සැරසිගි" #. CAMERA CLASS control strings -#: ../src/v4l2uvc.c:89 +#: ../gview_v4l2core/v4l2_controls.c:81 msgid "Camera Controls" msgstr "කැඞරා ඎාගකà¶șන්" -#: ../src/v4l2uvc.c:90 +#: ../gview_v4l2core/v4l2_controls.c:82 msgid "Auto Exposure" msgstr "ස්වà¶șංක්‍රීà¶ș අනාවරණà¶ș" -#: ../src/v4l2uvc.c:91 +#: ../gview_v4l2core/v4l2_controls.c:83 msgid "Exposure Time, Absolute" msgstr "නිරඎේක්ෂ කාගà¶ș අනාවරණ කරන්න" -#: ../src/v4l2uvc.c:92 +#: ../gview_v4l2core/v4l2_controls.c:84 msgid "Exposure, Dynamic Framerate" msgstr "වෙනස්වන රාඞු ශ්‍රීඝ‍්‍රතාව අනාවරණ කරන්න" -#: ../src/v4l2uvc.c:93 +#: ../gview_v4l2core/v4l2_controls.c:85 msgid "Pan, Relative" msgstr "තිරස් ගෙස කරකවන්න, සාඎේක්ෂව" -#: ../src/v4l2uvc.c:94 +#: ../gview_v4l2core/v4l2_controls.c:86 msgid "Tilt, Relative" msgstr "සිරස් ගෙස කරකවන්න, සාඎේක්ෂව" -#: ../src/v4l2uvc.c:95 +#: ../gview_v4l2core/v4l2_controls.c:87 msgid "Pan, Reset" msgstr "තිරස් ගෙස කරකැවීඞ නැවත අරà¶čන්න" -#: ../src/v4l2uvc.c:96 +#: ../gview_v4l2core/v4l2_controls.c:88 msgid "Tilt, Reset" msgstr "සිරස් ගෙස කරකැවීඞ නැවත අරà¶čන්න" -#: ../src/v4l2uvc.c:97 +#: ../gview_v4l2core/v4l2_controls.c:89 msgid "Pan, Absolute" msgstr "තිරස් ගෙස කරකවන්න, නිරඎේක්ෂ" -#: ../src/v4l2uvc.c:99 +#: ../gview_v4l2core/v4l2_controls.c:91 msgid "Focus, Absolute" msgstr "නිරඎේක්ෂව නාභිගත කරන්න" -#: ../src/v4l2uvc.c:100 +#: ../gview_v4l2core/v4l2_controls.c:92 msgid "Focus, Relative" msgstr "සාඎේක්ෂව නාභිගත කරන්න" -#: ../src/v4l2uvc.c:101 +#: ../gview_v4l2core/v4l2_controls.c:93 msgid "Focus, Automatic" msgstr "ස්වà¶șංක්‍රීà¶șව නාභිගත කරන්න" -#: ../src/v4l2uvc.c:102 +#: ../gview_v4l2core/v4l2_controls.c:94 msgid "Zoom, Absolute" msgstr "සඞීඎ à¶Żà·”à¶»à·ƒà·Šà¶ź රූඎ ගැනීඞ à·ƒà¶łà·„à· කැඞරාව හසුරුවන්න, නිරඎේක්ෂව" -#: ../src/v4l2uvc.c:103 +#: ../gview_v4l2core/v4l2_controls.c:95 msgid "Zoom, Relative" msgstr "සඞීඎ à¶Żà·”à¶»à·ƒà·Šà¶ź රූඎ ගැනීඞ à·ƒà¶łà·„à· කැඞරාව හසුරුවන්න, සාඎේක්ෂව" -#: ../src/v4l2uvc.c:104 +#: ../gview_v4l2core/v4l2_controls.c:96 msgid "Zoom, Continuous" msgstr "සඞීඎ à¶Żà·”à¶»à·ƒà·Šà¶ź රූඎ ගැනීඞ à·ƒà¶łà·„à· කැඞරාව හසුරුවන්න, අඛණ්ඩව" -#: ../src/v4l2uvc.c:105 +#: ../gview_v4l2core/v4l2_controls.c:97 msgid "Privacy" msgstr "à¶Žà·”à¶Żà·Šà¶œà¶œà·’à¶šà¶­à·Šà·€à¶ș" #. UVC specific control strings -#: ../src/v4l2uvc.c:108 +#: ../gview_v4l2core/v4l2_controls.c:100 msgid "Exposure, Auto" msgstr "ස්වà¶șංක්‍රීà¶șව අනාවරණà¶ș කරන්න" -#: ../src/v4l2uvc.c:109 +#: ../gview_v4l2core/v4l2_controls.c:101 msgid "Exposure, Auto Priority" msgstr "ස්වà¶șංක්‍රීà¶ș ඎ්‍රඞුඛතාව අනාවරණà¶ș කරන්න" -#: ../src/v4l2uvc.c:110 +#: ../gview_v4l2core/v4l2_controls.c:102 msgid "Exposure (Absolute)" msgstr "අනාවරණà¶ș කරන්න (නිරඎේක්ෂව)" -#: ../src/v4l2uvc.c:111 +#: ../gview_v4l2core/v4l2_controls.c:103 msgid "White Balance Temperature, Auto" msgstr "à·ƒà·”à¶Żà·” ඎැහැà¶ș à·ƒà·à·ƒà¶łà·“à¶žà·š උෂ්ණත්වà¶ș, ස්වà¶șංක්‍රීà¶șව" -#: ../src/v4l2uvc.c:112 +#: ../gview_v4l2core/v4l2_controls.c:104 msgid "White Balance Temperature" msgstr "à·ƒà·”à¶Żà·” ඎැහැà¶ș à·ƒà·à·ƒà¶łà·“à¶žà·š උෂ්ණත්වà¶ș" -#: ../src/v4l2uvc.c:113 +#: ../gview_v4l2core/v4l2_controls.c:105 msgid "White Balance Component, Auto" msgstr "à·ƒà·”à¶Żà·” ඎැහැà¶ș à·ƒà·à·ƒà¶łà·“à¶žà·š උඎාංගà¶ș, ස්වà¶șංක්‍රීà¶șව" -#: ../src/v4l2uvc.c:114 +#: ../gview_v4l2core/v4l2_controls.c:106 msgid "White Balance Blue Component" msgstr "à·ƒà·”à¶Żà·” ඎැහැà¶ș à·ƒà·à·ƒà¶łà·“à¶žà·š නිග් ඎැහැà¶șේ උඎාංගà¶ș" -#: ../src/v4l2uvc.c:115 +#: ../gview_v4l2core/v4l2_controls.c:107 msgid "White Balance Red Component" msgstr "à·ƒà·”à¶Żà·” ඎැහැà¶ș à·ƒà·à·ƒà¶łà·“à¶žà·š රතු ඎැහැà¶șේ උඎාංගà¶ș" #. libwebcam specific control strings -#: ../src/v4l2uvc.c:118 +#: ../gview_v4l2core/v4l2_controls.c:110 msgid "Focus" msgstr "නාභාගත කරන්න" -#: ../src/v4l2uvc.c:119 +#: ../gview_v4l2core/v4l2_controls.c:111 msgid "Focus (Absolute)" msgstr "නාභාගත කරන්න (නිරඎේක්ෂව)" -#: ../src/vcodecs.c:63 +#: ../gview_v4l2core/v4l2_xu_ctrls.c:63 ../guvcview/gui_gtk3_v4l2ctrls.c:239 +msgid "Off" +msgstr "අක්‍රීà¶ș" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:64 ../guvcview/gui_gtk3_v4l2ctrls.c:239 +msgid "On" +msgstr "සක්‍රීà¶ș" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:65 ../guvcview/gui_gtk3_v4l2ctrls.c:239 +msgid "Blinking" +msgstr "ක්ෂණික ආගෝකà¶ș" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:66 ../guvcview/gui_gtk3_v4l2ctrls.c:239 +msgid "Auto" +msgstr "ස්වà¶șංක්‍රීà¶ș" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:73 +msgid "Pan (relative)" +msgstr "තිරස් ගෙස කරකවන්න (සාඎේක්ෂව)" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:86 +msgid "Tilt (relative)" +msgstr "සිරස් ගෙස කරකවන්න (සාඎේක්ෂව)" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:99 +msgid "Pan Reset" +msgstr "තිරස් ගෙස කරකැවීඞ නැවත සකසන්න" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:112 +msgid "Tilt Reset" +msgstr "සිරස් ගෙස කරකැවීඞ නැවත සකසන්න" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:125 +msgid "Focus (absolute)" +msgstr "නාභිගත කරන්න (නිරඎේක්ෂව)" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:138 +msgid "LED1 Mode" +msgstr "LED1 ක්‍රඞà¶ș" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:151 +msgid "LED1 Frequency" +msgstr "LED1 සංඛ්‍à¶șාතà¶ș" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:164 +msgid "Disable video processing" +msgstr "වීඩිà¶șෝව සැකසීඞට නොහැක" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:177 +msgid "Raw bits per pixel" +msgstr "ඎික්සග් එකක් à·ƒà¶łà·„à· à¶Żà·… බිට් ඎ්‍රඞාණà¶ș" + +#: ../gview_encoder/audio_codecs.c:63 +#, fuzzy +msgid "PCM - uncompressed (float 32 bit)" +msgstr "MJPG - සඞ්ඎීඩනà¶ș නොකරන à¶œà¶Ż" + +#: ../gview_encoder/audio_codecs.c:80 +msgid "MP2 (MPEG audio layer 2)" +msgstr "" + +#: ../gview_encoder/audio_codecs.c:97 +msgid "MP3 (MPEG audio layer 3)" +msgstr "" + +#: ../gview_encoder/audio_codecs.c:118 +msgid "AC-3 (ATSC A/52A)" +msgstr "" + +#: ../gview_encoder/audio_codecs.c:139 +msgid "AAC (Advanced Audio Coding)" +msgstr "" + +#: ../gview_encoder/audio_codecs.c:160 +msgid "Vorbis" +msgstr "Vorbis" + +#: ../gview_encoder/video_codecs.c:75 +#, fuzzy +msgid "Raw camera input" +msgstr "කැඞරා නිඞැවුඞ:" + +#: ../gview_encoder/video_codecs.c:111 msgid "MJPG - compressed" msgstr "MJPG - සඞ්ඎීඩන කරන à¶œà¶Ż" -#: ../src/vcodecs.c:99 -msgid "YUY2 - uncomp YUV" -msgstr "YUY2 - uncomp YUV" - -#: ../src/vcodecs.c:135 -msgid "RGB - uncomp BMP" -msgstr "RGB - uncomp BMP" - -#: ../src/vcodecs.c:171 +#: ../gview_encoder/video_codecs.c:147 msgid "MPEG video 1" msgstr "MPEG වීඩිà¶șෝ 1" -#: ../src/vcodecs.c:207 +#: ../gview_encoder/video_codecs.c:183 msgid "FLV1 - flash video 1" msgstr "FLV1 - ෆ්ගෑෂ් වීඩිà¶șෝ 1" -#: ../src/vcodecs.c:243 +#: ../gview_encoder/video_codecs.c:219 msgid "WMV1 - win. med. video 7" msgstr "WMV1 - win. med. වීඩිà¶șෝ 7" -#: ../src/vcodecs.c:279 +#: ../gview_encoder/video_codecs.c:255 msgid "MPG2 - MPG2 format" msgstr "MPG2 - MPG2 ආකෘතිà¶ș" -#: ../src/vcodecs.c:315 +#: ../gview_encoder/video_codecs.c:291 msgid "MS MP4 V3" msgstr "MS MP4 V3" -#: ../src/vcodecs.c:351 +#: ../gview_encoder/video_codecs.c:327 msgid "MPEG4-ASP" msgstr "MPEG4-ASP" -#: ../src/vcodecs.c:387 +#: ../gview_encoder/video_codecs.c:363 msgid "MPEG4-AVC (H264)" msgstr "MPEG4-AVC (H264)" -#: ../src/vcodecs.c:427 +#: ../gview_encoder/video_codecs.c:403 msgid "VP8 (VP8)" msgstr "VP8 (VP8)" -#: ../src/vcodecs.c:463 +#: ../gview_encoder/video_codecs.c:439 msgid "Theora (ogg theora)" msgstr "Theora (ogg theora)" -#: ../src/video_format.c:43 -msgid "AVI - avi format" -msgstr "AVI - avi ආකෘතිà¶ș" +#: ../guvcview/gui_gtk3_audioctrls.c:95 +msgid "Audio API:" +msgstr "ශ්‍රව්‍à¶ș API:" -#: ../src/video_format.c:52 -msgid "MKV - Matroska format" -msgstr "MKV - Matroska ආකෘතිà¶ș" - -#: ../src/video_format.c:61 -msgid "WEBM - format" -msgstr "WEBM - ආකෘතිà¶ș" +#: ../guvcview/gui_gtk3_audioctrls.c:106 +msgid "NO SOUND" +msgstr "" -#: ../src/video_tab.c:216 -msgid "Frame Rate:" -msgstr "රාඞු ශීඝ්‍රතාවà¶ș:" +#: ../guvcview/gui_gtk3_audioctrls.c:107 +msgid "PORTAUDIO" +msgstr "PORTAUDIO" + +#: ../guvcview/gui_gtk3_audioctrls.c:110 +msgid "PULSEAUDIO" +msgstr "PULSEAUDIO" -#: ../src/video_tab.c:223 -msgid " Show" -msgstr " ඎෙන්වන්න" +#: ../guvcview/gui_gtk3_audioctrls.c:127 +msgid "Input Device:" +msgstr "à¶șà·™à¶Żà·€à·”à¶žà·Š උඎකරණà¶ș:" -#: ../src/video_tab.c:245 -msgid "Resolution:" -msgstr "තීරණà¶ș:" +#: ../guvcview/gui_gtk3_audioctrls.c:161 +msgid "Sample Rate:" +msgstr "à¶†à¶Żà¶»à·Šà· අනුඎාතà¶ș:" + +#: ../guvcview/gui_gtk3_audioctrls.c:168 ../guvcview/gui_gtk3_audioctrls.c:214 +msgid "Dev. Default" +msgstr "Dev. Default" + +#: ../guvcview/gui_gtk3_audioctrls.c:207 +msgid "Channels:" +msgstr "නාගිකාවන්:" + +#: ../guvcview/gui_gtk3_audioctrls.c:215 +msgid "1 - mono" +msgstr "1 - එකක්" + +#: ../guvcview/gui_gtk3_audioctrls.c:216 +msgid "2 - stereo" +msgstr "2 - ත්‍රිඞාන" + +#: ../guvcview/gui_gtk3_audioctrls.c:235 +#, fuzzy +msgid "---- Audio Filters ----" +msgstr "---- වීඩිà¶șෝ ඎෙරනà¶șන්----" + +#. Echo FX +#: ../guvcview/gui_gtk3_audioctrls.c:255 +msgid " Echo" +msgstr " අනුකරණà¶ș කරන්න" + +#. Reverb FX +#: ../guvcview/gui_gtk3_audioctrls.c:268 +msgid " Reverb" +msgstr " Reverb" + +#. Fuzz FX +#: ../guvcview/gui_gtk3_audioctrls.c:281 +msgid " Fuzz" +msgstr " Fuzz" + +#. WahWah FX +#: ../guvcview/gui_gtk3_audioctrls.c:294 +msgid " WahWah" +msgstr " WahWah" + +#. Ducky FX +#: ../guvcview/gui_gtk3_audioctrls.c:307 +msgid " Ducky" +msgstr " Ducky" + +#: ../guvcview/gui_gtk3.c:310 ../guvcview/gui_gtk3_callbacks.c:749 +msgid "Stop Video (V)" +msgstr "වීඩිà¶șෝව නවත්වන්න (V)" + +#. video button +#: ../guvcview/gui_gtk3.c:315 ../guvcview/gui_gtk3.c:600 +#: ../guvcview/gui_gtk3_callbacks.c:755 +msgid "Cap. Video (V)" +msgstr "වීඩිà¶șෝව ග්‍රහණà¶ș කරගන්න (V)" + +#: ../guvcview/gui_gtk3.c:376 ../guvcview/gui_gtk3.c:383 +msgid "Error" +msgstr "à¶Żà·à·‚à¶ș" + +#: ../guvcview/gui_gtk3.c:379 ../guvcview/gui_gtk3.c:386 +#: ../guvcview/gui_gtk3_callbacks.c:2097 +msgid "_Ok" +msgstr "" + +#: ../guvcview/gui_gtk3.c:380 ../guvcview/gui_gtk3_callbacks.c:185 +#: ../guvcview/gui_gtk3_callbacks.c:199 ../guvcview/gui_gtk3_callbacks.c:522 +#: ../guvcview/gui_gtk3_callbacks.c:624 ../guvcview/gui_gtk3_callbacks.c:1755 +#: ../guvcview/gui_gtk3_callbacks.c:2098 +#, fuzzy +msgid "_Cancel" +msgstr "අවගංගු කරන්න" + +#: ../guvcview/gui_gtk3.c:407 +msgid "" +"\n" +"You have more than one video device installed.\n" +"Do you want to try another one ?\n" +msgstr "" +"\n" +"ඔබ වීඩිà¶șෝ උඎකරණ එකකට වඩා වැඩිà¶șෙන් සවිකර ඇත.\n" +"ඔබට වෙනත් එකක් à¶…à¶­à·Šà·„à¶Żà· බැගීඞට අවශ්‍à¶șà¶Ż?\n" + +#. ---- Devices ---- +#: ../guvcview/gui_gtk3.c:414 ../guvcview/gui_gtk3_videoctrls.c:106 +msgid "Device:" +msgstr "උඎකරණà¶ș:" + +#: ../guvcview/gui_gtk3.c:516 +msgid "Guvcview Video Capture" +msgstr "Guvcview වීඩිà¶șෝ ග්‍රහණà¶ș කරගැනීඞ" + +#: ../guvcview/gui_gtk3.c:525 +#, fuzzy +msgid "Guvcview" +msgstr "guvcview" + +#: ../guvcview/gui_gtk3.c:572 +#, fuzzy +msgid "Stop Cap. (I)" +msgstr "ස්වà¶șංක්‍රීà¶șව නවත්වන්න (I)" + +#: ../guvcview/gui_gtk3.c:578 ../guvcview/gui_gtk3_callbacks.c:720 +#: ../guvcview/video_capture.c:250 +msgid "Cap. Image (I)" +msgstr "රූඎà¶ș ග්‍රහණà¶ș කරගන්න (I)" + +#. quit button +#. GtkWidget *quitButton = gtk_button_new_from_stock(GTK_STOCK_QUIT); +#: ../guvcview/gui_gtk3.c:621 +msgid "_Quit" +msgstr "" + +#: ../guvcview/gui_gtk3.c:667 +msgid "Image Controls" +msgstr "රූඎ ඎාගක" + +#: ../guvcview/gui_gtk3.c:703 +#, fuzzy +msgid "H264 Controls" +msgstr "ඎරිශ්‍රීගක ඎාගකà¶șන්" + +#: ../guvcview/gui_gtk3.c:742 +#, fuzzy +msgid "Video Controls" +msgstr "ඎරිශ්‍රීගක ඎාගකà¶șන්" + +#: ../guvcview/gui_gtk3.c:777 +#, fuzzy +msgid "Audio Controls" +msgstr "ඎරිශ්‍රීගක ඎාගකà¶șන්" + +#: ../guvcview/gui_gtk3_callbacks.c:182 ../guvcview/gui_gtk3_menu.c:72 +msgid "Save Profile" +msgstr "ආකෘතිà¶ș සුරකින්න" + +#: ../guvcview/gui_gtk3_callbacks.c:186 ../guvcview/gui_gtk3_callbacks.c:523 +#: ../guvcview/gui_gtk3_callbacks.c:625 +msgid "_Save" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:196 ../guvcview/gui_gtk3_menu.c:71 +msgid "Load Profile" +msgstr "ආකෘතිà¶ș ඎ්‍රවේශනà¶ș කරන්න" + +#: ../guvcview/gui_gtk3_callbacks.c:200 +msgid "_Open" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:208 ../guvcview/gui_gtk3_callbacks.c:531 +#: ../guvcview/gui_gtk3_callbacks.c:634 +msgid "File Format:" +msgstr "ගොනු ආකෘතිà¶ș:" + +#: ../guvcview/gui_gtk3_callbacks.c:220 +msgid "gpfl (*.gpfl)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:221 +msgid "any (*.*)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:519 +#, fuzzy +msgid "Photo file name" +msgstr "රූඎà¶șේ ගොනු නාඞà¶ș" + +#: ../guvcview/gui_gtk3_callbacks.c:543 +#, fuzzy +msgid "Raw (*.raw)" +msgstr "à¶Żà·… රූඎà¶ș (raw)" + +#: ../guvcview/gui_gtk3_callbacks.c:544 +#, fuzzy +msgid "Jpeg (*.jpg)" +msgstr "Jpeg (jpg)" + +#: ../guvcview/gui_gtk3_callbacks.c:545 +msgid "Png (*.png)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:546 +msgid "Bmp (*.bmp)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:621 +#, fuzzy +msgid "Video file name" +msgstr "රූඎà¶șේ ගොනු නාඞà¶ș" + +#: ../guvcview/gui_gtk3_callbacks.c:646 +msgid "Matroska (*.mkv)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:647 +msgid "WebM (*.webm)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:648 +msgid "Avi (*.avi)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:1158 +msgid "start new" +msgstr "අගුතින් අරà¶čන්න" + +#: ../guvcview/gui_gtk3_callbacks.c:1161 +msgid "restart" +msgstr "නැවත අරà¶čන්න" + +#: ../guvcview/gui_gtk3_callbacks.c:1163 +msgid "new" +msgstr "අගුත් එකක්" + +#: ../guvcview/gui_gtk3_callbacks.c:1165 +msgid "cancel" +msgstr "අවගංගු කරන්න" + +#: ../guvcview/gui_gtk3_callbacks.c:1170 +msgid "" +"launch new process or restart?.\n" +"\n" +msgstr "" +"අගුත් ක්‍රිà¶șාවගිà¶șක් à¶Żà·’à¶șත් කරන්න හෝ නැවත අරà¶čà¶±à·Šà¶±à¶Ż?.\n" +"\n" + +#: ../guvcview/gui_gtk3_callbacks.c:1751 +#, fuzzy +msgid "video codec values" +msgstr "ශ්‍රව්‍à¶ș කොඩෙක් අගà¶șන්" + +#: ../guvcview/gui_gtk3_callbacks.c:1754 +msgid "_OK" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:1760 +msgid "" +" encoder fps: \n" +" (0 - use fps combobox value)" +msgstr "" +" fps සංකේතකà¶ș: \n" +" (0 - fps ගැà¶șිස්තුවක් සහිත රාඞුවේ අගà¶ș ඎාවිච්චි කරන්න)" + +#: ../guvcview/gui_gtk3_callbacks.c:1773 +msgid " monotonic pts" +msgstr " ඒකවිධ pts" + +#. bit rate +#: ../guvcview/gui_gtk3_callbacks.c:1780 ../guvcview/gui_gtk3_callbacks.c:2105 +msgid "bit rate: " +msgstr "බිට් අනුඎාතà¶ș: " + +#: ../guvcview/gui_gtk3_callbacks.c:1793 +msgid "qmax: " +msgstr "qmax: " + +#: ../guvcview/gui_gtk3_callbacks.c:1806 +msgid "qmin: " +msgstr "qmin: " + +#: ../guvcview/gui_gtk3_callbacks.c:1819 +msgid "max. qdiff: " +msgstr "උඎරිඞ qdiff: " + +#: ../guvcview/gui_gtk3_callbacks.c:1832 +msgid "dia size: " +msgstr "dia size: " + +#: ../guvcview/gui_gtk3_callbacks.c:1845 +msgid "pre dia size: " +msgstr "pre dia size: " + +#: ../guvcview/gui_gtk3_callbacks.c:1858 +msgid "pre me: " +msgstr "pre me: " + +#: ../guvcview/gui_gtk3_callbacks.c:1871 +msgid "pre cmp: " +msgstr "pre cmp: " + +#: ../guvcview/gui_gtk3_callbacks.c:1884 +msgid "cmp: " +msgstr "cmp: " + +#: ../guvcview/gui_gtk3_callbacks.c:1897 +msgid "sub cmp: " +msgstr "sub cmp: " + +#: ../guvcview/gui_gtk3_callbacks.c:1910 +msgid "last predictor count: " +msgstr "අවසාන අනාවැකි ගණන: " -#: ../src/video_tab.c:271 -msgid "Camera Output:" -msgstr "කැඞරා නිඞැවුඞ:" +#: ../guvcview/gui_gtk3_callbacks.c:1923 +msgid "gop size: " +msgstr "gop size: " -#: ../src/video_tab.c:293 -msgid "Apply" -msgstr "à¶șà·œà¶Żà¶±à·Šà¶±" +#: ../guvcview/gui_gtk3_callbacks.c:1936 +msgid "qcompress: " +msgstr "qcompress: " -#: ../src/video_tab.c:300 -msgid "Quality:" -msgstr "ගුණාත්ඞකබව:" +#: ../guvcview/gui_gtk3_callbacks.c:1949 +msgid "qblur: " +msgstr "qblur: " -#: ../src/video_tab.c:310 -msgid "---- Video Filters ----" -msgstr "---- වීඩිà¶șෝ ඎෙරනà¶șන්----" +#: ../guvcview/gui_gtk3_callbacks.c:1962 +msgid "subq: " +msgstr "subq: " -#. Mirror -#: ../src/video_tab.c:329 -msgid " Mirror" -msgstr " කැඩඎත" +#: ../guvcview/gui_gtk3_callbacks.c:1975 +msgid "framerefs: " +msgstr "framerefs: " -#. Upturn -#: ../src/video_tab.c:340 -msgid " Invert" -msgstr " à¶șටිකුරු කරන්න" +#: ../guvcview/gui_gtk3_callbacks.c:1988 +msgid "me method: " +msgstr "me method: " -#. Negate -#: ../src/video_tab.c:351 -msgid " Negative" -msgstr " ඎ්‍රතික්ෂේඎ කරන්න" +#: ../guvcview/gui_gtk3_callbacks.c:2001 +msgid "mb decision: " +msgstr "mb decision: " -#. Mono -#: ../src/video_tab.c:362 -msgid " Mono" -msgstr " එකක්" +#: ../guvcview/gui_gtk3_callbacks.c:2014 +msgid "max B frames: " +msgstr "උඎරිඞ B රාඞු: " -#. Pieces -#: ../src/video_tab.c:374 -msgid " Pieces" -msgstr " කොටස්" +#: ../guvcview/gui_gtk3_callbacks.c:2027 +msgid "num threads: " +msgstr "num සඞ්බන්ධà¶șන්: " -#. Particles -#: ../src/video_tab.c:386 -msgid " Particles" -msgstr " ඉතා කුඩා කොටස්" +#: ../guvcview/gui_gtk3_callbacks.c:2094 +msgid "audio codec values" +msgstr "ශ්‍රව්‍à¶ș කොඩෙක් අගà¶șන්" -#: ../src/uvc_h264.c:596 -msgid "H264 Controls" -msgstr "" +#. sample format +#: ../guvcview/gui_gtk3_callbacks.c:2119 +msgid "sample format: " +msgstr "à¶†à¶Żà¶»à·Šà· ආකෘතිà¶ș: " -#: ../src/uvc_h264.c:615 +#: ../guvcview/gui_gtk3_h264ctrls.c:622 +#, fuzzy msgid "Rate Control Mode:" -msgstr "" +msgstr "රූඎ ඎාගක" -#: ../src/uvc_h264.c:626 +#: ../guvcview/gui_gtk3_h264ctrls.c:633 msgid "CBR" msgstr "" -#: ../src/uvc_h264.c:629 +#: ../guvcview/gui_gtk3_h264ctrls.c:636 msgid "VBR" msgstr "" -#: ../src/uvc_h264.c:633 +#: ../guvcview/gui_gtk3_h264ctrls.c:640 msgid "Constant QP" msgstr "" -#: ../src/uvc_h264.c:651 +#: ../guvcview/gui_gtk3_h264ctrls.c:658 msgid "Rate Control Mode flags:" msgstr "" -#: ../src/uvc_h264.c:676 +#: ../guvcview/gui_gtk3_h264ctrls.c:683 msgid "Temporal Scale Mode:" msgstr "" -#: ../src/uvc_h264.c:704 +#: ../guvcview/gui_gtk3_h264ctrls.c:711 msgid "Spatial Scale Mode:" msgstr "" -#: ../src/uvc_h264.c:737 +#: ../guvcview/gui_gtk3_h264ctrls.c:741 msgid "Frame Interval (100ns units):" msgstr "" -#: ../src/uvc_h264.c:772 +#: ../guvcview/gui_gtk3_h264ctrls.c:778 +#, fuzzy msgid "Bit Rate:" -msgstr "" +msgstr "බිට් අනුඎාතà¶ș: " -#: ../src/uvc_h264.c:795 +#: ../guvcview/gui_gtk3_h264ctrls.c:801 msgid "Hints:" msgstr "" -#: ../src/uvc_h264.c:800 +#: ../guvcview/gui_gtk3_h264ctrls.c:806 +#, fuzzy msgid "Resolution" -msgstr "" +msgstr "තීරණà¶ș:" -#: ../src/uvc_h264.c:804 +#: ../guvcview/gui_gtk3_h264ctrls.c:810 +#, fuzzy msgid "Profile" -msgstr "" +msgstr "ආකෘතිà¶ș සුරකින්න" -#: ../src/uvc_h264.c:808 +#: ../guvcview/gui_gtk3_h264ctrls.c:814 +#, fuzzy msgid "Rate Control" -msgstr "" +msgstr "රූඎ ඎාගක" -#: ../src/uvc_h264.c:812 +#: ../guvcview/gui_gtk3_h264ctrls.c:818 msgid "Usage Type" msgstr "" -#: ../src/uvc_h264.c:816 +#: ../guvcview/gui_gtk3_h264ctrls.c:822 msgid "Slice Mode" msgstr "" -#: ../src/uvc_h264.c:820 +#: ../guvcview/gui_gtk3_h264ctrls.c:826 msgid "Slice Unit" msgstr "" -#: ../src/uvc_h264.c:824 +#: ../guvcview/gui_gtk3_h264ctrls.c:830 msgid "MVC View" msgstr "" -#: ../src/uvc_h264.c:828 +#: ../guvcview/gui_gtk3_h264ctrls.c:834 msgid "Temporal Scale" msgstr "" -#: ../src/uvc_h264.c:832 +#: ../guvcview/gui_gtk3_h264ctrls.c:838 msgid "SNR Scale" msgstr "" -#: ../src/uvc_h264.c:836 +#: ../guvcview/gui_gtk3_h264ctrls.c:842 msgid "Spatial Scale" msgstr "" -#: ../src/uvc_h264.c:840 +#: ../guvcview/gui_gtk3_h264ctrls.c:846 msgid "Spatial Layer Ratio" msgstr "" -#: ../src/uvc_h264.c:844 +#: ../guvcview/gui_gtk3_h264ctrls.c:850 +#, fuzzy msgid "Frame Interval" -msgstr "" +msgstr "රාඞු ශීඝ්‍රතාවà¶ș:" -#: ../src/uvc_h264.c:848 +#: ../guvcview/gui_gtk3_h264ctrls.c:854 msgid "Leaky Bucket Size" msgstr "" -#: ../src/uvc_h264.c:852 +#: ../guvcview/gui_gtk3_h264ctrls.c:858 msgid "Bit Rate" msgstr "" -#: ../src/uvc_h264.c:856 ../src/uvc_h264.c:1250 +#: ../guvcview/gui_gtk3_h264ctrls.c:862 ../guvcview/gui_gtk3_h264ctrls.c:1220 msgid "CABAC" msgstr "" -#: ../src/uvc_h264.c:860 +#: ../guvcview/gui_gtk3_h264ctrls.c:866 msgid "(I) Frame Period" msgstr "" -#: ../src/uvc_h264.c:907 +#: ../guvcview/gui_gtk3_h264ctrls.c:878 msgid "Slice Mode:" msgstr "" -#: ../src/uvc_h264.c:914 +#: ../guvcview/gui_gtk3_h264ctrls.c:885 msgid "no multiple slices" msgstr "" -#: ../src/uvc_h264.c:916 +#: ../guvcview/gui_gtk3_h264ctrls.c:887 msgid "bits/slice" msgstr "" -#: ../src/uvc_h264.c:918 +#: ../guvcview/gui_gtk3_h264ctrls.c:889 msgid "Mbits/slice" msgstr "" -#: ../src/uvc_h264.c:920 +#: ../guvcview/gui_gtk3_h264ctrls.c:891 msgid "slices/frame" msgstr "" -#: ../src/uvc_h264.c:929 +#: ../guvcview/gui_gtk3_h264ctrls.c:900 msgid "Slice Units:" msgstr "" -#: ../src/uvc_h264.c:950 +#: ../guvcview/gui_gtk3_h264ctrls.c:921 +#, fuzzy msgid "Profile:" -msgstr "" +msgstr "ආකෘතිà¶ș සුරකින්න" -#: ../src/uvc_h264.c:957 +#: ../guvcview/gui_gtk3_h264ctrls.c:928 +#, fuzzy msgid "Baseline Profile" -msgstr "" +msgstr "ආකෘතිà¶ș සුරකින්න" -#: ../src/uvc_h264.c:959 +#: ../guvcview/gui_gtk3_h264ctrls.c:930 +#, fuzzy msgid "Main Profile" -msgstr "" +msgstr "ආකෘතිà¶ș සුරකින්න" -#: ../src/uvc_h264.c:961 +#: ../guvcview/gui_gtk3_h264ctrls.c:932 +#, fuzzy msgid "High Profile" -msgstr "" +msgstr "ආකෘතිà¶ș සුරකින්න" -#: ../src/uvc_h264.c:963 +#: ../guvcview/gui_gtk3_h264ctrls.c:934 msgid "Scalable Baseline Profile" msgstr "" -#: ../src/uvc_h264.c:965 +#: ../guvcview/gui_gtk3_h264ctrls.c:936 +#, fuzzy msgid "Scalable High Profile" -msgstr "" +msgstr "ආකෘතිà¶ș සුරකින්න" -#: ../src/uvc_h264.c:967 +#: ../guvcview/gui_gtk3_h264ctrls.c:938 msgid "Multiview High Profile" msgstr "" -#: ../src/uvc_h264.c:969 +#: ../guvcview/gui_gtk3_h264ctrls.c:940 +#, fuzzy msgid "Stereo High Profile" -msgstr "" +msgstr "ආකෘතිà¶ș සුරකින්න" -#: ../src/uvc_h264.c:1008 +#: ../guvcview/gui_gtk3_h264ctrls.c:979 msgid "Profile flags:" msgstr "" -#: ../src/uvc_h264.c:1033 +#: ../guvcview/gui_gtk3_h264ctrls.c:1004 msgid "(I) Frame Period (ms):" msgstr "" -#: ../src/uvc_h264.c:1054 +#: ../guvcview/gui_gtk3_h264ctrls.c:1025 msgid "Estimated Video Delay (ms):" msgstr "" -#: ../src/uvc_h264.c:1075 +#: ../guvcview/gui_gtk3_h264ctrls.c:1046 msgid "Estimated Max Config Delay (ms):" msgstr "" -#: ../src/uvc_h264.c:1096 +#: ../guvcview/gui_gtk3_h264ctrls.c:1067 msgid "Usage Type:" msgstr "" -#: ../src/uvc_h264.c:1103 +#: ../guvcview/gui_gtk3_h264ctrls.c:1074 msgid "Real-time" msgstr "" -#: ../src/uvc_h264.c:1105 +#: ../guvcview/gui_gtk3_h264ctrls.c:1076 msgid "Broadcast" msgstr "" -#: ../src/uvc_h264.c:1107 +#: ../guvcview/gui_gtk3_h264ctrls.c:1078 msgid "Storage" msgstr "" -#: ../src/uvc_h264.c:1109 +#: ../guvcview/gui_gtk3_h264ctrls.c:1080 msgid "(0) Non-scalable single layer AVC" msgstr "" -#: ../src/uvc_h264.c:1111 +#: ../guvcview/gui_gtk3_h264ctrls.c:1082 msgid "(1) SVC temporal scalability with hierarchical P" msgstr "" -#: ../src/uvc_h264.c:1113 +#: ../guvcview/gui_gtk3_h264ctrls.c:1084 msgid "(2q) SVC temporal scalability + Quality/SNR scalability" msgstr "" -#: ../src/uvc_h264.c:1115 +#: ../guvcview/gui_gtk3_h264ctrls.c:1086 msgid "(2s) SVC temporal scalability + spatial scalability" msgstr "" -#: ../src/uvc_h264.c:1117 +#: ../guvcview/gui_gtk3_h264ctrls.c:1088 msgid "(3) Full SVC scalability" msgstr "" -#: ../src/uvc_h264.c:1131 +#: ../guvcview/gui_gtk3_h264ctrls.c:1102 msgid "SNR Control Mode:" msgstr "" -#: ../src/uvc_h264.c:1138 +#: ../guvcview/gui_gtk3_h264ctrls.c:1109 msgid "No SNR Enhancement Layer" msgstr "" -#: ../src/uvc_h264.c:1140 +#: ../guvcview/gui_gtk3_h264ctrls.c:1111 msgid "CGS NonRewrite (2 Layer)" msgstr "" -#: ../src/uvc_h264.c:1142 +#: ../guvcview/gui_gtk3_h264ctrls.c:1113 msgid "CGS NonRewrite (3 Layer)" msgstr "" -#: ../src/uvc_h264.c:1144 +#: ../guvcview/gui_gtk3_h264ctrls.c:1115 msgid "CGS Rewrite (2 Layer)" msgstr "" -#: ../src/uvc_h264.c:1146 +#: ../guvcview/gui_gtk3_h264ctrls.c:1117 msgid "CGS Rewrite (3 Layer)" msgstr "" -#: ../src/uvc_h264.c:1148 +#: ../guvcview/gui_gtk3_h264ctrls.c:1119 msgid "MGS (2 Layer)" msgstr "" -#: ../src/uvc_h264.c:1173 +#: ../guvcview/gui_gtk3_h264ctrls.c:1144 msgid "Stream Mux Enable" msgstr "" -#: ../src/uvc_h264.c:1180 +#: ../guvcview/gui_gtk3_h264ctrls.c:1151 msgid "Embed H.264 aux stream" msgstr "" -#: ../src/uvc_h264.c:1182 +#: ../guvcview/gui_gtk3_h264ctrls.c:1153 msgid "Embed YUY2 aux stream" msgstr "" -#: ../src/uvc_h264.c:1184 +#: ../guvcview/gui_gtk3_h264ctrls.c:1155 msgid "Embed NV12 aux stream" msgstr "" -#: ../src/uvc_h264.c:1204 +#: ../guvcview/gui_gtk3_h264ctrls.c:1175 msgid "MJPG payload container" msgstr "" -#: ../src/uvc_h264.c:1219 +#: ../guvcview/gui_gtk3_h264ctrls.c:1189 +#, fuzzy msgid "Stream Format:" -msgstr "" +msgstr "ගොනු ආකෘතිà¶ș:" -#: ../src/uvc_h264.c:1227 +#: ../guvcview/gui_gtk3_h264ctrls.c:1197 msgid "Byte stream format (H.264 Annex-B)" msgstr "" -#: ../src/uvc_h264.c:1229 +#: ../guvcview/gui_gtk3_h264ctrls.c:1199 +#, fuzzy msgid "NAL stream format" -msgstr "" +msgstr "AVI - avi ආකෘතිà¶ș" -#: ../src/uvc_h264.c:1240 +#: ../guvcview/gui_gtk3_h264ctrls.c:1210 msgid "Entropy CABAC:" msgstr "" -#: ../src/uvc_h264.c:1248 +#: ../guvcview/gui_gtk3_h264ctrls.c:1218 msgid "CAVLC" msgstr "" -#: ../src/uvc_h264.c:1261 +#: ../guvcview/gui_gtk3_h264ctrls.c:1231 msgid "Picture timing SEI" msgstr "" -#: ../src/uvc_h264.c:1268 +#: ../guvcview/gui_gtk3_h264ctrls.c:1238 +#, fuzzy msgid "B Frames:" -msgstr "" +msgstr "උඎරිඞ B රාඞු: " -#: ../src/uvc_h264.c:1293 +#: ../guvcview/gui_gtk3_h264ctrls.c:1263 msgid "Preview Flipped" msgstr "" -#: ../src/uvc_h264.c:1300 +#: ../guvcview/gui_gtk3_h264ctrls.c:1270 msgid "Additional MVC Views:" msgstr "" -#: ../src/uvc_h264.c:1325 +#: ../guvcview/gui_gtk3_h264ctrls.c:1295 msgid "Simulcast stream index:" msgstr "" -#: ../src/uvc_h264.c:1350 +#: ../guvcview/gui_gtk3_h264ctrls.c:1320 msgid "Spatial Layer Ratio:" msgstr "" -#: ../src/uvc_h264.c:1379 +#: ../guvcview/gui_gtk3_h264ctrls.c:1349 msgid "Leaky Bucket Size (ms):" msgstr "" #. encoder reset -#: ../src/uvc_h264.c:1406 +#: ../guvcview/gui_gtk3_h264ctrls.c:1376 +#, fuzzy msgid "Encoder Reset" -msgstr "" +msgstr "තිරස් ගෙස කරකැවීඞ නැවත සකසන්න" -#. -#. h264_controls->probe_button = gtk_button_new_with_label(_("PROBE")); -#. g_signal_connect (GTK_BUTTON(h264_controls->probe_button), "clicked", +#. +#. GtkWidget *probe_button = gtk_button_new_with_label(_("PROBE")); +#. g_signal_connect (GTK_BUTTON(probe_button), "clicked", #. G_CALLBACK (h264_probe_button_clicked), all_data); -#. -#. gtk_grid_attach (GTK_GRID(table), h264_controls->probe_button, 0, line, 1 ,1); -#. gtk_widget_show(h264_controls->probe_button); -#. -#: ../src/uvc_h264.c:1421 +#. +#. gtk_grid_attach (GTK_GRID(h264_controls_grid), probe_button, 0, line, 1 ,1); +#. gtk_widget_show(probe_button); +#. +#: ../guvcview/gui_gtk3_h264ctrls.c:1391 msgid "COMMIT" msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:70 +msgid "Settings" +msgstr "සැකසුඞ්" + +#: ../guvcview/gui_gtk3_menu.c:73 +msgid "Hardware Defaults" +msgstr "ස්වභාවික à¶Żà·˜à¶©à·à¶‚à¶œ" + +#: ../guvcview/gui_gtk3_menu.c:81 +msgid "Camera Button" +msgstr "කැඞරා බොත්තඞ" + +#: ../guvcview/gui_gtk3_menu.c:86 +msgid "Capture Image" +msgstr "රූඎà¶ș ග්‍රහණà¶ș කරගන්න" + +#: ../guvcview/gui_gtk3_menu.c:91 +msgid "Capture Video" +msgstr "වීඩිà¶șෝව ග්‍රහණà¶ș කරගන්න" + +#: ../guvcview/gui_gtk3_menu.c:134 +msgid "Photo" +msgstr "à¶Ąà·à¶șාරූඎà¶ș" + +#: ../guvcview/gui_gtk3_menu.c:135 ../guvcview/gui_gtk3_menu.c:159 +msgid "File" +msgstr "ගොනුව" + +#: ../guvcview/gui_gtk3_menu.c:136 ../guvcview/gui_gtk3_menu.c:160 +msgid "Increment Filename" +msgstr "වර්ධක ගොනු නාඞà¶ș" + +#: ../guvcview/gui_gtk3_menu.c:158 +msgid "Video" +msgstr "වීඩිà¶șෝ" + +#: ../guvcview/gui_gtk3_menu.c:175 +msgid "Video Codec" +msgstr "වීඩිà¶șෝ කොඩෙක්" + +#: ../guvcview/gui_gtk3_menu.c:202 +msgid "Video Codec Properties" +msgstr "වීඩිà¶șෝ කොඩෙක් ගුණාංග" + +#: ../guvcview/gui_gtk3_menu.c:208 +msgid "Audio Codec" +msgstr "ශ්‍රව්‍à¶ș කොඩෙක්" + +#: ../guvcview/gui_gtk3_menu.c:235 +msgid "Audio Codec Properties" +msgstr "ශ්‍රව්‍à¶ș කොඩෙක් ගුණාංග" + +#: ../guvcview/gui_gtk3_v4l2ctrls.c:174 +msgid "Left" +msgstr "වඞ" + +#: ../guvcview/gui_gtk3_v4l2ctrls.c:175 +msgid "Right" +msgstr "à¶Żà¶šà·”à¶«" + +#: ../guvcview/gui_gtk3_v4l2ctrls.c:179 +msgid "Down" +msgstr "ඎහගට" + +#: ../guvcview/gui_gtk3_v4l2ctrls.c:180 +msgid "Up" +msgstr "ඉහළට" + +#. turn it into a menu control +#: ../guvcview/gui_gtk3_v4l2ctrls.c:296 +msgid "8 bit" +msgstr "බිට් 8" + +#: ../guvcview/gui_gtk3_v4l2ctrls.c:296 +msgid "12 bit" +msgstr "බිට් 12" + +#. add a virtual control for software autofocus +#: ../guvcview/gui_gtk3_v4l2ctrls.c:348 +msgid "Auto Focus (continuous)" +msgstr "ස්වà¶șංක්‍රීà¶șව නාභිගත කරන්න (අඛණ්ඩව)" + +#: ../guvcview/gui_gtk3_v4l2ctrls.c:349 +msgid "set Focus" +msgstr "නාභිගත වීඞ සකස් කරන්න" + +#. control_widgets_list[n].widget2 = gtk_button_new_from_stock(GTK_STOCK_APPLY); +#. control_widgets_list[n].widget2= gtk_button_new_from_stock(GTK_STOCK_APPLY); +#. control_widgets_list[n].widget2 = gtk_button_new_from_stock(GTK_STOCK_APPLY); +#: ../guvcview/gui_gtk3_v4l2ctrls.c:433 ../guvcview/gui_gtk3_v4l2ctrls.c:456 +#: ../guvcview/gui_gtk3_v4l2ctrls.c:478 +#, fuzzy +msgid "_Apply" +msgstr "à¶șà·œà¶Żà¶±à·Šà¶±" + +#: ../guvcview/gui_gtk3_videoctrls.c:144 +msgid "Frame Rate:" +msgstr "රාඞු ශීඝ්‍රතාවà¶ș:" + +#: ../guvcview/gui_gtk3_videoctrls.c:204 +msgid "Resolution:" +msgstr "තීරණà¶ș:" + +#: ../guvcview/gui_gtk3_videoctrls.c:254 +msgid "Camera Output:" +msgstr "කැඞරා නිඞැවුඞ:" + +#: ../guvcview/gui_gtk3_videoctrls.c:287 +msgid "---- Video Filters ----" +msgstr "---- වීඩිà¶șෝ ඎෙරනà¶șන්----" + +#. Mirror FX +#: ../guvcview/gui_gtk3_videoctrls.c:307 +msgid " Mirror" +msgstr " කැඩඎත" + +#. Upturn FX +#: ../guvcview/gui_gtk3_videoctrls.c:319 +msgid " Invert" +msgstr " à¶șටිකුරු කරන්න" + +#. Negate FX +#: ../guvcview/gui_gtk3_videoctrls.c:331 +msgid " Negative" +msgstr " ඎ්‍රතික්ෂේඎ කරන්න" + +#. Mono FX +#: ../guvcview/gui_gtk3_videoctrls.c:343 +msgid " Mono" +msgstr " එකක්" + +#. Pieces FX +#: ../guvcview/gui_gtk3_videoctrls.c:356 +msgid " Pieces" +msgstr " කොටස්" + +#. Particles +#: ../guvcview/gui_gtk3_videoctrls.c:369 +msgid " Particles" +msgstr " ඉතා කුඩා කොටස්" + +#: ../guvcview/options.c:51 +msgid "Print help" +msgstr "" + +#: ../guvcview/options.c:58 +#, fuzzy +msgid "Print version" +msgstr "ඎිටඎත à¶žà·”à¶Żà·Šâ€à¶»à¶«à¶ș කරන්න" + +#: ../guvcview/options.c:64 +msgid "LEVEL" +msgstr "" + +#: ../guvcview/options.c:65 +msgid "Set Verbosity level (def: 0)" +msgstr "" + +#: ../guvcview/options.c:71 +msgid "DEVICE" +msgstr "" + +#: ../guvcview/options.c:72 +#, fuzzy +msgid "Set device name (def: /dev/video0)" +msgstr "ඎාවිච්චිà¶ș à·ƒà¶łà·„à· වීඩිà¶șෝ උඎකරණà¶ș [ස්වභාවික: /dev/video0]" + +#: ../guvcview/options.c:78 +msgid "METHOD" +msgstr "" + +#: ../guvcview/options.c:79 +#, fuzzy +msgid "Set capture method [read | mmap (def)]" +msgstr "ග්‍රහණà¶ș කරගැනීඞේ ක්‍රඞà¶ș (1-mmap (ස්වභාවික) 2-read)" + +#: ../guvcview/options.c:85 +msgid "WIDTHxHEIGHT" +msgstr "" + +#: ../guvcview/options.c:86 +msgid "Request resolution (e.g 640x480)" +msgstr "" + +#: ../guvcview/options.c:92 +msgid "FOURCC" +msgstr "" + +#: ../guvcview/options.c:93 +msgid "Request format (e.g MJPG)" +msgstr "" + +#: ../guvcview/options.c:99 +msgid "RENDER_API" +msgstr "" + +#: ../guvcview/options.c:100 +msgid "Select render API (e.g none; sdl)" +msgstr "" + +#: ../guvcview/options.c:106 +msgid "AUDIO_API" +msgstr "" + +#: ../guvcview/options.c:107 +msgid "Select audio API (e.g none; port; pulse)" +msgstr "" + +#: ../guvcview/options.c:113 +msgid "AUDIO_DEVICE" +msgstr "" + +#: ../guvcview/options.c:114 +msgid "Select audio device index for selected api (0..N)" +msgstr "" + +#: ../guvcview/options.c:120 +msgid "GUI_API" +msgstr "" + +#: ../guvcview/options.c:121 +msgid "Select GUI API (e.g none; gtk3)" +msgstr "" + +#: ../guvcview/options.c:127 ../guvcview/options.c:134 +msgid "CODEC" +msgstr "" + +#: ../guvcview/options.c:128 +msgid "Audio codec [pcm mp2 mp3 aac ac3 vorb]" +msgstr "" + +#: ../guvcview/options.c:135 +msgid "Video codec [raw mjpg mpeg flv1 wmv1 mpg2 mp43 dx50 h264 vp80 theo]" +msgstr "" + +#: ../guvcview/options.c:141 ../guvcview/options.c:148 +#: ../guvcview/options.c:155 +msgid "FILENAME" +msgstr "" + +#: ../guvcview/options.c:142 +#, fuzzy +msgid "load control profile" +msgstr "ආකෘතිà¶ș ඎ්‍රවේශනà¶ș කරන්න" + +#: ../guvcview/options.c:149 +msgid "filename for captured video)" +msgstr "" + +#: ../guvcview/options.c:156 +msgid "filename for captured image)" +msgstr "" + +#: ../guvcview/options.c:162 ../guvcview/options.c:169 +msgid "TIME_IN_SEC" +msgstr "" + +#: ../guvcview/options.c:163 +msgid "time (double) in sec. for video capture)" +msgstr "" + +#: ../guvcview/options.c:170 +msgid "time (double) in sec. between captured photos)" +msgstr "" + +#: ../guvcview/options.c:176 +msgid "TOTAL" +msgstr "" + +#: ../guvcview/options.c:177 +msgid "total number of captured photos)" +msgstr "" + +#: ../guvcview/options.c:184 +msgid "Start in control panel mode" +msgstr "" + +#: ../guvcview/options.c:307 +#, fuzzy, c-format +msgid "" +"Guvcview version %s\n" +"\n" +msgstr "Guvcview අනතුරු ඇඟවීඞ:" + +#: ../guvcview/options.c:308 +#, c-format +msgid "" +"Usage:\n" +" guvcview [OPTIONS]\n" +"\n" +msgstr "" + +#: ../guvcview/options.c:309 +#, c-format +msgid "OPTIONS:\n" +msgstr "" + +#: ../guvcview/video_capture.c:819 +#, fuzzy, c-format +msgid "saving video to %s" +msgstr "වීඩිà¶șෝව ග්‍රහණà¶ș කිරීඞ" + +#. if(debug_level > 1) +#. printf("GUVCVIEW: saving image to %s\n", img_filename); +#: ../guvcview/video_capture.c:1069 +#, c-format +msgid "saving image to %s" +msgstr "" + +#~ msgid "MPEG2 - (lavc)" +#~ msgstr "MPEG2 - (lavc)" + +#~ msgid "MP3 - (lavc)" +#~ msgstr "MP3 - (lavc)" + +#~ msgid "Dolby AC3 - (lavc)" +#~ msgstr "Dolby AC3 - (lavc)" + +#~ msgid "ACC Low - (faac)" +#~ msgstr "ACC Low - (faac)" + +#~ msgid "Audio" +#~ msgstr "ශ්‍රව්‍à¶ș" + +#~ msgid " Sound" +#~ msgstr " à¶±à·à¶Żà¶ș" + +#~ msgid " Show VU meter" +#~ msgstr " VU ඞීටරà¶ș ඎෙන්වන්න" + +#~ msgid "---- Audio Effects ----" +#~ msgstr "---- ශ්‍රවණ සැරසිගි ----" + +#~ msgid "Save File" +#~ msgstr "ගොනුව සුරකින්න" + +#~ msgid "codec values" +#~ msgstr "කොඩෙක් අගà¶șන්" + +#~ msgid "capturing photo to" +#~ msgstr "à¶Ąà·à¶șාරූඎà¶ș ග්‍රහණà¶ș කිරීඞ" + +#~ msgid "Cap. Video" +#~ msgstr "වීඩිà¶șෝව ග්‍රහණà¶ș කරගන්න (V)" + +#~ msgid "GUVCViewer Controls" +#~ msgstr "GUVCViewer ඎාගකà¶șන්" + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to open device" +#~ msgstr "" +#~ "Guvcview à¶Żà·à·‚à¶ș:\n" +#~ "\n" +#~ "උඎකරණà¶ș විවෘත කිරීඞට නොහැක" + +#~ msgid "" +#~ "Please make sure the camera is connected\n" +#~ "and that the correct driver is installed." +#~ msgstr "" +#~ "කරැණාකර කැඞරාව සඞ්බන්ධ කර ඇති බව සහ \n" +#~ "à¶±à·’à·€à·à¶»à¶Żà·’ ඩ්‍රà¶șිවරà¶ș ඎිහිටුවා ඇති බවට සහතික කරගන්න." + +#~ msgid "" +#~ "Guvcview:\n" +#~ "\n" +#~ "UVC Extension controls" +#~ msgstr "" +#~ "Guvcview:\n" +#~ "\n" +#~ "UVC ව්‍à¶șාඎ්ති ඎාගක" + +#~ msgid "Extension controls were added to the UVC driver" +#~ msgstr "UVC ඩ්‍රà¶șිවරà¶șට ව්‍à¶șාඎ්ති ඎාගක එක් à¶šà¶»ï»ż ඇත" + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "UVC Extension controls" +#~ msgstr "" +#~ "Guvcview à¶Żà·à·‚à¶ș:\n" +#~ "\n" +#~ "UVC ව්‍à¶șාඎ්ති ඎාගක" + +#~ msgid "" +#~ "An error occurred while adding extension\n" +#~ "controls to the UVC driver\n" +#~ "Make sure you run guvcview as root (or sudo)." +#~ msgstr "" +#~ "UVC ඩ්‍රà¶șිවරà¶șට ඎාගක ව්‍à¶șාඎ්තිà¶ș එකතු කරන\n" +#~ "අතරතුර à¶Żà·à·‚à¶șක් හට ගැනිණ\n" +#~ "ඔබ guvcview root ගෙස (හෝ sudo) වැඩකරන බව සහතික කරගන්න." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Can't set a valid video stream for guvcview" +#~ msgstr "" +#~ "Guvcview à¶Żà·à·‚à¶ș:\n" +#~ "\n" +#~ "guvcview à·ƒà¶łà·„à· වගංගු වීඩිà¶șෝවක් ඎිහිටුවීඞට නොහැක" + +#~ msgid "" +#~ "Make sure your device driver is v4l2 compliant\n" +#~ "and that it is properly installed." +#~ msgstr "" +#~ "ඔබගේ උඎකරණ ඩ්‍රà¶șිවරà¶ș v4l2ට අනුකූග වන බව \n" +#~ "සහ එà¶ș à·ƒà·”à¶Żà·”à·ƒà·” ගෙස ඎිහිටුවා ඇති බවට සහතික කරගන්න." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to start with minimum setup" +#~ msgstr "" +#~ "Guvcview à¶Żà·à·‚à¶ș:\n" +#~ "\n" +#~ "අවඞ සැගැස්ඞ සඞඟ ඇරà¶čීඞට නොහැක" + +#~ msgid "Please reconnect your camera." +#~ msgstr "කරුණාකර ඔබේ කැඞරාව නැවත සඞ්බන්ධ කරන්න." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Couldn't query device capabilities" +#~ msgstr "" +#~ "Guvcview à¶Żà·à·‚à¶ș:\n" +#~ "\n" +#~ "උඎකරණà¶șන්ගේ හැකිà¶șාවන් විඞසුඞට නොහැකි විà¶ș" + +#~ msgid "Make sure the device driver supports v4l2." +#~ msgstr "උඎකරණ ඩ්‍රà¶șිවරà¶ș v4l2ට අනුග්‍රහà¶ș ගබා à¶Żà·™à¶± බව සහතික කරගන්න." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Read method error" +#~ msgstr "" +#~ "Guvcview à¶Żà·à·‚à¶ș:\n" +#~ "\n" +#~ "කිà¶șවීඞ් ක්‍රඞà¶șේ à¶Żà·à·‚à¶șකි" + +#~ msgid "Please try mmap instead (--capture_method=1)." +#~ msgstr "කරුණාකර mmap වෙනුවට à¶…à¶­à·Šà·„à¶Żà· බගන්න (--capture_method=1)." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to allocate Buffers" +#~ msgstr "" +#~ "Guvcview à¶Żà·à·‚à¶ș:\n" +#~ "බෆර්ස් වෙන්කිරීඞට නොහැක" + +#~ msgid "Please try restarting your system." +#~ msgstr "කරුණාකර ඔබේ à¶Žà¶Żà·Šà¶°à¶­à·’à¶ș නැවත ඇරà¶čීඞට උත්සාහ à¶Żà¶»à¶±à·Šà¶±" + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to create Video Thread" +#~ msgstr "" +#~ "Guvcview à¶Żà·à·‚à¶ș:\n" +#~ "\n" +#~ "වීඩිà¶șෝ ඎටà¶șක් නිර්ඞාණà¶ș කිරීඞට නොහැක" + +#~ msgid "Please report it to http://developer.berlios.de/bugs/?group_id=8179" +#~ msgstr "" +#~ "කරුණාකර එà¶ș ඞෙතනට වාර්තා කරන්න http://developer.berlios.de/bugs/?group_id=8179" + +#~ msgid "Bitmap (Bmp)" +#~ msgstr "Bitmap (Bmp)" + +#~ msgid "Portable Network Graphics (Png)" +#~ msgstr "අතේ ගෙන à¶șාහැකි à¶ąà·à¶œà·’à¶š චිත්‍ර (Png)" + +#~ msgid "Displays debug information" +#~ msgstr "à¶Żà·à·‚ ඞඟහැරීඞේ තොරතුරු ඎෙන්වන්න" + +#~ msgid "Exit after adding UVC extension controls (needs root/sudo)" +#~ msgstr "UVC ව්‍à¶șාඎ්ති ඎාගක එකතු කිරීඞෙන් ඎසුව ඎිටවෙන්න (root/sudo අවශ්‍à¶șà¶șි)" + +#~ msgid "Don't stream video (image controls only)" +#~ msgstr "ගගාà¶șන වීඩිà¶șෝවක් අවශ්‍à¶ș නැත (රූඎà¶ș ඎාගක ඎඞණි)" + +#~ msgid "Don't display a GUI" +#~ msgstr "GUI එකක් à¶Žà·Šâ€à¶»à¶Żà¶»à·Šà·à¶±à¶ș කරන්න එඎා" + +#~ msgid "Configuration file" +#~ msgstr "ආකෘති ගොනුව" + +#~ msgid "Hardware accelaration (enable(1) | disable(0))" +#~ msgstr "à¶Żà·˜à¶©à·à¶‚à¶œ අධිවේගීකරණà¶ș (හැකිà¶șාව(1) | නොහැකිà¶șාව(0))" + +#~ msgid "" +#~ "Pixel format(mjpg|jpeg|yuyv|yvyu|uyvy|yyuv|yu12|yv12|nv12|nv21|nv16|nv61|" +#~ "y41p|grey|y10b|y16 |s501|s505|s508|gbrg|grbg|ba81|rggb|bgr3|rgb3)" +#~ msgstr "" +#~ "Pixel ආකෘතිà¶ș(mjpg|jpeg|yuyv|yvyu|uyvy|yyuv|yu12|yv12|nv12|nv21|nv16|nv61|" +#~ "y41p|grey|y10b|y16 |s501|s505|s508|gbrg|grbg|ba81|rggb|bgr3|rgb3)" + +#~ msgid "Frame size, default: 640x480" +#~ msgstr "රාඞුවක ඎ්‍රඞාණà¶ș, ස්වභාවික: 640x480" + +#~ msgid "Image capture interval in seconds" +#~ msgstr "රූඎà¶ș ග්‍රහණà¶ș කරගැනීඞ අතර කාගà¶ș තත්ඎර වගින්" + +#~ msgid "Number of Pictures to capture" +#~ msgstr "ග්‍රහණà¶ș කරගැනීඞට ඇති ඎින්තූර ගණන" + +#~ msgid "Video File name (capture from start)" +#~ msgstr "වීඩිà¶șෝවේ ගොනු නාඞà¶ș (ග්‍රහණà¶ș කරගැනීඞ ආරඞ්භà¶șේ සිට)" + +#~ msgid "Video capture time (in seconds)" +#~ msgstr "වීඩිà¶șෝවේ ග්‍රහණà¶ș කරගැනීඞේ කාගà¶ș තත්ඎර වගින්" + +#~ msgid "Exits guvcview after closing video" +#~ msgstr "වීඩිà¶șෝව වැසීඞෙන් ඎසුව guvcview එකෙන් ඎිටවෙන්න" + +#~ msgid "Number of initial frames to skip" +#~ msgstr "නොසගකා හැරීඞට ඇති ආරඞ්භක රාඞු ගණන" + +#~ msgid "Show FPS value (enable(1) | disable (0))" +#~ msgstr "FPS අගà¶ș ඎෙන්වන්න (හැකිà¶șාව(1) | නොහැකිà¶șාව(0))" + +#~ msgid "Load Profile at start" +#~ msgstr "ආරඞ්භà¶șà·šà¶Żà·“ ආකෘතිà¶ș ඎ්‍රවේශනà¶ș කරන්න" + +#~ msgid "- local options" +#~ msgstr "- à·ƒà·Šà¶źà·à¶±à·“à¶ș විකග්ඎ" + +#~ msgid "Cap. Image" +#~ msgstr "රූඎà¶ș ග්‍රහණà¶ș කරගන්න" + +#~ msgid "Not enough free space left on disk" +#~ msgstr "සෑ‍හෙන තරඞ් හිස් අවකාශà¶șක් තැටිà¶ș ඞත ඉතිරි වී නොඞැත" + +#~ msgid "YUY2 - uncomp YUV" +#~ msgstr "YUY2 - uncomp YUV" + +#~ msgid "RGB - uncomp BMP" +#~ msgstr "RGB - uncomp BMP" + +#~ msgid "MKV - Matroska format" +#~ msgstr "MKV - Matroska ආකෘතිà¶ș" + +#~ msgid "WEBM - format" +#~ msgstr "WEBM - ආකෘතිà¶ș" + +#~ msgid " Show" +#~ msgstr " ඎෙන්වන්න" + +#~ msgid "Quality:" +#~ msgstr "ගුණාත්ඞකබව:" diff -Nru guvcview-1.7.3/po/sr.po guvcview-2.0.1+ubuntu1~ppa1/po/sr.po --- guvcview-1.7.3/po/sr.po 2014-03-24 22:56:28.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/po/sr.po 2014-10-05 10:41:44.000000000 +0000 @@ -7,16 +7,16 @@ msgstr "" "Project-Id-Version: guvcview\n" "Report-Msgid-Bugs-To: pj.assis@gmail.com\n" -"POT-Creation-Date: 2013-11-14 22:15+0000\n" +"POT-Creation-Date: 2014-08-17 22:49+0100\n" "PO-Revision-Date: 2013-03-09 13:12+0000\n" "Last-Translator: ĐœĐžŃ€ĐŸŃĐ»Đ°ĐČ ĐĐžĐșĐŸĐ»ĐžŃ› \n" "Language-Team: Serbian \n" +"Language: sr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-12-08 10:36+0000\n" "X-Generator: Launchpad (build 16869)\n" -"Language: sr\n" #: ../data/guvcview.desktop.in.in.h:1 msgid "guvcview" @@ -28,1397 +28,1629 @@ #: ../data/guvcview.desktop.in.in.h:3 msgid "A video viewer and capturer for the linux uvc driver" -msgstr "ПроĐșĐ°Đ·ĐžĐČач Đž ŃĐœĐžĐŒĐ°Ń‡ ĐČОЎДа Đ·Đ° Đ»ĐžĐœŃƒĐșŃĐŸĐČ ŃƒĐČц упраĐČљачĐșĐž ĐżŃ€ĐŸĐłŃ€Đ°ĐŒ" - -#: ../src/acodecs.c:59 -msgid "PCM - uncompressed (16 bit)" -msgstr "ПЩМ — ĐœĐ”ŃĐ°Đ¶Đ”Ń‚ĐŸ (16 бОта)" - -#: ../src/acodecs.c:76 -msgid "MPEG2 - (lavc)" -msgstr "МПЕГ2 — (lavc)" - -#: ../src/acodecs.c:93 -msgid "MP3 - (lavc)" -msgstr "МП3 — (lavc)" - -#: ../src/acodecs.c:110 -msgid "Dolby AC3 - (lavc)" -msgstr "Đ”ĐŸĐ»Đ±Đž АЊ3 — (lavc)" - -#: ../src/acodecs.c:127 -msgid "ACC Low - (faac)" -msgstr "НосĐșĐž АЊЊ — (faac)" - -#: ../src/acodecs.c:144 -msgid "Vorbis" -msgstr "Đ’ĐŸŃ€Đ±ĐžŃ" - -#: ../src/audio_tab.c:87 -msgid "Audio" -msgstr "ĐŃƒĐŽĐžĐŸ" - -#: ../src/audio_tab.c:105 -msgid " Sound" -msgstr " ЗĐČуĐș" - -#. VU meter on the image (OSD) -#: ../src/audio_tab.c:116 -msgid " Show VU meter" -msgstr " ПроĐșажО ВУ ĐŒĐ”Ń‚Đ°Ń€" - -#: ../src/audio_tab.c:128 -msgid "Audio API:" -msgstr "ĐŃƒĐŽĐžĐŸ АПИ:" - -#: ../src/audio_tab.c:139 -msgid "PORTAUDIO" -msgstr "ПОРбАУДИО" - -#: ../src/audio_tab.c:140 -msgid "PULSEAUDIO" -msgstr "ПУЛСЕАУДИО" - -#: ../src/audio_tab.c:156 ../src/audio_tab.c:179 -msgid "Input Device:" -msgstr "ĐŁĐ»Đ°Đ·ĐœĐž ŃƒŃ€Đ”Ń’Đ°Ń˜:" - -#: ../src/audio_tab.c:189 ../src/audio_tab.c:221 -msgid "Dev. Default" -msgstr "ĐžŃĐœĐŸĐČĐœĐž са ŃƒŃ€Đ”Ń’Đ°Ń˜Đ°" - -#: ../src/audio_tab.c:211 -msgid "Sample Rate:" -msgstr "ĐŸŃ€ĐŸŃ‚ĐŸĐș ŃƒĐ·ĐŸŃ€ĐșĐ°:" - -#: ../src/audio_tab.c:222 -msgid "1 - mono" -msgstr "1 — ĐŒĐŸĐœĐŸ" - -#: ../src/audio_tab.c:223 -msgid "2 - stereo" -msgstr "2 — ŃŃ‚Đ”Ń€Đ”ĐŸ" - -#: ../src/audio_tab.c:258 -msgid "Channels:" -msgstr "Đ‘Ń€ĐŸŃ˜ ĐșĐ°ĐœĐ°Đ»Đ°:" - -#: ../src/audio_tab.c:309 -msgid "---- Audio Effects ----" -msgstr "———— ĐŃƒĐŽĐžĐŸ ДфДĐșто ————" - -#. Echo -#: ../src/audio_tab.c:328 -msgid " Echo" -msgstr " Đ•Ń…ĐŸ" - -#. FUZZ -#: ../src/audio_tab.c:339 -msgid " Fuzz" -msgstr " Маљ" - -#. Reverb -#: ../src/audio_tab.c:351 -msgid " Reverb" -msgstr " ĐžĐŽŃ˜Đ”Đș" - -#. WahWah -#: ../src/audio_tab.c:363 -msgid " WahWah" -msgstr " ВауВау" - -#. Ducky -#: ../src/audio_tab.c:375 -msgid " Ducky" -msgstr " ĐŸĐ°Ń‡Đ”" - -#: ../src/callbacks.c:109 -msgid "Error" -msgstr "Đ“Ń€Đ”ŃˆĐșĐ°" - -#: ../src/callbacks.c:133 -msgid "" -"\n" -"You have more than one video device installed.\n" -"Do you want to try another one ?\n" -msgstr "" -"\n" -"Đ˜ĐŒĐ°Ń‚Đ” ĐœĐ”ĐșĐŸĐ»ĐžĐșĐŸ ĐČĐžĐŽĐ”ĐŸ ŃƒŃ€Đ”Ń’Đ°Ń˜Đ° ĐžĐœŃŃ‚Đ°Đ»ĐžŃ€Đ°ĐœĐ°.\n" -"ЖДлОтД лО ĐŽĐ° ĐżŃ€ĐŸĐ±Đ°Ń‚Đ” ĐœĐ”ĐșĐž Юруго ?\n" - -#. Devices -#: ../src/callbacks.c:140 ../src/video_tab.c:111 -msgid "Device:" -msgstr "ĐŁŃ€Đ”Ń’Đ°Ń˜:" - -#: ../src/callbacks.c:272 -msgid "Save File" -msgstr "СачуĐČĐ°Ń˜Ń‚Đ” ĐŽĐ°Ń‚ĐŸŃ‚Đ”Đșу" - -#: ../src/callbacks.c:284 -msgid "File Format:" -msgstr "Запос ĐŽĐ°Ń‚ĐŸŃ‚Đ”ĐșĐ”:" - -#: ../src/callbacks.c:455 -msgid "codec values" -msgstr "ĐČŃ€Đ”ĐŽĐœĐŸŃŃ‚Đž ĐșĐŸĐŽĐ”ĐșĐ°" - -#: ../src/callbacks.c:466 -msgid "" -" encoder fps: \n" -" (0 - use fps combobox value)" -msgstr "" -" ф/с Đ”ĐœĐșĐŸĐŽĐ”Ń€Đ°: \n" -" (0 — ĐșĐŸŃ€ĐžŃŃ‚ĐžŃ‚Đ” ĐČŃ€Đ”ĐŽĐœĐŸŃŃ‚ ф/с ĐżĐŸŃ™Đ° Đ·Đ° бОрањД)" - -#: ../src/callbacks.c:479 -msgid " monotonic pts" -msgstr " Ń˜Đ”ĐŽĐœĐŸĐŸĐ±Ń€Đ°Đ·ĐœĐ” тачĐșĐ”" - -#. bit rate -#: ../src/callbacks.c:486 ../src/callbacks.c:809 -msgid "bit rate: " -msgstr "ĐżŃ€ĐŸŃ‚ĐŸĐș бОта: " - -#: ../src/callbacks.c:499 -msgid "qmax: " -msgstr "qmax: " - -#: ../src/callbacks.c:512 -msgid "qmin: " -msgstr "qmin: " - -#: ../src/callbacks.c:525 -msgid "max. qdiff: " -msgstr "max. q разл: " - -#: ../src/callbacks.c:538 -msgid "dia size: " -msgstr "ЎОа ĐČĐ”Đ»ĐžŃ‡ĐžĐœĐ°: " - -#: ../src/callbacks.c:551 -msgid "pre dia size: " -msgstr "прД ЎОа ĐČĐ”Đ»ĐžŃ‡ĐžĐœĐ°: " - -#: ../src/callbacks.c:564 -msgid "pre me: " -msgstr "прД ĐŒĐ”: " - -#: ../src/callbacks.c:577 -msgid "pre cmp: " -msgstr "прД Ń†ĐŒĐż: " - -#: ../src/callbacks.c:590 -msgid "cmp: " -msgstr "Ń†ĐŒĐż: " - -#: ../src/callbacks.c:603 -msgid "sub cmp: " -msgstr "ĐżĐŸĐŽ Ń†ĐŒĐż: " - -#: ../src/callbacks.c:616 -msgid "last predictor count: " -msgstr "ĐżĐŸŃĐ»Đ”ĐŽŃšĐž Đ±Ń€ĐŸŃ˜ прДЎсĐșĐ°Đ·ĐžĐČача: " - -#: ../src/callbacks.c:629 -msgid "gop size: " -msgstr "ĐłĐŸĐż ĐČĐ”Đ»ĐžŃ‡ĐžĐœĐ°: " - -#: ../src/callbacks.c:642 -msgid "qcompress: " -msgstr "q-ŃĐ°Đ¶ĐžĐŒĐ°ŃšĐ”: " - -#: ../src/callbacks.c:655 -msgid "qblur: " -msgstr "q-Đ·Đ°ĐŒŃƒŃ›Đ”ŃšĐ”: " - -#: ../src/callbacks.c:668 -msgid "subq: " -msgstr "ĐżĐŸĐŽ-q: " - -#: ../src/callbacks.c:681 -msgid "framerefs: " -msgstr "framerefs: " - -#: ../src/callbacks.c:694 -msgid "me method: " -msgstr "ĐŒĐ” ĐœĐ°Ń‡ĐžĐœ: " - -#: ../src/callbacks.c:707 -msgid "mb decision: " -msgstr "ĐŒĐ± ĐŸĐŽĐ»ŃƒĐșĐ°: " - -#: ../src/callbacks.c:720 -msgid "max B frames: " -msgstr "ĐœĐ°Ń˜ĐČОшД Б ĐŸĐșĐČора: " - -#: ../src/callbacks.c:733 -msgid "num threads: " -msgstr "бр. ĐœĐžŃ‚Đž: " - -#: ../src/callbacks.c:796 -msgid "audio codec values" -msgstr "ĐČŃ€Đ”ĐŽĐœĐŸŃŃ‚ ĐșĐŸĐŽĐ”ĐșĐ° Đ·ĐČуĐșĐ°" - -#. sample format -#: ../src/callbacks.c:823 -msgid "sample format: " -msgstr "запОс ŃƒĐ·ĐŸŃ€ĐșĐ°: " - -#: ../src/callbacks.c:1311 -msgid "start new" -msgstr "ĐżĐŸĐșŃ€Đ”ĐœĐž ĐœĐŸĐČĐž" - -#: ../src/callbacks.c:1314 -msgid "restart" -msgstr "ĐżĐŸĐœĐŸĐČĐŸ ĐżĐŸĐșŃ€Đ”ĐœĐž" - -#: ../src/callbacks.c:1316 -msgid "new" -msgstr "ĐœĐŸĐČĐž" - -#: ../src/callbacks.c:1318 -msgid "cancel" -msgstr "ĐŸŃ‚ĐșажО" - -#: ../src/callbacks.c:1323 -msgid "" -"launch new process or restart?.\n" -"\n" -msgstr "" -"ĐŽĐ° ĐżĐŸĐșŃ€Đ”ĐœĐ”ĐŒ ĐœĐŸĐČĐž ĐżŃ€ĐŸŃ†Đ”Ń ОлО ĐŽĐ° сД ĐżĐŸĐœĐŸĐČĐŸ ĐżĐŸĐșŃ€Đ”ĐœĐ”ĐŒ?.\n" -"\n" - -#: ../src/callbacks.c:1780 ../src/guvcview.c:565 -msgid "Cap. Image (I)" -msgstr "ĐĄĐœĐžĐŒĐž слОĐșу (I)" - -#. disable image controls -#: ../src/callbacks.c:1791 ../src/guvcview.c:690 ../src/timers.c:101 -msgid "capturing photo to" -msgstr "ŃĐœĐžĐŒĐ°ĐŒ Ń„ĐŸŃ‚ĐŸĐłŃ€Đ°Ń„ĐžŃ˜Ńƒ у" - -#: ../src/callbacks.c:1850 ../src/guvcview.c:575 -msgid "Cap. Video (V)" -msgstr "ĐĄĐœĐžĐŒĐž ĐČĐžĐŽĐ”ĐŸ (V)" - -#: ../src/callbacks.c:1876 ../src/guvcview.c:740 -msgid "capturing video to" -msgstr "ŃĐœĐžĐŒĐ°ĐŒ ĐČĐžĐŽĐ”ĐŸ у" - -#. vid capture enabled from start -#: ../src/callbacks.c:1911 ../src/guvcview.c:570 -msgid "Stop Video (V)" -msgstr "ЗаустаĐČĐž ĐČĐžĐŽĐ”ĐŸ (V)" - -#: ../src/callbacks.c:1967 ../src/menubar.c:66 -msgid "Save Profile" -msgstr "СачуĐČај ĐżŃ€ĐŸŃ„ĐžĐ»" - -#: ../src/callbacks.c:1980 ../src/menubar.c:65 -msgid "Load Profile" -msgstr "Учотај ĐżŃ€ĐŸŃ„ĐžĐ»" - -#: ../src/create_video.c:1098 ../src/guvcview.c:732 -msgid "Cap. Video" -msgstr "ĐĄĐœĐžĐŒĐž ĐČĐžĐŽĐ”ĐŸ" - -#: ../src/guvcview.c:280 -msgid "Guvcview Video Capture" -msgstr "ĐšĐ°ĐŒĐ”Ń€ĐžŃ†Đ° — ĐČĐžĐŽĐ”ĐŸ ŃĐœĐžĐŒĐ°ŃšĐ”" - -#: ../src/guvcview.c:292 -msgid "GUVCViewer Controls" -msgstr "ĐšĐŸĐœŃ‚Ń€ĐŸĐ»Đ” ĐšĐ°ĐŒĐ”Ń€ĐžŃ†Đ”" - -#. can't open device -#: ../src/guvcview.c:342 -msgid "" -"Guvcview error:\n" -"\n" -"Unable to open device" -msgstr "" -"Đ“Ń€Đ”ŃˆĐșĐ° ĐšĐ°ĐŒĐ”Ń€ĐžŃ†Đ”:\n" -"\n" -"ĐĐ” ĐŒĐŸĐłŃƒ ĐŽĐ° ĐŸŃ‚ĐČĐŸŃ€ĐžĐŒ ŃƒŃ€Đ”Ń’Đ°Ń˜" - -#: ../src/guvcview.c:343 -msgid "" -"Please make sure the camera is connected\n" -"and that the correct driver is installed." -msgstr "" -"ĐŸŃ€ĐŸĐČДрОтД ĐŽĐ° лО јД ĐșĐ°ĐŒĐ”Ń€Đ° ĐżĐŸĐČĐ”Đ·Đ°ĐœĐ° Đž ĐŽĐ° лО\n" -"јД ĐžĐœŃŃ‚Đ°Đ»ĐžŃ€Đ°Đœ оспраĐČĐ°Đœ упраĐČљачĐșĐž ĐżŃ€ĐŸĐłŃ€Đ°ĐŒ." - -#. uvc extension controls OK, give warning and shutdown (called with --add_ctrls) -#: ../src/guvcview.c:348 -msgid "" -"Guvcview:\n" -"\n" -"UVC Extension controls" -msgstr "" -"ĐšĐ°ĐŒĐ”Ń€ĐžŃ†Đ°:\n" -"\n" -"ĐšĐŸĐœŃ‚Ń€ĐŸĐ»Đ” УВЩ ĐżŃ€ĐŸŃˆĐžŃ€Đ”ŃšĐ°" - -#: ../src/guvcview.c:349 -msgid "Extension controls were added to the UVC driver" -msgstr "ĐšĐŸĐœŃ‚Ń€ĐŸĐ»Đ” ĐżŃ€ĐŸŃˆĐžŃ€Đ”ŃšĐ° су ĐŽĐŸĐŽĐ°Ń‚Đ” УВЩ упраĐČљачĐșĐŸĐŒ ĐżŃ€ĐŸĐłŃ€Đ°ĐŒŃƒ" - -#. uvc extension controls error - EACCES (needs root user) -#: ../src/guvcview.c:356 -msgid "" -"Guvcview error:\n" -"\n" -"UVC Extension controls" -msgstr "" -"Đ“Ń€Đ”ŃˆĐșĐ° ĐšĐ°ĐŒĐ”Ń€ĐžŃ†Đ”:\n" -"\n" -"ĐšĐŸĐœŃ‚Ń€ĐŸĐ»Đ” УВЩ ĐżŃ€ĐŸŃˆĐžŃ€Đ”ŃšĐ°" - -#: ../src/guvcview.c:357 -msgid "" -"An error occurred while adding extension\n" -"controls to the UVC driver\n" -"Make sure you run guvcview as root (or sudo)." -msgstr "" -"Đ”ĐŸŃˆĐ»ĐŸ јД ĐŽĐŸ ĐłŃ€Đ”ŃˆĐșĐ” прОлОĐșĐŸĐŒ ĐŽĐŸĐŽĐ°ĐČања ĐșĐŸĐœŃ‚Ń€ĐŸĐ»Đ°\n" -"ĐżŃ€ĐŸŃˆĐžŃ€Đ”ŃšĐ° УВЩ упраĐČљачĐșĐŸĐŒ ĐżŃ€ĐŸĐłŃ€Đ°ĐŒŃƒ. ĐŁĐČДрОтД сД ĐŽĐ°\n" -"стД ĐżĐŸĐșŃ€Đ”ĐœŃƒĐ»Đž ĐșĐ°ĐŒĐ”Ń€Ń‡Đ” ĐșĐ°ĐŸ Đ°ĐŽĐŒĐžĐœĐžŃŃ‚Ń€Đ°Ń‚ĐŸŃ€ (ОлО ŃŃƒĐŽĐŸ)." - -#: ../src/guvcview.c:391 ../src/guvcview.c:399 ../src/guvcview.c:477 -msgid "" -"Guvcview error:\n" -"\n" -"Can't set a valid video stream for guvcview" -msgstr "" -"Đ“Ń€Đ”ŃˆĐșĐ° ĐšĐ°ĐŒĐ”Ń€ĐžŃ†Đ”:\n" -"\n" -"ĐĐ” ĐŒĐŸĐłŃƒ ĐŽĐ° ĐżĐŸĐŽĐ”ŃĐžĐŒ оспраĐČĐ°Đœ ĐČĐžĐŽĐ”ĐŸ Ń‚ĐŸĐș Đ·Đ° ĐșĐ°ĐŒĐ”Ń€Ń‡Đ”" - -#: ../src/guvcview.c:392 ../src/guvcview.c:400 ../src/guvcview.c:478 -msgid "" -"Make sure your device driver is v4l2 compliant\n" -"and that it is properly installed." -msgstr "" -"ĐŁĐČДрОтД сД ĐŽĐ° јД упраĐČљачĐșĐž ĐżŃ€ĐŸĐłŃ€Đ°ĐŒ ĐČашДг ŃƒŃ€Đ”Ń’Đ°Ń˜Đ°\n" -"ŃƒŃĐ°ĐłĐ»Đ°ŃˆĐ”Đœ са ĐČ4Đ»2 Đž ĐŽĐ° јД оспраĐČĐœĐŸ ĐžĐœŃŃ‚Đ°Đ»ĐžŃ€Đ°Đœ." - -#: ../src/guvcview.c:422 ../src/guvcview.c:444 -msgid "" -"Guvcview error:\n" -"\n" -"Unable to start with minimum setup" -msgstr "" -"Đ“Ń€Đ”ŃˆĐșĐ° ĐšĐ°ĐŒĐ”Ń€ĐžŃ†Đ”:\n" -"\n" -"ĐĐ” ĐŒĐŸĐłŃƒ ĐŽĐ° Đ·Đ°ĐżĐŸŃ‡ĐœĐ”ĐŒ са ĐŒĐžĐœĐžĐŒĐ°Đ»ĐœĐžĐŒ ĐżĐŸĐŽĐ”ŃˆĐ°ĐČĐ°ŃšĐžĐŒĐ°" - -#: ../src/guvcview.c:423 ../src/guvcview.c:445 -msgid "Please reconnect your camera." -msgstr "ĐœĐŸĐ»ĐžĐŒ ĐżĐŸĐœĐŸĐČĐŸ ĐżĐŸĐČДжОтД ĐČашу ĐșĐ°ĐŒĐ”Ń€Ńƒ." - -#: ../src/guvcview.c:452 -msgid "" -"Guvcview error:\n" -"\n" -"Couldn't query device capabilities" -msgstr "" -"Đ“Ń€Đ”ŃˆĐșĐ° ĐšĐ°ĐŒĐ”Ń€ĐžŃ†Đ”:\n" -"\n" -"ĐĐ” ĐŒĐŸĐłŃƒ ĐŽĐ° ĐžŃĐżĐžŃ‚Đ°ĐŒ ĐŒĐŸĐłŃƒŃ›ĐœĐŸŃŃ‚Đž ŃƒŃ€Đ”Ń’Đ°Ń˜Đ°" - -#: ../src/guvcview.c:453 -msgid "Make sure the device driver supports v4l2." -msgstr "ĐŁĐČДрОтД сД ĐŽĐ° упраĐČљачĐșĐž ĐżŃ€ĐŸĐłŃ€Đ°ĐŒ ŃƒŃ€Đ”Ń’Đ°Ń˜Đ° ĐżĐŸĐŽŃ€Đ¶Đ°ĐČĐ° ĐČ4Đ»2." - -#: ../src/guvcview.c:457 -msgid "" -"Guvcview error:\n" -"\n" -"Read method error" -msgstr "" -"Đ“Ń€Đ”ŃˆĐșĐ° ĐšĐ°ĐŒĐ”Ń€ĐžŃ†Đ”:\n" -"\n" -"Đ“Ń€Đ”ŃˆĐșĐ° Ń€Đ”Đ¶ĐžĐŒĐ° чотања" - -#: ../src/guvcview.c:458 -msgid "Please try mmap instead (--capture_method=1)." -msgstr "ĐœĐŸĐ»ĐžĐŒ ĐżĐŸĐșŃƒŃˆĐ°Ń˜Ń‚Đ” „mmap“ ŃƒĐŒĐ”ŃŃ‚ĐŸ ĐŸĐČĐŸĐł (--capture_method=1)." - -#: ../src/guvcview.c:466 -msgid "" -"Guvcview error:\n" -"\n" -"Unable to allocate Buffers" -msgstr "" -"Đ“Ń€Đ”ŃˆĐșĐ° ĐšĐ°ĐŒĐ”Ń€ĐžŃ†Đ”:\n" -"\n" -"ĐĐ” ĐŒĐŸĐłŃƒ ĐŽĐ° ĐŽĐŸĐŽĐ”Đ»ĐžĐŒ БафДрД" - -#: ../src/guvcview.c:467 -msgid "Please try restarting your system." -msgstr "ĐœĐŸĐ»ĐžĐŒ ĐżĐŸĐșŃƒŃˆĐ°Ń˜Ń‚Đ” ĐżĐŸĐœĐŸĐČĐŸ ĐŽĐ° ĐżĐŸĐșŃ€Đ”ĐœĐ”Ń‚Đ” ŃĐžŃŃ‚Đ”ĐŒ." - -#: ../src/guvcview.c:518 -msgid "Image Controls" -msgstr "ĐšĐŸĐœŃ‚Ń€ĐŸĐ»Đ” слОĐșĐ”" - -#. image auto capture -#: ../src/guvcview.c:561 -msgid "Stop Auto (I)" -msgstr "ЗаустаĐČĐž Đ°ŃƒŃ‚ĐŸĐŒĐ°Ń‚ĐžĐș (I)" - -#: ../src/guvcview.c:676 -msgid "" -"Guvcview error:\n" -"\n" -"Unable to create Video Thread" -msgstr "" -"Đ“Ń€Đ”ŃˆĐșĐ° ĐšĐ°ĐŒĐ”Ń€ĐžŃ†Đ”:\n" -"\n" -"ĐĐ” ĐŒĐŸĐłŃƒ ĐŽĐ° ĐœĐ°ĐżŃ€Đ°ĐČĐžĐŒ ĐČĐžĐŽĐ”ĐŸ ĐœĐžŃ‚" - -#: ../src/guvcview.c:677 -msgid "Please report it to http://developer.berlios.de/bugs/?group_id=8179" -msgstr "" -"ĐœĐŸĐ»ĐžĐŒ пројаĐČОтД ĐœĐ° Đ°ĐŽŃ€Đ”ŃŃƒ: http://developer.berlios.de/bugs/?group_id=8179" - -#: ../src/img_controls.c:121 -msgid "Auto Focus (continuous)" -msgstr "ĐĄĐ°ĐŒĐŸŃŃ‚Đ°Đ»ĐœĐŸ Ń„ĐŸĐșŃƒŃĐžŃ€Đ°ŃšĐ” (ĐœĐ”ĐżŃ€Đ”ĐșĐžĐŽĐœĐŸ)" - -#: ../src/img_controls.c:122 -msgid "set Focus" -msgstr "ĐżĐŸĐŽĐ”ŃĐž Ń„ĐŸĐșус" - -#: ../src/image_format.c:35 -msgid "Jpeg (jpg)" -msgstr "ЈпДг (jpg)" - -#: ../src/image_format.c:41 -msgid "Bitmap (Bmp)" -msgstr "Đ‘ĐžŃ‚ĐŒĐ°Đż (Bmp)" - -#: ../src/image_format.c:47 -msgid "Portable Network Graphics (Png)" -msgstr "ĐŸŃ€Đ”ĐœĐŸŃĐœĐ° ĐŒŃ€Đ”Đ¶ĐœĐ° графоĐșĐ° (Png)" - -#: ../src/image_format.c:53 -msgid "Raw Image (raw)" -msgstr "ĐĄĐžŃ€ĐŸĐČĐ° слОĐșĐ° (raw)" - -#. controls menu -#: ../src/menubar.c:64 -msgid "Settings" -msgstr "ĐŸĐŸĐŽĐ”ŃˆĐ°ĐČања" - -#: ../src/menubar.c:67 -msgid "Hardware Defaults" -msgstr "ĐžŃĐœĐŸĐČĐœĐŸ са ŃƒŃ€Đ”Ń’Đ°Ń˜Đ°" - -#: ../src/menubar.c:75 -msgid "Camera Button" -msgstr "Đ”ŃƒĐłĐŒĐ” Ń„ĐŸŃ‚ĐŸ-апарата" - -#: ../src/menubar.c:79 -msgid "Capture Image" -msgstr "ĐĄĐœĐžĐŒĐž слОĐșу" - -#: ../src/menubar.c:84 -msgid "Capture Video" -msgstr "ĐĄĐœĐžĐŒĐž ĐČĐžĐŽĐ”ĐŸ" - -#. video menu -#: ../src/menubar.c:144 ../src/video_tab.c:95 -msgid "Video" -msgstr "Đ’ĐžĐŽĐ”ĐŸ" - -#: ../src/menubar.c:145 ../src/menubar.c:233 -msgid "File" -msgstr "Đ”Đ°Ń‚ĐŸŃ‚Đ”ĐșĐ°" - -#: ../src/menubar.c:146 ../src/menubar.c:234 -msgid "Increment Filename" -msgstr "ĐĐ°Đ·ĐžĐČ ĐŽĐ°Ń‚ĐŸŃ‚Đ”ĐșĐ” уĐČДћања" - -#: ../src/menubar.c:164 -msgid "Video Codec" -msgstr "Đ’ĐžĐŽĐ”ĐŸ ĐșĐŸĐŽĐ”Đș" - -#: ../src/menubar.c:189 -msgid "Video Codec Properties" -msgstr "ĐĄĐČĐŸŃ˜ŃŃ‚ĐČĐ° ĐČĐžĐŽĐ”ĐŸ ĐșĐŸĐŽĐ”ĐșĐ°" - -#: ../src/menubar.c:196 -msgid "Audio Codec" -msgstr "ĐŃƒĐŽĐžĐŸ ĐșĐŸĐŽĐ”Đș" - -#: ../src/menubar.c:217 -msgid "Audio Codec Properties" -msgstr "ĐĄĐČĐŸŃ˜ŃŃ‚ĐČĐ° Đ°ŃƒĐŽĐžĐŸ ĐșĐŸĐŽĐ”ĐșĐ°" - -#. photo menu -#: ../src/menubar.c:232 -msgid "Photo" -msgstr "Đ€ĐŸŃ‚ĐŸĐłŃ€Đ°Ń„ĐžŃ˜Đ°" - -#: ../src/options.c:753 -msgid "Prints version" -msgstr "ĐšŃ‚Đ°ĐŒĐżĐ° ОзЎањД" - -#: ../src/options.c:754 -msgid "Displays debug information" -msgstr "ПроĐșазујД ĐžĐœŃ„ĐŸŃ€ĐŒĐ°Ń†ĐžŃ˜e ĐŸ оспраĐČљању ĐłŃ€Đ”ŃˆĐ°ĐșĐ°" - -#: ../src/options.c:755 -msgid "Video Device to use [default: /dev/video0]" -msgstr "Đ’ĐžĐŽĐ”ĐŸ ŃƒŃ€Đ”Ń’Đ°Ń˜ Đ·Đ° ĐșĐŸŃ€ĐžŃˆŃ›Đ”ŃšĐ” [ĐŸŃĐœĐŸĐČĐœĐž: „/dev/video0“]" - -#: ../src/options.c:756 -msgid "Exit after adding UVC extension controls (needs root/sudo)" -msgstr "ИзлазО ĐżĐŸŃĐ»Đ” ĐŽĐŸĐŽĐ°ĐČања ĐșĐŸĐœŃ‚Ń€ĐŸĐ»Đ° УВЩ ĐżŃ€ĐŸŃˆĐžŃ€Đ”ŃšĐ° (Đ·Đ°Ń…Ń‚Đ”ĐČĐ° „root/sudo“)" - -#: ../src/options.c:757 -msgid "Don't stream video (image controls only)" -msgstr "ĐĐ” пушта Ń‚ĐŸĐș ĐČОЎДа (ŃĐ°ĐŒĐŸ ĐșĐŸĐœŃ‚Ń€ĐŸĐ»Đ” слОĐșĐ”)" - -#: ../src/options.c:758 -msgid "Don't display a GUI" -msgstr "ĐĐ” проĐșазујД ГКС" - -#: ../src/options.c:759 -msgid "Capture method (1-mmap (default) 2-read)" -msgstr "ĐĐ°Ń‡ĐžĐœ ŃĐœĐžĐŒĐ°ŃšĐ° (1-ĐŒĐŒĐ°Đż (ĐŸŃĐœĐŸĐČĐœĐŸ) 2-чотај)" - -#: ../src/options.c:760 -msgid "Configuration file" -msgstr "Đ”Đ°Ń‚ĐŸŃ‚Đ”ĐșĐ° ĐżĐŸĐŽĐ”ŃˆĐ°ĐČања" - -#: ../src/options.c:761 -msgid "Hardware accelaration (enable(1) | disable(0))" -msgstr "УбрзањД фОзОчĐșĐ” ĐșĐŸĐŒĐżĐŸĐœĐ”ĐœŃ‚Đ” (уĐșључо(1) | ОсĐșључо(0))" - -#: ../src/options.c:762 -msgid "" -"Pixel " -"format(mjpg|jpeg|yuyv|yvyu|uyvy|yyuv|yu12|yv12|nv12|nv21|nv16|nv61|y41p|grey|" -"y10b|y16 |s501|s505|s508|gbrg|grbg|ba81|rggb|bgr3|rgb3)" -msgstr "" -"Đ€ĐŸŃ€ĐŒĐ°Ń‚ " -"тачаĐșĐ°(mjpg|jpeg|yuyv|yvyu|uyvy|yyuv|yu12|yv12|nv12|nv21|nv16|nv61|y41p|grey|" -"y10b|y16 |s501|s505|s508|gbrg|grbg|ba81|rggb|bgr3|rgb3)" - -#: ../src/options.c:763 -msgid "Frame size, default: 640x480" -msgstr "Đ’Đ”Đ»ĐžŃ‡ĐžĐœĐ° ĐșаЮра, ĐŸŃĐœĐŸĐČĐœĐ°: 640Đș480" - -#: ../src/options.c:764 -msgid "Image File name" -msgstr "ĐĐ°Đ·ĐžĐČ ĐŽĐ°Ń‚ĐŸŃ‚Đ”ĐșĐ” слОĐșĐ”" - -#: ../src/options.c:765 -msgid "Image capture interval in seconds" -msgstr "Đ˜ĐœŃ‚Đ”Ń€ĐČĐ°Đ» ŃĐœĐžĐŒĐ°ŃšĐ° слОĐșĐ” у сДĐșŃƒĐœĐŽĐ°ĐŒĐ°" - -#: ../src/options.c:766 -msgid "Number of Pictures to capture" -msgstr "Đ‘Ń€ĐŸŃ˜ слОĐșĐ° Đ·Đ° ŃĐœĐžĐŒĐ°ŃšĐ”" - -#: ../src/options.c:767 -msgid "Video File name (capture from start)" -msgstr "ĐĐ°Đ·ĐžĐČ ĐŽĐ°Ń‚ĐŸŃ‚Đ”ĐșĐ” ĐČОЎДа (ŃĐœĐžĐŒĐ°ŃšĐ” ĐŸĐŽ ĐżĐŸŃ‡Đ”Ń‚ĐșĐ°)" - -#: ../src/options.c:768 -msgid "Video capture time (in seconds)" -msgstr "Đ’Ń€Đ”ĐŒĐ” ŃĐœĐžĐŒĐ°ŃšĐ° ĐČОЎДа (у сДĐșŃƒĐœĐŽĐ°ĐŒĐ°)" - -#: ../src/options.c:769 -msgid "Exits guvcview after closing video" -msgstr "ИзлазО Оз ĐșĐ°ĐŒĐ”Ń€ĐžŃ†Đ” ĐœĐ°ĐșĐŸĐœ Đ·Đ°Ń‚ĐČарања ĐČОЎДа" - -#: ../src/options.c:770 -msgid "Number of initial frames to skip" -msgstr "Đ‘Ń€ĐŸŃ˜ ĐżĐŸŃ‡Đ”Ń‚ĐœĐžŃ… ĐșĐ°ĐŽŃ€ĐŸĐČĐ° Đ·Đ° прДсĐșĐ°ĐșањД" - -#: ../src/options.c:771 -msgid "Show FPS value (enable(1) | disable (0))" -msgstr "ПроĐșазујД К/ĐĄ ĐČŃ€Đ”ĐŽĐœĐŸŃŃ‚ (уĐșључо (1) | ОсĐșључо (0))" - -#: ../src/options.c:772 -msgid "Load Profile at start" -msgstr "УчотаĐČĐ° ĐżŃ€ĐŸŃ„ĐžĐ» прОлОĐșĐŸĐŒ ĐżĐŸĐșрДтања" - -#: ../src/options.c:773 -msgid "List controls method (0:loop, 1:next_ctrl flag [def])" -msgstr "" - -#: ../src/options.c:779 -msgid "- local options" -msgstr "— Đ»ĐŸĐșĐ°Đ»ĐœĐ° ĐŸĐżŃ†ĐžŃ˜Đ°" - -#. gdk_threads_enter(); -#: ../src/timers.c:119 -msgid "Cap. Image" -msgstr "ĐĄĐœĐžĐŒĐž слОĐșу" - -#: ../src/timers.c:217 -msgid "Guvcview Warning:" -msgstr "ĐŁĐżĐŸĐ·ĐŸŃ€Đ”ŃšĐ” ĐšĐ°ĐŒĐ”Ń€ĐžŃ†Đ”:" - -#: ../src/timers.c:217 -msgid "Not enough free space left on disk" -msgstr "ĐĐ”ĐŒĐ° ĐŽĐŸĐČĐŸŃ™ĐœĐŸ ŃĐ»ĐŸĐ±ĐŸĐŽĐœĐŸĐł ĐżŃ€ĐŸŃŃ‚ĐŸŃ€Đ° ĐœĐ° ЎОсĐșу" - -#: ../src/v4l2_controls.c:794 -msgid "Left" -msgstr "ЛДĐČĐŸ" - -#: ../src/v4l2_controls.c:795 -msgid "Right" -msgstr "Đ”Đ”ŃĐœĐŸ" - -#: ../src/v4l2_controls.c:799 -msgid "Down" -msgstr "Đ”ĐŸĐ»Đ”" - -#: ../src/v4l2_controls.c:800 -msgid "Up" -msgstr "Đ“ĐŸŃ€Đ”" - -#: ../src/v4l2_controls.c:845 -msgid "Off" -msgstr "ИсĐșљ." - -#: ../src/v4l2_controls.c:845 -msgid "On" -msgstr "ĐŁĐșљ." - -#: ../src/v4l2_controls.c:845 -msgid "Blinking" -msgstr "йрДпДрДњД" - -#: ../src/v4l2_controls.c:845 -msgid "Auto" -msgstr "ĐĄĐ°ĐŒĐŸŃŃ‚Đ°Đ»ĐœĐŸ" - -#. turn it into a menu control -#: ../src/v4l2_controls.c:894 -msgid "8 bit" -msgstr "8 бОта" - -#: ../src/v4l2_controls.c:894 -msgid "12 bit" -msgstr "12 бОта" - -#: ../src/v4l2_dyna_ctrls.c:96 -msgid "Pan (relative)" -msgstr "ĐŸŃ€Đ°Ń›Đ”ŃšĐ” (рДлатОĐČĐœĐŸ)" - -#: ../src/v4l2_dyna_ctrls.c:109 -msgid "Tilt (relative)" -msgstr "ĐĐ°ĐłĐžĐ±Đ°ŃšĐ” (рДлатОĐČĐœĐŸ)" - -#: ../src/v4l2_dyna_ctrls.c:122 -msgid "Pan Reset" -msgstr "ĐŸĐŸĐœĐŸĐČĐœĐŸ праћДњД" - -#: ../src/v4l2_dyna_ctrls.c:135 -msgid "Tilt Reset" -msgstr "ĐŸĐŸĐœĐŸĐČĐœĐŸ ĐœĐ°ĐłĐžĐ±Đ°ŃšĐ”" - -#: ../src/v4l2_dyna_ctrls.c:148 -msgid "Focus (absolute)" -msgstr "Đ€ĐŸĐșус (Đ°ĐżŃĐŸĐ»ŃƒŃ‚ĐœĐž)" - -#: ../src/v4l2_dyna_ctrls.c:161 -msgid "LED1 Mode" -msgstr "ЛЕД1 Ń€Đ”Đ¶ĐžĐŒ" - -#: ../src/v4l2_dyna_ctrls.c:174 -msgid "LED1 Frequency" -msgstr "ЛЕД1 ŃƒŃ‡Đ”ŃŃ‚Đ°Đ»ĐŸŃŃ‚" +msgstr "ПроĐșĐ°Đ·ĐžĐČач Đž ŃĐœĐžĐŒĐ°Ń‡ ĐČОЎДа Đ·Đ° Đ»ĐžĐœŃƒĐșŃĐŸĐČ ŃƒĐČц упраĐČљачĐșĐž ĐżŃ€ĐŸĐłŃ€Đ°ĐŒ" -#: ../src/v4l2_dyna_ctrls.c:187 -msgid "Disable video processing" -msgstr "ĐžĐœĐ”ĐŒĐŸĐłŃƒŃ›Đž ĐŸĐ±Ń€Đ°Ń’ĐžĐČањД ĐČОЎДа" +#: ../data/guvcview.appdata.xml.in.in.h:1 +msgid "capture video from v4l2 devices" +msgstr "" -#: ../src/v4l2_dyna_ctrls.c:200 -msgid "Raw bits per pixel" -msgstr "ĐĄĐžŃ€ĐŸĐČох бОта ĐżĐŸ тачцо" +#: ../data/guvcview.appdata.xml.in.in.h:2 +msgid "" +"Video capture tool for video4linux2 compliant cameras, with special emphasis " +"on the linux uvc driver. It provides Image (jpg, png, bmp) and Video (mjpeg, " +"flv1, wmv1, mpg2, mpg4,...) capture with sound in several " +"formats( currently: avi and matroska). I also supports a control panel " +"option (--control_only) that is compatible with any other v4l2 app." +msgstr "" -#. needed only for language files (not used) +#. +#. * needed only for language files (not used) +#. #. V4L2 control strings -#: ../src/v4l2uvc.c:57 +#: ../gview_v4l2core/v4l2_controls.c:49 msgid "User Controls" msgstr "ĐšĐŸĐœŃ‚Ń€ĐŸĐ»Đ” ĐșĐŸŃ€ĐžŃĐœĐžĐșĐ°" -#: ../src/v4l2uvc.c:58 +#: ../gview_v4l2core/v4l2_controls.c:50 msgid "Brightness" msgstr "ОсĐČĐ”Ń‚Ń™Đ”ĐœĐŸŃŃ‚" -#: ../src/v4l2uvc.c:59 +#: ../gview_v4l2core/v4l2_controls.c:51 msgid "Contrast" msgstr "ĐšĐŸĐœŃ‚Ń€Đ°ŃŃ‚" -#: ../src/v4l2uvc.c:60 +#: ../gview_v4l2core/v4l2_controls.c:52 msgid "Hue" msgstr "ĐĐžŃ˜Đ°ĐœŃĐ°" -#: ../src/v4l2uvc.c:61 +#: ../gview_v4l2core/v4l2_controls.c:53 msgid "Saturation" msgstr "Đ—Đ°ŃĐžŃ›Đ”ĐœĐŸŃŃ‚" -#: ../src/v4l2uvc.c:62 +#: ../gview_v4l2core/v4l2_controls.c:54 msgid "Sharpness" msgstr "ĐžŃˆŃ‚Ń€ĐžĐœĐ°" -#: ../src/v4l2uvc.c:63 +#: ../gview_v4l2core/v4l2_controls.c:55 msgid "Gamma" msgstr "Đ“Đ°ĐŒĐ°" -#: ../src/v4l2uvc.c:64 +#: ../gview_v4l2core/v4l2_controls.c:56 msgid "Backlight Compensation" msgstr "ĐŸĐŸĐżŃ€Đ°ĐČĐșĐ° сĐČДтла ĐżĐŸĐ·Đ°ĐŽĐžĐœĐ”" -#: ../src/v4l2uvc.c:65 +#: ../gview_v4l2core/v4l2_controls.c:57 msgid "Power Line Frequency" msgstr "ĐŁŃ‡Đ”ŃŃ‚Đ°Đ»ĐŸŃŃ‚ ĐŸŃĐČДжаĐČања" -#: ../src/v4l2uvc.c:66 +#: ../gview_v4l2core/v4l2_controls.c:58 msgid "Hue, Automatic" msgstr "ĐĐžŃ˜Đ°ĐœŃĐ°, Đ°ŃƒŃ‚ĐŸĐŒĐ°Ń‚ŃĐșĐž" -#: ../src/v4l2uvc.c:67 +#: ../gview_v4l2core/v4l2_controls.c:59 msgid "Focus, Auto" msgstr "Đ€ĐŸĐșус, Đ°ŃƒŃ‚ĐŸ" -#: ../src/v4l2uvc.c:68 +#: ../gview_v4l2core/v4l2_controls.c:60 msgid "Manual Mode" msgstr "Đ ŃƒŃ‡ĐœĐŸ" -#: ../src/v4l2uvc.c:69 +#: ../gview_v4l2core/v4l2_controls.c:61 msgid "Auto Mode" msgstr "ĐŃƒŃ‚ĐŸĐŒĐ°Ń‚ŃĐșĐž" -#: ../src/v4l2uvc.c:70 +#: ../gview_v4l2core/v4l2_controls.c:62 msgid "Shutter Priority Mode" msgstr "ĐŸŃ€ĐžĐŸŃ€ĐžŃ‚Đ”Ń‚ Đ·Đ°Ń‚ĐČарача" -#: ../src/v4l2uvc.c:71 +#: ../gview_v4l2core/v4l2_controls.c:63 msgid "Aperture Priority Mode" msgstr "ĐŸŃ€ĐžĐŸŃ€ĐžŃ‚Đ”Ń‚ Đ±Đ»Đ”ĐœĐŽĐ”" -#: ../src/v4l2uvc.c:72 +#: ../gview_v4l2core/v4l2_controls.c:64 msgid "Black Level" msgstr "НоĐČĐŸ Ń†Ń€ĐœĐ”" -#: ../src/v4l2uvc.c:73 +#: ../gview_v4l2core/v4l2_controls.c:65 msgid "White Balance, Automatic" msgstr "Đ Đ°ĐČĐœĐŸŃ‚Đ”Đ¶Đ° Đ±Đ”Đ»ĐŸĐł, Đ°ŃƒŃ‚ĐŸĐŒĐ°Ń‚ŃĐșĐž" -#: ../src/v4l2uvc.c:74 +#: ../gview_v4l2core/v4l2_controls.c:66 msgid "Do White Balance" msgstr "УраĐČĐœĐŸŃ‚Đ”Đ¶Đ°ĐČањД Đ±Đ”Đ»ĐŸĐł" -#: ../src/v4l2uvc.c:75 +#: ../gview_v4l2core/v4l2_controls.c:67 msgid "Red Balance" msgstr "Đ Đ°ĐČĐœĐŸŃ‚Đ”Đ¶Đ° црĐČĐ”ĐœĐŸĐł" -#: ../src/v4l2uvc.c:76 +#: ../gview_v4l2core/v4l2_controls.c:68 msgid "Blue Balance" msgstr "Đ Đ°ĐČĐœĐŸŃ‚Đ”Đ¶Đ° плаĐČĐŸĐł" -#: ../src/v4l2uvc.c:77 +#: ../gview_v4l2core/v4l2_controls.c:69 msgid "Exposure" msgstr "Đ˜Đ·Đ»Đ°ĐłĐ°ŃšĐ”" -#: ../src/v4l2uvc.c:78 +#: ../gview_v4l2core/v4l2_controls.c:70 msgid "Gain, Automatic" msgstr "ĐŸĐŸŃ˜Đ°Ń‡Đ°ŃšĐ”, Đ°ŃƒŃ‚ĐŸĐŒĐ°Ń‚ŃĐșĐž" -#: ../src/v4l2uvc.c:79 +#: ../gview_v4l2core/v4l2_controls.c:71 msgid "Gain" msgstr "ĐŸĐŸŃ˜Đ°Ń‡Đ°ŃšĐ”" -#: ../src/v4l2uvc.c:80 +#: ../gview_v4l2core/v4l2_controls.c:72 msgid "Horizontal Flip" msgstr "Đ’ĐŸĐŽĐŸŃ€Đ°ĐČĐœĐŸ прДĐČртањД" -#: ../src/v4l2uvc.c:81 +#: ../gview_v4l2core/v4l2_controls.c:73 msgid "Vertical Flip" msgstr "УспраĐČĐœĐŸ прДĐČртањД" -#: ../src/v4l2uvc.c:82 +#: ../gview_v4l2core/v4l2_controls.c:74 msgid "Horizontal Center" msgstr "Đ’ĐŸĐŽĐŸŃ€Đ°ĐČĐœĐŸ Ń†Đ”ĐœŃ‚Ń€ĐžŃ€Đ°ŃšĐ”" -#: ../src/v4l2uvc.c:83 +#: ../gview_v4l2core/v4l2_controls.c:75 msgid "Vertical Center" msgstr "УспраĐČĐœĐŸ Ń†Đ”ĐœŃ‚Ń€ĐžŃ€Đ°ŃšĐ”" -#: ../src/v4l2uvc.c:84 +#: ../gview_v4l2core/v4l2_controls.c:76 msgid "Chroma AGC" msgstr "АГЩ Ń…Ń€ĐŸĐŒĐžĐœĐ°ĐœŃĐ”" -#: ../src/v4l2uvc.c:85 +#: ../gview_v4l2core/v4l2_controls.c:77 msgid "Color Killer" msgstr "ĐŁĐșоЮач Đ±ĐŸŃ˜Đ”" -#: ../src/v4l2uvc.c:86 +#: ../gview_v4l2core/v4l2_controls.c:78 msgid "Color Effects" msgstr "Đ•Ń„Đ”Đșто Đ±ĐŸŃ˜Đ”" #. CAMERA CLASS control strings -#: ../src/v4l2uvc.c:89 +#: ../gview_v4l2core/v4l2_controls.c:81 msgid "Camera Controls" msgstr "ĐšĐŸĐœŃ‚Ń€ĐŸĐ»Đ” ĐșĐ°ĐŒĐ”Ń€Đ”" -#: ../src/v4l2uvc.c:90 +#: ../gview_v4l2core/v4l2_controls.c:82 msgid "Auto Exposure" msgstr "ĐŃƒŃ‚ĐŸĐŒĐ°Ń‚ŃĐșĐ° Đ”ĐșŃĐżĐŸĐ·ĐžŃ†ĐžŃ˜Đ°" -#: ../src/v4l2uvc.c:91 +#: ../gview_v4l2core/v4l2_controls.c:83 msgid "Exposure Time, Absolute" msgstr "Đ’Ń€Đ”ĐŒĐ” Озлагања, Đ°ĐżŃĐŸĐ»ŃƒŃ‚ĐœĐŸ" -#: ../src/v4l2uvc.c:92 +#: ../gview_v4l2core/v4l2_controls.c:84 msgid "Exposure, Dynamic Framerate" msgstr "Đ˜Đ·Đ»Đ°ĐłĐ°ŃšĐ”, ĐŽĐžĐœĐ°ĐŒĐžŃ‡ĐșĐž ĐżŃ€ĐŸŃ‚ĐŸĐș ĐșаЮра" -#: ../src/v4l2uvc.c:93 +#: ../gview_v4l2core/v4l2_controls.c:85 msgid "Pan, Relative" msgstr "ĐŸŃ€Đ°Ń›Đ”ŃšĐ”, рДлатОĐČĐœĐŸ" -#: ../src/v4l2uvc.c:94 +#: ../gview_v4l2core/v4l2_controls.c:86 msgid "Tilt, Relative" msgstr "ĐĐ°ĐłĐžĐ±Đ°ŃšĐ”, рДлатОĐČĐœĐŸ" -#: ../src/v4l2uvc.c:95 +#: ../gview_v4l2core/v4l2_controls.c:87 msgid "Pan, Reset" msgstr "ĐŸŃ€Đ°Ń›Đ”ŃšĐ”, ĐżĐŸĐœĐŸĐČĐœĐŸ" -#: ../src/v4l2uvc.c:96 +#: ../gview_v4l2core/v4l2_controls.c:88 msgid "Tilt, Reset" msgstr "ĐĐ°ĐłĐžĐ±Đ°ŃšĐ”, ĐżĐŸĐœĐŸĐČĐœĐŸ" -#: ../src/v4l2uvc.c:97 +#: ../gview_v4l2core/v4l2_controls.c:89 msgid "Pan, Absolute" msgstr "ĐŸŃ€Đ°Ń›Đ”ŃšĐ”, Đ°ĐżŃĐŸĐ»ŃƒŃ‚ĐœĐŸ" -#: ../src/v4l2uvc.c:99 +#: ../gview_v4l2core/v4l2_controls.c:91 msgid "Focus, Absolute" msgstr "Đ€ĐŸĐșус, Đ°ĐżŃĐŸĐ»ŃƒŃ‚ĐœĐž" -#: ../src/v4l2uvc.c:100 +#: ../gview_v4l2core/v4l2_controls.c:92 msgid "Focus, Relative" msgstr "Đ€ĐŸĐșус, рДлатОĐČĐœĐž" -#: ../src/v4l2uvc.c:101 +#: ../gview_v4l2core/v4l2_controls.c:93 msgid "Focus, Automatic" msgstr "Đ€ĐŸĐșус, Đ°ŃƒŃ‚ĐŸĐŒĐ°Ń‚ŃĐșĐž" -#: ../src/v4l2uvc.c:102 +#: ../gview_v4l2core/v4l2_controls.c:94 msgid "Zoom, Absolute" msgstr "Đ—ŃƒĐŒ, Đ°ĐżŃĐŸĐ»ŃƒŃ‚ĐœĐž" -#: ../src/v4l2uvc.c:103 +#: ../gview_v4l2core/v4l2_controls.c:95 msgid "Zoom, Relative" msgstr "Đ—ŃƒĐŒ, рДлатОĐČĐœĐž" -#: ../src/v4l2uvc.c:104 +#: ../gview_v4l2core/v4l2_controls.c:96 msgid "Zoom, Continuous" msgstr "Đ—ŃƒĐŒ, ĐœĐ”ĐżŃ€Đ”ĐșĐžĐŽĐœĐž" -#: ../src/v4l2uvc.c:105 +#: ../gview_v4l2core/v4l2_controls.c:97 msgid "Privacy" msgstr "ПроĐČĐ°Ń‚ĐœĐŸŃŃ‚" #. UVC specific control strings -#: ../src/v4l2uvc.c:108 +#: ../gview_v4l2core/v4l2_controls.c:100 msgid "Exposure, Auto" msgstr "Đ˜Đ·Đ»Đ°ĐłĐ°ŃšĐ”, Đ°ŃƒŃ‚ĐŸĐŒĐ°Ń‚ŃĐșĐŸ" -#: ../src/v4l2uvc.c:109 +#: ../gview_v4l2core/v4l2_controls.c:101 msgid "Exposure, Auto Priority" msgstr "Đ˜Đ·Đ»Đ°ĐłĐ°ŃšĐ”, ĐżŃ€ĐžĐŸŃ€ĐžŃ‚Đ”Ń‚ Đ°ŃƒŃ‚ĐŸĐŒĐ°Ń‚ŃĐșĐŸĐł" -#: ../src/v4l2uvc.c:110 +#: ../gview_v4l2core/v4l2_controls.c:102 msgid "Exposure (Absolute)" msgstr "Đ˜Đ·Đ»Đ°ĐłĐ°ŃšĐ” (Đ°ĐżŃĐŸĐ»ŃƒŃ‚ĐœĐŸ)" -#: ../src/v4l2uvc.c:111 +#: ../gview_v4l2core/v4l2_controls.c:103 msgid "White Balance Temperature, Auto" msgstr "ĐąĐ”ĐŒĐżĐ”Ń€Đ°Ń‚ŃƒŃ€Đ° раĐČĐœĐŸŃ‚Đ”Đ¶Đ” Đ±Đ”Đ»ĐŸĐł, Đ°ŃƒŃ‚ĐŸ" -#: ../src/v4l2uvc.c:112 +#: ../gview_v4l2core/v4l2_controls.c:104 msgid "White Balance Temperature" msgstr "ĐąĐ”ĐŒĐżĐ”Ń€Đ°Ń‚ŃƒŃ€Đ° раĐČĐœĐŸŃ‚Đ”Đ¶Đ” Đ±Đ”Đ»ĐŸĐł" -#: ../src/v4l2uvc.c:113 +#: ../gview_v4l2core/v4l2_controls.c:105 msgid "White Balance Component, Auto" msgstr "ĐĄĐ°ŃŃ‚ĐŸŃ˜Đ°Đș раĐČĐœĐŸŃ‚Đ”Đ¶Đ” Đ±Đ”Đ»ĐŸĐł, Đ°ŃƒŃ‚ĐŸ" -#: ../src/v4l2uvc.c:114 +#: ../gview_v4l2core/v4l2_controls.c:106 msgid "White Balance Blue Component" msgstr "ĐŸĐ»Đ°ĐČĐž ŃĐ°ŃŃ‚ĐŸŃ˜Đ°Đș раĐČĐœĐŸŃ‚Đ”Đ¶Đ” Đ±Đ”Đ»ĐŸĐł" -#: ../src/v4l2uvc.c:115 +#: ../gview_v4l2core/v4l2_controls.c:107 msgid "White Balance Red Component" msgstr "ЩрĐČĐ”ĐœĐž ŃĐ°ŃŃ‚ĐŸŃ˜Đ°Đș раĐČĐœĐŸŃ‚Đ”Đ¶Đ” Đ±Đ”Đ»ĐŸĐł" #. libwebcam specific control strings -#: ../src/v4l2uvc.c:118 +#: ../gview_v4l2core/v4l2_controls.c:110 msgid "Focus" msgstr "Đ€ĐŸĐșус" -#: ../src/v4l2uvc.c:119 +#: ../gview_v4l2core/v4l2_controls.c:111 msgid "Focus (Absolute)" msgstr "Đ€ĐŸĐșус (Đ°ĐżŃĐŸĐ»ŃƒŃ‚ĐœĐž)" -#: ../src/vcodecs.c:63 +#: ../gview_v4l2core/v4l2_xu_ctrls.c:63 ../guvcview/gui_gtk3_v4l2ctrls.c:239 +msgid "Off" +msgstr "ИсĐșљ." + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:64 ../guvcview/gui_gtk3_v4l2ctrls.c:239 +msgid "On" +msgstr "ĐŁĐșљ." + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:65 ../guvcview/gui_gtk3_v4l2ctrls.c:239 +msgid "Blinking" +msgstr "йрДпДрДњД" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:66 ../guvcview/gui_gtk3_v4l2ctrls.c:239 +msgid "Auto" +msgstr "ĐĄĐ°ĐŒĐŸŃŃ‚Đ°Đ»ĐœĐŸ" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:73 +msgid "Pan (relative)" +msgstr "ĐŸŃ€Đ°Ń›Đ”ŃšĐ” (рДлатОĐČĐœĐŸ)" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:86 +msgid "Tilt (relative)" +msgstr "ĐĐ°ĐłĐžĐ±Đ°ŃšĐ” (рДлатОĐČĐœĐŸ)" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:99 +msgid "Pan Reset" +msgstr "ĐŸĐŸĐœĐŸĐČĐœĐŸ праћДњД" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:112 +msgid "Tilt Reset" +msgstr "ĐŸĐŸĐœĐŸĐČĐœĐŸ ĐœĐ°ĐłĐžĐ±Đ°ŃšĐ”" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:125 +msgid "Focus (absolute)" +msgstr "Đ€ĐŸĐșус (Đ°ĐżŃĐŸĐ»ŃƒŃ‚ĐœĐž)" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:138 +msgid "LED1 Mode" +msgstr "ЛЕД1 Ń€Đ”Đ¶ĐžĐŒ" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:151 +msgid "LED1 Frequency" +msgstr "ЛЕД1 ŃƒŃ‡Đ”ŃŃ‚Đ°Đ»ĐŸŃŃ‚" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:164 +msgid "Disable video processing" +msgstr "ĐžĐœĐ”ĐŒĐŸĐłŃƒŃ›Đž ĐŸĐ±Ń€Đ°Ń’ĐžĐČањД ĐČОЎДа" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:177 +msgid "Raw bits per pixel" +msgstr "ĐĄĐžŃ€ĐŸĐČох бОта ĐżĐŸ тачцо" + +#: ../gview_encoder/audio_codecs.c:63 +#, fuzzy +msgid "PCM - uncompressed (float 32 bit)" +msgstr "ПЩМ — ĐœĐ”ŃĐ°Đ¶Đ”Ń‚ĐŸ (16 бОта)" + +#: ../gview_encoder/audio_codecs.c:80 +msgid "MP2 (MPEG audio layer 2)" +msgstr "" + +#: ../gview_encoder/audio_codecs.c:97 +msgid "MP3 (MPEG audio layer 3)" +msgstr "" + +#: ../gview_encoder/audio_codecs.c:118 +msgid "AC-3 (ATSC A/52A)" +msgstr "" + +#: ../gview_encoder/audio_codecs.c:139 +msgid "AAC (Advanced Audio Coding)" +msgstr "" + +#: ../gview_encoder/audio_codecs.c:160 +msgid "Vorbis" +msgstr "Đ’ĐŸŃ€Đ±ĐžŃ" + +#: ../gview_encoder/video_codecs.c:75 +#, fuzzy +msgid "Raw camera input" +msgstr "Излаз ĐșĐ°ĐŒĐ”Ń€Đ”:" + +#: ../gview_encoder/video_codecs.c:111 msgid "MJPG - compressed" msgstr "МЈПГ — сажДтО" -#: ../src/vcodecs.c:99 -msgid "YUY2 - uncomp YUV" -msgstr "ЈУЈ2 — ĐœĐ”ŃĐ°Đ¶Đ”Ń‚Đž ЈУВ" - -#: ../src/vcodecs.c:135 -msgid "RGB - uncomp BMP" -msgstr "РГБ — ĐœĐ”ŃĐ°Đ¶Đ”Ń‚Đž БМП" - -#: ../src/vcodecs.c:171 +#: ../gview_encoder/video_codecs.c:147 msgid "MPEG video 1" msgstr "МПЕГ ĐČĐžĐŽĐ”ĐŸ 1" -#: ../src/vcodecs.c:207 +#: ../gview_encoder/video_codecs.c:183 msgid "FLV1 - flash video 1" msgstr "ЀЛВ1 — Ń„Đ»Đ”Ńˆ ĐČĐžĐŽĐ”ĐŸ 1" -#: ../src/vcodecs.c:243 +#: ../gview_encoder/video_codecs.c:219 msgid "WMV1 - win. med. video 7" msgstr "ВМВ1 — ĐČĐžĐœĐŽĐŸŃƒĐ· ĐŒĐ”ĐŽĐžŃ˜Đ° ĐČĐžĐŽĐ”ĐŸ 7" -#: ../src/vcodecs.c:279 +#: ../gview_encoder/video_codecs.c:255 msgid "MPG2 - MPG2 format" msgstr "МПГ2 — МПГ2 Ń„ĐŸŃ€ĐŒĐ°Ń‚" -#: ../src/vcodecs.c:315 +#: ../gview_encoder/video_codecs.c:291 msgid "MS MP4 V3" msgstr "МС МП4 В3" -#: ../src/vcodecs.c:351 +#: ../gview_encoder/video_codecs.c:327 msgid "MPEG4-ASP" msgstr "МПЕГ4-АСП" -#: ../src/vcodecs.c:387 +#: ../gview_encoder/video_codecs.c:363 msgid "MPEG4-AVC (H264)" msgstr "МПЕГ4-АВЩ (Đ„264)" -#: ../src/vcodecs.c:427 +#: ../gview_encoder/video_codecs.c:403 msgid "VP8 (VP8)" msgstr "ВП8 (VP8)" -#: ../src/vcodecs.c:463 +#: ../gview_encoder/video_codecs.c:439 msgid "Theora (ogg theora)" msgstr "ĐąĐ”ĐŸŃ€Đ° (ogg theora)" -#: ../src/video_format.c:43 -msgid "AVI - avi format" -msgstr "АВИ — Đ°ĐČĐž Ń„ĐŸŃ€ĐŒĐ°Ń‚" +#: ../guvcview/gui_gtk3_audioctrls.c:95 +msgid "Audio API:" +msgstr "ĐŃƒĐŽĐžĐŸ АПИ:" -#: ../src/video_format.c:52 -msgid "MKV - Matroska format" -msgstr "МКВ — ĐœĐ°Ń‚Ń€ĐŸŃˆĐșĐ° Ń„ĐŸŃ€ĐŒĐ°Ń‚" - -#: ../src/video_format.c:61 -msgid "WEBM - format" -msgstr "ВЕБМ — запОс" +#: ../guvcview/gui_gtk3_audioctrls.c:106 +msgid "NO SOUND" +msgstr "" -#: ../src/video_tab.c:216 -msgid "Frame Rate:" -msgstr "ĐŸŃ€ĐŸŃ‚ĐŸĐș ĐșаЮра:" +#: ../guvcview/gui_gtk3_audioctrls.c:107 +msgid "PORTAUDIO" +msgstr "ПОРбАУДИО" + +#: ../guvcview/gui_gtk3_audioctrls.c:110 +msgid "PULSEAUDIO" +msgstr "ПУЛСЕАУДИО" -#: ../src/video_tab.c:223 -msgid " Show" -msgstr " ПроĐșажО" +#: ../guvcview/gui_gtk3_audioctrls.c:127 +msgid "Input Device:" +msgstr "ĐŁĐ»Đ°Đ·ĐœĐž ŃƒŃ€Đ”Ń’Đ°Ń˜:" -#: ../src/video_tab.c:245 -msgid "Resolution:" -msgstr "Đ Đ”Đ·ĐŸĐ»ŃƒŃ†ĐžŃ˜Đ°:" +#: ../guvcview/gui_gtk3_audioctrls.c:161 +msgid "Sample Rate:" +msgstr "ĐŸŃ€ĐŸŃ‚ĐŸĐș ŃƒĐ·ĐŸŃ€ĐșĐ°:" + +#: ../guvcview/gui_gtk3_audioctrls.c:168 ../guvcview/gui_gtk3_audioctrls.c:214 +msgid "Dev. Default" +msgstr "ĐžŃĐœĐŸĐČĐœĐž са ŃƒŃ€Đ”Ń’Đ°Ń˜Đ°" + +#: ../guvcview/gui_gtk3_audioctrls.c:207 +msgid "Channels:" +msgstr "Đ‘Ń€ĐŸŃ˜ ĐșĐ°ĐœĐ°Đ»Đ°:" + +#: ../guvcview/gui_gtk3_audioctrls.c:215 +msgid "1 - mono" +msgstr "1 — ĐŒĐŸĐœĐŸ" + +#: ../guvcview/gui_gtk3_audioctrls.c:216 +msgid "2 - stereo" +msgstr "2 — ŃŃ‚Đ”Ń€Đ”ĐŸ" + +#: ../guvcview/gui_gtk3_audioctrls.c:235 +#, fuzzy +msgid "---- Audio Filters ----" +msgstr "———— Đ’ĐžĐŽĐ”ĐŸ фОлтДрО ————" + +#. Echo FX +#: ../guvcview/gui_gtk3_audioctrls.c:255 +msgid " Echo" +msgstr " Đ•Ń…ĐŸ" + +#. Reverb FX +#: ../guvcview/gui_gtk3_audioctrls.c:268 +msgid " Reverb" +msgstr " ĐžĐŽŃ˜Đ”Đș" + +#. Fuzz FX +#: ../guvcview/gui_gtk3_audioctrls.c:281 +msgid " Fuzz" +msgstr " Маљ" + +#. WahWah FX +#: ../guvcview/gui_gtk3_audioctrls.c:294 +msgid " WahWah" +msgstr " ВауВау" + +#. Ducky FX +#: ../guvcview/gui_gtk3_audioctrls.c:307 +msgid " Ducky" +msgstr " ĐŸĐ°Ń‡Đ”" + +#: ../guvcview/gui_gtk3.c:310 ../guvcview/gui_gtk3_callbacks.c:749 +msgid "Stop Video (V)" +msgstr "ЗаустаĐČĐž ĐČĐžĐŽĐ”ĐŸ (V)" + +#. video button +#: ../guvcview/gui_gtk3.c:315 ../guvcview/gui_gtk3.c:600 +#: ../guvcview/gui_gtk3_callbacks.c:755 +msgid "Cap. Video (V)" +msgstr "ĐĄĐœĐžĐŒĐž ĐČĐžĐŽĐ”ĐŸ (V)" + +#: ../guvcview/gui_gtk3.c:376 ../guvcview/gui_gtk3.c:383 +msgid "Error" +msgstr "Đ“Ń€Đ”ŃˆĐșĐ°" + +#: ../guvcview/gui_gtk3.c:379 ../guvcview/gui_gtk3.c:386 +#: ../guvcview/gui_gtk3_callbacks.c:2097 +msgid "_Ok" +msgstr "" + +#: ../guvcview/gui_gtk3.c:380 ../guvcview/gui_gtk3_callbacks.c:185 +#: ../guvcview/gui_gtk3_callbacks.c:199 ../guvcview/gui_gtk3_callbacks.c:522 +#: ../guvcview/gui_gtk3_callbacks.c:624 ../guvcview/gui_gtk3_callbacks.c:1755 +#: ../guvcview/gui_gtk3_callbacks.c:2098 +#, fuzzy +msgid "_Cancel" +msgstr "ĐŸŃ‚ĐșажО" + +#: ../guvcview/gui_gtk3.c:407 +msgid "" +"\n" +"You have more than one video device installed.\n" +"Do you want to try another one ?\n" +msgstr "" +"\n" +"Đ˜ĐŒĐ°Ń‚Đ” ĐœĐ”ĐșĐŸĐ»ĐžĐșĐŸ ĐČĐžĐŽĐ”ĐŸ ŃƒŃ€Đ”Ń’Đ°Ń˜Đ° ĐžĐœŃŃ‚Đ°Đ»ĐžŃ€Đ°ĐœĐ°.\n" +"ЖДлОтД лО ĐŽĐ° ĐżŃ€ĐŸĐ±Đ°Ń‚Đ” ĐœĐ”ĐșĐž Юруго ?\n" + +#. ---- Devices ---- +#: ../guvcview/gui_gtk3.c:414 ../guvcview/gui_gtk3_videoctrls.c:106 +msgid "Device:" +msgstr "ĐŁŃ€Đ”Ń’Đ°Ń˜:" + +#: ../guvcview/gui_gtk3.c:516 +msgid "Guvcview Video Capture" +msgstr "ĐšĐ°ĐŒĐ”Ń€ĐžŃ†Đ° — ĐČĐžĐŽĐ”ĐŸ ŃĐœĐžĐŒĐ°ŃšĐ”" + +#: ../guvcview/gui_gtk3.c:525 +#, fuzzy +msgid "Guvcview" +msgstr "ĐšĐ°ĐŒĐ”Ń€ĐžŃ†Đ°" + +#: ../guvcview/gui_gtk3.c:572 +#, fuzzy +msgid "Stop Cap. (I)" +msgstr "ЗаустаĐČĐž Đ°ŃƒŃ‚ĐŸĐŒĐ°Ń‚ĐžĐș (I)" + +#: ../guvcview/gui_gtk3.c:578 ../guvcview/gui_gtk3_callbacks.c:720 +#: ../guvcview/video_capture.c:250 +msgid "Cap. Image (I)" +msgstr "ĐĄĐœĐžĐŒĐž слОĐșу (I)" + +#. quit button +#. GtkWidget *quitButton = gtk_button_new_from_stock(GTK_STOCK_QUIT); +#: ../guvcview/gui_gtk3.c:621 +msgid "_Quit" +msgstr "" + +#: ../guvcview/gui_gtk3.c:667 +msgid "Image Controls" +msgstr "ĐšĐŸĐœŃ‚Ń€ĐŸĐ»Đ” слОĐșĐ”" + +#: ../guvcview/gui_gtk3.c:703 +#, fuzzy +msgid "H264 Controls" +msgstr "ĐšĐŸĐœŃ‚Ń€ĐŸĐ»Đ” ĐșĐŸŃ€ĐžŃĐœĐžĐșĐ°" + +#: ../guvcview/gui_gtk3.c:742 +#, fuzzy +msgid "Video Controls" +msgstr "ĐšĐŸĐœŃ‚Ń€ĐŸĐ»Đ” ĐșĐŸŃ€ĐžŃĐœĐžĐșĐ°" + +#: ../guvcview/gui_gtk3.c:777 +#, fuzzy +msgid "Audio Controls" +msgstr "ĐšĐŸĐœŃ‚Ń€ĐŸĐ»Đ” ĐșĐŸŃ€ĐžŃĐœĐžĐșĐ°" + +#: ../guvcview/gui_gtk3_callbacks.c:182 ../guvcview/gui_gtk3_menu.c:72 +msgid "Save Profile" +msgstr "СачуĐČај ĐżŃ€ĐŸŃ„ĐžĐ»" + +#: ../guvcview/gui_gtk3_callbacks.c:186 ../guvcview/gui_gtk3_callbacks.c:523 +#: ../guvcview/gui_gtk3_callbacks.c:625 +msgid "_Save" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:196 ../guvcview/gui_gtk3_menu.c:71 +msgid "Load Profile" +msgstr "Учотај ĐżŃ€ĐŸŃ„ĐžĐ»" + +#: ../guvcview/gui_gtk3_callbacks.c:200 +msgid "_Open" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:208 ../guvcview/gui_gtk3_callbacks.c:531 +#: ../guvcview/gui_gtk3_callbacks.c:634 +msgid "File Format:" +msgstr "Запос ĐŽĐ°Ń‚ĐŸŃ‚Đ”ĐșĐ”:" + +#: ../guvcview/gui_gtk3_callbacks.c:220 +msgid "gpfl (*.gpfl)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:221 +msgid "any (*.*)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:519 +#, fuzzy +msgid "Photo file name" +msgstr "ĐĐ°Đ·ĐžĐČ ĐŽĐ°Ń‚ĐŸŃ‚Đ”ĐșĐ” слОĐșĐ”" + +#: ../guvcview/gui_gtk3_callbacks.c:543 +#, fuzzy +msgid "Raw (*.raw)" +msgstr "ĐĄĐžŃ€ĐŸĐČĐ° слОĐșĐ° (raw)" + +#: ../guvcview/gui_gtk3_callbacks.c:544 +#, fuzzy +msgid "Jpeg (*.jpg)" +msgstr "ЈпДг (jpg)" + +#: ../guvcview/gui_gtk3_callbacks.c:545 +msgid "Png (*.png)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:546 +msgid "Bmp (*.bmp)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:621 +#, fuzzy +msgid "Video file name" +msgstr "ĐĐ°Đ·ĐžĐČ ĐŽĐ°Ń‚ĐŸŃ‚Đ”ĐșĐ” слОĐșĐ”" + +#: ../guvcview/gui_gtk3_callbacks.c:646 +msgid "Matroska (*.mkv)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:647 +msgid "WebM (*.webm)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:648 +msgid "Avi (*.avi)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:1158 +msgid "start new" +msgstr "ĐżĐŸĐșŃ€Đ”ĐœĐž ĐœĐŸĐČĐž" + +#: ../guvcview/gui_gtk3_callbacks.c:1161 +msgid "restart" +msgstr "ĐżĐŸĐœĐŸĐČĐŸ ĐżĐŸĐșŃ€Đ”ĐœĐž" + +#: ../guvcview/gui_gtk3_callbacks.c:1163 +msgid "new" +msgstr "ĐœĐŸĐČĐž" + +#: ../guvcview/gui_gtk3_callbacks.c:1165 +msgid "cancel" +msgstr "ĐŸŃ‚ĐșажО" + +#: ../guvcview/gui_gtk3_callbacks.c:1170 +msgid "" +"launch new process or restart?.\n" +"\n" +msgstr "" +"ĐŽĐ° ĐżĐŸĐșŃ€Đ”ĐœĐ”ĐŒ ĐœĐŸĐČĐž ĐżŃ€ĐŸŃ†Đ”Ń ОлО ĐŽĐ° сД ĐżĐŸĐœĐŸĐČĐŸ ĐżĐŸĐșŃ€Đ”ĐœĐ”ĐŒ?.\n" +"\n" + +#: ../guvcview/gui_gtk3_callbacks.c:1751 +#, fuzzy +msgid "video codec values" +msgstr "ĐČŃ€Đ”ĐŽĐœĐŸŃŃ‚ ĐșĐŸĐŽĐ”ĐșĐ° Đ·ĐČуĐșĐ°" + +#: ../guvcview/gui_gtk3_callbacks.c:1754 +msgid "_OK" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:1760 +msgid "" +" encoder fps: \n" +" (0 - use fps combobox value)" +msgstr "" +" ф/с Đ”ĐœĐșĐŸĐŽĐ”Ń€Đ°: \n" +" (0 — ĐșĐŸŃ€ĐžŃŃ‚ĐžŃ‚Đ” ĐČŃ€Đ”ĐŽĐœĐŸŃŃ‚ ф/с ĐżĐŸŃ™Đ° Đ·Đ° бОрањД)" + +#: ../guvcview/gui_gtk3_callbacks.c:1773 +msgid " monotonic pts" +msgstr " Ń˜Đ”ĐŽĐœĐŸĐŸĐ±Ń€Đ°Đ·ĐœĐ” тачĐșĐ”" + +#. bit rate +#: ../guvcview/gui_gtk3_callbacks.c:1780 ../guvcview/gui_gtk3_callbacks.c:2105 +msgid "bit rate: " +msgstr "ĐżŃ€ĐŸŃ‚ĐŸĐș бОта: " + +#: ../guvcview/gui_gtk3_callbacks.c:1793 +msgid "qmax: " +msgstr "qmax: " + +#: ../guvcview/gui_gtk3_callbacks.c:1806 +msgid "qmin: " +msgstr "qmin: " + +#: ../guvcview/gui_gtk3_callbacks.c:1819 +msgid "max. qdiff: " +msgstr "max. q разл: " + +#: ../guvcview/gui_gtk3_callbacks.c:1832 +msgid "dia size: " +msgstr "ЎОа ĐČĐ”Đ»ĐžŃ‡ĐžĐœĐ°: " + +#: ../guvcview/gui_gtk3_callbacks.c:1845 +msgid "pre dia size: " +msgstr "прД ЎОа ĐČĐ”Đ»ĐžŃ‡ĐžĐœĐ°: " + +#: ../guvcview/gui_gtk3_callbacks.c:1858 +msgid "pre me: " +msgstr "прД ĐŒĐ”: " + +#: ../guvcview/gui_gtk3_callbacks.c:1871 +msgid "pre cmp: " +msgstr "прД Ń†ĐŒĐż: " + +#: ../guvcview/gui_gtk3_callbacks.c:1884 +msgid "cmp: " +msgstr "Ń†ĐŒĐż: " + +#: ../guvcview/gui_gtk3_callbacks.c:1897 +msgid "sub cmp: " +msgstr "ĐżĐŸĐŽ Ń†ĐŒĐż: " + +#: ../guvcview/gui_gtk3_callbacks.c:1910 +msgid "last predictor count: " +msgstr "ĐżĐŸŃĐ»Đ”ĐŽŃšĐž Đ±Ń€ĐŸŃ˜ прДЎсĐșĐ°Đ·ĐžĐČача: " -#: ../src/video_tab.c:271 -msgid "Camera Output:" -msgstr "Излаз ĐșĐ°ĐŒĐ”Ń€Đ”:" +#: ../guvcview/gui_gtk3_callbacks.c:1923 +msgid "gop size: " +msgstr "ĐłĐŸĐż ĐČĐ”Đ»ĐžŃ‡ĐžĐœĐ°: " -#: ../src/video_tab.c:293 -msgid "Apply" -msgstr "ĐŸŃ€ĐžĐŒĐ”ĐœĐž" +#: ../guvcview/gui_gtk3_callbacks.c:1936 +msgid "qcompress: " +msgstr "q-ŃĐ°Đ¶ĐžĐŒĐ°ŃšĐ”: " -#: ../src/video_tab.c:300 -msgid "Quality:" -msgstr "КĐČалОтДт:" +#: ../guvcview/gui_gtk3_callbacks.c:1949 +msgid "qblur: " +msgstr "q-Đ·Đ°ĐŒŃƒŃ›Đ”ŃšĐ”: " -#: ../src/video_tab.c:310 -msgid "---- Video Filters ----" -msgstr "———— Đ’ĐžĐŽĐ”ĐŸ фОлтДрО ————" +#: ../guvcview/gui_gtk3_callbacks.c:1962 +msgid "subq: " +msgstr "ĐżĐŸĐŽ-q: " -#. Mirror -#: ../src/video_tab.c:329 -msgid " Mirror" -msgstr " ĐžĐłĐ»Đ”ĐŽĐ°Đ»ĐŸ" +#: ../guvcview/gui_gtk3_callbacks.c:1975 +msgid "framerefs: " +msgstr "framerefs: " -#. Upturn -#: ../src/video_tab.c:340 -msgid " Invert" -msgstr " ĐžĐ±Ń€ĐœŃƒŃ‚ĐŸ" +#: ../guvcview/gui_gtk3_callbacks.c:1988 +msgid "me method: " +msgstr "ĐŒĐ” ĐœĐ°Ń‡ĐžĐœ: " -#. Negate -#: ../src/video_tab.c:351 -msgid " Negative" -msgstr " ĐĐ”ĐłĐ°Ń‚ĐžĐČ" +#: ../guvcview/gui_gtk3_callbacks.c:2001 +msgid "mb decision: " +msgstr "ĐŒĐ± ĐŸĐŽĐ»ŃƒĐșĐ°: " -#. Mono -#: ../src/video_tab.c:362 -msgid " Mono" -msgstr " ĐœĐŸĐœĐŸ" +#: ../guvcview/gui_gtk3_callbacks.c:2014 +msgid "max B frames: " +msgstr "ĐœĐ°Ń˜ĐČОшД Б ĐŸĐșĐČора: " -#. Pieces -#: ../src/video_tab.c:374 -msgid " Pieces" -msgstr " ĐšĐŸĐŒĐ°ĐŽĐžŃ›Đž" +#: ../guvcview/gui_gtk3_callbacks.c:2027 +msgid "num threads: " +msgstr "бр. ĐœĐžŃ‚Đž: " -#. Particles -#: ../src/video_tab.c:386 -msgid " Particles" -msgstr " ЧДстОцД" +#: ../guvcview/gui_gtk3_callbacks.c:2094 +msgid "audio codec values" +msgstr "ĐČŃ€Đ”ĐŽĐœĐŸŃŃ‚ ĐșĐŸĐŽĐ”ĐșĐ° Đ·ĐČуĐșĐ°" -#: ../src/uvc_h264.c:596 -msgid "H264 Controls" -msgstr "" +#. sample format +#: ../guvcview/gui_gtk3_callbacks.c:2119 +msgid "sample format: " +msgstr "запОс ŃƒĐ·ĐŸŃ€ĐșĐ°: " -#: ../src/uvc_h264.c:615 +#: ../guvcview/gui_gtk3_h264ctrls.c:622 +#, fuzzy msgid "Rate Control Mode:" -msgstr "" +msgstr "ĐšĐŸĐœŃ‚Ń€ĐŸĐ»Đ” слОĐșĐ”" -#: ../src/uvc_h264.c:626 +#: ../guvcview/gui_gtk3_h264ctrls.c:633 msgid "CBR" msgstr "" -#: ../src/uvc_h264.c:629 +#: ../guvcview/gui_gtk3_h264ctrls.c:636 msgid "VBR" msgstr "" -#: ../src/uvc_h264.c:633 +#: ../guvcview/gui_gtk3_h264ctrls.c:640 msgid "Constant QP" msgstr "" -#: ../src/uvc_h264.c:651 +#: ../guvcview/gui_gtk3_h264ctrls.c:658 msgid "Rate Control Mode flags:" msgstr "" -#: ../src/uvc_h264.c:676 +#: ../guvcview/gui_gtk3_h264ctrls.c:683 msgid "Temporal Scale Mode:" msgstr "" -#: ../src/uvc_h264.c:704 +#: ../guvcview/gui_gtk3_h264ctrls.c:711 msgid "Spatial Scale Mode:" msgstr "" -#: ../src/uvc_h264.c:737 +#: ../guvcview/gui_gtk3_h264ctrls.c:741 msgid "Frame Interval (100ns units):" msgstr "" -#: ../src/uvc_h264.c:772 +#: ../guvcview/gui_gtk3_h264ctrls.c:778 +#, fuzzy msgid "Bit Rate:" -msgstr "" +msgstr "ĐżŃ€ĐŸŃ‚ĐŸĐș бОта: " -#: ../src/uvc_h264.c:795 +#: ../guvcview/gui_gtk3_h264ctrls.c:801 msgid "Hints:" msgstr "" -#: ../src/uvc_h264.c:800 +#: ../guvcview/gui_gtk3_h264ctrls.c:806 +#, fuzzy msgid "Resolution" -msgstr "" +msgstr "Đ Đ”Đ·ĐŸĐ»ŃƒŃ†ĐžŃ˜Đ°:" -#: ../src/uvc_h264.c:804 +#: ../guvcview/gui_gtk3_h264ctrls.c:810 +#, fuzzy msgid "Profile" -msgstr "" +msgstr "СачуĐČај ĐżŃ€ĐŸŃ„ĐžĐ»" -#: ../src/uvc_h264.c:808 +#: ../guvcview/gui_gtk3_h264ctrls.c:814 +#, fuzzy msgid "Rate Control" -msgstr "" +msgstr "ĐšĐŸĐœŃ‚Ń€ĐŸĐ»Đ” слОĐșĐ”" -#: ../src/uvc_h264.c:812 +#: ../guvcview/gui_gtk3_h264ctrls.c:818 msgid "Usage Type" msgstr "" -#: ../src/uvc_h264.c:816 +#: ../guvcview/gui_gtk3_h264ctrls.c:822 msgid "Slice Mode" msgstr "" -#: ../src/uvc_h264.c:820 +#: ../guvcview/gui_gtk3_h264ctrls.c:826 msgid "Slice Unit" msgstr "" -#: ../src/uvc_h264.c:824 +#: ../guvcview/gui_gtk3_h264ctrls.c:830 msgid "MVC View" msgstr "" -#: ../src/uvc_h264.c:828 +#: ../guvcview/gui_gtk3_h264ctrls.c:834 msgid "Temporal Scale" msgstr "" -#: ../src/uvc_h264.c:832 +#: ../guvcview/gui_gtk3_h264ctrls.c:838 msgid "SNR Scale" msgstr "" -#: ../src/uvc_h264.c:836 +#: ../guvcview/gui_gtk3_h264ctrls.c:842 msgid "Spatial Scale" msgstr "" -#: ../src/uvc_h264.c:840 +#: ../guvcview/gui_gtk3_h264ctrls.c:846 msgid "Spatial Layer Ratio" msgstr "" -#: ../src/uvc_h264.c:844 +#: ../guvcview/gui_gtk3_h264ctrls.c:850 +#, fuzzy msgid "Frame Interval" -msgstr "" +msgstr "ĐŸŃ€ĐŸŃ‚ĐŸĐș ĐșаЮра:" -#: ../src/uvc_h264.c:848 +#: ../guvcview/gui_gtk3_h264ctrls.c:854 msgid "Leaky Bucket Size" msgstr "" -#: ../src/uvc_h264.c:852 +#: ../guvcview/gui_gtk3_h264ctrls.c:858 msgid "Bit Rate" msgstr "" -#: ../src/uvc_h264.c:856 ../src/uvc_h264.c:1250 +#: ../guvcview/gui_gtk3_h264ctrls.c:862 ../guvcview/gui_gtk3_h264ctrls.c:1220 msgid "CABAC" msgstr "" -#: ../src/uvc_h264.c:860 +#: ../guvcview/gui_gtk3_h264ctrls.c:866 msgid "(I) Frame Period" msgstr "" -#: ../src/uvc_h264.c:907 +#: ../guvcview/gui_gtk3_h264ctrls.c:878 msgid "Slice Mode:" msgstr "" -#: ../src/uvc_h264.c:914 +#: ../guvcview/gui_gtk3_h264ctrls.c:885 msgid "no multiple slices" msgstr "" -#: ../src/uvc_h264.c:916 +#: ../guvcview/gui_gtk3_h264ctrls.c:887 msgid "bits/slice" msgstr "" -#: ../src/uvc_h264.c:918 +#: ../guvcview/gui_gtk3_h264ctrls.c:889 msgid "Mbits/slice" msgstr "" -#: ../src/uvc_h264.c:920 +#: ../guvcview/gui_gtk3_h264ctrls.c:891 msgid "slices/frame" msgstr "" -#: ../src/uvc_h264.c:929 +#: ../guvcview/gui_gtk3_h264ctrls.c:900 msgid "Slice Units:" msgstr "" -#: ../src/uvc_h264.c:950 +#: ../guvcview/gui_gtk3_h264ctrls.c:921 +#, fuzzy msgid "Profile:" -msgstr "" +msgstr "СачуĐČај ĐżŃ€ĐŸŃ„ĐžĐ»" -#: ../src/uvc_h264.c:957 +#: ../guvcview/gui_gtk3_h264ctrls.c:928 +#, fuzzy msgid "Baseline Profile" -msgstr "" +msgstr "СачуĐČај ĐżŃ€ĐŸŃ„ĐžĐ»" -#: ../src/uvc_h264.c:959 +#: ../guvcview/gui_gtk3_h264ctrls.c:930 +#, fuzzy msgid "Main Profile" -msgstr "" +msgstr "СачуĐČај ĐżŃ€ĐŸŃ„ĐžĐ»" -#: ../src/uvc_h264.c:961 +#: ../guvcview/gui_gtk3_h264ctrls.c:932 +#, fuzzy msgid "High Profile" -msgstr "" +msgstr "СачуĐČај ĐżŃ€ĐŸŃ„ĐžĐ»" -#: ../src/uvc_h264.c:963 +#: ../guvcview/gui_gtk3_h264ctrls.c:934 msgid "Scalable Baseline Profile" msgstr "" -#: ../src/uvc_h264.c:965 +#: ../guvcview/gui_gtk3_h264ctrls.c:936 +#, fuzzy msgid "Scalable High Profile" -msgstr "" +msgstr "СачуĐČај ĐżŃ€ĐŸŃ„ĐžĐ»" -#: ../src/uvc_h264.c:967 +#: ../guvcview/gui_gtk3_h264ctrls.c:938 msgid "Multiview High Profile" msgstr "" -#: ../src/uvc_h264.c:969 +#: ../guvcview/gui_gtk3_h264ctrls.c:940 +#, fuzzy msgid "Stereo High Profile" -msgstr "" +msgstr "СачуĐČај ĐżŃ€ĐŸŃ„ĐžĐ»" -#: ../src/uvc_h264.c:1008 +#: ../guvcview/gui_gtk3_h264ctrls.c:979 msgid "Profile flags:" msgstr "" -#: ../src/uvc_h264.c:1033 +#: ../guvcview/gui_gtk3_h264ctrls.c:1004 msgid "(I) Frame Period (ms):" msgstr "" -#: ../src/uvc_h264.c:1054 +#: ../guvcview/gui_gtk3_h264ctrls.c:1025 msgid "Estimated Video Delay (ms):" msgstr "" -#: ../src/uvc_h264.c:1075 +#: ../guvcview/gui_gtk3_h264ctrls.c:1046 msgid "Estimated Max Config Delay (ms):" msgstr "" -#: ../src/uvc_h264.c:1096 +#: ../guvcview/gui_gtk3_h264ctrls.c:1067 msgid "Usage Type:" msgstr "" -#: ../src/uvc_h264.c:1103 +#: ../guvcview/gui_gtk3_h264ctrls.c:1074 msgid "Real-time" msgstr "" -#: ../src/uvc_h264.c:1105 +#: ../guvcview/gui_gtk3_h264ctrls.c:1076 msgid "Broadcast" msgstr "" -#: ../src/uvc_h264.c:1107 +#: ../guvcview/gui_gtk3_h264ctrls.c:1078 msgid "Storage" msgstr "" -#: ../src/uvc_h264.c:1109 +#: ../guvcview/gui_gtk3_h264ctrls.c:1080 msgid "(0) Non-scalable single layer AVC" msgstr "" -#: ../src/uvc_h264.c:1111 +#: ../guvcview/gui_gtk3_h264ctrls.c:1082 msgid "(1) SVC temporal scalability with hierarchical P" msgstr "" -#: ../src/uvc_h264.c:1113 +#: ../guvcview/gui_gtk3_h264ctrls.c:1084 msgid "(2q) SVC temporal scalability + Quality/SNR scalability" msgstr "" -#: ../src/uvc_h264.c:1115 +#: ../guvcview/gui_gtk3_h264ctrls.c:1086 msgid "(2s) SVC temporal scalability + spatial scalability" msgstr "" -#: ../src/uvc_h264.c:1117 +#: ../guvcview/gui_gtk3_h264ctrls.c:1088 msgid "(3) Full SVC scalability" msgstr "" -#: ../src/uvc_h264.c:1131 +#: ../guvcview/gui_gtk3_h264ctrls.c:1102 msgid "SNR Control Mode:" msgstr "" -#: ../src/uvc_h264.c:1138 +#: ../guvcview/gui_gtk3_h264ctrls.c:1109 msgid "No SNR Enhancement Layer" msgstr "" -#: ../src/uvc_h264.c:1140 +#: ../guvcview/gui_gtk3_h264ctrls.c:1111 msgid "CGS NonRewrite (2 Layer)" msgstr "" -#: ../src/uvc_h264.c:1142 +#: ../guvcview/gui_gtk3_h264ctrls.c:1113 msgid "CGS NonRewrite (3 Layer)" msgstr "" -#: ../src/uvc_h264.c:1144 +#: ../guvcview/gui_gtk3_h264ctrls.c:1115 msgid "CGS Rewrite (2 Layer)" msgstr "" -#: ../src/uvc_h264.c:1146 +#: ../guvcview/gui_gtk3_h264ctrls.c:1117 msgid "CGS Rewrite (3 Layer)" msgstr "" -#: ../src/uvc_h264.c:1148 +#: ../guvcview/gui_gtk3_h264ctrls.c:1119 msgid "MGS (2 Layer)" msgstr "" -#: ../src/uvc_h264.c:1173 +#: ../guvcview/gui_gtk3_h264ctrls.c:1144 msgid "Stream Mux Enable" msgstr "" -#: ../src/uvc_h264.c:1180 +#: ../guvcview/gui_gtk3_h264ctrls.c:1151 msgid "Embed H.264 aux stream" msgstr "" -#: ../src/uvc_h264.c:1182 +#: ../guvcview/gui_gtk3_h264ctrls.c:1153 msgid "Embed YUY2 aux stream" msgstr "" -#: ../src/uvc_h264.c:1184 +#: ../guvcview/gui_gtk3_h264ctrls.c:1155 msgid "Embed NV12 aux stream" msgstr "" -#: ../src/uvc_h264.c:1204 +#: ../guvcview/gui_gtk3_h264ctrls.c:1175 msgid "MJPG payload container" msgstr "" -#: ../src/uvc_h264.c:1219 +#: ../guvcview/gui_gtk3_h264ctrls.c:1189 +#, fuzzy msgid "Stream Format:" -msgstr "" +msgstr "Запос ĐŽĐ°Ń‚ĐŸŃ‚Đ”ĐșĐ”:" -#: ../src/uvc_h264.c:1227 +#: ../guvcview/gui_gtk3_h264ctrls.c:1197 msgid "Byte stream format (H.264 Annex-B)" msgstr "" -#: ../src/uvc_h264.c:1229 +#: ../guvcview/gui_gtk3_h264ctrls.c:1199 +#, fuzzy msgid "NAL stream format" -msgstr "" +msgstr "АВИ — Đ°ĐČĐž Ń„ĐŸŃ€ĐŒĐ°Ń‚" -#: ../src/uvc_h264.c:1240 +#: ../guvcview/gui_gtk3_h264ctrls.c:1210 msgid "Entropy CABAC:" msgstr "" -#: ../src/uvc_h264.c:1248 +#: ../guvcview/gui_gtk3_h264ctrls.c:1218 msgid "CAVLC" msgstr "" -#: ../src/uvc_h264.c:1261 +#: ../guvcview/gui_gtk3_h264ctrls.c:1231 msgid "Picture timing SEI" msgstr "" -#: ../src/uvc_h264.c:1268 +#: ../guvcview/gui_gtk3_h264ctrls.c:1238 +#, fuzzy msgid "B Frames:" -msgstr "" +msgstr "ĐœĐ°Ń˜ĐČОшД Б ĐŸĐșĐČора: " -#: ../src/uvc_h264.c:1293 +#: ../guvcview/gui_gtk3_h264ctrls.c:1263 msgid "Preview Flipped" msgstr "" -#: ../src/uvc_h264.c:1300 +#: ../guvcview/gui_gtk3_h264ctrls.c:1270 msgid "Additional MVC Views:" msgstr "" -#: ../src/uvc_h264.c:1325 +#: ../guvcview/gui_gtk3_h264ctrls.c:1295 msgid "Simulcast stream index:" msgstr "" -#: ../src/uvc_h264.c:1350 +#: ../guvcview/gui_gtk3_h264ctrls.c:1320 msgid "Spatial Layer Ratio:" msgstr "" -#: ../src/uvc_h264.c:1379 +#: ../guvcview/gui_gtk3_h264ctrls.c:1349 msgid "Leaky Bucket Size (ms):" msgstr "" #. encoder reset -#: ../src/uvc_h264.c:1406 +#: ../guvcview/gui_gtk3_h264ctrls.c:1376 +#, fuzzy msgid "Encoder Reset" -msgstr "" +msgstr "ĐŸĐŸĐœĐŸĐČĐœĐŸ праћДњД" -#. -#. h264_controls->probe_button = gtk_button_new_with_label(_("PROBE")); -#. g_signal_connect (GTK_BUTTON(h264_controls->probe_button), "clicked", +#. +#. GtkWidget *probe_button = gtk_button_new_with_label(_("PROBE")); +#. g_signal_connect (GTK_BUTTON(probe_button), "clicked", #. G_CALLBACK (h264_probe_button_clicked), all_data); -#. -#. gtk_grid_attach (GTK_GRID(table), h264_controls->probe_button, 0, line, 1 ,1); -#. gtk_widget_show(h264_controls->probe_button); -#. -#: ../src/uvc_h264.c:1421 +#. +#. gtk_grid_attach (GTK_GRID(h264_controls_grid), probe_button, 0, line, 1 ,1); +#. gtk_widget_show(probe_button); +#. +#: ../guvcview/gui_gtk3_h264ctrls.c:1391 msgid "COMMIT" msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:70 +msgid "Settings" +msgstr "ĐŸĐŸĐŽĐ”ŃˆĐ°ĐČања" + +#: ../guvcview/gui_gtk3_menu.c:73 +msgid "Hardware Defaults" +msgstr "ĐžŃĐœĐŸĐČĐœĐŸ са ŃƒŃ€Đ”Ń’Đ°Ń˜Đ°" + +#: ../guvcview/gui_gtk3_menu.c:81 +msgid "Camera Button" +msgstr "Đ”ŃƒĐłĐŒĐ” Ń„ĐŸŃ‚ĐŸ-апарата" + +#: ../guvcview/gui_gtk3_menu.c:86 +msgid "Capture Image" +msgstr "ĐĄĐœĐžĐŒĐž слОĐșу" + +#: ../guvcview/gui_gtk3_menu.c:91 +msgid "Capture Video" +msgstr "ĐĄĐœĐžĐŒĐž ĐČĐžĐŽĐ”ĐŸ" + +#: ../guvcview/gui_gtk3_menu.c:134 +msgid "Photo" +msgstr "Đ€ĐŸŃ‚ĐŸĐłŃ€Đ°Ń„ĐžŃ˜Đ°" + +#: ../guvcview/gui_gtk3_menu.c:135 ../guvcview/gui_gtk3_menu.c:159 +msgid "File" +msgstr "Đ”Đ°Ń‚ĐŸŃ‚Đ”ĐșĐ°" + +#: ../guvcview/gui_gtk3_menu.c:136 ../guvcview/gui_gtk3_menu.c:160 +msgid "Increment Filename" +msgstr "ĐĐ°Đ·ĐžĐČ ĐŽĐ°Ń‚ĐŸŃ‚Đ”ĐșĐ” уĐČДћања" + +#: ../guvcview/gui_gtk3_menu.c:158 +msgid "Video" +msgstr "Đ’ĐžĐŽĐ”ĐŸ" + +#: ../guvcview/gui_gtk3_menu.c:175 +msgid "Video Codec" +msgstr "Đ’ĐžĐŽĐ”ĐŸ ĐșĐŸĐŽĐ”Đș" + +#: ../guvcview/gui_gtk3_menu.c:202 +msgid "Video Codec Properties" +msgstr "ĐĄĐČĐŸŃ˜ŃŃ‚ĐČĐ° ĐČĐžĐŽĐ”ĐŸ ĐșĐŸĐŽĐ”ĐșĐ°" + +#: ../guvcview/gui_gtk3_menu.c:208 +msgid "Audio Codec" +msgstr "ĐŃƒĐŽĐžĐŸ ĐșĐŸĐŽĐ”Đș" + +#: ../guvcview/gui_gtk3_menu.c:235 +msgid "Audio Codec Properties" +msgstr "ĐĄĐČĐŸŃ˜ŃŃ‚ĐČĐ° Đ°ŃƒĐŽĐžĐŸ ĐșĐŸĐŽĐ”ĐșĐ°" + +#: ../guvcview/gui_gtk3_v4l2ctrls.c:174 +msgid "Left" +msgstr "ЛДĐČĐŸ" + +#: ../guvcview/gui_gtk3_v4l2ctrls.c:175 +msgid "Right" +msgstr "Đ”Đ”ŃĐœĐŸ" + +#: ../guvcview/gui_gtk3_v4l2ctrls.c:179 +msgid "Down" +msgstr "Đ”ĐŸĐ»Đ”" + +#: ../guvcview/gui_gtk3_v4l2ctrls.c:180 +msgid "Up" +msgstr "Đ“ĐŸŃ€Đ”" + +#. turn it into a menu control +#: ../guvcview/gui_gtk3_v4l2ctrls.c:296 +msgid "8 bit" +msgstr "8 бОта" + +#: ../guvcview/gui_gtk3_v4l2ctrls.c:296 +msgid "12 bit" +msgstr "12 бОта" + +#. add a virtual control for software autofocus +#: ../guvcview/gui_gtk3_v4l2ctrls.c:348 +msgid "Auto Focus (continuous)" +msgstr "ĐĄĐ°ĐŒĐŸŃŃ‚Đ°Đ»ĐœĐŸ Ń„ĐŸĐșŃƒŃĐžŃ€Đ°ŃšĐ” (ĐœĐ”ĐżŃ€Đ”ĐșĐžĐŽĐœĐŸ)" + +#: ../guvcview/gui_gtk3_v4l2ctrls.c:349 +msgid "set Focus" +msgstr "ĐżĐŸĐŽĐ”ŃĐž Ń„ĐŸĐșус" + +#. control_widgets_list[n].widget2 = gtk_button_new_from_stock(GTK_STOCK_APPLY); +#. control_widgets_list[n].widget2= gtk_button_new_from_stock(GTK_STOCK_APPLY); +#. control_widgets_list[n].widget2 = gtk_button_new_from_stock(GTK_STOCK_APPLY); +#: ../guvcview/gui_gtk3_v4l2ctrls.c:433 ../guvcview/gui_gtk3_v4l2ctrls.c:456 +#: ../guvcview/gui_gtk3_v4l2ctrls.c:478 +#, fuzzy +msgid "_Apply" +msgstr "ĐŸŃ€ĐžĐŒĐ”ĐœĐž" + +#: ../guvcview/gui_gtk3_videoctrls.c:144 +msgid "Frame Rate:" +msgstr "ĐŸŃ€ĐŸŃ‚ĐŸĐș ĐșаЮра:" + +#: ../guvcview/gui_gtk3_videoctrls.c:204 +msgid "Resolution:" +msgstr "Đ Đ”Đ·ĐŸĐ»ŃƒŃ†ĐžŃ˜Đ°:" + +#: ../guvcview/gui_gtk3_videoctrls.c:254 +msgid "Camera Output:" +msgstr "Излаз ĐșĐ°ĐŒĐ”Ń€Đ”:" + +#: ../guvcview/gui_gtk3_videoctrls.c:287 +msgid "---- Video Filters ----" +msgstr "———— Đ’ĐžĐŽĐ”ĐŸ фОлтДрО ————" + +#. Mirror FX +#: ../guvcview/gui_gtk3_videoctrls.c:307 +msgid " Mirror" +msgstr " ĐžĐłĐ»Đ”ĐŽĐ°Đ»ĐŸ" + +#. Upturn FX +#: ../guvcview/gui_gtk3_videoctrls.c:319 +msgid " Invert" +msgstr " ĐžĐ±Ń€ĐœŃƒŃ‚ĐŸ" + +#. Negate FX +#: ../guvcview/gui_gtk3_videoctrls.c:331 +msgid " Negative" +msgstr " ĐĐ”ĐłĐ°Ń‚ĐžĐČ" + +#. Mono FX +#: ../guvcview/gui_gtk3_videoctrls.c:343 +msgid " Mono" +msgstr " ĐœĐŸĐœĐŸ" + +#. Pieces FX +#: ../guvcview/gui_gtk3_videoctrls.c:356 +msgid " Pieces" +msgstr " ĐšĐŸĐŒĐ°ĐŽĐžŃ›Đž" + +#. Particles +#: ../guvcview/gui_gtk3_videoctrls.c:369 +msgid " Particles" +msgstr " ЧДстОцД" + +#: ../guvcview/options.c:51 +msgid "Print help" +msgstr "" + +#: ../guvcview/options.c:58 +#, fuzzy +msgid "Print version" +msgstr "ĐšŃ‚Đ°ĐŒĐżĐ° ОзЎањД" + +#: ../guvcview/options.c:64 +msgid "LEVEL" +msgstr "" + +#: ../guvcview/options.c:65 +msgid "Set Verbosity level (def: 0)" +msgstr "" + +#: ../guvcview/options.c:71 +msgid "DEVICE" +msgstr "" + +#: ../guvcview/options.c:72 +#, fuzzy +msgid "Set device name (def: /dev/video0)" +msgstr "Đ’ĐžĐŽĐ”ĐŸ ŃƒŃ€Đ”Ń’Đ°Ń˜ Đ·Đ° ĐșĐŸŃ€ĐžŃˆŃ›Đ”ŃšĐ” [ĐŸŃĐœĐŸĐČĐœĐž: „/dev/video0“]" + +#: ../guvcview/options.c:78 +msgid "METHOD" +msgstr "" + +#: ../guvcview/options.c:79 +#, fuzzy +msgid "Set capture method [read | mmap (def)]" +msgstr "ĐĐ°Ń‡ĐžĐœ ŃĐœĐžĐŒĐ°ŃšĐ° (1-ĐŒĐŒĐ°Đż (ĐŸŃĐœĐŸĐČĐœĐŸ) 2-чотај)" + +#: ../guvcview/options.c:85 +msgid "WIDTHxHEIGHT" +msgstr "" + +#: ../guvcview/options.c:86 +msgid "Request resolution (e.g 640x480)" +msgstr "" + +#: ../guvcview/options.c:92 +msgid "FOURCC" +msgstr "" + +#: ../guvcview/options.c:93 +msgid "Request format (e.g MJPG)" +msgstr "" + +#: ../guvcview/options.c:99 +msgid "RENDER_API" +msgstr "" + +#: ../guvcview/options.c:100 +msgid "Select render API (e.g none; sdl)" +msgstr "" + +#: ../guvcview/options.c:106 +msgid "AUDIO_API" +msgstr "" + +#: ../guvcview/options.c:107 +msgid "Select audio API (e.g none; port; pulse)" +msgstr "" + +#: ../guvcview/options.c:113 +msgid "AUDIO_DEVICE" +msgstr "" + +#: ../guvcview/options.c:114 +msgid "Select audio device index for selected api (0..N)" +msgstr "" + +#: ../guvcview/options.c:120 +msgid "GUI_API" +msgstr "" + +#: ../guvcview/options.c:121 +msgid "Select GUI API (e.g none; gtk3)" +msgstr "" + +#: ../guvcview/options.c:127 ../guvcview/options.c:134 +msgid "CODEC" +msgstr "" + +#: ../guvcview/options.c:128 +msgid "Audio codec [pcm mp2 mp3 aac ac3 vorb]" +msgstr "" + +#: ../guvcview/options.c:135 +msgid "Video codec [raw mjpg mpeg flv1 wmv1 mpg2 mp43 dx50 h264 vp80 theo]" +msgstr "" + +#: ../guvcview/options.c:141 ../guvcview/options.c:148 +#: ../guvcview/options.c:155 +msgid "FILENAME" +msgstr "" + +#: ../guvcview/options.c:142 +#, fuzzy +msgid "load control profile" +msgstr "Учотај ĐżŃ€ĐŸŃ„ĐžĐ»" + +#: ../guvcview/options.c:149 +msgid "filename for captured video)" +msgstr "" + +#: ../guvcview/options.c:156 +msgid "filename for captured image)" +msgstr "" + +#: ../guvcview/options.c:162 ../guvcview/options.c:169 +msgid "TIME_IN_SEC" +msgstr "" + +#: ../guvcview/options.c:163 +msgid "time (double) in sec. for video capture)" +msgstr "" + +#: ../guvcview/options.c:170 +msgid "time (double) in sec. between captured photos)" +msgstr "" + +#: ../guvcview/options.c:176 +msgid "TOTAL" +msgstr "" + +#: ../guvcview/options.c:177 +msgid "total number of captured photos)" +msgstr "" + +#: ../guvcview/options.c:184 +msgid "Start in control panel mode" +msgstr "" + +#: ../guvcview/options.c:307 +#, fuzzy, c-format +msgid "" +"Guvcview version %s\n" +"\n" +msgstr "ĐŁĐżĐŸĐ·ĐŸŃ€Đ”ŃšĐ” ĐšĐ°ĐŒĐ”Ń€ĐžŃ†Đ”:" + +#: ../guvcview/options.c:308 +#, c-format +msgid "" +"Usage:\n" +" guvcview [OPTIONS]\n" +"\n" +msgstr "" + +#: ../guvcview/options.c:309 +#, c-format +msgid "OPTIONS:\n" +msgstr "" + +#: ../guvcview/video_capture.c:819 +#, fuzzy, c-format +msgid "saving video to %s" +msgstr "ŃĐœĐžĐŒĐ°ĐŒ ĐČĐžĐŽĐ”ĐŸ у" + +#. if(debug_level > 1) +#. printf("GUVCVIEW: saving image to %s\n", img_filename); +#: ../guvcview/video_capture.c:1069 +#, c-format +msgid "saving image to %s" +msgstr "" + +#~ msgid "MPEG2 - (lavc)" +#~ msgstr "МПЕГ2 — (lavc)" + +#~ msgid "MP3 - (lavc)" +#~ msgstr "МП3 — (lavc)" + +#~ msgid "Dolby AC3 - (lavc)" +#~ msgstr "Đ”ĐŸĐ»Đ±Đž АЊ3 — (lavc)" + +#~ msgid "ACC Low - (faac)" +#~ msgstr "НосĐșĐž АЊЊ — (faac)" + +#~ msgid "Audio" +#~ msgstr "ĐŃƒĐŽĐžĐŸ" + +#~ msgid " Sound" +#~ msgstr " ЗĐČуĐș" + +#~ msgid " Show VU meter" +#~ msgstr " ПроĐșажО ВУ ĐŒĐ”Ń‚Đ°Ń€" + +#~ msgid "---- Audio Effects ----" +#~ msgstr "———— ĐŃƒĐŽĐžĐŸ ДфДĐșто ————" + +#~ msgid "Save File" +#~ msgstr "СачуĐČĐ°Ń˜Ń‚Đ” ĐŽĐ°Ń‚ĐŸŃ‚Đ”Đșу" + +#~ msgid "codec values" +#~ msgstr "ĐČŃ€Đ”ĐŽĐœĐŸŃŃ‚Đž ĐșĐŸĐŽĐ”ĐșĐ°" + +#~ msgid "capturing photo to" +#~ msgstr "ŃĐœĐžĐŒĐ°ĐŒ Ń„ĐŸŃ‚ĐŸĐłŃ€Đ°Ń„ĐžŃ˜Ńƒ у" + +#~ msgid "Cap. Video" +#~ msgstr "ĐĄĐœĐžĐŒĐž ĐČĐžĐŽĐ”ĐŸ" + +#~ msgid "GUVCViewer Controls" +#~ msgstr "ĐšĐŸĐœŃ‚Ń€ĐŸĐ»Đ” ĐšĐ°ĐŒĐ”Ń€ĐžŃ†Đ”" + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to open device" +#~ msgstr "" +#~ "Đ“Ń€Đ”ŃˆĐșĐ° ĐšĐ°ĐŒĐ”Ń€ĐžŃ†Đ”:\n" +#~ "\n" +#~ "ĐĐ” ĐŒĐŸĐłŃƒ ĐŽĐ° ĐŸŃ‚ĐČĐŸŃ€ĐžĐŒ ŃƒŃ€Đ”Ń’Đ°Ń˜" + +#~ msgid "" +#~ "Please make sure the camera is connected\n" +#~ "and that the correct driver is installed." +#~ msgstr "" +#~ "ĐŸŃ€ĐŸĐČДрОтД ĐŽĐ° лО јД ĐșĐ°ĐŒĐ”Ń€Đ° ĐżĐŸĐČĐ”Đ·Đ°ĐœĐ° Đž ĐŽĐ° лО\n" +#~ "јД ĐžĐœŃŃ‚Đ°Đ»ĐžŃ€Đ°Đœ оспраĐČĐ°Đœ упраĐČљачĐșĐž ĐżŃ€ĐŸĐłŃ€Đ°ĐŒ." + +#~ msgid "" +#~ "Guvcview:\n" +#~ "\n" +#~ "UVC Extension controls" +#~ msgstr "" +#~ "ĐšĐ°ĐŒĐ”Ń€ĐžŃ†Đ°:\n" +#~ "\n" +#~ "ĐšĐŸĐœŃ‚Ń€ĐŸĐ»Đ” УВЩ ĐżŃ€ĐŸŃˆĐžŃ€Đ”ŃšĐ°" + +#~ msgid "Extension controls were added to the UVC driver" +#~ msgstr "ĐšĐŸĐœŃ‚Ń€ĐŸĐ»Đ” ĐżŃ€ĐŸŃˆĐžŃ€Đ”ŃšĐ° су ĐŽĐŸĐŽĐ°Ń‚Đ” УВЩ упраĐČљачĐșĐŸĐŒ ĐżŃ€ĐŸĐłŃ€Đ°ĐŒŃƒ" + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "UVC Extension controls" +#~ msgstr "" +#~ "Đ“Ń€Đ”ŃˆĐșĐ° ĐšĐ°ĐŒĐ”Ń€ĐžŃ†Đ”:\n" +#~ "\n" +#~ "ĐšĐŸĐœŃ‚Ń€ĐŸĐ»Đ” УВЩ ĐżŃ€ĐŸŃˆĐžŃ€Đ”ŃšĐ°" + +#~ msgid "" +#~ "An error occurred while adding extension\n" +#~ "controls to the UVC driver\n" +#~ "Make sure you run guvcview as root (or sudo)." +#~ msgstr "" +#~ "Đ”ĐŸŃˆĐ»ĐŸ јД ĐŽĐŸ ĐłŃ€Đ”ŃˆĐșĐ” прОлОĐșĐŸĐŒ ĐŽĐŸĐŽĐ°ĐČања ĐșĐŸĐœŃ‚Ń€ĐŸĐ»Đ°\n" +#~ "ĐżŃ€ĐŸŃˆĐžŃ€Đ”ŃšĐ° УВЩ упраĐČљачĐșĐŸĐŒ ĐżŃ€ĐŸĐłŃ€Đ°ĐŒŃƒ. ĐŁĐČДрОтД сД ĐŽĐ°\n" +#~ "стД ĐżĐŸĐșŃ€Đ”ĐœŃƒĐ»Đž ĐșĐ°ĐŒĐ”Ń€Ń‡Đ” ĐșĐ°ĐŸ Đ°ĐŽĐŒĐžĐœĐžŃŃ‚Ń€Đ°Ń‚ĐŸŃ€ (ОлО ŃŃƒĐŽĐŸ)." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Can't set a valid video stream for guvcview" +#~ msgstr "" +#~ "Đ“Ń€Đ”ŃˆĐșĐ° ĐšĐ°ĐŒĐ”Ń€ĐžŃ†Đ”:\n" +#~ "\n" +#~ "ĐĐ” ĐŒĐŸĐłŃƒ ĐŽĐ° ĐżĐŸĐŽĐ”ŃĐžĐŒ оспраĐČĐ°Đœ ĐČĐžĐŽĐ”ĐŸ Ń‚ĐŸĐș Đ·Đ° ĐșĐ°ĐŒĐ”Ń€Ń‡Đ”" + +#~ msgid "" +#~ "Make sure your device driver is v4l2 compliant\n" +#~ "and that it is properly installed." +#~ msgstr "" +#~ "ĐŁĐČДрОтД сД ĐŽĐ° јД упраĐČљачĐșĐž ĐżŃ€ĐŸĐłŃ€Đ°ĐŒ ĐČашДг ŃƒŃ€Đ”Ń’Đ°Ń˜Đ°\n" +#~ "ŃƒŃĐ°ĐłĐ»Đ°ŃˆĐ”Đœ са ĐČ4Đ»2 Đž ĐŽĐ° јД оспраĐČĐœĐŸ ĐžĐœŃŃ‚Đ°Đ»ĐžŃ€Đ°Đœ." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to start with minimum setup" +#~ msgstr "" +#~ "Đ“Ń€Đ”ŃˆĐșĐ° ĐšĐ°ĐŒĐ”Ń€ĐžŃ†Đ”:\n" +#~ "\n" +#~ "ĐĐ” ĐŒĐŸĐłŃƒ ĐŽĐ° Đ·Đ°ĐżĐŸŃ‡ĐœĐ”ĐŒ са ĐŒĐžĐœĐžĐŒĐ°Đ»ĐœĐžĐŒ ĐżĐŸĐŽĐ”ŃˆĐ°ĐČĐ°ŃšĐžĐŒĐ°" + +#~ msgid "Please reconnect your camera." +#~ msgstr "ĐœĐŸĐ»ĐžĐŒ ĐżĐŸĐœĐŸĐČĐŸ ĐżĐŸĐČДжОтД ĐČашу ĐșĐ°ĐŒĐ”Ń€Ńƒ." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Couldn't query device capabilities" +#~ msgstr "" +#~ "Đ“Ń€Đ”ŃˆĐșĐ° ĐšĐ°ĐŒĐ”Ń€ĐžŃ†Đ”:\n" +#~ "\n" +#~ "ĐĐ” ĐŒĐŸĐłŃƒ ĐŽĐ° ĐžŃĐżĐžŃ‚Đ°ĐŒ ĐŒĐŸĐłŃƒŃ›ĐœĐŸŃŃ‚Đž ŃƒŃ€Đ”Ń’Đ°Ń˜Đ°" + +#~ msgid "Make sure the device driver supports v4l2." +#~ msgstr "ĐŁĐČДрОтД сД ĐŽĐ° упраĐČљачĐșĐž ĐżŃ€ĐŸĐłŃ€Đ°ĐŒ ŃƒŃ€Đ”Ń’Đ°Ń˜Đ° ĐżĐŸĐŽŃ€Đ¶Đ°ĐČĐ° ĐČ4Đ»2." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Read method error" +#~ msgstr "" +#~ "Đ“Ń€Đ”ŃˆĐșĐ° ĐšĐ°ĐŒĐ”Ń€ĐžŃ†Đ”:\n" +#~ "\n" +#~ "Đ“Ń€Đ”ŃˆĐșĐ° Ń€Đ”Đ¶ĐžĐŒĐ° чотања" + +#~ msgid "Please try mmap instead (--capture_method=1)." +#~ msgstr "ĐœĐŸĐ»ĐžĐŒ ĐżĐŸĐșŃƒŃˆĐ°Ń˜Ń‚Đ” „mmap“ ŃƒĐŒĐ”ŃŃ‚ĐŸ ĐŸĐČĐŸĐł (--capture_method=1)." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to allocate Buffers" +#~ msgstr "" +#~ "Đ“Ń€Đ”ŃˆĐșĐ° ĐšĐ°ĐŒĐ”Ń€ĐžŃ†Đ”:\n" +#~ "\n" +#~ "ĐĐ” ĐŒĐŸĐłŃƒ ĐŽĐ° ĐŽĐŸĐŽĐ”Đ»ĐžĐŒ БафДрД" + +#~ msgid "Please try restarting your system." +#~ msgstr "ĐœĐŸĐ»ĐžĐŒ ĐżĐŸĐșŃƒŃˆĐ°Ń˜Ń‚Đ” ĐżĐŸĐœĐŸĐČĐŸ ĐŽĐ° ĐżĐŸĐșŃ€Đ”ĐœĐ”Ń‚Đ” ŃĐžŃŃ‚Đ”ĐŒ." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to create Video Thread" +#~ msgstr "" +#~ "Đ“Ń€Đ”ŃˆĐșĐ° ĐšĐ°ĐŒĐ”Ń€ĐžŃ†Đ”:\n" +#~ "\n" +#~ "ĐĐ” ĐŒĐŸĐłŃƒ ĐŽĐ° ĐœĐ°ĐżŃ€Đ°ĐČĐžĐŒ ĐČĐžĐŽĐ”ĐŸ ĐœĐžŃ‚" + +#~ msgid "Please report it to http://developer.berlios.de/bugs/?group_id=8179" +#~ msgstr "" +#~ "ĐœĐŸĐ»ĐžĐŒ пројаĐČОтД ĐœĐ° Đ°ĐŽŃ€Đ”ŃŃƒ: http://developer.berlios.de/bugs/?group_id=8179" + +#~ msgid "Bitmap (Bmp)" +#~ msgstr "Đ‘ĐžŃ‚ĐŒĐ°Đż (Bmp)" + +#~ msgid "Portable Network Graphics (Png)" +#~ msgstr "ĐŸŃ€Đ”ĐœĐŸŃĐœĐ° ĐŒŃ€Đ”Đ¶ĐœĐ° графоĐșĐ° (Png)" + +#~ msgid "Displays debug information" +#~ msgstr "ПроĐșазујД ĐžĐœŃ„ĐŸŃ€ĐŒĐ°Ń†ĐžŃ˜e ĐŸ оспраĐČљању ĐłŃ€Đ”ŃˆĐ°ĐșĐ°" + +#~ msgid "Exit after adding UVC extension controls (needs root/sudo)" +#~ msgstr "ИзлазО ĐżĐŸŃĐ»Đ” ĐŽĐŸĐŽĐ°ĐČања ĐșĐŸĐœŃ‚Ń€ĐŸĐ»Đ° УВЩ ĐżŃ€ĐŸŃˆĐžŃ€Đ”ŃšĐ° (Đ·Đ°Ń…Ń‚Đ”ĐČĐ° „root/sudo“)" + +#~ msgid "Don't stream video (image controls only)" +#~ msgstr "ĐĐ” пушта Ń‚ĐŸĐș ĐČОЎДа (ŃĐ°ĐŒĐŸ ĐșĐŸĐœŃ‚Ń€ĐŸĐ»Đ” слОĐșĐ”)" + +#~ msgid "Don't display a GUI" +#~ msgstr "ĐĐ” проĐșазујД ГКС" + +#~ msgid "Configuration file" +#~ msgstr "Đ”Đ°Ń‚ĐŸŃ‚Đ”ĐșĐ° ĐżĐŸĐŽĐ”ŃˆĐ°ĐČања" + +#~ msgid "Hardware accelaration (enable(1) | disable(0))" +#~ msgstr "УбрзањД фОзОчĐșĐ” ĐșĐŸĐŒĐżĐŸĐœĐ”ĐœŃ‚Đ” (уĐșључо(1) | ОсĐșључо(0))" + +#~ msgid "" +#~ "Pixel format(mjpg|jpeg|yuyv|yvyu|uyvy|yyuv|yu12|yv12|nv12|nv21|nv16|nv61|" +#~ "y41p|grey|y10b|y16 |s501|s505|s508|gbrg|grbg|ba81|rggb|bgr3|rgb3)" +#~ msgstr "" +#~ "Đ€ĐŸŃ€ĐŒĐ°Ń‚ тачаĐșĐ°(mjpg|jpeg|yuyv|yvyu|uyvy|yyuv|yu12|yv12|nv12|nv21|nv16|nv61|" +#~ "y41p|grey|y10b|y16 |s501|s505|s508|gbrg|grbg|ba81|rggb|bgr3|rgb3)" + +#~ msgid "Frame size, default: 640x480" +#~ msgstr "Đ’Đ”Đ»ĐžŃ‡ĐžĐœĐ° ĐșаЮра, ĐŸŃĐœĐŸĐČĐœĐ°: 640Đș480" + +#~ msgid "Image capture interval in seconds" +#~ msgstr "Đ˜ĐœŃ‚Đ”Ń€ĐČĐ°Đ» ŃĐœĐžĐŒĐ°ŃšĐ° слОĐșĐ” у сДĐșŃƒĐœĐŽĐ°ĐŒĐ°" + +#~ msgid "Number of Pictures to capture" +#~ msgstr "Đ‘Ń€ĐŸŃ˜ слОĐșĐ° Đ·Đ° ŃĐœĐžĐŒĐ°ŃšĐ”" + +#~ msgid "Video File name (capture from start)" +#~ msgstr "ĐĐ°Đ·ĐžĐČ ĐŽĐ°Ń‚ĐŸŃ‚Đ”ĐșĐ” ĐČОЎДа (ŃĐœĐžĐŒĐ°ŃšĐ” ĐŸĐŽ ĐżĐŸŃ‡Đ”Ń‚ĐșĐ°)" + +#~ msgid "Video capture time (in seconds)" +#~ msgstr "Đ’Ń€Đ”ĐŒĐ” ŃĐœĐžĐŒĐ°ŃšĐ° ĐČОЎДа (у сДĐșŃƒĐœĐŽĐ°ĐŒĐ°)" + +#~ msgid "Exits guvcview after closing video" +#~ msgstr "ИзлазО Оз ĐșĐ°ĐŒĐ”Ń€ĐžŃ†Đ” ĐœĐ°ĐșĐŸĐœ Đ·Đ°Ń‚ĐČарања ĐČОЎДа" + +#~ msgid "Number of initial frames to skip" +#~ msgstr "Đ‘Ń€ĐŸŃ˜ ĐżĐŸŃ‡Đ”Ń‚ĐœĐžŃ… ĐșĐ°ĐŽŃ€ĐŸĐČĐ° Đ·Đ° прДсĐșĐ°ĐșањД" + +#~ msgid "Show FPS value (enable(1) | disable (0))" +#~ msgstr "ПроĐșазујД К/ĐĄ ĐČŃ€Đ”ĐŽĐœĐŸŃŃ‚ (уĐșључо (1) | ОсĐșључо (0))" + +#~ msgid "Load Profile at start" +#~ msgstr "УчотаĐČĐ° ĐżŃ€ĐŸŃ„ĐžĐ» прОлОĐșĐŸĐŒ ĐżĐŸĐșрДтања" + +#~ msgid "- local options" +#~ msgstr "— Đ»ĐŸĐșĐ°Đ»ĐœĐ° ĐŸĐżŃ†ĐžŃ˜Đ°" + +#~ msgid "Cap. Image" +#~ msgstr "ĐĄĐœĐžĐŒĐž слОĐșу" + +#~ msgid "Not enough free space left on disk" +#~ msgstr "ĐĐ”ĐŒĐ° ĐŽĐŸĐČĐŸŃ™ĐœĐŸ ŃĐ»ĐŸĐ±ĐŸĐŽĐœĐŸĐł ĐżŃ€ĐŸŃŃ‚ĐŸŃ€Đ° ĐœĐ° ЎОсĐșу" + +#~ msgid "YUY2 - uncomp YUV" +#~ msgstr "ЈУЈ2 — ĐœĐ”ŃĐ°Đ¶Đ”Ń‚Đž ЈУВ" + +#~ msgid "RGB - uncomp BMP" +#~ msgstr "РГБ — ĐœĐ”ŃĐ°Đ¶Đ”Ń‚Đž БМП" + +#~ msgid "MKV - Matroska format" +#~ msgstr "МКВ — ĐœĐ°Ń‚Ń€ĐŸŃˆĐșĐ° Ń„ĐŸŃ€ĐŒĐ°Ń‚" + +#~ msgid "WEBM - format" +#~ msgstr "ВЕБМ — запОс" + +#~ msgid " Show" +#~ msgstr " ПроĐșажО" + +#~ msgid "Quality:" +#~ msgstr "КĐČалОтДт:" diff -Nru guvcview-1.7.3/po/tr.po guvcview-2.0.1+ubuntu1~ppa1/po/tr.po --- guvcview-1.7.3/po/tr.po 2014-03-24 22:56:28.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/po/tr.po 2014-10-05 10:41:44.000000000 +0000 @@ -7,16 +7,16 @@ msgstr "" "Project-Id-Version: guvcview\n" "Report-Msgid-Bugs-To: pj.assis@gmail.com\n" -"POT-Creation-Date: 2013-11-14 22:15+0000\n" +"POT-Creation-Date: 2014-08-17 22:49+0100\n" "PO-Revision-Date: 2013-11-06 12:49+0000\n" "Last-Translator: Volkan Gezer \n" "Language-Team: Turkish \n" +"Language: tr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-12-08 10:36+0000\n" "X-Generator: Launchpad (build 16869)\n" -"Language: tr\n" #: ../data/guvcview.desktop.in.in.h:1 msgid "guvcview" @@ -27,1400 +27,1632 @@ msgstr "GTK UVC video görĂŒntĂŒleyici" #: ../data/guvcview.desktop.in.in.h:3 -msgid "A video viewer and capturer for the linux uvc driver" -msgstr "Linux uvc sĂŒrĂŒcĂŒsĂŒ için video görĂŒntĂŒleyici ve yakalayıcı" - -#: ../src/acodecs.c:59 -msgid "PCM - uncompressed (16 bit)" -msgstr "PCM - sıkÄ±ĆŸtırılmamÄ±ĆŸ (16 bit)" - -#: ../src/acodecs.c:76 -msgid "MPEG2 - (lavc)" -msgstr "MPEG2 - (lavc)" - -#: ../src/acodecs.c:93 -msgid "MP3 - (lavc)" -msgstr "MP3 - (lavc)" - -#: ../src/acodecs.c:110 -msgid "Dolby AC3 - (lavc)" -msgstr "Dolby AC3 - (lavc)" - -#: ../src/acodecs.c:127 -msgid "ACC Low - (faac)" -msgstr "ACC Low - (faac)" - -#: ../src/acodecs.c:144 -msgid "Vorbis" -msgstr "Vorbis" - -#: ../src/audio_tab.c:87 -msgid "Audio" -msgstr "Ses" - -#: ../src/audio_tab.c:105 -msgid " Sound" -msgstr " Ses" - -#. VU meter on the image (OSD) -#: ../src/audio_tab.c:116 -msgid " Show VU meter" -msgstr " VU Metreyi Göster" - -#: ../src/audio_tab.c:128 -msgid "Audio API:" -msgstr "SES API'yı:" - -#: ../src/audio_tab.c:139 -msgid "PORTAUDIO" -msgstr "PORTAUDIO" - -#: ../src/audio_tab.c:140 -msgid "PULSEAUDIO" -msgstr "PULSEAUDIO" - -#: ../src/audio_tab.c:156 ../src/audio_tab.c:179 -msgid "Input Device:" -msgstr "Girdi Aygıtı:" - -#: ../src/audio_tab.c:189 ../src/audio_tab.c:221 -msgid "Dev. Default" -msgstr "Aygıt Vars." - -#: ../src/audio_tab.c:211 -msgid "Sample Rate:" -msgstr "Örnekleme Oranı:" - -#: ../src/audio_tab.c:222 -msgid "1 - mono" -msgstr "1 - mono" - -#: ../src/audio_tab.c:223 -msgid "2 - stereo" -msgstr "2 - stereo" - -#: ../src/audio_tab.c:258 -msgid "Channels:" -msgstr "Kanallar:" - -#: ../src/audio_tab.c:309 -msgid "---- Audio Effects ----" -msgstr "---- Ses Efektleri ----" - -#. Echo -#: ../src/audio_tab.c:328 -msgid " Echo" -msgstr " Göster" - -#. FUZZ -#: ../src/audio_tab.c:339 -msgid " Fuzz" -msgstr " Bulanma" - -#. Reverb -#: ../src/audio_tab.c:351 -msgid " Reverb" -msgstr " Yankı" - -#. WahWah -#: ../src/audio_tab.c:363 -msgid " WahWah" -msgstr " WahWah" - -#. Ducky -#: ../src/audio_tab.c:375 -msgid " Ducky" -msgstr " Ördek" - -#: ../src/callbacks.c:109 -msgid "Error" -msgstr "Hata" - -#: ../src/callbacks.c:133 -msgid "" -"\n" -"You have more than one video device installed.\n" -"Do you want to try another one ?\n" -msgstr "" -"\n" -"Kurulu birden fazla video aygıtınız var.\n" -"Bir diğerini denemek ister misiniz?\n" - -#. Devices -#: ../src/callbacks.c:140 ../src/video_tab.c:111 -msgid "Device:" -msgstr "Aygıt:" - -#: ../src/callbacks.c:272 -msgid "Save File" -msgstr "Dosyayı Kaydet" - -#: ../src/callbacks.c:284 -msgid "File Format:" -msgstr "Dosya Biçimi:" - -#: ../src/callbacks.c:455 -msgid "codec values" -msgstr "çözĂŒcĂŒ değerleri" - -#: ../src/callbacks.c:466 -msgid "" -" encoder fps: \n" -" (0 - use fps combobox value)" -msgstr "" -" kodlayıcı fps: \n" -" (0 - fps kutu değerini kullan)" - -#: ../src/callbacks.c:479 -msgid " monotonic pts" -msgstr " tek dĂŒze puan" - -#. bit rate -#: ../src/callbacks.c:486 ../src/callbacks.c:809 -msgid "bit rate: " -msgstr "bıt oranı: " - -#: ../src/callbacks.c:499 -msgid "qmax: " -msgstr "qmax: " - -#: ../src/callbacks.c:512 -msgid "qmin: " -msgstr "qmin: " - -#: ../src/callbacks.c:525 -msgid "max. qdiff: " -msgstr "azami qdiff: " - -#: ../src/callbacks.c:538 -msgid "dia size: " -msgstr "dia boyutu: " - -#: ../src/callbacks.c:551 -msgid "pre dia size: " -msgstr "ön dia boyutu: " - -#: ../src/callbacks.c:564 -msgid "pre me: " -msgstr "ön me: " - -#: ../src/callbacks.c:577 -msgid "pre cmp: " -msgstr "ön cmp: " - -#: ../src/callbacks.c:590 -msgid "cmp: " -msgstr "cmp: " - -#: ../src/callbacks.c:603 -msgid "sub cmp: " -msgstr "alt cmp: " - -#: ../src/callbacks.c:616 -msgid "last predictor count: " -msgstr "son öngörĂŒcĂŒ sayısı: " - -#: ../src/callbacks.c:629 -msgid "gop size: " -msgstr "gop boyutu: " - -#: ../src/callbacks.c:642 -msgid "qcompress: " -msgstr "qcompress: " - -#: ../src/callbacks.c:655 -msgid "qblur: " -msgstr "qblur: " - -#: ../src/callbacks.c:668 -msgid "subq: " -msgstr "subq: " - -#: ../src/callbacks.c:681 -msgid "framerefs: " -msgstr "framerefs: " - -#: ../src/callbacks.c:694 -msgid "me method: " -msgstr "me yöntemi: " - -#: ../src/callbacks.c:707 -msgid "mb decision: " -msgstr "mb kararı: " - -#: ../src/callbacks.c:720 -msgid "max B frames: " -msgstr "en yĂŒks. B karesi: " - -#: ../src/callbacks.c:733 -msgid "num threads: " -msgstr "iƟlem sayısı: " - -#: ../src/callbacks.c:796 -msgid "audio codec values" -msgstr "ses çözĂŒcĂŒ değerleri" - -#. sample format -#: ../src/callbacks.c:823 -msgid "sample format: " -msgstr "örnek biçimi: " - -#: ../src/callbacks.c:1311 -msgid "start new" -msgstr "yeni baƟlat" - -#: ../src/callbacks.c:1314 -msgid "restart" -msgstr "yeniden baƟlat" - -#: ../src/callbacks.c:1316 -msgid "new" -msgstr "yeni" - -#: ../src/callbacks.c:1318 -msgid "cancel" -msgstr "iptal" - -#: ../src/callbacks.c:1323 -msgid "" -"launch new process or restart?.\n" -"\n" -msgstr "" -"yeni sĂŒreç baƟlat veya yeniden baƟlat?\n" -"\n" - -#: ../src/callbacks.c:1780 ../src/guvcview.c:565 -msgid "Cap. Image (I)" -msgstr "GörĂŒntĂŒ Yakala (I)" - -#. disable image controls -#: ../src/callbacks.c:1791 ../src/guvcview.c:690 ../src/timers.c:101 -msgid "capturing photo to" -msgstr "fotoğraf yakalanıyor" - -#: ../src/callbacks.c:1850 ../src/guvcview.c:575 -msgid "Cap. Video (V)" -msgstr "Video Yakala (V)" - -#: ../src/callbacks.c:1876 ../src/guvcview.c:740 -msgid "capturing video to" -msgstr "video yakalanıyor" - -#. vid capture enabled from start -#: ../src/callbacks.c:1911 ../src/guvcview.c:570 -msgid "Stop Video (V)" -msgstr "Videoyu Durdur (V)" - -#: ../src/callbacks.c:1967 ../src/menubar.c:66 -msgid "Save Profile" -msgstr "Profili Kaydet" - -#: ../src/callbacks.c:1980 ../src/menubar.c:65 -msgid "Load Profile" -msgstr "Profili YĂŒkle" - -#: ../src/create_video.c:1098 ../src/guvcview.c:732 -msgid "Cap. Video" -msgstr "Video Yakala" - -#: ../src/guvcview.c:280 -msgid "Guvcview Video Capture" -msgstr "Guvcview Video Yakala" - -#: ../src/guvcview.c:292 -msgid "GUVCViewer Controls" -msgstr "GUVCViewer Denetimleri" - -#. can't open device -#: ../src/guvcview.c:342 -msgid "" -"Guvcview error:\n" -"\n" -"Unable to open device" -msgstr "" -"Guvcview hatası:\n" -"\n" -"Aygıt açılamıyor" - -#: ../src/guvcview.c:343 -msgid "" -"Please make sure the camera is connected\n" -"and that the correct driver is installed." -msgstr "" -"Kameranızın bağlı ve doğru sĂŒrĂŒcĂŒlerinin\n" -"yĂŒklendiğinden emin olun." - -#. uvc extension controls OK, give warning and shutdown (called with --add_ctrls) -#: ../src/guvcview.c:348 -msgid "" -"Guvcview:\n" -"\n" -"UVC Extension controls" -msgstr "" -"Guvcview:\n" -"\n" -"UVC Uzantı denetimleri" - -#: ../src/guvcview.c:349 -msgid "Extension controls were added to the UVC driver" -msgstr "Uzantı denetimleri UVC sĂŒrĂŒcĂŒsĂŒne eklendi" - -#. uvc extension controls error - EACCES (needs root user) -#: ../src/guvcview.c:356 -msgid "" -"Guvcview error:\n" -"\n" -"UVC Extension controls" -msgstr "" -"Guvcview hatası:\n" -"\n" -"UVC Uzantı denetimleri" - -#: ../src/guvcview.c:357 -msgid "" -"An error occurred while adding extension\n" -"controls to the UVC driver\n" -"Make sure you run guvcview as root (or sudo)." -msgstr "" -"UVC sĂŒrĂŒcĂŒsĂŒne uzantı denetimleri eklenirken\n" -"bir hata oluƟtu\n" -"guvcview'i yönetici (veya sudo) ile çalÄ±ĆŸtırdığınızdan\n" -"emin olun" - -#: ../src/guvcview.c:391 ../src/guvcview.c:399 ../src/guvcview.c:477 -msgid "" -"Guvcview error:\n" -"\n" -"Can't set a valid video stream for guvcview" -msgstr "" -"Guvcview hatası:\n" -"\n" -"guvcview için geçerli video akÄ±ĆŸÄ± ayarlanamıyor" - -#: ../src/guvcview.c:392 ../src/guvcview.c:400 ../src/guvcview.c:478 -msgid "" -"Make sure your device driver is v4l2 compliant\n" -"and that it is properly installed." -msgstr "" -"Aygıt sĂŒrĂŒcĂŒnĂŒzĂŒn v4l2 uyumlu olduğundan ve\n" -"doğru bir Ɵekilde yĂŒklendiğinden emin olun." - -#: ../src/guvcview.c:422 ../src/guvcview.c:444 -msgid "" -"Guvcview error:\n" -"\n" -"Unable to start with minimum setup" -msgstr "" -"Guvcview hatası:\n" -"\n" -"Asgari ayarlama baƟlatılamadı" - -#: ../src/guvcview.c:423 ../src/guvcview.c:445 -msgid "Please reconnect your camera." -msgstr "LĂŒtfen kameranı tekrar bağla." - -#: ../src/guvcview.c:452 -msgid "" -"Guvcview error:\n" -"\n" -"Couldn't query device capabilities" -msgstr "" -"Guvcview hatası:\n" -"\n" -"Aygıt özellikleri sorgulanamadı" - -#: ../src/guvcview.c:453 -msgid "Make sure the device driver supports v4l2." -msgstr "Aygıt sĂŒrĂŒcĂŒnĂŒzĂŒn v4l2 desteklediğinden emin olun." - -#: ../src/guvcview.c:457 -msgid "" -"Guvcview error:\n" -"\n" -"Read method error" -msgstr "" -"Guvcview hatası:\n" -"\n" -"Okuma yöntemi hatası" - -#: ../src/guvcview.c:458 -msgid "Please try mmap instead (--capture_method=1)." -msgstr "mmap deneyin (--capture_method=1)." - -#: ../src/guvcview.c:466 -msgid "" -"Guvcview error:\n" -"\n" -"Unable to allocate Buffers" -msgstr "" -"Guvcview hatası:\n" -"\n" -"Tamponlar ayrılamıyor" - -#: ../src/guvcview.c:467 -msgid "Please try restarting your system." -msgstr "LĂŒtfen sistemi tekrar baƟlatmayı dene." - -#: ../src/guvcview.c:518 -msgid "Image Controls" -msgstr "Resim Denetimleri" - -#. image auto capture -#: ../src/guvcview.c:561 -msgid "Stop Auto (I)" -msgstr "Otomatik Durdur (I)" - -#: ../src/guvcview.c:676 -msgid "" -"Guvcview error:\n" -"\n" -"Unable to create Video Thread" -msgstr "" -"Guvcview hatası:\n" -"\n" -"Video İƟ Parçacığı oluƟturulamıyor" - -#: ../src/guvcview.c:677 -msgid "Please report it to http://developer.berlios.de/bugs/?group_id=8179" -msgstr "" -"LĂŒtfen http://developer.berlios.de/bugs/?group_id=8179 adresine bildirin" - -#: ../src/img_controls.c:121 -msgid "Auto Focus (continuous)" -msgstr "Otomatik Odakla (sĂŒrekli)" - -#: ../src/img_controls.c:122 -msgid "set Focus" -msgstr "Odak ayarla" - -#: ../src/image_format.c:35 -msgid "Jpeg (jpg)" -msgstr "Jpeg (jpg)" - -#: ../src/image_format.c:41 -msgid "Bitmap (Bmp)" -msgstr "Bitmap (Bmp)" - -#: ../src/image_format.c:47 -msgid "Portable Network Graphics (Png)" -msgstr "TaĆŸÄ±nabilir Ağ Grafikleri (Png)" - -#: ../src/image_format.c:53 -msgid "Raw Image (raw)" -msgstr "Ham GörĂŒntĂŒ (raw)" - -#. controls menu -#: ../src/menubar.c:64 -msgid "Settings" -msgstr "Ayarlar" - -#: ../src/menubar.c:67 -msgid "Hardware Defaults" -msgstr "Donanım Varsayılanları" - -#: ../src/menubar.c:75 -msgid "Camera Button" -msgstr "Kamera DĂŒÄŸmesi" - -#: ../src/menubar.c:79 -msgid "Capture Image" -msgstr "Resim Yakala" - -#: ../src/menubar.c:84 -msgid "Capture Video" -msgstr "Video Yakala" - -#. video menu -#: ../src/menubar.c:144 ../src/video_tab.c:95 -msgid "Video" -msgstr "GörĂŒntĂŒ" - -#: ../src/menubar.c:145 ../src/menubar.c:233 -msgid "File" -msgstr "Dosya" - -#: ../src/menubar.c:146 ../src/menubar.c:234 -msgid "Increment Filename" -msgstr "Dosya Adını Arttır" - -#: ../src/menubar.c:164 -msgid "Video Codec" -msgstr "Video Kodlayıcısı" - -#: ../src/menubar.c:189 -msgid "Video Codec Properties" -msgstr "Video Kodlayıcı Özellikleri" - -#: ../src/menubar.c:196 -msgid "Audio Codec" -msgstr "Ses Kodlayıcı" - -#: ../src/menubar.c:217 -msgid "Audio Codec Properties" -msgstr "Ses Kodlayıcı Özellikleri" - -#. photo menu -#: ../src/menubar.c:232 -msgid "Photo" -msgstr "Fotoğraf" - -#: ../src/options.c:753 -msgid "Prints version" -msgstr "SĂŒrĂŒmĂŒ yazdırır" - -#: ../src/options.c:754 -msgid "Displays debug information" -msgstr "Hata ayıklama bilgisini görĂŒntĂŒler" - -#: ../src/options.c:755 -msgid "Video Device to use [default: /dev/video0]" -msgstr "Kullanılacak Video Aygıtı [varsayılan: /dev/video0]" - -#: ../src/options.c:756 -msgid "Exit after adding UVC extension controls (needs root/sudo)" -msgstr "" -"UVC uzantı denetimlerini ekledikten sonra çık (yönetici/sudo gerektirir)" - -#: ../src/options.c:757 -msgid "Don't stream video (image controls only)" -msgstr "Video'yu akÄ±ĆŸ yapma (sadece resim denetimleri)" - -#: ../src/options.c:758 -msgid "Don't display a GUI" -msgstr "Grafiksel ArayĂŒz görĂŒntĂŒleme" - -#: ../src/options.c:759 -msgid "Capture method (1-mmap (default) 2-read)" -msgstr "Yakalama yöntemi (1-mmap (varsayılan) 2-read)" - -#: ../src/options.c:760 -msgid "Configuration file" -msgstr "Yapılandırma dosyası" - -#: ../src/options.c:761 -msgid "Hardware accelaration (enable(1) | disable(0))" -msgstr "Donanım hızlandırma (enable(1) | disable(0))" - -#: ../src/options.c:762 -msgid "" -"Pixel " -"format(mjpg|jpeg|yuyv|yvyu|uyvy|yyuv|yu12|yv12|nv12|nv21|nv16|nv61|y41p|grey|" -"y10b|y16 |s501|s505|s508|gbrg|grbg|ba81|rggb|bgr3|rgb3)" -msgstr "" -"Piksel " -"biçimi(mjpg|jpeg|yuyv|yvyu|uyvy|yyuv|yu12|yv12|nv12|nv21|nv16|nv61|y41p|grey|" -"y10b|y16 |s501|s505|s508|gbrg|grbg|ba81|rggb|bgr3|rgb3)" - -#: ../src/options.c:763 -msgid "Frame size, default: 640x480" -msgstr "Çerçeve boyutu, varsayılan: 640x480" - -#: ../src/options.c:764 -msgid "Image File name" -msgstr "Resim Dosya adı" - -#: ../src/options.c:765 -msgid "Image capture interval in seconds" -msgstr "Resim yakalama aralığı (saniye)" - -#: ../src/options.c:766 -msgid "Number of Pictures to capture" -msgstr "Yakalanacak Resim Sayısı" - -#: ../src/options.c:767 -msgid "Video File name (capture from start)" -msgstr "Video Dosya adı (baƟlangıçtan yakala)" - -#: ../src/options.c:768 -msgid "Video capture time (in seconds)" -msgstr "Video yakalama sĂŒresi (saniye)" - -#: ../src/options.c:769 -msgid "Exits guvcview after closing video" -msgstr "Video kapatıldıktan sonra guvcview'den çıkar" - -#: ../src/options.c:770 -msgid "Number of initial frames to skip" -msgstr "BaƟlangıçta atlanacak kare sayısı" - -#: ../src/options.c:771 -msgid "Show FPS value (enable(1) | disable (0))" -msgstr "FPS değerini göster (enable(1) | disable (0))" - -#: ../src/options.c:772 -msgid "Load Profile at start" -msgstr "BaƟlangıçta Profil YĂŒkle" - -#: ../src/options.c:773 -msgid "List controls method (0:loop, 1:next_ctrl flag [def])" -msgstr "" - -#: ../src/options.c:779 -msgid "- local options" -msgstr "- yerel seçenekler" - -#. gdk_threads_enter(); -#: ../src/timers.c:119 -msgid "Cap. Image" -msgstr "Resim Yakala" - -#: ../src/timers.c:217 -msgid "Guvcview Warning:" -msgstr "Guvcview Uyarısı:" - -#: ../src/timers.c:217 -msgid "Not enough free space left on disk" -msgstr "Diskte yeterli boƟ yer yok" - -#: ../src/v4l2_controls.c:794 -msgid "Left" -msgstr "Sol" - -#: ../src/v4l2_controls.c:795 -msgid "Right" -msgstr "Sağ" - -#: ../src/v4l2_controls.c:799 -msgid "Down" -msgstr "AƟağı" - -#: ../src/v4l2_controls.c:800 -msgid "Up" -msgstr "Yukarı" - -#: ../src/v4l2_controls.c:845 -msgid "Off" -msgstr "Kapalı" - -#: ../src/v4l2_controls.c:845 -msgid "On" -msgstr "Açık" - -#: ../src/v4l2_controls.c:845 -msgid "Blinking" -msgstr "Yanıp Sönme" - -#: ../src/v4l2_controls.c:845 -msgid "Auto" -msgstr "Otomatik" - -#. turn it into a menu control -#: ../src/v4l2_controls.c:894 -msgid "8 bit" -msgstr "8 bit" - -#: ../src/v4l2_controls.c:894 -msgid "12 bit" -msgstr "12 bit" - -#: ../src/v4l2_dyna_ctrls.c:96 -msgid "Pan (relative)" -msgstr "Kaydır (bağıl)" - -#: ../src/v4l2_dyna_ctrls.c:109 -msgid "Tilt (relative)" -msgstr "Eğ (bağıl)" - -#: ../src/v4l2_dyna_ctrls.c:122 -msgid "Pan Reset" -msgstr "Kaydırmayı Sıfırla" - -#: ../src/v4l2_dyna_ctrls.c:135 -msgid "Tilt Reset" -msgstr "Eğme Sıfırla" - -#: ../src/v4l2_dyna_ctrls.c:148 -msgid "Focus (absolute)" -msgstr "Odaklan (kesin)" - -#: ../src/v4l2_dyna_ctrls.c:161 -msgid "LED1 Mode" -msgstr "LED1 Kipi" - -#: ../src/v4l2_dyna_ctrls.c:174 -msgid "LED1 Frequency" -msgstr "LED1 Frekansı" +msgid "A video viewer and capturer for the linux uvc driver" +msgstr "Linux uvc sĂŒrĂŒcĂŒsĂŒ için video görĂŒntĂŒleyici ve yakalayıcı" -#: ../src/v4l2_dyna_ctrls.c:187 -msgid "Disable video processing" -msgstr "Video iƟlemeyi devre dÄ±ĆŸÄ± bırak" +#: ../data/guvcview.appdata.xml.in.in.h:1 +msgid "capture video from v4l2 devices" +msgstr "" -#: ../src/v4l2_dyna_ctrls.c:200 -msgid "Raw bits per pixel" -msgstr "Piksel baĆŸÄ±na ham bit" +#: ../data/guvcview.appdata.xml.in.in.h:2 +msgid "" +"Video capture tool for video4linux2 compliant cameras, with special emphasis " +"on the linux uvc driver. It provides Image (jpg, png, bmp) and Video (mjpeg, " +"flv1, wmv1, mpg2, mpg4,...) capture with sound in several " +"formats( currently: avi and matroska). I also supports a control panel " +"option (--control_only) that is compatible with any other v4l2 app." +msgstr "" -#. needed only for language files (not used) +#. +#. * needed only for language files (not used) +#. #. V4L2 control strings -#: ../src/v4l2uvc.c:57 +#: ../gview_v4l2core/v4l2_controls.c:49 msgid "User Controls" msgstr "Kullanıcı Denetimleri" -#: ../src/v4l2uvc.c:58 +#: ../gview_v4l2core/v4l2_controls.c:50 msgid "Brightness" msgstr "Parlaklık" -#: ../src/v4l2uvc.c:59 +#: ../gview_v4l2core/v4l2_controls.c:51 msgid "Contrast" msgstr "KarĆŸÄ±tlık" -#: ../src/v4l2uvc.c:60 +#: ../gview_v4l2core/v4l2_controls.c:52 msgid "Hue" msgstr "Renk" -#: ../src/v4l2uvc.c:61 +#: ../gview_v4l2core/v4l2_controls.c:53 msgid "Saturation" msgstr "Doygunluk" -#: ../src/v4l2uvc.c:62 +#: ../gview_v4l2core/v4l2_controls.c:54 msgid "Sharpness" msgstr "Keskinlik" -#: ../src/v4l2uvc.c:63 +#: ../gview_v4l2core/v4l2_controls.c:55 msgid "Gamma" msgstr "Kontras derecesi (gama)" -#: ../src/v4l2uvc.c:64 +#: ../gview_v4l2core/v4l2_controls.c:56 msgid "Backlight Compensation" msgstr "Arka IĆŸÄ±k Desteği" -#: ../src/v4l2uvc.c:65 +#: ../gview_v4l2core/v4l2_controls.c:57 msgid "Power Line Frequency" msgstr "GĂŒĂ§ Hattı Frekansı" -#: ../src/v4l2uvc.c:66 +#: ../gview_v4l2core/v4l2_controls.c:58 msgid "Hue, Automatic" msgstr "Renk, Otomatik" -#: ../src/v4l2uvc.c:67 +#: ../gview_v4l2core/v4l2_controls.c:59 msgid "Focus, Auto" msgstr "Odak, Otomatik" -#: ../src/v4l2uvc.c:68 +#: ../gview_v4l2core/v4l2_controls.c:60 msgid "Manual Mode" msgstr "El Kipi" -#: ../src/v4l2uvc.c:69 +#: ../gview_v4l2core/v4l2_controls.c:61 msgid "Auto Mode" msgstr "Otomatik Kip" -#: ../src/v4l2uvc.c:70 +#: ../gview_v4l2core/v4l2_controls.c:62 msgid "Shutter Priority Mode" msgstr "Kapak Öncelik Kipi" -#: ../src/v4l2uvc.c:71 +#: ../gview_v4l2core/v4l2_controls.c:63 msgid "Aperture Priority Mode" msgstr "Açıklık Öncelik Kipi" -#: ../src/v4l2uvc.c:72 +#: ../gview_v4l2core/v4l2_controls.c:64 msgid "Black Level" msgstr "Siyah Seviyesi" -#: ../src/v4l2uvc.c:73 +#: ../gview_v4l2core/v4l2_controls.c:65 msgid "White Balance, Automatic" msgstr "Beyaz Dengesi, Otomatik" -#: ../src/v4l2uvc.c:74 +#: ../gview_v4l2core/v4l2_controls.c:66 msgid "Do White Balance" msgstr "Beyaz Dengesi Yap" -#: ../src/v4l2uvc.c:75 +#: ../gview_v4l2core/v4l2_controls.c:67 msgid "Red Balance" msgstr "Kırmızı Dengesi" -#: ../src/v4l2uvc.c:76 +#: ../gview_v4l2core/v4l2_controls.c:68 msgid "Blue Balance" msgstr "Mavi Dengesi" -#: ../src/v4l2uvc.c:77 +#: ../gview_v4l2core/v4l2_controls.c:69 msgid "Exposure" msgstr "Pozlandırma" -#: ../src/v4l2uvc.c:78 +#: ../gview_v4l2core/v4l2_controls.c:70 msgid "Gain, Automatic" msgstr "Kazanç, Otomatik" -#: ../src/v4l2uvc.c:79 +#: ../gview_v4l2core/v4l2_controls.c:71 msgid "Gain" msgstr "Kazanç" -#: ../src/v4l2uvc.c:80 +#: ../gview_v4l2core/v4l2_controls.c:72 msgid "Horizontal Flip" msgstr "Yatay Çevir" -#: ../src/v4l2uvc.c:81 +#: ../gview_v4l2core/v4l2_controls.c:73 msgid "Vertical Flip" msgstr "Dikey Çevir" -#: ../src/v4l2uvc.c:82 +#: ../gview_v4l2core/v4l2_controls.c:74 msgid "Horizontal Center" msgstr "Yatay Merkez" -#: ../src/v4l2uvc.c:83 +#: ../gview_v4l2core/v4l2_controls.c:75 msgid "Vertical Center" msgstr "Dikey Merkez" -#: ../src/v4l2uvc.c:84 +#: ../gview_v4l2core/v4l2_controls.c:76 msgid "Chroma AGC" msgstr "Kroma Otomatik Kazanç KontrolĂŒ (AGC)" -#: ../src/v4l2uvc.c:85 +#: ../gview_v4l2core/v4l2_controls.c:77 msgid "Color Killer" msgstr "Renk ÖldĂŒrĂŒcĂŒ" -#: ../src/v4l2uvc.c:86 +#: ../gview_v4l2core/v4l2_controls.c:78 msgid "Color Effects" msgstr "Renk Efektleri" #. CAMERA CLASS control strings -#: ../src/v4l2uvc.c:89 +#: ../gview_v4l2core/v4l2_controls.c:81 msgid "Camera Controls" msgstr "Kamera Denetimleri" -#: ../src/v4l2uvc.c:90 +#: ../gview_v4l2core/v4l2_controls.c:82 msgid "Auto Exposure" msgstr "Otomatik Pozlandırma" -#: ../src/v4l2uvc.c:91 +#: ../gview_v4l2core/v4l2_controls.c:83 msgid "Exposure Time, Absolute" msgstr "Pozlandırma SĂŒresĂŒ, Kesin" -#: ../src/v4l2uvc.c:92 +#: ../gview_v4l2core/v4l2_controls.c:84 msgid "Exposure, Dynamic Framerate" msgstr "Pozlandırma, Dinamik Kare Oranı" -#: ../src/v4l2uvc.c:93 +#: ../gview_v4l2core/v4l2_controls.c:85 msgid "Pan, Relative" msgstr "Kaydırma, Bağıl" -#: ../src/v4l2uvc.c:94 +#: ../gview_v4l2core/v4l2_controls.c:86 msgid "Tilt, Relative" msgstr "Eğme, Bağıl" -#: ../src/v4l2uvc.c:95 +#: ../gview_v4l2core/v4l2_controls.c:87 msgid "Pan, Reset" msgstr "Kaydırma, Sıfırla" -#: ../src/v4l2uvc.c:96 +#: ../gview_v4l2core/v4l2_controls.c:88 msgid "Tilt, Reset" msgstr "Eğme, Sıfırla" -#: ../src/v4l2uvc.c:97 +#: ../gview_v4l2core/v4l2_controls.c:89 msgid "Pan, Absolute" msgstr "Kaydırma, Kesin" -#: ../src/v4l2uvc.c:99 +#: ../gview_v4l2core/v4l2_controls.c:91 msgid "Focus, Absolute" msgstr "Odaklama, Kesin" -#: ../src/v4l2uvc.c:100 +#: ../gview_v4l2core/v4l2_controls.c:92 msgid "Focus, Relative" msgstr "Odaklama, Bağıl" -#: ../src/v4l2uvc.c:101 +#: ../gview_v4l2core/v4l2_controls.c:93 msgid "Focus, Automatic" msgstr "Odaklama, Otomatik" -#: ../src/v4l2uvc.c:102 +#: ../gview_v4l2core/v4l2_controls.c:94 msgid "Zoom, Absolute" msgstr "YakınlaƟtırma, Kesin" -#: ../src/v4l2uvc.c:103 +#: ../gview_v4l2core/v4l2_controls.c:95 msgid "Zoom, Relative" msgstr "YakınlaƟtırma, Bağıl" -#: ../src/v4l2uvc.c:104 +#: ../gview_v4l2core/v4l2_controls.c:96 msgid "Zoom, Continuous" msgstr "YakınlaƟtırma, SĂŒrekli" -#: ../src/v4l2uvc.c:105 +#: ../gview_v4l2core/v4l2_controls.c:97 msgid "Privacy" msgstr "Gizlilik" #. UVC specific control strings -#: ../src/v4l2uvc.c:108 +#: ../gview_v4l2core/v4l2_controls.c:100 msgid "Exposure, Auto" msgstr "Pozlama, Otomatik" -#: ../src/v4l2uvc.c:109 +#: ../gview_v4l2core/v4l2_controls.c:101 msgid "Exposure, Auto Priority" msgstr "Pozlama, Otomatik Öncelik" -#: ../src/v4l2uvc.c:110 +#: ../gview_v4l2core/v4l2_controls.c:102 msgid "Exposure (Absolute)" msgstr "Pozlama (Kesin)" -#: ../src/v4l2uvc.c:111 +#: ../gview_v4l2core/v4l2_controls.c:103 msgid "White Balance Temperature, Auto" msgstr "Beyaz Denge Sıcaklığı, Otomatik" -#: ../src/v4l2uvc.c:112 +#: ../gview_v4l2core/v4l2_controls.c:104 msgid "White Balance Temperature" msgstr "Beyaz Dengesi Sıcaklığı" -#: ../src/v4l2uvc.c:113 +#: ../gview_v4l2core/v4l2_controls.c:105 msgid "White Balance Component, Auto" msgstr "Beyaz Denge BileƟeni, Otomatik" -#: ../src/v4l2uvc.c:114 +#: ../gview_v4l2core/v4l2_controls.c:106 msgid "White Balance Blue Component" msgstr "Beyaz Denge Mavi BileƟeni" -#: ../src/v4l2uvc.c:115 +#: ../gview_v4l2core/v4l2_controls.c:107 msgid "White Balance Red Component" msgstr "Beyaz Denge Kırmızı BileƟeni" #. libwebcam specific control strings -#: ../src/v4l2uvc.c:118 +#: ../gview_v4l2core/v4l2_controls.c:110 msgid "Focus" msgstr "Odaklama" -#: ../src/v4l2uvc.c:119 +#: ../gview_v4l2core/v4l2_controls.c:111 msgid "Focus (Absolute)" msgstr "Odaklama (Kesin)" -#: ../src/vcodecs.c:63 +#: ../gview_v4l2core/v4l2_xu_ctrls.c:63 ../guvcview/gui_gtk3_v4l2ctrls.c:239 +msgid "Off" +msgstr "Kapalı" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:64 ../guvcview/gui_gtk3_v4l2ctrls.c:239 +msgid "On" +msgstr "Açık" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:65 ../guvcview/gui_gtk3_v4l2ctrls.c:239 +msgid "Blinking" +msgstr "Yanıp Sönme" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:66 ../guvcview/gui_gtk3_v4l2ctrls.c:239 +msgid "Auto" +msgstr "Otomatik" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:73 +msgid "Pan (relative)" +msgstr "Kaydır (bağıl)" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:86 +msgid "Tilt (relative)" +msgstr "Eğ (bağıl)" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:99 +msgid "Pan Reset" +msgstr "Kaydırmayı Sıfırla" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:112 +msgid "Tilt Reset" +msgstr "Eğme Sıfırla" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:125 +msgid "Focus (absolute)" +msgstr "Odaklan (kesin)" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:138 +msgid "LED1 Mode" +msgstr "LED1 Kipi" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:151 +msgid "LED1 Frequency" +msgstr "LED1 Frekansı" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:164 +msgid "Disable video processing" +msgstr "Video iƟlemeyi devre dÄ±ĆŸÄ± bırak" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:177 +msgid "Raw bits per pixel" +msgstr "Piksel baĆŸÄ±na ham bit" + +#: ../gview_encoder/audio_codecs.c:63 +#, fuzzy +msgid "PCM - uncompressed (float 32 bit)" +msgstr "PCM - sıkÄ±ĆŸtırılmamÄ±ĆŸ (16 bit)" + +#: ../gview_encoder/audio_codecs.c:80 +msgid "MP2 (MPEG audio layer 2)" +msgstr "" + +#: ../gview_encoder/audio_codecs.c:97 +msgid "MP3 (MPEG audio layer 3)" +msgstr "" + +#: ../gview_encoder/audio_codecs.c:118 +msgid "AC-3 (ATSC A/52A)" +msgstr "" + +#: ../gview_encoder/audio_codecs.c:139 +msgid "AAC (Advanced Audio Coding)" +msgstr "" + +#: ../gview_encoder/audio_codecs.c:160 +msgid "Vorbis" +msgstr "Vorbis" + +#: ../gview_encoder/video_codecs.c:75 +#, fuzzy +msgid "Raw camera input" +msgstr "Kamera Çıktısı:" + +#: ../gview_encoder/video_codecs.c:111 msgid "MJPG - compressed" msgstr "MJPG - sıkÄ±ĆŸtırılmÄ±ĆŸ" -#: ../src/vcodecs.c:99 -msgid "YUY2 - uncomp YUV" -msgstr "YUY2 - sıkÄ±ĆŸtırılmamÄ±ĆŸ YUV" - -#: ../src/vcodecs.c:135 -msgid "RGB - uncomp BMP" -msgstr "RGB - sıkÄ±ĆŸtırılmamÄ±ĆŸ BMP" - -#: ../src/vcodecs.c:171 +#: ../gview_encoder/video_codecs.c:147 msgid "MPEG video 1" msgstr "MPEG video 1" -#: ../src/vcodecs.c:207 +#: ../gview_encoder/video_codecs.c:183 msgid "FLV1 - flash video 1" msgstr "FLV1 - flash video 1" -#: ../src/vcodecs.c:243 +#: ../gview_encoder/video_codecs.c:219 msgid "WMV1 - win. med. video 7" msgstr "WMV1 - win. med. video 7" -#: ../src/vcodecs.c:279 +#: ../gview_encoder/video_codecs.c:255 msgid "MPG2 - MPG2 format" msgstr "MPG2 - MPG2 biçimi" -#: ../src/vcodecs.c:315 +#: ../gview_encoder/video_codecs.c:291 msgid "MS MP4 V3" msgstr "MS MP4 V3" -#: ../src/vcodecs.c:351 +#: ../gview_encoder/video_codecs.c:327 msgid "MPEG4-ASP" msgstr "MPEG4-ASP" -#: ../src/vcodecs.c:387 +#: ../gview_encoder/video_codecs.c:363 msgid "MPEG4-AVC (H264)" msgstr "MPEG4-AVC (H264)" -#: ../src/vcodecs.c:427 +#: ../gview_encoder/video_codecs.c:403 msgid "VP8 (VP8)" msgstr "VP8 (VP8)" -#: ../src/vcodecs.c:463 +#: ../gview_encoder/video_codecs.c:439 msgid "Theora (ogg theora)" msgstr "Theora (ogg theora)" -#: ../src/video_format.c:43 -msgid "AVI - avi format" -msgstr "AVI - avi biçimi" +#: ../guvcview/gui_gtk3_audioctrls.c:95 +msgid "Audio API:" +msgstr "SES API'yı:" -#: ../src/video_format.c:52 -msgid "MKV - Matroska format" -msgstr "MKV - Matroska biçimi" - -#: ../src/video_format.c:61 -msgid "WEBM - format" -msgstr "WEBM - biçimi" +#: ../guvcview/gui_gtk3_audioctrls.c:106 +msgid "NO SOUND" +msgstr "" -#: ../src/video_tab.c:216 -msgid "Frame Rate:" -msgstr "Kare Oranı:" +#: ../guvcview/gui_gtk3_audioctrls.c:107 +msgid "PORTAUDIO" +msgstr "PORTAUDIO" + +#: ../guvcview/gui_gtk3_audioctrls.c:110 +msgid "PULSEAUDIO" +msgstr "PULSEAUDIO" + +#: ../guvcview/gui_gtk3_audioctrls.c:127 +msgid "Input Device:" +msgstr "Girdi Aygıtı:" + +#: ../guvcview/gui_gtk3_audioctrls.c:161 +msgid "Sample Rate:" +msgstr "Örnekleme Oranı:" + +#: ../guvcview/gui_gtk3_audioctrls.c:168 ../guvcview/gui_gtk3_audioctrls.c:214 +msgid "Dev. Default" +msgstr "Aygıt Vars." + +#: ../guvcview/gui_gtk3_audioctrls.c:207 +msgid "Channels:" +msgstr "Kanallar:" + +#: ../guvcview/gui_gtk3_audioctrls.c:215 +msgid "1 - mono" +msgstr "1 - mono" + +#: ../guvcview/gui_gtk3_audioctrls.c:216 +msgid "2 - stereo" +msgstr "2 - stereo" + +#: ../guvcview/gui_gtk3_audioctrls.c:235 +#, fuzzy +msgid "---- Audio Filters ----" +msgstr "---- Video Filtreleri----" -#: ../src/video_tab.c:223 -msgid " Show" +#. Echo FX +#: ../guvcview/gui_gtk3_audioctrls.c:255 +msgid " Echo" msgstr " Göster" -#: ../src/video_tab.c:245 -msgid "Resolution:" -msgstr "ÇözĂŒnĂŒrlĂŒk:" +#. Reverb FX +#: ../guvcview/gui_gtk3_audioctrls.c:268 +msgid " Reverb" +msgstr " Yankı" + +#. Fuzz FX +#: ../guvcview/gui_gtk3_audioctrls.c:281 +msgid " Fuzz" +msgstr " Bulanma" + +#. WahWah FX +#: ../guvcview/gui_gtk3_audioctrls.c:294 +msgid " WahWah" +msgstr " WahWah" + +#. Ducky FX +#: ../guvcview/gui_gtk3_audioctrls.c:307 +msgid " Ducky" +msgstr " Ördek" + +#: ../guvcview/gui_gtk3.c:310 ../guvcview/gui_gtk3_callbacks.c:749 +msgid "Stop Video (V)" +msgstr "Videoyu Durdur (V)" + +#. video button +#: ../guvcview/gui_gtk3.c:315 ../guvcview/gui_gtk3.c:600 +#: ../guvcview/gui_gtk3_callbacks.c:755 +msgid "Cap. Video (V)" +msgstr "Video Yakala (V)" + +#: ../guvcview/gui_gtk3.c:376 ../guvcview/gui_gtk3.c:383 +msgid "Error" +msgstr "Hata" + +#: ../guvcview/gui_gtk3.c:379 ../guvcview/gui_gtk3.c:386 +#: ../guvcview/gui_gtk3_callbacks.c:2097 +msgid "_Ok" +msgstr "" + +#: ../guvcview/gui_gtk3.c:380 ../guvcview/gui_gtk3_callbacks.c:185 +#: ../guvcview/gui_gtk3_callbacks.c:199 ../guvcview/gui_gtk3_callbacks.c:522 +#: ../guvcview/gui_gtk3_callbacks.c:624 ../guvcview/gui_gtk3_callbacks.c:1755 +#: ../guvcview/gui_gtk3_callbacks.c:2098 +#, fuzzy +msgid "_Cancel" +msgstr "iptal" + +#: ../guvcview/gui_gtk3.c:407 +msgid "" +"\n" +"You have more than one video device installed.\n" +"Do you want to try another one ?\n" +msgstr "" +"\n" +"Kurulu birden fazla video aygıtınız var.\n" +"Bir diğerini denemek ister misiniz?\n" + +#. ---- Devices ---- +#: ../guvcview/gui_gtk3.c:414 ../guvcview/gui_gtk3_videoctrls.c:106 +msgid "Device:" +msgstr "Aygıt:" + +#: ../guvcview/gui_gtk3.c:516 +msgid "Guvcview Video Capture" +msgstr "Guvcview Video Yakala" + +#: ../guvcview/gui_gtk3.c:525 +#, fuzzy +msgid "Guvcview" +msgstr "guvcview" + +#: ../guvcview/gui_gtk3.c:572 +#, fuzzy +msgid "Stop Cap. (I)" +msgstr "Otomatik Durdur (I)" + +#: ../guvcview/gui_gtk3.c:578 ../guvcview/gui_gtk3_callbacks.c:720 +#: ../guvcview/video_capture.c:250 +msgid "Cap. Image (I)" +msgstr "GörĂŒntĂŒ Yakala (I)" + +#. quit button +#. GtkWidget *quitButton = gtk_button_new_from_stock(GTK_STOCK_QUIT); +#: ../guvcview/gui_gtk3.c:621 +msgid "_Quit" +msgstr "" + +#: ../guvcview/gui_gtk3.c:667 +msgid "Image Controls" +msgstr "Resim Denetimleri" + +#: ../guvcview/gui_gtk3.c:703 +#, fuzzy +msgid "H264 Controls" +msgstr "Kullanıcı Denetimleri" + +#: ../guvcview/gui_gtk3.c:742 +#, fuzzy +msgid "Video Controls" +msgstr "Kullanıcı Denetimleri" + +#: ../guvcview/gui_gtk3.c:777 +#, fuzzy +msgid "Audio Controls" +msgstr "Kullanıcı Denetimleri" + +#: ../guvcview/gui_gtk3_callbacks.c:182 ../guvcview/gui_gtk3_menu.c:72 +msgid "Save Profile" +msgstr "Profili Kaydet" + +#: ../guvcview/gui_gtk3_callbacks.c:186 ../guvcview/gui_gtk3_callbacks.c:523 +#: ../guvcview/gui_gtk3_callbacks.c:625 +msgid "_Save" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:196 ../guvcview/gui_gtk3_menu.c:71 +msgid "Load Profile" +msgstr "Profili YĂŒkle" + +#: ../guvcview/gui_gtk3_callbacks.c:200 +msgid "_Open" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:208 ../guvcview/gui_gtk3_callbacks.c:531 +#: ../guvcview/gui_gtk3_callbacks.c:634 +msgid "File Format:" +msgstr "Dosya Biçimi:" + +#: ../guvcview/gui_gtk3_callbacks.c:220 +msgid "gpfl (*.gpfl)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:221 +msgid "any (*.*)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:519 +#, fuzzy +msgid "Photo file name" +msgstr "Resim Dosya adı" + +#: ../guvcview/gui_gtk3_callbacks.c:543 +#, fuzzy +msgid "Raw (*.raw)" +msgstr "Ham GörĂŒntĂŒ (raw)" + +#: ../guvcview/gui_gtk3_callbacks.c:544 +#, fuzzy +msgid "Jpeg (*.jpg)" +msgstr "Jpeg (jpg)" + +#: ../guvcview/gui_gtk3_callbacks.c:545 +msgid "Png (*.png)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:546 +msgid "Bmp (*.bmp)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:621 +#, fuzzy +msgid "Video file name" +msgstr "Resim Dosya adı" + +#: ../guvcview/gui_gtk3_callbacks.c:646 +msgid "Matroska (*.mkv)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:647 +msgid "WebM (*.webm)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:648 +msgid "Avi (*.avi)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:1158 +msgid "start new" +msgstr "yeni baƟlat" + +#: ../guvcview/gui_gtk3_callbacks.c:1161 +msgid "restart" +msgstr "yeniden baƟlat" + +#: ../guvcview/gui_gtk3_callbacks.c:1163 +msgid "new" +msgstr "yeni" + +#: ../guvcview/gui_gtk3_callbacks.c:1165 +msgid "cancel" +msgstr "iptal" + +#: ../guvcview/gui_gtk3_callbacks.c:1170 +msgid "" +"launch new process or restart?.\n" +"\n" +msgstr "" +"yeni sĂŒreç baƟlat veya yeniden baƟlat?\n" +"\n" + +#: ../guvcview/gui_gtk3_callbacks.c:1751 +#, fuzzy +msgid "video codec values" +msgstr "ses çözĂŒcĂŒ değerleri" + +#: ../guvcview/gui_gtk3_callbacks.c:1754 +msgid "_OK" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:1760 +msgid "" +" encoder fps: \n" +" (0 - use fps combobox value)" +msgstr "" +" kodlayıcı fps: \n" +" (0 - fps kutu değerini kullan)" + +#: ../guvcview/gui_gtk3_callbacks.c:1773 +msgid " monotonic pts" +msgstr " tek dĂŒze puan" + +#. bit rate +#: ../guvcview/gui_gtk3_callbacks.c:1780 ../guvcview/gui_gtk3_callbacks.c:2105 +msgid "bit rate: " +msgstr "bıt oranı: " + +#: ../guvcview/gui_gtk3_callbacks.c:1793 +msgid "qmax: " +msgstr "qmax: " + +#: ../guvcview/gui_gtk3_callbacks.c:1806 +msgid "qmin: " +msgstr "qmin: " + +#: ../guvcview/gui_gtk3_callbacks.c:1819 +msgid "max. qdiff: " +msgstr "azami qdiff: " + +#: ../guvcview/gui_gtk3_callbacks.c:1832 +msgid "dia size: " +msgstr "dia boyutu: " + +#: ../guvcview/gui_gtk3_callbacks.c:1845 +msgid "pre dia size: " +msgstr "ön dia boyutu: " + +#: ../guvcview/gui_gtk3_callbacks.c:1858 +msgid "pre me: " +msgstr "ön me: " + +#: ../guvcview/gui_gtk3_callbacks.c:1871 +msgid "pre cmp: " +msgstr "ön cmp: " + +#: ../guvcview/gui_gtk3_callbacks.c:1884 +msgid "cmp: " +msgstr "cmp: " + +#: ../guvcview/gui_gtk3_callbacks.c:1897 +msgid "sub cmp: " +msgstr "alt cmp: " + +#: ../guvcview/gui_gtk3_callbacks.c:1910 +msgid "last predictor count: " +msgstr "son öngörĂŒcĂŒ sayısı: " -#: ../src/video_tab.c:271 -msgid "Camera Output:" -msgstr "Kamera Çıktısı:" +#: ../guvcview/gui_gtk3_callbacks.c:1923 +msgid "gop size: " +msgstr "gop boyutu: " -#: ../src/video_tab.c:293 -msgid "Apply" -msgstr "Uygula" +#: ../guvcview/gui_gtk3_callbacks.c:1936 +msgid "qcompress: " +msgstr "qcompress: " -#: ../src/video_tab.c:300 -msgid "Quality:" -msgstr "Kalite:" +#: ../guvcview/gui_gtk3_callbacks.c:1949 +msgid "qblur: " +msgstr "qblur: " -#: ../src/video_tab.c:310 -msgid "---- Video Filters ----" -msgstr "---- Video Filtreleri----" +#: ../guvcview/gui_gtk3_callbacks.c:1962 +msgid "subq: " +msgstr "subq: " -#. Mirror -#: ../src/video_tab.c:329 -msgid " Mirror" -msgstr " Ayna" +#: ../guvcview/gui_gtk3_callbacks.c:1975 +msgid "framerefs: " +msgstr "framerefs: " -#. Upturn -#: ../src/video_tab.c:340 -msgid " Invert" -msgstr " Tersine Çevir" +#: ../guvcview/gui_gtk3_callbacks.c:1988 +msgid "me method: " +msgstr "me yöntemi: " -#. Negate -#: ../src/video_tab.c:351 -msgid " Negative" -msgstr " Negatif" +#: ../guvcview/gui_gtk3_callbacks.c:2001 +msgid "mb decision: " +msgstr "mb kararı: " -#. Mono -#: ../src/video_tab.c:362 -msgid " Mono" -msgstr " Mono" +#: ../guvcview/gui_gtk3_callbacks.c:2014 +msgid "max B frames: " +msgstr "en yĂŒks. B karesi: " -#. Pieces -#: ../src/video_tab.c:374 -msgid " Pieces" -msgstr " Parçalar" +#: ../guvcview/gui_gtk3_callbacks.c:2027 +msgid "num threads: " +msgstr "iƟlem sayısı: " -#. Particles -#: ../src/video_tab.c:386 -msgid " Particles" -msgstr " Tanecikler" +#: ../guvcview/gui_gtk3_callbacks.c:2094 +msgid "audio codec values" +msgstr "ses çözĂŒcĂŒ değerleri" -#: ../src/uvc_h264.c:596 -msgid "H264 Controls" -msgstr "" +#. sample format +#: ../guvcview/gui_gtk3_callbacks.c:2119 +msgid "sample format: " +msgstr "örnek biçimi: " -#: ../src/uvc_h264.c:615 +#: ../guvcview/gui_gtk3_h264ctrls.c:622 +#, fuzzy msgid "Rate Control Mode:" -msgstr "" +msgstr "Resim Denetimleri" -#: ../src/uvc_h264.c:626 +#: ../guvcview/gui_gtk3_h264ctrls.c:633 +#, fuzzy msgid "CBR" -msgstr "" +msgstr "VBR (DeğiƟken bitoranı)" -#: ../src/uvc_h264.c:629 +#: ../guvcview/gui_gtk3_h264ctrls.c:636 msgid "VBR" msgstr "VBR (DeğiƟken bitoranı)" -#: ../src/uvc_h264.c:633 +#: ../guvcview/gui_gtk3_h264ctrls.c:640 msgid "Constant QP" msgstr "" -#: ../src/uvc_h264.c:651 +#: ../guvcview/gui_gtk3_h264ctrls.c:658 msgid "Rate Control Mode flags:" msgstr "" -#: ../src/uvc_h264.c:676 +#: ../guvcview/gui_gtk3_h264ctrls.c:683 msgid "Temporal Scale Mode:" msgstr "" -#: ../src/uvc_h264.c:704 +#: ../guvcview/gui_gtk3_h264ctrls.c:711 msgid "Spatial Scale Mode:" msgstr "" -#: ../src/uvc_h264.c:737 +#: ../guvcview/gui_gtk3_h264ctrls.c:741 msgid "Frame Interval (100ns units):" msgstr "" -#: ../src/uvc_h264.c:772 +#: ../guvcview/gui_gtk3_h264ctrls.c:778 msgid "Bit Rate:" msgstr "Bit Oranı:" -#: ../src/uvc_h264.c:795 +#: ../guvcview/gui_gtk3_h264ctrls.c:801 msgid "Hints:" msgstr "" -#: ../src/uvc_h264.c:800 +#: ../guvcview/gui_gtk3_h264ctrls.c:806 msgid "Resolution" msgstr "ÇözĂŒnĂŒrlĂŒk" -#: ../src/uvc_h264.c:804 +#: ../guvcview/gui_gtk3_h264ctrls.c:810 msgid "Profile" msgstr "Profil" -#: ../src/uvc_h264.c:808 +#: ../guvcview/gui_gtk3_h264ctrls.c:814 +#, fuzzy msgid "Rate Control" -msgstr "" +msgstr "Resim Denetimleri" -#: ../src/uvc_h264.c:812 +#: ../guvcview/gui_gtk3_h264ctrls.c:818 msgid "Usage Type" msgstr "" -#: ../src/uvc_h264.c:816 +#: ../guvcview/gui_gtk3_h264ctrls.c:822 msgid "Slice Mode" msgstr "" -#: ../src/uvc_h264.c:820 +#: ../guvcview/gui_gtk3_h264ctrls.c:826 msgid "Slice Unit" msgstr "" -#: ../src/uvc_h264.c:824 +#: ../guvcview/gui_gtk3_h264ctrls.c:830 msgid "MVC View" msgstr "" -#: ../src/uvc_h264.c:828 +#: ../guvcview/gui_gtk3_h264ctrls.c:834 msgid "Temporal Scale" msgstr "" -#: ../src/uvc_h264.c:832 +#: ../guvcview/gui_gtk3_h264ctrls.c:838 msgid "SNR Scale" msgstr "" -#: ../src/uvc_h264.c:836 +#: ../guvcview/gui_gtk3_h264ctrls.c:842 msgid "Spatial Scale" msgstr "" -#: ../src/uvc_h264.c:840 +#: ../guvcview/gui_gtk3_h264ctrls.c:846 msgid "Spatial Layer Ratio" msgstr "" -#: ../src/uvc_h264.c:844 +#: ../guvcview/gui_gtk3_h264ctrls.c:850 +#, fuzzy msgid "Frame Interval" -msgstr "" +msgstr "Kare Oranı:" -#: ../src/uvc_h264.c:848 +#: ../guvcview/gui_gtk3_h264ctrls.c:854 msgid "Leaky Bucket Size" msgstr "" -#: ../src/uvc_h264.c:852 +#: ../guvcview/gui_gtk3_h264ctrls.c:858 +#, fuzzy msgid "Bit Rate" -msgstr "" +msgstr "Bit Oranı:" -#: ../src/uvc_h264.c:856 ../src/uvc_h264.c:1250 +#: ../guvcview/gui_gtk3_h264ctrls.c:862 ../guvcview/gui_gtk3_h264ctrls.c:1220 msgid "CABAC" msgstr "" -#: ../src/uvc_h264.c:860 +#: ../guvcview/gui_gtk3_h264ctrls.c:866 msgid "(I) Frame Period" msgstr "" -#: ../src/uvc_h264.c:907 +#: ../guvcview/gui_gtk3_h264ctrls.c:878 msgid "Slice Mode:" msgstr "" -#: ../src/uvc_h264.c:914 +#: ../guvcview/gui_gtk3_h264ctrls.c:885 msgid "no multiple slices" msgstr "" -#: ../src/uvc_h264.c:916 +#: ../guvcview/gui_gtk3_h264ctrls.c:887 msgid "bits/slice" msgstr "" -#: ../src/uvc_h264.c:918 +#: ../guvcview/gui_gtk3_h264ctrls.c:889 msgid "Mbits/slice" msgstr "" -#: ../src/uvc_h264.c:920 +#: ../guvcview/gui_gtk3_h264ctrls.c:891 msgid "slices/frame" msgstr "" -#: ../src/uvc_h264.c:929 +#: ../guvcview/gui_gtk3_h264ctrls.c:900 msgid "Slice Units:" msgstr "" -#: ../src/uvc_h264.c:950 +#: ../guvcview/gui_gtk3_h264ctrls.c:921 +#, fuzzy msgid "Profile:" -msgstr "" +msgstr "Profil" -#: ../src/uvc_h264.c:957 +#: ../guvcview/gui_gtk3_h264ctrls.c:928 +#, fuzzy msgid "Baseline Profile" -msgstr "" +msgstr "Profili Kaydet" -#: ../src/uvc_h264.c:959 +#: ../guvcview/gui_gtk3_h264ctrls.c:930 +#, fuzzy msgid "Main Profile" -msgstr "" +msgstr "Profili Kaydet" -#: ../src/uvc_h264.c:961 +#: ../guvcview/gui_gtk3_h264ctrls.c:932 +#, fuzzy msgid "High Profile" -msgstr "" +msgstr "Profil" -#: ../src/uvc_h264.c:963 +#: ../guvcview/gui_gtk3_h264ctrls.c:934 msgid "Scalable Baseline Profile" msgstr "" -#: ../src/uvc_h264.c:965 +#: ../guvcview/gui_gtk3_h264ctrls.c:936 +#, fuzzy msgid "Scalable High Profile" -msgstr "" +msgstr "Profili Kaydet" -#: ../src/uvc_h264.c:967 +#: ../guvcview/gui_gtk3_h264ctrls.c:938 msgid "Multiview High Profile" msgstr "" -#: ../src/uvc_h264.c:969 +#: ../guvcview/gui_gtk3_h264ctrls.c:940 +#, fuzzy msgid "Stereo High Profile" -msgstr "" +msgstr "Profili Kaydet" -#: ../src/uvc_h264.c:1008 +#: ../guvcview/gui_gtk3_h264ctrls.c:979 +#, fuzzy msgid "Profile flags:" -msgstr "" +msgstr "Profil" -#: ../src/uvc_h264.c:1033 +#: ../guvcview/gui_gtk3_h264ctrls.c:1004 msgid "(I) Frame Period (ms):" msgstr "" -#: ../src/uvc_h264.c:1054 +#: ../guvcview/gui_gtk3_h264ctrls.c:1025 msgid "Estimated Video Delay (ms):" msgstr "" -#: ../src/uvc_h264.c:1075 +#: ../guvcview/gui_gtk3_h264ctrls.c:1046 msgid "Estimated Max Config Delay (ms):" msgstr "" -#: ../src/uvc_h264.c:1096 +#: ../guvcview/gui_gtk3_h264ctrls.c:1067 msgid "Usage Type:" msgstr "" -#: ../src/uvc_h264.c:1103 +#: ../guvcview/gui_gtk3_h264ctrls.c:1074 msgid "Real-time" msgstr "" -#: ../src/uvc_h264.c:1105 +#: ../guvcview/gui_gtk3_h264ctrls.c:1076 msgid "Broadcast" msgstr "" -#: ../src/uvc_h264.c:1107 +#: ../guvcview/gui_gtk3_h264ctrls.c:1078 msgid "Storage" msgstr "" -#: ../src/uvc_h264.c:1109 +#: ../guvcview/gui_gtk3_h264ctrls.c:1080 msgid "(0) Non-scalable single layer AVC" msgstr "" -#: ../src/uvc_h264.c:1111 +#: ../guvcview/gui_gtk3_h264ctrls.c:1082 msgid "(1) SVC temporal scalability with hierarchical P" msgstr "" -#: ../src/uvc_h264.c:1113 +#: ../guvcview/gui_gtk3_h264ctrls.c:1084 msgid "(2q) SVC temporal scalability + Quality/SNR scalability" msgstr "" -#: ../src/uvc_h264.c:1115 +#: ../guvcview/gui_gtk3_h264ctrls.c:1086 msgid "(2s) SVC temporal scalability + spatial scalability" msgstr "" -#: ../src/uvc_h264.c:1117 +#: ../guvcview/gui_gtk3_h264ctrls.c:1088 msgid "(3) Full SVC scalability" msgstr "" -#: ../src/uvc_h264.c:1131 +#: ../guvcview/gui_gtk3_h264ctrls.c:1102 msgid "SNR Control Mode:" msgstr "" -#: ../src/uvc_h264.c:1138 +#: ../guvcview/gui_gtk3_h264ctrls.c:1109 msgid "No SNR Enhancement Layer" msgstr "" -#: ../src/uvc_h264.c:1140 +#: ../guvcview/gui_gtk3_h264ctrls.c:1111 msgid "CGS NonRewrite (2 Layer)" msgstr "" -#: ../src/uvc_h264.c:1142 +#: ../guvcview/gui_gtk3_h264ctrls.c:1113 msgid "CGS NonRewrite (3 Layer)" msgstr "" -#: ../src/uvc_h264.c:1144 +#: ../guvcview/gui_gtk3_h264ctrls.c:1115 msgid "CGS Rewrite (2 Layer)" msgstr "" -#: ../src/uvc_h264.c:1146 +#: ../guvcview/gui_gtk3_h264ctrls.c:1117 msgid "CGS Rewrite (3 Layer)" msgstr "" -#: ../src/uvc_h264.c:1148 +#: ../guvcview/gui_gtk3_h264ctrls.c:1119 msgid "MGS (2 Layer)" msgstr "" -#: ../src/uvc_h264.c:1173 +#: ../guvcview/gui_gtk3_h264ctrls.c:1144 msgid "Stream Mux Enable" msgstr "" -#: ../src/uvc_h264.c:1180 +#: ../guvcview/gui_gtk3_h264ctrls.c:1151 msgid "Embed H.264 aux stream" msgstr "" -#: ../src/uvc_h264.c:1182 +#: ../guvcview/gui_gtk3_h264ctrls.c:1153 msgid "Embed YUY2 aux stream" msgstr "" -#: ../src/uvc_h264.c:1184 +#: ../guvcview/gui_gtk3_h264ctrls.c:1155 msgid "Embed NV12 aux stream" msgstr "" -#: ../src/uvc_h264.c:1204 +#: ../guvcview/gui_gtk3_h264ctrls.c:1175 msgid "MJPG payload container" msgstr "" -#: ../src/uvc_h264.c:1219 +#: ../guvcview/gui_gtk3_h264ctrls.c:1189 +#, fuzzy msgid "Stream Format:" -msgstr "" +msgstr "Dosya Biçimi:" -#: ../src/uvc_h264.c:1227 +#: ../guvcview/gui_gtk3_h264ctrls.c:1197 msgid "Byte stream format (H.264 Annex-B)" msgstr "" -#: ../src/uvc_h264.c:1229 +#: ../guvcview/gui_gtk3_h264ctrls.c:1199 +#, fuzzy msgid "NAL stream format" -msgstr "" +msgstr "AVI - avi biçimi" -#: ../src/uvc_h264.c:1240 +#: ../guvcview/gui_gtk3_h264ctrls.c:1210 msgid "Entropy CABAC:" msgstr "" -#: ../src/uvc_h264.c:1248 +#: ../guvcview/gui_gtk3_h264ctrls.c:1218 msgid "CAVLC" msgstr "" -#: ../src/uvc_h264.c:1261 +#: ../guvcview/gui_gtk3_h264ctrls.c:1231 msgid "Picture timing SEI" msgstr "" -#: ../src/uvc_h264.c:1268 +#: ../guvcview/gui_gtk3_h264ctrls.c:1238 +#, fuzzy msgid "B Frames:" -msgstr "" +msgstr "en yĂŒks. B karesi: " -#: ../src/uvc_h264.c:1293 +#: ../guvcview/gui_gtk3_h264ctrls.c:1263 msgid "Preview Flipped" msgstr "" -#: ../src/uvc_h264.c:1300 +#: ../guvcview/gui_gtk3_h264ctrls.c:1270 msgid "Additional MVC Views:" msgstr "" -#: ../src/uvc_h264.c:1325 +#: ../guvcview/gui_gtk3_h264ctrls.c:1295 msgid "Simulcast stream index:" msgstr "" -#: ../src/uvc_h264.c:1350 +#: ../guvcview/gui_gtk3_h264ctrls.c:1320 msgid "Spatial Layer Ratio:" msgstr "" -#: ../src/uvc_h264.c:1379 +#: ../guvcview/gui_gtk3_h264ctrls.c:1349 msgid "Leaky Bucket Size (ms):" msgstr "" #. encoder reset -#: ../src/uvc_h264.c:1406 +#: ../guvcview/gui_gtk3_h264ctrls.c:1376 +#, fuzzy msgid "Encoder Reset" -msgstr "" +msgstr "Kaydırmayı Sıfırla" -#. -#. h264_controls->probe_button = gtk_button_new_with_label(_("PROBE")); -#. g_signal_connect (GTK_BUTTON(h264_controls->probe_button), "clicked", +#. +#. GtkWidget *probe_button = gtk_button_new_with_label(_("PROBE")); +#. g_signal_connect (GTK_BUTTON(probe_button), "clicked", #. G_CALLBACK (h264_probe_button_clicked), all_data); -#. -#. gtk_grid_attach (GTK_GRID(table), h264_controls->probe_button, 0, line, 1 ,1); -#. gtk_widget_show(h264_controls->probe_button); -#. -#: ../src/uvc_h264.c:1421 +#. +#. gtk_grid_attach (GTK_GRID(h264_controls_grid), probe_button, 0, line, 1 ,1); +#. gtk_widget_show(probe_button); +#. +#: ../guvcview/gui_gtk3_h264ctrls.c:1391 msgid "COMMIT" msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:70 +msgid "Settings" +msgstr "Ayarlar" + +#: ../guvcview/gui_gtk3_menu.c:73 +msgid "Hardware Defaults" +msgstr "Donanım Varsayılanları" + +#: ../guvcview/gui_gtk3_menu.c:81 +msgid "Camera Button" +msgstr "Kamera DĂŒÄŸmesi" + +#: ../guvcview/gui_gtk3_menu.c:86 +msgid "Capture Image" +msgstr "Resim Yakala" + +#: ../guvcview/gui_gtk3_menu.c:91 +msgid "Capture Video" +msgstr "Video Yakala" + +#: ../guvcview/gui_gtk3_menu.c:134 +msgid "Photo" +msgstr "Fotoğraf" + +#: ../guvcview/gui_gtk3_menu.c:135 ../guvcview/gui_gtk3_menu.c:159 +msgid "File" +msgstr "Dosya" + +#: ../guvcview/gui_gtk3_menu.c:136 ../guvcview/gui_gtk3_menu.c:160 +msgid "Increment Filename" +msgstr "Dosya Adını Arttır" + +#: ../guvcview/gui_gtk3_menu.c:158 +msgid "Video" +msgstr "GörĂŒntĂŒ" + +#: ../guvcview/gui_gtk3_menu.c:175 +msgid "Video Codec" +msgstr "Video Kodlayıcısı" + +#: ../guvcview/gui_gtk3_menu.c:202 +msgid "Video Codec Properties" +msgstr "Video Kodlayıcı Özellikleri" + +#: ../guvcview/gui_gtk3_menu.c:208 +msgid "Audio Codec" +msgstr "Ses Kodlayıcı" + +#: ../guvcview/gui_gtk3_menu.c:235 +msgid "Audio Codec Properties" +msgstr "Ses Kodlayıcı Özellikleri" + +#: ../guvcview/gui_gtk3_v4l2ctrls.c:174 +msgid "Left" +msgstr "Sol" + +#: ../guvcview/gui_gtk3_v4l2ctrls.c:175 +msgid "Right" +msgstr "Sağ" + +#: ../guvcview/gui_gtk3_v4l2ctrls.c:179 +msgid "Down" +msgstr "AƟağı" + +#: ../guvcview/gui_gtk3_v4l2ctrls.c:180 +msgid "Up" +msgstr "Yukarı" + +#. turn it into a menu control +#: ../guvcview/gui_gtk3_v4l2ctrls.c:296 +msgid "8 bit" +msgstr "8 bit" + +#: ../guvcview/gui_gtk3_v4l2ctrls.c:296 +msgid "12 bit" +msgstr "12 bit" + +#. add a virtual control for software autofocus +#: ../guvcview/gui_gtk3_v4l2ctrls.c:348 +msgid "Auto Focus (continuous)" +msgstr "Otomatik Odakla (sĂŒrekli)" + +#: ../guvcview/gui_gtk3_v4l2ctrls.c:349 +msgid "set Focus" +msgstr "Odak ayarla" + +#. control_widgets_list[n].widget2 = gtk_button_new_from_stock(GTK_STOCK_APPLY); +#. control_widgets_list[n].widget2= gtk_button_new_from_stock(GTK_STOCK_APPLY); +#. control_widgets_list[n].widget2 = gtk_button_new_from_stock(GTK_STOCK_APPLY); +#: ../guvcview/gui_gtk3_v4l2ctrls.c:433 ../guvcview/gui_gtk3_v4l2ctrls.c:456 +#: ../guvcview/gui_gtk3_v4l2ctrls.c:478 +#, fuzzy +msgid "_Apply" +msgstr "Uygula" + +#: ../guvcview/gui_gtk3_videoctrls.c:144 +msgid "Frame Rate:" +msgstr "Kare Oranı:" + +#: ../guvcview/gui_gtk3_videoctrls.c:204 +msgid "Resolution:" +msgstr "ÇözĂŒnĂŒrlĂŒk:" + +#: ../guvcview/gui_gtk3_videoctrls.c:254 +msgid "Camera Output:" +msgstr "Kamera Çıktısı:" + +#: ../guvcview/gui_gtk3_videoctrls.c:287 +msgid "---- Video Filters ----" +msgstr "---- Video Filtreleri----" + +#. Mirror FX +#: ../guvcview/gui_gtk3_videoctrls.c:307 +msgid " Mirror" +msgstr " Ayna" + +#. Upturn FX +#: ../guvcview/gui_gtk3_videoctrls.c:319 +msgid " Invert" +msgstr " Tersine Çevir" + +#. Negate FX +#: ../guvcview/gui_gtk3_videoctrls.c:331 +msgid " Negative" +msgstr " Negatif" + +#. Mono FX +#: ../guvcview/gui_gtk3_videoctrls.c:343 +msgid " Mono" +msgstr " Mono" + +#. Pieces FX +#: ../guvcview/gui_gtk3_videoctrls.c:356 +msgid " Pieces" +msgstr " Parçalar" + +#. Particles +#: ../guvcview/gui_gtk3_videoctrls.c:369 +msgid " Particles" +msgstr " Tanecikler" + +#: ../guvcview/options.c:51 +msgid "Print help" +msgstr "" + +#: ../guvcview/options.c:58 +#, fuzzy +msgid "Print version" +msgstr "SĂŒrĂŒmĂŒ yazdırır" + +#: ../guvcview/options.c:64 +msgid "LEVEL" +msgstr "" + +#: ../guvcview/options.c:65 +msgid "Set Verbosity level (def: 0)" +msgstr "" + +#: ../guvcview/options.c:71 +msgid "DEVICE" +msgstr "" + +#: ../guvcview/options.c:72 +#, fuzzy +msgid "Set device name (def: /dev/video0)" +msgstr "Kullanılacak Video Aygıtı [varsayılan: /dev/video0]" + +#: ../guvcview/options.c:78 +msgid "METHOD" +msgstr "" + +#: ../guvcview/options.c:79 +#, fuzzy +msgid "Set capture method [read | mmap (def)]" +msgstr "Yakalama yöntemi (1-mmap (varsayılan) 2-read)" + +#: ../guvcview/options.c:85 +msgid "WIDTHxHEIGHT" +msgstr "" + +#: ../guvcview/options.c:86 +msgid "Request resolution (e.g 640x480)" +msgstr "" + +#: ../guvcview/options.c:92 +msgid "FOURCC" +msgstr "" + +#: ../guvcview/options.c:93 +msgid "Request format (e.g MJPG)" +msgstr "" + +#: ../guvcview/options.c:99 +msgid "RENDER_API" +msgstr "" + +#: ../guvcview/options.c:100 +msgid "Select render API (e.g none; sdl)" +msgstr "" + +#: ../guvcview/options.c:106 +msgid "AUDIO_API" +msgstr "" + +#: ../guvcview/options.c:107 +msgid "Select audio API (e.g none; port; pulse)" +msgstr "" + +#: ../guvcview/options.c:113 +msgid "AUDIO_DEVICE" +msgstr "" + +#: ../guvcview/options.c:114 +msgid "Select audio device index for selected api (0..N)" +msgstr "" + +#: ../guvcview/options.c:120 +msgid "GUI_API" +msgstr "" + +#: ../guvcview/options.c:121 +msgid "Select GUI API (e.g none; gtk3)" +msgstr "" + +#: ../guvcview/options.c:127 ../guvcview/options.c:134 +msgid "CODEC" +msgstr "" + +#: ../guvcview/options.c:128 +msgid "Audio codec [pcm mp2 mp3 aac ac3 vorb]" +msgstr "" + +#: ../guvcview/options.c:135 +msgid "Video codec [raw mjpg mpeg flv1 wmv1 mpg2 mp43 dx50 h264 vp80 theo]" +msgstr "" + +#: ../guvcview/options.c:141 ../guvcview/options.c:148 +#: ../guvcview/options.c:155 +msgid "FILENAME" +msgstr "" + +#: ../guvcview/options.c:142 +#, fuzzy +msgid "load control profile" +msgstr "Profili YĂŒkle" + +#: ../guvcview/options.c:149 +msgid "filename for captured video)" +msgstr "" + +#: ../guvcview/options.c:156 +msgid "filename for captured image)" +msgstr "" + +#: ../guvcview/options.c:162 ../guvcview/options.c:169 +msgid "TIME_IN_SEC" +msgstr "" + +#: ../guvcview/options.c:163 +msgid "time (double) in sec. for video capture)" +msgstr "" + +#: ../guvcview/options.c:170 +msgid "time (double) in sec. between captured photos)" +msgstr "" + +#: ../guvcview/options.c:176 +msgid "TOTAL" +msgstr "" + +#: ../guvcview/options.c:177 +msgid "total number of captured photos)" +msgstr "" + +#: ../guvcview/options.c:184 +msgid "Start in control panel mode" +msgstr "" + +#: ../guvcview/options.c:307 +#, fuzzy, c-format +msgid "" +"Guvcview version %s\n" +"\n" +msgstr "Guvcview Uyarısı:" + +#: ../guvcview/options.c:308 +#, c-format +msgid "" +"Usage:\n" +" guvcview [OPTIONS]\n" +"\n" +msgstr "" + +#: ../guvcview/options.c:309 +#, c-format +msgid "OPTIONS:\n" +msgstr "" + +#: ../guvcview/video_capture.c:819 +#, fuzzy, c-format +msgid "saving video to %s" +msgstr "video yakalanıyor" + +#. if(debug_level > 1) +#. printf("GUVCVIEW: saving image to %s\n", img_filename); +#: ../guvcview/video_capture.c:1069 +#, c-format +msgid "saving image to %s" +msgstr "" + +#~ msgid "MPEG2 - (lavc)" +#~ msgstr "MPEG2 - (lavc)" + +#~ msgid "MP3 - (lavc)" +#~ msgstr "MP3 - (lavc)" + +#~ msgid "Dolby AC3 - (lavc)" +#~ msgstr "Dolby AC3 - (lavc)" + +#~ msgid "ACC Low - (faac)" +#~ msgstr "ACC Low - (faac)" + +#~ msgid "Audio" +#~ msgstr "Ses" + +#~ msgid " Sound" +#~ msgstr " Ses" + +#~ msgid " Show VU meter" +#~ msgstr " VU Metreyi Göster" + +#~ msgid "---- Audio Effects ----" +#~ msgstr "---- Ses Efektleri ----" + +#~ msgid "Save File" +#~ msgstr "Dosyayı Kaydet" + +#~ msgid "codec values" +#~ msgstr "çözĂŒcĂŒ değerleri" + +#~ msgid "capturing photo to" +#~ msgstr "fotoğraf yakalanıyor" + +#~ msgid "Cap. Video" +#~ msgstr "Video Yakala" + +#~ msgid "GUVCViewer Controls" +#~ msgstr "GUVCViewer Denetimleri" + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to open device" +#~ msgstr "" +#~ "Guvcview hatası:\n" +#~ "\n" +#~ "Aygıt açılamıyor" + +#~ msgid "" +#~ "Please make sure the camera is connected\n" +#~ "and that the correct driver is installed." +#~ msgstr "" +#~ "Kameranızın bağlı ve doğru sĂŒrĂŒcĂŒlerinin\n" +#~ "yĂŒklendiğinden emin olun." + +#~ msgid "" +#~ "Guvcview:\n" +#~ "\n" +#~ "UVC Extension controls" +#~ msgstr "" +#~ "Guvcview:\n" +#~ "\n" +#~ "UVC Uzantı denetimleri" + +#~ msgid "Extension controls were added to the UVC driver" +#~ msgstr "Uzantı denetimleri UVC sĂŒrĂŒcĂŒsĂŒne eklendi" + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "UVC Extension controls" +#~ msgstr "" +#~ "Guvcview hatası:\n" +#~ "\n" +#~ "UVC Uzantı denetimleri" + +#~ msgid "" +#~ "An error occurred while adding extension\n" +#~ "controls to the UVC driver\n" +#~ "Make sure you run guvcview as root (or sudo)." +#~ msgstr "" +#~ "UVC sĂŒrĂŒcĂŒsĂŒne uzantı denetimleri eklenirken\n" +#~ "bir hata oluƟtu\n" +#~ "guvcview'i yönetici (veya sudo) ile çalÄ±ĆŸtırdığınızdan\n" +#~ "emin olun" + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Can't set a valid video stream for guvcview" +#~ msgstr "" +#~ "Guvcview hatası:\n" +#~ "\n" +#~ "guvcview için geçerli video akÄ±ĆŸÄ± ayarlanamıyor" + +#~ msgid "" +#~ "Make sure your device driver is v4l2 compliant\n" +#~ "and that it is properly installed." +#~ msgstr "" +#~ "Aygıt sĂŒrĂŒcĂŒnĂŒzĂŒn v4l2 uyumlu olduğundan ve\n" +#~ "doğru bir Ɵekilde yĂŒklendiğinden emin olun." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to start with minimum setup" +#~ msgstr "" +#~ "Guvcview hatası:\n" +#~ "\n" +#~ "Asgari ayarlama baƟlatılamadı" + +#~ msgid "Please reconnect your camera." +#~ msgstr "LĂŒtfen kameranı tekrar bağla." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Couldn't query device capabilities" +#~ msgstr "" +#~ "Guvcview hatası:\n" +#~ "\n" +#~ "Aygıt özellikleri sorgulanamadı" + +#~ msgid "Make sure the device driver supports v4l2." +#~ msgstr "Aygıt sĂŒrĂŒcĂŒnĂŒzĂŒn v4l2 desteklediğinden emin olun." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Read method error" +#~ msgstr "" +#~ "Guvcview hatası:\n" +#~ "\n" +#~ "Okuma yöntemi hatası" + +#~ msgid "Please try mmap instead (--capture_method=1)." +#~ msgstr "mmap deneyin (--capture_method=1)." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to allocate Buffers" +#~ msgstr "" +#~ "Guvcview hatası:\n" +#~ "\n" +#~ "Tamponlar ayrılamıyor" + +#~ msgid "Please try restarting your system." +#~ msgstr "LĂŒtfen sistemi tekrar baƟlatmayı dene." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to create Video Thread" +#~ msgstr "" +#~ "Guvcview hatası:\n" +#~ "\n" +#~ "Video İƟ Parçacığı oluƟturulamıyor" + +#~ msgid "Please report it to http://developer.berlios.de/bugs/?group_id=8179" +#~ msgstr "" +#~ "LĂŒtfen http://developer.berlios.de/bugs/?group_id=8179 adresine bildirin" + +#~ msgid "Bitmap (Bmp)" +#~ msgstr "Bitmap (Bmp)" + +#~ msgid "Portable Network Graphics (Png)" +#~ msgstr "TaĆŸÄ±nabilir Ağ Grafikleri (Png)" + +#~ msgid "Displays debug information" +#~ msgstr "Hata ayıklama bilgisini görĂŒntĂŒler" + +#~ msgid "Exit after adding UVC extension controls (needs root/sudo)" +#~ msgstr "" +#~ "UVC uzantı denetimlerini ekledikten sonra çık (yönetici/sudo gerektirir)" + +#~ msgid "Don't stream video (image controls only)" +#~ msgstr "Video'yu akÄ±ĆŸ yapma (sadece resim denetimleri)" + +#~ msgid "Don't display a GUI" +#~ msgstr "Grafiksel ArayĂŒz görĂŒntĂŒleme" + +#~ msgid "Configuration file" +#~ msgstr "Yapılandırma dosyası" + +#~ msgid "Hardware accelaration (enable(1) | disable(0))" +#~ msgstr "Donanım hızlandırma (enable(1) | disable(0))" + +#~ msgid "" +#~ "Pixel format(mjpg|jpeg|yuyv|yvyu|uyvy|yyuv|yu12|yv12|nv12|nv21|nv16|nv61|" +#~ "y41p|grey|y10b|y16 |s501|s505|s508|gbrg|grbg|ba81|rggb|bgr3|rgb3)" +#~ msgstr "" +#~ "Piksel biçimi(mjpg|jpeg|yuyv|yvyu|uyvy|yyuv|yu12|yv12|nv12|nv21|nv16|nv61|" +#~ "y41p|grey|y10b|y16 |s501|s505|s508|gbrg|grbg|ba81|rggb|bgr3|rgb3)" + +#~ msgid "Frame size, default: 640x480" +#~ msgstr "Çerçeve boyutu, varsayılan: 640x480" + +#~ msgid "Image capture interval in seconds" +#~ msgstr "Resim yakalama aralığı (saniye)" + +#~ msgid "Number of Pictures to capture" +#~ msgstr "Yakalanacak Resim Sayısı" + +#~ msgid "Video File name (capture from start)" +#~ msgstr "Video Dosya adı (baƟlangıçtan yakala)" + +#~ msgid "Video capture time (in seconds)" +#~ msgstr "Video yakalama sĂŒresi (saniye)" + +#~ msgid "Exits guvcview after closing video" +#~ msgstr "Video kapatıldıktan sonra guvcview'den çıkar" + +#~ msgid "Number of initial frames to skip" +#~ msgstr "BaƟlangıçta atlanacak kare sayısı" + +#~ msgid "Show FPS value (enable(1) | disable (0))" +#~ msgstr "FPS değerini göster (enable(1) | disable (0))" + +#~ msgid "Load Profile at start" +#~ msgstr "BaƟlangıçta Profil YĂŒkle" + +#~ msgid "- local options" +#~ msgstr "- yerel seçenekler" + +#~ msgid "Cap. Image" +#~ msgstr "Resim Yakala" + +#~ msgid "Not enough free space left on disk" +#~ msgstr "Diskte yeterli boƟ yer yok" + +#~ msgid "YUY2 - uncomp YUV" +#~ msgstr "YUY2 - sıkÄ±ĆŸtırılmamÄ±ĆŸ YUV" + +#~ msgid "RGB - uncomp BMP" +#~ msgstr "RGB - sıkÄ±ĆŸtırılmamÄ±ĆŸ BMP" + +#~ msgid "MKV - Matroska format" +#~ msgstr "MKV - Matroska biçimi" + +#~ msgid "WEBM - format" +#~ msgstr "WEBM - biçimi" + +#~ msgid " Show" +#~ msgstr " Göster" + +#~ msgid "Quality:" +#~ msgstr "Kalite:" diff -Nru guvcview-1.7.3/po/uk.po guvcview-2.0.1+ubuntu1~ppa1/po/uk.po --- guvcview-1.7.3/po/uk.po 2014-03-24 22:56:28.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/po/uk.po 2014-10-05 10:41:44.000000000 +0000 @@ -7,1421 +7,1607 @@ msgstr "" "Project-Id-Version: guvcview\n" "Report-Msgid-Bugs-To: pj.assis@gmail.com\n" -"POT-Creation-Date: 2013-11-14 22:15+0000\n" +"POT-Creation-Date: 2014-08-17 22:49+0100\n" "PO-Revision-Date: 2013-02-25 05:37+0000\n" "Last-Translator: Paulo Assis \n" "Language-Team: Ukrainian \n" +"Language: uk\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-12-08 10:36+0000\n" -"X-Generator: Launchpad (build 16869)\n" -"Language: uk\n" - -#: ../data/guvcview.desktop.in.in.h:1 -msgid "guvcview" -msgstr "" - -#: ../data/guvcview.desktop.in.in.h:2 -msgid "GTK UVC video viewer" -msgstr "" - -#: ../data/guvcview.desktop.in.in.h:3 -msgid "A video viewer and capturer for the linux uvc driver" -msgstr "" - -#: ../src/acodecs.c:59 -msgid "PCM - uncompressed (16 bit)" -msgstr "" - -#: ../src/acodecs.c:76 -msgid "MPEG2 - (lavc)" -msgstr "" - -#: ../src/acodecs.c:93 -msgid "MP3 - (lavc)" -msgstr "" - -#: ../src/acodecs.c:110 -msgid "Dolby AC3 - (lavc)" -msgstr "" - -#: ../src/acodecs.c:127 -msgid "ACC Low - (faac)" -msgstr "" - -#: ../src/acodecs.c:144 -msgid "Vorbis" -msgstr "" - -#: ../src/audio_tab.c:87 -msgid "Audio" -msgstr "ĐŃƒĐŽŃ–ĐŸ" - -#: ../src/audio_tab.c:105 -msgid " Sound" -msgstr " ЗĐČуĐș" - -#. VU meter on the image (OSD) -#: ../src/audio_tab.c:116 -msgid " Show VU meter" -msgstr "" - -#: ../src/audio_tab.c:128 -msgid "Audio API:" -msgstr "ĐŃƒĐŽŃ–ĐŸ API:" - -#: ../src/audio_tab.c:139 -msgid "PORTAUDIO" -msgstr "PORTAUDIO" - -#: ../src/audio_tab.c:140 -msgid "PULSEAUDIO" -msgstr "PULSEAUDIO" - -#: ../src/audio_tab.c:156 ../src/audio_tab.c:179 -msgid "Input Device:" -msgstr "ПростріĐč ĐČĐČĐŸĐŽŃƒ:" - -#: ../src/audio_tab.c:189 ../src/audio_tab.c:221 -msgid "Dev. Default" -msgstr "ПростріĐč ĐżĐŸ Đ·Đ°ĐŒĐŸĐČч." - -#: ../src/audio_tab.c:211 -msgid "Sample Rate:" -msgstr "Đ§Đ°ŃŃ‚ĐŸŃ‚Đ° ЎОсĐșрДЎОтації:" - -#: ../src/audio_tab.c:222 -msgid "1 - mono" -msgstr "1 - ĐŒĐŸĐœĐŸ" - -#: ../src/audio_tab.c:223 -msgid "2 - stereo" -msgstr "2 - ŃŃ‚Đ”Ń€Đ”ĐŸ" - -#: ../src/audio_tab.c:258 -msgid "Channels:" -msgstr "ĐšĐ°ĐœĐ°Đ»Đž:" - -#: ../src/audio_tab.c:309 -msgid "---- Audio Effects ----" -msgstr "---- Đ•Ń„Đ”Đșто Đ°ŃƒĐŽŃ–ĐŸ ----" - -#. Echo -#: ../src/audio_tab.c:328 -msgid " Echo" -msgstr " Đ•Ń…ĐŸ" - -#. FUZZ -#: ../src/audio_tab.c:339 -msgid " Fuzz" -msgstr " Пух" - -#. Reverb -#: ../src/audio_tab.c:351 -msgid " Reverb" -msgstr " Đ Đ”ĐČĐ”Ń€Đ±Đ°Ń†Ń–Ń" - -#. WahWah -#: ../src/audio_tab.c:363 -msgid " WahWah" -msgstr " ВахВах" - -#. Ducky -#: ../src/audio_tab.c:375 -msgid " Ducky" -msgstr " Đ“ĐŸĐ»ŃƒĐ±ĐșĐ°" - -#: ../src/callbacks.c:109 -msgid "Error" -msgstr "ĐŸĐŸĐŒĐžĐ»ĐșĐ°" - -#: ../src/callbacks.c:133 -msgid "" -"\n" -"You have more than one video device installed.\n" -"Do you want to try another one ?\n" -msgstr "" -"\n" -"Đ’ŃŃ‚Đ°ĐœĐŸĐČĐ»Đ”ĐœĐŸ Đ±Ń–Đ»ŃŒŃˆĐ” ĐŸĐŽĐœĐŸĐłĐŸ ĐČŃ–ĐŽĐ”ĐŸ ĐżŃ€ĐžŃŃ‚Ń€ĐŸŃŽ.\n" -"Во Ń…ĐŸŃ‡Đ”Ń‚Đ” ŃĐżŃ€ĐŸĐ±ŃƒĐČато щД ĐŸĐŽĐžĐœ?\n" - -#. Devices -#: ../src/callbacks.c:140 ../src/video_tab.c:111 -msgid "Device:" -msgstr "ПростріĐč:" - -#: ../src/callbacks.c:272 -msgid "Save File" -msgstr "ЗбДрДгтО" - -#: ../src/callbacks.c:284 -msgid "File Format:" -msgstr "" - -#: ../src/callbacks.c:455 -msgid "codec values" -msgstr "Đ·ĐœĐ°Ń‡Đ”ĐœĐœŃ ĐșĐŸĐŽĐ”ĐșĐ°" - -#: ../src/callbacks.c:466 -msgid "" -" encoder fps: \n" -" (0 - use fps combobox value)" -msgstr "" -" Ń‡Đ°ŃŃ‚ĐŸŃ‚Đ° ĐșаЮріĐČ: \n" -" (0 - ĐČĐžĐșĐŸŃ€ĐžŃŃ‚Đ°Ń‚Đž Đ·ĐœĐ°Ń‡Đ”ĐœĐœŃ Đ· ĐČĐžĐżĐ°ĐŽĐ°ŃŽŃ‡ĐŸĐłĐŸ спОсĐșу)" - -#: ../src/callbacks.c:479 -msgid " monotonic pts" -msgstr "" - -#. bit rate -#: ../src/callbacks.c:486 ../src/callbacks.c:809 -msgid "bit rate: " -msgstr "бітрДĐčт: " - -#: ../src/callbacks.c:499 -msgid "qmax: " -msgstr "qmax: " - -#: ../src/callbacks.c:512 -msgid "qmin: " -msgstr "qmin: " - -#: ../src/callbacks.c:525 -msgid "max. qdiff: " -msgstr "ĐŒĐ°Đșс. qdiff: " - -#: ../src/callbacks.c:538 -msgid "dia size: " -msgstr "dia size: " - -#: ../src/callbacks.c:551 -msgid "pre dia size: " -msgstr "pre dia size: " - -#: ../src/callbacks.c:564 -msgid "pre me: " -msgstr "pre me: " - -#: ../src/callbacks.c:577 -msgid "pre cmp: " -msgstr "pre cmp: " - -#: ../src/callbacks.c:590 -msgid "cmp: " -msgstr "cmp: " - -#: ../src/callbacks.c:603 -msgid "sub cmp: " -msgstr "sub cmp: " - -#: ../src/callbacks.c:616 -msgid "last predictor count: " -msgstr "Đ·ĐœĐ°Ń‡Đ”ĐœĐœŃ Đ»Ń–Ń‡ĐžĐ»ŃŒĐœĐžĐșĐ° ĐżŃ€ĐŸĐłĐœĐŸĐ·ĐžŃŃ‚Đ°: " - -#: ../src/callbacks.c:629 -msgid "gop size: " -msgstr "gop size: " - -#: ../src/callbacks.c:642 -msgid "qcompress: " -msgstr "qcompress " - -#: ../src/callbacks.c:655 -msgid "qblur: " -msgstr "qblur: " - -#: ../src/callbacks.c:668 -msgid "subq: " -msgstr "subq: " - -#: ../src/callbacks.c:681 -msgid "framerefs: " -msgstr "framerefs: " - -#: ../src/callbacks.c:694 -msgid "me method: " -msgstr "me method: " - -#: ../src/callbacks.c:707 -msgid "mb decision: " -msgstr "mb decision: " - -#: ../src/callbacks.c:720 -msgid "max B frames: " -msgstr "max B frames: " - -#: ../src/callbacks.c:733 -msgid "num threads: " -msgstr "" - -#: ../src/callbacks.c:796 -msgid "audio codec values" -msgstr "Đ·ĐœĐ°Ń‡Đ”ĐœĐœŃ Đ°ŃƒĐŽŃ–ĐŸ-ĐșĐŸĐŽĐ”ĐșĐ°" - -#. sample format -#: ../src/callbacks.c:823 -msgid "sample format: " -msgstr "" - -#: ../src/callbacks.c:1311 -msgid "start new" -msgstr "Đ·Đ°ĐżŃƒŃŃ‚ĐžŃ‚Đž ĐœĐŸĐČĐžĐč" - -#: ../src/callbacks.c:1314 -msgid "restart" -msgstr "пДрДзаĐČĐ°ĐœŃ‚Đ°Đ¶." - -#: ../src/callbacks.c:1316 -msgid "new" -msgstr "ĐœĐŸĐČĐžĐč" - -#: ../src/callbacks.c:1318 -msgid "cancel" -msgstr "ĐČŃ–ĐŽĐŒŃ–ĐœĐžŃ‚Đž" - -#: ../src/callbacks.c:1323 -msgid "" -"launch new process or restart?.\n" -"\n" -msgstr "" -"Đ·Đ°ĐżŃƒŃŃ‚ĐžŃ‚Đž ĐœĐŸĐČĐžĐč ĐżŃ€ĐŸŃ†Đ”Ń, \n" -"чо пДрДзаĐČĐ°ĐœŃ‚Đ°Đ¶ĐžŃ‚Đž?\n" -"\n" - -#: ../src/callbacks.c:1780 ../src/guvcview.c:565 -msgid "Cap. Image (I)" -msgstr "" - -#. disable image controls -#: ../src/callbacks.c:1791 ../src/guvcview.c:690 ../src/timers.c:101 -msgid "capturing photo to" -msgstr "" - -#: ../src/callbacks.c:1850 ../src/guvcview.c:575 -msgid "Cap. Video (V)" -msgstr "" - -#: ../src/callbacks.c:1876 ../src/guvcview.c:740 -msgid "capturing video to" -msgstr "" - -#. vid capture enabled from start -#: ../src/callbacks.c:1911 ../src/guvcview.c:570 -msgid "Stop Video (V)" -msgstr "" - -#: ../src/callbacks.c:1967 ../src/menubar.c:66 -msgid "Save Profile" -msgstr "" - -#: ../src/callbacks.c:1980 ../src/menubar.c:65 -msgid "Load Profile" -msgstr "" - -#: ../src/create_video.c:1098 ../src/guvcview.c:732 -msgid "Cap. Video" -msgstr "Đ’Ń–ĐŽĐ”ĐŸ" - -#: ../src/guvcview.c:280 -msgid "Guvcview Video Capture" -msgstr "Đ—Đ°Ń…ĐŸĐżĐ»ŃŽĐČач ĐČŃ–ĐŽĐ”ĐŸ Guvcview" - -#: ../src/guvcview.c:292 -msgid "GUVCViewer Controls" -msgstr "ĐŸĐ°ĐœĐ”Đ»ŃŒ ĐœĐ°Đ»Đ°ŃˆŃ‚ŃƒĐČĐ°ĐœŃŒ Guvcview" - -#. can't open device -#: ../src/guvcview.c:342 -msgid "" -"Guvcview error:\n" -"\n" -"Unable to open device" -msgstr "" -"ĐŸĐŸĐŒĐžĐ»ĐșĐ°:\n" -"\n" -"ĐĐ” ĐŒĐŸĐ¶Ńƒ ĐČіЮĐșрото простріĐč" - -#: ../src/guvcview.c:343 -msgid "" -"Please make sure the camera is connected\n" -"and that the correct driver is installed." -msgstr "" -"ĐŸĐ”Ń€Đ”ĐșĐŸĐœĐ°ĐčŃ‚Đ”ŃŃŒ, Ń‰ĐŸ ĐșĐ°ĐŒĐ”Ń€Đ° піЮĐșĐ»ŃŽŃ‡Đ”ĐœĐ°\n" -"і ĐČŃŃ‚Đ°ĐœĐŸĐČĐ»Đ”ĐœĐŸ ĐČŃ–ĐŽĐżĐŸĐČŃ–ĐŽĐœĐžĐč ЮраĐčĐČДр." - -#. uvc extension controls OK, give warning and shutdown (called with --add_ctrls) -#: ../src/guvcview.c:348 -msgid "" -"Guvcview:\n" -"\n" -"UVC Extension controls" -msgstr "" -"Guvcview:\n" -"\n" -"Đ•Đ»Đ”ĐŒĐ”ĐœŃ‚Đž ĐșĐ”Ń€ŃƒĐČĐ°ĐœĐœŃ Ń€ĐŸĐ·ŃˆĐžŃ€Đ”ĐœĐœŃĐŒ UVC" - -#: ../src/guvcview.c:349 -msgid "Extension controls were added to the UVC driver" -msgstr "ĐšĐ”Ń€ŃƒŃŽŃ‡Ń– Đ”Đ»Đ”ĐŒĐ”ĐœŃ‚Đž Ń€ĐŸĐ·ŃˆĐžŃ€Đ”ĐœĐœŃ булО ĐŽĐŸĐŽĐ°ĐœŃ– ĐŽĐŸ ЮраĐčĐČĐ”Ń€Ńƒ UVC" - -#. uvc extension controls error - EACCES (needs root user) -#: ../src/guvcview.c:356 -msgid "" -"Guvcview error:\n" -"\n" -"UVC Extension controls" -msgstr "" -"ĐŸĐŸĐŒĐžĐ»ĐșĐ°:\n" -"\n" -"ĐšĐ”Ń€ŃƒŃŽŃ‡Ń– Đ”Đ»Đ”ĐŒĐ”ĐœŃ‚Đž UVC" - -#: ../src/guvcview.c:357 -msgid "" -"An error occurred while adding extension\n" -"controls to the UVC driver\n" -"Make sure you run guvcview as root (or sudo)." -msgstr "" -"Đ’ĐžĐœĐžĐșла ĐżĐŸĐŒĐžĐ»ĐșĐ° ĐČ ĐżŃ€ĐŸŃ†Đ”ŃŃ– ĐŽĐŸĐŽĐ°ĐČĐ°ĐœĐœŃ ĐșĐ”Ń€ŃƒŃŽŃ‡ĐžŃ… \n" -"Đ”Đ»Đ”ĐŒĐ”ĐœŃ‚Ń–ĐČ Ń€ĐŸĐ·ŃˆĐžŃ€Đ”ĐœĐœŃ ĐŽĐŸ ЮраĐčĐČĐ”Ń€Ńƒ UVC.\n" -"ĐŸĐ”Ń€Đ”ĐșĐŸĐœĐ°ĐčŃ‚Đ”ŃŃŒ Ń‰ĐŸ Guvcview Đ·Đ°ĐżŃƒŃ‰Đ”ĐœĐŸ ĐČіЮ Ń–ĐŒĐ”ĐœŃ– root (чо sudo)." - -#: ../src/guvcview.c:391 ../src/guvcview.c:399 ../src/guvcview.c:477 -msgid "" -"Guvcview error:\n" -"\n" -"Can't set a valid video stream for guvcview" -msgstr "" -"ĐŸĐŸĐŒĐžĐ»ĐșĐ°:\n" -"\n" -"ĐĐ” ĐŒĐŸĐ¶Ńƒ ĐČŃŃ‚Đ°ĐœĐŸĐČото праĐČĐžĐ»ŃŒĐœĐžĐč ĐČŃ–ĐŽĐ”ĐŸ ĐżĐŸŃ‚Ń–Đș ĐŽĐ»Ń Guvcview" - -#: ../src/guvcview.c:392 ../src/guvcview.c:400 ../src/guvcview.c:478 -msgid "" -"Make sure your device driver is v4l2 compliant\n" -"and that it is properly installed." -msgstr "" -"ĐŸĐ”Ń€Đ”ĐșĐŸĐœĐ°ĐčŃ‚Đ”ŃŃŒ, Ń‰ĐŸ ЮраĐčĐČДр ŃŃƒĐŒŃ–ŃĐœĐžĐč Đ· v4l2\n" -"і ĐČŃŃ‚Đ°ĐœĐŸĐČĐ»Đ”ĐœĐžĐč праĐČĐžĐ»ŃŒĐœĐŸ." - -#: ../src/guvcview.c:422 ../src/guvcview.c:444 -msgid "" -"Guvcview error:\n" -"\n" -"Unable to start with minimum setup" -msgstr "" -"ĐŸĐŸĐŒĐžĐ»ĐșĐ°:\n" -"\n" -"ĐĐ” ĐŒĐŸĐ¶Ńƒ Đ·Đ°ĐżŃƒŃŃ‚ĐžŃ‚ĐžŃŃŒ Đ· ĐŒŃ–ĐœŃ–ĐŒĐ°Đ»ŃŒĐœĐŸŃŽ ŃƒŃŃ‚Đ°ĐœĐŸĐČĐșĐŸŃŽ" - -#: ../src/guvcview.c:423 ../src/guvcview.c:445 -msgid "Please reconnect your camera." -msgstr "БуЮь ласĐșĐ°, ĐżĐŸĐČŃ‚ĐŸŃ€ĐœĐŸ піЮĐșĐ»ŃŽŃ‡Ń–Ń‚ŃŒ сĐČĐŸŃŽ ĐșĐ°ĐŒĐ”Ń€Ńƒ." - -#: ../src/guvcview.c:452 -msgid "" -"Guvcview error:\n" -"\n" -"Couldn't query device capabilities" -msgstr "" -"ĐŸĐŸĐŒĐžĐ»ĐșĐ°:\n" -"\n" -"ĐĐ” ĐŒĐŸĐ¶Ńƒ ĐœĐ°ĐŽŃ–ŃĐ»Đ°Ń‚Đž запОт ĐżŃ€ĐŸ ĐŒĐŸĐ¶Đ»ĐžĐČĐŸŃŃ‚Ń– ĐżŃ€ĐžŃŃ‚Ń€ĐŸŃŽ" - -#: ../src/guvcview.c:453 -msgid "Make sure the device driver supports v4l2." -msgstr "ĐŸĐ”Ń€Đ”ĐșĐŸĐœĐ°ĐčŃ‚Đ”ŃŃŒ, Ń‰ĐŸ ЮраĐčĐČДр ĐżŃ€ĐžŃŃ‚Ń€ĐŸŃŽ ĐżŃ–ĐŽŃ‚Ń€ĐžĐŒŃƒŃ” v4l2" - -#: ../src/guvcview.c:457 -msgid "" -"Guvcview error:\n" -"\n" -"Read method error" -msgstr "" -"ĐŸĐŸĐŒĐžĐ»ĐșĐ°:\n" -"\n" -"ĐŸĐŸĐŒĐžĐ»ĐșĐ° ĐŒĐ”Ń‚ĐŸĐŽŃƒ Đ·Ń‡ĐžŃ‚ŃƒĐČĐ°ĐœĐœŃ." - -#: ../src/guvcview.c:458 -msgid "Please try mmap instead (--capture_method=1)." -msgstr "БуЮь ласĐșĐ°, ŃĐżŃ€ĐŸĐ±ŃƒĐčŃ‚Đ” mmap instead (--capture_method=1)." - -#: ../src/guvcview.c:466 -msgid "" -"Guvcview error:\n" -"\n" -"Unable to allocate Buffers" -msgstr "" -"ĐŸĐŸĐŒĐžĐ»ĐșĐ°:\n" -"\n" -"ĐĐ” ĐŒĐŸĐ¶Ńƒ ĐČОЎілОтО ĐŒŃ–ŃŃ†Đ” піЮ Đ‘ŃƒŃ„Đ”Ń€Đž." - -#: ../src/guvcview.c:467 -msgid "Please try restarting your system." -msgstr "БуЮь ласĐșĐ°, ŃĐżŃ€ĐŸĐ±ŃƒĐčŃ‚Đ” пДрДзаĐČĐ°ĐœŃ‚Đ°Đ¶ĐžŃ‚Đž ŃĐžŃŃ‚Đ”ĐŒŃƒ." - -#: ../src/guvcview.c:518 -msgid "Image Controls" -msgstr "" -"ĐšĐ”Ń€ŃƒĐČĐ°ĐœĐœŃ\n" -"Đ·ĐŸĐ±Ń€Đ°Đ¶Đ”ĐœĐœŃĐŒ" - -#. image auto capture -#: ../src/guvcview.c:561 -msgid "Stop Auto (I)" -msgstr "" - -#: ../src/guvcview.c:676 -msgid "" -"Guvcview error:\n" -"\n" -"Unable to create Video Thread" -msgstr "" -"ĐŸĐŸĐŒĐžĐ»ĐșĐ°:\n" -"\n" -"ĐĐ” ĐŒĐŸĐ¶Ńƒ стĐČĐŸŃ€ĐžŃ‚Đž ĐżĐŸŃ‚Ń–Đș ĐșĐŸĐŒĐ°ĐœĐŽ ĐŽĐ»Ń ĐČŃ–ĐŽĐ”ĐŸ" - -#: ../src/guvcview.c:677 -msgid "Please report it to http://developer.berlios.de/bugs/?group_id=8179" -msgstr "" -"БуЮь ласĐșĐ°, ĐżĐŸĐČŃ–ĐŽĐŸĐŒŃ‚Đ” ĐżŃ€ĐŸ цД тут " -"http://developer.berlios.de/bugs/?group_id=8179" - -#: ../src/img_controls.c:121 -msgid "Auto Focus (continuous)" -msgstr "АĐČŃ‚ĐŸ Ń„ĐŸĐșус (бДзпДрДрĐČĐœĐžĐč)" - -#: ../src/img_controls.c:122 -msgid "set Focus" -msgstr "ĐČŃŃ‚Đ°ĐœĐŸĐČото Ń„ĐŸĐșус" - -#: ../src/image_format.c:35 -msgid "Jpeg (jpg)" -msgstr "" - -#: ../src/image_format.c:41 -msgid "Bitmap (Bmp)" -msgstr "" - -#: ../src/image_format.c:47 -msgid "Portable Network Graphics (Png)" -msgstr "" - -#: ../src/image_format.c:53 -msgid "Raw Image (raw)" -msgstr "" - -#. controls menu -#: ../src/menubar.c:64 -msgid "Settings" -msgstr "" - -#: ../src/menubar.c:67 -msgid "Hardware Defaults" -msgstr "" - -#: ../src/menubar.c:75 -msgid "Camera Button" -msgstr "" - -#: ../src/menubar.c:79 -msgid "Capture Image" -msgstr "" - -#: ../src/menubar.c:84 -msgid "Capture Video" -msgstr "" - -#. video menu -#: ../src/menubar.c:144 ../src/video_tab.c:95 -msgid "Video" -msgstr "" - -#: ../src/menubar.c:145 ../src/menubar.c:233 -msgid "File" -msgstr "" - -#: ../src/menubar.c:146 ../src/menubar.c:234 -msgid "Increment Filename" -msgstr "" - -#: ../src/menubar.c:164 -msgid "Video Codec" -msgstr "" - -#: ../src/menubar.c:189 -msgid "Video Codec Properties" -msgstr "" - -#: ../src/menubar.c:196 -msgid "Audio Codec" -msgstr "" - -#: ../src/menubar.c:217 -msgid "Audio Codec Properties" -msgstr "" - -#. photo menu -#: ../src/menubar.c:232 -msgid "Photo" -msgstr "" - -#: ../src/options.c:753 -msgid "Prints version" -msgstr "ĐŸĐŸĐșĐ°Đ·ŃƒŃ” ĐČДрсію" - -#: ../src/options.c:754 -msgid "Displays debug information" -msgstr "ĐŸĐŸĐșĐ°Đ·ŃƒŃ” Ń–ĐœŃ„ĐŸŃ€ĐŒĐ°Ń†Ń–ŃŽ ĐŽĐ»Ń ĐČŃ–ĐŽĐ»Đ°ĐłĐŸĐŽĐ¶ŃƒĐČĐ°ĐœĐœŃ" - -#: ../src/options.c:755 -msgid "Video Device to use [default: /dev/video0]" -msgstr "ВоĐșĐŸŃ€ĐžŃŃ‚Đ°ĐœĐžĐč ĐČŃ–ĐŽĐ”ĐŸ-простріĐč [default: /dev/video0]" - -#: ../src/options.c:756 -msgid "Exit after adding UVC extension controls (needs root/sudo)" -msgstr "" -"ВоĐčто ĐżŃ–ŃĐ»Ń ĐŽĐŸĐŽĐ°ĐČĐ°ĐœĐœŃ ĐșĐ”Ń€ŃƒŃŽŃ‡ĐžŃ… Đ”Đ»Đ”ĐŒĐ”ĐœŃ‚Ń–ĐČ Ń€ĐŸĐ·ŃˆĐžŃ€Đ”ĐœĐœŃ UVC\n" -"(ĐżĐŸŃ‚Ń€Ń–Đ±ĐœŃ– праĐČĐ° Đ°ĐŽĐŒŃ–ĐœŃ–ŃŃ‚Ń€Đ°Ń‚ĐŸŃ€Đ°)" - -#: ../src/options.c:757 -msgid "Don't stream video (image controls only)" -msgstr "ĐĐ” ĐżĐŸŃ‚ĐŸĐșĐŸĐČĐ” ĐČŃ–ĐŽĐ”ĐŸ (ĐșĐ”Ń€ŃƒĐČато лОшД Đ·ĐŸĐ±Ń€Đ°Đ¶Đ”ĐœĐœŃĐŒ)" - -#: ../src/options.c:758 -msgid "Don't display a GUI" -msgstr "" - -#: ../src/options.c:759 -msgid "Capture method (1-mmap (default) 2-read)" -msgstr "ĐœĐ”Ń‚ĐŸĐŽ Đ·Đ°Ń…ĐŸĐżĐ»Đ”ĐœĐœŃ (1-mmap (Đ·Đ°ĐŒĐŸĐČч.) 2-read)" - -#: ../src/options.c:760 -msgid "Configuration file" -msgstr "ЀаĐčĐ» ĐșĐŸĐœŃ„Ń–ĐłŃƒŃ€Đ°Ń†Ń–Ń—" - -#: ../src/options.c:761 -msgid "Hardware accelaration (enable(1) | disable(0))" -msgstr "ĐĐżĐ°Ń€Đ°Ń‚ĐœĐ” просĐșĐŸŃ€Đ”ĐœĐœŃ (уĐČŃ–ĐŒĐșĐœ.(1) | ĐČĐžĐŒĐșĐœ.(0))" - -#: ../src/options.c:762 -msgid "" -"Pixel " -"format(mjpg|jpeg|yuyv|yvyu|uyvy|yyuv|yu12|yv12|nv12|nv21|nv16|nv61|y41p|grey|" -"y10b|y16 |s501|s505|s508|gbrg|grbg|ba81|rggb|bgr3|rgb3)" -msgstr "" - -#: ../src/options.c:763 -msgid "Frame size, default: 640x480" -msgstr "Đ ĐŸĐ·ĐŒŃ–Ń€ ĐșаЮру (Đ·Đ°ĐŒĐŸĐČч. - 640x480)" - -#: ../src/options.c:764 -msgid "Image File name" -msgstr "ЀаĐčĐ» Đ·ĐŸĐ±Ń€Đ°Đ¶Đ”ĐœĐœŃ" - -#: ../src/options.c:765 -msgid "Image capture interval in seconds" -msgstr "Đ†ĐœŃ‚Đ”Ń€ĐČĐ°Đ» ĐŒŃ–Đ¶ Đ·ĐœŃ–ĐŒĐșĐ°ĐŒĐž (сДĐș.)" - -#: ../src/options.c:766 -msgid "Number of Pictures to capture" -msgstr "ĐšŃ–Đ»ŃŒĐșість Đ·ĐœŃ–ĐŒĐșіĐČ" - -#: ../src/options.c:767 -msgid "Video File name (capture from start)" -msgstr "ЀаĐčĐ» ĐČŃ–ĐŽĐ”ĐŸ (запОс Đ·Ń€Đ°Đ·Ńƒ ĐżŃ–ŃĐ»Ń запусĐșу)" - -#: ../src/options.c:768 -msgid "Video capture time (in seconds)" -msgstr "броĐČĐ°Đ»Ń–ŃŃ‚ŃŒ запОсу (сДĐș.)" - -#: ../src/options.c:769 -msgid "Exits guvcview after closing video" -msgstr "ВоĐčто Đ· Guvcview ĐżŃ–ŃĐ»Ń Đ·Đ°Đșроття ĐČŃ–ĐŽĐ”ĐŸ" - -#: ../src/options.c:770 -msgid "Number of initial frames to skip" -msgstr "ĐšŃ–Đ»ŃŒĐșість ĐżĐŸŃ‡Đ°Ń‚ĐșĐŸĐČох ĐșаЮріĐČ ĐŽĐ»Ń ĐżŃ€ĐŸĐżŃƒŃĐșу" - -#: ../src/options.c:771 -msgid "Show FPS value (enable(1) | disable (0))" -msgstr "Đ’Ń–ĐŽĐŸĐ±Ń€Đ°Đ¶Đ”ĐœĐœŃ Ń‡Đ°ŃŃ‚ĐŸŃ‚Đž ĐșаЮріĐČ (уĐČŃ–ĐŒĐșĐœ.(1) | ĐČĐžĐŒĐșĐœ. (0))" - -#: ../src/options.c:772 -msgid "Load Profile at start" -msgstr "ЗаĐČĐ°ĐœŃ‚Đ°Đ¶ĐžŃ‚Đž ĐżŃ€ĐŸŃ„Ń–Đ»ŃŒ про запусĐșу" - -#: ../src/options.c:773 -msgid "List controls method (0:loop, 1:next_ctrl flag [def])" -msgstr "" - -#: ../src/options.c:779 -msgid "- local options" -msgstr "- Đ»ĐŸĐșĐ°Đ»ŃŒĐœŃ– ĐżĐ°Ń€Đ°ĐŒĐ”Ń‚Ń€Đž" - -#. gdk_threads_enter(); -#: ../src/timers.c:119 -msgid "Cap. Image" -msgstr "Đ—ĐœŃ–ĐŒĐŸĐș" - -#: ../src/timers.c:217 -msgid "Guvcview Warning:" -msgstr "ĐŸĐŸĐżĐ”Ń€Đ”ĐŽĐ¶Đ”ĐœĐœŃ:" - -#: ../src/timers.c:217 -msgid "Not enough free space left on disk" -msgstr "ĐĐ” ĐČостачає ĐČŃ–Đ»ŃŒĐœĐŸĐłĐŸ ĐŒŃ–ŃŃ†Ń ĐœĐ° ЎОсĐșу" - -#: ../src/v4l2_controls.c:794 -msgid "Left" -msgstr "ЛіĐČĐžĐč" - -#: ../src/v4l2_controls.c:795 -msgid "Right" -msgstr "ПраĐČĐžĐč" - -#: ../src/v4l2_controls.c:799 -msgid "Down" -msgstr "Đ’ĐœĐžĐ·" - -#: ../src/v4l2_controls.c:800 -msgid "Up" -msgstr "ВĐČДрх" - -#: ../src/v4l2_controls.c:845 -msgid "Off" -msgstr "" - -#: ../src/v4l2_controls.c:845 -msgid "On" -msgstr "" - -#: ../src/v4l2_controls.c:845 -msgid "Blinking" -msgstr "" - -#: ../src/v4l2_controls.c:845 -msgid "Auto" -msgstr "" - -#. turn it into a menu control -#: ../src/v4l2_controls.c:894 -msgid "8 bit" -msgstr "" - -#: ../src/v4l2_controls.c:894 -msgid "12 bit" -msgstr "" - -#: ../src/v4l2_dyna_ctrls.c:96 -msgid "Pan (relative)" -msgstr "Đ’Ń–ĐŽĐœĐŸŃĐœĐžĐč ĐżĐŸĐČĐŸŃ€ĐŸŃ‚" - -#: ../src/v4l2_dyna_ctrls.c:109 -msgid "Tilt (relative)" -msgstr "Đ’Ń–ĐŽĐœĐŸŃĐœĐžĐč ĐœĐ°Ń…ĐžĐ»" - -#: ../src/v4l2_dyna_ctrls.c:122 -msgid "Pan Reset" -msgstr "ĐĄĐșĐžĐœŃƒŃ‚Đž ĐżĐŸĐČĐŸŃ€ĐŸŃ‚" - -#: ../src/v4l2_dyna_ctrls.c:135 -msgid "Tilt Reset" -msgstr "ĐĄĐșĐžĐœŃƒŃ‚Đž ĐœĐ°Ń…ĐžĐ»" +"X-Launchpad-Export-Date: 2013-12-08 10:36+0000\n" +"X-Generator: Launchpad (build 16869)\n" -#: ../src/v4l2_dyna_ctrls.c:148 -msgid "Focus (absolute)" -msgstr "ĐĐ±ŃĐŸĐ»ŃŽŃ‚ĐœĐžĐč Ń„ĐŸĐșус" +#: ../data/guvcview.desktop.in.in.h:1 +#, fuzzy +msgid "guvcview" +msgstr "ĐŸĐŸĐżĐ”Ń€Đ”ĐŽĐ¶Đ”ĐœĐœŃ:" -#: ../src/v4l2_dyna_ctrls.c:161 -msgid "LED1 Mode" -msgstr "ĐœĐ”Ń‚ĐŸĐŽ сĐČŃ–Ń‚Đ»ĐŸĐŽŃ–ĐŸĐŽĐ°" +#: ../data/guvcview.desktop.in.in.h:2 +msgid "GTK UVC video viewer" +msgstr "" -#: ../src/v4l2_dyna_ctrls.c:174 -msgid "LED1 Frequency" -msgstr "Đ§Đ°ŃŃ‚ĐŸŃ‚Đ° сĐČŃ–Ń‚Đ»ĐŸĐŽŃ–ĐŸĐŽĐ°" +#: ../data/guvcview.desktop.in.in.h:3 +msgid "A video viewer and capturer for the linux uvc driver" +msgstr "" -#: ../src/v4l2_dyna_ctrls.c:187 -msgid "Disable video processing" -msgstr "ВіЮĐșлючОтО ĐŸĐ±Ń€ĐŸĐ±Đșу ĐČŃ–ĐŽĐ”ĐŸ" +#: ../data/guvcview.appdata.xml.in.in.h:1 +msgid "capture video from v4l2 devices" +msgstr "" -#: ../src/v4l2_dyna_ctrls.c:200 -msgid "Raw bits per pixel" -msgstr "Сорі бітО ĐœĐ° піĐșŃĐ”Đ»ŃŒ" +#: ../data/guvcview.appdata.xml.in.in.h:2 +msgid "" +"Video capture tool for video4linux2 compliant cameras, with special emphasis " +"on the linux uvc driver. It provides Image (jpg, png, bmp) and Video (mjpeg, " +"flv1, wmv1, mpg2, mpg4,...) capture with sound in several " +"formats( currently: avi and matroska). I also supports a control panel " +"option (--control_only) that is compatible with any other v4l2 app." +msgstr "" -#. needed only for language files (not used) +#. +#. * needed only for language files (not used) +#. #. V4L2 control strings -#: ../src/v4l2uvc.c:57 +#: ../gview_v4l2core/v4l2_controls.c:49 msgid "User Controls" msgstr "ĐšĐ”Ń€ŃƒŃŽŃ‡Ń– Đ”Đ»Đ”ĐŒĐ”ĐœŃ‚Đž ĐșĐŸŃ€ĐžŃŃ‚ŃƒĐČача" -#: ../src/v4l2uvc.c:58 +#: ../gview_v4l2core/v4l2_controls.c:50 msgid "Brightness" msgstr "ЯсĐșраĐČість" -#: ../src/v4l2uvc.c:59 +#: ../gview_v4l2core/v4l2_controls.c:51 msgid "Contrast" msgstr "ĐšĐŸĐœŃ‚Ń€Đ°ŃŃ‚" -#: ../src/v4l2uvc.c:60 +#: ../gview_v4l2core/v4l2_controls.c:52 msgid "Hue" msgstr "Đ’Ń–ĐŽŃ‚Ń–ĐœĐŸĐș" -#: ../src/v4l2uvc.c:61 +#: ../gview_v4l2core/v4l2_controls.c:53 msgid "Saturation" msgstr "ĐĐ°ŃĐžŃ‡Đ”ĐœŃ–ŃŃ‚ŃŒ" -#: ../src/v4l2uvc.c:62 +#: ../gview_v4l2core/v4l2_controls.c:54 msgid "Sharpness" msgstr "Đ Ń–Đ·Đșість" -#: ../src/v4l2uvc.c:63 +#: ../gview_v4l2core/v4l2_controls.c:55 msgid "Gamma" msgstr "Đ“Đ°ĐŒĐŒĐ°" -#: ../src/v4l2uvc.c:64 +#: ../gview_v4l2core/v4l2_controls.c:56 msgid "Backlight Compensation" msgstr "ĐšĐŸĐŒĐżĐ”ĐœŃĐ°Ń†Ń–Ń піЮсĐČітĐșĐž" -#: ../src/v4l2uvc.c:65 +#: ../gview_v4l2core/v4l2_controls.c:57 msgid "Power Line Frequency" msgstr "Đ§Đ°ŃŃ‚ĐŸŃ‚Đ° ДлДĐșŃ‚Ń€ĐŸĐŒĐ”Ń€Đ”Đ¶Ń–" -#: ../src/v4l2uvc.c:66 +#: ../gview_v4l2core/v4l2_controls.c:58 msgid "Hue, Automatic" msgstr "АĐČŃ‚ĐŸ ĐČŃ–ĐŽŃ‚Ń–ĐœĐŸĐș" -#: ../src/v4l2uvc.c:67 +#: ../gview_v4l2core/v4l2_controls.c:59 msgid "Focus, Auto" msgstr "АĐČŃ‚ĐŸ Ń„ĐŸĐșус" -#: ../src/v4l2uvc.c:68 +#: ../gview_v4l2core/v4l2_controls.c:60 msgid "Manual Mode" msgstr "Đ ŃƒŃ‡ĐœĐžĐč Ń€Đ”Đ¶ĐžĐŒ" -#: ../src/v4l2uvc.c:69 +#: ../gview_v4l2core/v4l2_controls.c:61 msgid "Auto Mode" msgstr "АĐČŃ‚ĐŸŃ€Đ”Đ¶ĐžĐŒ" -#: ../src/v4l2uvc.c:70 +#: ../gview_v4l2core/v4l2_controls.c:62 msgid "Shutter Priority Mode" msgstr "ĐŸŃ€Ń–ĐŸŃ€ĐžŃ‚Đ”Ń‚ Đ·Đ°Ń‚ĐČĐŸŃ€Ńƒ" -#: ../src/v4l2uvc.c:71 +#: ../gview_v4l2core/v4l2_controls.c:63 msgid "Aperture Priority Mode" msgstr "ĐŸŃ€Ń–ĐŸŃ€ĐžŃ‚Đ”Ń‚ ĐŽŃ–Đ°Ń„Ń€Đ°ĐłĐŒĐž" -#: ../src/v4l2uvc.c:72 +#: ../gview_v4l2core/v4l2_controls.c:64 msgid "Black Level" msgstr "РіĐČĐ”ĐœŃŒ Ń‡ĐŸŃ€ĐœĐŸĐłĐŸ" -#: ../src/v4l2uvc.c:73 +#: ../gview_v4l2core/v4l2_controls.c:65 msgid "White Balance, Automatic" msgstr "АĐČŃ‚ĐŸ Đ±Đ°Đ»Đ°ĐœŃ Đ±Ń–Đ»ĐŸĐłĐŸ" -#: ../src/v4l2uvc.c:74 +#: ../gview_v4l2core/v4l2_controls.c:66 msgid "Do White Balance" msgstr "Đ—Đ±Đ°Đ»Đ°ĐœŃŃƒĐČато білОĐč" -#: ../src/v4l2uvc.c:75 +#: ../gview_v4l2core/v4l2_controls.c:67 msgid "Red Balance" msgstr "Đ‘Đ°Đ»Đ°ĐœŃ чДрĐČĐŸĐœĐŸĐłĐŸ" -#: ../src/v4l2uvc.c:76 +#: ../gview_v4l2core/v4l2_controls.c:68 msgid "Blue Balance" msgstr "Đ‘Đ°Đ»Đ°ĐœŃ ŃĐžĐœŃŒĐŸĐłĐŸ" -#: ../src/v4l2uvc.c:77 +#: ../gview_v4l2core/v4l2_controls.c:69 msgid "Exposure" msgstr "ЕĐșŃĐżĐŸĐ·ĐžŃ†Ń–Ń" -#: ../src/v4l2uvc.c:78 +#: ../gview_v4l2core/v4l2_controls.c:70 msgid "Gain, Automatic" msgstr "АĐČŃ‚ĐŸ ĐżĐŸŃĐžĐ»Đ”ĐœĐœŃ" -#: ../src/v4l2uvc.c:79 +#: ../gview_v4l2core/v4l2_controls.c:71 msgid "Gain" msgstr "ĐŸĐŸŃĐžĐ»Đ”ĐœĐœŃ" -#: ../src/v4l2uvc.c:80 +#: ../gview_v4l2core/v4l2_controls.c:72 msgid "Horizontal Flip" msgstr "Đ“ĐŸŃ€ĐžĐ·ĐŸĐœŃ‚Đ°Đ»ŃŒĐœĐ” ĐČіЎЎзДрĐșĐ°Đ»Đ”ĐœĐœŃ" -#: ../src/v4l2uvc.c:81 +#: ../gview_v4l2core/v4l2_controls.c:73 msgid "Vertical Flip" msgstr "ВДртОĐșĐ°Đ»ŃŒĐœĐ” ĐČіЎЎзДрĐșĐ°Đ»Đ”ĐœĐœŃ" -#: ../src/v4l2uvc.c:82 +#: ../gview_v4l2core/v4l2_controls.c:74 msgid "Horizontal Center" msgstr "Đ“ĐŸŃ€ĐžĐ·ĐŸĐœŃ‚Đ°Đ»ŃŒĐœĐ° ŃĐ”Ń€Đ”ĐŽĐžĐœĐ°" -#: ../src/v4l2uvc.c:83 +#: ../gview_v4l2core/v4l2_controls.c:75 msgid "Vertical Center" msgstr "ВДртОĐșĐ°Đ»ŃŒĐœĐ° ŃĐ”Ń€Đ”ĐŽĐžĐœĐ°" -#: ../src/v4l2uvc.c:84 +#: ../gview_v4l2core/v4l2_controls.c:76 msgid "Chroma AGC" msgstr "Chroma AGC" -#: ../src/v4l2uvc.c:85 +#: ../gview_v4l2core/v4l2_controls.c:77 msgid "Color Killer" msgstr "ĐŸĐŸĐŽĐ°ĐČлюĐČач ĐșĐŸĐ»ŃŒĐŸŃ€Ńƒ" -#: ../src/v4l2uvc.c:86 +#: ../gview_v4l2core/v4l2_controls.c:78 msgid "Color Effects" msgstr "Đ•Ń„Đ”Đșто ĐșĐŸĐ»ŃŒĐŸŃ€Ńƒ" #. CAMERA CLASS control strings -#: ../src/v4l2uvc.c:89 +#: ../gview_v4l2core/v4l2_controls.c:81 msgid "Camera Controls" msgstr "ĐšĐ”Ń€ŃƒĐČĐ°ĐœĐœŃ ĐșĐ°ĐŒĐ”Ń€ĐŸŃŽ" -#: ../src/v4l2uvc.c:90 +#: ../gview_v4l2core/v4l2_controls.c:82 msgid "Auto Exposure" msgstr "АĐČŃ‚ĐŸ Đ”ĐșŃĐżĐŸĐ·ĐžŃ†Ń–Ń" -#: ../src/v4l2uvc.c:91 +#: ../gview_v4l2core/v4l2_controls.c:83 msgid "Exposure Time, Absolute" msgstr "ĐĐ±ŃĐŸĐ»ŃŽŃ‚ĐœĐžĐč час Đ”ĐșŃĐżĐŸĐ·ĐžŃ†Ń–Ń—" -#: ../src/v4l2uvc.c:92 +#: ../gview_v4l2core/v4l2_controls.c:84 msgid "Exposure, Dynamic Framerate" msgstr "ЕĐșŃĐżĐŸĐ·ĐžŃ†Ń–Ń, ĐŽĐžĐœĐ°ĐŒŃ–Ń‡ĐœĐ° Ń‡Đ°ŃŃ‚ĐŸŃ‚Đ° ĐșаЮріĐČ" -#: ../src/v4l2uvc.c:93 +#: ../gview_v4l2core/v4l2_controls.c:85 msgid "Pan, Relative" msgstr "Đ’Ń–ĐŽĐœĐŸŃĐœĐžĐč ĐżĐŸĐČĐŸŃ€ĐŸŃ‚" -#: ../src/v4l2uvc.c:94 +#: ../gview_v4l2core/v4l2_controls.c:86 msgid "Tilt, Relative" msgstr "Đ’Ń–ĐŽĐœĐŸŃĐœĐžĐč ĐœĐ°Ń…ĐžĐ»" -#: ../src/v4l2uvc.c:95 +#: ../gview_v4l2core/v4l2_controls.c:87 msgid "Pan, Reset" msgstr "ĐĄĐșĐžĐœŃƒŃ‚Đž ĐżĐŸĐČĐŸŃ€ĐŸŃ‚" -#: ../src/v4l2uvc.c:96 +#: ../gview_v4l2core/v4l2_controls.c:88 msgid "Tilt, Reset" msgstr "ĐĄĐșĐžĐœŃƒŃ‚Đž ĐœĐ°Ń…ĐžĐ»" -#: ../src/v4l2uvc.c:97 +#: ../gview_v4l2core/v4l2_controls.c:89 msgid "Pan, Absolute" msgstr "ĐĐ±ŃĐŸĐ»ŃŽŃ‚ĐœĐžĐč ĐżĐŸĐČĐŸŃ€ĐŸŃ‚" -#: ../src/v4l2uvc.c:99 +#: ../gview_v4l2core/v4l2_controls.c:91 msgid "Focus, Absolute" msgstr "ĐĐ±ŃĐŸĐ»ŃŽŃ‚ĐœĐžĐč Ń„ĐŸĐșус" -#: ../src/v4l2uvc.c:100 +#: ../gview_v4l2core/v4l2_controls.c:92 msgid "Focus, Relative" msgstr "Đ’Ń–ĐŽĐœĐŸŃĐœĐžĐč Ń„ĐŸĐșус" -#: ../src/v4l2uvc.c:101 +#: ../gview_v4l2core/v4l2_controls.c:93 msgid "Focus, Automatic" msgstr "АĐČŃ‚ĐŸ Ń„ĐŸĐșус" -#: ../src/v4l2uvc.c:102 +#: ../gview_v4l2core/v4l2_controls.c:94 msgid "Zoom, Absolute" msgstr "ĐĐ±ŃĐŸĐ»ŃŽŃ‚ĐœĐžĐč Đ·ŃƒĐŒ" -#: ../src/v4l2uvc.c:103 +#: ../gview_v4l2core/v4l2_controls.c:95 msgid "Zoom, Relative" msgstr "Đ’Ń–ĐŽĐœĐŸŃĐœĐžĐč Đ·ŃƒĐŒ" -#: ../src/v4l2uvc.c:104 +#: ../gview_v4l2core/v4l2_controls.c:96 msgid "Zoom, Continuous" msgstr "БДзпДрДрĐČĐœĐžĐč Đ·ŃƒĐŒ" -#: ../src/v4l2uvc.c:105 +#: ../gview_v4l2core/v4l2_controls.c:97 msgid "Privacy" msgstr "ĐšĐŸĐœŃ„Ń–ĐŽĐ”ĐœŃ†Ń–ĐčĐœŃ–ŃŃ‚ŃŒ" #. UVC specific control strings -#: ../src/v4l2uvc.c:108 +#: ../gview_v4l2core/v4l2_controls.c:100 msgid "Exposure, Auto" msgstr "АĐČŃ‚ĐŸ Đ”ĐșŃĐżĐŸĐ·ĐžŃ†Ń–Ń" -#: ../src/v4l2uvc.c:109 +#: ../gview_v4l2core/v4l2_controls.c:101 msgid "Exposure, Auto Priority" msgstr "ĐŸŃ€Ń–ĐŸŃ€ĐžŃ‚Đ”Ń‚ Đ°ĐČŃ‚ĐŸ Đ”ĐșŃĐżĐŸĐ·ĐžŃ†Ń–Ń—" -#: ../src/v4l2uvc.c:110 +#: ../gview_v4l2core/v4l2_controls.c:102 msgid "Exposure (Absolute)" msgstr "ĐĐ±ŃĐŸĐ»ŃŽŃ‚ĐœĐ° Đ”ĐșŃĐżĐŸĐ·ĐžŃ†Ń–Ń" -#: ../src/v4l2uvc.c:111 +#: ../gview_v4l2core/v4l2_controls.c:103 msgid "White Balance Temperature, Auto" msgstr "АĐČŃ‚ĐŸ Ń‚Đ”ĐŒĐżĐ”Ń€Đ°Ń‚ŃƒŃ€Đ° Đ±Đ°Đ»Đ°ĐœŃŃƒ Đ±Ń–Đ»ĐŸĐłĐŸ" -#: ../src/v4l2uvc.c:112 +#: ../gview_v4l2core/v4l2_controls.c:104 msgid "White Balance Temperature" msgstr "ĐąĐ”ĐŒĐżĐ”Ń€Đ°Ń‚ŃƒŃ€Đ° Đ±Đ°Đ»Đ°ĐœŃŃƒ Đ±Ń–Đ»ĐŸĐłĐŸ" -#: ../src/v4l2uvc.c:113 +#: ../gview_v4l2core/v4l2_controls.c:105 msgid "White Balance Component, Auto" msgstr "АĐČŃ‚ĐŸ ĐșĐŸĐŒĐżĐŸĐœĐ”ĐœŃ‚ Đ±Đ°Đ»Đ°ĐœŃŃƒ Đ±Ń–Đ»ĐŸĐłĐŸ" -#: ../src/v4l2uvc.c:114 +#: ../gview_v4l2core/v4l2_controls.c:106 msgid "White Balance Blue Component" msgstr "ĐĄĐžĐœŃ–Đč ĐșĐŸĐŒĐżĐŸĐœĐ”ĐœŃ‚ Đ±Đ°Đ»Đ°ĐœŃŃƒ Đ±Ń–Đ»ĐŸĐłĐŸ" -#: ../src/v4l2uvc.c:115 +#: ../gview_v4l2core/v4l2_controls.c:107 msgid "White Balance Red Component" msgstr "ЧДрĐČĐŸĐœĐžĐč ĐșĐŸĐŒĐżĐŸĐœĐ”ĐœŃ‚ Đ±Đ°Đ»Đ°ĐœŃŃƒ Đ±Ń–Đ»ĐŸĐłĐŸ" #. libwebcam specific control strings -#: ../src/v4l2uvc.c:118 +#: ../gview_v4l2core/v4l2_controls.c:110 msgid "Focus" msgstr "Đ€ĐŸĐșус" -#: ../src/v4l2uvc.c:119 +#: ../gview_v4l2core/v4l2_controls.c:111 msgid "Focus (Absolute)" msgstr "ĐĐ±ŃĐŸĐ»ŃŽŃ‚ĐœĐžĐč Ń„ĐŸĐșус" -#: ../src/vcodecs.c:63 +#: ../gview_v4l2core/v4l2_xu_ctrls.c:63 ../guvcview/gui_gtk3_v4l2ctrls.c:239 +msgid "Off" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:64 ../guvcview/gui_gtk3_v4l2ctrls.c:239 +msgid "On" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:65 ../guvcview/gui_gtk3_v4l2ctrls.c:239 +msgid "Blinking" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:66 ../guvcview/gui_gtk3_v4l2ctrls.c:239 +msgid "Auto" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:73 +msgid "Pan (relative)" +msgstr "Đ’Ń–ĐŽĐœĐŸŃĐœĐžĐč ĐżĐŸĐČĐŸŃ€ĐŸŃ‚" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:86 +msgid "Tilt (relative)" +msgstr "Đ’Ń–ĐŽĐœĐŸŃĐœĐžĐč ĐœĐ°Ń…ĐžĐ»" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:99 +msgid "Pan Reset" +msgstr "ĐĄĐșĐžĐœŃƒŃ‚Đž ĐżĐŸĐČĐŸŃ€ĐŸŃ‚" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:112 +msgid "Tilt Reset" +msgstr "ĐĄĐșĐžĐœŃƒŃ‚Đž ĐœĐ°Ń…ĐžĐ»" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:125 +msgid "Focus (absolute)" +msgstr "ĐĐ±ŃĐŸĐ»ŃŽŃ‚ĐœĐžĐč Ń„ĐŸĐșус" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:138 +msgid "LED1 Mode" +msgstr "ĐœĐ”Ń‚ĐŸĐŽ сĐČŃ–Ń‚Đ»ĐŸĐŽŃ–ĐŸĐŽĐ°" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:151 +msgid "LED1 Frequency" +msgstr "Đ§Đ°ŃŃ‚ĐŸŃ‚Đ° сĐČŃ–Ń‚Đ»ĐŸĐŽŃ–ĐŸĐŽĐ°" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:164 +msgid "Disable video processing" +msgstr "ВіЮĐșлючОтО ĐŸĐ±Ń€ĐŸĐ±Đșу ĐČŃ–ĐŽĐ”ĐŸ" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:177 +msgid "Raw bits per pixel" +msgstr "Сорі бітО ĐœĐ° піĐșŃĐ”Đ»ŃŒ" + +#: ../gview_encoder/audio_codecs.c:63 +msgid "PCM - uncompressed (float 32 bit)" +msgstr "" + +#: ../gview_encoder/audio_codecs.c:80 +msgid "MP2 (MPEG audio layer 2)" +msgstr "" + +#: ../gview_encoder/audio_codecs.c:97 +msgid "MP3 (MPEG audio layer 3)" +msgstr "" + +#: ../gview_encoder/audio_codecs.c:118 +msgid "AC-3 (ATSC A/52A)" +msgstr "" + +#: ../gview_encoder/audio_codecs.c:139 +msgid "AAC (Advanced Audio Coding)" +msgstr "" + +#: ../gview_encoder/audio_codecs.c:160 +msgid "Vorbis" +msgstr "" + +#: ../gview_encoder/video_codecs.c:75 +#, fuzzy +msgid "Raw camera input" +msgstr "ВоĐČіЮ ĐșĐ°ĐŒĐ”Ń€Đž:" + +#: ../gview_encoder/video_codecs.c:111 msgid "MJPG - compressed" msgstr "MJPG - ŃŃ‚ĐžŃĐœĐ”ĐœĐŸ" -#: ../src/vcodecs.c:99 -msgid "YUY2 - uncomp YUV" -msgstr "YUY2 - ĐœĐ” ŃŃ‚ĐžŃĐœĐ”ĐœĐžĐč YUV" - -#: ../src/vcodecs.c:135 -msgid "RGB - uncomp BMP" -msgstr "RGB - ĐœĐ” ŃŃ‚ĐžŃĐœĐ”ĐœĐžĐč BMP" - -#: ../src/vcodecs.c:171 +#: ../gview_encoder/video_codecs.c:147 msgid "MPEG video 1" msgstr "MPEG-ĐČŃ–ĐŽĐ”ĐŸ 1" -#: ../src/vcodecs.c:207 +#: ../gview_encoder/video_codecs.c:183 msgid "FLV1 - flash video 1" msgstr "FLV1 Ń„Đ»Đ”Ńˆ-ĐČŃ–ĐŽĐ”ĐŸ 1" -#: ../src/vcodecs.c:243 +#: ../gview_encoder/video_codecs.c:219 msgid "WMV1 - win. med. video 7" msgstr "WMV1 - ĐČŃ–ĐŽĐ”ĐŸ Windows Media 7" -#: ../src/vcodecs.c:279 +#: ../gview_encoder/video_codecs.c:255 msgid "MPG2 - MPG2 format" msgstr "MPG2 - Ń„ĐŸŃ€ĐŒĐ°Ń‚ MPG2" -#: ../src/vcodecs.c:315 +#: ../gview_encoder/video_codecs.c:291 msgid "MS MP4 V3" msgstr "MS MP4 V3" -#: ../src/vcodecs.c:351 +#: ../gview_encoder/video_codecs.c:327 msgid "MPEG4-ASP" msgstr "MPEG4-ASP" -#: ../src/vcodecs.c:387 +#: ../gview_encoder/video_codecs.c:363 msgid "MPEG4-AVC (H264)" msgstr "MPEG4-AVC (H264)" -#: ../src/vcodecs.c:427 +#: ../gview_encoder/video_codecs.c:403 msgid "VP8 (VP8)" msgstr "" -#: ../src/vcodecs.c:463 -msgid "Theora (ogg theora)" -msgstr "" +#: ../gview_encoder/video_codecs.c:439 +msgid "Theora (ogg theora)" +msgstr "" + +#: ../guvcview/gui_gtk3_audioctrls.c:95 +msgid "Audio API:" +msgstr "ĐŃƒĐŽŃ–ĐŸ API:" + +#: ../guvcview/gui_gtk3_audioctrls.c:106 +msgid "NO SOUND" +msgstr "" + +#: ../guvcview/gui_gtk3_audioctrls.c:107 +msgid "PORTAUDIO" +msgstr "PORTAUDIO" + +#: ../guvcview/gui_gtk3_audioctrls.c:110 +msgid "PULSEAUDIO" +msgstr "PULSEAUDIO" + +#: ../guvcview/gui_gtk3_audioctrls.c:127 +msgid "Input Device:" +msgstr "ПростріĐč ĐČĐČĐŸĐŽŃƒ:" + +#: ../guvcview/gui_gtk3_audioctrls.c:161 +msgid "Sample Rate:" +msgstr "Đ§Đ°ŃŃ‚ĐŸŃ‚Đ° ЎОсĐșрДЎОтації:" + +#: ../guvcview/gui_gtk3_audioctrls.c:168 ../guvcview/gui_gtk3_audioctrls.c:214 +msgid "Dev. Default" +msgstr "ПростріĐč ĐżĐŸ Đ·Đ°ĐŒĐŸĐČч." + +#: ../guvcview/gui_gtk3_audioctrls.c:207 +msgid "Channels:" +msgstr "ĐšĐ°ĐœĐ°Đ»Đž:" + +#: ../guvcview/gui_gtk3_audioctrls.c:215 +msgid "1 - mono" +msgstr "1 - ĐŒĐŸĐœĐŸ" + +#: ../guvcview/gui_gtk3_audioctrls.c:216 +msgid "2 - stereo" +msgstr "2 - ŃŃ‚Đ”Ń€Đ”ĐŸ" + +#: ../guvcview/gui_gtk3_audioctrls.c:235 +#, fuzzy +msgid "---- Audio Filters ----" +msgstr "---- Đ’Ń–ĐŽĐ”ĐŸ Ń„Ń–Đ»ŃŒŃ‚Ń€Đž ----" + +#. Echo FX +#: ../guvcview/gui_gtk3_audioctrls.c:255 +msgid " Echo" +msgstr " Đ•Ń…ĐŸ" + +#. Reverb FX +#: ../guvcview/gui_gtk3_audioctrls.c:268 +msgid " Reverb" +msgstr " Đ Đ”ĐČĐ”Ń€Đ±Đ°Ń†Ń–Ń" + +#. Fuzz FX +#: ../guvcview/gui_gtk3_audioctrls.c:281 +msgid " Fuzz" +msgstr " Пух" + +#. WahWah FX +#: ../guvcview/gui_gtk3_audioctrls.c:294 +msgid " WahWah" +msgstr " ВахВах" + +#. Ducky FX +#: ../guvcview/gui_gtk3_audioctrls.c:307 +msgid " Ducky" +msgstr " Đ“ĐŸĐ»ŃƒĐ±ĐșĐ°" + +#: ../guvcview/gui_gtk3.c:310 ../guvcview/gui_gtk3_callbacks.c:749 +msgid "Stop Video (V)" +msgstr "" + +#. video button +#: ../guvcview/gui_gtk3.c:315 ../guvcview/gui_gtk3.c:600 +#: ../guvcview/gui_gtk3_callbacks.c:755 +msgid "Cap. Video (V)" +msgstr "" + +#: ../guvcview/gui_gtk3.c:376 ../guvcview/gui_gtk3.c:383 +msgid "Error" +msgstr "ĐŸĐŸĐŒĐžĐ»ĐșĐ°" + +#: ../guvcview/gui_gtk3.c:379 ../guvcview/gui_gtk3.c:386 +#: ../guvcview/gui_gtk3_callbacks.c:2097 +msgid "_Ok" +msgstr "" + +#: ../guvcview/gui_gtk3.c:380 ../guvcview/gui_gtk3_callbacks.c:185 +#: ../guvcview/gui_gtk3_callbacks.c:199 ../guvcview/gui_gtk3_callbacks.c:522 +#: ../guvcview/gui_gtk3_callbacks.c:624 ../guvcview/gui_gtk3_callbacks.c:1755 +#: ../guvcview/gui_gtk3_callbacks.c:2098 +#, fuzzy +msgid "_Cancel" +msgstr "ĐČŃ–ĐŽĐŒŃ–ĐœĐžŃ‚Đž" + +#: ../guvcview/gui_gtk3.c:407 +msgid "" +"\n" +"You have more than one video device installed.\n" +"Do you want to try another one ?\n" +msgstr "" +"\n" +"Đ’ŃŃ‚Đ°ĐœĐŸĐČĐ»Đ”ĐœĐŸ Đ±Ń–Đ»ŃŒŃˆĐ” ĐŸĐŽĐœĐŸĐłĐŸ ĐČŃ–ĐŽĐ”ĐŸ ĐżŃ€ĐžŃŃ‚Ń€ĐŸŃŽ.\n" +"Во Ń…ĐŸŃ‡Đ”Ń‚Đ” ŃĐżŃ€ĐŸĐ±ŃƒĐČато щД ĐŸĐŽĐžĐœ?\n" + +#. ---- Devices ---- +#: ../guvcview/gui_gtk3.c:414 ../guvcview/gui_gtk3_videoctrls.c:106 +msgid "Device:" +msgstr "ПростріĐč:" + +#: ../guvcview/gui_gtk3.c:516 +msgid "Guvcview Video Capture" +msgstr "Đ—Đ°Ń…ĐŸĐżĐ»ŃŽĐČач ĐČŃ–ĐŽĐ”ĐŸ Guvcview" + +#: ../guvcview/gui_gtk3.c:525 +#, fuzzy +msgid "Guvcview" +msgstr "ĐŸĐŸĐżĐ”Ń€Đ”ĐŽĐ¶Đ”ĐœĐœŃ:" + +#: ../guvcview/gui_gtk3.c:572 +msgid "Stop Cap. (I)" +msgstr "" + +#: ../guvcview/gui_gtk3.c:578 ../guvcview/gui_gtk3_callbacks.c:720 +#: ../guvcview/video_capture.c:250 +msgid "Cap. Image (I)" +msgstr "" + +#. quit button +#. GtkWidget *quitButton = gtk_button_new_from_stock(GTK_STOCK_QUIT); +#: ../guvcview/gui_gtk3.c:621 +msgid "_Quit" +msgstr "" + +#: ../guvcview/gui_gtk3.c:667 +msgid "Image Controls" +msgstr "" +"ĐšĐ”Ń€ŃƒĐČĐ°ĐœĐœŃ\n" +"Đ·ĐŸĐ±Ń€Đ°Đ¶Đ”ĐœĐœŃĐŒ" + +#: ../guvcview/gui_gtk3.c:703 +#, fuzzy +msgid "H264 Controls" +msgstr "ĐšĐ”Ń€ŃƒŃŽŃ‡Ń– Đ”Đ»Đ”ĐŒĐ”ĐœŃ‚Đž ĐșĐŸŃ€ĐžŃŃ‚ŃƒĐČача" + +#: ../guvcview/gui_gtk3.c:742 +#, fuzzy +msgid "Video Controls" +msgstr "ĐšĐ”Ń€ŃƒŃŽŃ‡Ń– Đ”Đ»Đ”ĐŒĐ”ĐœŃ‚Đž ĐșĐŸŃ€ĐžŃŃ‚ŃƒĐČача" + +#: ../guvcview/gui_gtk3.c:777 +#, fuzzy +msgid "Audio Controls" +msgstr "ĐšĐ”Ń€ŃƒŃŽŃ‡Ń– Đ”Đ»Đ”ĐŒĐ”ĐœŃ‚Đž ĐșĐŸŃ€ĐžŃŃ‚ŃƒĐČача" + +#: ../guvcview/gui_gtk3_callbacks.c:182 ../guvcview/gui_gtk3_menu.c:72 +msgid "Save Profile" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:186 ../guvcview/gui_gtk3_callbacks.c:523 +#: ../guvcview/gui_gtk3_callbacks.c:625 +msgid "_Save" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:196 ../guvcview/gui_gtk3_menu.c:71 +msgid "Load Profile" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:200 +msgid "_Open" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:208 ../guvcview/gui_gtk3_callbacks.c:531 +#: ../guvcview/gui_gtk3_callbacks.c:634 +msgid "File Format:" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:220 +msgid "gpfl (*.gpfl)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:221 +msgid "any (*.*)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:519 +#, fuzzy +msgid "Photo file name" +msgstr "ЀаĐčĐ» Đ·ĐŸĐ±Ń€Đ°Đ¶Đ”ĐœĐœŃ" + +#: ../guvcview/gui_gtk3_callbacks.c:543 +msgid "Raw (*.raw)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:544 +msgid "Jpeg (*.jpg)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:545 +msgid "Png (*.png)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:546 +msgid "Bmp (*.bmp)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:621 +#, fuzzy +msgid "Video file name" +msgstr "ЀаĐčĐ» Đ·ĐŸĐ±Ń€Đ°Đ¶Đ”ĐœĐœŃ" + +#: ../guvcview/gui_gtk3_callbacks.c:646 +msgid "Matroska (*.mkv)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:647 +msgid "WebM (*.webm)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:648 +msgid "Avi (*.avi)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:1158 +msgid "start new" +msgstr "Đ·Đ°ĐżŃƒŃŃ‚ĐžŃ‚Đž ĐœĐŸĐČĐžĐč" + +#: ../guvcview/gui_gtk3_callbacks.c:1161 +msgid "restart" +msgstr "пДрДзаĐČĐ°ĐœŃ‚Đ°Đ¶." + +#: ../guvcview/gui_gtk3_callbacks.c:1163 +msgid "new" +msgstr "ĐœĐŸĐČĐžĐč" + +#: ../guvcview/gui_gtk3_callbacks.c:1165 +msgid "cancel" +msgstr "ĐČŃ–ĐŽĐŒŃ–ĐœĐžŃ‚Đž" + +#: ../guvcview/gui_gtk3_callbacks.c:1170 +msgid "" +"launch new process or restart?.\n" +"\n" +msgstr "" +"Đ·Đ°ĐżŃƒŃŃ‚ĐžŃ‚Đž ĐœĐŸĐČĐžĐč ĐżŃ€ĐŸŃ†Đ”Ń, \n" +"чо пДрДзаĐČĐ°ĐœŃ‚Đ°Đ¶ĐžŃ‚Đž?\n" +"\n" + +#: ../guvcview/gui_gtk3_callbacks.c:1751 +#, fuzzy +msgid "video codec values" +msgstr "Đ·ĐœĐ°Ń‡Đ”ĐœĐœŃ Đ°ŃƒĐŽŃ–ĐŸ-ĐșĐŸĐŽĐ”ĐșĐ°" + +#: ../guvcview/gui_gtk3_callbacks.c:1754 +msgid "_OK" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:1760 +msgid "" +" encoder fps: \n" +" (0 - use fps combobox value)" +msgstr "" +" Ń‡Đ°ŃŃ‚ĐŸŃ‚Đ° ĐșаЮріĐČ: \n" +" (0 - ĐČĐžĐșĐŸŃ€ĐžŃŃ‚Đ°Ń‚Đž Đ·ĐœĐ°Ń‡Đ”ĐœĐœŃ Đ· ĐČĐžĐżĐ°ĐŽĐ°ŃŽŃ‡ĐŸĐłĐŸ спОсĐșу)" + +#: ../guvcview/gui_gtk3_callbacks.c:1773 +msgid " monotonic pts" +msgstr "" + +#. bit rate +#: ../guvcview/gui_gtk3_callbacks.c:1780 ../guvcview/gui_gtk3_callbacks.c:2105 +msgid "bit rate: " +msgstr "бітрДĐčт: " + +#: ../guvcview/gui_gtk3_callbacks.c:1793 +msgid "qmax: " +msgstr "qmax: " + +#: ../guvcview/gui_gtk3_callbacks.c:1806 +msgid "qmin: " +msgstr "qmin: " + +#: ../guvcview/gui_gtk3_callbacks.c:1819 +msgid "max. qdiff: " +msgstr "ĐŒĐ°Đșс. qdiff: " -#: ../src/video_format.c:43 -msgid "AVI - avi format" -msgstr "" +#: ../guvcview/gui_gtk3_callbacks.c:1832 +msgid "dia size: " +msgstr "dia size: " -#: ../src/video_format.c:52 -msgid "MKV - Matroska format" -msgstr "" +#: ../guvcview/gui_gtk3_callbacks.c:1845 +msgid "pre dia size: " +msgstr "pre dia size: " -#: ../src/video_format.c:61 -msgid "WEBM - format" -msgstr "" +#: ../guvcview/gui_gtk3_callbacks.c:1858 +msgid "pre me: " +msgstr "pre me: " -#: ../src/video_tab.c:216 -msgid "Frame Rate:" -msgstr "Đ§Đ°ŃŃ‚ĐŸŃ‚Đ° ĐșаЮріĐČ:" +#: ../guvcview/gui_gtk3_callbacks.c:1871 +msgid "pre cmp: " +msgstr "pre cmp: " -#: ../src/video_tab.c:223 -msgid " Show" -msgstr " ĐŸĐŸĐșĐ°Đ·Đ°Ń‚Đž" +#: ../guvcview/gui_gtk3_callbacks.c:1884 +msgid "cmp: " +msgstr "cmp: " -#: ../src/video_tab.c:245 -msgid "Resolution:" -msgstr "Đ ĐŸĐ·ĐŽŃ–Đ»ŃŒĐœĐ° Đ·ĐŽĐ°Ń‚ĐœŃ–ŃŃ‚ŃŒ:" +#: ../guvcview/gui_gtk3_callbacks.c:1897 +msgid "sub cmp: " +msgstr "sub cmp: " -#: ../src/video_tab.c:271 -msgid "Camera Output:" -msgstr "ВоĐČіЮ ĐșĐ°ĐŒĐ”Ń€Đž:" +#: ../guvcview/gui_gtk3_callbacks.c:1910 +msgid "last predictor count: " +msgstr "Đ·ĐœĐ°Ń‡Đ”ĐœĐœŃ Đ»Ń–Ń‡ĐžĐ»ŃŒĐœĐžĐșĐ° ĐżŃ€ĐŸĐłĐœĐŸĐ·ĐžŃŃ‚Đ°: " -#: ../src/video_tab.c:293 -msgid "Apply" -msgstr "Đ—Đ°ŃŃ‚ĐŸŃŃƒĐČато" +#: ../guvcview/gui_gtk3_callbacks.c:1923 +msgid "gop size: " +msgstr "gop size: " -#: ../src/video_tab.c:300 -msgid "Quality:" -msgstr "ĐŻĐșість:" +#: ../guvcview/gui_gtk3_callbacks.c:1936 +msgid "qcompress: " +msgstr "qcompress " -#: ../src/video_tab.c:310 -msgid "---- Video Filters ----" -msgstr "---- Đ’Ń–ĐŽĐ”ĐŸ Ń„Ń–Đ»ŃŒŃ‚Ń€Đž ----" +#: ../guvcview/gui_gtk3_callbacks.c:1949 +msgid "qblur: " +msgstr "qblur: " -#. Mirror -#: ../src/video_tab.c:329 -msgid " Mirror" -msgstr " Đ“ĐŸŃ€. ĐČіЎЎзДрĐșĐ°Đ»." +#: ../guvcview/gui_gtk3_callbacks.c:1962 +msgid "subq: " +msgstr "subq: " -#. Upturn -#: ../src/video_tab.c:340 -msgid " Invert" -msgstr " ВДрт. ĐČіЎЎзДрĐșĐ°Đ»." +#: ../guvcview/gui_gtk3_callbacks.c:1975 +msgid "framerefs: " +msgstr "framerefs: " -#. Negate -#: ../src/video_tab.c:351 -msgid " Negative" -msgstr " ĐĐ”ĐłĐ°Ń‚ĐžĐČ" +#: ../guvcview/gui_gtk3_callbacks.c:1988 +msgid "me method: " +msgstr "me method: " -#. Mono -#: ../src/video_tab.c:362 -msgid " Mono" -msgstr " Đ§ĐŸŃ€ĐœĐŸ-білД" +#: ../guvcview/gui_gtk3_callbacks.c:2001 +msgid "mb decision: " +msgstr "mb decision: " -#. Pieces -#: ../src/video_tab.c:374 -msgid " Pieces" -msgstr " ĐœĐŸĐ·Đ°Ń—ĐșĐ°" +#: ../guvcview/gui_gtk3_callbacks.c:2014 +msgid "max B frames: " +msgstr "max B frames: " -#. Particles -#: ../src/video_tab.c:386 -msgid " Particles" -msgstr " Đ§Đ°ŃŃ‚ĐŸŃ‡ĐșĐž" +#: ../guvcview/gui_gtk3_callbacks.c:2027 +msgid "num threads: " +msgstr "" -#: ../src/uvc_h264.c:596 -msgid "H264 Controls" +#: ../guvcview/gui_gtk3_callbacks.c:2094 +msgid "audio codec values" +msgstr "Đ·ĐœĐ°Ń‡Đ”ĐœĐœŃ Đ°ŃƒĐŽŃ–ĐŸ-ĐșĐŸĐŽĐ”ĐșĐ°" + +#. sample format +#: ../guvcview/gui_gtk3_callbacks.c:2119 +msgid "sample format: " msgstr "" -#: ../src/uvc_h264.c:615 +#: ../guvcview/gui_gtk3_h264ctrls.c:622 +#, fuzzy msgid "Rate Control Mode:" msgstr "" +"ĐšĐ”Ń€ŃƒĐČĐ°ĐœĐœŃ\n" +"Đ·ĐŸĐ±Ń€Đ°Đ¶Đ”ĐœĐœŃĐŒ" -#: ../src/uvc_h264.c:626 +#: ../guvcview/gui_gtk3_h264ctrls.c:633 msgid "CBR" msgstr "" -#: ../src/uvc_h264.c:629 +#: ../guvcview/gui_gtk3_h264ctrls.c:636 msgid "VBR" msgstr "" -#: ../src/uvc_h264.c:633 +#: ../guvcview/gui_gtk3_h264ctrls.c:640 msgid "Constant QP" msgstr "" -#: ../src/uvc_h264.c:651 +#: ../guvcview/gui_gtk3_h264ctrls.c:658 msgid "Rate Control Mode flags:" msgstr "" -#: ../src/uvc_h264.c:676 +#: ../guvcview/gui_gtk3_h264ctrls.c:683 msgid "Temporal Scale Mode:" msgstr "" -#: ../src/uvc_h264.c:704 +#: ../guvcview/gui_gtk3_h264ctrls.c:711 msgid "Spatial Scale Mode:" msgstr "" -#: ../src/uvc_h264.c:737 +#: ../guvcview/gui_gtk3_h264ctrls.c:741 msgid "Frame Interval (100ns units):" msgstr "" -#: ../src/uvc_h264.c:772 +#: ../guvcview/gui_gtk3_h264ctrls.c:778 +#, fuzzy msgid "Bit Rate:" -msgstr "" +msgstr "бітрДĐčт: " -#: ../src/uvc_h264.c:795 +#: ../guvcview/gui_gtk3_h264ctrls.c:801 msgid "Hints:" msgstr "" -#: ../src/uvc_h264.c:800 +#: ../guvcview/gui_gtk3_h264ctrls.c:806 +#, fuzzy msgid "Resolution" -msgstr "" +msgstr "Đ ĐŸĐ·ĐŽŃ–Đ»ŃŒĐœĐ° Đ·ĐŽĐ°Ń‚ĐœŃ–ŃŃ‚ŃŒ:" -#: ../src/uvc_h264.c:804 +#: ../guvcview/gui_gtk3_h264ctrls.c:810 msgid "Profile" msgstr "" -#: ../src/uvc_h264.c:808 +#: ../guvcview/gui_gtk3_h264ctrls.c:814 +#, fuzzy msgid "Rate Control" msgstr "" +"ĐšĐ”Ń€ŃƒĐČĐ°ĐœĐœŃ\n" +"Đ·ĐŸĐ±Ń€Đ°Đ¶Đ”ĐœĐœŃĐŒ" -#: ../src/uvc_h264.c:812 +#: ../guvcview/gui_gtk3_h264ctrls.c:818 msgid "Usage Type" msgstr "" -#: ../src/uvc_h264.c:816 +#: ../guvcview/gui_gtk3_h264ctrls.c:822 msgid "Slice Mode" msgstr "" -#: ../src/uvc_h264.c:820 +#: ../guvcview/gui_gtk3_h264ctrls.c:826 msgid "Slice Unit" msgstr "" -#: ../src/uvc_h264.c:824 +#: ../guvcview/gui_gtk3_h264ctrls.c:830 msgid "MVC View" msgstr "" -#: ../src/uvc_h264.c:828 +#: ../guvcview/gui_gtk3_h264ctrls.c:834 msgid "Temporal Scale" msgstr "" -#: ../src/uvc_h264.c:832 +#: ../guvcview/gui_gtk3_h264ctrls.c:838 msgid "SNR Scale" msgstr "" -#: ../src/uvc_h264.c:836 +#: ../guvcview/gui_gtk3_h264ctrls.c:842 msgid "Spatial Scale" msgstr "" -#: ../src/uvc_h264.c:840 +#: ../guvcview/gui_gtk3_h264ctrls.c:846 msgid "Spatial Layer Ratio" msgstr "" -#: ../src/uvc_h264.c:844 +#: ../guvcview/gui_gtk3_h264ctrls.c:850 +#, fuzzy msgid "Frame Interval" -msgstr "" +msgstr "Đ§Đ°ŃŃ‚ĐŸŃ‚Đ° ĐșаЮріĐČ:" -#: ../src/uvc_h264.c:848 +#: ../guvcview/gui_gtk3_h264ctrls.c:854 msgid "Leaky Bucket Size" msgstr "" -#: ../src/uvc_h264.c:852 +#: ../guvcview/gui_gtk3_h264ctrls.c:858 msgid "Bit Rate" msgstr "" -#: ../src/uvc_h264.c:856 ../src/uvc_h264.c:1250 +#: ../guvcview/gui_gtk3_h264ctrls.c:862 ../guvcview/gui_gtk3_h264ctrls.c:1220 msgid "CABAC" msgstr "" -#: ../src/uvc_h264.c:860 +#: ../guvcview/gui_gtk3_h264ctrls.c:866 msgid "(I) Frame Period" msgstr "" -#: ../src/uvc_h264.c:907 +#: ../guvcview/gui_gtk3_h264ctrls.c:878 msgid "Slice Mode:" msgstr "" -#: ../src/uvc_h264.c:914 +#: ../guvcview/gui_gtk3_h264ctrls.c:885 msgid "no multiple slices" msgstr "" -#: ../src/uvc_h264.c:916 +#: ../guvcview/gui_gtk3_h264ctrls.c:887 msgid "bits/slice" msgstr "" -#: ../src/uvc_h264.c:918 +#: ../guvcview/gui_gtk3_h264ctrls.c:889 msgid "Mbits/slice" msgstr "" -#: ../src/uvc_h264.c:920 +#: ../guvcview/gui_gtk3_h264ctrls.c:891 msgid "slices/frame" msgstr "" -#: ../src/uvc_h264.c:929 +#: ../guvcview/gui_gtk3_h264ctrls.c:900 msgid "Slice Units:" msgstr "" -#: ../src/uvc_h264.c:950 +#: ../guvcview/gui_gtk3_h264ctrls.c:921 msgid "Profile:" msgstr "" -#: ../src/uvc_h264.c:957 +#: ../guvcview/gui_gtk3_h264ctrls.c:928 msgid "Baseline Profile" msgstr "" -#: ../src/uvc_h264.c:959 +#: ../guvcview/gui_gtk3_h264ctrls.c:930 msgid "Main Profile" msgstr "" -#: ../src/uvc_h264.c:961 +#: ../guvcview/gui_gtk3_h264ctrls.c:932 msgid "High Profile" msgstr "" -#: ../src/uvc_h264.c:963 +#: ../guvcview/gui_gtk3_h264ctrls.c:934 msgid "Scalable Baseline Profile" msgstr "" -#: ../src/uvc_h264.c:965 +#: ../guvcview/gui_gtk3_h264ctrls.c:936 msgid "Scalable High Profile" msgstr "" -#: ../src/uvc_h264.c:967 +#: ../guvcview/gui_gtk3_h264ctrls.c:938 msgid "Multiview High Profile" msgstr "" -#: ../src/uvc_h264.c:969 +#: ../guvcview/gui_gtk3_h264ctrls.c:940 msgid "Stereo High Profile" msgstr "" -#: ../src/uvc_h264.c:1008 +#: ../guvcview/gui_gtk3_h264ctrls.c:979 msgid "Profile flags:" msgstr "" -#: ../src/uvc_h264.c:1033 +#: ../guvcview/gui_gtk3_h264ctrls.c:1004 msgid "(I) Frame Period (ms):" msgstr "" -#: ../src/uvc_h264.c:1054 +#: ../guvcview/gui_gtk3_h264ctrls.c:1025 msgid "Estimated Video Delay (ms):" msgstr "" -#: ../src/uvc_h264.c:1075 +#: ../guvcview/gui_gtk3_h264ctrls.c:1046 msgid "Estimated Max Config Delay (ms):" msgstr "" -#: ../src/uvc_h264.c:1096 +#: ../guvcview/gui_gtk3_h264ctrls.c:1067 msgid "Usage Type:" msgstr "" -#: ../src/uvc_h264.c:1103 +#: ../guvcview/gui_gtk3_h264ctrls.c:1074 msgid "Real-time" msgstr "" -#: ../src/uvc_h264.c:1105 +#: ../guvcview/gui_gtk3_h264ctrls.c:1076 msgid "Broadcast" msgstr "" -#: ../src/uvc_h264.c:1107 +#: ../guvcview/gui_gtk3_h264ctrls.c:1078 msgid "Storage" msgstr "" -#: ../src/uvc_h264.c:1109 +#: ../guvcview/gui_gtk3_h264ctrls.c:1080 msgid "(0) Non-scalable single layer AVC" msgstr "" -#: ../src/uvc_h264.c:1111 +#: ../guvcview/gui_gtk3_h264ctrls.c:1082 msgid "(1) SVC temporal scalability with hierarchical P" msgstr "" -#: ../src/uvc_h264.c:1113 +#: ../guvcview/gui_gtk3_h264ctrls.c:1084 msgid "(2q) SVC temporal scalability + Quality/SNR scalability" msgstr "" -#: ../src/uvc_h264.c:1115 +#: ../guvcview/gui_gtk3_h264ctrls.c:1086 msgid "(2s) SVC temporal scalability + spatial scalability" msgstr "" -#: ../src/uvc_h264.c:1117 +#: ../guvcview/gui_gtk3_h264ctrls.c:1088 msgid "(3) Full SVC scalability" msgstr "" -#: ../src/uvc_h264.c:1131 +#: ../guvcview/gui_gtk3_h264ctrls.c:1102 msgid "SNR Control Mode:" msgstr "" -#: ../src/uvc_h264.c:1138 +#: ../guvcview/gui_gtk3_h264ctrls.c:1109 msgid "No SNR Enhancement Layer" msgstr "" -#: ../src/uvc_h264.c:1140 +#: ../guvcview/gui_gtk3_h264ctrls.c:1111 msgid "CGS NonRewrite (2 Layer)" msgstr "" -#: ../src/uvc_h264.c:1142 +#: ../guvcview/gui_gtk3_h264ctrls.c:1113 msgid "CGS NonRewrite (3 Layer)" msgstr "" -#: ../src/uvc_h264.c:1144 +#: ../guvcview/gui_gtk3_h264ctrls.c:1115 msgid "CGS Rewrite (2 Layer)" msgstr "" -#: ../src/uvc_h264.c:1146 +#: ../guvcview/gui_gtk3_h264ctrls.c:1117 msgid "CGS Rewrite (3 Layer)" msgstr "" -#: ../src/uvc_h264.c:1148 +#: ../guvcview/gui_gtk3_h264ctrls.c:1119 msgid "MGS (2 Layer)" msgstr "" -#: ../src/uvc_h264.c:1173 +#: ../guvcview/gui_gtk3_h264ctrls.c:1144 msgid "Stream Mux Enable" msgstr "" -#: ../src/uvc_h264.c:1180 +#: ../guvcview/gui_gtk3_h264ctrls.c:1151 msgid "Embed H.264 aux stream" msgstr "" -#: ../src/uvc_h264.c:1182 +#: ../guvcview/gui_gtk3_h264ctrls.c:1153 msgid "Embed YUY2 aux stream" msgstr "" -#: ../src/uvc_h264.c:1184 +#: ../guvcview/gui_gtk3_h264ctrls.c:1155 msgid "Embed NV12 aux stream" msgstr "" -#: ../src/uvc_h264.c:1204 +#: ../guvcview/gui_gtk3_h264ctrls.c:1175 msgid "MJPG payload container" msgstr "" -#: ../src/uvc_h264.c:1219 +#: ../guvcview/gui_gtk3_h264ctrls.c:1189 msgid "Stream Format:" msgstr "" -#: ../src/uvc_h264.c:1227 +#: ../guvcview/gui_gtk3_h264ctrls.c:1197 msgid "Byte stream format (H.264 Annex-B)" msgstr "" -#: ../src/uvc_h264.c:1229 +#: ../guvcview/gui_gtk3_h264ctrls.c:1199 msgid "NAL stream format" msgstr "" -#: ../src/uvc_h264.c:1240 +#: ../guvcview/gui_gtk3_h264ctrls.c:1210 msgid "Entropy CABAC:" msgstr "" -#: ../src/uvc_h264.c:1248 +#: ../guvcview/gui_gtk3_h264ctrls.c:1218 msgid "CAVLC" msgstr "" -#: ../src/uvc_h264.c:1261 +#: ../guvcview/gui_gtk3_h264ctrls.c:1231 msgid "Picture timing SEI" msgstr "" -#: ../src/uvc_h264.c:1268 +#: ../guvcview/gui_gtk3_h264ctrls.c:1238 +#, fuzzy msgid "B Frames:" -msgstr "" +msgstr "max B frames: " -#: ../src/uvc_h264.c:1293 +#: ../guvcview/gui_gtk3_h264ctrls.c:1263 msgid "Preview Flipped" msgstr "" -#: ../src/uvc_h264.c:1300 +#: ../guvcview/gui_gtk3_h264ctrls.c:1270 msgid "Additional MVC Views:" msgstr "" -#: ../src/uvc_h264.c:1325 +#: ../guvcview/gui_gtk3_h264ctrls.c:1295 msgid "Simulcast stream index:" msgstr "" -#: ../src/uvc_h264.c:1350 +#: ../guvcview/gui_gtk3_h264ctrls.c:1320 msgid "Spatial Layer Ratio:" msgstr "" -#: ../src/uvc_h264.c:1379 +#: ../guvcview/gui_gtk3_h264ctrls.c:1349 msgid "Leaky Bucket Size (ms):" msgstr "" #. encoder reset -#: ../src/uvc_h264.c:1406 +#: ../guvcview/gui_gtk3_h264ctrls.c:1376 +#, fuzzy msgid "Encoder Reset" -msgstr "" +msgstr "ĐĄĐșĐžĐœŃƒŃ‚Đž ĐżĐŸĐČĐŸŃ€ĐŸŃ‚" -#. -#. h264_controls->probe_button = gtk_button_new_with_label(_("PROBE")); -#. g_signal_connect (GTK_BUTTON(h264_controls->probe_button), "clicked", +#. +#. GtkWidget *probe_button = gtk_button_new_with_label(_("PROBE")); +#. g_signal_connect (GTK_BUTTON(probe_button), "clicked", #. G_CALLBACK (h264_probe_button_clicked), all_data); -#. -#. gtk_grid_attach (GTK_GRID(table), h264_controls->probe_button, 0, line, 1 ,1); -#. gtk_widget_show(h264_controls->probe_button); -#. -#: ../src/uvc_h264.c:1421 +#. +#. gtk_grid_attach (GTK_GRID(h264_controls_grid), probe_button, 0, line, 1 ,1); +#. gtk_widget_show(probe_button); +#. +#: ../guvcview/gui_gtk3_h264ctrls.c:1391 msgid "COMMIT" msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:70 +msgid "Settings" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:73 +msgid "Hardware Defaults" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:81 +msgid "Camera Button" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:86 +msgid "Capture Image" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:91 +msgid "Capture Video" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:134 +msgid "Photo" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:135 ../guvcview/gui_gtk3_menu.c:159 +msgid "File" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:136 ../guvcview/gui_gtk3_menu.c:160 +msgid "Increment Filename" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:158 +msgid "Video" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:175 +msgid "Video Codec" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:202 +msgid "Video Codec Properties" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:208 +msgid "Audio Codec" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:235 +msgid "Audio Codec Properties" +msgstr "" + +#: ../guvcview/gui_gtk3_v4l2ctrls.c:174 +msgid "Left" +msgstr "ЛіĐČĐžĐč" + +#: ../guvcview/gui_gtk3_v4l2ctrls.c:175 +msgid "Right" +msgstr "ПраĐČĐžĐč" + +#: ../guvcview/gui_gtk3_v4l2ctrls.c:179 +msgid "Down" +msgstr "Đ’ĐœĐžĐ·" + +#: ../guvcview/gui_gtk3_v4l2ctrls.c:180 +msgid "Up" +msgstr "ВĐČДрх" + +#. turn it into a menu control +#: ../guvcview/gui_gtk3_v4l2ctrls.c:296 +msgid "8 bit" +msgstr "" + +#: ../guvcview/gui_gtk3_v4l2ctrls.c:296 +msgid "12 bit" +msgstr "" + +#. add a virtual control for software autofocus +#: ../guvcview/gui_gtk3_v4l2ctrls.c:348 +msgid "Auto Focus (continuous)" +msgstr "АĐČŃ‚ĐŸ Ń„ĐŸĐșус (бДзпДрДрĐČĐœĐžĐč)" + +#: ../guvcview/gui_gtk3_v4l2ctrls.c:349 +msgid "set Focus" +msgstr "ĐČŃŃ‚Đ°ĐœĐŸĐČото Ń„ĐŸĐșус" + +#. control_widgets_list[n].widget2 = gtk_button_new_from_stock(GTK_STOCK_APPLY); +#. control_widgets_list[n].widget2= gtk_button_new_from_stock(GTK_STOCK_APPLY); +#. control_widgets_list[n].widget2 = gtk_button_new_from_stock(GTK_STOCK_APPLY); +#: ../guvcview/gui_gtk3_v4l2ctrls.c:433 ../guvcview/gui_gtk3_v4l2ctrls.c:456 +#: ../guvcview/gui_gtk3_v4l2ctrls.c:478 +#, fuzzy +msgid "_Apply" +msgstr "Đ—Đ°ŃŃ‚ĐŸŃŃƒĐČато" + +#: ../guvcview/gui_gtk3_videoctrls.c:144 +msgid "Frame Rate:" +msgstr "Đ§Đ°ŃŃ‚ĐŸŃ‚Đ° ĐșаЮріĐČ:" + +#: ../guvcview/gui_gtk3_videoctrls.c:204 +msgid "Resolution:" +msgstr "Đ ĐŸĐ·ĐŽŃ–Đ»ŃŒĐœĐ° Đ·ĐŽĐ°Ń‚ĐœŃ–ŃŃ‚ŃŒ:" + +#: ../guvcview/gui_gtk3_videoctrls.c:254 +msgid "Camera Output:" +msgstr "ВоĐČіЮ ĐșĐ°ĐŒĐ”Ń€Đž:" + +#: ../guvcview/gui_gtk3_videoctrls.c:287 +msgid "---- Video Filters ----" +msgstr "---- Đ’Ń–ĐŽĐ”ĐŸ Ń„Ń–Đ»ŃŒŃ‚Ń€Đž ----" + +#. Mirror FX +#: ../guvcview/gui_gtk3_videoctrls.c:307 +msgid " Mirror" +msgstr " Đ“ĐŸŃ€. ĐČіЎЎзДрĐșĐ°Đ»." + +#. Upturn FX +#: ../guvcview/gui_gtk3_videoctrls.c:319 +msgid " Invert" +msgstr " ВДрт. ĐČіЎЎзДрĐșĐ°Đ»." + +#. Negate FX +#: ../guvcview/gui_gtk3_videoctrls.c:331 +msgid " Negative" +msgstr " ĐĐ”ĐłĐ°Ń‚ĐžĐČ" + +#. Mono FX +#: ../guvcview/gui_gtk3_videoctrls.c:343 +msgid " Mono" +msgstr " Đ§ĐŸŃ€ĐœĐŸ-білД" + +#. Pieces FX +#: ../guvcview/gui_gtk3_videoctrls.c:356 +msgid " Pieces" +msgstr " ĐœĐŸĐ·Đ°Ń—ĐșĐ°" + +#. Particles +#: ../guvcview/gui_gtk3_videoctrls.c:369 +msgid " Particles" +msgstr " Đ§Đ°ŃŃ‚ĐŸŃ‡ĐșĐž" + +#: ../guvcview/options.c:51 +msgid "Print help" +msgstr "" + +#: ../guvcview/options.c:58 +#, fuzzy +msgid "Print version" +msgstr "ĐŸĐŸĐșĐ°Đ·ŃƒŃ” ĐČДрсію" + +#: ../guvcview/options.c:64 +msgid "LEVEL" +msgstr "" + +#: ../guvcview/options.c:65 +msgid "Set Verbosity level (def: 0)" +msgstr "" + +#: ../guvcview/options.c:71 +msgid "DEVICE" +msgstr "" + +#: ../guvcview/options.c:72 +#, fuzzy +msgid "Set device name (def: /dev/video0)" +msgstr "ВоĐșĐŸŃ€ĐžŃŃ‚Đ°ĐœĐžĐč ĐČŃ–ĐŽĐ”ĐŸ-простріĐč [default: /dev/video0]" + +#: ../guvcview/options.c:78 +msgid "METHOD" +msgstr "" + +#: ../guvcview/options.c:79 +#, fuzzy +msgid "Set capture method [read | mmap (def)]" +msgstr "ĐœĐ”Ń‚ĐŸĐŽ Đ·Đ°Ń…ĐŸĐżĐ»Đ”ĐœĐœŃ (1-mmap (Đ·Đ°ĐŒĐŸĐČч.) 2-read)" + +#: ../guvcview/options.c:85 +msgid "WIDTHxHEIGHT" +msgstr "" + +#: ../guvcview/options.c:86 +msgid "Request resolution (e.g 640x480)" +msgstr "" + +#: ../guvcview/options.c:92 +msgid "FOURCC" +msgstr "" + +#: ../guvcview/options.c:93 +msgid "Request format (e.g MJPG)" +msgstr "" + +#: ../guvcview/options.c:99 +msgid "RENDER_API" +msgstr "" + +#: ../guvcview/options.c:100 +msgid "Select render API (e.g none; sdl)" +msgstr "" + +#: ../guvcview/options.c:106 +msgid "AUDIO_API" +msgstr "" + +#: ../guvcview/options.c:107 +msgid "Select audio API (e.g none; port; pulse)" +msgstr "" + +#: ../guvcview/options.c:113 +msgid "AUDIO_DEVICE" +msgstr "" + +#: ../guvcview/options.c:114 +msgid "Select audio device index for selected api (0..N)" +msgstr "" + +#: ../guvcview/options.c:120 +msgid "GUI_API" +msgstr "" + +#: ../guvcview/options.c:121 +msgid "Select GUI API (e.g none; gtk3)" +msgstr "" + +#: ../guvcview/options.c:127 ../guvcview/options.c:134 +msgid "CODEC" +msgstr "" + +#: ../guvcview/options.c:128 +msgid "Audio codec [pcm mp2 mp3 aac ac3 vorb]" +msgstr "" + +#: ../guvcview/options.c:135 +msgid "Video codec [raw mjpg mpeg flv1 wmv1 mpg2 mp43 dx50 h264 vp80 theo]" +msgstr "" + +#: ../guvcview/options.c:141 ../guvcview/options.c:148 +#: ../guvcview/options.c:155 +msgid "FILENAME" +msgstr "" + +#: ../guvcview/options.c:142 +msgid "load control profile" +msgstr "" + +#: ../guvcview/options.c:149 +msgid "filename for captured video)" +msgstr "" + +#: ../guvcview/options.c:156 +msgid "filename for captured image)" +msgstr "" + +#: ../guvcview/options.c:162 ../guvcview/options.c:169 +msgid "TIME_IN_SEC" +msgstr "" + +#: ../guvcview/options.c:163 +msgid "time (double) in sec. for video capture)" +msgstr "" + +#: ../guvcview/options.c:170 +msgid "time (double) in sec. between captured photos)" +msgstr "" + +#: ../guvcview/options.c:176 +msgid "TOTAL" +msgstr "" + +#: ../guvcview/options.c:177 +msgid "total number of captured photos)" +msgstr "" + +#: ../guvcview/options.c:184 +msgid "Start in control panel mode" +msgstr "" + +#: ../guvcview/options.c:307 +#, fuzzy, c-format +msgid "" +"Guvcview version %s\n" +"\n" +msgstr "ĐŸĐŸĐżĐ”Ń€Đ”ĐŽĐ¶Đ”ĐœĐœŃ:" + +#: ../guvcview/options.c:308 +#, c-format +msgid "" +"Usage:\n" +" guvcview [OPTIONS]\n" +"\n" +msgstr "" + +#: ../guvcview/options.c:309 +#, c-format +msgid "OPTIONS:\n" +msgstr "" + +#: ../guvcview/video_capture.c:819 +#, c-format +msgid "saving video to %s" +msgstr "" + +#. if(debug_level > 1) +#. printf("GUVCVIEW: saving image to %s\n", img_filename); +#: ../guvcview/video_capture.c:1069 +#, c-format +msgid "saving image to %s" +msgstr "" + +#~ msgid "Audio" +#~ msgstr "ĐŃƒĐŽŃ–ĐŸ" + +#~ msgid " Sound" +#~ msgstr " ЗĐČуĐș" + +#~ msgid "---- Audio Effects ----" +#~ msgstr "---- Đ•Ń„Đ”Đșто Đ°ŃƒĐŽŃ–ĐŸ ----" + +#~ msgid "Save File" +#~ msgstr "ЗбДрДгтО" + +#~ msgid "codec values" +#~ msgstr "Đ·ĐœĐ°Ń‡Đ”ĐœĐœŃ ĐșĐŸĐŽĐ”ĐșĐ°" + +#~ msgid "Cap. Video" +#~ msgstr "Đ’Ń–ĐŽĐ”ĐŸ" + +#~ msgid "GUVCViewer Controls" +#~ msgstr "ĐŸĐ°ĐœĐ”Đ»ŃŒ ĐœĐ°Đ»Đ°ŃˆŃ‚ŃƒĐČĐ°ĐœŃŒ Guvcview" + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to open device" +#~ msgstr "" +#~ "ĐŸĐŸĐŒĐžĐ»ĐșĐ°:\n" +#~ "\n" +#~ "ĐĐ” ĐŒĐŸĐ¶Ńƒ ĐČіЮĐșрото простріĐč" + +#~ msgid "" +#~ "Please make sure the camera is connected\n" +#~ "and that the correct driver is installed." +#~ msgstr "" +#~ "ĐŸĐ”Ń€Đ”ĐșĐŸĐœĐ°ĐčŃ‚Đ”ŃŃŒ, Ń‰ĐŸ ĐșĐ°ĐŒĐ”Ń€Đ° піЮĐșĐ»ŃŽŃ‡Đ”ĐœĐ°\n" +#~ "і ĐČŃŃ‚Đ°ĐœĐŸĐČĐ»Đ”ĐœĐŸ ĐČŃ–ĐŽĐżĐŸĐČŃ–ĐŽĐœĐžĐč ЮраĐčĐČДр." + +#~ msgid "" +#~ "Guvcview:\n" +#~ "\n" +#~ "UVC Extension controls" +#~ msgstr "" +#~ "Guvcview:\n" +#~ "\n" +#~ "Đ•Đ»Đ”ĐŒĐ”ĐœŃ‚Đž ĐșĐ”Ń€ŃƒĐČĐ°ĐœĐœŃ Ń€ĐŸĐ·ŃˆĐžŃ€Đ”ĐœĐœŃĐŒ UVC" + +#~ msgid "Extension controls were added to the UVC driver" +#~ msgstr "ĐšĐ”Ń€ŃƒŃŽŃ‡Ń– Đ”Đ»Đ”ĐŒĐ”ĐœŃ‚Đž Ń€ĐŸĐ·ŃˆĐžŃ€Đ”ĐœĐœŃ булО ĐŽĐŸĐŽĐ°ĐœŃ– ĐŽĐŸ ЮраĐčĐČĐ”Ń€Ńƒ UVC" + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "UVC Extension controls" +#~ msgstr "" +#~ "ĐŸĐŸĐŒĐžĐ»ĐșĐ°:\n" +#~ "\n" +#~ "ĐšĐ”Ń€ŃƒŃŽŃ‡Ń– Đ”Đ»Đ”ĐŒĐ”ĐœŃ‚Đž UVC" + +#~ msgid "" +#~ "An error occurred while adding extension\n" +#~ "controls to the UVC driver\n" +#~ "Make sure you run guvcview as root (or sudo)." +#~ msgstr "" +#~ "Đ’ĐžĐœĐžĐșла ĐżĐŸĐŒĐžĐ»ĐșĐ° ĐČ ĐżŃ€ĐŸŃ†Đ”ŃŃ– ĐŽĐŸĐŽĐ°ĐČĐ°ĐœĐœŃ ĐșĐ”Ń€ŃƒŃŽŃ‡ĐžŃ… \n" +#~ "Đ”Đ»Đ”ĐŒĐ”ĐœŃ‚Ń–ĐČ Ń€ĐŸĐ·ŃˆĐžŃ€Đ”ĐœĐœŃ ĐŽĐŸ ЮраĐčĐČĐ”Ń€Ńƒ UVC.\n" +#~ "ĐŸĐ”Ń€Đ”ĐșĐŸĐœĐ°ĐčŃ‚Đ”ŃŃŒ Ń‰ĐŸ Guvcview Đ·Đ°ĐżŃƒŃ‰Đ”ĐœĐŸ ĐČіЮ Ń–ĐŒĐ”ĐœŃ– root (чо sudo)." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Can't set a valid video stream for guvcview" +#~ msgstr "" +#~ "ĐŸĐŸĐŒĐžĐ»ĐșĐ°:\n" +#~ "\n" +#~ "ĐĐ” ĐŒĐŸĐ¶Ńƒ ĐČŃŃ‚Đ°ĐœĐŸĐČото праĐČĐžĐ»ŃŒĐœĐžĐč ĐČŃ–ĐŽĐ”ĐŸ ĐżĐŸŃ‚Ń–Đș ĐŽĐ»Ń Guvcview" + +#~ msgid "" +#~ "Make sure your device driver is v4l2 compliant\n" +#~ "and that it is properly installed." +#~ msgstr "" +#~ "ĐŸĐ”Ń€Đ”ĐșĐŸĐœĐ°ĐčŃ‚Đ”ŃŃŒ, Ń‰ĐŸ ЮраĐčĐČДр ŃŃƒĐŒŃ–ŃĐœĐžĐč Đ· v4l2\n" +#~ "і ĐČŃŃ‚Đ°ĐœĐŸĐČĐ»Đ”ĐœĐžĐč праĐČĐžĐ»ŃŒĐœĐŸ." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to start with minimum setup" +#~ msgstr "" +#~ "ĐŸĐŸĐŒĐžĐ»ĐșĐ°:\n" +#~ "\n" +#~ "ĐĐ” ĐŒĐŸĐ¶Ńƒ Đ·Đ°ĐżŃƒŃŃ‚ĐžŃ‚ĐžŃŃŒ Đ· ĐŒŃ–ĐœŃ–ĐŒĐ°Đ»ŃŒĐœĐŸŃŽ ŃƒŃŃ‚Đ°ĐœĐŸĐČĐșĐŸŃŽ" + +#~ msgid "Please reconnect your camera." +#~ msgstr "БуЮь ласĐșĐ°, ĐżĐŸĐČŃ‚ĐŸŃ€ĐœĐŸ піЮĐșĐ»ŃŽŃ‡Ń–Ń‚ŃŒ сĐČĐŸŃŽ ĐșĐ°ĐŒĐ”Ń€Ńƒ." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Couldn't query device capabilities" +#~ msgstr "" +#~ "ĐŸĐŸĐŒĐžĐ»ĐșĐ°:\n" +#~ "\n" +#~ "ĐĐ” ĐŒĐŸĐ¶Ńƒ ĐœĐ°ĐŽŃ–ŃĐ»Đ°Ń‚Đž запОт ĐżŃ€ĐŸ ĐŒĐŸĐ¶Đ»ĐžĐČĐŸŃŃ‚Ń– ĐżŃ€ĐžŃŃ‚Ń€ĐŸŃŽ" + +#~ msgid "Make sure the device driver supports v4l2." +#~ msgstr "ĐŸĐ”Ń€Đ”ĐșĐŸĐœĐ°ĐčŃ‚Đ”ŃŃŒ, Ń‰ĐŸ ЮраĐčĐČДр ĐżŃ€ĐžŃŃ‚Ń€ĐŸŃŽ ĐżŃ–ĐŽŃ‚Ń€ĐžĐŒŃƒŃ” v4l2" + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Read method error" +#~ msgstr "" +#~ "ĐŸĐŸĐŒĐžĐ»ĐșĐ°:\n" +#~ "\n" +#~ "ĐŸĐŸĐŒĐžĐ»ĐșĐ° ĐŒĐ”Ń‚ĐŸĐŽŃƒ Đ·Ń‡ĐžŃ‚ŃƒĐČĐ°ĐœĐœŃ." + +#~ msgid "Please try mmap instead (--capture_method=1)." +#~ msgstr "БуЮь ласĐșĐ°, ŃĐżŃ€ĐŸĐ±ŃƒĐčŃ‚Đ” mmap instead (--capture_method=1)." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to allocate Buffers" +#~ msgstr "" +#~ "ĐŸĐŸĐŒĐžĐ»ĐșĐ°:\n" +#~ "\n" +#~ "ĐĐ” ĐŒĐŸĐ¶Ńƒ ĐČОЎілОтО ĐŒŃ–ŃŃ†Đ” піЮ Đ‘ŃƒŃ„Đ”Ń€Đž." + +#~ msgid "Please try restarting your system." +#~ msgstr "БуЮь ласĐșĐ°, ŃĐżŃ€ĐŸĐ±ŃƒĐčŃ‚Đ” пДрДзаĐČĐ°ĐœŃ‚Đ°Đ¶ĐžŃ‚Đž ŃĐžŃŃ‚Đ”ĐŒŃƒ." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to create Video Thread" +#~ msgstr "" +#~ "ĐŸĐŸĐŒĐžĐ»ĐșĐ°:\n" +#~ "\n" +#~ "ĐĐ” ĐŒĐŸĐ¶Ńƒ стĐČĐŸŃ€ĐžŃ‚Đž ĐżĐŸŃ‚Ń–Đș ĐșĐŸĐŒĐ°ĐœĐŽ ĐŽĐ»Ń ĐČŃ–ĐŽĐ”ĐŸ" + +#~ msgid "Please report it to http://developer.berlios.de/bugs/?group_id=8179" +#~ msgstr "" +#~ "БуЮь ласĐșĐ°, ĐżĐŸĐČŃ–ĐŽĐŸĐŒŃ‚Đ” ĐżŃ€ĐŸ цД тут http://developer.berlios.de/bugs/?" +#~ "group_id=8179" + +#~ msgid "Displays debug information" +#~ msgstr "ĐŸĐŸĐșĐ°Đ·ŃƒŃ” Ń–ĐœŃ„ĐŸŃ€ĐŒĐ°Ń†Ń–ŃŽ ĐŽĐ»Ń ĐČŃ–ĐŽĐ»Đ°ĐłĐŸĐŽĐ¶ŃƒĐČĐ°ĐœĐœŃ" + +#~ msgid "Exit after adding UVC extension controls (needs root/sudo)" +#~ msgstr "" +#~ "ВоĐčто ĐżŃ–ŃĐ»Ń ĐŽĐŸĐŽĐ°ĐČĐ°ĐœĐœŃ ĐșĐ”Ń€ŃƒŃŽŃ‡ĐžŃ… Đ”Đ»Đ”ĐŒĐ”ĐœŃ‚Ń–ĐČ Ń€ĐŸĐ·ŃˆĐžŃ€Đ”ĐœĐœŃ UVC\n" +#~ "(ĐżĐŸŃ‚Ń€Ń–Đ±ĐœŃ– праĐČĐ° Đ°ĐŽĐŒŃ–ĐœŃ–ŃŃ‚Ń€Đ°Ń‚ĐŸŃ€Đ°)" + +#~ msgid "Don't stream video (image controls only)" +#~ msgstr "ĐĐ” ĐżĐŸŃ‚ĐŸĐșĐŸĐČĐ” ĐČŃ–ĐŽĐ”ĐŸ (ĐșĐ”Ń€ŃƒĐČато лОшД Đ·ĐŸĐ±Ń€Đ°Đ¶Đ”ĐœĐœŃĐŒ)" + +#~ msgid "Configuration file" +#~ msgstr "ЀаĐčĐ» ĐșĐŸĐœŃ„Ń–ĐłŃƒŃ€Đ°Ń†Ń–Ń—" + +#~ msgid "Hardware accelaration (enable(1) | disable(0))" +#~ msgstr "ĐĐżĐ°Ń€Đ°Ń‚ĐœĐ” просĐșĐŸŃ€Đ”ĐœĐœŃ (уĐČŃ–ĐŒĐșĐœ.(1) | ĐČĐžĐŒĐșĐœ.(0))" + +#~ msgid "Frame size, default: 640x480" +#~ msgstr "Đ ĐŸĐ·ĐŒŃ–Ń€ ĐșаЮру (Đ·Đ°ĐŒĐŸĐČч. - 640x480)" + +#~ msgid "Image capture interval in seconds" +#~ msgstr "Đ†ĐœŃ‚Đ”Ń€ĐČĐ°Đ» ĐŒŃ–Đ¶ Đ·ĐœŃ–ĐŒĐșĐ°ĐŒĐž (сДĐș.)" + +#~ msgid "Number of Pictures to capture" +#~ msgstr "ĐšŃ–Đ»ŃŒĐșість Đ·ĐœŃ–ĐŒĐșіĐČ" + +#~ msgid "Video File name (capture from start)" +#~ msgstr "ЀаĐčĐ» ĐČŃ–ĐŽĐ”ĐŸ (запОс Đ·Ń€Đ°Đ·Ńƒ ĐżŃ–ŃĐ»Ń запусĐșу)" + +#~ msgid "Video capture time (in seconds)" +#~ msgstr "броĐČĐ°Đ»Ń–ŃŃ‚ŃŒ запОсу (сДĐș.)" + +#~ msgid "Exits guvcview after closing video" +#~ msgstr "ВоĐčто Đ· Guvcview ĐżŃ–ŃĐ»Ń Đ·Đ°Đșроття ĐČŃ–ĐŽĐ”ĐŸ" + +#~ msgid "Number of initial frames to skip" +#~ msgstr "ĐšŃ–Đ»ŃŒĐșість ĐżĐŸŃ‡Đ°Ń‚ĐșĐŸĐČох ĐșаЮріĐČ ĐŽĐ»Ń ĐżŃ€ĐŸĐżŃƒŃĐșу" + +#~ msgid "Show FPS value (enable(1) | disable (0))" +#~ msgstr "Đ’Ń–ĐŽĐŸĐ±Ń€Đ°Đ¶Đ”ĐœĐœŃ Ń‡Đ°ŃŃ‚ĐŸŃ‚Đž ĐșаЮріĐČ (уĐČŃ–ĐŒĐșĐœ.(1) | ĐČĐžĐŒĐșĐœ. (0))" + +#~ msgid "Load Profile at start" +#~ msgstr "ЗаĐČĐ°ĐœŃ‚Đ°Đ¶ĐžŃ‚Đž ĐżŃ€ĐŸŃ„Ń–Đ»ŃŒ про запусĐșу" + +#~ msgid "- local options" +#~ msgstr "- Đ»ĐŸĐșĐ°Đ»ŃŒĐœŃ– ĐżĐ°Ń€Đ°ĐŒĐ”Ń‚Ń€Đž" + +#~ msgid "Cap. Image" +#~ msgstr "Đ—ĐœŃ–ĐŒĐŸĐș" + +#~ msgid "Not enough free space left on disk" +#~ msgstr "ĐĐ” ĐČостачає ĐČŃ–Đ»ŃŒĐœĐŸĐłĐŸ ĐŒŃ–ŃŃ†Ń ĐœĐ° ЎОсĐșу" + +#~ msgid "YUY2 - uncomp YUV" +#~ msgstr "YUY2 - ĐœĐ” ŃŃ‚ĐžŃĐœĐ”ĐœĐžĐč YUV" + +#~ msgid "RGB - uncomp BMP" +#~ msgstr "RGB - ĐœĐ” ŃŃ‚ĐžŃĐœĐ”ĐœĐžĐč BMP" + +#~ msgid " Show" +#~ msgstr " ĐŸĐŸĐșĐ°Đ·Đ°Ń‚Đž" + +#~ msgid "Quality:" +#~ msgstr "ĐŻĐșість:" diff -Nru guvcview-1.7.3/po/zh_TW.po guvcview-2.0.1+ubuntu1~ppa1/po/zh_TW.po --- guvcview-1.7.3/po/zh_TW.po 2014-03-24 22:56:28.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/po/zh_TW.po 2014-10-05 10:41:44.000000000 +0000 @@ -2,1413 +2,1595 @@ msgstr "" "Project-Id-Version: guvcview\n" "Report-Msgid-Bugs-To: pj.assis@gmail.com\n" -"POT-Creation-Date: 2013-11-14 22:15+0000\n" +"POT-Creation-Date: 2014-08-17 22:49+0100\n" "PO-Revision-Date: 2013-02-25 05:36+0000\n" "Last-Translator: kentxchang \n" "Language-Team: none \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-12-08 10:36+0000\n" -"X-Generator: Launchpad (build 16869)\n" -"X-Poedit-Country: TAIWAN\n" -"Language: \n" -"X-Poedit-Language: Chinese\n" - -#: ../data/guvcview.desktop.in.in.h:1 -msgid "guvcview" -msgstr "" - -#: ../data/guvcview.desktop.in.in.h:2 -msgid "GTK UVC video viewer" -msgstr "" - -#: ../data/guvcview.desktop.in.in.h:3 -msgid "A video viewer and capturer for the linux uvc driver" -msgstr "" - -#: ../src/acodecs.c:59 -msgid "PCM - uncompressed (16 bit)" -msgstr "" - -#: ../src/acodecs.c:76 -msgid "MPEG2 - (lavc)" -msgstr "" - -#: ../src/acodecs.c:93 -msgid "MP3 - (lavc)" -msgstr "" - -#: ../src/acodecs.c:110 -msgid "Dolby AC3 - (lavc)" -msgstr "" - -#: ../src/acodecs.c:127 -msgid "ACC Low - (faac)" -msgstr "" - -#: ../src/acodecs.c:144 -msgid "Vorbis" -msgstr "" - -#: ../src/audio_tab.c:87 -msgid "Audio" -msgstr "éŸłé »" - -#: ../src/audio_tab.c:105 -msgid " Sound" -msgstr " èČ音" - -#. VU meter on the image (OSD) -#: ../src/audio_tab.c:116 -msgid " Show VU meter" -msgstr "" - -#: ../src/audio_tab.c:128 -msgid "Audio API:" -msgstr "éŸłé »API:" - -#: ../src/audio_tab.c:139 -msgid "PORTAUDIO" -msgstr "PORTAUDIO" - -#: ../src/audio_tab.c:140 -msgid "PULSEAUDIO" -msgstr "PULSEAUDIO" - -#: ../src/audio_tab.c:156 ../src/audio_tab.c:179 -msgid "Input Device:" -msgstr "èŒžć…„èš­ć‚™:" - -#: ../src/audio_tab.c:189 ../src/audio_tab.c:221 -msgid "Dev. Default" -msgstr "Dev. Default" - -#: ../src/audio_tab.c:211 -msgid "Sample Rate:" -msgstr "çŻ„äŸ‹çąŒçŽ‡:" - -#: ../src/audio_tab.c:222 -msgid "1 - mono" -msgstr "1 - mono" - -#: ../src/audio_tab.c:223 -msgid "2 - stereo" -msgstr "2 - stereo" - -#: ../src/audio_tab.c:258 -msgid "Channels:" -msgstr "èČ道:" - -#: ../src/audio_tab.c:309 -msgid "---- Audio Effects ----" -msgstr "---éŸłé »æ•ˆæžœ---" - -#. Echo -#: ../src/audio_tab.c:328 -msgid " Echo" -msgstr " èżŽèČ" - -#. FUZZ -#: ../src/audio_tab.c:339 -msgid " Fuzz" -msgstr " æšĄçłŠ" - -#. Reverb -#: ../src/audio_tab.c:351 -msgid " Reverb" -msgstr " Reverb" - -#. WahWah -#: ../src/audio_tab.c:363 -msgid " WahWah" -msgstr " WahWah" - -#. Ducky -#: ../src/audio_tab.c:375 -msgid " Ducky" -msgstr " Ducky" - -#: ../src/callbacks.c:109 -msgid "Error" -msgstr "" - -#: ../src/callbacks.c:133 -msgid "" -"\n" -"You have more than one video device installed.\n" -"Do you want to try another one ?\n" -msgstr "" - -#. Devices -#: ../src/callbacks.c:140 ../src/video_tab.c:111 -msgid "Device:" -msgstr "èš­ć‚™:" - -#: ../src/callbacks.c:272 -msgid "Save File" -msgstr "歘æȘ”" - -#: ../src/callbacks.c:284 -msgid "File Format:" -msgstr "" - -#: ../src/callbacks.c:455 -msgid "codec values" -msgstr "ç·šè§ŁçąŒć™šçš„ć€Œ" - -#: ../src/callbacks.c:466 -msgid "" -" encoder fps: \n" -" (0 - use fps combobox value)" -msgstr "" -" encoder fps: \n" -" (0 - use fps combobox value)" - -#: ../src/callbacks.c:479 -msgid " monotonic pts" -msgstr "" - -#. bit rate -#: ../src/callbacks.c:486 ../src/callbacks.c:809 -msgid "bit rate: " -msgstr "bit rate: " - -#: ../src/callbacks.c:499 -msgid "qmax: " -msgstr "qmax: " - -#: ../src/callbacks.c:512 -msgid "qmin: " -msgstr "qmin: " - -#: ../src/callbacks.c:525 -msgid "max. qdiff: " -msgstr "max. qdiff: " - -#: ../src/callbacks.c:538 -msgid "dia size: " -msgstr "dia size: " - -#: ../src/callbacks.c:551 -msgid "pre dia size: " -msgstr "pre dia size: " - -#: ../src/callbacks.c:564 -msgid "pre me: " -msgstr "pre me: " - -#: ../src/callbacks.c:577 -msgid "pre cmp: " -msgstr "pre cmp: " - -#: ../src/callbacks.c:590 -msgid "cmp: " -msgstr "cmp: " - -#: ../src/callbacks.c:603 -msgid "sub cmp: " -msgstr "sub cmp: " - -#: ../src/callbacks.c:616 -msgid "last predictor count: " -msgstr "last predictor count: " - -#: ../src/callbacks.c:629 -msgid "gop size: " -msgstr "gop size: " - -#: ../src/callbacks.c:642 -msgid "qcompress: " -msgstr "qcompress: " - -#: ../src/callbacks.c:655 -msgid "qblur: " -msgstr "qblur: " - -#: ../src/callbacks.c:668 -msgid "subq: " -msgstr "subq: " - -#: ../src/callbacks.c:681 -msgid "framerefs: " -msgstr "framerefs: " - -#: ../src/callbacks.c:694 -msgid "me method: " -msgstr "me method: " - -#: ../src/callbacks.c:707 -msgid "mb decision: " -msgstr "mb decision: " - -#: ../src/callbacks.c:720 -msgid "max B frames: " -msgstr "" - -#: ../src/callbacks.c:733 -msgid "num threads: " -msgstr "" - -#: ../src/callbacks.c:796 -msgid "audio codec values" -msgstr "éŸłé »ç·šçąŒć™šæ•žć€Œ" - -#. sample format -#: ../src/callbacks.c:823 -msgid "sample format: " -msgstr "" - -#: ../src/callbacks.c:1311 -msgid "start new" -msgstr "马侊敟拕" - -#: ../src/callbacks.c:1314 -msgid "restart" -msgstr "é‡æ–°ć•Ÿć‹•" - -#: ../src/callbacks.c:1316 -msgid "new" -msgstr "æ–°ćąž" - -#: ../src/callbacks.c:1318 -msgid "cancel" -msgstr "ć–æ¶ˆ" - -#: ../src/callbacks.c:1323 -msgid "" -"launch new process or restart?.\n" -"\n" -msgstr "" -"ć•Ÿć‹•æ–°çš„çš‹ćșæˆ–é‡æ–°ć•Ÿć‹•?\n" -"\n" - -#: ../src/callbacks.c:1780 ../src/guvcview.c:565 -msgid "Cap. Image (I)" -msgstr "" - -#. disable image controls -#: ../src/callbacks.c:1791 ../src/guvcview.c:690 ../src/timers.c:101 -msgid "capturing photo to" -msgstr "" - -#: ../src/callbacks.c:1850 ../src/guvcview.c:575 -msgid "Cap. Video (V)" -msgstr "" - -#: ../src/callbacks.c:1876 ../src/guvcview.c:740 -msgid "capturing video to" -msgstr "" - -#. vid capture enabled from start -#: ../src/callbacks.c:1911 ../src/guvcview.c:570 -msgid "Stop Video (V)" -msgstr "" - -#: ../src/callbacks.c:1967 ../src/menubar.c:66 -msgid "Save Profile" -msgstr "" - -#: ../src/callbacks.c:1980 ../src/menubar.c:65 -msgid "Load Profile" -msgstr "" - -#: ../src/create_video.c:1098 ../src/guvcview.c:732 -msgid "Cap. Video" -msgstr "éŒ„ćœ±" - -#: ../src/guvcview.c:280 -msgid "Guvcview Video Capture" -msgstr "Guvcview Video Capture" - -#: ../src/guvcview.c:292 -msgid "GUVCViewer Controls" -msgstr "GUVCViewerèš­ćźš" - -#. can't open device -#: ../src/guvcview.c:342 -msgid "" -"Guvcview error:\n" -"\n" -"Unable to open device" -msgstr "" -"Guvcview 錯èȘ€:\n" -"\n" -"èš­ć‚™ç„Ąæł•é–‹ć•Ÿ" - -#: ../src/guvcview.c:343 -msgid "" -"Please make sure the camera is connected\n" -"and that the correct driver is installed." -msgstr "" -"請çąșćźšæ”ćœ±æ©Ÿć·Čé€ŁæŽ„\n" -"侔ć·Čćź‰èŁæ­Łçąșçš„é©…ć‹•çš‹ćŒ" - -#. uvc extension controls OK, give warning and shutdown (called with --add_ctrls) -#: ../src/guvcview.c:348 -msgid "" -"Guvcview:\n" -"\n" -"UVC Extension controls" -msgstr "" -"Guvcview:\n" -"\n" -"UVC ć€–æŽ›æŽ§ćˆ¶" - -#: ../src/guvcview.c:349 -msgid "Extension controls were added to the UVC driver" -msgstr "ć€–æŽ›æŽ§ćˆ¶ć·Čç¶“èą«æ–°ćąžćˆ°UVCé©…ć‹•çš‹ćŒäž­" - -#. uvc extension controls error - EACCES (needs root user) -#: ../src/guvcview.c:356 -msgid "" -"Guvcview error:\n" -"\n" -"UVC Extension controls" -msgstr "" -"Guvcview 錯èȘ€:\n" -"\n" -"UVC ć€–æŽ›æŽ§ćˆ¶" - -#: ../src/guvcview.c:357 -msgid "" -"An error occurred while adding extension\n" -"controls to the UVC driver\n" -"Make sure you run guvcview as root (or sudo)." -msgstr "" -"ç•¶æ–°ćąžć€–æŽ›æ™‚æœ‰äž€ć€‹éŒŻèȘ€ç™Œç”Ÿ\n" -"æŽ§ćˆ¶UVCé©…ć‹•çš‹ćŒ\n" -"çąșćźšäœ æ˜Żäœżç”šroot(或sudo)äŸ†ćŸ·èĄŒguvcview" - -#: ../src/guvcview.c:391 ../src/guvcview.c:399 ../src/guvcview.c:477 -msgid "" -"Guvcview error:\n" -"\n" -"Can't set a valid video stream for guvcview" -msgstr "" -"Guvcview 錯èȘ€:\n" -"\n" -"䞍胜ç‚șguvcviewèš­çœźäž€ć€‹æœ‰æ•ˆèŠ–èšŠäžČæ”ć€Œ" - -#: ../src/guvcview.c:392 ../src/guvcview.c:400 ../src/guvcview.c:478 -msgid "" -"Make sure your device driver is v4l2 compliant\n" -"and that it is properly installed." -msgstr "" -"請çąșćźšæ‚šçš„èš­ć‚™é©…ć‹•çš‹ćŒçŹŠćˆv4l2æš™æș–\n" -"侔漃ć·Čèą«æ­Łçąșćź‰èŁă€‚" - -#: ../src/guvcview.c:422 ../src/guvcview.c:444 -msgid "" -"Guvcview error:\n" -"\n" -"Unable to start with minimum setup" -msgstr "" -"Guvcview 錯èȘ€:\n" -"\n" -"ç„Ąæł•ć•Ÿć‹•æœ€ć°ćź‰èŁ" - -#: ../src/guvcview.c:423 ../src/guvcview.c:445 -msgid "Please reconnect your camera." -msgstr "è«‹é‡æ–°é€ŁæŽ„äœ çš„æ”ćœ±æ©Ÿ" - -#: ../src/guvcview.c:452 -msgid "" -"Guvcview error:\n" -"\n" -"Couldn't query device capabilities" -msgstr "" -"Guvcview錯èȘ€:\n" -"\n" -"èš­ć‚™ç„Ąæł•é–‹ć•Ÿ" - -#: ../src/guvcview.c:453 -msgid "Make sure the device driver supports v4l2." -msgstr "çąșćźšäœ çš„èš­ć‚™é©…ć‹•çš‹ćŒæ”ŻæŽ v4l2." - -#: ../src/guvcview.c:457 -msgid "" -"Guvcview error:\n" -"\n" -"Read method error" -msgstr "" -"Guvcview錯èȘ€:\n" -"\n" -"èš­ć‚™ç„Ąæł•é–‹ć•Ÿ" - -#: ../src/guvcview.c:458 -msgid "Please try mmap instead (--capture_method=1)." -msgstr "è«‹è©Šè©Šmmapè€Œäžæ˜Ż(--capture_method=1)." - -#: ../src/guvcview.c:466 -msgid "" -"Guvcview error:\n" -"\n" -"Unable to allocate Buffers" -msgstr "" -"Guvcview錯èȘ€:\n" -"\n" -"èš­ć‚™ç„Ąæł•é–‹ć•Ÿ" - -#: ../src/guvcview.c:467 -msgid "Please try restarting your system." -msgstr "è«‹è©Šè©Šé‡æ–°ć•Ÿć‹•äœ çš„çł»ç”±." - -#: ../src/guvcview.c:518 -msgid "Image Controls" -msgstr "ćœ±ćƒèš­ćźš" - -#. image auto capture -#: ../src/guvcview.c:561 -msgid "Stop Auto (I)" -msgstr "" - -#: ../src/guvcview.c:676 -msgid "" -"Guvcview error:\n" -"\n" -"Unable to create Video Thread" -msgstr "" -"Guvcview錯èȘ€:\n" -"\n" -"èš­ć‚™ç„Ąæł•é–‹ć•Ÿ" - -#: ../src/guvcview.c:677 -msgid "Please report it to http://developer.berlios.de/bugs/?group_id=8179" -msgstr "è«‹ć›žć ±ćˆ°http://developer.berlios.de/bugs/?group_id=8179" - -#: ../src/img_controls.c:121 -msgid "Auto Focus (continuous)" -msgstr "è‡Ș拕氍焩(連çșŒ)" - -#: ../src/img_controls.c:122 -msgid "set Focus" -msgstr "èš­ćźšç„Šé»ž" - -#: ../src/image_format.c:35 -msgid "Jpeg (jpg)" -msgstr "" - -#: ../src/image_format.c:41 -msgid "Bitmap (Bmp)" -msgstr "" - -#: ../src/image_format.c:47 -msgid "Portable Network Graphics (Png)" -msgstr "" - -#: ../src/image_format.c:53 -msgid "Raw Image (raw)" -msgstr "" - -#. controls menu -#: ../src/menubar.c:64 -msgid "Settings" -msgstr "" - -#: ../src/menubar.c:67 -msgid "Hardware Defaults" -msgstr "" - -#: ../src/menubar.c:75 -msgid "Camera Button" -msgstr "" - -#: ../src/menubar.c:79 -msgid "Capture Image" -msgstr "" - -#: ../src/menubar.c:84 -msgid "Capture Video" -msgstr "" - -#. video menu -#: ../src/menubar.c:144 ../src/video_tab.c:95 -msgid "Video" -msgstr "" - -#: ../src/menubar.c:145 ../src/menubar.c:233 -msgid "File" -msgstr "" - -#: ../src/menubar.c:146 ../src/menubar.c:234 -msgid "Increment Filename" -msgstr "" - -#: ../src/menubar.c:164 -msgid "Video Codec" -msgstr "" - -#: ../src/menubar.c:189 -msgid "Video Codec Properties" -msgstr "" - -#: ../src/menubar.c:196 -msgid "Audio Codec" -msgstr "" - -#: ../src/menubar.c:217 -msgid "Audio Codec Properties" -msgstr "" - -#. photo menu -#: ../src/menubar.c:232 -msgid "Photo" -msgstr "" - -#: ../src/options.c:753 -msgid "Prints version" -msgstr "ćˆ—ć°ç‰ˆæœŹ" - -#: ../src/options.c:754 -msgid "Displays debug information" -msgstr "饯ç€șdebugèšŠæŻ" - -#: ../src/options.c:755 -msgid "Video Device to use [default: /dev/video0]" -msgstr "äœżç”šćœ±ćƒèš­ć‚™[default: /dev/video0]" - -#: ../src/options.c:756 -msgid "Exit after adding UVC extension controls (needs root/sudo)" -msgstr "ćœšæ–°ćąžć€–æŽ›æŽ§ćˆ¶ćŸŒé›ąé–‹(éœ€èŠäœżç”šroot/sudo)" - -#: ../src/options.c:757 -msgid "Don't stream video (image controls only)" -msgstr "䞍胜äžČæ”ćœ±ćƒ(ćȘèƒœæŽ§ćˆ¶ćœ–ç‰‡)" - -#: ../src/options.c:758 -msgid "Don't display a GUI" -msgstr "" - -#: ../src/options.c:759 -msgid "Capture method (1-mmap (default) 2-read)" -msgstr "æ“·ć–æ–čæł•(1-mmap (default) 2-read)" - -#: ../src/options.c:760 -msgid "Configuration file" -msgstr "èš­çœźæȘ”æĄˆ" - -#: ../src/options.c:761 -msgid "Hardware accelaration (enable(1) | disable(0))" -msgstr "çĄŹé«”ćŠ é€Ÿ(敟甹(1) | 恜甹(0))" - -#: ../src/options.c:762 -msgid "" -"Pixel " -"format(mjpg|jpeg|yuyv|yvyu|uyvy|yyuv|yu12|yv12|nv12|nv21|nv16|nv61|y41p|grey|" -"y10b|y16 |s501|s505|s508|gbrg|grbg|ba81|rggb|bgr3|rgb3)" -msgstr "" - -#: ../src/options.c:763 -msgid "Frame size, default: 640x480" -msgstr "ćœ±æ Œć°ș毞,é èš­ć€Œ:640x480" - -#: ../src/options.c:764 -msgid "Image File name" -msgstr "朖片æȘ”æĄˆćçš±" - -#: ../src/options.c:765 -msgid "Image capture interval in seconds" -msgstr "ćœ–ç‰‡æ“·ć–é–“éš”ç§’æ•ž" - -#: ../src/options.c:766 -msgid "Number of Pictures to capture" -msgstr "ćœ–ç‰‡æ“·ć–æ•ž" - -#: ../src/options.c:767 -msgid "Video File name (capture from start)" -msgstr "ćœ±ćƒæȘ”æĄˆćçš±(ćŸžé–‹ć§‹æ“·ć–)" - -#: ../src/options.c:768 -msgid "Video capture time (in seconds)" -msgstr "ćœ±ćƒæ“·ć–æ™‚é–“(秒敞)" - -#: ../src/options.c:769 -msgid "Exits guvcview after closing video" -msgstr "ćœšé—œæŽ‰ćœ±ćƒćŸŒé›ąé–‹guvcview" - -#: ../src/options.c:770 -msgid "Number of initial frames to skip" -msgstr "è·łéŽçš„ćˆć§‹ćœ±æ Œæ•ž" - -#: ../src/options.c:771 -msgid "Show FPS value (enable(1) | disable (0))" -msgstr "饯ç€șFPSć€Œ(敟甹(1) | 恜甹 (0))" - -#: ../src/options.c:772 -msgid "Load Profile at start" -msgstr "ćœšć•Ÿć‹•æ™‚èź€ć–ć°ˆæĄˆ" - -#: ../src/options.c:773 -msgid "List controls method (0:loop, 1:next_ctrl flag [def])" -msgstr "" - -#: ../src/options.c:779 -msgid "- local options" -msgstr "-æœŹćœ°éžé …" - -#. gdk_threads_enter(); -#: ../src/timers.c:119 -msgid "Cap. Image" -msgstr "拍照" - -#: ../src/timers.c:217 -msgid "Guvcview Warning:" -msgstr "Guvcviewè­Šć‘Š:" - -#: ../src/timers.c:217 -msgid "Not enough free space left on disk" -msgstr "朹硬籟侊æČ’æœ‰è¶łć€ çš„ć‰©é€˜ç©ș間" - -#: ../src/v4l2_controls.c:794 -msgid "Left" -msgstr "ć·Š" - -#: ../src/v4l2_controls.c:795 -msgid "Right" -msgstr "揳" - -#: ../src/v4l2_controls.c:799 -msgid "Down" -msgstr "例" - -#: ../src/v4l2_controls.c:800 -msgid "Up" -msgstr "侊" - -#: ../src/v4l2_controls.c:845 -msgid "Off" -msgstr "" - -#: ../src/v4l2_controls.c:845 -msgid "On" -msgstr "" - -#: ../src/v4l2_controls.c:845 -msgid "Blinking" -msgstr "" - -#: ../src/v4l2_controls.c:845 -msgid "Auto" -msgstr "" - -#. turn it into a menu control -#: ../src/v4l2_controls.c:894 -msgid "8 bit" -msgstr "" - -#: ../src/v4l2_controls.c:894 -msgid "12 bit" -msgstr "" - -#: ../src/v4l2_dyna_ctrls.c:96 -msgid "Pan (relative)" -msgstr "Pan (盾氍的)" - -#: ../src/v4l2_dyna_ctrls.c:109 -msgid "Tilt (relative)" -msgstr "ć‚Ÿæ–œ(盾氍的)" - -#: ../src/v4l2_dyna_ctrls.c:122 -msgid "Pan Reset" -msgstr "Pan 重蚭" - -#: ../src/v4l2_dyna_ctrls.c:135 -msgid "Tilt Reset" -msgstr "ć‚Ÿæ–œé‡èš­" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2013-12-08 10:36+0000\n" +"X-Generator: Launchpad (build 16869)\n" +"X-Poedit-Country: TAIWAN\n" +"X-Poedit-Language: Chinese\n" -#: ../src/v4l2_dyna_ctrls.c:148 -msgid "Focus (absolute)" -msgstr "氍焩(ç”•ć°ć€Œ)" +#: ../data/guvcview.desktop.in.in.h:1 +#, fuzzy +msgid "guvcview" +msgstr "Guvcviewè­Šć‘Š:" -#: ../src/v4l2_dyna_ctrls.c:161 -msgid "LED1 Mode" -msgstr "LED1æšĄćŒ" +#: ../data/guvcview.desktop.in.in.h:2 +msgid "GTK UVC video viewer" +msgstr "" -#: ../src/v4l2_dyna_ctrls.c:174 -msgid "LED1 Frequency" -msgstr "LED1頻率" +#: ../data/guvcview.desktop.in.in.h:3 +msgid "A video viewer and capturer for the linux uvc driver" +msgstr "" -#: ../src/v4l2_dyna_ctrls.c:187 -msgid "Disable video processing" -msgstr "ćœç”šćœ±ćƒè™•ç†" +#: ../data/guvcview.appdata.xml.in.in.h:1 +msgid "capture video from v4l2 devices" +msgstr "" -#: ../src/v4l2_dyna_ctrls.c:200 -msgid "Raw bits per pixel" -msgstr "Raw bits per pixel" +#: ../data/guvcview.appdata.xml.in.in.h:2 +msgid "" +"Video capture tool for video4linux2 compliant cameras, with special emphasis " +"on the linux uvc driver. It provides Image (jpg, png, bmp) and Video (mjpeg, " +"flv1, wmv1, mpg2, mpg4,...) capture with sound in several " +"formats( currently: avi and matroska). I also supports a control panel " +"option (--control_only) that is compatible with any other v4l2 app." +msgstr "" -#. needed only for language files (not used) +#. +#. * needed only for language files (not used) +#. #. V4L2 control strings -#: ../src/v4l2uvc.c:57 +#: ../gview_v4l2core/v4l2_controls.c:49 msgid "User Controls" msgstr "äœżç”šè€…èš­ćźš" -#: ../src/v4l2uvc.c:58 +#: ../gview_v4l2core/v4l2_controls.c:50 msgid "Brightness" msgstr "äșźćșŠ" -#: ../src/v4l2uvc.c:59 +#: ../gview_v4l2core/v4l2_controls.c:51 msgid "Contrast" msgstr "ć°æŻ”" -#: ../src/v4l2uvc.c:60 +#: ../gview_v4l2core/v4l2_controls.c:52 msgid "Hue" msgstr "è‰ČèȘż" -#: ../src/v4l2uvc.c:61 +#: ../gview_v4l2core/v4l2_controls.c:53 msgid "Saturation" msgstr "éŁœć’ŒćșŠ" -#: ../src/v4l2uvc.c:62 +#: ../gview_v4l2core/v4l2_controls.c:54 msgid "Sharpness" msgstr "éŠłćˆ©ćșŠ" -#: ../src/v4l2uvc.c:63 +#: ../gview_v4l2core/v4l2_controls.c:55 msgid "Gamma" msgstr "䌜ç‘Șć€Œ" -#: ../src/v4l2uvc.c:64 +#: ../gview_v4l2core/v4l2_controls.c:56 msgid "Backlight Compensation" msgstr "èƒŒć…‰èŁœć„Ÿ" -#: ../src/v4l2uvc.c:65 +#: ../gview_v4l2core/v4l2_controls.c:57 msgid "Power Line Frequency" msgstr "芖蚊頻率" -#: ../src/v4l2uvc.c:66 +#: ../gview_v4l2core/v4l2_controls.c:58 msgid "Hue, Automatic" msgstr "è‡Ș拕è‰ČèȘż" -#: ../src/v4l2uvc.c:67 +#: ../gview_v4l2core/v4l2_controls.c:59 msgid "Focus, Auto" msgstr "è‡Ș拕氍焩" -#: ../src/v4l2uvc.c:68 +#: ../gview_v4l2core/v4l2_controls.c:60 msgid "Manual Mode" msgstr "æ‰‹ć‹•æšĄćŒ" -#: ../src/v4l2uvc.c:69 +#: ../gview_v4l2core/v4l2_controls.c:61 msgid "Auto Mode" msgstr "è‡Șć‹•æšĄćŒ" -#: ../src/v4l2uvc.c:70 +#: ../gview_v4l2core/v4l2_controls.c:62 msgid "Shutter Priority Mode" msgstr "ćż«é–€ć„Șć…ˆæšĄćŒ" -#: ../src/v4l2uvc.c:71 +#: ../gview_v4l2core/v4l2_controls.c:63 msgid "Aperture Priority Mode" msgstr "慉月ć„Șć…ˆæšĄćŒ" -#: ../src/v4l2uvc.c:72 +#: ../gview_v4l2core/v4l2_controls.c:64 msgid "Black Level" msgstr "黑è‰Č等箚" -#: ../src/v4l2uvc.c:73 +#: ../gview_v4l2core/v4l2_controls.c:65 msgid "White Balance, Automatic" msgstr "è‡Șć‹•ç™œćčłèĄĄ" -#: ../src/v4l2uvc.c:74 +#: ../gview_v4l2core/v4l2_controls.c:66 msgid "Do White Balance" msgstr "èš­çœźç™œćčłèĄĄ" -#: ../src/v4l2uvc.c:75 +#: ../gview_v4l2core/v4l2_controls.c:67 msgid "Red Balance" msgstr "箅ćčłèĄĄ" -#: ../src/v4l2uvc.c:76 +#: ../gview_v4l2core/v4l2_controls.c:68 msgid "Blue Balance" msgstr "藍ćčłèĄĄ" -#: ../src/v4l2uvc.c:77 +#: ../gview_v4l2core/v4l2_controls.c:69 msgid "Exposure" msgstr "æ›ć…‰ćșŠ" -#: ../src/v4l2uvc.c:78 +#: ../gview_v4l2core/v4l2_controls.c:70 msgid "Gain, Automatic" msgstr "è‡Ș拕汞益" -#: ../src/v4l2uvc.c:79 +#: ../gview_v4l2core/v4l2_controls.c:71 msgid "Gain" msgstr "汞益" -#: ../src/v4l2uvc.c:80 +#: ../gview_v4l2core/v4l2_controls.c:72 msgid "Horizontal Flip" msgstr "æ°Žćčłçż»èœ‰" -#: ../src/v4l2uvc.c:81 +#: ../gview_v4l2core/v4l2_controls.c:73 msgid "Vertical Flip" msgstr "ćž‚ç›Žçż»èœ‰" -#: ../src/v4l2uvc.c:82 +#: ../gview_v4l2core/v4l2_controls.c:74 msgid "Horizontal Center" msgstr "æ°Žćčłäž­ćżƒ" -#: ../src/v4l2uvc.c:83 +#: ../gview_v4l2core/v4l2_controls.c:75 msgid "Vertical Center" msgstr "枂目侭濃" -#: ../src/v4l2uvc.c:84 +#: ../gview_v4l2core/v4l2_controls.c:76 msgid "Chroma AGC" msgstr "æżƒćșŠAGC" -#: ../src/v4l2uvc.c:85 +#: ../gview_v4l2core/v4l2_controls.c:77 msgid "Color Killer" msgstr "顏è‰Č killer" -#: ../src/v4l2uvc.c:86 +#: ../gview_v4l2core/v4l2_controls.c:78 msgid "Color Effects" msgstr "è‰Čćœ©æ•ˆæžœ" #. CAMERA CLASS control strings -#: ../src/v4l2uvc.c:89 +#: ../gview_v4l2core/v4l2_controls.c:81 msgid "Camera Controls" msgstr "æ”ćœ±æ©Ÿèš­ćźš" -#: ../src/v4l2uvc.c:90 +#: ../gview_v4l2core/v4l2_controls.c:82 msgid "Auto Exposure" msgstr "è‡Șć‹•æ›ć…‰" -#: ../src/v4l2uvc.c:91 +#: ../gview_v4l2core/v4l2_controls.c:83 msgid "Exposure Time, Absolute" msgstr "ç”•ć°æ›ć…‰æ™‚é–“" -#: ../src/v4l2uvc.c:92 +#: ../gview_v4l2core/v4l2_controls.c:84 msgid "Exposure, Dynamic Framerate" msgstr "æ›ć…‰ïŒŒć‹•æ…‹çąŒçŽ‡" -#: ../src/v4l2uvc.c:93 +#: ../gview_v4l2core/v4l2_controls.c:85 msgid "Pan, Relative" msgstr "筆,盾氍的" -#: ../src/v4l2uvc.c:94 +#: ../gview_v4l2core/v4l2_controls.c:86 msgid "Tilt, Relative" msgstr "ć‚Ÿæ–œ,盾氍的" -#: ../src/v4l2uvc.c:95 +#: ../gview_v4l2core/v4l2_controls.c:87 msgid "Pan, Reset" msgstr "筆,重蚭" -#: ../src/v4l2uvc.c:96 +#: ../gview_v4l2core/v4l2_controls.c:88 msgid "Tilt, Reset" msgstr "ć‚Ÿæ–œ,重蚭" -#: ../src/v4l2uvc.c:97 +#: ../gview_v4l2core/v4l2_controls.c:89 msgid "Pan, Absolute" msgstr "筆,ç”•ć°çš„" -#: ../src/v4l2uvc.c:99 +#: ../gview_v4l2core/v4l2_controls.c:91 msgid "Focus, Absolute" msgstr "氍焩,ç”•ć°çš„" -#: ../src/v4l2uvc.c:100 +#: ../gview_v4l2core/v4l2_controls.c:92 msgid "Focus, Relative" msgstr "氍焩,盾氍的" -#: ../src/v4l2uvc.c:101 +#: ../gview_v4l2core/v4l2_controls.c:93 msgid "Focus, Automatic" msgstr "氍焩,è‡Ș拕" -#: ../src/v4l2uvc.c:102 +#: ../gview_v4l2core/v4l2_controls.c:94 msgid "Zoom, Absolute" msgstr "èźŠç„Š,ç”•ć°çš„" -#: ../src/v4l2uvc.c:103 +#: ../gview_v4l2core/v4l2_controls.c:95 msgid "Zoom, Relative" msgstr "èźŠç„Š,盾氍的" -#: ../src/v4l2uvc.c:104 +#: ../gview_v4l2core/v4l2_controls.c:96 msgid "Zoom, Continuous" msgstr "èźŠç„Š,連çșŒçš„" -#: ../src/v4l2uvc.c:105 +#: ../gview_v4l2core/v4l2_controls.c:97 msgid "Privacy" msgstr "隱私" #. UVC specific control strings -#: ../src/v4l2uvc.c:108 +#: ../gview_v4l2core/v4l2_controls.c:100 msgid "Exposure, Auto" msgstr "æ›ć…‰ïŒŒè‡Ș拕" -#: ../src/v4l2uvc.c:109 +#: ../gview_v4l2core/v4l2_controls.c:101 msgid "Exposure, Auto Priority" msgstr "æ›ć…‰ïŒŒè‡Ș拕ć„Ș慈" -#: ../src/v4l2uvc.c:110 +#: ../gview_v4l2core/v4l2_controls.c:102 msgid "Exposure (Absolute)" msgstr "æ›ć…‰ïŒˆç”•ć°ïŒ‰" -#: ../src/v4l2uvc.c:111 +#: ../gview_v4l2core/v4l2_controls.c:103 msgid "White Balance Temperature, Auto" msgstr "癜ćčłèĄĄæș«ćșŠïŒŒè‡Ș拕" -#: ../src/v4l2uvc.c:112 +#: ../gview_v4l2core/v4l2_controls.c:104 msgid "White Balance Temperature" msgstr "癜ćčłèĄĄæș«ćșŠ" -#: ../src/v4l2uvc.c:113 +#: ../gview_v4l2core/v4l2_controls.c:105 msgid "White Balance Component, Auto" msgstr "癜ćčłèĄĄć…ƒä»¶,è‡Ș拕" -#: ../src/v4l2uvc.c:114 +#: ../gview_v4l2core/v4l2_controls.c:106 msgid "White Balance Blue Component" msgstr "癜ćčłèĄĄè—ć…ƒä»¶" -#: ../src/v4l2uvc.c:115 +#: ../gview_v4l2core/v4l2_controls.c:107 msgid "White Balance Red Component" msgstr "癜ćčłèĄĄçŽ…ć…ƒä»¶" #. libwebcam specific control strings -#: ../src/v4l2uvc.c:118 +#: ../gview_v4l2core/v4l2_controls.c:110 msgid "Focus" msgstr "氍焩" -#: ../src/v4l2uvc.c:119 +#: ../gview_v4l2core/v4l2_controls.c:111 msgid "Focus (Absolute)" msgstr "氍焩(ç”•ć°çš„)" -#: ../src/vcodecs.c:63 +#: ../gview_v4l2core/v4l2_xu_ctrls.c:63 ../guvcview/gui_gtk3_v4l2ctrls.c:239 +msgid "Off" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:64 ../guvcview/gui_gtk3_v4l2ctrls.c:239 +msgid "On" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:65 ../guvcview/gui_gtk3_v4l2ctrls.c:239 +msgid "Blinking" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:66 ../guvcview/gui_gtk3_v4l2ctrls.c:239 +msgid "Auto" +msgstr "" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:73 +msgid "Pan (relative)" +msgstr "Pan (盾氍的)" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:86 +msgid "Tilt (relative)" +msgstr "ć‚Ÿæ–œ(盾氍的)" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:99 +msgid "Pan Reset" +msgstr "Pan 重蚭" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:112 +msgid "Tilt Reset" +msgstr "ć‚Ÿæ–œé‡èš­" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:125 +msgid "Focus (absolute)" +msgstr "氍焩(ç”•ć°ć€Œ)" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:138 +msgid "LED1 Mode" +msgstr "LED1æšĄćŒ" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:151 +msgid "LED1 Frequency" +msgstr "LED1頻率" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:164 +msgid "Disable video processing" +msgstr "ćœç”šćœ±ćƒè™•ç†" + +#: ../gview_v4l2core/v4l2_xu_ctrls.c:177 +msgid "Raw bits per pixel" +msgstr "Raw bits per pixel" + +#: ../gview_encoder/audio_codecs.c:63 +msgid "PCM - uncompressed (float 32 bit)" +msgstr "" + +#: ../gview_encoder/audio_codecs.c:80 +msgid "MP2 (MPEG audio layer 2)" +msgstr "" + +#: ../gview_encoder/audio_codecs.c:97 +msgid "MP3 (MPEG audio layer 3)" +msgstr "" + +#: ../gview_encoder/audio_codecs.c:118 +msgid "AC-3 (ATSC A/52A)" +msgstr "" + +#: ../gview_encoder/audio_codecs.c:139 +msgid "AAC (Advanced Audio Coding)" +msgstr "" + +#: ../gview_encoder/audio_codecs.c:160 +msgid "Vorbis" +msgstr "" + +#: ../gview_encoder/video_codecs.c:75 +#, fuzzy +msgid "Raw camera input" +msgstr "æ”ćœ±æ©ŸèŒžć‡ș:" + +#: ../gview_encoder/video_codecs.c:111 msgid "MJPG - compressed" msgstr "MJPG - compressed" -#: ../src/vcodecs.c:99 -msgid "YUY2 - uncomp YUV" -msgstr "YUY2 - uncomp YUV" - -#: ../src/vcodecs.c:135 -msgid "RGB - uncomp BMP" -msgstr "RGB - uncomp BMP" - -#: ../src/vcodecs.c:171 +#: ../gview_encoder/video_codecs.c:147 msgid "MPEG video 1" msgstr "MPEG video 1" -#: ../src/vcodecs.c:207 +#: ../gview_encoder/video_codecs.c:183 msgid "FLV1 - flash video 1" msgstr "FLV1 - flash video 1" -#: ../src/vcodecs.c:243 +#: ../gview_encoder/video_codecs.c:219 msgid "WMV1 - win. med. video 7" msgstr "WMV1 - win. med. video 7" -#: ../src/vcodecs.c:279 +#: ../gview_encoder/video_codecs.c:255 msgid "MPG2 - MPG2 format" msgstr "MPG2 - MPG2 format" -#: ../src/vcodecs.c:315 +#: ../gview_encoder/video_codecs.c:291 msgid "MS MP4 V3" msgstr "MS MP4 V3" -#: ../src/vcodecs.c:351 +#: ../gview_encoder/video_codecs.c:327 msgid "MPEG4-ASP" msgstr "MPEG4-ASP" -#: ../src/vcodecs.c:387 +#: ../gview_encoder/video_codecs.c:363 msgid "MPEG4-AVC (H264)" msgstr "MPEG4-AVC (H264)" -#: ../src/vcodecs.c:427 +#: ../gview_encoder/video_codecs.c:403 msgid "VP8 (VP8)" msgstr "" -#: ../src/vcodecs.c:463 -msgid "Theora (ogg theora)" -msgstr "" +#: ../gview_encoder/video_codecs.c:439 +msgid "Theora (ogg theora)" +msgstr "" + +#: ../guvcview/gui_gtk3_audioctrls.c:95 +msgid "Audio API:" +msgstr "éŸłé »API:" + +#: ../guvcview/gui_gtk3_audioctrls.c:106 +msgid "NO SOUND" +msgstr "" + +#: ../guvcview/gui_gtk3_audioctrls.c:107 +msgid "PORTAUDIO" +msgstr "PORTAUDIO" + +#: ../guvcview/gui_gtk3_audioctrls.c:110 +msgid "PULSEAUDIO" +msgstr "PULSEAUDIO" + +#: ../guvcview/gui_gtk3_audioctrls.c:127 +msgid "Input Device:" +msgstr "èŒžć…„èš­ć‚™:" + +#: ../guvcview/gui_gtk3_audioctrls.c:161 +msgid "Sample Rate:" +msgstr "çŻ„äŸ‹çąŒçŽ‡:" + +#: ../guvcview/gui_gtk3_audioctrls.c:168 ../guvcview/gui_gtk3_audioctrls.c:214 +msgid "Dev. Default" +msgstr "Dev. Default" + +#: ../guvcview/gui_gtk3_audioctrls.c:207 +msgid "Channels:" +msgstr "èČ道:" + +#: ../guvcview/gui_gtk3_audioctrls.c:215 +msgid "1 - mono" +msgstr "1 - mono" + +#: ../guvcview/gui_gtk3_audioctrls.c:216 +msgid "2 - stereo" +msgstr "2 - stereo" + +#: ../guvcview/gui_gtk3_audioctrls.c:235 +#, fuzzy +msgid "---- Audio Filters ----" +msgstr "---ćœ±ćƒæżŸæłąć™š---" + +#. Echo FX +#: ../guvcview/gui_gtk3_audioctrls.c:255 +msgid " Echo" +msgstr " èżŽèČ" + +#. Reverb FX +#: ../guvcview/gui_gtk3_audioctrls.c:268 +msgid " Reverb" +msgstr " Reverb" + +#. Fuzz FX +#: ../guvcview/gui_gtk3_audioctrls.c:281 +msgid " Fuzz" +msgstr " æšĄçłŠ" + +#. WahWah FX +#: ../guvcview/gui_gtk3_audioctrls.c:294 +msgid " WahWah" +msgstr " WahWah" + +#. Ducky FX +#: ../guvcview/gui_gtk3_audioctrls.c:307 +msgid " Ducky" +msgstr " Ducky" + +#: ../guvcview/gui_gtk3.c:310 ../guvcview/gui_gtk3_callbacks.c:749 +msgid "Stop Video (V)" +msgstr "" + +#. video button +#: ../guvcview/gui_gtk3.c:315 ../guvcview/gui_gtk3.c:600 +#: ../guvcview/gui_gtk3_callbacks.c:755 +msgid "Cap. Video (V)" +msgstr "" + +#: ../guvcview/gui_gtk3.c:376 ../guvcview/gui_gtk3.c:383 +msgid "Error" +msgstr "" + +#: ../guvcview/gui_gtk3.c:379 ../guvcview/gui_gtk3.c:386 +#: ../guvcview/gui_gtk3_callbacks.c:2097 +msgid "_Ok" +msgstr "" + +#: ../guvcview/gui_gtk3.c:380 ../guvcview/gui_gtk3_callbacks.c:185 +#: ../guvcview/gui_gtk3_callbacks.c:199 ../guvcview/gui_gtk3_callbacks.c:522 +#: ../guvcview/gui_gtk3_callbacks.c:624 ../guvcview/gui_gtk3_callbacks.c:1755 +#: ../guvcview/gui_gtk3_callbacks.c:2098 +#, fuzzy +msgid "_Cancel" +msgstr "ć–æ¶ˆ" + +#: ../guvcview/gui_gtk3.c:407 +msgid "" +"\n" +"You have more than one video device installed.\n" +"Do you want to try another one ?\n" +msgstr "" + +#. ---- Devices ---- +#: ../guvcview/gui_gtk3.c:414 ../guvcview/gui_gtk3_videoctrls.c:106 +msgid "Device:" +msgstr "èš­ć‚™:" + +#: ../guvcview/gui_gtk3.c:516 +msgid "Guvcview Video Capture" +msgstr "Guvcview Video Capture" + +#: ../guvcview/gui_gtk3.c:525 +#, fuzzy +msgid "Guvcview" +msgstr "Guvcviewè­Šć‘Š:" + +#: ../guvcview/gui_gtk3.c:572 +msgid "Stop Cap. (I)" +msgstr "" + +#: ../guvcview/gui_gtk3.c:578 ../guvcview/gui_gtk3_callbacks.c:720 +#: ../guvcview/video_capture.c:250 +msgid "Cap. Image (I)" +msgstr "" + +#. quit button +#. GtkWidget *quitButton = gtk_button_new_from_stock(GTK_STOCK_QUIT); +#: ../guvcview/gui_gtk3.c:621 +msgid "_Quit" +msgstr "" + +#: ../guvcview/gui_gtk3.c:667 +msgid "Image Controls" +msgstr "ćœ±ćƒèš­ćźš" + +#: ../guvcview/gui_gtk3.c:703 +#, fuzzy +msgid "H264 Controls" +msgstr "äœżç”šè€…èš­ćźš" + +#: ../guvcview/gui_gtk3.c:742 +#, fuzzy +msgid "Video Controls" +msgstr "äœżç”šè€…èš­ćźš" + +#: ../guvcview/gui_gtk3.c:777 +#, fuzzy +msgid "Audio Controls" +msgstr "äœżç”šè€…èš­ćźš" + +#: ../guvcview/gui_gtk3_callbacks.c:182 ../guvcview/gui_gtk3_menu.c:72 +msgid "Save Profile" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:186 ../guvcview/gui_gtk3_callbacks.c:523 +#: ../guvcview/gui_gtk3_callbacks.c:625 +msgid "_Save" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:196 ../guvcview/gui_gtk3_menu.c:71 +msgid "Load Profile" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:200 +msgid "_Open" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:208 ../guvcview/gui_gtk3_callbacks.c:531 +#: ../guvcview/gui_gtk3_callbacks.c:634 +msgid "File Format:" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:220 +msgid "gpfl (*.gpfl)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:221 +msgid "any (*.*)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:519 +#, fuzzy +msgid "Photo file name" +msgstr "朖片æȘ”æĄˆćçš±" + +#: ../guvcview/gui_gtk3_callbacks.c:543 +msgid "Raw (*.raw)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:544 +msgid "Jpeg (*.jpg)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:545 +msgid "Png (*.png)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:546 +msgid "Bmp (*.bmp)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:621 +#, fuzzy +msgid "Video file name" +msgstr "朖片æȘ”æĄˆćçš±" + +#: ../guvcview/gui_gtk3_callbacks.c:646 +msgid "Matroska (*.mkv)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:647 +msgid "WebM (*.webm)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:648 +msgid "Avi (*.avi)" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:1158 +msgid "start new" +msgstr "马侊敟拕" + +#: ../guvcview/gui_gtk3_callbacks.c:1161 +msgid "restart" +msgstr "é‡æ–°ć•Ÿć‹•" + +#: ../guvcview/gui_gtk3_callbacks.c:1163 +msgid "new" +msgstr "æ–°ćąž" + +#: ../guvcview/gui_gtk3_callbacks.c:1165 +msgid "cancel" +msgstr "ć–æ¶ˆ" + +#: ../guvcview/gui_gtk3_callbacks.c:1170 +msgid "" +"launch new process or restart?.\n" +"\n" +msgstr "" +"ć•Ÿć‹•æ–°çš„çš‹ćșæˆ–é‡æ–°ć•Ÿć‹•?\n" +"\n" + +#: ../guvcview/gui_gtk3_callbacks.c:1751 +#, fuzzy +msgid "video codec values" +msgstr "éŸłé »ç·šçąŒć™šæ•žć€Œ" + +#: ../guvcview/gui_gtk3_callbacks.c:1754 +msgid "_OK" +msgstr "" + +#: ../guvcview/gui_gtk3_callbacks.c:1760 +msgid "" +" encoder fps: \n" +" (0 - use fps combobox value)" +msgstr "" +" encoder fps: \n" +" (0 - use fps combobox value)" + +#: ../guvcview/gui_gtk3_callbacks.c:1773 +msgid " monotonic pts" +msgstr "" + +#. bit rate +#: ../guvcview/gui_gtk3_callbacks.c:1780 ../guvcview/gui_gtk3_callbacks.c:2105 +msgid "bit rate: " +msgstr "bit rate: " + +#: ../guvcview/gui_gtk3_callbacks.c:1793 +msgid "qmax: " +msgstr "qmax: " + +#: ../guvcview/gui_gtk3_callbacks.c:1806 +msgid "qmin: " +msgstr "qmin: " + +#: ../guvcview/gui_gtk3_callbacks.c:1819 +msgid "max. qdiff: " +msgstr "max. qdiff: " -#: ../src/video_format.c:43 -msgid "AVI - avi format" -msgstr "" +#: ../guvcview/gui_gtk3_callbacks.c:1832 +msgid "dia size: " +msgstr "dia size: " -#: ../src/video_format.c:52 -msgid "MKV - Matroska format" -msgstr "" +#: ../guvcview/gui_gtk3_callbacks.c:1845 +msgid "pre dia size: " +msgstr "pre dia size: " -#: ../src/video_format.c:61 -msgid "WEBM - format" -msgstr "" +#: ../guvcview/gui_gtk3_callbacks.c:1858 +msgid "pre me: " +msgstr "pre me: " -#: ../src/video_tab.c:216 -msgid "Frame Rate:" -msgstr "ćœ±æ ŒçŽ‡" +#: ../guvcview/gui_gtk3_callbacks.c:1871 +msgid "pre cmp: " +msgstr "pre cmp: " -#: ../src/video_tab.c:223 -msgid " Show" -msgstr " 饯ç€ș" +#: ../guvcview/gui_gtk3_callbacks.c:1884 +msgid "cmp: " +msgstr "cmp: " -#: ../src/video_tab.c:245 -msgid "Resolution:" -msgstr "ćœ±ćƒć°ș毞:" +#: ../guvcview/gui_gtk3_callbacks.c:1897 +msgid "sub cmp: " +msgstr "sub cmp: " -#: ../src/video_tab.c:271 -msgid "Camera Output:" -msgstr "æ”ćœ±æ©ŸèŒžć‡ș:" +#: ../guvcview/gui_gtk3_callbacks.c:1910 +msgid "last predictor count: " +msgstr "last predictor count: " -#: ../src/video_tab.c:293 -msgid "Apply" -msgstr "愗甚" +#: ../guvcview/gui_gtk3_callbacks.c:1923 +msgid "gop size: " +msgstr "gop size: " -#: ../src/video_tab.c:300 -msgid "Quality:" -msgstr "擁èłȘ:" +#: ../guvcview/gui_gtk3_callbacks.c:1936 +msgid "qcompress: " +msgstr "qcompress: " -#: ../src/video_tab.c:310 -msgid "---- Video Filters ----" -msgstr "---ćœ±ćƒæżŸæłąć™š---" +#: ../guvcview/gui_gtk3_callbacks.c:1949 +msgid "qblur: " +msgstr "qblur: " -#. Mirror -#: ../src/video_tab.c:329 -msgid " Mirror" -msgstr " 鏡惏(æ°Žćčłçż»èœ‰)" +#: ../guvcview/gui_gtk3_callbacks.c:1962 +msgid "subq: " +msgstr "subq: " -#. Upturn -#: ../src/video_tab.c:340 -msgid " Invert" -msgstr " ć€’çœź(ćž‚ç›Žçż»èœ‰)" +#: ../guvcview/gui_gtk3_callbacks.c:1975 +msgid "framerefs: " +msgstr "framerefs: " -#. Negate -#: ../src/video_tab.c:351 -msgid " Negative" -msgstr " èČ ç‰‡æ•ˆæžœ" +#: ../guvcview/gui_gtk3_callbacks.c:1988 +msgid "me method: " +msgstr "me method: " -#. Mono -#: ../src/video_tab.c:362 -msgid " Mono" -msgstr " 灰階" +#: ../guvcview/gui_gtk3_callbacks.c:2001 +msgid "mb decision: " +msgstr "mb decision: " -#. Pieces -#: ../src/video_tab.c:374 -msgid " Pieces" -msgstr " éŠŹèłœć…‹" +#: ../guvcview/gui_gtk3_callbacks.c:2014 +msgid "max B frames: " +msgstr "" -#. Particles -#: ../src/video_tab.c:386 -msgid " Particles" -msgstr " 顆çȒ" +#: ../guvcview/gui_gtk3_callbacks.c:2027 +msgid "num threads: " +msgstr "" -#: ../src/uvc_h264.c:596 -msgid "H264 Controls" +#: ../guvcview/gui_gtk3_callbacks.c:2094 +msgid "audio codec values" +msgstr "éŸłé »ç·šçąŒć™šæ•žć€Œ" + +#. sample format +#: ../guvcview/gui_gtk3_callbacks.c:2119 +msgid "sample format: " msgstr "" -#: ../src/uvc_h264.c:615 +#: ../guvcview/gui_gtk3_h264ctrls.c:622 +#, fuzzy msgid "Rate Control Mode:" -msgstr "" +msgstr "ćœ±ćƒèš­ćźš" -#: ../src/uvc_h264.c:626 +#: ../guvcview/gui_gtk3_h264ctrls.c:633 msgid "CBR" msgstr "" -#: ../src/uvc_h264.c:629 +#: ../guvcview/gui_gtk3_h264ctrls.c:636 msgid "VBR" msgstr "" -#: ../src/uvc_h264.c:633 +#: ../guvcview/gui_gtk3_h264ctrls.c:640 msgid "Constant QP" msgstr "" -#: ../src/uvc_h264.c:651 +#: ../guvcview/gui_gtk3_h264ctrls.c:658 msgid "Rate Control Mode flags:" msgstr "" -#: ../src/uvc_h264.c:676 +#: ../guvcview/gui_gtk3_h264ctrls.c:683 msgid "Temporal Scale Mode:" msgstr "" -#: ../src/uvc_h264.c:704 +#: ../guvcview/gui_gtk3_h264ctrls.c:711 msgid "Spatial Scale Mode:" msgstr "" -#: ../src/uvc_h264.c:737 +#: ../guvcview/gui_gtk3_h264ctrls.c:741 msgid "Frame Interval (100ns units):" msgstr "" -#: ../src/uvc_h264.c:772 +#: ../guvcview/gui_gtk3_h264ctrls.c:778 +#, fuzzy msgid "Bit Rate:" -msgstr "" +msgstr "bit rate: " -#: ../src/uvc_h264.c:795 +#: ../guvcview/gui_gtk3_h264ctrls.c:801 msgid "Hints:" msgstr "" -#: ../src/uvc_h264.c:800 +#: ../guvcview/gui_gtk3_h264ctrls.c:806 +#, fuzzy msgid "Resolution" -msgstr "" +msgstr "ćœ±ćƒć°ș毞:" -#: ../src/uvc_h264.c:804 +#: ../guvcview/gui_gtk3_h264ctrls.c:810 msgid "Profile" msgstr "" -#: ../src/uvc_h264.c:808 +#: ../guvcview/gui_gtk3_h264ctrls.c:814 +#, fuzzy msgid "Rate Control" -msgstr "" +msgstr "ćœ±ćƒèš­ćźš" -#: ../src/uvc_h264.c:812 +#: ../guvcview/gui_gtk3_h264ctrls.c:818 msgid "Usage Type" msgstr "" -#: ../src/uvc_h264.c:816 +#: ../guvcview/gui_gtk3_h264ctrls.c:822 msgid "Slice Mode" msgstr "" -#: ../src/uvc_h264.c:820 +#: ../guvcview/gui_gtk3_h264ctrls.c:826 msgid "Slice Unit" msgstr "" -#: ../src/uvc_h264.c:824 +#: ../guvcview/gui_gtk3_h264ctrls.c:830 msgid "MVC View" msgstr "" -#: ../src/uvc_h264.c:828 +#: ../guvcview/gui_gtk3_h264ctrls.c:834 msgid "Temporal Scale" msgstr "" -#: ../src/uvc_h264.c:832 +#: ../guvcview/gui_gtk3_h264ctrls.c:838 msgid "SNR Scale" msgstr "" -#: ../src/uvc_h264.c:836 +#: ../guvcview/gui_gtk3_h264ctrls.c:842 msgid "Spatial Scale" msgstr "" -#: ../src/uvc_h264.c:840 +#: ../guvcview/gui_gtk3_h264ctrls.c:846 msgid "Spatial Layer Ratio" msgstr "" -#: ../src/uvc_h264.c:844 +#: ../guvcview/gui_gtk3_h264ctrls.c:850 +#, fuzzy msgid "Frame Interval" -msgstr "" +msgstr "ćœ±æ ŒçŽ‡" -#: ../src/uvc_h264.c:848 +#: ../guvcview/gui_gtk3_h264ctrls.c:854 msgid "Leaky Bucket Size" msgstr "" -#: ../src/uvc_h264.c:852 +#: ../guvcview/gui_gtk3_h264ctrls.c:858 msgid "Bit Rate" msgstr "" -#: ../src/uvc_h264.c:856 ../src/uvc_h264.c:1250 +#: ../guvcview/gui_gtk3_h264ctrls.c:862 ../guvcview/gui_gtk3_h264ctrls.c:1220 msgid "CABAC" msgstr "" -#: ../src/uvc_h264.c:860 +#: ../guvcview/gui_gtk3_h264ctrls.c:866 msgid "(I) Frame Period" msgstr "" -#: ../src/uvc_h264.c:907 +#: ../guvcview/gui_gtk3_h264ctrls.c:878 msgid "Slice Mode:" msgstr "" -#: ../src/uvc_h264.c:914 +#: ../guvcview/gui_gtk3_h264ctrls.c:885 msgid "no multiple slices" msgstr "" -#: ../src/uvc_h264.c:916 +#: ../guvcview/gui_gtk3_h264ctrls.c:887 msgid "bits/slice" msgstr "" -#: ../src/uvc_h264.c:918 +#: ../guvcview/gui_gtk3_h264ctrls.c:889 msgid "Mbits/slice" msgstr "" -#: ../src/uvc_h264.c:920 +#: ../guvcview/gui_gtk3_h264ctrls.c:891 msgid "slices/frame" msgstr "" -#: ../src/uvc_h264.c:929 +#: ../guvcview/gui_gtk3_h264ctrls.c:900 msgid "Slice Units:" msgstr "" -#: ../src/uvc_h264.c:950 +#: ../guvcview/gui_gtk3_h264ctrls.c:921 msgid "Profile:" msgstr "" -#: ../src/uvc_h264.c:957 +#: ../guvcview/gui_gtk3_h264ctrls.c:928 msgid "Baseline Profile" msgstr "" -#: ../src/uvc_h264.c:959 +#: ../guvcview/gui_gtk3_h264ctrls.c:930 msgid "Main Profile" msgstr "" -#: ../src/uvc_h264.c:961 +#: ../guvcview/gui_gtk3_h264ctrls.c:932 msgid "High Profile" msgstr "" -#: ../src/uvc_h264.c:963 +#: ../guvcview/gui_gtk3_h264ctrls.c:934 msgid "Scalable Baseline Profile" msgstr "" -#: ../src/uvc_h264.c:965 +#: ../guvcview/gui_gtk3_h264ctrls.c:936 msgid "Scalable High Profile" msgstr "" -#: ../src/uvc_h264.c:967 +#: ../guvcview/gui_gtk3_h264ctrls.c:938 msgid "Multiview High Profile" msgstr "" -#: ../src/uvc_h264.c:969 +#: ../guvcview/gui_gtk3_h264ctrls.c:940 msgid "Stereo High Profile" msgstr "" -#: ../src/uvc_h264.c:1008 +#: ../guvcview/gui_gtk3_h264ctrls.c:979 msgid "Profile flags:" msgstr "" -#: ../src/uvc_h264.c:1033 +#: ../guvcview/gui_gtk3_h264ctrls.c:1004 msgid "(I) Frame Period (ms):" msgstr "" -#: ../src/uvc_h264.c:1054 +#: ../guvcview/gui_gtk3_h264ctrls.c:1025 msgid "Estimated Video Delay (ms):" msgstr "" -#: ../src/uvc_h264.c:1075 +#: ../guvcview/gui_gtk3_h264ctrls.c:1046 msgid "Estimated Max Config Delay (ms):" msgstr "" -#: ../src/uvc_h264.c:1096 +#: ../guvcview/gui_gtk3_h264ctrls.c:1067 msgid "Usage Type:" msgstr "" -#: ../src/uvc_h264.c:1103 +#: ../guvcview/gui_gtk3_h264ctrls.c:1074 msgid "Real-time" msgstr "" -#: ../src/uvc_h264.c:1105 +#: ../guvcview/gui_gtk3_h264ctrls.c:1076 msgid "Broadcast" msgstr "" -#: ../src/uvc_h264.c:1107 +#: ../guvcview/gui_gtk3_h264ctrls.c:1078 msgid "Storage" msgstr "" -#: ../src/uvc_h264.c:1109 +#: ../guvcview/gui_gtk3_h264ctrls.c:1080 msgid "(0) Non-scalable single layer AVC" msgstr "" -#: ../src/uvc_h264.c:1111 +#: ../guvcview/gui_gtk3_h264ctrls.c:1082 msgid "(1) SVC temporal scalability with hierarchical P" msgstr "" -#: ../src/uvc_h264.c:1113 +#: ../guvcview/gui_gtk3_h264ctrls.c:1084 msgid "(2q) SVC temporal scalability + Quality/SNR scalability" msgstr "" -#: ../src/uvc_h264.c:1115 +#: ../guvcview/gui_gtk3_h264ctrls.c:1086 msgid "(2s) SVC temporal scalability + spatial scalability" msgstr "" -#: ../src/uvc_h264.c:1117 +#: ../guvcview/gui_gtk3_h264ctrls.c:1088 msgid "(3) Full SVC scalability" msgstr "" -#: ../src/uvc_h264.c:1131 +#: ../guvcview/gui_gtk3_h264ctrls.c:1102 msgid "SNR Control Mode:" msgstr "" -#: ../src/uvc_h264.c:1138 +#: ../guvcview/gui_gtk3_h264ctrls.c:1109 msgid "No SNR Enhancement Layer" msgstr "" -#: ../src/uvc_h264.c:1140 +#: ../guvcview/gui_gtk3_h264ctrls.c:1111 msgid "CGS NonRewrite (2 Layer)" msgstr "" -#: ../src/uvc_h264.c:1142 +#: ../guvcview/gui_gtk3_h264ctrls.c:1113 msgid "CGS NonRewrite (3 Layer)" msgstr "" -#: ../src/uvc_h264.c:1144 +#: ../guvcview/gui_gtk3_h264ctrls.c:1115 msgid "CGS Rewrite (2 Layer)" msgstr "" -#: ../src/uvc_h264.c:1146 +#: ../guvcview/gui_gtk3_h264ctrls.c:1117 msgid "CGS Rewrite (3 Layer)" msgstr "" -#: ../src/uvc_h264.c:1148 +#: ../guvcview/gui_gtk3_h264ctrls.c:1119 msgid "MGS (2 Layer)" msgstr "" -#: ../src/uvc_h264.c:1173 +#: ../guvcview/gui_gtk3_h264ctrls.c:1144 msgid "Stream Mux Enable" msgstr "" -#: ../src/uvc_h264.c:1180 +#: ../guvcview/gui_gtk3_h264ctrls.c:1151 msgid "Embed H.264 aux stream" msgstr "" -#: ../src/uvc_h264.c:1182 +#: ../guvcview/gui_gtk3_h264ctrls.c:1153 msgid "Embed YUY2 aux stream" msgstr "" -#: ../src/uvc_h264.c:1184 +#: ../guvcview/gui_gtk3_h264ctrls.c:1155 msgid "Embed NV12 aux stream" msgstr "" -#: ../src/uvc_h264.c:1204 +#: ../guvcview/gui_gtk3_h264ctrls.c:1175 msgid "MJPG payload container" msgstr "" -#: ../src/uvc_h264.c:1219 +#: ../guvcview/gui_gtk3_h264ctrls.c:1189 msgid "Stream Format:" msgstr "" -#: ../src/uvc_h264.c:1227 +#: ../guvcview/gui_gtk3_h264ctrls.c:1197 msgid "Byte stream format (H.264 Annex-B)" msgstr "" -#: ../src/uvc_h264.c:1229 +#: ../guvcview/gui_gtk3_h264ctrls.c:1199 msgid "NAL stream format" msgstr "" -#: ../src/uvc_h264.c:1240 +#: ../guvcview/gui_gtk3_h264ctrls.c:1210 msgid "Entropy CABAC:" msgstr "" -#: ../src/uvc_h264.c:1248 +#: ../guvcview/gui_gtk3_h264ctrls.c:1218 msgid "CAVLC" msgstr "" -#: ../src/uvc_h264.c:1261 +#: ../guvcview/gui_gtk3_h264ctrls.c:1231 msgid "Picture timing SEI" msgstr "" -#: ../src/uvc_h264.c:1268 +#: ../guvcview/gui_gtk3_h264ctrls.c:1238 +#, fuzzy msgid "B Frames:" -msgstr "" +msgstr "ćœ±æ ŒçŽ‡" -#: ../src/uvc_h264.c:1293 +#: ../guvcview/gui_gtk3_h264ctrls.c:1263 msgid "Preview Flipped" msgstr "" -#: ../src/uvc_h264.c:1300 +#: ../guvcview/gui_gtk3_h264ctrls.c:1270 msgid "Additional MVC Views:" msgstr "" -#: ../src/uvc_h264.c:1325 +#: ../guvcview/gui_gtk3_h264ctrls.c:1295 msgid "Simulcast stream index:" msgstr "" -#: ../src/uvc_h264.c:1350 +#: ../guvcview/gui_gtk3_h264ctrls.c:1320 msgid "Spatial Layer Ratio:" msgstr "" -#: ../src/uvc_h264.c:1379 +#: ../guvcview/gui_gtk3_h264ctrls.c:1349 msgid "Leaky Bucket Size (ms):" msgstr "" #. encoder reset -#: ../src/uvc_h264.c:1406 +#: ../guvcview/gui_gtk3_h264ctrls.c:1376 +#, fuzzy msgid "Encoder Reset" -msgstr "" +msgstr "Pan 重蚭" -#. -#. h264_controls->probe_button = gtk_button_new_with_label(_("PROBE")); -#. g_signal_connect (GTK_BUTTON(h264_controls->probe_button), "clicked", +#. +#. GtkWidget *probe_button = gtk_button_new_with_label(_("PROBE")); +#. g_signal_connect (GTK_BUTTON(probe_button), "clicked", #. G_CALLBACK (h264_probe_button_clicked), all_data); -#. -#. gtk_grid_attach (GTK_GRID(table), h264_controls->probe_button, 0, line, 1 ,1); -#. gtk_widget_show(h264_controls->probe_button); -#. -#: ../src/uvc_h264.c:1421 +#. +#. gtk_grid_attach (GTK_GRID(h264_controls_grid), probe_button, 0, line, 1 ,1); +#. gtk_widget_show(probe_button); +#. +#: ../guvcview/gui_gtk3_h264ctrls.c:1391 msgid "COMMIT" msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:70 +msgid "Settings" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:73 +msgid "Hardware Defaults" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:81 +msgid "Camera Button" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:86 +msgid "Capture Image" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:91 +msgid "Capture Video" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:134 +msgid "Photo" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:135 ../guvcview/gui_gtk3_menu.c:159 +msgid "File" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:136 ../guvcview/gui_gtk3_menu.c:160 +msgid "Increment Filename" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:158 +msgid "Video" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:175 +msgid "Video Codec" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:202 +msgid "Video Codec Properties" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:208 +msgid "Audio Codec" +msgstr "" + +#: ../guvcview/gui_gtk3_menu.c:235 +msgid "Audio Codec Properties" +msgstr "" + +#: ../guvcview/gui_gtk3_v4l2ctrls.c:174 +msgid "Left" +msgstr "ć·Š" + +#: ../guvcview/gui_gtk3_v4l2ctrls.c:175 +msgid "Right" +msgstr "揳" + +#: ../guvcview/gui_gtk3_v4l2ctrls.c:179 +msgid "Down" +msgstr "例" + +#: ../guvcview/gui_gtk3_v4l2ctrls.c:180 +msgid "Up" +msgstr "侊" + +#. turn it into a menu control +#: ../guvcview/gui_gtk3_v4l2ctrls.c:296 +msgid "8 bit" +msgstr "" + +#: ../guvcview/gui_gtk3_v4l2ctrls.c:296 +msgid "12 bit" +msgstr "" + +#. add a virtual control for software autofocus +#: ../guvcview/gui_gtk3_v4l2ctrls.c:348 +msgid "Auto Focus (continuous)" +msgstr "è‡Ș拕氍焩(連çșŒ)" + +#: ../guvcview/gui_gtk3_v4l2ctrls.c:349 +msgid "set Focus" +msgstr "èš­ćźšç„Šé»ž" + +#. control_widgets_list[n].widget2 = gtk_button_new_from_stock(GTK_STOCK_APPLY); +#. control_widgets_list[n].widget2= gtk_button_new_from_stock(GTK_STOCK_APPLY); +#. control_widgets_list[n].widget2 = gtk_button_new_from_stock(GTK_STOCK_APPLY); +#: ../guvcview/gui_gtk3_v4l2ctrls.c:433 ../guvcview/gui_gtk3_v4l2ctrls.c:456 +#: ../guvcview/gui_gtk3_v4l2ctrls.c:478 +#, fuzzy +msgid "_Apply" +msgstr "愗甚" + +#: ../guvcview/gui_gtk3_videoctrls.c:144 +msgid "Frame Rate:" +msgstr "ćœ±æ ŒçŽ‡" + +#: ../guvcview/gui_gtk3_videoctrls.c:204 +msgid "Resolution:" +msgstr "ćœ±ćƒć°ș毞:" + +#: ../guvcview/gui_gtk3_videoctrls.c:254 +msgid "Camera Output:" +msgstr "æ”ćœ±æ©ŸèŒžć‡ș:" + +#: ../guvcview/gui_gtk3_videoctrls.c:287 +msgid "---- Video Filters ----" +msgstr "---ćœ±ćƒæżŸæłąć™š---" + +#. Mirror FX +#: ../guvcview/gui_gtk3_videoctrls.c:307 +msgid " Mirror" +msgstr " 鏡惏(æ°Žćčłçż»èœ‰)" + +#. Upturn FX +#: ../guvcview/gui_gtk3_videoctrls.c:319 +msgid " Invert" +msgstr " ć€’çœź(ćž‚ç›Žçż»èœ‰)" + +#. Negate FX +#: ../guvcview/gui_gtk3_videoctrls.c:331 +msgid " Negative" +msgstr " èČ ç‰‡æ•ˆæžœ" + +#. Mono FX +#: ../guvcview/gui_gtk3_videoctrls.c:343 +msgid " Mono" +msgstr " 灰階" + +#. Pieces FX +#: ../guvcview/gui_gtk3_videoctrls.c:356 +msgid " Pieces" +msgstr " éŠŹèłœć…‹" + +#. Particles +#: ../guvcview/gui_gtk3_videoctrls.c:369 +msgid " Particles" +msgstr " 顆çȒ" + +#: ../guvcview/options.c:51 +msgid "Print help" +msgstr "" + +#: ../guvcview/options.c:58 +#, fuzzy +msgid "Print version" +msgstr "ćˆ—ć°ç‰ˆæœŹ" + +#: ../guvcview/options.c:64 +msgid "LEVEL" +msgstr "" + +#: ../guvcview/options.c:65 +msgid "Set Verbosity level (def: 0)" +msgstr "" + +#: ../guvcview/options.c:71 +msgid "DEVICE" +msgstr "" + +#: ../guvcview/options.c:72 +#, fuzzy +msgid "Set device name (def: /dev/video0)" +msgstr "äœżç”šćœ±ćƒèš­ć‚™[default: /dev/video0]" + +#: ../guvcview/options.c:78 +msgid "METHOD" +msgstr "" + +#: ../guvcview/options.c:79 +#, fuzzy +msgid "Set capture method [read | mmap (def)]" +msgstr "æ“·ć–æ–čæł•(1-mmap (default) 2-read)" + +#: ../guvcview/options.c:85 +msgid "WIDTHxHEIGHT" +msgstr "" + +#: ../guvcview/options.c:86 +msgid "Request resolution (e.g 640x480)" +msgstr "" + +#: ../guvcview/options.c:92 +msgid "FOURCC" +msgstr "" + +#: ../guvcview/options.c:93 +msgid "Request format (e.g MJPG)" +msgstr "" + +#: ../guvcview/options.c:99 +msgid "RENDER_API" +msgstr "" + +#: ../guvcview/options.c:100 +msgid "Select render API (e.g none; sdl)" +msgstr "" + +#: ../guvcview/options.c:106 +msgid "AUDIO_API" +msgstr "" + +#: ../guvcview/options.c:107 +msgid "Select audio API (e.g none; port; pulse)" +msgstr "" + +#: ../guvcview/options.c:113 +msgid "AUDIO_DEVICE" +msgstr "" + +#: ../guvcview/options.c:114 +msgid "Select audio device index for selected api (0..N)" +msgstr "" + +#: ../guvcview/options.c:120 +msgid "GUI_API" +msgstr "" + +#: ../guvcview/options.c:121 +msgid "Select GUI API (e.g none; gtk3)" +msgstr "" + +#: ../guvcview/options.c:127 ../guvcview/options.c:134 +msgid "CODEC" +msgstr "" + +#: ../guvcview/options.c:128 +msgid "Audio codec [pcm mp2 mp3 aac ac3 vorb]" +msgstr "" + +#: ../guvcview/options.c:135 +msgid "Video codec [raw mjpg mpeg flv1 wmv1 mpg2 mp43 dx50 h264 vp80 theo]" +msgstr "" + +#: ../guvcview/options.c:141 ../guvcview/options.c:148 +#: ../guvcview/options.c:155 +msgid "FILENAME" +msgstr "" + +#: ../guvcview/options.c:142 +msgid "load control profile" +msgstr "" + +#: ../guvcview/options.c:149 +msgid "filename for captured video)" +msgstr "" + +#: ../guvcview/options.c:156 +msgid "filename for captured image)" +msgstr "" + +#: ../guvcview/options.c:162 ../guvcview/options.c:169 +msgid "TIME_IN_SEC" +msgstr "" + +#: ../guvcview/options.c:163 +msgid "time (double) in sec. for video capture)" +msgstr "" + +#: ../guvcview/options.c:170 +msgid "time (double) in sec. between captured photos)" +msgstr "" + +#: ../guvcview/options.c:176 +msgid "TOTAL" +msgstr "" + +#: ../guvcview/options.c:177 +msgid "total number of captured photos)" +msgstr "" + +#: ../guvcview/options.c:184 +msgid "Start in control panel mode" +msgstr "" + +#: ../guvcview/options.c:307 +#, fuzzy, c-format +msgid "" +"Guvcview version %s\n" +"\n" +msgstr "Guvcviewè­Šć‘Š:" + +#: ../guvcview/options.c:308 +#, c-format +msgid "" +"Usage:\n" +" guvcview [OPTIONS]\n" +"\n" +msgstr "" + +#: ../guvcview/options.c:309 +#, c-format +msgid "OPTIONS:\n" +msgstr "" + +#: ../guvcview/video_capture.c:819 +#, c-format +msgid "saving video to %s" +msgstr "" + +#. if(debug_level > 1) +#. printf("GUVCVIEW: saving image to %s\n", img_filename); +#: ../guvcview/video_capture.c:1069 +#, c-format +msgid "saving image to %s" +msgstr "" + +#~ msgid "Audio" +#~ msgstr "éŸłé »" + +#~ msgid " Sound" +#~ msgstr " èČ音" + +#~ msgid "---- Audio Effects ----" +#~ msgstr "---éŸłé »æ•ˆæžœ---" + +#~ msgid "Save File" +#~ msgstr "歘æȘ”" + +#~ msgid "codec values" +#~ msgstr "ç·šè§ŁçąŒć™šçš„ć€Œ" + +#~ msgid "Cap. Video" +#~ msgstr "éŒ„ćœ±" + +#~ msgid "GUVCViewer Controls" +#~ msgstr "GUVCViewerèš­ćźš" + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to open device" +#~ msgstr "" +#~ "Guvcview 錯èȘ€:\n" +#~ "\n" +#~ "èš­ć‚™ç„Ąæł•é–‹ć•Ÿ" + +#~ msgid "" +#~ "Please make sure the camera is connected\n" +#~ "and that the correct driver is installed." +#~ msgstr "" +#~ "請çąșćźšæ”ćœ±æ©Ÿć·Čé€ŁæŽ„\n" +#~ "侔ć·Čćź‰èŁæ­Łçąșçš„é©…ć‹•çš‹ćŒ" + +#~ msgid "" +#~ "Guvcview:\n" +#~ "\n" +#~ "UVC Extension controls" +#~ msgstr "" +#~ "Guvcview:\n" +#~ "\n" +#~ "UVC ć€–æŽ›æŽ§ćˆ¶" + +#~ msgid "Extension controls were added to the UVC driver" +#~ msgstr "ć€–æŽ›æŽ§ćˆ¶ć·Čç¶“èą«æ–°ćąžćˆ°UVCé©…ć‹•çš‹ćŒäž­" + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "UVC Extension controls" +#~ msgstr "" +#~ "Guvcview 錯èȘ€:\n" +#~ "\n" +#~ "UVC ć€–æŽ›æŽ§ćˆ¶" + +#~ msgid "" +#~ "An error occurred while adding extension\n" +#~ "controls to the UVC driver\n" +#~ "Make sure you run guvcview as root (or sudo)." +#~ msgstr "" +#~ "ç•¶æ–°ćąžć€–æŽ›æ™‚æœ‰äž€ć€‹éŒŻèȘ€ç™Œç”Ÿ\n" +#~ "æŽ§ćˆ¶UVCé©…ć‹•çš‹ćŒ\n" +#~ "çąșćźšäœ æ˜Żäœżç”šroot(或sudo)äŸ†ćŸ·èĄŒguvcview" + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Can't set a valid video stream for guvcview" +#~ msgstr "" +#~ "Guvcview 錯èȘ€:\n" +#~ "\n" +#~ "䞍胜ç‚șguvcviewèš­çœźäž€ć€‹æœ‰æ•ˆèŠ–èšŠäžČæ”ć€Œ" + +#~ msgid "" +#~ "Make sure your device driver is v4l2 compliant\n" +#~ "and that it is properly installed." +#~ msgstr "" +#~ "請çąșćźšæ‚šçš„èš­ć‚™é©…ć‹•çš‹ćŒçŹŠćˆv4l2æš™æș–\n" +#~ "侔漃ć·Čèą«æ­Łçąșćź‰èŁă€‚" + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to start with minimum setup" +#~ msgstr "" +#~ "Guvcview 錯èȘ€:\n" +#~ "\n" +#~ "ç„Ąæł•ć•Ÿć‹•æœ€ć°ćź‰èŁ" + +#~ msgid "Please reconnect your camera." +#~ msgstr "è«‹é‡æ–°é€ŁæŽ„äœ çš„æ”ćœ±æ©Ÿ" + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Couldn't query device capabilities" +#~ msgstr "" +#~ "Guvcview錯èȘ€:\n" +#~ "\n" +#~ "èš­ć‚™ç„Ąæł•é–‹ć•Ÿ" + +#~ msgid "Make sure the device driver supports v4l2." +#~ msgstr "çąșćźšäœ çš„èš­ć‚™é©…ć‹•çš‹ćŒæ”ŻæŽ v4l2." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Read method error" +#~ msgstr "" +#~ "Guvcview錯èȘ€:\n" +#~ "\n" +#~ "èš­ć‚™ç„Ąæł•é–‹ć•Ÿ" + +#~ msgid "Please try mmap instead (--capture_method=1)." +#~ msgstr "è«‹è©Šè©Šmmapè€Œäžæ˜Ż(--capture_method=1)." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to allocate Buffers" +#~ msgstr "" +#~ "Guvcview錯èȘ€:\n" +#~ "\n" +#~ "èš­ć‚™ç„Ąæł•é–‹ć•Ÿ" + +#~ msgid "Please try restarting your system." +#~ msgstr "è«‹è©Šè©Šé‡æ–°ć•Ÿć‹•äœ çš„çł»ç”±." + +#~ msgid "" +#~ "Guvcview error:\n" +#~ "\n" +#~ "Unable to create Video Thread" +#~ msgstr "" +#~ "Guvcview錯èȘ€:\n" +#~ "\n" +#~ "èš­ć‚™ç„Ąæł•é–‹ć•Ÿ" + +#~ msgid "Please report it to http://developer.berlios.de/bugs/?group_id=8179" +#~ msgstr "è«‹ć›žć ±ćˆ°http://developer.berlios.de/bugs/?group_id=8179" + +#~ msgid "Displays debug information" +#~ msgstr "饯ç€șdebugèšŠæŻ" + +#~ msgid "Exit after adding UVC extension controls (needs root/sudo)" +#~ msgstr "ćœšæ–°ćąžć€–æŽ›æŽ§ćˆ¶ćŸŒé›ąé–‹(éœ€èŠäœżç”šroot/sudo)" + +#~ msgid "Don't stream video (image controls only)" +#~ msgstr "䞍胜äžČæ”ćœ±ćƒ(ćȘèƒœæŽ§ćˆ¶ćœ–ç‰‡)" + +#~ msgid "Configuration file" +#~ msgstr "èš­çœźæȘ”æĄˆ" + +#~ msgid "Hardware accelaration (enable(1) | disable(0))" +#~ msgstr "çĄŹé«”ćŠ é€Ÿ(敟甹(1) | 恜甹(0))" + +#~ msgid "Frame size, default: 640x480" +#~ msgstr "ćœ±æ Œć°ș毞,é èš­ć€Œ:640x480" + +#~ msgid "Image capture interval in seconds" +#~ msgstr "ćœ–ç‰‡æ“·ć–é–“éš”ç§’æ•ž" + +#~ msgid "Number of Pictures to capture" +#~ msgstr "ćœ–ç‰‡æ“·ć–æ•ž" + +#~ msgid "Video File name (capture from start)" +#~ msgstr "ćœ±ćƒæȘ”æĄˆćçš±(ćŸžé–‹ć§‹æ“·ć–)" + +#~ msgid "Video capture time (in seconds)" +#~ msgstr "ćœ±ćƒæ“·ć–æ™‚é–“(秒敞)" + +#~ msgid "Exits guvcview after closing video" +#~ msgstr "ćœšé—œæŽ‰ćœ±ćƒćŸŒé›ąé–‹guvcview" + +#~ msgid "Number of initial frames to skip" +#~ msgstr "è·łéŽçš„ćˆć§‹ćœ±æ Œæ•ž" + +#~ msgid "Show FPS value (enable(1) | disable (0))" +#~ msgstr "饯ç€șFPSć€Œ(敟甹(1) | 恜甹 (0))" + +#~ msgid "Load Profile at start" +#~ msgstr "ćœšć•Ÿć‹•æ™‚èź€ć–ć°ˆæĄˆ" + +#~ msgid "- local options" +#~ msgstr "-æœŹćœ°éžé …" + +#~ msgid "Cap. Image" +#~ msgstr "拍照" + +#~ msgid "Not enough free space left on disk" +#~ msgstr "朹硬籟侊æČ’æœ‰è¶łć€ çš„ć‰©é€˜ç©ș間" + +#~ msgid "YUY2 - uncomp YUV" +#~ msgstr "YUY2 - uncomp YUV" + +#~ msgid "RGB - uncomp BMP" +#~ msgstr "RGB - uncomp BMP" + +#~ msgid " Show" +#~ msgstr " 饯ç€ș" + +#~ msgid "Quality:" +#~ msgstr "擁èłȘ:" diff -Nru guvcview-1.7.3/README guvcview-2.0.1+ubuntu1~ppa1/README --- guvcview-1.7.3/README 2014-03-24 22:56:28.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/README 1970-01-01 00:00:00.000000000 +0000 @@ -1,90 +0,0 @@ -GTK UVC VIEWER (guvcview) -************************* - -Basic Configuration -=================== -*Dependencies: --------------- - -Guvcview depends on the following: - - intltool, - - autotools, - - libsdl, - - libgtk-3, - - portaudio19, - - libpng, - - libavcodec, - - libavutil, - - libv4l, - - libudev, - - libusb-1.0, - - libpulse (optional) - -On most distributions you can just install the development -packages: - intltool, autotools-dev, libsdl1.2-dev, libgtk-3-dev, - portaudio19-dev, libpng12-dev, libavcodec-dev, libavutil-dev, - libv4l-dev, libudev-dev, libusb-1.0-0-dev, libpulse-dev - -*Build configuration: ---------------------- -(./bootstrap.sh; ./configure) - -The configure script is generated from configure.ac by autoconf, -the helper script ./bootstrap.sh can be used for this, it will also -run the generated configure with the command line options passed. -After configuration a simple 'make && make install' will build and -install guvcview and all the associated data files. - -*Data Files: ------------- -(language files; image files; gnome menu entry) - -guvcview data files are stored by default to /usr/local/share -setting a different prefix (--prefix=BASEDIR) during configuration -will change the installation path to BASEDIR/share. - -Built files, src/guvcview and data/gnome.desktop, are dependent -on this path, so if a new prefix is set a make clean is required -before issuing the make command. - -After running the configure script the normal, make && make install -should build and install all the necessary files. - - -*guvcview bin: --------------- -(src/guvcview) - -The binarie file installs to the standart location, -/usr/local/bin, to change the install path, configure -must be executed with --prefix=DIR set, this will cause -the bin file to be installed in DIR/bin, make sure -DIR/bin is set in your PATH variable, or the gnome -menu entry will fail. - - -*guvcview.desktop: ------------------- - -(data/guvcview.desktop) - -The desktop file (gnome menu entry) is built from the -data/guvcview.desktop.in definition and is dependent on the -configure --prefix setting, any changes to this, must -be done in data/guvcview.desktop.in. - -*configuration files: ---------------------- -(~/.config/guvcview/video0) - -The configuration file is saved into the $HOME dir when -exiting guvcview. If a video device with index > 0, -e.g: /dev/video1 is used then the file stored will be -named ~/.config/guvcview/video1 - -Executing guvcview -================== - -For instructions on the command line args -execute "guvcview --help". diff -Nru guvcview-1.7.3/README.md guvcview-2.0.1+ubuntu1~ppa1/README.md --- guvcview-1.7.3/README.md 1970-01-01 00:00:00.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/README.md 2014-10-05 10:41:44.000000000 +0000 @@ -0,0 +1,100 @@ +GTK UVC VIEWER (guvcview) +************************* + +Basic Configuration +=================== +Dependencies: +------------- + +Guvcview depends on the following: + - intltool, + - autotools, + - libsdl2 or libsdl, + - libgtk-3, + - portaudio19, + - libpng, + - libavcodec, + - libavutil, + - libv4l, + - libudev, + - libusb-1.0, + - libpulse (optional) + - libgsl (optional) + +On most distributions you can just install the development +packages: + intltool, autotools-dev, libsdl2-dev, libgtk-3-dev, + portaudio19-dev, libpng12-dev, libavcodec-dev, libavutil-dev, + libv4l-dev, libudev-dev, libusb-1.0-0-dev, libpulse-dev, libgsl-dev + +Build configuration: +-------------------- +(./bootstrap.sh; ./configure) + +The configure script is generated from configure.ac by autoconf, +the helper script ./bootstrap.sh can be used for this, it will also +run the generated configure with the command line options passed. +After configuration a simple 'make && make install' will build and +install guvcview and all the associated data files. + +Data Files: +------------ +(language files; image files; gnome menu entry) + +guvcview data files are stored by default to /usr/local/share +setting a different prefix (--prefix=BASEDIR) during configuration +will change the installation path to BASEDIR/share. + +Built files, src/guvcview and data/gnome.desktop, are dependent +on this path, so if a new prefix is set a make clean is required +before issuing the make command. + +After running the configure script the normal, make && make install +should build and install all the necessary files. + + +guvcview bin: +------------- +(guvcview) + +The binarie file installs to the standart location, +/usr/local/bin, to change the install path, configure +must be executed with --prefix=DIR set, this will cause +the bin file to be installed in DIR/bin, make sure +DIR/bin is set in your PATH variable, or the gnome +menu entry will fail. + +guvcview libraries: +------------------- +(libgviewv4l2core, libgviewrender, libgviewaudio, libgviewencoder) + +The core functionality of guvcview is now split into 4 libraries +these will install to ${prefix}/lib and development headers to +${prefix}/include/guvcview-2/libname. +pkg-config should be use to determine the compile flags. + + +guvcview.desktop: +----------------- + +(data/guvcview.desktop) + +The desktop file (gnome menu entry) is built from the +data/guvcview.desktop.in definition and is dependent on the +configure --prefix setting, any changes to this, must +be done in data/guvcview.desktop.in. + +configuration files: +-------------------- +(~/.config/guvcview2/video0) + +The configuration file is saved into the $HOME dir when +exiting guvcview. If a video device with index > 0, +e.g: /dev/video1 is used then the file stored will be +named ~/.config/guvcview2/video1 + +Executing guvcview +================== + +For instructions on the command line args +execute "guvcview --help". diff -Nru guvcview-1.7.3/src/acodecs.c guvcview-2.0.1+ubuntu1~ppa1/src/acodecs.c --- guvcview-1.7.3/src/acodecs.c 2014-03-24 22:56:28.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/src/acodecs.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,565 +0,0 @@ -/*******************************************************************************# -# guvcview http://guvcview.sourceforge.net # -# # -# Paulo Assis # -# # -# This program is free software; you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation; either version 2 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program; if not, write to the Free Software # -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# # -********************************************************************************/ - -#include -#include "acodecs.h" -#include "guvcview.h" -#include "picture.h" -#include "colorspaces.h" -#include "create_video.h" -#include "sound.h" -/* support for internationalization - i18n */ -#include -#include - -#define __FMUTEX &global->file_mutex - -/* AAC object types index: MAIN = 1; LOW = 2; SSR = 3; LTP = 4*/ -static int AAC_OBJ_TYPE[5] = - { FF_PROFILE_UNKNOWN, FF_PROFILE_AAC_MAIN, FF_PROFILE_AAC_LOW, FF_PROFILE_AAC_SSR, FF_PROFILE_AAC_LTP }; -/*-1 = reserved; 0 = freq. is writen explictly (increases header by 24 bits)*/ -static int AAC_SAMP_FREQ[16] = - { 96000, 88200, 64000, 48000, 44100, 32000, 24000, 22050, 16000, 12000, 11025, 8000, 7350, -1, -1, 0}; - -/*NORMAL AAC HEADER*/ -/*2 bytes: object type index(5 bits) + sample frequency index(4bits) + channels(4 bits) + flags(3 bit) */ -/*default = MAIN(1)+44100(4)+stereo(2)+flags(0) = 0x0A10*/ -static BYTE AAC_ESDS[2] = {0x0A,0x10}; -/* if samprate index == 15 AAC_ESDS[5]: - * object type index(5 bits) + sample frequency index(4bits) + samprate(24bits) + channels(4 bits) + flags(3 bit) - */ - - -static acodecs_data listSupACodecs[] = //list of software supported formats -{ - { - .avcodec = FALSE, - .valid = TRUE, - .bits = 16, - .avi_4cc = WAVE_FORMAT_PCM, - .mkv_codec = "A_PCM/INT/LIT", - .description = N_("PCM - uncompressed (16 bit)"), - .bit_rate = 0, - .codec_id = AV_CODEC_ID_PCM_S16LE, - .codec_name = "pcm_s16le", - .sample_format = AV_SAMPLE_FMT_S16, - .profile = FF_PROFILE_UNKNOWN, - .mkv_codpriv = NULL, - .codpriv_size = 0, - .flags = 0 - }, - { - .avcodec = TRUE, - .valid = TRUE, - .bits = 0, - .monotonic_pts= 1, - .avi_4cc = WAVE_FORMAT_MPEG12, - .mkv_codec = "A_MPEG/L2", - .description = N_("MPEG2 - (lavc)"), - .bit_rate = 160000, - .codec_id = AV_CODEC_ID_MP2, - .codec_name = "mp2", - .sample_format = AV_SAMPLE_FMT_S16, - .profile = FF_PROFILE_UNKNOWN, - .mkv_codpriv = NULL, - .codpriv_size = 0, - .flags = 0 - }, - { - .avcodec = TRUE, - .valid = TRUE, - .bits = 0, - .monotonic_pts= 1, - .avi_4cc = WAVE_FORMAT_MP3, - .mkv_codec = "A_MPEG/L3", - .description = N_("MP3 - (lavc)"), - .bit_rate = 160000, - .codec_id = AV_CODEC_ID_MP3, - .codec_name = "mp3", - .sample_format = AV_SAMPLE_FMT_S16, - .profile = FF_PROFILE_UNKNOWN, - .mkv_codpriv = NULL, - .codpriv_size = 0, - .flags = 0 - }, - { - .avcodec = TRUE, - .valid = TRUE, - .bits = 0, - .monotonic_pts= 1, - .avi_4cc = WAVE_FORMAT_AC3, - .mkv_codec = "A_AC3", - .description = N_("Dolby AC3 - (lavc)"), - .bit_rate = 160000, - .codec_id = AV_CODEC_ID_AC3, - .codec_name = "ac3", - .sample_format = AV_SAMPLE_FMT_FLT, - .profile = FF_PROFILE_UNKNOWN, - .mkv_codpriv = NULL, - .codpriv_size = 0, - .flags = 0 - }, - { - .avcodec = TRUE, - .valid = TRUE, - .bits = 16, - .monotonic_pts= 1, - .avi_4cc = WAVE_FORMAT_AAC, - .mkv_codec = "A_AAC", - .description = N_("ACC Low - (faac)"), - .bit_rate = 64000, - .codec_id = AV_CODEC_ID_AAC, - .codec_name = "aac", - .sample_format = AV_SAMPLE_FMT_S16, - .profile = FF_PROFILE_AAC_LOW, - .mkv_codpriv = AAC_ESDS, - .codpriv_size = 2, - .flags = 0 - }, - { - .avcodec = TRUE, - .valid = TRUE, - .bits = 16, - .monotonic_pts= 1, - .avi_4cc = OGG_FORMAT_VORBIS, - .mkv_codec = "A_VORBIS", - .description = N_("Vorbis"), - .bit_rate = 64000, - .codec_id = AV_CODEC_ID_VORBIS, - .codec_name = "libvorbis", - .sample_format = AV_SAMPLE_FMT_S16, - .profile = FF_PROFILE_UNKNOWN, - .mkv_codpriv = NULL, - .codpriv_size = 0, - .flags = 0 - } -}; - -static int get_aac_obj_ind(int profile) -{ - int i = 0; - - for (i=0; i<4; i++) - if(AAC_OBJ_TYPE[i] == profile) break; - - return i; -} - -static int get_aac_samp_ind(int samprate) -{ - int i = 0; - - for (i=0; i<13; i++) - if(AAC_SAMP_FREQ[i] == samprate) break; - - if (i>12) - { - g_print("WARNING: invalid sample rate for AAC encoding\n"); - g_print("valid(96000, 88200, 64000, 48000, 44100, 32000, 24000, 22050, 16000, 12000, 11025, 8000, 7350)\n"); - i=4; /*default 44100*/ - } - return i; -} - -static int get_real_index (int codec_ind) -{ - int i = 0; - int ind = -1; - for (i=0;i= MAX_ACODECS || - !listSupACodecs[real_index].valid ) - return -1; //error: real index is not valid - - int i = 0; - int ind = -1; - for (i=0;i<=real_index; i++) - { - if(listSupACodecs[i].valid) - ind++; - } - - return (ind); -} - -/** returns the real codec array index*/ -int get_acodec_index(int codec_id) -{ - int i = 0; - for(i=0; i= 0 && real_index < MAX_ACODECS) - return (listSupACodecs[real_index].avi_4cc); - else - { - fprintf(stderr, "ACODEC: (4cc) bad codec index\n"); - return 0; - } -} - -int get_aud_bits(int codec_ind) -{ - int real_index = get_real_index (codec_ind); - if(real_index >= 0 && real_index < MAX_ACODECS) - return (listSupACodecs[real_index].bits); - else - { - fprintf(stderr, "ACODEC: (bits) bad codec index\n"); - return 0; - } -} - -int get_aud_bit_rate(int codec_ind) -{ - int real_index = get_real_index (codec_ind); - if(real_index >= 0 && real_index < MAX_ACODECS) - return (listSupACodecs[real_index].bit_rate); - else - { - fprintf(stderr, "ACODEC: (bit_rate) bad codec index\n"); - return 0; - } -} - -int get_ind_by4cc(WORD avi_4cc) -{ - int i = 0; - int ind = -1; - for (i=0;i= 0 && real_index < MAX_ACODECS) - return (listSupACodecs[real_index].description); - else - { - fprintf(stderr, "ACODEC: (desc4cc) bad codec index\n"); - return NULL; - } -} - - -const char *get_mkvACodec(int codec_ind) -{ - int real_index = get_real_index (codec_ind); - if(real_index >= 0 && real_index < MAX_ACODECS) - return (listSupACodecs[real_index].mkv_codec); - else - { - fprintf(stderr, "ACODEC: (mkvACodec) bad codec index\n"); - return NULL; - } -} - -void *get_mkvACodecPriv(int codec_ind) -{ - int real_index = get_real_index (codec_ind); - if(real_index >= 0 && real_index < MAX_ACODECS) - return ((void *) listSupACodecs[real_index].mkv_codpriv); - else - { - fprintf(stderr, "ACODEC: (mkvACodecPriv) bad codec index\n"); - return NULL; - } -} - -int set_mkvACodecPriv(int codec_ind, int samprate, int channels, struct lavcAData* data) -{ - int real_index = get_real_index (codec_ind); - - if(real_index < 0 || real_index >= MAX_ACODECS) - { - fprintf(stderr, "ACODEC: (set mkvCodecPriv) bad codec index\n"); - return 0; - } - - if (listSupACodecs[real_index].codec_id == AV_CODEC_ID_AAC) - { - int obj_type = get_aac_obj_ind(listSupACodecs[real_index].profile); - int sampind = get_aac_samp_ind(samprate); - AAC_ESDS[0] = (BYTE) ((obj_type & 0x1F) << 3 ) + ((sampind & 0x0F) >> 1); - AAC_ESDS[1] = (BYTE) ((sampind & 0x0F) << 7 ) + ((channels & 0x0F) << 3); - - return listSupACodecs[real_index].codpriv_size; /*return size = 2 */ - } - else if(listSupACodecs[real_index].codec_id == AV_CODEC_ID_VORBIS) - { - //get the 3 first header packets - uint8_t *header_start[3]; - int header_len[3]; - int first_header_size; - - first_header_size = 30; //theora = 42 - if (avpriv_split_xiph_headers(data->codec_context->extradata, data->codec_context->extradata_size, - first_header_size, header_start, header_len) < 0) - { - fprintf(stderr, "ACODEC: vorbis codec - Extradata corrupt.\n"); - return -1; - } - - //printf("Vorbis: header1: %i header2: %i header3:%i \n", header_len[0], header_len[1], header_len[2]); - - //get the allocation needed for headers size - int header_lace_size[2]; - header_lace_size[0]=0; - header_lace_size[1]=0; - int i; - for (i = 0; i < header_len[0] / 255; i++) - header_lace_size[0]++; - header_lace_size[0]++; - for (i = 0; i < header_len[1] / 255; i++) - header_lace_size[1]++; - header_lace_size[1]++; - - int priv_data_size = 1 + //number of packets -1 - header_lace_size[0] + //first packet size - header_lace_size[1] + //second packet size - header_len[0] + //first packet header - header_len[1] + //second packet header - header_len[2]; //third packet header - - //should check and clean before allocating ?? - data->priv_data = g_new0(BYTE, priv_data_size); - //write header - BYTE* tmp = data->priv_data; - *tmp++ = 0x02; //number of packets -1 - //size of head 1 - for (i = 0; i < header_len[0] / 0xff; i++) - *tmp++ = 0xff; - *tmp++ = header_len[0] % 0xff; - //size of head 2 - for (i = 0; i < header_len[1] / 0xff; i++) - *tmp++ = 0xff; - *tmp++ = header_len[1] % 0xff; - //add headers - for(i=0; i<3; i++) - { - memcpy(tmp, header_start[i] , header_len[i]); - tmp += header_len[i]; - } - - listSupACodecs[real_index].mkv_codpriv = data->priv_data; - listSupACodecs[real_index].codpriv_size = priv_data_size; - return listSupACodecs[real_index].codpriv_size; - } - - - return 0; -} -int get_acodec_id(int codec_ind) -{ - int real_index = get_real_index (codec_ind); - if(real_index >= 0 && real_index < MAX_ACODECS) - return (listSupACodecs[real_index].codec_id); - else - { - fprintf(stderr, "ACODEC: (id) bad codec index\n"); - return 0; - } -} - -gboolean isLavcACodec(int codec_ind) -{ - int real_index = get_real_index (codec_ind); - if(real_index >= 0 && real_index < MAX_ACODECS) - return (listSupACodecs[real_index].avcodec); - else - { - fprintf(stderr, "ACODEC: (isLavc) bad codec index\n"); - return FALSE; - } -} - -int setAcodecVal() -{ - AVCodec *codec; - int ind = 0; - int num_codecs = 0; - for (ind=0;ind= 0 && real_index < MAX_ACODECS) - return (listSupACodecs[real_index].valid); - else - { - fprintf(stderr, "ACODEC: (isValid) bad codec index\n"); - return FALSE; - } -} - -acodecs_data *get_aud_codec_defaults(int codec_ind) -{ - int real_index = get_real_index (codec_ind); - if(real_index >= 0 && real_index < MAX_ACODECS) - return (&(listSupACodecs[real_index])); - else - { - fprintf(stderr, "ACODEC: (defaults) bad codec index\n"); - return NULL; - } -} - -static int write_audio_data(struct ALL_DATA *all_data, BYTE *buff, int size, QWORD a_ts) -{ - struct VideoFormatData *videoF = all_data->videoF; - struct GLOBAL *global = all_data->global; - - int ret =0; - - __LOCK_MUTEX( __FMUTEX ); - - switch (global->VidFormat) - { - case AVI_FORMAT: - if(size > 0) - ret = avi_write_packet(videoF->avi, 1, buff, size, videoF->adts, videoF->ablock_align, videoF->aflags); - break; - - case WEBM_FORMAT: - case MKV_FORMAT: - videoF->apts = a_ts; - if(size > 0) - ret = mkv_write_packet(videoF->mkv, 1, buff, size, videoF->aduration, videoF->apts, videoF->aflags); - //ret = write_audio_packet (buff, size, videoF); - break; - - default: - - break; - } - - __UNLOCK_MUTEX( __FMUTEX ); - - return (ret); -} - -static int encode_lavc_audio ( struct ALL_DATA *all_data ) -{ - struct paRecordData *pdata = all_data->pdata; - struct VideoFormatData *videoF = all_data->videoF; - - int framesize = 0; - int ret = 0; - - videoF->old_apts = videoF->apts; - - if(pdata->lavc_data) - { - if(pdata->lavc_data->codec_context->sample_fmt == AV_SAMPLE_FMT_FLT) - framesize= encode_lavc_audio_frame (pdata->float_sndBuff, pdata->lavc_data, videoF); - else - framesize= encode_lavc_audio_frame (pdata->pcm_sndBuff, pdata->lavc_data, videoF); - - ret = write_audio_data (all_data, pdata->lavc_data->outbuf, framesize, pdata->audio_buff[pdata->br_ind][pdata->r_ind].time_stamp); - } - return (ret); -} - -int compress_audio_frame(void *data) -{ - struct ALL_DATA *all_data = (struct ALL_DATA *) data; - struct GLOBAL *global = all_data->global; - struct paRecordData *pdata = all_data->pdata; - - int ret = 0; - - switch (global->Sound_Format) - { - /*write audio chunk*/ - case PA_FOURCC: - { - SampleConverter(pdata); /*convert from float sample to 16 bit PCM*/ - ret = write_audio_data (all_data, (BYTE *) pdata->pcm_sndBuff, pdata->aud_numSamples*2, pdata->audio_buff[pdata->br_ind][pdata->r_ind].time_stamp); - break; - } - default: - { - SampleConverter(pdata); - ret = encode_lavc_audio (all_data); - break; - } - } - return (ret); -} diff -Nru guvcview-1.7.3/src/acodecs.h guvcview-2.0.1+ubuntu1~ppa1/src/acodecs.h --- guvcview-1.7.3/src/acodecs.h 2014-03-24 22:56:28.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/src/acodecs.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,112 +0,0 @@ -/*******************************************************************************# -# guvcview http://guvcview.sourceforge.net # -# # -# Paulo Assis # -# # -# This program is free software; you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation; either version 2 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program; if not, write to the Free Software # -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# # -********************************************************************************/ - -#ifndef ACODECS_H -#define ACODECS_H - -#include -#include "lavc_common.h" -#include "globals.h" -#include "sound.h" - -#define MAX_ACODECS 6 - -#define CODEC_PCM 0 -#define CODEC_MP2 1 - -typedef struct _acodecs_data -{ - gboolean avcodec; //is a avcodec codec - gboolean valid; //the encoding codec exists in ffmpeg - int bits; //bits per sample (pcm only) - int monotonic_pts; - WORD avi_4cc; //fourcc WORD value - const char *mkv_codec; //mkv codecID - const char *description; //codec description - int bit_rate; //lavc default bit rate - int codec_id; //lavc codec_id - const char *codec_name; //lavc codec name - int sample_format; //lavc sample format - int profile; //for AAC only - void *mkv_codpriv; //pointer for codec private data - int codpriv_size; //size in bytes of private data - int flags; //lavc flags -} acodecs_data; - -/** must be called before all others - * sets the valid flag - */ -int setAcodecVal(); - -/** returns codec data array (all) index: 0 indexed */ -int get_acodec_index(int codec_id); - -/** returns codec list (available) index: 0 indexed */ -int get_list_acodec_index(int codec_id); - -/** codec_ind is the available codec list index - * -- refers to the dropdown list (1 indexed) - */ - -WORD get_aud4cc(int codec_ind); - -int get_aud_bit_rate(int codec_ind); - -int get_aud_bits(int codec_ind); - -int get_ind_by4cc(WORD avi_4cc); - -const char *get_aud_desc4cc(int codec_ind); - -const char *get_mkvACodec(int codec_ind); - -int get_acodec_id(int codec_ind); - -gboolean isLavcACodec(int codec_ind); - -gboolean isAcodecValid(int codec_ind); - -acodecs_data *get_aud_codec_defaults(int codec_ind); - -void* get_mkvACodecPriv(int codec_ind); - -int set_mkvACodecPriv(int codec_ind, int samprate, int channels, struct lavcAData* data); - -int compress_audio_frame(void *data); - -/** - * Split a single extradata buffer into the three headers that most - * Xiph codecs use. (e.g. Theora and Vorbis) - * Works both with Matroska's packing and lavc's packing. - * - * @param[in] extradata The single chunk that combines all three headers - * @param[in] extradata_size The size of the extradata buffer - * @param[in] first_header_size The size of the first header, used to - * differentiate between the Matroska packing and lavc packing. - * @param[out] header_start Pointers to the start of the three separate headers. - * @param[out] header_len The sizes of each of the three headers. - * @return On error a negative value is returned, on success zero. - */ -int avpriv_split_xiph_headers(uint8_t *extradata, int extradata_size, - int first_header_size, uint8_t *header_start[3], - int header_len[3]); - -#endif diff -Nru guvcview-1.7.3/src/audio_effects.c guvcview-2.0.1+ubuntu1~ppa1/src/audio_effects.c --- guvcview-1.7.3/src/audio_effects.c 2014-03-24 22:56:28.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/src/audio_effects.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,649 +0,0 @@ -/*******************************************************************************# -# guvcview http://guvcview.sourceforge.net # -# # -# Paulo Assis # -# # -# This program is free software; you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation; either version 2 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program; if not, write to the Free Software # -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# # -********************************************************************************/ - -#include -#include -#include - -#include "audio_effects.h" - -#ifndef M_PI -#define M_PI 3.14159265358979323846 -#endif - -//clip float samples [-1.0 ; 1.0] -static float clip_float (float in) -{ - in = (in < -1.0) ? -1.0 : (in > 1.0) ? 1.0 : in; - - return in; -} - -/*------------------------------------- Effects ------------------------------------------*/ -/* Echo effect */ -/*delay_ms: echo delay in ms*/ -/*decay: feedback gain (<1) */ -void Echo(struct paRecordData* data, AudBuff *proc_buff, struct audio_effects *aud_eff, int delay_ms, float decay) -{ - int samp=0; - SAMPLE out; - - if(aud_eff->ECHO == NULL) - { - aud_eff->ECHO = g_new0(delay_data, 1); - aud_eff->ECHO->buff_size = (int) delay_ms * data->samprate * 0.001; - aud_eff->ECHO->delayBuff1 = g_new0(SAMPLE, aud_eff->ECHO->buff_size); - aud_eff->ECHO->delayBuff2 = NULL; - if(data->channels > 1) - aud_eff->ECHO->delayBuff2 = g_new0(SAMPLE, aud_eff->ECHO->buff_size); - } - - for(samp = 0; samp < data->aud_numSamples; samp = samp + data->channels) - { - out = (0.7 * proc_buff->frame[samp]) + - (0.3 * aud_eff->ECHO->delayBuff1[aud_eff->ECHO->delayIndex]); - aud_eff->ECHO->delayBuff1[aud_eff->ECHO->delayIndex] = proc_buff->frame[samp] + - (aud_eff->ECHO->delayBuff1[aud_eff->ECHO->delayIndex] * decay); - proc_buff->frame[samp] = clip_float(out); - /*if stereo process second channel in separate*/ - if (data->channels > 1) - { - out = (0.7 * proc_buff->frame[samp+1]) + - (0.3 * aud_eff->ECHO->delayBuff2[aud_eff->ECHO->delayIndex]); - aud_eff->ECHO->delayBuff2[aud_eff->ECHO->delayIndex] = proc_buff->frame[samp] + - (aud_eff->ECHO->delayBuff2[aud_eff->ECHO->delayIndex] * decay); - proc_buff->frame[samp+1] = clip_float(out); - } - - if(++(aud_eff->ECHO->delayIndex) >= aud_eff->ECHO->buff_size) aud_eff->ECHO->delayIndex=0; - } -} - - -/*Butterworth Filter for HP or LP -out(n) = a1 * in + a2 * in(n-1) + a3 * in(n-2) - b1*out(n-1) - b2*out(n-2) -*/ -static void Butt(Filt_data *FILT, SAMPLE *Buff, int NumSamples, int channels) -{ - int index = 0; - SAMPLE out; - - for (index = 0; index < NumSamples; index = index + channels) - { - out = FILT->a1 * Buff[index] + FILT->a2 * FILT->buff_in1[0] + - FILT->a3 * FILT->buff_in1[1] - FILT->b1 * FILT->buff_out1[0] - - FILT->b2 * FILT->buff_out1[1]; - FILT->buff_in1[1] = FILT->buff_in1[0]; //in(n-2) = in(n-1) - FILT->buff_in1[0] = Buff[index]; // in(n-1) = in - FILT->buff_out1[1] = FILT->buff_out1[0]; //out(n-2) = out(n-1) - FILT->buff_out1[0] = out; //out(n-1) = out - - Buff[index] = clip_float(out); - /*process second channel*/ - if(channels > 1) - { - out = FILT->a1 * Buff[index+1] + FILT->a2 * FILT->buff_in2[0] + - FILT->a3 * FILT->buff_in2[1] - FILT->b1 * FILT->buff_out2[0] - - FILT->b2 * FILT->buff_out2[1]; - FILT->buff_in2[1] = FILT->buff_in2[0]; //in(n-2) = in(n-1) - FILT->buff_in2[0] = Buff[index+1]; // in(n-1) = in - FILT->buff_out2[1] = FILT->buff_out2[0]; //out(n-2) = out(n-1) - FILT->buff_out2[0] = out; //out(n-1) = out - - Buff[index+1] = clip_float(out); - } - } -} - -/* - HP Filter: out(n) = a1 * in + a2 * in(n-1) + a3 * in(n-2) - b1*out(n-1) - b2*out(n-2) - f - cuttof freq., from ~0 Hz to SampleRate/2 - though many synths seem to filter only up to SampleRate/4 - r = rez amount, from sqrt(2) to ~ 0.1 - - c = tan(pi * f / sample_rate); - a1 = 1.0 / ( 1.0 + r * c + c * c); - a2 = -2*a1; - a3 = a1; - b1 = 2.0 * ( c*c - 1.0) * a1; - b2 = ( 1.0 - r * c + c * c) * a1; - - */ -static void -HPF(struct paRecordData* data, AudBuff *proc_buff, struct audio_effects *aud_eff, int cutoff_freq, float res) -{ - if(aud_eff->HPF == NULL) - { - float inv_samprate = 1.0 / data->samprate; - aud_eff->HPF = g_new0(Filt_data, 1); - aud_eff->HPF->c = tan(M_PI * cutoff_freq * inv_samprate); - aud_eff->HPF->a1 = 1.0 / (1.0 + (res * aud_eff->HPF->c) + (aud_eff->HPF->c * aud_eff->HPF->c)); - aud_eff->HPF->a2 = -2.0 * aud_eff->HPF->a1; - aud_eff->HPF->a3 = aud_eff->HPF->a1; - aud_eff->HPF->b1 = 2.0 * ((aud_eff->HPF->c * aud_eff->HPF->c) - 1.0) * aud_eff->HPF->a1; - aud_eff->HPF->b2 = (1.0 - (res * aud_eff->HPF->c) + (aud_eff->HPF->c * aud_eff->HPF->c)) * aud_eff->HPF->a1; - } - - Butt(aud_eff->HPF, proc_buff->frame, data->aud_numSamples, data->channels); -} -/* - LP Filter: out(n) = a1 * in + a2 * in(n-1) + a3 * in(n-2) - b1*out(n-1) - b2*out(n-2) - f - cuttof freq., from ~0 Hz to SampleRate/2 - though many synths seem to filter only up to SampleRate/4 - r = rez amount, from sqrt(2) to ~ 0.1 - - c = 1.0 / tan(pi * f / sample_rate); - - a1 = 1.0 / ( 1.0 + r * c + c * c); - a2 = 2* a1; - a3 = a1; - b1 = 2.0 * ( 1.0 - c*c) * a1; - b2 = ( 1.0 - r * c + c * c) * a1; - - */ -static void -LPF(struct paRecordData* data, AudBuff *proc_buff, struct audio_effects *aud_eff, float cutoff_freq, float res) -{ - if(aud_eff->LPF1 == NULL) - { - aud_eff->LPF1 = g_new0(Filt_data, 1); - aud_eff->LPF1->c = 1.0 / tan(M_PI * cutoff_freq / data->samprate); - aud_eff->LPF1->a1 = 1.0 / (1.0 + (res * aud_eff->LPF1->c) + (aud_eff->LPF1->c * aud_eff->LPF1->c)); - aud_eff->LPF1->a2 = 2.0 * aud_eff->LPF1->a1; - aud_eff->LPF1->a3 = aud_eff->LPF1->a1; - aud_eff->LPF1->b1 = 2.0 * (1.0 - (aud_eff->LPF1->c * aud_eff->LPF1->c)) * aud_eff->LPF1->a1; - aud_eff->LPF1->b2 = (1.0 - (res * aud_eff->LPF1->c) + (aud_eff->LPF1->c * aud_eff->LPF1->c)) * aud_eff->LPF1->a1; - } - - Butt(aud_eff->LPF1, proc_buff->frame, data->aud_numSamples, data->channels); -} - -/* -Wave distort -parameters: in - input from [-1..1] - a - distort parameter from 1 to infinity -*/ -/* -SAMPLE -waveshape_distort( SAMPLE in, float a ) -{ - return (in*(abs(in) + a)/(in*in + (a-1)*abs(in) + 1)); -} -*/ -/* -fold back distortion - parameters: in input from [-1..1] - treshold - fold treshold value [-1..1] -*/ -/* -SAMPLE -foldback(SAMPLE in, float threshold) -{ - if (in > threshold || in < -threshold) - { - in = fabs(fabs(fmod(in - threshold, threshold * 4)) - threshold * 2) - threshold; - } - return in; -} -*/ - -/* Non-linear amplifier with soft distortion curve. */ -static SAMPLE CubicAmplifier( SAMPLE input ) -{ - SAMPLE out; - float temp; - if( input < SAMPLE_SILENCE ) - { - - temp = input + 1.0f; - out = (temp * temp * temp) - 1.0f; - } - else - { - temp = input - 1.0f; - out = (temp * temp * temp) + 1.0f; - } - return clip_float(out); -} - - -#define FUZZ(x) CubicAmplifier(CubicAmplifier(CubicAmplifier(CubicAmplifier(x)))) -/* Fuzz distortion */ -void Fuzz (struct paRecordData* data, AudBuff *proc_buff, struct audio_effects *aud_eff) -{ - int samp=0; - for(samp = 0; samp < data->aud_numSamples; samp++) - proc_buff->frame[samp] = FUZZ(proc_buff->frame[samp]); - HPF(data, proc_buff, aud_eff, 1000, 0.9); -} - -/* four paralell Comb filters for reverb */ -static void -CombFilter4 (struct paRecordData* data, - AudBuff *proc_buff, - struct audio_effects *aud_eff, - int delay1_ms, // delay for filter 1 - int delay2_ms, //delay for filter 2 - int delay3_ms, //delay for filter 3 - int delay4_ms, //delay for filter 4 - float gain1, // feed gain for filter 1 - float gain2, //feed gain for filter 2 - float gain3, //feed gain for filter 3 - float gain4, //feed gain for filter 4 - float in_gain) //input line gain -{ - int samp=0; - SAMPLE out1, out2, out3, out4; - /*buff_size in samples*/ - - if (aud_eff->COMB4 == NULL) - { - aud_eff->COMB4 = g_new0(Comb4_data, 1); - /*buff_size in samples*/ - aud_eff->COMB4->buff_size1 = (int) delay1_ms * (data->samprate * 0.001); - aud_eff->COMB4->buff_size2 = (int) delay2_ms * (data->samprate * 0.001); - aud_eff->COMB4->buff_size3 = (int) delay3_ms * (data->samprate * 0.001); - aud_eff->COMB4->buff_size4 = (int) delay4_ms * (data->samprate * 0.001); - - aud_eff->COMB4->CombBuff10 = g_new0(SAMPLE, aud_eff->COMB4->buff_size1); - aud_eff->COMB4->CombBuff20 = g_new0(SAMPLE, aud_eff->COMB4->buff_size2); - aud_eff->COMB4->CombBuff30 = g_new0(SAMPLE, aud_eff->COMB4->buff_size3); - aud_eff->COMB4->CombBuff40 = g_new0(SAMPLE, aud_eff->COMB4->buff_size4); - aud_eff->COMB4->CombBuff11 = NULL; - aud_eff->COMB4->CombBuff21 = NULL; - aud_eff->COMB4->CombBuff31 = NULL; - aud_eff->COMB4->CombBuff41 = NULL; - if(data->channels > 1) - { - aud_eff->COMB4->CombBuff11 = g_new0(SAMPLE, aud_eff->COMB4->buff_size1); - aud_eff->COMB4->CombBuff21 = g_new0(SAMPLE, aud_eff->COMB4->buff_size2); - aud_eff->COMB4->CombBuff31 = g_new0(SAMPLE, aud_eff->COMB4->buff_size3); - aud_eff->COMB4->CombBuff41 = g_new0(SAMPLE, aud_eff->COMB4->buff_size4); - } - } - - for(samp = 0; samp < data->aud_numSamples; samp = samp + data->channels) - { - out1 = in_gain * proc_buff->frame[samp] + - gain1 * aud_eff->COMB4->CombBuff10[aud_eff->COMB4->CombIndex1]; - out2 = in_gain * proc_buff->frame[samp] + - gain2 * aud_eff->COMB4->CombBuff20[aud_eff->COMB4->CombIndex2]; - out3 = in_gain * proc_buff->frame[samp] + - gain3 * aud_eff->COMB4->CombBuff30[aud_eff->COMB4->CombIndex3]; - out4 = in_gain * proc_buff->frame[samp] + - gain4 * aud_eff->COMB4->CombBuff40[aud_eff->COMB4->CombIndex4]; - - aud_eff->COMB4->CombBuff10[aud_eff->COMB4->CombIndex1] = proc_buff->frame[samp] + - gain1 * aud_eff->COMB4->CombBuff10[aud_eff->COMB4->CombIndex1]; - aud_eff->COMB4->CombBuff20[aud_eff->COMB4->CombIndex2] = proc_buff->frame[samp] + - gain2 * aud_eff->COMB4->CombBuff20[aud_eff->COMB4->CombIndex2]; - aud_eff->COMB4->CombBuff30[aud_eff->COMB4->CombIndex3] = proc_buff->frame[samp] + - gain3 * aud_eff->COMB4->CombBuff30[aud_eff->COMB4->CombIndex3]; - aud_eff->COMB4->CombBuff40[aud_eff->COMB4->CombIndex4] = proc_buff->frame[samp] + - gain4 * aud_eff->COMB4->CombBuff40[aud_eff->COMB4->CombIndex4]; - - proc_buff->frame[samp] = clip_float(out1 + out2 + out3 + out4); - - /*if stereo process second channel */ - if(data->channels > 1) - { - out1 = in_gain * proc_buff->frame[samp+1] + - gain1 * aud_eff->COMB4->CombBuff11[aud_eff->COMB4->CombIndex1]; - out2 = in_gain * proc_buff->frame[samp+1] + - gain2 * aud_eff->COMB4->CombBuff21[aud_eff->COMB4->CombIndex2]; - out3 = in_gain * proc_buff->frame[samp+1] + - gain3 * aud_eff->COMB4->CombBuff31[aud_eff->COMB4->CombIndex3]; - out4 = in_gain * proc_buff->frame[samp+1] + - gain4 * aud_eff->COMB4->CombBuff41[aud_eff->COMB4->CombIndex4]; - - aud_eff->COMB4->CombBuff11[aud_eff->COMB4->CombIndex1] = proc_buff->frame[samp+1] + - gain1 * aud_eff->COMB4->CombBuff11[aud_eff->COMB4->CombIndex1]; - aud_eff->COMB4->CombBuff21[aud_eff->COMB4->CombIndex2] = proc_buff->frame[samp+1] + - gain2 * aud_eff->COMB4->CombBuff21[aud_eff->COMB4->CombIndex2]; - aud_eff->COMB4->CombBuff31[aud_eff->COMB4->CombIndex3] = proc_buff->frame[samp+1] + - gain3 * aud_eff->COMB4->CombBuff31[aud_eff->COMB4->CombIndex3]; - aud_eff->COMB4->CombBuff41[aud_eff->COMB4->CombIndex4] = proc_buff->frame[samp+1] + - gain4 * aud_eff->COMB4->CombBuff41[aud_eff->COMB4->CombIndex4]; - - proc_buff->frame[samp+1] = clip_float(out1 + out2 + out3 + out4); - } - - if(++(aud_eff->COMB4->CombIndex1) >= aud_eff->COMB4->buff_size1) aud_eff->COMB4->CombIndex1=0; - if(++(aud_eff->COMB4->CombIndex2) >= aud_eff->COMB4->buff_size2) aud_eff->COMB4->CombIndex2=0; - if(++(aud_eff->COMB4->CombIndex3) >= aud_eff->COMB4->buff_size3) aud_eff->COMB4->CombIndex3=0; - if(++(aud_eff->COMB4->CombIndex4) >= aud_eff->COMB4->buff_size4) aud_eff->COMB4->CombIndex4=0; - } -} - - -/* all pass filter */ -/*delay_ms: delay in ms */ -/*gain: filter gain */ -static void -all_pass (delay_data *AP, SAMPLE *Buff, int NumSamples, int channels, float gain) -{ - int samp = 0; - float inv_gain = 1.0 / gain; - - for(samp = 0; samp < NumSamples; samp += channels) - { - AP->delayBuff1[AP->delayIndex] = Buff[samp] + - (gain * AP->delayBuff1[AP->delayIndex]); - Buff[samp] = ((AP->delayBuff1[AP->delayIndex] * (1 - gain*gain)) - - Buff[samp]) * inv_gain; - if(channels > 1) - { - AP->delayBuff2[AP->delayIndex] = Buff[samp+1] + - (gain * AP->delayBuff2[AP->delayIndex]); - Buff[samp+1] = ((AP->delayBuff2[AP->delayIndex] * (1 - gain*gain)) - - Buff[samp+1]) * inv_gain; - } - - if(++(AP->delayIndex) >= AP->buff_size) AP->delayIndex=0; - } -} - -/*all pass for reverb*/ -static void -all_pass1 (struct paRecordData* data, AudBuff *proc_buff, struct audio_effects *aud_eff, int delay_ms, float gain) -{ - if(aud_eff->AP1 == NULL) - { - aud_eff->AP1 = g_new0(delay_data, 1); - aud_eff->AP1->buff_size = (int) delay_ms * (data->samprate * 0.001); - aud_eff->AP1->delayBuff1 = g_new0(SAMPLE, aud_eff->AP1->buff_size); - aud_eff->AP1->delayBuff2 = NULL; - if(data->channels > 1) - aud_eff->AP1->delayBuff2 = g_new0(SAMPLE, aud_eff->AP1->buff_size); - } - - all_pass (aud_eff->AP1, proc_buff->frame, data->aud_numSamples, data->channels, gain); -} - -void Reverb (struct paRecordData* data, AudBuff *proc_buff, struct audio_effects *aud_eff, int delay_ms) -{ - /*4 parallel comb filters*/ - CombFilter4 (data, proc_buff, aud_eff, delay_ms, delay_ms - 5, delay_ms -10, delay_ms -15, - 0.55, 0.6, 0.5, 0.45, 0.7); - /*all pass*/ - all_pass1 (data, proc_buff, aud_eff, delay_ms, 0.75); -} - - -/* Parameters: - freq - LFO frequency (1.5) - startphase - LFO startphase in RADIANS - usefull for stereo WahWah (0) - depth - Wah depth (0.7) - freqofs - Wah frequency offset (0.3) - res - Resonance (2.5) - - !!!!!!!!!!!!! IMPORTANT!!!!!!!!! : - depth and freqofs should be from 0(min) to 1(max) ! - res should be greater than 0 ! */ - -#define lfoskipsamples 30 - -void WahWah (struct paRecordData* data, AudBuff *proc_buff, struct audio_effects *aud_eff, - float freq, float startphase, float depth, float freqofs, float res) -{ - float frequency, omega, sn, cs, alpha; - float in, out; - - if(aud_eff->wahData == NULL) - { - aud_eff->wahData = g_new0(WAHData, 1); - aud_eff->wahData->lfoskip = freq * 2 * M_PI / data->samprate; - aud_eff->wahData->phase = startphase; - //if right channel set: phase += (float)M_PI; - } - - int samp = 0; - for(samp = 0; samp < data->aud_numSamples; samp++) - { - in = proc_buff->frame[samp]; - - if ((aud_eff->wahData->skipcount++) % lfoskipsamples == 0) - { - frequency = (1 + cos(aud_eff->wahData->skipcount * aud_eff->wahData->lfoskip + aud_eff->wahData->phase)) * 0.5; - frequency = frequency * depth * (1 - freqofs) + freqofs; - frequency = exp((frequency - 1) * 6); - omega = M_PI * frequency; - sn = sin(omega); - cs = cos(omega); - alpha = sn / (2 * res); - aud_eff->wahData->b0 = (1 - cs) * 0.5; - aud_eff->wahData->b1 = 1 - cs; - aud_eff->wahData->b2 = (1 - cs) * 0.5; - aud_eff->wahData->a0 = 1 + alpha; - aud_eff->wahData->a1 = -2 * cs; - aud_eff->wahData->a2 = 1 - alpha; - } - out = (aud_eff->wahData->b0 * in + aud_eff->wahData->b1 * aud_eff->wahData->xn1 + - aud_eff->wahData->b2 * aud_eff->wahData->xn2 - aud_eff->wahData->a1 * aud_eff->wahData->yn1 - - aud_eff->wahData->a2 * aud_eff->wahData->yn2) / aud_eff->wahData->a0; - aud_eff->wahData->xn2 = aud_eff->wahData->xn1; - aud_eff->wahData->xn1 = in; - aud_eff->wahData->yn2 = aud_eff->wahData->yn1; - aud_eff->wahData->yn1 = out; - - proc_buff->frame[samp] = clip_float(out); - } -} - -/*reduce number of samples with linear interpolation*/ -//rate - rate of samples to remove [1,...[ -// rate = 1-> XXX (splits channels) 2 -> X0X0X 3 -> X00X00X 4 -> X000X000X -static void -change_rate_less(RATE_data *RT, SAMPLE *Buff, int rate, int NumSamples, int channels) -{ - int samp = 0; - int n = 0, i = 0; - //float mid1 = 0.0; - //float mid2 = 0.0; - //float inv_rate = 1.0 / rate; - - for (samp = 0; samp < NumSamples; samp += channels) - { - - - if (n==0) - { - RT->rBuff1[i] = Buff[samp]; - if(channels > 1) - RT->rBuff2[i] = Buff[samp + 1]; - - i++; - } - if(++n >= rate) n=0; - } - RT->numsamples = i; -} - -/*increase audio tempo by adding audio windows of wtime_ms in given rate */ -/*rate: 2 -> [w1..w2][w1..w2][w2..w3][w2..w3] 3-> [w1..w2][w1..w2][w1..w2][w2..w3][w2..w3][w2..w3]*/ -static void -change_tempo_more(struct paRecordData* data, AudBuff *proc_buff, struct audio_effects *aud_eff, int rate, int wtime_ms) -{ - int samp = 0; - int i = 0; - int r = 0; - int index = 0; - - if(aud_eff->RT1->wBuff1 == NULL) - { - aud_eff->RT1->wSize = wtime_ms * data->samprate * 0.001; - aud_eff->RT1->wBuff1 = g_new0(SAMPLE, aud_eff->RT1->wSize); - if (data->channels >1) - aud_eff->RT1->wBuff2 = g_new0(SAMPLE, aud_eff->RT1->wSize); - } - - //printf("samples = %i\n", data->RT1->numsamples); - for(samp = 0; samp < aud_eff->RT1->numsamples; samp++) - { - aud_eff->RT1->wBuff1[i] = aud_eff->RT1->rBuff1[samp]; - if(data->channels > 1) - aud_eff->RT1->wBuff2[i] = aud_eff->RT1->rBuff2[samp]; - - if((++i) > aud_eff->RT1->wSize) - { - for (r = 0; r < rate; r++) - { - for(i = 0; i < aud_eff->RT1->wSize; i++) - { - proc_buff->frame[index] = aud_eff->RT1->wBuff1[i]; - if (data->channels > 1) - proc_buff->frame[index +1] = aud_eff->RT1->wBuff2[i]; - index += data->channels; - } - } - i = 0; - } - } -} - -void -change_pitch (struct paRecordData* data, AudBuff *proc_buff, struct audio_effects *aud_eff, int rate) -{ - if(aud_eff->RT1 == NULL) - { - aud_eff->RT1 = g_new0(RATE_data, 1); - - aud_eff->RT1->wBuff1 = NULL; - aud_eff->RT1->wBuff2 = NULL; - aud_eff->RT1->rBuff1 = g_new0(SAMPLE, (data->aud_numSamples/data->channels)); - aud_eff->RT1->rBuff2 = NULL; - if(data->channels > 1) - aud_eff->RT1->rBuff2 = g_new0(SAMPLE, (data->aud_numSamples/data->channels)); - - } - - //printf("all samples: %i\n",data->aud_numSamples); - change_rate_less(aud_eff->RT1, proc_buff->frame, rate, data->aud_numSamples, data->channels); - change_tempo_more(data, proc_buff, aud_eff, rate, 20); - LPF(data, proc_buff, aud_eff, (data->samprate * 0.25), 0.9); -} - -struct audio_effects* init_audio_effects (void) -{ - struct audio_effects* aud_eff; - aud_eff = g_new0(struct audio_effects, 1); - /*Echo effect data */ - aud_eff->ECHO = NULL; - /* 4 parallel comb filters data*/ - aud_eff->COMB4 = NULL; - /*all pass 1 filter data*/ - aud_eff->AP1 = NULL; - /*WahWah effect data*/ - aud_eff->wahData = NULL; - /*high pass filter data*/ - aud_eff->HPF = NULL; - /*rate transposer*/ - aud_eff->RT1 = NULL; - /*low pass filter*/ - aud_eff->LPF1 = NULL; - - return (aud_eff); -} - -void -close_DELAY(delay_data *DELAY) -{ - if(DELAY != NULL) - { - g_free(DELAY->delayBuff1); - g_free(DELAY->delayBuff2); - g_free(DELAY); - } -} - -static void -close_COMB4(Comb4_data *COMB4) -{ - if(COMB4 != NULL) - { - g_free(COMB4->CombBuff10); - g_free(COMB4->CombBuff20); - g_free(COMB4->CombBuff30); - g_free(COMB4->CombBuff40); - - g_free(COMB4->CombBuff11); - g_free(COMB4->CombBuff21); - g_free(COMB4->CombBuff31); - g_free(COMB4->CombBuff41); - - g_free(COMB4); - } -} - -void -close_FILT(Filt_data *FILT) -{ - if(FILT != NULL) - { - g_free(FILT); - } -} - -void -close_WAHWAH(WAHData *wahData) -{ - if(wahData != NULL) - { - g_free(wahData); - } -} - -void -close_REVERB(struct audio_effects *aud_eff) -{ - close_DELAY(aud_eff->AP1); - aud_eff->AP1 = NULL; - close_COMB4(aud_eff->COMB4); - aud_eff->COMB4 = NULL; -} - -void -close_pitch (struct audio_effects *aud_eff) -{ - if(aud_eff->RT1 != NULL) - { - g_free(aud_eff->RT1->rBuff1); - g_free(aud_eff->RT1->rBuff2); - g_free(aud_eff->RT1->wBuff1); - g_free(aud_eff->RT1->wBuff2); - g_free(aud_eff->RT1); - aud_eff->RT1 = NULL; - close_FILT(aud_eff->LPF1); - aud_eff->LPF1 = NULL; - } -} - -void close_audio_effects (struct audio_effects *aud_eff) -{ - close_DELAY(aud_eff->ECHO); - aud_eff->ECHO = NULL; - close_REVERB(aud_eff); - close_WAHWAH(aud_eff->wahData); - aud_eff->wahData = NULL; - close_FILT(aud_eff->HPF); - aud_eff->HPF = NULL; - close_pitch(aud_eff); - g_free(aud_eff); - aud_eff = NULL; -} diff -Nru guvcview-1.7.3/src/audio_effects.h guvcview-2.0.1+ubuntu1~ppa1/src/audio_effects.h --- guvcview-1.7.3/src/audio_effects.h 2014-03-24 22:56:28.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/src/audio_effects.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,166 +0,0 @@ -/*******************************************************************************# -# guvcview http://guvcview.sourceforge.net # -# # -# Paulo Assis # -# # -# This program is free software; you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation; either version 2 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program; if not, write to the Free Software # -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# # -********************************************************************************/ - -#ifndef AUDIO_EFFECTS_H -#define AUDIO_EFFECTS_H - -#include "sound.h" - -//----------- structs for effects (audio_effects.c)------------ -//data for Butterworth filter (LP or HP) -typedef struct _Filt_data -{ - SAMPLE buff_in1[2]; - SAMPLE buff_in2[2]; - SAMPLE buff_out1[2]; - SAMPLE buff_out2[2]; - float c; - float a1; - float a2; - float a3; - float b1; - float b2; -} Filt_data; - -//data for Comb4 filter -typedef struct _Comb4_data -{ - int buff_size1; - int buff_size2; - int buff_size3; - int buff_size4; - - SAMPLE *CombBuff10; // four parallel comb filters - first channel - SAMPLE *CombBuff11; // four parallel comb filters - second channel - SAMPLE *CombBuff20; // four parallel comb filters - first channel - SAMPLE *CombBuff21; // four parallel comb filters - second channel - SAMPLE *CombBuff30; // four parallel comb filters - first channel - SAMPLE *CombBuff31; // four parallel comb filters - second channel - SAMPLE *CombBuff40; // four parallel comb filters - first channel - SAMPLE *CombBuff41; // four parallel comb filters - second channel - - int CombIndex1; //comb filter 1 index - int CombIndex2; //comb filter 2 index - int CombIndex3; //comb filter 3 index - int CombIndex4; //comb filter 4 index -} Comb4_data; - -// data for delay -typedef struct _delay_data -{ - int buff_size; - SAMPLE *delayBuff1; // delay buffer 1 - first channel - SAMPLE *delayBuff2; // delay buffer 2 - second channel (stereo) - int delayIndex; // delay buffer index -} delay_data; - -// data for WahWah effect -typedef struct _WAHData -{ - float lfoskip; - unsigned long skipcount; - float xn1; - float xn2; - float yn1; - float yn2; - float b0; - float b1; - float b2; - float a0; - float a1; - float a2; - float phase; -} WAHData; - -typedef struct _TSD_data -{ - float tempo; -} TSD_data; - -typedef struct _RATE_data -{ - SAMPLE *rBuff1; - SAMPLE *rBuff2; - SAMPLE *wBuff1; - SAMPLE *wBuff2; - int wSize; - int numsamples; -} RATE_data; - -struct audio_effects -{ - delay_data *ECHO; - delay_data *AP1; - Comb4_data *COMB4; - Filt_data *HPF; - Filt_data *LPF1; - RATE_data *RT1; - WAHData* wahData; -}; - - -void -Echo(struct paRecordData* data, AudBuff *proc_buff, struct audio_effects *aud_eff, int delay_ms, float decay); - -void -Fuzz (struct paRecordData* data, AudBuff *proc_buff, struct audio_effects *aud_eff); - -void -Reverb (struct paRecordData* data, AudBuff *proc_buff, struct audio_effects *aud_eff, int delay_ms); - -/* Parameters: - freq - LFO frequency (1.5) - startphase - LFO startphase in RADIANS - usefull for stereo WahWah (0) - depth - Wah depth (0.7) - freqofs - Wah frequency offset (0.3) - res - Resonance (2.5) - - !!!!!!!!!!!!! IMPORTANT!!!!!!!!! : - depth and freqofs should be from 0(min) to 1(max) ! - res should be greater than 0 ! */ -void -WahWah (struct paRecordData* data, AudBuff *proc_buff, struct audio_effects *aud_eff, - float freq, float startphase, float depth, float freqofs, float res); - -void -change_pitch (struct paRecordData* data, AudBuff *proc_buff, struct audio_effects *aud_eff, int rate); - -struct audio_effects* init_audio_effects (void); - -void -close_DELAY(delay_data *DELAY); - -void -close_FILT(Filt_data *FILT); - -void -close_WAHWAH(WAHData *wahData); - -void -close_REVERB(struct audio_effects *aud_eff); - -void -close_pitch (struct audio_effects *aud_eff); - -void -close_audio_effects(struct audio_effects *aud_eff); - -#endif diff -Nru guvcview-1.7.3/src/audio_tab.c guvcview-2.0.1+ubuntu1~ppa1/src/audio_tab.c --- guvcview-1.7.3/src/audio_tab.c 2014-03-24 22:56:28.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/src/audio_tab.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,386 +0,0 @@ -/*******************************************************************************# -# guvcview http://guvcview.sourceforge.net # -# # -# Paulo Assis # -# Nobuhiro Iwamatsu # -# Add UYVY color support(Macbook iSight) # -# # -# This program is free software; you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation; either version 2 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program; if not, write to the Free Software # -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# # -********************************************************************************/ -#include -#include -/* support for internationalization - i18n */ -#include -#include -#include "globals.h" -#include "callbacks.h" -#include "v4l2uvc.h" -#include "snd_devices.h" -#include "acodecs.h" -#include "../config.h" - -void audio_tab(struct ALL_DATA *all_data) -{ - struct GLOBAL *global = all_data->global; - struct GWIDGET *gwidget = all_data->gwidget; - struct paRecordData *pdata = all_data->pdata; - - GtkWidget *table3; - GtkWidget *scroll3; - GtkWidget *Tab3; - GtkWidget *Tab3Label; - GtkWidget *Tab3Icon; - GtkWidget *label_SndSampRate; - GtkWidget *label_SndDevice; - GtkWidget *label_SndNumChan; - GtkWidget *label_audioFilters; - GtkWidget *table_snd_eff; - GtkWidget *EffEchoEnable; - GtkWidget *EffFuzzEnable; - GtkWidget* EffRevEnable; - GtkWidget* EffWahEnable; - GtkWidget* EffDuckyEnable; - - int line = 0; - int i = 0; - //TABLE - table3 = gtk_grid_new(); - gtk_grid_set_column_homogeneous (GTK_GRID(table3), FALSE); - gtk_widget_set_hexpand (table3, TRUE); - gtk_widget_set_halign (table3, GTK_ALIGN_FILL); - - gtk_grid_set_row_spacing (GTK_GRID(table3), 4); - gtk_grid_set_column_spacing (GTK_GRID (table3), 4); - gtk_container_set_border_width (GTK_CONTAINER (table3), 2); - gtk_widget_show (table3); - - //SCROLL - scroll3=gtk_scrolled_window_new(NULL,NULL); - gtk_scrolled_window_set_placement(GTK_SCROLLED_WINDOW(scroll3), - GTK_CORNER_TOP_LEFT); - //ADD TABLE TO SCROLL - - //viewport is only needed for gtk < 3.8 - //for 3.8 and above s->table can be directly added to scroll1 - GtkWidget* viewport = gtk_viewport_new(NULL,NULL); - gtk_container_add(GTK_CONTAINER(viewport), table3); - gtk_widget_show(viewport); - - gtk_container_add(GTK_CONTAINER(scroll3), viewport); - gtk_widget_show(scroll3); - - //new grid for tab label and icon - Tab3 = gtk_grid_new(); - Tab3Label = gtk_label_new(_("Audio")); - gtk_widget_show (Tab3Label); - //check for files - gchar* Tab3IconPath = g_strconcat (PACKAGE_DATA_DIR,"/pixmaps/guvcview/audio_controls.png",NULL); - //don't test for file - use default empty image if load fails - //get icon image - Tab3Icon = gtk_image_new_from_file(Tab3IconPath); - g_free(Tab3IconPath); - gtk_widget_show (Tab3Icon); - gtk_grid_attach (GTK_GRID(Tab3), Tab3Icon, 0, 0, 1, 1); - gtk_grid_attach (GTK_GRID(Tab3), Tab3Label, 1, 0, 1, 1); - gtk_widget_show (Tab3); - - //ADD SCROLL to NOTEBOOK (TAB) - gtk_notebook_append_page(GTK_NOTEBOOK(gwidget->boxh),scroll3,Tab3); - //--------------------- sound controls ------------------------------ - //enable sound - line++; - gwidget->SndEnable=gtk_check_button_new_with_label (_(" Sound")); - gtk_grid_attach(GTK_GRID(table3), gwidget->SndEnable, 1, line, 1, 1); - - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(gwidget->SndEnable), - (global->Sound_enable > 0)); - gtk_widget_show (gwidget->SndEnable); - g_signal_connect (GTK_CHECK_BUTTON(gwidget->SndEnable), "toggled", - G_CALLBACK (SndEnable_changed), all_data); - - line++; - // VU meter on the image (OSD) - GtkWidget* vuMeterEnable=gtk_check_button_new_with_label(_(" Show VU meter")); - g_object_set_data(G_OBJECT(vuMeterEnable), "flag", GINT_TO_POINTER(OSD_METER)); - gtk_grid_attach(GTK_GRID(table3), vuMeterEnable, 1, line, 1, 1); - - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(vuMeterEnable),(global->osdFlags & OSD_METER)>0); - gtk_widget_show(vuMeterEnable); - g_signal_connect(GTK_CHECK_BUTTON(vuMeterEnable), "toggled", G_CALLBACK(osdChanged), all_data); - - //sound API -#ifdef PULSEAUDIO - line++; - - gwidget->label_SndAPI = gtk_label_new(_("Audio API:")); - gtk_misc_set_alignment (GTK_MISC (gwidget->label_SndAPI), 1, 0.5); - - gtk_grid_attach (GTK_GRID(table3), gwidget->label_SndAPI, 0, line, 1, 1); - gtk_widget_show (gwidget->label_SndAPI); - - gwidget->SndAPI = gtk_combo_box_text_new (); - gtk_widget_set_halign (gwidget->SndAPI, GTK_ALIGN_FILL); - gtk_widget_set_hexpand (gwidget->SndAPI, TRUE); - gtk_grid_attach(GTK_GRID(table3), gwidget->SndAPI, 1, line, 1, 1); - - gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(gwidget->SndAPI),_("PORTAUDIO")); - gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(gwidget->SndAPI),_("PULSEAUDIO")); - gtk_widget_show (gwidget->SndAPI); - //default API - portaudio - gtk_combo_box_set_active(GTK_COMBO_BOX(gwidget->SndAPI),global->Sound_API); - - //if(global->Sound_API > 0) global->Sound_UseDev=-1; //force default device - - gtk_widget_set_sensitive (gwidget->SndAPI, TRUE); - g_signal_connect (GTK_COMBO_BOX_TEXT(gwidget->SndAPI), "changed", - G_CALLBACK (SndAPI_changed), all_data); - -#endif - - //sound device - line++; - - label_SndDevice = gtk_label_new(_("Input Device:")); - gtk_misc_set_alignment (GTK_MISC (label_SndDevice), 1, 0.5); - - gtk_grid_attach (GTK_GRID(table3), label_SndDevice, 0, line, 1, 1); - gtk_widget_show (label_SndDevice); - - // get sound device list and info - gwidget->SndDevice = list_snd_devices (global); - - gtk_widget_set_halign (gwidget->SndDevice, GTK_ALIGN_FILL); - gtk_widget_set_hexpand (gwidget->SndDevice, TRUE); - gtk_grid_attach(GTK_GRID(table3), gwidget->SndDevice, 1, line, 1, 1); - gtk_widget_show (gwidget->SndDevice); - //using default device - if(global->Sound_UseDev < 0) global->Sound_UseDev=global->Sound_DefDev; - gtk_combo_box_set_active(GTK_COMBO_BOX(gwidget->SndDevice),global->Sound_UseDev); - - //disable if using pulse api - //if (global->Sound_enable && !global->Sound_API) gtk_widget_set_sensitive (gwidget->SndDevice, TRUE); - //else gtk_widget_set_sensitive (gwidget->SndDevice, FALSE); - g_signal_connect (GTK_COMBO_BOX_TEXT(gwidget->SndDevice), "changed", - G_CALLBACK (SndDevice_changed), all_data); - - label_SndDevice = gtk_label_new(_("Input Device:")); - gtk_misc_set_alignment (GTK_MISC (label_SndDevice), 1, 0.5); - - gtk_grid_attach (GTK_GRID(table3), label_SndDevice, 0, line, 1, 1); - - gtk_widget_show (label_SndDevice); - - //sample rate - line++; - gwidget->SndSampleRate= gtk_combo_box_text_new (); - gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(gwidget->SndSampleRate),_("Dev. Default")); - for( i=1; stdSampleRates[i] > 0; i++ ) - { - char dst[8]; - g_snprintf(dst,7,"%d",stdSampleRates[i]); - gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(gwidget->SndSampleRate),dst); - } - if (global->Sound_SampRateInd>(i-1)) global->Sound_SampRateInd=0; /*out of range*/ - - gtk_widget_set_halign (gwidget->SndSampleRate, GTK_ALIGN_FILL); - gtk_widget_set_hexpand (gwidget->SndSampleRate, TRUE); - gtk_grid_attach(GTK_GRID(table3), gwidget->SndSampleRate, 1, line, 1, 1); - gtk_widget_show (gwidget->SndSampleRate); - - global->Sound_SampRate=stdSampleRates[global->Sound_SampRateInd]; - gtk_combo_box_set_active(GTK_COMBO_BOX(gwidget->SndSampleRate),global->Sound_SampRateInd); /*device default*/ - - if (global->Sound_enable) gtk_widget_set_sensitive (gwidget->SndSampleRate, TRUE); - else gtk_widget_set_sensitive (gwidget->SndSampleRate, FALSE); - g_signal_connect (GTK_COMBO_BOX_TEXT(gwidget->SndSampleRate), "changed", - G_CALLBACK (SndSampleRate_changed), all_data); - - label_SndSampRate = gtk_label_new(_("Sample Rate:")); - gtk_misc_set_alignment (GTK_MISC (label_SndSampRate), 1, 0.5); - - gtk_grid_attach (GTK_GRID(table3), label_SndSampRate, 0, line, 1, 1); - - gtk_widget_show (label_SndSampRate); - - //channels - line++; - gwidget->SndNumChan= gtk_combo_box_text_new (); - gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(gwidget->SndNumChan),_("Dev. Default")); - gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(gwidget->SndNumChan),_("1 - mono")); - gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(gwidget->SndNumChan),_("2 - stereo")); - - gtk_widget_set_halign (gwidget->SndNumChan, GTK_ALIGN_FILL); - gtk_widget_set_hexpand (gwidget->SndNumChan, TRUE); - gtk_grid_attach(GTK_GRID(table3), gwidget->SndNumChan, 1, line, 1, 1); - gtk_widget_show (gwidget->SndNumChan); - switch (global->Sound_NumChanInd) - { - case 0: - //device default - gtk_combo_box_set_active(GTK_COMBO_BOX(gwidget->SndNumChan),0); - break; - - case 1: - //mono - gtk_combo_box_set_active(GTK_COMBO_BOX(gwidget->SndNumChan),1); - global->Sound_NumChan=1; - break; - - case 2: - //stereo - gtk_combo_box_set_active(GTK_COMBO_BOX(gwidget->SndNumChan),2); - global->Sound_NumChan=2; - break; - - default: - //set Default to NUM_CHANNELS - global->Sound_NumChan=NUM_CHANNELS; - break; - } - if (global->Sound_enable) gtk_widget_set_sensitive (gwidget->SndNumChan, TRUE); - else gtk_widget_set_sensitive (gwidget->SndNumChan, FALSE); - g_signal_connect (GTK_COMBO_BOX_TEXT(gwidget->SndNumChan), "changed", - G_CALLBACK (SndNumChan_changed), all_data); - - label_SndNumChan = gtk_label_new(_("Channels:")); - gtk_misc_set_alignment (GTK_MISC (label_SndNumChan), 1, 0.5); - - gtk_grid_attach (GTK_GRID(table3), label_SndNumChan, 0, line, 1, 1); - gtk_widget_show (label_SndNumChan); - if (global->debug) g_print("SampleRate:%d Channels:%d\n",global->Sound_SampRate,global->Sound_NumChan); - - /** sound format - * this is now done in the video menu - */ - //line++; - //gwidget->SndComp = gtk_combo_box_text_new (); - /**sets to valid only existing codecs*/ - //int num_codecs = setAcodecVal(); - //int acodec_ind =0; - //for (acodec_ind =0; acodec_ind < num_codecs; acodec_ind++) - //{ - // gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(gwidget->SndComp),gettext(get_aud_desc4cc(acodec_ind))); - //} - - //gtk_combo_box_set_active(GTK_COMBO_BOX(gwidget->SndComp), global->AudCodec); - //global->Sound_Format = get_aud4cc(global->AudCodec); /*sync index returned with format*/ - - //if (global->Sound_enable) gtk_widget_set_sensitive (gwidget->SndComp, TRUE); - - //g_signal_connect (GTK_COMBO_BOX_TEXT(gwidget->SndComp), "changed", - // G_CALLBACK (SndComp_changed), all_data); - - //gtk_widget_set_halign (gwidget->SndComp, GTK_ALIGN_FILL); - //gtk_widget_set_hexpand (gwidget->SndComp, TRUE); - //gtk_grid_attach(GTK_GRID(table3), gwidget->SndComp, 1, line, 1, 1); - - //gtk_widget_show (gwidget->SndComp); - //label_SndComp = gtk_label_new(_("Audio Format:")); - //gtk_misc_set_alignment (GTK_MISC (label_SndComp), 1, 0.5); - - //gtk_grid_attach (GTK_GRID(table3), label_SndComp, 0, line, 1, 1); - //gtk_widget_show (label_SndComp); - - /** lavc codec properties button - * this is now done in the video menu - */ - //gwidget->lavc_aud_button = gtk_button_new_with_label (_("properties")); - //gtk_grid_attach (GTK_GRID(table3), gwidget->lavc_aud_button, 2, line, 1, 1); - //gtk_widget_show (gwidget->lavc_aud_button); - //g_signal_connect (GTK_BUTTON(gwidget->lavc_aud_button), "clicked", - // G_CALLBACK (lavc_audio_properties), all_data); - //gtk_widget_set_sensitive (gwidget->lavc_aud_button, isLavcACodec(get_ind_by4cc(global->Sound_Format))); - - // Audio effects - line++; - label_audioFilters = gtk_label_new(_("---- Audio Effects ----")); - gtk_misc_set_alignment (GTK_MISC (label_audioFilters), 0.5, 0.5); - - gtk_grid_attach (GTK_GRID(table3), label_audioFilters, 0, line, 3, 1); - gtk_widget_show (label_audioFilters); - - line++; - table_snd_eff = gtk_grid_new(); - gtk_grid_set_row_spacing (GTK_GRID (table_snd_eff), 4); - gtk_grid_set_column_spacing (GTK_GRID (table_snd_eff), 4); - gtk_container_set_border_width (GTK_CONTAINER (table_snd_eff), 4); - gtk_widget_set_size_request (table_snd_eff, -1, -1); - - gtk_widget_set_halign (table_snd_eff, GTK_ALIGN_FILL); - gtk_widget_set_hexpand (table_snd_eff, TRUE); - gtk_grid_attach (GTK_GRID(table3), table_snd_eff, 0, line, 3, 1); - gtk_widget_show (table_snd_eff); - - // Echo - EffEchoEnable=gtk_check_button_new_with_label (_(" Echo")); - g_object_set_data (G_OBJECT (EffEchoEnable), "effect_info", GINT_TO_POINTER(SND_ECHO)); - gtk_widget_set_halign (EffEchoEnable, GTK_ALIGN_FILL); - gtk_widget_set_hexpand (EffEchoEnable, TRUE); - gtk_grid_attach(GTK_GRID(table_snd_eff), EffEchoEnable, 0, 0, 1, 1); - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(EffEchoEnable),(pdata->snd_Flags & SND_ECHO)>0); - gtk_widget_show (EffEchoEnable); - g_signal_connect (GTK_CHECK_BUTTON(EffEchoEnable), "toggled", - G_CALLBACK (EffEnable_changed), all_data); - - // FUZZ - EffFuzzEnable=gtk_check_button_new_with_label (_(" Fuzz")); - g_object_set_data (G_OBJECT (EffFuzzEnable), "effect_info", GINT_TO_POINTER(SND_FUZZ)); - gtk_widget_set_halign (EffFuzzEnable, GTK_ALIGN_FILL); - gtk_widget_set_hexpand (EffFuzzEnable, TRUE); - gtk_grid_attach(GTK_GRID(table_snd_eff), EffFuzzEnable, 1, 0, 1, 1); - - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(EffFuzzEnable),(pdata->snd_Flags & SND_FUZZ)>0); - gtk_widget_show (EffFuzzEnable); - g_signal_connect (GTK_CHECK_BUTTON(EffFuzzEnable), "toggled", - G_CALLBACK (EffEnable_changed), all_data); - - // Reverb - EffRevEnable=gtk_check_button_new_with_label (_(" Reverb")); - g_object_set_data (G_OBJECT (EffRevEnable), "effect_info", GINT_TO_POINTER(SND_REVERB)); - gtk_widget_set_halign (EffRevEnable, GTK_ALIGN_FILL); - gtk_widget_set_hexpand (EffRevEnable, TRUE); - gtk_grid_attach(GTK_GRID(table_snd_eff), EffRevEnable, 2, 0, 1, 1); - - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(EffRevEnable),(pdata->snd_Flags & SND_REVERB)>0); - gtk_widget_show (EffRevEnable); - g_signal_connect (GTK_CHECK_BUTTON(EffRevEnable), "toggled", - G_CALLBACK (EffEnable_changed), all_data); - - // WahWah - EffWahEnable=gtk_check_button_new_with_label (_(" WahWah")); - g_object_set_data (G_OBJECT (EffWahEnable), "effect_info", GINT_TO_POINTER(SND_WAHWAH)); - gtk_widget_set_halign (EffWahEnable, GTK_ALIGN_FILL); - gtk_widget_set_hexpand (EffWahEnable, TRUE); - gtk_grid_attach(GTK_GRID(table_snd_eff), EffWahEnable, 3, 0, 1, 1); - - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(EffWahEnable),(pdata->snd_Flags & SND_WAHWAH)>0); - gtk_widget_show (EffWahEnable); - g_signal_connect (GTK_CHECK_BUTTON(EffWahEnable), "toggled", - G_CALLBACK (EffEnable_changed), all_data); - - // Ducky - EffDuckyEnable=gtk_check_button_new_with_label (_(" Ducky")); - g_object_set_data (G_OBJECT (EffDuckyEnable), "effect_info", GINT_TO_POINTER(SND_DUCKY)); - gtk_widget_set_halign (EffDuckyEnable, GTK_ALIGN_FILL); - gtk_widget_set_hexpand (EffDuckyEnable, TRUE); - gtk_grid_attach(GTK_GRID(table_snd_eff), EffDuckyEnable, 4, 0, 1, 1); - - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(EffDuckyEnable),(pdata->snd_Flags & SND_DUCKY)>0); - gtk_widget_show (EffDuckyEnable); - g_signal_connect (GTK_CHECK_BUTTON(EffDuckyEnable), "toggled", - G_CALLBACK (EffEnable_changed), all_data); - -} diff -Nru guvcview-1.7.3/src/audio_tab.h guvcview-2.0.1+ubuntu1~ppa1/src/audio_tab.h --- guvcview-1.7.3/src/audio_tab.h 2014-03-24 22:56:28.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/src/audio_tab.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,30 +0,0 @@ -/*******************************************************************************# -# guvcview http://guvcview.sourceforge.net # -# # -# Paulo Assis # -# Nobuhiro Iwamatsu # -# Add UYVY color support(Macbook iSight) # -# # -# This program is free software; you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation; either version 2 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program; if not, write to the Free Software # -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# # -********************************************************************************/ -#ifndef AUDIO_TAB_H -#define AUDIO_TAB_H - -#include "guvcview.h" -//------------------------- Audio Tab --------------------------------- -void audio_tab(struct ALL_DATA *all_data); - -#endif diff -Nru guvcview-1.7.3/src/autofocus.c guvcview-2.0.1+ubuntu1~ppa1/src/autofocus.c --- guvcview-1.7.3/src/autofocus.c 2014-03-24 22:56:28.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/src/autofocus.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,513 +0,0 @@ -/*******************************************************************************# -# guvcview http://guvcview.sourceforge.net # -# # -# Paulo Assis # -# Dr. Alexander K. Seewald # -# # -# This program is free software; you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation; either version 2 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program; if not, write to the Free Software # -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# # -********************************************************************************/ - -/*******************************************************************************# -# # -# autofocus - using dct # -# # -# # -********************************************************************************/ - -#include "autofocus.h" -#include "dct.h" -#include "defs.h" -#include "ms_time.h" -#include -#include -#include -#include -#include - -/*use insert sort - it's the fastest for small and almost sorted arrays (our case)*/ -#define SORT (3) //1 - Quick sort 2 - Shell sort 3- insert sort other - bubble sort - -#define _TH_ (80) // default treshold = 1/80 of focus sharpness value - -#define FLAT (0) -#define LOCAL_MAX (1) -#define LEFT (2) -#define RIGHT (3) -#define INCSTEP (4) - -#define SWAP(x, y) temp = (x); (x) = (y); (y) = temp - -static double sumAC[64]; -static int ACweight[64] = { - 0,1,2,3,4,5,6,7, - 1,1,2,3,4,5,6,7, - 2,2,2,3,4,5,6,7, - 3,3,3,3,4,5,6,7, - 4,4,4,4,4,5,6,7, - 5,5,5,5,5,5,6,7, - 7,7,7,7,7,7,7,7 -}; - -struct focusData *initFocusData (int f_max, int f_min, int step, int id) -{ - struct focusData *AFdata = g_new0(struct focusData, 1); - if(AFdata == NULL) - return (AFdata); - AFdata->id = id; - AFdata->f_max = f_max; - AFdata->f_min = f_min; - AFdata->f_step = step; - AFdata->i_step = (f_max + 1 - f_min)/32; - if(AFdata->i_step <= step) AFdata->i_step = step * 2; - //g_print("focus step:%i\n", AFdata->i_step); - AFdata->right = f_max; - AFdata->left = f_min + AFdata->i_step; /*start with focus at 8*/ - AFdata->focus = -1; - AFdata->focus_wait = 0; - memset(sumAC,0,64); - /*all other values are 0 */ - return (AFdata); -} - -#if (SORT == 1) -/*quick sort (the fastest and more complex - recursive, doesn't do well on almost sorted data)*/ -static void q_sort(struct focusData *AFdata, int left, int right) -{ - int pivot, l_hold, r_hold, temp; - - l_hold = left; - r_hold = right; - pivot = AFdata->arr_sharp[left]; - temp = AFdata->arr_foc[left]; - - while(left < right) - { - while((AFdata->arr_sharp[right] >= pivot) && (left < right)) - right--; - if (left != right) - { - AFdata->arr_sharp[left] = AFdata->arr_sharp[right]; - AFdata->arr_foc[left] = AFdata->arr_foc[right]; - left++; - } - while((AFdata->arr_sharp[left] <= pivot) && (left < right)) - left++; - if (left != right) - { - AFdata->arr_sharp[right] = AFdata->arr_sharp[left]; - AFdata->arr_foc[right] = AFdata->arr_foc[left]; - right--; - } - } - AFdata->arr_sharp[left] = pivot; - AFdata->arr_foc[left] = temp; - pivot = left; - left = l_hold; - right = r_hold; - if (left < pivot) q_sort(AFdata, left, pivot-1); - if (right > pivot) q_sort(AFdata, pivot+1, right); -} -#elif (SORT == 2) -/* shell sort (based on insert sort, but with some optimization)*/ -/* for small arrays insert sort is still faster */ -void s_sort(struct focusData *AFdata, int size) -{ - int i, j, temp, gap; - - for (gap = size / 2; gap > 0; gap /= 2) - { - for (i = gap; i <= size; i++) - { - for (j = i-gap; j >= 0 && (AFdata->arr_sharp[j] > AFdata->arr_sharp[j + gap]); j -= gap) - { - SWAP(AFdata->arr_sharp[j], AFdata->arr_sharp[j + gap]); - SWAP(AFdata->arr_foc[j], AFdata->arr_foc[j + gap]); - } - } - } -} - -#elif (SORT == 3) -/*insert sort (fastest for small arrays, around 15 elements)*/ -static void i_sort (struct focusData *AFdata, int size) -{ - int i,j,temp; - - for (i = 1; i <= size; i++) - { - for(j = i; j > 0 && (AFdata->arr_sharp[j-1] > AFdata->arr_sharp[j]); j--) - { - SWAP(AFdata->arr_sharp[j],AFdata->arr_sharp[j-1]); - SWAP(AFdata->arr_foc[j],AFdata->arr_foc[j-1]); - } - } -} - -#else -/*buble sort (the simplest and most inefficient) - in real test with focus data*/ -/*it did better than shell or quick sort (focus data is almost sorted)*/ -static void b_sort (struct focusData *AFdata, int size) -{ - int i, temp, swapped; - - do - { - swapped = 0; - size--; - for (i=0;i<=size;i++) - { - if (AFdata->arr_sharp[i+1] < AFdata->arr_sharp[i]) - { - SWAP(AFdata->arr_sharp[i],AFdata->arr_sharp[i+1]); - SWAP(AFdata->arr_foc[i],AFdata->arr_foc[i+1]); - swapped = 1; - } - } - } while (swapped); -} -#endif - -static int Sort(struct focusData *AFdata, int size) -{ - if (size>=20) - { - g_printerr("WARNING: focus array size=%d exceeds 20\n",size); - size = 10; - } -#if (SORT == 1) - q_sort(AFdata, 0, size); -#elif (SORT == 2) - s_sort(AFdata, size); -#elif (SORT == 3) - i_sort(AFdata, size); -#else - b_sort(AFdata, size); -#endif - /*better focus value*/ - return(AFdata->arr_foc[size]); -} - -/* extract lum (y) data from image (YUYV) */ -/* img - image data pointer */ -/* dataY - pointer for lum (y) data */ -/* width - width of img (in pixels) */ -/* height - height of img (in pixels) */ -static INT16* extractY (BYTE* img, INT16* dataY, int width, int height) -{ - int i=0; - BYTE *pimg; - pimg=img; - - for (i=0;i<(height*width);i++) - { - dataY[i]=(INT16) *pimg++; - pimg++; - } - - return (dataY); -} - -/* measure sharpness in MCU */ -/* data - MCU data [8x8] */ -/* t - highest order coef. */ -static void getSharpnessMCU (INT16 *data, double weight) -{ - - int i=0; - int j=0; - - levelshift (data); - DCT (data); - - for (i=0;i<8;i++) - { - for(j=0;j<8;j++) - { - sumAC[i*8+j]+=data[i*8+j]*data[i*8+j]*weight; - } - } -} - -/* sharpness in focus window */ -int getSharpness (BYTE* img, int width, int height, int t) -{ - float res=0; - int numMCUx = width/(8*2); /*covers 1/2 of width - width should be even*/ - int numMCUy = height/(8*2); /*covers 1/2 of height- height should be even*/ - INT16 dataMCU[64]; - INT16* data; - INT16 dataY[width*height]; - INT16 *Y = dataY; - - double weight; - double xp_; - double yp_; - int ctx = numMCUx >> 1; /*center*/ - int cty = numMCUy >> 1; - double rad=ctx/2; - if (cty>1)+i)*width - +(((width-(numMCUx-(xp*2))*8)>>1)+j)]; - } - } - getSharpnessMCU(data,weight); - cnt2++; - } - } - - for (i=0;i<=t;i++) - { - for(j=0;jfocus_sharpness < (5 * _TH_)) TH = _TH_ * 4 ; - - if (AFdata->step <= AFdata->i_step) - { - if (abs((AFdata->sharpLeft-AFdata->focus_sharpness)<(AFdata->focus_sharpness/TH)) && - (abs(AFdata->sharpRight-AFdata->focus_sharpness)<(AFdata->focus_sharpness/TH))) - { - return (FLAT); - } - else if (((AFdata->focus_sharpness-AFdata->sharpRight))>=(AFdata->focus_sharpness/TH) && - ((AFdata->focus_sharpness-AFdata->sharpLeft))>=(AFdata->focus_sharpness/TH)) - { - // significantly down in both directions -> check another step - // outside for local maximum - //AFdata->step=16; - return (INCSTEP); - } - else - { - // one is significant, the other is not... - int left=0; int right=0; - if (abs((AFdata->sharpLeft-AFdata->focus_sharpness))>=(AFdata->focus_sharpness/TH)) - { - if (AFdata->sharpLeft>AFdata->focus_sharpness) left++; - else right++; - } - if (abs((AFdata->sharpRight-AFdata->focus_sharpness))>=(AFdata->focus_sharpness/TH)) - { - if (AFdata->sharpRight>AFdata->focus_sharpness) right++; - else left++; - } - if (left==right) return (FLAT); - else if (left>right) return (LEFT); - else return (RIGHT); - } - } - else - { - if (((AFdata->focus_sharpness-AFdata->sharpRight))>=(AFdata->focus_sharpness/TH) && - ((AFdata->focus_sharpness-AFdata->sharpLeft))>=(AFdata->focus_sharpness/TH)) - { - return (LOCAL_MAX); - } - else - { - return (FLAT); - } - } -} - -int getFocusVal (struct focusData *AFdata) -{ - int step = AFdata->i_step * 2; - int step2 = AFdata->i_step / 2; - if (step2 <= 0 ) step2 = 1; - int focus=0; - - switch (AFdata->flag) - { - /*--------- first time - run sharpness algorithm -----------------*/ - if(AFdata->ind >= 20) - { - g_printerr ("WARNING ind=%d exceeds 20\n",AFdata->ind); - AFdata->ind = 10; - } - - case 0: /*sample left to right at higher step*/ - AFdata->arr_sharp[AFdata->ind] = AFdata->sharpness; - AFdata->arr_foc[AFdata->ind] = AFdata->focus; - /*reached max focus value*/ - if (AFdata->focus >= AFdata->right ) - { /*get left and right from arr_sharp*/ - focus=Sort(AFdata,AFdata->ind); - /*get a window around the best value*/ - AFdata->left = (focus- step/2); - AFdata->right = (focus + step/2); - if (AFdata->left < AFdata->f_min) AFdata->left = AFdata->f_min; - if (AFdata->right > AFdata->f_max) AFdata->right = AFdata->f_max; - AFdata->focus = AFdata->left; - AFdata->ind=0; - AFdata->flag = 1; - } - else /*increment focus*/ - { - AFdata->focus=AFdata->arr_foc[AFdata->ind] + step; /*next focus*/ - AFdata->ind++; - AFdata->flag = 0; - } - break; - case 1: /*sample left to right at lower step - fine tune*/ - AFdata->arr_sharp[AFdata->ind] = AFdata->sharpness; - AFdata->arr_foc[AFdata->ind] = AFdata->focus; - /*reached window max focus*/ - if (AFdata->focus >= AFdata->right ) - { /*get left and right from arr_sharp*/ - focus=Sort(AFdata,AFdata->ind); - /*get the best value*/ - AFdata->focus = focus; - AFdata->focus_sharpness = AFdata->arr_sharp[AFdata->ind]; - AFdata->step = AFdata->i_step; /*first step for focus tracking*/ - AFdata->focusDir = FLAT; /*no direction for focus*/ - AFdata->flag = 2; - } - else /*increment focus*/ - { - AFdata->focus=AFdata->arr_foc[AFdata->ind] + step2; /*next focus*/ - AFdata->ind++; - AFdata->flag = 1; - } - break; - case 2: /* set treshold in order to sharpness*/ - if (AFdata->setFocus) - { - /*reset*/ - AFdata->setFocus = 0; - AFdata->flag= 0; - AFdata->right = AFdata->f_max; - AFdata->left = AFdata->f_min + AFdata->i_step; - AFdata->ind = 0; - } - else - { - /*track focus*/ - AFdata->focus_sharpness = AFdata->sharpness; - AFdata->flag = 3; - AFdata->sharpLeft = 0; - AFdata->sharpRight = 0; - AFdata->focus += AFdata->step; /*check right*/ - } - break; - case 3: - /*track focus*/ - AFdata->flag = 4; - AFdata->sharpRight = AFdata->sharpness; - AFdata->focus -= (2*AFdata->step); /*check left*/ - break; - case 4: - /*track focus*/ - AFdata->sharpLeft=AFdata->sharpness; - int ret=0; - ret=checkFocus(AFdata); - switch (ret) - { - case LOCAL_MAX: - AFdata->focus += AFdata->step; /*return to orig. focus*/ - AFdata->step = AFdata->i_step; - AFdata->flag = 2; - break; - - case FLAT: - if(AFdata->focusDir == FLAT) - { - AFdata->step = AFdata->i_step; - if(AFdata->focus_sharpness < 4 * _TH_) - { - /* 99% chance we lost focus */ - /* move focus to half the range */ - AFdata->focus = AFdata->f_max / 2; - } - else - { - AFdata->focus += AFdata->step; /*return to orig. focus*/ - } - AFdata->flag = 2; - } - else if (AFdata->focusDir == RIGHT) - { - AFdata->focus += 2*AFdata->step; /*go right*/ - AFdata->step = AFdata->i_step; - AFdata->flag = 2; - } - else - { /*go left*/ - AFdata->step = AFdata->i_step; - AFdata->flag = 2; - } - break; - - case RIGHT: - AFdata->focus += 2*AFdata->step; /*go right*/ - AFdata->flag = 2; - break; - - case LEFT: - /*keep focus on left*/ - AFdata->flag = 2; - break; - - case INCSTEP: - AFdata->focus += AFdata->step; /*return to orig. focus*/ - AFdata->step = 2 * AFdata->i_step; - AFdata->flag = 2; - break; - } - break; - } - /*clip focus, right and left*/ - AFdata->focus=(AFdata->focus > AFdata->f_max) ? AFdata->f_max : ((AFdata->focus < AFdata->f_min) ? AFdata->f_min : AFdata->focus); - AFdata->right=(AFdata->right > AFdata->f_max) ? AFdata->f_max : ((AFdata->right < AFdata->f_min) ? AFdata->f_min : AFdata->right); - AFdata->left =(AFdata->left > AFdata->f_max) ? AFdata->f_max : ((AFdata->left < AFdata->f_min) ? AFdata->f_min : AFdata->left); - - return AFdata->focus; -} diff -Nru guvcview-1.7.3/src/autofocus.h guvcview-2.0.1+ubuntu1~ppa1/src/autofocus.h --- guvcview-1.7.3/src/autofocus.h 2014-03-24 22:56:28.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/src/autofocus.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,71 +0,0 @@ -/*******************************************************************************# -# guvcview http://guvcview.sourceforge.net # -# # -# Paulo Assis # -# Dr. Alexander K. Seewald # -# # -# This program is free software; you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation; either version 2 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program; if not, write to the Free Software # -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# # -********************************************************************************/ - -/*******************************************************************************# -# # -# autofocus - using dct for sharpness measure # -# # -# # -********************************************************************************/ - -#ifndef AUTOFOCUS_H -#define AUTOFOCUS_H - -#include "defs.h" - -#define MAX_ARR_S 20 - -struct focusData -{ - int focus; - int step; - int old_focus; - int right; - int left; - int sharpness; - int focus_sharpness; - int sharpLeft; - int sharpRight; - int id; - int f_max; - int f_min; - int f_step; - int i_step; - int focusDir; - int arr_sharp[MAX_ARR_S]; - int arr_foc[MAX_ARR_S]; - int ind; - int flag; - int setFocus; - int focus_wait; -}; - -struct focusData *initFocusData (int f_max, int f_min, int step, int id); - -int getSharpness (BYTE* img, int width, int height, int t); - -int getSharpMeasure (BYTE *img, int width, int height, int t); - -int getFocusVal (struct focusData *AFdata); - -#endif - diff -Nru guvcview-1.7.3/src/avilib.c guvcview-2.0.1+ubuntu1~ppa1/src/avilib.c --- guvcview-1.7.3/src/avilib.c 2014-03-24 22:56:28.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/src/avilib.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,978 +0,0 @@ -/*******************************************************************************# -# guvcview http://guvcview.sourceforge.net # -# # -# Paulo Assis # -# # -# This program is free software; you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation; either version 2 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program; if not, write to the Free Software # -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# # -********************************************************************************/ -/*******************************************************************************# -# Some utilities for writing and reading AVI files. # -# These are not intended to serve for a full blown # -# AVI handling software (this would be much too complex) # -# The only intention is to write out MJPEG encoded # -# AVIs with sound and to be able to read them back again. # -# These utilities should work with other types of codecs too, however. # -# # -# Copyright (C) 1999 Rainer Johanni # -********************************************************************************/ -/* Paulo Assis (6-4-2008): removed reading functions, cleaned build wranings */ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include "config.h" -#include "avilib.h" -#include "defs.h" -#include "lavc_common.h" -#include "file_io.h" - -/******************************************************************* - * * - * Utilities for writing an AVI File * - * based for the most part in the avi encoder from libavformat * - *******************************************************************/ - -#ifndef O_BINARY -/* win32 wants a binary flag to open(); this sets it to null - on platforms that don't have it. */ -#define O_BINARY 0 -#endif - -#define INFO_LIST - -//#define MAX_INFO_STRLEN 64 -//static char id_str[MAX_INFO_STRLEN]; - -#ifndef PACKAGE -#define PACKAGE "guvcview" -#endif -#ifndef VERSION -#define VERSION "1.0" -#endif - -#define __MUTEX &AVI->mutex - -#define AVI_INDEX_CLUSTER_SIZE 16384 - -#define AVIF_HASINDEX 0x00000010 /* Index at end of file */ -#define AVIF_MUSTUSEINDEX 0x00000020 -#define AVIF_ISINTERLEAVED 0x00000100 -#define AVIF_TRUSTCKTYPE 0x00000800 /* Use CKType to find key frames */ -#define AVIF_WASCAPTUREFILE 0x00010000 -#define AVIF_COPYRIGHTED 0x00020000 - -#define AVI_MAX_RIFF_SIZE 0x40000000LL /*1Gb = 0x40000000LL*/ -#define AVI_MASTER_INDEX_SIZE 256 -#define AVI_MAX_STREAM_COUNT 10 - -/* index flags */ -#define AVIIF_INDEX 0x10 - -// bIndexType codes -// -#define AVI_INDEX_OF_INDEXES 0x00 // when each entry in aIndex - // array points to an index chunk - -#define AVI_INDEX_OF_CHUNKS 0x01 // when each entry in aIndex - // array points to a chunk in the file - -#define AVI_INDEX_IS_DATA 0x80 // when each entry is aIndex is - // really the data - // bIndexSubtype codes for INDEX_OF_CHUNKS - -#define AVI_INDEX_2FIELD 0x01 // when fields within frames - // are also indexed - - -int64_t avi_open_tag (avi_Context* AVI, const char *tag) -{ - io_write_4cc(AVI->writer, tag); - io_write_wl32(AVI->writer, 0); - return io_get_offset(AVI->writer); -} - -static void avi_close_tag(avi_Context* AVI, int64_t start_pos) -{ - int64_t current_offset = io_get_offset(AVI->writer); - int32_t size = (int32_t) (current_offset - start_pos); - io_seek(AVI->writer, start_pos-4); - io_write_wl32(AVI->writer, size); - io_seek(AVI->writer, current_offset); - - fprintf(stderr, "AVI:(%" PRIu64 ") closing tag at %" PRIu64 " with size %i\n",current_offset, start_pos-4, size); - -} - -/* Calculate audio sample size from number of bits and number of channels. - This may have to be adjusted for eg. 12 bits and stereo */ - -static int avi_audio_sample_size(io_Stream* stream) -{ - if(stream->type != STREAM_TYPE_AUDIO) - return -1; - - int s; - if (stream->a_fmt != WAVE_FORMAT_PCM) - { - s = 4; - } - else - { - s = ((stream->a_bits+7)/8)*stream->a_chans; - if(s<4) s=4; /* avoid possible zero divisions */ - } - return s; -} - -static char* avi_stream2fourcc(char* tag, io_Stream* stream) -{ - tag[0] = '0' + (stream->id)/10; - tag[1] = '0' + (stream->id)%10; - switch(stream->type) - { - case STREAM_TYPE_VIDEO: - tag[2] = 'd'; - tag[3] = 'c'; - break; - case STREAM_TYPE_SUB: - // note: this is not an official code - tag[2] = 's'; - tag[3] = 'b'; - break; - default: //audio - tag[2] = 'w'; - tag[3] = 'b'; - break; - } - tag[4] = '\0'; - return tag; -} - -void avi_put_main_header(avi_Context* AVI, avi_RIFF* riff) -{ - AVI->fps = get_first_video_stream(AVI->stream_list)->fps; - int width = get_first_video_stream(AVI->stream_list)->width; - int height = get_first_video_stream(AVI->stream_list)->height; - int time_base_num = AVI->time_base_num; - int time_base_den = AVI->time_base_den; - - uint32_t data_rate = 0; - if(time_base_den > 0 || time_base_num > 0) //these are not set yet so it's always false - data_rate = (uint32_t) (INT64_C(1000000) * time_base_num/time_base_den); - else - fprintf(stderr, "AVI: bad time base (%i/%i): set it later", time_base_num, time_base_den); - - /*do not force index yet -only when closing*/ - /*this should prevent bad avi files even if it is not closed properly*/ - //if(hasIndex) flag |= AVIF_HASINDEX; - //if(hasIndex && AVI->must_use_index) flag |= AVIF_MUSTUSEINDEX; - AVI->avi_flags = AVIF_WASCAPTUREFILE; - - int64_t avih = avi_open_tag(AVI, "avih"); // main avi header - riff->time_delay_off = io_get_offset(AVI->writer); - io_write_wl32(AVI->writer, 1000000 / FRAME_RATE_SCALE); // time per frame (milisec) - io_write_wl32(AVI->writer, data_rate); // data rate - io_write_wl32(AVI->writer, 0); // Padding multiple size (2048) - io_write_wl32(AVI->writer, AVI->avi_flags); // parameter Flags - //riff->frames_hdr_all = io_get_offset(AVI->writer); - io_write_wl32(AVI->writer, 0); // number of video frames - io_write_wl32(AVI->writer, 0); // number of preview frames - io_write_wl32(AVI->writer, AVI->stream_list_size); // number of data streams (audio + video)*/ - io_write_wl32(AVI->writer, 1024*1024); // suggested playback buffer size (bytes) - io_write_wl32(AVI->writer, width); // width - io_write_wl32(AVI->writer, height); // height - io_write_wl32(AVI->writer, 0); // time scale: unit used to measure time (30) - io_write_wl32(AVI->writer, 0); // data rate (frame rate * time scale) - io_write_wl32(AVI->writer, 0); // start time (0) - io_write_wl32(AVI->writer, 0); // size of AVI data chunk (in scale units) - avi_close_tag(AVI, avih); //write the chunk size -} - -int64_t avi_put_bmp_header(avi_Context* AVI, io_Stream* stream) -{ - int frate = 15*FRAME_RATE_SCALE; - if(stream->fps > 0.001) - frate = (int) ((FRAME_RATE_SCALE*(stream->fps)) + 0.5); - - int64_t strh = avi_open_tag(AVI, "strh");// video stream header - io_write_4cc(AVI->writer, "vids"); // stream type - io_write_4cc(AVI->writer, stream->compressor); // Handler (VIDEO CODEC) - io_write_wl32(AVI->writer, 0); // Flags - io_write_wl16(AVI->writer, 0); // stream priority - io_write_wl16(AVI->writer, 0); // language tag - io_write_wl32(AVI->writer, 0); // initial frames - io_write_wl32(AVI->writer, FRAME_RATE_SCALE); // Scale - stream->rate_hdr_strm = io_get_offset(AVI->writer); //store this to set proper fps - io_write_wl32(AVI->writer, frate); // Rate: Rate/Scale == sample/second (fps) */ - io_write_wl32(AVI->writer, 0); // start time - stream->frames_hdr_strm = io_get_offset(AVI->writer); - io_write_wl32(AVI->writer, 0); // lenght of stream - io_write_wl32(AVI->writer, 1024*1024); // suggested playback buffer size - io_write_wl32(AVI->writer, -1); // Quality - io_write_wl32(AVI->writer, 0); // SampleSize - io_write_wl16(AVI->writer, 0); // rFrame (left) - io_write_wl16(AVI->writer, 0); // rFrame (top) - io_write_wl16(AVI->writer, stream->width); // rFrame (right) - io_write_wl16(AVI->writer, stream->height); // rFrame (bottom) - avi_close_tag(AVI, strh); //write the chunk size - - return strh; -} - -int64_t avi_put_wav_header(avi_Context* AVI, io_Stream* stream) -{ - int sampsize = avi_audio_sample_size(stream); - - int64_t strh = avi_open_tag(AVI, "strh");// audio stream header - io_write_4cc(AVI->writer, "auds"); - io_write_wl32(AVI->writer, 1); // codec tag on strf - io_write_wl32(AVI->writer, 0); // Flags - io_write_wl16(AVI->writer, 0); // stream priority - io_write_wl16(AVI->writer, 0); // language tag - io_write_wl32(AVI->writer, 0); // initial frames - stream->rate_hdr_strm = io_get_offset(AVI->writer); - io_write_wl32(AVI->writer, sampsize/4); // Scale - io_write_wl32(AVI->writer, stream->mpgrate/8); // Rate: Rate/Scale == sample/second (fps) */ - io_write_wl32(AVI->writer, 0); // start time - stream->frames_hdr_strm = io_get_offset(AVI->writer); - io_write_wl32(AVI->writer, 0); // lenght of stream - io_write_wl32(AVI->writer, 12*1024); // suggested playback buffer size - io_write_wl32(AVI->writer, -1); // Quality - io_write_wl32(AVI->writer, sampsize/4); // SampleSize - io_write_wl16(AVI->writer, 0); // rFrame (left) - io_write_wl16(AVI->writer, 0); // rFrame (top) - io_write_wl16(AVI->writer, 0); // rFrame (right) - io_write_wl16(AVI->writer, 0); // rFrame (bottom) - avi_close_tag(AVI, strh); //write the chunk size - - return strh; -} - -void avi_put_vstream_format_header(avi_Context* AVI, io_Stream* stream) -{ - int vxd_size = stream->extra_data_size; - int vxd_size_align = (stream->extra_data_size+1) & ~1; - - int64_t strf = avi_open_tag(AVI, "strf"); // stream format header - io_write_wl32(AVI->writer, 40 + vxd_size); // sruct Size - io_write_wl32(AVI->writer, stream->width); // Width - io_write_wl32(AVI->writer, stream->height); // Height - io_write_wl16(AVI->writer, 1); // Planes - io_write_wl16(AVI->writer, 24); // Count - bitsperpixel - 1,4,8 or 24 32 - if(strncmp(stream->compressor,"DIB",3)==0) - io_write_wl32(AVI->writer, 0); // Compression - else - io_write_4cc(AVI->writer, stream->compressor); - io_write_wl32(AVI->writer, stream->width*stream->height*3);// image size (in bytes?) - io_write_wl32(AVI->writer, 0); // XPelsPerMeter - io_write_wl32(AVI->writer, 0); // YPelsPerMeter - io_write_wl32(AVI->writer, 0); // ClrUsed: Number of colors used - io_write_wl32(AVI->writer, 0); // ClrImportant: Number of colors important - // write extradata (codec private) - if (vxd_size > 0 && stream->extra_data) - { - io_write_buf(AVI->writer, stream->extra_data, vxd_size); - if (vxd_size != vxd_size_align) - { - io_write_w8(AVI->writer, 0); //align - } - } - avi_close_tag(AVI, strf); //write the chunk size -} - -void avi_put_astream_format_header(avi_Context* AVI, io_Stream* stream) -{ - int axd_size = stream->extra_data_size; - int axd_size_align = (stream->extra_data_size+1) & ~1; - - int sampsize = avi_audio_sample_size(stream); - - int64_t strf = avi_open_tag(AVI, "strf");// audio stream format - io_write_wl16(AVI->writer, stream->a_fmt); // Format (codec) tag - io_write_wl16(AVI->writer, stream->a_chans); // Number of channels - io_write_wl32(AVI->writer, stream->a_rate); // SamplesPerSec - io_write_wl32(AVI->writer, stream->mpgrate/8);// Average Bytes per sec - io_write_wl16(AVI->writer, sampsize/4); // BlockAlign - io_write_wl16(AVI->writer, stream->a_bits); //BitsPerSample - io_write_wl16(AVI->writer, axd_size); //size of extra data - // write extradata (codec private) - if (axd_size > 0 && stream->extra_data) - { - io_write_buf(AVI->writer, stream->extra_data, axd_size); - if (axd_size != axd_size_align) - { - io_write_w8(AVI->writer, 0); //align - } - } - avi_close_tag(AVI, strf); //write the chunk size -} - -void avi_put_vproperties_header(avi_Context* AVI, io_Stream* stream) -{ - uint32_t refresh_rate = (uint32_t) lrintf(2.0 * AVI->fps); - if(AVI->time_base_den > 0 || AVI->time_base_num > 0) //these are not set yet so it's always false - { - double time_base = AVI->time_base_num / (double) AVI->time_base_den; - refresh_rate = lrintf(1.0/time_base); - } - int vprp= avi_open_tag(AVI, "vprp"); - io_write_wl32(AVI->writer, 0); //video format = unknown - io_write_wl32(AVI->writer, 0); //video standard= unknown - io_write_wl32(AVI->writer, refresh_rate); // dwVerticalRefreshRate - io_write_wl32(AVI->writer, stream->width ); //horizontal pixels - io_write_wl32(AVI->writer, stream->height); //vertical lines - io_write_wl16(AVI->writer, stream->height); //Active Frame Aspect Ratio (4:3 - 16:9) - io_write_wl16(AVI->writer, stream->width); //Active Frame Aspect Ratio - io_write_wl32(AVI->writer, stream->width ); //Active Frame Height in Pixels - io_write_wl32(AVI->writer, stream->height); //Active Frame Height in Lines - io_write_wl32(AVI->writer, 1); //progressive FIXME - //Field Framing Information - io_write_wl32(AVI->writer, stream->height); - io_write_wl32(AVI->writer, stream->width ); - io_write_wl32(AVI->writer, stream->height); - io_write_wl32(AVI->writer, stream->width ); - io_write_wl32(AVI->writer, 0); - io_write_wl32(AVI->writer, 0); - io_write_wl32(AVI->writer, 0); - io_write_wl32(AVI->writer, 0); - - avi_close_tag(AVI, vprp); -} - -int64_t avi_create_riff_tags(avi_Context* AVI, avi_RIFF* riff) -{ - int64_t off = 0; - riff->riff_start = avi_open_tag(AVI, "RIFF"); - - if(riff->id == 1) - { - io_write_4cc(AVI->writer, "AVI "); - off = avi_open_tag(AVI, "LIST"); - io_write_4cc(AVI->writer, "hdrl"); - } - else - { - io_write_4cc(AVI->writer, "AVIX"); - off = avi_open_tag(AVI, "LIST"); - io_write_4cc(AVI->writer, "movi"); - - riff->movi_list = off; //update movi list pos for this riff - } - - return off; -} - -//only for riff id = 1 -void avi_create_riff_header(avi_Context* AVI, avi_RIFF* riff) -{ - int64_t list1 = avi_create_riff_tags(AVI, riff); - - avi_put_main_header(AVI, riff); - - int i, j = 0; - - for(j=0; j< AVI->stream_list_size; j++) - { - io_Stream* stream = get_stream(AVI->stream_list, j); - - int64_t list2 = avi_open_tag(AVI, "LIST"); - io_write_4cc(AVI->writer,"strl"); //stream list - - if(stream->type == STREAM_TYPE_VIDEO) - { - avi_put_bmp_header(AVI, stream); - avi_put_vstream_format_header(AVI, stream); - } - else - { - avi_put_wav_header(AVI, stream); - avi_put_astream_format_header(AVI, stream); - } - /* Starting to lay out AVI OpenDML master index. - * We want to make it JUNK entry for now, since we'd - * like to get away without making AVI an OpenDML one - * for compatibility reasons. - */ - char tag[5]; - avi_Index* indexes = (avi_Index*) stream->indexes; - indexes->entry = indexes->ents_allocated = 0; - indexes->indx_start = io_get_offset(AVI->writer); - int64_t ix = avi_open_tag(AVI, "JUNK"); // ’ix##’ - io_write_wl16(AVI->writer, 4); // wLongsPerEntry must be 4 (size of each entry in aIndex array) - io_write_w8(AVI->writer, 0); // bIndexSubType must be 0 (frame index) or AVI_INDEX_2FIELD - io_write_w8(AVI->writer, AVI_INDEX_OF_INDEXES); // bIndexType (0 == AVI_INDEX_OF_INDEXES) - io_write_wl32(AVI->writer, 0); // nEntriesInUse (will fill out later on) - io_write_4cc(AVI->writer, avi_stream2fourcc(tag, stream)); // dwChunkId - io_write_wl32(AVI->writer, 0); // dwReserved[3] must be 0 - io_write_wl32(AVI->writer, 0); - io_write_wl32(AVI->writer, 0); - for (i=0; i < AVI_MASTER_INDEX_SIZE; i++) - { - io_write_wl64(AVI->writer, 0); // absolute file offset, offset 0 is unused entry - io_write_wl32(AVI->writer, 0); // dwSize - size of index chunk at this offset - io_write_wl32(AVI->writer, 0); // dwDuration - time span in stream ticks - } - avi_close_tag(AVI, ix); //write the chunk size - - if(stream->type == STREAM_TYPE_VIDEO) - avi_put_vproperties_header(AVI, stream); - - avi_close_tag(AVI, list2); //write the chunk size - } - - AVI->odml_list = avi_open_tag(AVI, "JUNK"); - io_write_4cc(AVI->writer, "odml"); - io_write_4cc(AVI->writer, "dmlh"); - io_write_wl32(AVI->writer, 248); - for (i = 0; i < 248; i+= 4) - io_write_wl32(AVI->writer, 0); - avi_close_tag(AVI, AVI->odml_list); - - avi_close_tag(AVI, list1); //write the chunk size - - /* some padding for easier tag editing */ - int64_t list3 = avi_open_tag(AVI, "JUNK"); - for (i = 0; i < 1016; i += 4) - io_write_wl32(AVI->writer, 0); - avi_close_tag(AVI, list3); //write the chunk size - - riff->movi_list = avi_open_tag(AVI, "LIST"); - io_write_4cc(AVI->writer, "movi"); -} - -avi_RIFF* avi_get_last_riff(avi_Context* AVI) -{ - avi_RIFF* last_riff = AVI->riff_list; - while(last_riff->next != NULL) - last_riff = last_riff->next; - - return last_riff; -} - -avi_RIFF* avi_get_riff(avi_Context* AVI, int index) -{ - avi_RIFF* riff = AVI->riff_list; - - if(!riff) - return NULL; - - int j = 1; - - while(riff->next != NULL && (j < index)) - { - riff = riff->next; - j++; - } - - if(j != index) - return NULL; - - return riff; -} - -static void clean_indexes(avi_Context* AVI) -{ - int i=0, j=0; - - for (i=0; istream_list_size; i++) - { - io_Stream *stream = get_stream(AVI->stream_list, i); - - avi_Index* indexes = (avi_Index*) stream->indexes; - for (j=0; jents_allocated/AVI_INDEX_CLUSTER_SIZE; j++) - av_free(indexes->cluster[j]); - av_freep(&indexes->cluster); - indexes->ents_allocated = indexes->entry = 0; - } -} - -//call this after adding all the streams -avi_RIFF* avi_add_new_riff(avi_Context* AVI) -{ - avi_RIFF* riff = g_new0(avi_RIFF, 1); - - if(riff == NULL) - return NULL; - - riff->next = NULL; - riff->id = AVI->riff_list_size + 1; - - if(riff->id == 1) - { - riff->previous = NULL; - AVI->riff_list = riff; - avi_create_riff_header(AVI, riff); - } - else - { - avi_RIFF* last_riff = avi_get_last_riff(AVI); - riff->previous = last_riff; - last_riff->next = riff; - avi_create_riff_tags(AVI, riff); - } - - AVI->riff_list_size++; - - clean_indexes(AVI); - - fprintf(stderr, "AVI: adding new RIFF (%i)\n",riff->id); - return riff; -} - -//second function to get called (add video stream to avi_Context) -io_Stream* -avi_add_video_stream(avi_Context *AVI, - int32_t width, - int32_t height, - double fps, - int32_t codec_id, - const char* compressor) -{ - io_Stream* stream = add_new_stream(&AVI->stream_list, &AVI->stream_list_size); - stream->type = STREAM_TYPE_VIDEO; - stream->fps = fps; - stream->width = width; - stream->height = height; - stream->codec_id = codec_id; - - stream->indexes = (void *) g_new0(avi_Index, 1); - - if(compressor) - strncpy(stream->compressor, compressor, 8); - - return stream; -} - -//third function to get called (add audio stream to avi_Context) -io_Stream* -avi_add_audio_stream(avi_Context *AVI, - int32_t channels, - int32_t rate, - int32_t bits, - int32_t mpgrate, - int32_t codec_id, - int32_t format) -{ - io_Stream* stream = add_new_stream(&AVI->stream_list, &AVI->stream_list_size); - stream->type = STREAM_TYPE_AUDIO; - - stream->a_rate = rate; - stream->a_bits = bits; - stream->mpgrate = mpgrate; - stream->a_vbr = 0; - stream->codec_id = codec_id; - stream->a_fmt = format; - - stream->indexes = (void *) g_new0(avi_Index, 1); - - return stream; -} - -/* - first function to get called - - avi_create_context: Open an AVI File and write a bunch - of zero bytes as space for the header. - Creates a mutex. - - returns a pointer to avi_Context on success, a NULL pointer on error -*/ -avi_Context* avi_create_context(const char * filename) -{ - avi_Context* AVI = g_new0(avi_Context, 1); - - if(AVI == NULL) - return NULL; - - AVI->writer = io_create_writer(filename, 0); - - if (AVI->writer == NULL) - { - perror("Could not open file for writing"); - g_free(AVI); - return NULL; - } - - __INIT_MUTEX(__MUTEX); - AVI->flags = 0; /*recordind*/ - - AVI->riff_list = NULL; - AVI->riff_list_size = 0; - - AVI->stream_list = NULL; - AVI->stream_list_size = 0; - - return AVI; -} - -void avi_destroy_context(avi_Context* AVI) -{ - //clean up - io_destroy_writer(AVI->writer); - - avi_RIFF* riff = avi_get_last_riff(AVI); - while(riff->previous != NULL) //from end to start - { - avi_RIFF* prev_riff = riff->previous; - free(riff); - riff = prev_riff; - AVI->riff_list_size--; - } - free(riff); //free the last one; - - destroy_stream_list(AVI->stream_list, &AVI->stream_list_size); - - //free avi_Context - free(AVI); -} - -avi_Ientry* avi_get_ientry(avi_Index* idx, int ent_id) -{ - int cl = ent_id / AVI_INDEX_CLUSTER_SIZE; - int id = ent_id % AVI_INDEX_CLUSTER_SIZE; - return &idx->cluster[cl][id]; -} - -static int avi_write_counters(avi_Context* AVI, avi_RIFF* riff) -{ - int n, nb_frames = 0; - io_flush_buffer(AVI->writer); - - //int time_base_num = AVI->time_base_num; - //int time_base_den = AVI->time_base_den; - - int64_t file_size = io_get_offset(AVI->writer);//avi_tell(AVI); - fprintf(stderr, "AVI: file size = %" PRIu64 "\n", file_size); - - for(n = 0; n < AVI->stream_list_size; n++) - { - io_Stream *stream = get_stream(AVI->stream_list, n); - - if(stream->rate_hdr_strm <= 0) - { - fprintf(stderr, "AVI: stream rate header pos not valid\n"); - } - else - { - io_seek(AVI->writer, stream->rate_hdr_strm); - - if(stream->type == STREAM_TYPE_VIDEO && AVI->fps > 0.001) - { - uint32_t rate =(uint32_t) FRAME_RATE_SCALE * lrintf(AVI->fps); - fprintf(stderr,"AVI: storing rate(%i)\n",rate); - io_write_wl32(AVI->writer, rate); - } - } - - if(stream->frames_hdr_strm <= 0) - { - fprintf(stderr, "AVI: stream frames header pos not valid\n"); - } - else - { - io_seek(AVI->writer, stream->frames_hdr_strm); - - if(stream->type == STREAM_TYPE_VIDEO) - { - io_write_wl32(AVI->writer, stream->packet_count); - nb_frames = MAX(nb_frames, stream->packet_count); - } - else - { - int sampsize = avi_audio_sample_size(stream); - io_write_wl32(AVI->writer, 4*stream->audio_strm_length/sampsize); - } - } - } - - avi_RIFF* riff_1 = avi_get_riff(AVI, 1); - if(riff_1->id == 1) /*should always be true*/ - { - if(riff_1->time_delay_off <= 0) - { - fprintf(stderr, "AVI: riff main header pos not valid\n"); - } - else - { - uint32_t us_per_frame = 1000; //us - if(AVI->fps > 0.001) - us_per_frame=(uint32_t) lrintf(1000000.0 / AVI->fps); - - AVI->avi_flags |= AVIF_HASINDEX; - - io_seek(AVI->writer, riff_1->time_delay_off); - io_write_wl32(AVI->writer, us_per_frame); // time_per_frame - io_write_wl32(AVI->writer, 0); // data rate - io_write_wl32(AVI->writer, 0); // Padding multiple size (2048) - io_write_wl32(AVI->writer, AVI->avi_flags); // parameter Flags - //io_seek(AVI->writer, riff_1->frames_hdr_all); - io_write_wl32(AVI->writer, nb_frames); - } - } - - //return to position (EOF) - io_seek(AVI->writer, file_size); - - return 0; -} - -static int avi_write_ix(avi_Context* AVI) -{ - char tag[5]; - char ix_tag[] = "ix00"; - int i, j; - - avi_RIFF *riff = avi_get_last_riff(AVI); - - if (riff->id > AVI_MASTER_INDEX_SIZE) - return -1; - - for (i=0;istream_list_size;i++) - { - io_Stream *stream = get_stream(AVI->stream_list, i); - int64_t ix, pos; - - avi_stream2fourcc(tag, stream); - - ix_tag[3] = '0' + i; /*only 10 streams supported*/ - - /* Writing AVI OpenDML leaf index chunk */ - ix = io_get_offset(AVI->writer); - io_write_4cc(AVI->writer, ix_tag); /* ix?? */ - avi_Index* indexes = (avi_Index *) stream->indexes; - io_write_wl32(AVI->writer, indexes->entry * 8 + 24); - /* chunk size */ - io_write_wl16(AVI->writer, 2); /* wLongsPerEntry */ - io_write_w8(AVI->writer, 0); /* bIndexSubType (0 == frame index) */ - io_write_w8(AVI->writer, AVI_INDEX_OF_CHUNKS); /* bIndexType (1 == AVI_INDEX_OF_CHUNKS) */ - io_write_wl32(AVI->writer, indexes->entry); - /* nEntriesInUse */ - io_write_4cc(AVI->writer, tag); /* dwChunkId */ - io_write_wl64(AVI->writer, riff->movi_list);/* qwBaseOffset */ - io_write_wl32(AVI->writer, 0); /* dwReserved_3 (must be 0) */ - - for (j=0; j< indexes->entry; j++) - { - avi_Ientry* ie = avi_get_ientry(indexes, j); - io_write_wl32(AVI->writer, ie->pos + 8); - io_write_wl32(AVI->writer, ((uint32_t)ie->len & ~0x80000000) | - (ie->flags & 0x10 ? 0 : 0x80000000)); - } - io_flush_buffer(AVI->writer); - pos = io_get_offset(AVI->writer); //current position - fprintf(stderr,"AVI: wrote ix %s with %i entries\n",tag, indexes->entry); - - /* Updating one entry in the AVI OpenDML master index */ - io_seek(AVI->writer, indexes->indx_start); - io_write_4cc(AVI->writer, "indx"); /* enabling this entry */ - io_skip(AVI->writer, 8); - io_write_wl32(AVI->writer, riff->id); /* nEntriesInUse */ - io_skip(AVI->writer, 16*(riff->id)); - io_write_wl64(AVI->writer, ix); /* qwOffset */ - io_write_wl32(AVI->writer, pos - ix); /* dwSize */ - io_write_wl32(AVI->writer, indexes->entry); /* dwDuration */ - - //return to position - io_seek(AVI->writer, pos); - } - return 0; -} - -static int avi_write_idx1(avi_Context* AVI, avi_RIFF *riff) -{ - - int64_t idx_chunk; - int i; - char tag[5]; - - - io_Stream *stream; - avi_Ientry* ie = 0, *tie; - int empty, stream_id = -1; - - idx_chunk = avi_open_tag(AVI, "idx1"); - for (i=0;istream_list_size;i++) - { - stream = get_stream(AVI->stream_list, i); - stream->entry=0; - } - - do - { - empty = 1; - for (i=0;istream_list_size;i++) - { - stream = get_stream(AVI->stream_list, i); - avi_Index* indexes = (avi_Index*) stream->indexes; - if (indexes->entry <= stream->entry) - continue; - - tie = avi_get_ientry(indexes, stream->entry); - if (empty || tie->pos < ie->pos) - { - ie = tie; - stream_id = i; - } - empty = 0; - } - - if (!empty) - { - stream = get_stream(AVI->stream_list, stream_id); - avi_stream2fourcc(tag, stream); - io_write_4cc(AVI->writer, tag); - io_write_wl32(AVI->writer, ie->flags); - io_write_wl32(AVI->writer, ie->pos); - io_write_wl32(AVI->writer, ie->len); - stream->entry++; - } - } - while (!empty); - - avi_close_tag(AVI, idx_chunk); - fprintf(stderr, "AVI: wrote idx1\n"); - avi_write_counters(AVI, riff); - - return 0; -} - -int avi_write_packet(avi_Context* AVI, int stream_index, BYTE *data, uint32_t size, int64_t dts, int block_align, int32_t flags) -{ - char tag[5]; - unsigned int i_flags=0; - - io_Stream *stream= get_stream(AVI->stream_list, stream_index); - - avi_RIFF* riff = avi_get_last_riff(AVI); - //align - while(block_align==0 && dts != AV_NOPTS_VALUE && dts > stream->packet_count) - avi_write_packet(AVI, stream_index, NULL, 0, AV_NOPTS_VALUE, 0, 0); - - stream->packet_count++; - - // Make sure to put an OpenDML chunk when the file size exceeds the limits - if (io_get_offset(AVI->writer) - riff->riff_start > AVI_MAX_RIFF_SIZE) - { - avi_write_ix(AVI); - avi_close_tag(AVI, riff->movi_list); - - if (riff->id == 1) - avi_write_idx1(AVI, riff); - - avi_close_tag(AVI, riff->riff_start); - - avi_add_new_riff(AVI); - - riff = avi_get_last_riff(AVI); //update riff - } - - avi_stream2fourcc(tag, stream); - - if(flags & AV_PKT_FLAG_KEY) //key frame - i_flags = 0x10; - - if (stream->type == STREAM_TYPE_AUDIO) - stream->audio_strm_length += size; - - - avi_Index* idx = (avi_Index*) stream->indexes; - int cl = idx->entry / AVI_INDEX_CLUSTER_SIZE; - int id = idx->entry % AVI_INDEX_CLUSTER_SIZE; - if (idx->ents_allocated <= idx->entry) - { - idx->cluster = av_realloc(idx->cluster, (cl+1)*sizeof(void*)); - if (!idx->cluster) - return -1; - idx->cluster[cl] = av_malloc(AVI_INDEX_CLUSTER_SIZE*sizeof(avi_Ientry)); - if (!idx->cluster[cl]) - return -1; - idx->ents_allocated += AVI_INDEX_CLUSTER_SIZE; - } - - idx->cluster[cl][id].flags = i_flags; - idx->cluster[cl][id].pos = io_get_offset(AVI->writer) - riff->movi_list; - idx->cluster[cl][id].len = size; - idx->entry++; - - - io_write_4cc(AVI->writer, tag); - io_write_wl32(AVI->writer, size); - io_write_buf(AVI->writer, data, size); - if (size & 1) - io_write_w8(AVI->writer, 0); - - io_flush_buffer(AVI->writer); - - return 0; -} - -int avi_close(avi_Context* AVI) -{ - int res = 0; - int n, nb_frames; - int64_t file_size; - - avi_RIFF* riff = avi_get_last_riff(AVI); - - if (riff->id == 1) - { - avi_close_tag(AVI, riff->movi_list); - fprintf(stderr, "AVI: (%" PRIu64 ") close movi tag\n",io_get_offset(AVI->writer)); - res = avi_write_idx1(AVI, riff); - avi_close_tag(AVI, riff->riff_start); - } - else - { - avi_write_ix(AVI); - avi_close_tag(AVI, riff->movi_list); - avi_close_tag(AVI, riff->riff_start); - - file_size = io_get_offset(AVI->writer); - io_seek(AVI->writer, AVI->odml_list - 8); - io_write_4cc(AVI->writer, "LIST"); /* Making this AVI OpenDML one */ - io_skip(AVI->writer, 16); - - for (n=nb_frames=0;nstream_list_size;n++) - { - io_Stream *stream = get_stream(AVI->stream_list, n); - - if (stream->type == STREAM_TYPE_VIDEO) - { - if (nb_frames < stream->packet_count) - nb_frames = stream->packet_count; - } - else - { - if (stream->codec_id == CODEC_ID_MP2 || stream->codec_id == CODEC_ID_MP3) - nb_frames += stream->packet_count; - } - } - io_write_wl32(AVI->writer, nb_frames); - io_seek(AVI->writer, file_size); - - avi_write_counters(AVI, riff); - } - - clean_indexes(AVI); - - return res; -} diff -Nru guvcview-1.7.3/src/avilib.h guvcview-2.0.1+ubuntu1~ppa1/src/avilib.h --- guvcview-1.7.3/src/avilib.h 2014-03-24 22:56:28.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/src/avilib.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,204 +0,0 @@ -/*******************************************************************************# -# guvcview http://guvcview.sourceforge.net # -# # -# Paulo Assis # -# # -# This program is free software; you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation; either version 2 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program; if not, write to the Free Software # -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# # -********************************************************************************/ -/*******************************************************************************# -# Some utilities for writing and reading AVI files. # -# These are not intended to serve for a full blown # -# AVI handling software (this would be much too complex) # -# The only intention is to write out MJPEG encoded # -# AVIs with sound and to be able to read them back again. # -# These utilities should work with other types of codecs too, however. # -# # -# Copyright (C) 1999 Rainer Johanni # -********************************************************************************/ - - -#ifndef AVILIB_H -#define AVILIB_H - -#include "defs.h" -#include -#include -#include -#include -#include "file_io.h" -#include "io_stream.h" - -#define AVI_MAX_TRACKS 8 -#define FRAME_RATE_SCALE 1000 //1000000 - -typedef struct _video_index_entry -{ - off_t key; - off_t pos; - off_t len; -} video_index_entry; - -typedef struct _audio_index_entry -{ - off_t pos; - off_t len; - off_t tot; -} audio_index_entry; - -typedef struct avi_Ientry -{ - unsigned int flags, pos, len; -} avi_Ientry; - -typedef struct avi_Index -{ - int64_t indx_start; - int entry; - int ents_allocated; - avi_Ientry** cluster; -} avi_Index; - -struct avi_RIFF -{ - int64_t riff_start, movi_list; - //int64_t frames_hdr_all; - int64_t time_delay_off; - int id; - - struct avi_RIFF *previous, *next; -}; - -typedef struct avi_RIFF avi_RIFF; - -struct avi_Context -{ - io_Writer *writer; - __MUTEX_TYPE mutex; - - int flags; /* 0 - AVI is recordind; 1 - AVI is not recording*/ - - uint32_t avi_flags; - - int32_t time_base_num; /* video time base numerator */ - int32_t time_base_den; /* video time base denominator */ - - avi_RIFF* riff_list; // avi_riff list (NULL terminated) - int riff_list_size; - - io_Stream* stream_list; - int stream_list_size; - - double fps; - - int64_t odml_list /*,time_delay_off*/ ; //some file offsets -}; - -typedef struct avi_Context avi_Context; - -avi_Context* avi_create_context(const char * filename); - -io_Stream* -avi_add_video_stream(avi_Context *AVI, - int32_t width, - int32_t height, - double fps, - int32_t codec_id, - const char* compressor); - -io_Stream* -avi_add_audio_stream(avi_Context *AVI, - int32_t channels, - int32_t rate, - int32_t bits, - int32_t mpgrate, - int32_t codec_id, - int32_t format); - - -int avi_write_packet(avi_Context* AVI, - int stream_index, - BYTE *data, - uint32_t size, - int64_t dts, - int block_align, - int32_t flags); - -avi_RIFF* avi_add_new_riff(avi_Context* AVI); - -int avi_close(avi_Context* AVI); - - -void avi_destroy_context(avi_Context* AVI); - -/* Possible Audio formats */ - -#define WAVE_FORMAT_UNKNOWN (0x0000) -#define WAVE_FORMAT_PCM (0x0001) -#define WAVE_FORMAT_ADPCM (0x0002) -#define WAVE_FORMAT_IEEE_FLOAT (0x0003) -#define WAVE_FORMAT_IBM_CVSD (0x0005) -#define WAVE_FORMAT_ALAW (0x0006) -#define WAVE_FORMAT_MULAW (0x0007) -#define WAVE_FORMAT_OKI_ADPCM (0x0010) -#define WAVE_FORMAT_DVI_ADPCM (0x0011) -#define WAVE_FORMAT_DIGISTD (0x0015) -#define WAVE_FORMAT_DIGIFIX (0x0016) -#define WAVE_FORMAT_YAMAHA_ADPCM (0x0020) -#define WAVE_FORMAT_DSP_TRUESPEECH (0x0022) -#define WAVE_FORMAT_GSM610 (0x0031) -#define WAVE_FORMAT_MP3 (0x0055) -#define WAVE_FORMAT_MPEG12 (0x0050) -#define WAVE_FORMAT_AAC (0x00ff) -#define WAVE_FORMAT_IBM_MULAW (0x0101) -#define WAVE_FORMAT_IBM_ALAW (0x0102) -#define WAVE_FORMAT_IBM_ADPCM (0x0103) -#define WAVE_FORMAT_AC3 (0x2000) -/*extra audio formats (codecs)*/ -#define ANTEX_FORMAT_ADPCME (0x0033) -#define AUDIO_FORMAT_APTX (0x0025) -#define AUDIOFILE_FORMAT_AF10 (0x0026) -#define AUDIOFILE_FORMAT_AF36 (0x0024) -#define BROOKTREE_FORMAT_BTVD (0x0400) -#define CANOPUS_FORMAT_ATRAC (0x0063) -#define CIRRUS_FORMAT_CIRRUS (0x0060) -#define CONTROL_FORMAT_CR10 (0x0037) -#define CONTROL_FORMAT_VQLPC (0x0034) -#define CREATIVE_FORMAT_ADPCM (0x0200) -#define CREATIVE_FORMAT_FASTSPEECH10 (0x0203) -#define CREATIVE_FORMAT_FASTSPEECH8 (0x0202) -#define IMA_FORMAT_ADPCM (0x0039) -#define CONSISTENT_FORMAT_CS2 (0x0260) -#define HP_FORMAT_CU (0x0019) -#define DEC_FORMAT_G723 (0x0123) -#define DF_FORMAT_G726 (0x0085) -#define DSP_FORMAT_ADPCM (0x0036) -#define DOLBY_FORMAT_AC2 (0x0030) -#define DOLBY_FORMAT_AC3_SPDIF (0x0092) -#define ESS_FORMAT_ESPCM (0x0061) -#define IEEE_FORMAT_FLOAT (0x0003) -#define MS_FORMAT_MSAUDIO1_DIVX (0x0160) -#define MS_FORMAT_MSAUDIO2_DIVX (0x0161) -#define OGG_FORMAT_VORBIS (0x566f) -#define OGG_FORMAT_VORBIS1 (0x674f) -#define OGG_FORMAT_VORBIS1P (0x676f) -#define OGG_FORMAT_VORBIS2 (0x6750) -#define OGG_FORMAT_VORBIS2P (0x6770) -#define OGG_FORMAT_VORBIS3 (0x6751) -#define OGG_FORMAT_VORBIS3P (0x6771) -#define MS_FORMAT_WMA9 (0x0163) -#define MS_FORMAT_WMA9_PRO (0x0162) - -#endif diff -Nru guvcview-1.7.3/src/callbacks.c guvcview-2.0.1+ubuntu1~ppa1/src/callbacks.c --- guvcview-1.7.3/src/callbacks.c 2014-03-24 22:56:28.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/src/callbacks.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,2056 +0,0 @@ -/*******************************************************************************# -# guvcview http://guvcview.sourceforge.net # -# # -# Paulo Assis # -# Nobuhiro Iwamatsu # -# # -# # -# This program is free software; you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation; either version 2 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program; if not, write to the Free Software # -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# # -********************************************************************************/ - -#include -/* support for internationalization - i18n */ -#include -#include -#include -#include - -#include - -#include "v4l2uvc.h" -#include "uvc_h264.h" -#include "v4l2_dyna_ctrls.h" -#include "avilib.h" -#include "globals.h" -#include "sound.h" -#include "snd_devices.h" -#include "ms_time.h" -#include "string_utils.h" -#include "video.h" -#include "acodecs.h" -#include "profile.h" -#include "close.h" -#include "timers.h" -#include "callbacks.h" -#include "vcodecs.h" -#include "lavc_common.h" -#include "create_video.h" -#include "video_format.h" -#include "image_format.h" - -#define __AMUTEX &pdata->mutex -#define __VMUTEX &videoIn->mutex -#define __GMUTEX &global->mutex - -/*--------------------------- warning message dialog ----------------------------*/ -void -WARN_DIALOG(const char *warn_title, const char* warn_msg, struct ALL_DATA *all_data) -{ - struct GLOBAL *global = all_data->global; - struct GWIDGET *gwidget = all_data->gwidget; - - if(global->no_display) - { - g_print("WARNING: %s : %s\n", warn_title, warn_msg); - } - else - { - GtkWidget *warndialog; - warndialog = gtk_message_dialog_new (GTK_WINDOW(gwidget->mainwin), - GTK_DIALOG_DESTROY_WITH_PARENT, - GTK_MESSAGE_WARNING, - GTK_BUTTONS_CLOSE, - "%s",gettext(warn_title)); - - gtk_message_dialog_format_secondary_text(GTK_MESSAGE_DIALOG(warndialog), - "%s",gettext(warn_msg)); - - gtk_widget_show(warndialog); - gtk_dialog_run (GTK_DIALOG (warndialog)); - gtk_widget_destroy (warndialog); - } -} - -/*---------------------------- error message dialog -----------------------------*/ -void -ERR_DIALOG(const char *err_title, const char* err_msg, struct ALL_DATA *all_data) -{ - struct GWIDGET *gwidget = all_data->gwidget; - struct GLOBAL *global = all_data->global; - struct vdIn *videoIn = all_data->videoIn; - gboolean control_only = (global->control_only || global->add_ctrls); - - if(global->no_display) - { - g_printerr("ERROR: %s : %s\n", err_title, err_msg); - } - else - { - int i=0; - - GtkWidget *errdialog=NULL; - GtkWidget *Devices=NULL; - - if (videoIn->listDevices->num_devices > 1) - { - errdialog = gtk_dialog_new_with_buttons (_("Error"), - GTK_WINDOW(gwidget->mainwin), - GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT, - GTK_STOCK_OK, - GTK_RESPONSE_ACCEPT, - GTK_STOCK_CANCEL, - GTK_RESPONSE_REJECT, - NULL); - - GtkWidget *table = gtk_grid_new(); - - GtkWidget *title = gtk_label_new (gettext(err_title)); - gtk_widget_modify_font(title, pango_font_description_from_string ("Sans bold 10")); - gtk_misc_set_alignment (GTK_MISC (title), 0, 0); - gtk_grid_attach (GTK_GRID (table), title, 0, 0, 2, 1); - gtk_widget_show (title); - - GtkWidget *text = gtk_label_new (gettext(err_msg)); - gtk_widget_modify_font(text, pango_font_description_from_string ("Sans italic 8")); - gtk_misc_set_alignment (GTK_MISC (text), 0, 0); - gtk_grid_attach (GTK_GRID (table), text, 0, 1, 2, 1); - gtk_widget_show (text); - - - GtkWidget *text2 = gtk_label_new (_("\nYou have more than one video device installed.\n" - "Do you want to try another one ?\n")); - gtk_widget_modify_font(text2, pango_font_description_from_string ("Sans 10")); - gtk_misc_set_alignment (GTK_MISC (text2), 0, 0); - gtk_grid_attach (GTK_GRID (table), text2, 0, 2, 2, 1); - gtk_widget_show (text2); - - GtkWidget *lbl_dev = gtk_label_new(_("Device:")); - gtk_misc_set_alignment (GTK_MISC (lbl_dev), 0.5, 0.5); - gtk_grid_attach (GTK_GRID(table), lbl_dev, 0, 3, 1, 1); - gtk_widget_show (lbl_dev); - - Devices = gtk_combo_box_text_new (); - - for(i=0;i<(videoIn->listDevices->num_devices);i++) - { - gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(Devices), - videoIn->listDevices->listVidDevices[i].name); - } - gtk_combo_box_set_active(GTK_COMBO_BOX(Devices),videoIn->listDevices->num_devices-1); - - gtk_grid_attach(GTK_GRID(table), Devices, 1, 3, 1, 1); - gtk_widget_show (Devices); - - GtkWidget *content_area = gtk_dialog_get_content_area (GTK_DIALOG (errdialog)); - gtk_container_add (GTK_CONTAINER (content_area), table); - gtk_widget_show (table); - } - else - { - - errdialog = gtk_message_dialog_new (GTK_WINDOW(gwidget->mainwin), - GTK_DIALOG_DESTROY_WITH_PARENT, - GTK_MESSAGE_ERROR, - GTK_BUTTONS_CLOSE, - "%s",gettext(err_title)); - - gtk_message_dialog_format_secondary_text(GTK_MESSAGE_DIALOG(errdialog), - "%s",gettext(err_msg)); - - } - - //gtk_widget_show(errdialog); - - gint result = gtk_dialog_run (GTK_DIALOG (errdialog)); - switch (result) - { - case GTK_RESPONSE_ACCEPT: - { - /*launch another guvcview instance for the selected device*/ - int index = gtk_combo_box_get_active(GTK_COMBO_BOX(Devices)); - //if(index == videoIn->listDevices->current_device) - // break; - g_free(global->videodevice); - global->videodevice = g_strdup(videoIn->listDevices->listVidDevices[index].device); - gchar *command = g_strjoin("", - g_get_prgname(), - " --device=", - global->videodevice, - NULL); - /*spawn new process*/ - GError *error = NULL; - if(!(g_spawn_command_line_async(command, &error))) - { - g_printerr ("spawn failed: %s\n", error->message); - g_error_free ( error ); - } - - } - break; - - default: - /* do nothing since dialog was cancelled or closed */ - break; - - } - - gtk_widget_destroy (errdialog); - } - - clean_struct(all_data); - - /* error dialog is allways called before creating the main loop */ - /* so no need for gtk_main_quit() */ - /* but this means we must close portaudio before exiting */ - if(!control_only) - { - g_print("Closing portaudio ..."); - if (Pa_Terminate() != paNoError) - g_print("Error\n"); - else - g_print("OK\n"); - } - - g_print("Terminated.\n");; - exit(1); -}; - -static void -filename_update_extension (GtkComboBox *chooser, GtkWidget *file_dialog) -{ - int index = gtk_combo_box_get_active (chooser); - fprintf(stderr, "DEBUG: file filter changed to %i\n", index); - - gchar* filename = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER (file_dialog)); - char *basename = g_path_get_basename(filename); - - //GtkFileFilter *filter = gtk_file_chooser_get_filter(GTK_FILE_CHOOSER (file_dialog)); - //if(G_IS_OBJECT(filter)) - // g_object_unref(filter); - - GtkFileFilter *filter = gtk_file_filter_new(); - - int flag_vid = GPOINTER_TO_INT(g_object_get_data (G_OBJECT (chooser), "format_combo")); - if(flag_vid) - { - gtk_file_chooser_set_current_name (GTK_FILE_CHOOSER (file_dialog), - setVidExt(basename, index)); - gtk_file_filter_add_pattern(filter, get_vformat_pattern(index)); - } - else - { - gtk_file_chooser_set_current_name (GTK_FILE_CHOOSER (file_dialog), - setImgExt(basename, index)); - gtk_file_filter_add_pattern(filter, get_iformat_pattern(index)); - } - - gtk_file_chooser_set_filter(GTK_FILE_CHOOSER (file_dialog), filter); - - g_free(basename); - g_free(filename); -} - -void -file_chooser (GtkWidget * FileButt, struct ALL_DATA *all_data) -{ - struct GWIDGET *gwidget = all_data->gwidget; - struct GLOBAL *global = all_data->global; - - GtkWidget *FileDialog = gtk_file_chooser_dialog_new (_("Save File"), - GTK_WINDOW(gwidget->mainwin), - GTK_FILE_CHOOSER_ACTION_SAVE, - GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, - GTK_STOCK_SAVE, GTK_RESPONSE_ACCEPT, - NULL); - gtk_file_chooser_set_do_overwrite_confirmation (GTK_FILE_CHOOSER (FileDialog), TRUE); - - /** create a file filter */ - GtkFileFilter *filter = gtk_file_filter_new(); - - GtkWidget *FBox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 2); - GtkWidget *format_label = gtk_label_new(_("File Format:")); - gtk_widget_set_halign (FBox, GTK_ALIGN_FILL); - gtk_widget_set_hexpand (FBox, TRUE); - gtk_widget_set_hexpand (format_label, FALSE); - gtk_widget_show(FBox); - gtk_widget_show(format_label); - gtk_box_pack_start(GTK_BOX(FBox), format_label, FALSE, FALSE, 2); - - int flag_vid = GPOINTER_TO_INT(g_object_get_data (G_OBJECT (FileButt), "file_butt")); - if(flag_vid) - { /* video File chooser*/ - gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER (FileDialog), - global->vidFPath[1]); - gtk_file_chooser_set_current_name (GTK_FILE_CHOOSER (FileDialog), - global->vidFPath[0]); - - /** add format file filters*/ - GtkWidget *VidFormat = gtk_combo_box_text_new (); - gtk_widget_set_halign (VidFormat, GTK_ALIGN_FILL); - gtk_widget_set_hexpand (VidFormat, TRUE); - - int vformat_ind =0; - for (vformat_ind =0; vformat_indVidFormat); - gtk_box_pack_start(GTK_BOX(FBox), VidFormat, FALSE, FALSE, 2); - gtk_widget_show(VidFormat); - - /**add a pattern to the filter*/ - gtk_file_filter_add_pattern(filter, get_vformat_pattern(global->VidFormat)); - gtk_file_chooser_set_filter(GTK_FILE_CHOOSER (FileDialog), filter); - - gtk_file_chooser_set_extra_widget(GTK_FILE_CHOOSER (FileDialog), FBox); - - g_object_set_data (G_OBJECT (VidFormat), "format_combo", GINT_TO_POINTER(1)); - g_signal_connect (GTK_COMBO_BOX(VidFormat), "changed", - G_CALLBACK (filename_update_extension), FileDialog); - - if (gtk_dialog_run (GTK_DIALOG (FileDialog)) == GTK_RESPONSE_ACCEPT) - { - gchar *fullname = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (FileDialog)); - global->vidFPath=splitPath(fullname, global->vidFPath); - g_free(fullname); - - /*get the file type*/ - global->VidFormat = check_video_type(global->vidFPath[0]); - /** check for webm and change codecs acordingly */ - if(global->VidFormat == WEBM_FORMAT) - { - int vcodec_ind = get_list_vcodec_index(CODEC_ID_VP8); - int acodec_ind = get_list_acodec_index(CODEC_ID_VORBIS); - if(vcodec_ind >= 0 && acodec_ind >= 0) - { - if(global->AudCodec != acodec_ind) - { - fprintf(stderr, "WARN: changing audio codec ind (%i --> %i)\n", global->AudCodec, acodec_ind); - global->AudCodec = acodec_ind; //this is also set by the gwidget->SndComp calback - int index = g_slist_length (gwidget->agroup) - (global->AudCodec + 1); - GtkWidget* codec_item = g_slist_nth_data (gwidget->agroup, index); - gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(codec_item), TRUE); - //gtk_combo_box_set_active(GTK_COMBO_BOX(gwidget->SndComp), global->AudCodec); - } - if(global->VidCodec != vcodec_ind) - { - fprintf(stderr, "WARN: changing video codec ind (%i --> %i)\n", global->VidCodec, vcodec_ind); - global->VidCodec = vcodec_ind;//this is also set by the gwidget->VidCodec calback - int index = g_slist_length (gwidget->vgroup) - (global->VidCodec + 1); - GtkWidget* codec_item = g_slist_nth_data (gwidget->vgroup, index); - gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(codec_item), TRUE); - //gtk_combo_box_set_active(GTK_COMBO_BOX(gwidget->VidCodec), global->VidCodec); - } - - - } - else - { - fprintf(stderr, "ERROR: can't find webm codecs (VP8 , VORBIS)\n"); - fprintf(stderr, " using matroska muxer instead\n"); - global->VidFormat = MKV_FORMAT; - - gtk_combo_box_set_active (GTK_COMBO_BOX(VidFormat), global->VidFormat); - } - } - - if(global->vid_inc>0) - { - uint64_t suffix = get_file_suffix(global->vidFPath[1], global->vidFPath[0]); - fprintf(stderr, "Video file suffix detected: %" PRIu64 "\n", suffix); - if(suffix >= G_MAXUINT64) - { - global->vidFPath[0] = add_file_suffix(global->vidFPath[0], suffix); - suffix = 0; - } - if(suffix >= 0) - global->vid_inc = suffix + 1; - } - } - } - else - { /* Image File chooser*/ - gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER (FileDialog), - global->imgFPath[1]); - gtk_file_chooser_set_current_name (GTK_FILE_CHOOSER (FileDialog), - global->imgFPath[0]); - - /** add format file filters*/ - GtkWidget *ImgFormat = gtk_combo_box_text_new (); - gtk_widget_set_halign (ImgFormat, GTK_ALIGN_FILL); - gtk_widget_set_hexpand (ImgFormat, TRUE); - - int iformat_ind =0; - for (iformat_ind =0; iformat_indimgFormat); - gtk_box_pack_start(GTK_BOX(FBox), ImgFormat, FALSE, FALSE, 2); - gtk_widget_show(ImgFormat); - - /**add a pattern to the filter*/ - gtk_file_filter_add_pattern(filter, get_iformat_pattern(global->imgFormat)); - gtk_file_chooser_set_filter(GTK_FILE_CHOOSER (FileDialog), filter); - - gtk_file_chooser_set_extra_widget(GTK_FILE_CHOOSER (FileDialog), FBox); - - g_object_set_data (G_OBJECT (ImgFormat), "format_combo", GINT_TO_POINTER(0)); - g_signal_connect (GTK_COMBO_BOX(ImgFormat), "changed", - G_CALLBACK (filename_update_extension), FileDialog); - - if (gtk_dialog_run (GTK_DIALOG (FileDialog)) == GTK_RESPONSE_ACCEPT) - { - gchar *fullname = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (FileDialog)); - global->imgFPath=splitPath(fullname, global->imgFPath); - g_free(fullname); - - /*get the file type*/ - global->imgFormat = check_image_type(global->imgFPath[0]); - - if(global->image_inc>0) - { - uint64_t suffix = get_file_suffix(global->imgFPath[1], global->imgFPath[0]); - fprintf(stderr, "Image file suffix detected: %" PRIu64 "\n", suffix); - if(suffix >= G_MAXUINT64) - { - global->imgFPath[0] = add_file_suffix(global->imgFPath[0], suffix); - suffix = 0; - } - if(suffix >= 0) - global->image_inc = suffix + 1; - } - - } - } - - //GtkFileFilter* current_filter = gtk_file_chooser_get_filter(GTK_FILE_CHOOSER (FileDialog)); - //if(G_IS_OBJECT(current_filter)) - // g_object_unref(current_filter); - gtk_widget_destroy (FileDialog); -} - -void -lavc_properties(GtkMenuItem * codec_prop, struct ALL_DATA *all_data) -{ - struct GLOBAL *global = all_data->global; - struct GWIDGET *gwidget = all_data->gwidget; - - int line = 0; - vcodecs_data *codec_defaults = get_codec_defaults(global->VidCodec); - - if (!(codec_defaults->avcodec)) return; - - GtkWidget *codec_dialog = gtk_dialog_new_with_buttons (_("codec values"), - GTK_WINDOW(gwidget->mainwin), - GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT, - GTK_STOCK_OK, - GTK_RESPONSE_ACCEPT, - GTK_STOCK_CANCEL, - GTK_RESPONSE_REJECT, - NULL); - - GtkWidget *table = gtk_grid_new(); - - GtkWidget *lbl_fps = gtk_label_new(_(" encoder fps: \n (0 - use fps combobox value)")); - gtk_misc_set_alignment (GTK_MISC (lbl_fps), 1, 0.5); - gtk_grid_attach (GTK_GRID(table), lbl_fps, 0, line, 1, 1); - gtk_widget_show (lbl_fps); - - GtkWidget *enc_fps = gtk_spin_button_new_with_range(0,30,5); - gtk_editable_set_editable(GTK_EDITABLE(enc_fps),TRUE); - gtk_spin_button_set_value (GTK_SPIN_BUTTON(enc_fps), codec_defaults->fps); - - gtk_grid_attach (GTK_GRID(table), enc_fps, 1, line, 1, 1); - gtk_widget_show (enc_fps); - line++; - - GtkWidget *monotonic_pts = gtk_check_button_new_with_label (_(" monotonic pts")); - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(monotonic_pts),(codec_defaults->monotonic_pts != 0)); - - gtk_grid_attach (GTK_GRID(table), monotonic_pts, 1, line, 1, 1); - gtk_widget_show (monotonic_pts); - line++; - - GtkWidget *lbl_bit_rate = gtk_label_new(_("bit rate: ")); - gtk_misc_set_alignment (GTK_MISC (lbl_bit_rate), 1, 0.5); - gtk_grid_attach (GTK_GRID(table), lbl_bit_rate, 0, line, 1, 1); - gtk_widget_show (lbl_bit_rate); - - GtkWidget *bit_rate = gtk_spin_button_new_with_range(160000,4000000,10000); - gtk_editable_set_editable(GTK_EDITABLE(bit_rate),TRUE); - gtk_spin_button_set_value (GTK_SPIN_BUTTON(bit_rate), codec_defaults->bit_rate); - - gtk_grid_attach (GTK_GRID(table), bit_rate, 1, line, 1, 1); - gtk_widget_show (bit_rate); - line++; - - GtkWidget *lbl_qmax = gtk_label_new(_("qmax: ")); - gtk_misc_set_alignment (GTK_MISC (lbl_qmax), 1, 0.5); - gtk_grid_attach (GTK_GRID(table), lbl_qmax, 0, line, 1 ,1); - gtk_widget_show (lbl_qmax); - - GtkWidget *qmax = gtk_spin_button_new_with_range(1,60,1); - gtk_editable_set_editable(GTK_EDITABLE(qmax),TRUE); - gtk_spin_button_set_value (GTK_SPIN_BUTTON(qmax), codec_defaults->qmax); - - gtk_grid_attach (GTK_GRID(table), qmax, 1, line, 1, 1); - gtk_widget_show (qmax); - line++; - - GtkWidget *lbl_qmin = gtk_label_new(_("qmin: ")); - gtk_misc_set_alignment (GTK_MISC (lbl_qmin), 1, 0.5); - gtk_grid_attach (GTK_GRID(table), lbl_qmin, 0, line, 1, 1); - gtk_widget_show (lbl_qmin); - - GtkWidget *qmin = gtk_spin_button_new_with_range(1,31,1); - gtk_editable_set_editable(GTK_EDITABLE(qmin),TRUE); - gtk_spin_button_set_value (GTK_SPIN_BUTTON(qmin), codec_defaults->qmin); - - gtk_grid_attach (GTK_GRID(table), qmin, 1, line, 1, 1); - gtk_widget_show (qmin); - line++; - - GtkWidget *lbl_max_qdiff = gtk_label_new(_("max. qdiff: ")); - gtk_misc_set_alignment (GTK_MISC (lbl_max_qdiff), 1, 0.5); - gtk_grid_attach (GTK_GRID(table), lbl_max_qdiff, 0, line, 1, 1); - gtk_widget_show (lbl_max_qdiff); - - GtkWidget *max_qdiff = gtk_spin_button_new_with_range(1,4,1); - gtk_editable_set_editable(GTK_EDITABLE(max_qdiff),TRUE); - gtk_spin_button_set_value (GTK_SPIN_BUTTON(max_qdiff), codec_defaults->max_qdiff); - - gtk_grid_attach (GTK_GRID(table), max_qdiff, 1, line, 1, 1); - gtk_widget_show (max_qdiff); - line++; - - GtkWidget *lbl_dia = gtk_label_new(_("dia size: ")); - gtk_misc_set_alignment (GTK_MISC (lbl_dia), 1, 0.5); - gtk_grid_attach (GTK_GRID(table), lbl_dia, 0, line, 1, 1); - gtk_widget_show (lbl_dia); - - GtkWidget *dia = gtk_spin_button_new_with_range(-1,4,1); - gtk_editable_set_editable(GTK_EDITABLE(dia),TRUE); - gtk_spin_button_set_value (GTK_SPIN_BUTTON(dia), codec_defaults->dia); - - gtk_grid_attach (GTK_GRID(table), dia, 1, line, 1, 1); - gtk_widget_show (dia); - line++; - - GtkWidget *lbl_pre_dia = gtk_label_new(_("pre dia size: ")); - gtk_misc_set_alignment (GTK_MISC (lbl_pre_dia), 1, 0.5); - gtk_grid_attach (GTK_GRID(table), lbl_pre_dia, 0, line, 1, 1); - gtk_widget_show (lbl_pre_dia); - - GtkWidget *pre_dia = gtk_spin_button_new_with_range(1,4,1); - gtk_editable_set_editable(GTK_EDITABLE(pre_dia),TRUE); - gtk_spin_button_set_value (GTK_SPIN_BUTTON(pre_dia), codec_defaults->pre_dia); - - gtk_grid_attach (GTK_GRID(table), pre_dia, 1, line, 1, 1); - gtk_widget_show (pre_dia); - line++; - - GtkWidget *lbl_pre_me = gtk_label_new(_("pre me: ")); - gtk_misc_set_alignment (GTK_MISC (lbl_pre_me), 1, 0.5); - gtk_grid_attach (GTK_GRID(table), lbl_pre_me, 0, line, 1, 1); - gtk_widget_show (lbl_pre_me); - - GtkWidget *pre_me = gtk_spin_button_new_with_range(0,2,1); - gtk_editable_set_editable(GTK_EDITABLE(pre_me),TRUE); - gtk_spin_button_set_value (GTK_SPIN_BUTTON(pre_me), codec_defaults->pre_me); - - gtk_grid_attach (GTK_GRID(table), pre_me, 1, line, 1, 1); - gtk_widget_show (pre_me); - line++; - - GtkWidget *lbl_me_pre_cmp = gtk_label_new(_("pre cmp: ")); - gtk_misc_set_alignment (GTK_MISC (lbl_me_pre_cmp), 1, 0.5); - gtk_grid_attach (GTK_GRID(table), lbl_me_pre_cmp, 0, line, 1, 1); - gtk_widget_show (lbl_me_pre_cmp); - - GtkWidget *me_pre_cmp = gtk_spin_button_new_with_range(0,6,1); - gtk_editable_set_editable(GTK_EDITABLE(me_pre_cmp),TRUE); - gtk_spin_button_set_value (GTK_SPIN_BUTTON(me_pre_cmp), codec_defaults->me_pre_cmp); - - gtk_grid_attach (GTK_GRID(table), me_pre_cmp, 1, line, 1, 1); - gtk_widget_show (me_pre_cmp); - line++; - - GtkWidget *lbl_me_cmp = gtk_label_new(_("cmp: ")); - gtk_misc_set_alignment (GTK_MISC (lbl_me_cmp), 1, 0.5); - gtk_grid_attach (GTK_GRID(table), lbl_me_cmp, 0, line, 1, 1); - gtk_widget_show (lbl_me_cmp); - - GtkWidget *me_cmp = gtk_spin_button_new_with_range(0,6,1); - gtk_editable_set_editable(GTK_EDITABLE(me_cmp),TRUE); - gtk_spin_button_set_value (GTK_SPIN_BUTTON(me_cmp), codec_defaults->me_cmp); - - gtk_grid_attach (GTK_GRID(table), me_cmp, 1, line, 1, 1); - gtk_widget_show (me_cmp); - line++; - - GtkWidget *lbl_me_sub_cmp = gtk_label_new(_("sub cmp: ")); - gtk_misc_set_alignment (GTK_MISC (lbl_me_sub_cmp), 1, 0.5); - gtk_grid_attach (GTK_GRID(table), lbl_me_sub_cmp, 0, line, 1, 1); - gtk_widget_show (lbl_me_sub_cmp); - - GtkWidget *me_sub_cmp = gtk_spin_button_new_with_range(0,6,1); - gtk_editable_set_editable(GTK_EDITABLE(me_sub_cmp),TRUE); - gtk_spin_button_set_value (GTK_SPIN_BUTTON(me_sub_cmp), codec_defaults->me_sub_cmp); - - gtk_grid_attach (GTK_GRID(table), me_sub_cmp, 1, line, 1, 1); - gtk_widget_show (me_sub_cmp); - line++; - - GtkWidget *lbl_last_pred = gtk_label_new(_("last predictor count: ")); - gtk_misc_set_alignment (GTK_MISC (lbl_last_pred), 1, 0.5); - gtk_grid_attach (GTK_GRID(table), lbl_last_pred, 0, line, 1, 1); - gtk_widget_show (lbl_last_pred); - - GtkWidget *last_pred = gtk_spin_button_new_with_range(1,3,1); - gtk_editable_set_editable(GTK_EDITABLE(last_pred),TRUE); - gtk_spin_button_set_value (GTK_SPIN_BUTTON(last_pred), codec_defaults->last_pred); - - gtk_grid_attach (GTK_GRID(table), last_pred, 1, line, 1, 1); - gtk_widget_show (last_pred); - line++; - - GtkWidget *lbl_gop_size = gtk_label_new(_("gop size: ")); - gtk_misc_set_alignment (GTK_MISC (lbl_gop_size), 1, 0.5); - gtk_grid_attach (GTK_GRID(table), lbl_gop_size, 0, line, 1, 1); - gtk_widget_show (lbl_gop_size); - - GtkWidget *gop_size = gtk_spin_button_new_with_range(1,250,1); - gtk_editable_set_editable(GTK_EDITABLE(gop_size),TRUE); - gtk_spin_button_set_value (GTK_SPIN_BUTTON(gop_size), codec_defaults->gop_size); - - gtk_grid_attach (GTK_GRID(table), gop_size, 1, line, 1, 1); - gtk_widget_show (gop_size); - line++; - - GtkWidget *lbl_qcompress = gtk_label_new(_("qcompress: ")); - gtk_misc_set_alignment (GTK_MISC (lbl_qcompress), 1, 0.5); - gtk_grid_attach (GTK_GRID(table), lbl_qcompress, 0, line, 1, 1); - gtk_widget_show (lbl_qcompress); - - GtkWidget *qcompress = gtk_spin_button_new_with_range(0,1,0.1); - gtk_editable_set_editable(GTK_EDITABLE(qcompress),TRUE); - gtk_spin_button_set_value (GTK_SPIN_BUTTON(qcompress), codec_defaults->qcompress); - - gtk_grid_attach (GTK_GRID(table), qcompress, 1, line, 1 ,1); - gtk_widget_show (qcompress); - line++; - - GtkWidget *lbl_qblur = gtk_label_new(_("qblur: ")); - gtk_misc_set_alignment (GTK_MISC (lbl_qblur), 1, 0.5); - gtk_grid_attach (GTK_GRID(table), lbl_qblur, 0, line, 1 ,1); - gtk_widget_show (lbl_qblur); - - GtkWidget *qblur = gtk_spin_button_new_with_range(0,1,0.1); - gtk_editable_set_editable(GTK_EDITABLE(qblur),TRUE); - gtk_spin_button_set_value (GTK_SPIN_BUTTON(qblur), codec_defaults->qblur); - - gtk_grid_attach (GTK_GRID(table), qblur, 1, line, 1 ,1); - gtk_widget_show (qblur); - line++; - - GtkWidget *lbl_subq = gtk_label_new(_("subq: ")); - gtk_misc_set_alignment (GTK_MISC (lbl_subq), 1, 0.5); - gtk_grid_attach (GTK_GRID(table), lbl_subq, 0, line, 1 ,1); - gtk_widget_show (lbl_subq); - - GtkWidget *subq = gtk_spin_button_new_with_range(0,8,1); - gtk_editable_set_editable(GTK_EDITABLE(subq),TRUE); - gtk_spin_button_set_value (GTK_SPIN_BUTTON(subq), codec_defaults->subq); - - gtk_grid_attach (GTK_GRID(table), subq, 1, line, 1 ,1); - gtk_widget_show (subq); - line++; - - GtkWidget *lbl_framerefs = gtk_label_new(_("framerefs: ")); - gtk_misc_set_alignment (GTK_MISC (lbl_framerefs), 1, 0.5); - gtk_grid_attach (GTK_GRID(table), lbl_framerefs, 0, line, 1 ,1); - gtk_widget_show (lbl_framerefs); - - GtkWidget *framerefs = gtk_spin_button_new_with_range(0,12,1); - gtk_editable_set_editable(GTK_EDITABLE(framerefs),TRUE); - gtk_spin_button_set_value (GTK_SPIN_BUTTON(framerefs), codec_defaults->framerefs); - - gtk_grid_attach (GTK_GRID(table), framerefs, 1, line, 1 ,1); - gtk_widget_show (framerefs); - line++; - - GtkWidget *lbl_me_method = gtk_label_new(_("me method: ")); - gtk_misc_set_alignment (GTK_MISC (lbl_me_method), 1, 0.5); - gtk_grid_attach (GTK_GRID(table), lbl_me_method, 0, line, 1 ,1); - gtk_widget_show (lbl_me_method); - - GtkWidget *me_method = gtk_spin_button_new_with_range(1,10,1); - gtk_editable_set_editable(GTK_EDITABLE(me_method),TRUE); - gtk_spin_button_set_value (GTK_SPIN_BUTTON(me_method), codec_defaults->me_method); - - gtk_grid_attach (GTK_GRID(table), me_method, 1, line, 1 ,1); - gtk_widget_show (me_method); - line++; - - GtkWidget *lbl_mb_decision = gtk_label_new(_("mb decision: ")); - gtk_misc_set_alignment (GTK_MISC (lbl_mb_decision), 1, 0.5); - gtk_grid_attach (GTK_GRID(table), lbl_mb_decision, 0, line, 1 ,1); - gtk_widget_show (lbl_mb_decision); - - GtkWidget *mb_decision = gtk_spin_button_new_with_range(0,2,1); - gtk_editable_set_editable(GTK_EDITABLE(mb_decision),TRUE); - gtk_spin_button_set_value (GTK_SPIN_BUTTON(mb_decision), codec_defaults->mb_decision); - - gtk_grid_attach (GTK_GRID(table), mb_decision, 1, line, 1 ,1); - gtk_widget_show (mb_decision); - line++; - - GtkWidget *lbl_max_b_frames = gtk_label_new(_("max B frames: ")); - gtk_misc_set_alignment (GTK_MISC (lbl_max_b_frames), 1, 0.5); - gtk_grid_attach (GTK_GRID(table), lbl_max_b_frames, 0, line, 1 ,1); - gtk_widget_show (lbl_max_b_frames); - - GtkWidget *max_b_frames = gtk_spin_button_new_with_range(0,4,1); - gtk_editable_set_editable(GTK_EDITABLE(max_b_frames),TRUE); - gtk_spin_button_set_value (GTK_SPIN_BUTTON(max_b_frames), codec_defaults->max_b_frames); - - gtk_grid_attach (GTK_GRID(table), max_b_frames, 1, line, 1 ,1); - gtk_widget_show (max_b_frames); - line++; - - GtkWidget *lbl_num_threads = gtk_label_new(_("num threads: ")); - gtk_misc_set_alignment (GTK_MISC (lbl_num_threads), 1, 0.5); - gtk_grid_attach (GTK_GRID(table), lbl_num_threads, 0, line, 1 ,1); - gtk_widget_show (lbl_num_threads); - - GtkWidget *num_threads = gtk_spin_button_new_with_range(0,8,1); - gtk_editable_set_editable(GTK_EDITABLE(num_threads),TRUE); - gtk_spin_button_set_value (GTK_SPIN_BUTTON(num_threads), codec_defaults->num_threads); - - gtk_grid_attach (GTK_GRID(table), num_threads, 1, line, 1 ,1); - gtk_widget_show (num_threads); - line++; - - GtkWidget *content_area = gtk_dialog_get_content_area (GTK_DIALOG (codec_dialog)); - gtk_container_add (GTK_CONTAINER (content_area), table); - gtk_widget_show (table); - - gint result = gtk_dialog_run (GTK_DIALOG (codec_dialog)); - switch (result) - { - case GTK_RESPONSE_ACCEPT: - codec_defaults->fps = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON(enc_fps)); - codec_defaults->monotonic_pts = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(monotonic_pts)); - codec_defaults->bit_rate = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON(bit_rate)); - codec_defaults->qmax = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON(qmax)); - codec_defaults->qmin = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON(qmin)); - codec_defaults->max_qdiff = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON(max_qdiff)); - codec_defaults->dia = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON(dia)); - codec_defaults->pre_dia = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON(pre_dia)); - codec_defaults->pre_me = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON(pre_me)); - codec_defaults->me_pre_cmp = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON(me_pre_cmp)); - codec_defaults->me_cmp = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON(me_cmp)); - codec_defaults->me_sub_cmp = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON(me_sub_cmp)); - codec_defaults->last_pred = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON(last_pred)); - codec_defaults->gop_size = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON(gop_size)); - codec_defaults->qcompress = (float) gtk_spin_button_get_value (GTK_SPIN_BUTTON(qcompress)); - codec_defaults->qblur = (float) gtk_spin_button_get_value (GTK_SPIN_BUTTON(qblur)); - codec_defaults->subq = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON(subq)); - codec_defaults->framerefs = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON(framerefs)); - codec_defaults->me_method = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON(me_method)); - codec_defaults->mb_decision = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON(mb_decision)); - codec_defaults->max_b_frames = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON(max_b_frames)); - codec_defaults->num_threads = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON(num_threads)); - break; - default: - // do nothing since dialog was cancelled - break; - } - gtk_widget_destroy (codec_dialog); - -} - -void -lavc_audio_properties(GtkMenuItem * codec_prop, struct ALL_DATA *all_data) -{ - struct GLOBAL *global = all_data->global; - struct GWIDGET *gwidget = all_data->gwidget; - - int line = 0; - acodecs_data *codec_defaults = get_aud_codec_defaults(global->AudCodec); - - if (!(codec_defaults->avcodec)) return; - - GtkWidget *codec_dialog = gtk_dialog_new_with_buttons (_("audio codec values"), - GTK_WINDOW(gwidget->mainwin), - GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT, - GTK_STOCK_OK, - GTK_RESPONSE_ACCEPT, - GTK_STOCK_CANCEL, - GTK_RESPONSE_REJECT, - NULL); - - GtkWidget *table = gtk_grid_new(); - gtk_grid_set_column_homogeneous (GTK_GRID(table), TRUE); - - /*bit rate*/ - GtkWidget *lbl_bit_rate = gtk_label_new(_("bit rate: ")); - gtk_misc_set_alignment (GTK_MISC (lbl_bit_rate), 1, 0.5); - gtk_grid_attach (GTK_GRID(table), lbl_bit_rate, 0, line, 1, 1); - gtk_widget_show (lbl_bit_rate); - - GtkWidget *bit_rate = gtk_spin_button_new_with_range(48000,384000,8000); - gtk_editable_set_editable(GTK_EDITABLE(bit_rate),TRUE); - gtk_spin_button_set_value (GTK_SPIN_BUTTON(bit_rate), codec_defaults->bit_rate); - - gtk_grid_attach (GTK_GRID(table), bit_rate, 1, line, 1, 1); - gtk_widget_show (bit_rate); - line++; - - /*sample format*/ - GtkWidget *lbl_sample_fmt = gtk_label_new(_("sample format: ")); - gtk_misc_set_alignment (GTK_MISC (lbl_sample_fmt), 1, 0.5); - gtk_grid_attach (GTK_GRID(table), lbl_sample_fmt, 0, line, 1, 1); - gtk_widget_show (lbl_sample_fmt); - - GtkWidget *sample_fmt = gtk_spin_button_new_with_range(0, AV_SAMPLE_FMT_NB, 1); - gtk_editable_set_editable(GTK_EDITABLE(sample_fmt),TRUE); - gtk_spin_button_set_value (GTK_SPIN_BUTTON(sample_fmt), codec_defaults->sample_format); - - gtk_grid_attach (GTK_GRID(table), sample_fmt, 1, line, 1, 1); - gtk_widget_show (sample_fmt); - line++; - - GtkWidget *content_area = gtk_dialog_get_content_area (GTK_DIALOG (codec_dialog)); - gtk_container_add (GTK_CONTAINER (content_area), table); - gtk_widget_show (table); - - gint result = gtk_dialog_run (GTK_DIALOG (codec_dialog)); - switch (result) - { - case GTK_RESPONSE_ACCEPT: - codec_defaults->bit_rate = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON(bit_rate)); - codec_defaults->sample_format = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON(sample_fmt)); - break; - default: - // do nothing since dialog was cancelled - break; - } - gtk_widget_destroy (codec_dialog); - -} - -/*------------------------------ Event handlers -------------------------------*/ -/* window close */ -gint -delete_event (GtkWidget *widget, GdkEventConfigure *event, void *data) -{ - struct ALL_DATA *all_data = (struct ALL_DATA *) data; - - shutd(0, all_data);//shutDown - return 0; -} - -/*--------------------------- controls enable/disable --------------------------*/ -/*image controls*/ -void -set_sensitive_img_contrls (const int flag, struct GWIDGET *gwidget) -{ - gtk_widget_set_sensitive(gwidget->menu_photo_top, flag);/*image menu entry*/ -} - -/* sound controls*/ -void -set_sensitive_snd_contrls (const int flag, struct GWIDGET *gwidget) -{ - gtk_widget_set_sensitive (gwidget->SndAPI, flag); - gtk_widget_set_sensitive (gwidget->SndSampleRate, flag); - gtk_widget_set_sensitive (gwidget->SndDevice, flag); - gtk_widget_set_sensitive (gwidget->SndNumChan, flag); -} - -/*video controls*/ -void -set_sensitive_vid_contrls (const int flag, const int sndEnable, struct GWIDGET *gwidget) -{ - /* sound and video compression controls */ - gtk_widget_set_sensitive(gwidget->menu_video_top, flag);/*video menu entry*/ - gtk_widget_set_sensitive (gwidget->SndEnable, flag); - /* resolution and input format combos */ - gtk_widget_set_sensitive (gwidget->Resolution, flag); - gtk_widget_set_sensitive (gwidget->InpType, flag); - gtk_widget_set_sensitive (gwidget->FrameRate, flag); - - if(sndEnable > 0) - { - set_sensitive_snd_contrls(flag, gwidget); - } - - gwidget->vid_widget_state = flag; -} - -gboolean -key_pressed (GtkWidget *win, GdkEventKey *event, struct ALL_DATA *all_data) -{ - struct VidState *s = all_data->s; - struct GWIDGET *gwidget = all_data->gwidget; - struct vdIn *videoIn = all_data->videoIn; - //struct GLOBAL *global = all_data->global; - /* If we have modifiers, and either Ctrl, Mod1 (Alt), or any - * of Mod3 to Mod5 (Mod2 is num-lock...) are pressed, we - * let Gtk+ handle the key */ - //printf("camera key pressed (key:%i)\n", event->keyval); - if (event->state != 0 - && ((event->state & GDK_CONTROL_MASK) - || (event->state & GDK_MOD1_MASK) - || (event->state & GDK_MOD3_MASK) - || (event->state & GDK_MOD4_MASK) - || (event->state & GDK_MOD5_MASK))) - return FALSE; - - if(videoIn->PanTilt) - { - switch (event->keyval) - { - case GDK_KEY_Down: - case GDK_KEY_KP_Down: - /*Tilt Down*/ - uvcPanTilt (videoIn->fd, s->control_list, 0, 1); - return TRUE; - - case GDK_KEY_Up: - case GDK_KEY_KP_Up: - /*Tilt UP*/ - uvcPanTilt (videoIn->fd, s->control_list, 0, -1); - return TRUE; - - case GDK_KEY_Left: - case GDK_KEY_KP_Left: - /*Pan Left*/ - uvcPanTilt (videoIn->fd, s->control_list, 1, 1); - return TRUE; - - case GDK_KEY_Right: - case GDK_KEY_KP_Right: - /*Pan Right*/ - uvcPanTilt (videoIn->fd, s->control_list, 1, -1); - return TRUE; - - default: - break; - } - } - - switch (event->keyval) - { - case GDK_KEY_WebCam: - - /* camera button pressed - trigger image capture*/ - if (all_data->global->default_action == 0) { - gtk_button_clicked (GTK_BUTTON(gwidget->CapImageButt)); - } else { - gtk_toggle_button_toggled (GTK_TOGGLE_BUTTON(gwidget->CapVidButt)); - } - return TRUE; - - case GDK_KEY_V: - case GDK_KEY_v: - gtk_toggle_button_toggled (GTK_TOGGLE_BUTTON(gwidget->CapVidButt)); - return TRUE; - - case GDK_KEY_I: - case GDK_KEY_i: - gtk_button_clicked (GTK_BUTTON(gwidget->CapImageButt)); - return TRUE; - - } - - return FALSE; -} - - -/*----------------------------- Callbacks ------------------------------------*/ -/*slider controls callback*/ -void -slider_changed (GtkRange * range, struct ALL_DATA *all_data) -{ - struct VidState *s = all_data->s; - //struct GLOBAL *global = all_data->global; - struct vdIn *videoIn = all_data->videoIn; - - int id = GPOINTER_TO_INT(g_object_get_data (G_OBJECT (range), "control_info")); - Control *c = get_ctrl_by_id(s->control_list, id); - - int val = (int) gtk_range_get_value (range); - - c->value = val; - - set_ctrl(videoIn->fd, s->control_list, id); - - //update spin - if(c->spinbutton) - { - //disable widget signals - g_signal_handlers_block_by_func(GTK_SPIN_BUTTON(c->spinbutton), - G_CALLBACK (spin_changed), all_data); - gtk_spin_button_set_value (GTK_SPIN_BUTTON(c->spinbutton), c->value); - //enable widget signals - g_signal_handlers_unblock_by_func(GTK_SPIN_BUTTON(c->spinbutton), - G_CALLBACK (spin_changed), all_data); - } - - s = NULL; - //global = NULL; - videoIn = NULL; -} - -/*spin controls callback*/ -void -spin_changed (GtkSpinButton * spin, struct ALL_DATA *all_data) -{ - struct VidState *s = all_data->s; - //struct GLOBAL *global = all_data->global; - struct vdIn *videoIn = all_data->videoIn; - - int id = GPOINTER_TO_INT(g_object_get_data (G_OBJECT (spin), "control_info")); - Control *c = get_ctrl_by_id(s->control_list, id); - - int val = gtk_spin_button_get_value_as_int (spin); - c->value = val; - - set_ctrl(videoIn->fd, s->control_list, id); - - if(c->widget) - { - //disable widget signals - g_signal_handlers_block_by_func(GTK_SCALE (c->widget), - G_CALLBACK (slider_changed), all_data); - gtk_range_set_value (GTK_RANGE (c->widget), c->value); - //enable widget signals - g_signal_handlers_unblock_by_func(GTK_SCALE (c->widget), - G_CALLBACK (slider_changed), all_data); - } - - s = NULL; - //global = NULL; - videoIn = NULL; -} - -/*set video frame jpeg quality/compression*/ -void -set_jpeg_comp_clicked (GtkButton * jpeg_comp, struct ALL_DATA *all_data) -{ - struct GWIDGET *gwidget = all_data->gwidget; - struct vdIn *videoIn = all_data->videoIn; - - videoIn->jpgcomp.quality = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON(gwidget->jpeg_comp)); - - videoIn->setJPEGCOMP = 1; - - videoIn = NULL; -} - -/*check box controls callback*/ -void -autofocus_changed (GtkToggleButton * toggle, struct ALL_DATA *all_data) -{ - struct VidState *s = all_data->s; - struct GLOBAL *global = all_data->global; - struct focusData *AFdata = all_data->AFdata; - struct vdIn *videoIn = all_data->videoIn; - - //int id = GPOINTER_TO_INT(g_object_get_data (G_OBJECT (toggle), "control_info")); - Control *c = get_ctrl_by_id(s->control_list, AFdata->id); - - int val = gtk_toggle_button_get_active (toggle) ? 1 : 0; - - /*if autofocus disable manual focus control*/ - gtk_widget_set_sensitive (c->widget, !val); - gtk_widget_set_sensitive (c->spinbutton, !val); - - /*reset flag*/ - AFdata->flag = 0; - AFdata->ind = 0; - AFdata->focus = -1; /*reset focus*/ - AFdata->right = AFdata->f_max; - AFdata->left = AFdata->i_step; - /*set focus to first value if autofocus enabled*/ - if (val>0) - { - c->value = AFdata->focus; - set_ctrl(videoIn->fd, s->control_list, AFdata->id); - } - global->autofocus = val; - - global = NULL; - AFdata = NULL; - videoIn = NULL; -} - - -void -check_changed (GtkToggleButton * toggle, struct ALL_DATA *all_data) -{ - struct VidState *s = all_data->s; - //struct GLOBAL *global = all_data->global; - struct vdIn *videoIn = all_data->videoIn; - - int id = GPOINTER_TO_INT(g_object_get_data (G_OBJECT (toggle), "control_info")); - Control *c = get_ctrl_by_id(s->control_list, id); - - int val = gtk_toggle_button_get_active (toggle) ? 1 : 0; - - c->value = val; - - set_ctrl(videoIn->fd, s->control_list, id); - - if(id == V4L2_CID_DISABLE_PROCESSING_LOGITECH) - { - if (c->value > 0) videoIn->isbayer=1; - else videoIn->isbayer=0; - - //restart stream by changing fps - videoIn->setFPS = 1; - } - - s = NULL; - //global = NULL; - videoIn = NULL; -} - -void -pix_ord_changed (GtkComboBox * combo, struct ALL_DATA *all_data) -{ - struct vdIn *videoIn = all_data->videoIn; - - int index = gtk_combo_box_get_active (combo); - videoIn->pix_order=index; - - videoIn=NULL; -} - -/*combobox controls callback*/ -void -combo_changed (GtkComboBox * combo, struct ALL_DATA *all_data) -{ - struct VidState *s = all_data->s; - struct vdIn *videoIn = all_data->videoIn; - - int id = GPOINTER_TO_INT(g_object_get_data (G_OBJECT (combo), "control_info")); - Control *c = get_ctrl_by_id(s->control_list, id); - - int index = gtk_combo_box_get_active (combo); - c->value = c->menu[index].index; - - set_ctrl(videoIn->fd, s->control_list, id); - - s = NULL; - videoIn = NULL; -} - -/* generic button control */ -void -button_clicked (GtkButton * Button, struct ALL_DATA *all_data) -{ - struct VidState *s = all_data->s; - struct vdIn *videoIn = all_data->videoIn; - - int id = GPOINTER_TO_INT(g_object_get_data (G_OBJECT (Button), "control_info")); - Control *c = get_ctrl_by_id(s->control_list, id); - - switch(c->control.type) - { -#ifdef V4L2_CTRL_TYPE_STRING - case V4L2_CTRL_TYPE_STRING: - strncpy(c->string, gtk_entry_get_text(c->widget), c->control.maximum); - break; -#endif -#ifdef V4L2_CTRL_TYPE_INTEGER64 - case V4L2_CTRL_TYPE_INTEGER64: - { - char* text_input = g_strdup(gtk_entry_get_text(c->widget)); - text_input = g_strstrip(text_input); - if( g_str_has_prefix(text_input,"0x")) //hex format - { - text_input = g_strcanon(text_input,"0123456789ABCDEFabcdef", ''); - c->value64 = g_ascii_strtoll(text_input, NULL, 16); - } - else //decimal or hex ? - { - text_input = g_strcanon(text_input,"0123456789ABCDEFabcdef", ''); - c->value64 = g_ascii_strtoll(text_input, NULL, 0); - } - g_free(text_input); - text_input = g_strdup_printf("0x%" PRIx64 "", c->value64); //print in hex - gtk_entry_set_text (c->widget, text_input); - g_free(text_input); - } - break; -#endif -#ifdef V4L2_CTRL_TYPE_BITMASK - case V4L2_CTRL_TYPE_BITMASK: - { - char* text_input = g_strdup(gtk_entry_get_text(c->widget)); - text_input = g_strcanon(text_input,"0123456789ABCDEFabcdef", ''); - c->value = (int32_t) g_ascii_strtoll(text_input, NULL, 16); - g_free(text_input); - text_input = g_strdup_printf("0x%x", c->value); - gtk_entry_set_text(c->widget, text_input); - g_free(text_input); - } - break; -#endif - default: //button - c->value = 1; - break; - } - - set_ctrl(videoIn->fd, s->control_list, id); -} - -/* Pan Tilt button 1 control */ -void -button_PanTilt1_clicked (GtkButton * Button, struct ALL_DATA *all_data) -{ - struct VidState *s = all_data->s; - struct vdIn *videoIn = all_data->videoIn; - - int id = GPOINTER_TO_INT(g_object_get_data (G_OBJECT (Button), "control_info")); - Control *c = get_ctrl_by_id(s->control_list, id); - - int val = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON(c->spinbutton)); - c->value = val; - set_ctrl(videoIn->fd, s->control_list, id); -} - -/* Pan Tilt button 2 control */ -void -button_PanTilt2_clicked (GtkButton * Button, struct ALL_DATA *all_data) -{ - struct VidState *s = all_data->s; - struct vdIn *videoIn = all_data->videoIn; - - int id = GPOINTER_TO_INT(g_object_get_data (G_OBJECT (Button), "control_info")); - - if(id == V4L2_CID_PAN_RELATIVE) - { - Control *c = get_ctrl_by_id(s->control_list, V4L2_CID_TILT_RELATIVE); - c->value = 0; - set_ctrl(videoIn->fd, s->control_list, V4L2_CID_TILT_RELATIVE); - } - else - { - Control *c = get_ctrl_by_id(s->control_list, V4L2_CID_PAN_RELATIVE); - c->value = 0; - set_ctrl(videoIn->fd, s->control_list, V4L2_CID_PAN_RELATIVE); - } - - Control *c = get_ctrl_by_id(s->control_list, id); - - int val = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON(c->spinbutton)); - c->value = -val; - set_ctrl(videoIn->fd, s->control_list, id); -} - -/* set focus (for focus motor cameras ex: Logitech Orbit/Sphere and 9000 pro) */ -void -setfocus_clicked (GtkButton * FocusButton, struct ALL_DATA *all_data) -{ - struct focusData *AFdata = all_data->AFdata; - struct vdIn *videoIn = all_data->videoIn; - struct VidState *s = all_data->s; - - AFdata->setFocus = 1; - AFdata->ind = 0; - AFdata->flag = 0; - AFdata->right = 255; - AFdata->left = 8; - AFdata->focus = -1; /*reset focus*/ - - Control *c = get_ctrl_by_id(s->control_list, AFdata->id); - c->value = AFdata->focus; - - set_ctrl(videoIn->fd, s->control_list, AFdata->id); - - AFdata = NULL; - videoIn = NULL; -} - -void -Devices_changed (GtkComboBox * Devices, struct ALL_DATA *all_data) -{ - struct GWIDGET *gwidget = all_data->gwidget; - struct GLOBAL *global = all_data->global; - struct vdIn *videoIn = all_data->videoIn; - - GError *error=NULL; - - int index = gtk_combo_box_get_active(Devices); - if(index == videoIn->listDevices->current_device) - return; - g_free(global->videodevice); - global->videodevice = g_strdup(videoIn->listDevices->listVidDevices[index].device); - gchar *command = g_strjoin("", - g_get_prgname(), - " --device=", - global->videodevice, - NULL); - - gwidget->restartdialog = gtk_dialog_new_with_buttons (_("start new"), - GTK_WINDOW(gwidget->mainwin), - GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT, - _("restart"), - GTK_RESPONSE_ACCEPT, - _("new"), - GTK_RESPONSE_REJECT, - _("cancel"), - GTK_RESPONSE_CANCEL, - NULL); - - GtkWidget * content_area = gtk_dialog_get_content_area (GTK_DIALOG (gwidget->restartdialog)); - GtkWidget *message = gtk_label_new (_("launch new process or restart?.\n\n")); - gtk_container_add (GTK_CONTAINER (content_area), message); - gtk_widget_show_all(gwidget->restartdialog); - - gint result = gtk_dialog_run (GTK_DIALOG (gwidget->restartdialog)); - switch (result) - { - case GTK_RESPONSE_ACCEPT: - /*restart app*/ - shutd(1, all_data); - break; - case GTK_RESPONSE_REJECT: - /*spawn new process*/ - if(!(g_spawn_command_line_async(command, &error))) - { - g_printerr ("spawn failed: %s\n", error->message); - g_error_free ( error ); - } - break; - default: - /* do nothing since dialog was canceled*/ - break; - } - /*reset to current device*/ - gtk_combo_box_set_active(GTK_COMBO_BOX(Devices), videoIn->listDevices->current_device); - - gtk_widget_destroy (gwidget->restartdialog); - g_free(command); -} - -/*resolution control callback*/ -void -resolution_changed (GtkComboBox * Resolution, struct ALL_DATA *all_data) -{ - struct GWIDGET *gwidget = all_data->gwidget; - struct GLOBAL *global = all_data->global; - struct vdIn *videoIn = all_data->videoIn; - - VidCap *listVidCap = NULL; - int current_format = videoIn->listFormats->current_format; - int cmb_index = gtk_combo_box_get_active(Resolution); - char temp_str[20]; - - __LOCK_MUTEX(__VMUTEX); - gboolean capVid = videoIn->capVid; - __UNLOCK_MUTEX(__VMUTEX); - /*disable fps combobox signals*/ - g_signal_handlers_block_by_func(GTK_COMBO_BOX_TEXT(gwidget->FrameRate), G_CALLBACK (FrameRate_changed), all_data); - /* clear out the old fps list... */ - GtkListStore *store = GTK_LIST_STORE(gtk_combo_box_get_model (GTK_COMBO_BOX(gwidget->FrameRate))); - gtk_list_store_clear(store); - - - listVidCap = &videoIn->listFormats->listVidFormats[current_format].listVidCap[cmb_index]; - global->width = listVidCap->width; - global->height = listVidCap->height; - - /*check if frame rate is available at the new resolution*/ - int i=0; - int deffps=0; - - for ( i = 0 ; i < listVidCap->numb_frates ; i++) - { - g_snprintf(temp_str,18,"%i/%i fps", listVidCap->framerate_denom[i], - listVidCap->framerate_num[i]); - gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(gwidget->FrameRate),temp_str); - - if (( global->fps_num == listVidCap->framerate_num[i]) && - (global->fps == listVidCap->framerate_denom[i])) - deffps=i;//set selected - } - - /*set default fps in combo*/ - gtk_combo_box_set_active(GTK_COMBO_BOX(gwidget->FrameRate),deffps); - - /*enable fps combobox signals*/ - g_signal_handlers_unblock_by_func(GTK_COMBO_BOX_TEXT(gwidget->FrameRate), G_CALLBACK (FrameRate_changed), all_data); - - if (listVidCap->framerate_num) - global->fps_num = listVidCap->framerate_num[deffps]; - - if (listVidCap->framerate_denom) - global->fps = listVidCap->framerate_denom[deffps]; - - if(capVid) - { - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(gwidget->CapVidButt), FALSE); - gdk_flush(); - } - - global->change_res = TRUE; - - gwidget = NULL; - global = NULL; - videoIn = NULL; -} - -/* Input Format control */ -void -InpType_changed(GtkComboBox * InpType, struct ALL_DATA *all_data) -{ - struct GWIDGET *gwidget = all_data->gwidget; - struct GLOBAL *global = all_data->global; - struct vdIn *videoIn = all_data->videoIn; - - int format = 0; - char temp_str[20]; - int index = gtk_combo_box_get_active(InpType); - int i=0; - //int j=0; - int defres = 0; - VidFormats *listVidFormats; - - /*disable resolution combobox signals*/ - g_signal_handlers_block_by_func(GTK_COMBO_BOX_TEXT(gwidget->Resolution), G_CALLBACK (resolution_changed), all_data); - - /* clear out the old resolution list... */ - GtkListStore *store = GTK_LIST_STORE(gtk_combo_box_get_model (GTK_COMBO_BOX(gwidget->Resolution))); - gtk_list_store_clear(store); - - videoIn->listFormats->current_format = index; - listVidFormats = &videoIn->listFormats->listVidFormats[index]; - - format = videoIn->listFormats->listVidFormats[videoIn->listFormats->current_format].format; - get_PixMode(format, global->mode); - - printf("redraw resolution combo for format (%x)\n",format); - /*redraw resolution combo for new format*/ - printf("numb res = %d\n", listVidFormats->numb_res); - for(i = 0 ; i < listVidFormats->numb_res ; i++) - { - if (listVidFormats->listVidCap[i].width>0) - { - g_snprintf(temp_str,18,"%ix%i", listVidFormats->listVidCap[i].width, - listVidFormats->listVidCap[i].height); - gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(gwidget->Resolution),temp_str); - - if ((global->width == listVidFormats->listVidCap[i].width) && - (global->height == listVidFormats->listVidCap[i].height)) - defres=i;//set selected resolution index - } - } - - - global->height = listVidFormats->listVidCap[defres].height; - global->width = listVidFormats->listVidCap[defres].width; - global->format = format; - - /*enable resolution combobox signals*/ - g_signal_handlers_unblock_by_func(GTK_COMBO_BOX_TEXT(gwidget->Resolution), G_CALLBACK (resolution_changed), all_data); - - /*reset resolution/format*/ - gtk_combo_box_set_active(GTK_COMBO_BOX(gwidget->Resolution),defres); - - gwidget = NULL; - global = NULL; - videoIn = NULL; -} - -/*frame rate control callback*/ -void -FrameRate_changed (GtkComboBox * FrameRate, struct ALL_DATA *all_data) -{ - struct GWIDGET *gwidget = all_data->gwidget; - struct GLOBAL *global = all_data->global; - struct vdIn *videoIn = all_data->videoIn; - - int resind = gtk_combo_box_get_active(GTK_COMBO_BOX(gwidget->Resolution)); - - int index = gtk_combo_box_get_active (FrameRate); - - global->fps=videoIn->listFormats->listVidFormats[videoIn->listFormats->current_format].listVidCap[resind].framerate_denom[index]; - global->fps_num=videoIn->listFormats->listVidFormats[videoIn->listFormats->current_format].listVidCap[resind].framerate_num[index]; - - /*fps change is done in two fases: - * 1- in video.c we try to change device fps (and set flag to 2) - * 2- in v4l2uvc.c (uvcGrab) we query and queue the buffers if using MMAP (and reset flag to 0)*/ - videoIn->setFPS=1; - - gwidget = NULL; - global = NULL; - videoIn = NULL; -} - -/*sound sample rate control callback*/ -void -SndSampleRate_changed (GtkComboBox * SampleRate, struct ALL_DATA *all_data) -{ - struct GLOBAL *global = all_data->global; - - global->Sound_SampRateInd = gtk_combo_box_get_active (SampleRate); - global->Sound_SampRate=stdSampleRates[global->Sound_SampRateInd]; - - global = NULL; -} - -/*Audio API control callback*/ -void -SndAPI_changed (GtkComboBox * SoundAPI, struct ALL_DATA *all_data) -{ - struct GLOBAL *global = all_data->global; - struct paRecordData *pdata = all_data->pdata; - //struct GWIDGET *gwidget = all_data->gwidget; - - global->Sound_API=gtk_combo_box_get_active (SoundAPI); - pdata->api = global->Sound_API; - - update_snd_devices(all_data); - - g_print("using audio API n:%d\n",global->Sound_API); - global = NULL; -} - -/*sound device control callback*/ -void -SndDevice_changed (GtkComboBox * SoundDevice, struct ALL_DATA *all_data) -{ - struct GLOBAL *global = all_data->global; - - global->Sound_UseDev=gtk_combo_box_get_active (SoundDevice); - g_print("using device id:%d\n",global->Sound_IndexDev[global->Sound_UseDev].id); - global = NULL; -} - -/*sound channels control callback*/ -void -SndNumChan_changed (GtkComboBox * SoundChan, struct ALL_DATA *all_data) -{ - struct GLOBAL *global = all_data->global; - - /*0-device default 1-mono 2-stereo*/ - global->Sound_NumChanInd = gtk_combo_box_get_active (SoundChan); - global->Sound_NumChan=global->Sound_NumChanInd; - - global = NULL; -} - -/*audio compression control callback*/ -void -AudCodec_menu_changed (GtkRadioMenuItem *acodec_item, struct ALL_DATA *all_data) -{ - - struct GLOBAL *global = all_data->global; - struct GWIDGET *gwidget = all_data->gwidget; - - if (gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(acodec_item))) - { - /**GSList indexes (g_slist_index) are in reverse order: - * last inserted has index 0 - * so count backwards - */ - int num_acodecs = g_slist_length(gwidget->agroup); - int index = g_slist_index (gwidget->agroup, acodec_item); - index = num_acodecs - (index + 1); //reverse order and 0 indexed - fprintf(stderr,"DEBUG: audio codec changed to %i\n", index); - - global->AudCodec = index; - } - - if( global->VidFormat == WEBM_FORMAT && - get_acodec_id(global->AudCodec) != CODEC_ID_VORBIS) - { - //change VidFormat to Matroska - fprintf(stderr, "WARN: webm can only use VORBIS audio codec \n"); - fprintf(stderr, " using matroska muxer instead\n"); - global->VidFormat = MKV_FORMAT; - //FIXME: change file extension if needed - } - - global->Sound_Format = get_aud4cc(global->AudCodec); - - global = NULL; -} - -/*video compression control callback*/ -void -VidCodec_menu_changed (GtkRadioMenuItem *vcodec_item, struct ALL_DATA *all_data) -{ - - struct GLOBAL *global = all_data->global; - struct GWIDGET *gwidget = all_data->gwidget; - - if (gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(vcodec_item))) - { - /**GSList indexes (g_slist_index) are in reverse order: - * last inserted has index 0 - * so count backwards - */ - int num_vcodecs = g_slist_length(gwidget->vgroup); - int index = g_slist_index (gwidget->vgroup, vcodec_item); - index = num_vcodecs - (index + 1); //reverse order and 0 indexed - fprintf(stderr,"DEBUG: video codec changed to %i\n", index); - - global->VidCodec = index; - global->VidCodec_ID = get_vcodec_id(global->VidCodec); - } - - if( global->VidFormat == WEBM_FORMAT && - global->VidCodec_ID != CODEC_ID_VP8) - { - //change VidFormat to Matroska - fprintf(stderr, "WARN: webm can only use VP8 video codec (0x%x != 0x%x)\n", global->VidCodec, CODEC_ID_VP8); - fprintf(stderr, " using matroska muxer instead\n"); - global->VidFormat = MKV_FORMAT; - //FIXME: change file extension if needed - } - - global = NULL; -} - -/* sound enable check box callback */ -void -SndEnable_changed (GtkToggleButton * toggle, struct ALL_DATA *all_data) -{ - struct GWIDGET *gwidget = all_data->gwidget; - struct GLOBAL *global = all_data->global; - - global->Sound_enable = gtk_toggle_button_get_active (toggle) ? 1 : 0; - if (!global->Sound_enable) - { - if(global->debug) g_print("disabling sound.\n"); - set_sensitive_snd_contrls(FALSE, gwidget); - } - else - { - if(global->debug) g_print("enabling sound.\n"); - set_sensitive_snd_contrls(TRUE, gwidget); - } - - gwidget = NULL; - global = NULL; -} - -/* Video Filters check box callback */ -void -FiltEnable_changed(GtkToggleButton * toggle, struct ALL_DATA *all_data) -{ - struct GLOBAL *global = all_data->global; - int filter = GPOINTER_TO_INT(g_object_get_data (G_OBJECT (toggle), "filt_info")); - __LOCK_MUTEX(__GMUTEX); - global->Frame_Flags = gtk_toggle_button_get_active (toggle) ? - (global->Frame_Flags | filter) : - (global->Frame_Flags & ~(filter)); - __UNLOCK_MUTEX(__GMUTEX); - - global = NULL; -} - -/* Audio effect checkbox callback*/ -void -EffEnable_changed(GtkToggleButton * toggle, struct ALL_DATA *all_data) -{ - struct paRecordData *pdata = all_data->pdata; - int effect = GPOINTER_TO_INT(g_object_get_data (G_OBJECT (toggle), "effect_info")); - __LOCK_MUTEX(__AMUTEX); - pdata->snd_Flags = gtk_toggle_button_get_active (toggle) ? - (pdata->snd_Flags | effect) : - (pdata->snd_Flags & ~(effect)); - __UNLOCK_MUTEX(__AMUTEX); - pdata = NULL; -} - -void osdChanged(GtkToggleButton * toggle, struct ALL_DATA *all_data) -{ - struct GLOBAL *global = all_data->global; - int flag = GPOINTER_TO_INT(g_object_get_data (G_OBJECT (toggle), "flag")); - global->osdFlags = gtk_toggle_button_get_active(toggle) ? - (global->osdFlags | flag) : - (global->osdFlags & ~(flag)); -} - -void -image_prefix_toggled(GtkWidget * toggle, struct ALL_DATA *all_data) -{ - //struct GWIDGET *gwidget = all_data->gwidget; - struct GLOBAL *global = all_data->global; - - global->image_inc = gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(toggle)) ? 1 : 0; - - if(global->image_inc > 0) - { - uint64_t suffix = get_file_suffix(global->imgFPath[1], global->imgFPath[0]); - fprintf(stderr, "Image file suffix detected: %" PRIu64 "\n", suffix); - if(suffix >= G_MAXUINT64) - { - global->imgFPath[0] = add_file_suffix(global->imgFPath[0], suffix); - suffix = 0; - } - if(suffix >= 0) - global->image_inc = suffix + 1; - } - - global = NULL; - -} - -void -video_prefix_toggled(GtkWidget * toggle, struct ALL_DATA *all_data) -{ - //struct GWIDGET *gwidget = all_data->gwidget; - struct GLOBAL *global = all_data->global; - - global->vid_inc = gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(toggle)) ? 1 : 0; - - if(global->vid_inc > 0) - { - uint64_t suffix = get_file_suffix(global->vidFPath[1], global->vidFPath[0]); - fprintf(stderr, "Video file suffix detected: %" PRIu64 "\n", suffix); - if(suffix >= G_MAXUINT64) - { - global->vidFPath[0] = add_file_suffix(global->vidFPath[0], suffix); - suffix = 0; - } - if(suffix >= 0) - global->vid_inc = suffix + 1; - } - - global = NULL; - -} - -/*----------------------------- Capture Image --------------------------------*/ -/*image capture button callback*/ -void -capture_image (GtkButton *ImageButt, struct ALL_DATA *all_data) -{ - struct GWIDGET *gwidget = all_data->gwidget; - struct GLOBAL *global = all_data->global; - struct vdIn *videoIn = all_data->videoIn; - - /** a previous image hasn't been captured yet - * no use flaging it again so return - */ - if(videoIn->capImage) - return; - - if ((global->image_timer == 0) && (global->image_inc>0)) - { - videoIn->ImageFName = incFilename(videoIn->ImageFName, - global->imgFPath, - global->image_inc); - - global->image_inc++; - } - else - { - videoIn->ImageFName = joinPath(videoIn->ImageFName, global->imgFPath); - } - - if(global->image_timer > 0) - { - /*auto capture on -> stop it*/ - if (global->image_timer_id > 0) g_source_remove(global->image_timer_id); - global->image_timer=0; - - if(!global->no_display) - { - gtk_button_set_label(GTK_BUTTON(gwidget->CapImageButt),_("Cap. Image (I)")); - set_sensitive_img_contrls(TRUE, gwidget);/*enable image controls*/ - } - } - else - { - videoIn->capImage = TRUE; - } - - if(!global->no_display) - { - char *message = g_strjoin(" ", _("capturing photo to"), videoIn->ImageFName, NULL); - printf("status message: %s\n", message); - gtk_statusbar_pop (GTK_STATUSBAR(gwidget->status_bar), gwidget->status_warning_id); - gtk_statusbar_push (GTK_STATUSBAR(gwidget->status_bar), gwidget->status_warning_id, message); - g_free(message); - } - - gwidget = NULL; - global = NULL; - videoIn = NULL; -} - -/*--------------------------- Capture Video ------------------------------------*/ -/*video capture button callback*/ -void -capture_vid (GtkToggleButton *VidButt, struct ALL_DATA *all_data) -{ - struct GWIDGET *gwidget = all_data->gwidget; - struct paRecordData *pdata = all_data->pdata; - struct GLOBAL *global = all_data->global; - struct vdIn *videoIn = all_data->videoIn; - - __LOCK_MUTEX(__VMUTEX); - gboolean capVid = videoIn->capVid; - __UNLOCK_MUTEX(__VMUTEX); - - if(!global->no_display) - { - - /* disable signals for this callback */ - g_signal_handlers_block_by_func(GTK_TOGGLE_BUTTON(gwidget->CapVidButt), G_CALLBACK (capture_vid), all_data); - /* widgets are enable/disable in create_video.c */ - } - if(global->debug) g_print("Cap Video toggled: %d\n", !capVid); - - if(capVid) /* we are capturing */ - { /****************** Stop Video ************************/ - capVid = FALSE; - __LOCK_MUTEX(__VMUTEX); - videoIn->capVid = capVid; - __UNLOCK_MUTEX(__VMUTEX); - __LOCK_MUTEX(__AMUTEX); - pdata->capVid = capVid; - __UNLOCK_MUTEX(__AMUTEX); - /*join IO thread*/ - if (global->debug) g_print("Shuting Down IO Thread\n"); - __THREAD_JOIN( all_data->IO_thread ); - if (global->debug) g_print("IO Thread finished\n"); - - if(!global->no_display) - { - if(global->debug) g_print("enabling controls\n"); - /*enabling sound and video compression controls*/ - set_sensitive_vid_contrls(TRUE, global->Sound_enable, gwidget); - - gtk_button_set_label(GTK_BUTTON(gwidget->CapVidButt),_("Cap. Video (V)")); - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(gwidget->CapVidButt), FALSE); - } - - if(global->disk_timer_id) g_source_remove(global->disk_timer_id); - global->disk_timer_id = 0; - } - else if(!capVid) /*we are not capturing*/ - { /******************** Start Video *********************/ - - capVid = TRUE; - - if (global->vid_inc>0) - { - videoIn->VidFName = incFilename(videoIn->VidFName, - global->vidFPath, - global->vid_inc); - - global->vid_inc++; - } - else - { - videoIn->VidFName = joinPath(videoIn->VidFName, global->vidFPath); - } - - if(!global->no_display) - { - char * message = g_strjoin(" ", _("capturing video to"), videoIn->VidFName, NULL); - gtk_statusbar_pop (GTK_STATUSBAR(gwidget->status_bar), gwidget->status_warning_id); - gtk_statusbar_push (GTK_STATUSBAR(gwidget->status_bar), gwidget->status_warning_id, message); - g_free(message); - } - - /* check if enough free space is available on disk*/ - if(!DiskSupervisor(all_data)) - { - g_print("Cap Video failed\n"); - capVid = FALSE; - } - else - { - /*start disk check timed callback (every 10 sec)*/ - if (!global->disk_timer_id) - global->disk_timer_id=g_timeout_add(10*1000, FreeDiskCheck_timer, all_data); - - /*disabling sound and video compression controls*/ - if(!global->no_display) - set_sensitive_vid_contrls(FALSE, global->Sound_enable, gwidget); - - //request a IDR frame with SPS and PPS data - uvcx_request_frame_type(videoIn->fd, global->uvc_h264_unit, PICTURE_TYPE_IDR_FULL); - /*start IO thread*/ - if( __THREAD_CREATE(&all_data->IO_thread, IO_loop, (void *) all_data)) - { - g_printerr("Thread creation failed\n"); - capVid = FALSE; - } - } - - if(!global->no_display) - { - if(capVid) - { - gtk_button_set_label(GTK_BUTTON(gwidget->CapVidButt),_("Stop Video (V)")); - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(gwidget->CapVidButt), TRUE); - } - else - { - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(gwidget->CapVidButt), FALSE); - } - } - } - - /*enable signals for this callback*/ - if(!global->no_display) - g_signal_handlers_unblock_by_func(GTK_TOGGLE_BUTTON(gwidget->CapVidButt), G_CALLBACK (capture_vid), all_data); - - gwidget = NULL; - pdata = NULL; - global = NULL; - videoIn = NULL; -} - -void -camera_button_menu_changed (GtkWidget *item, struct ALL_DATA *all_data) -{ - int flag = GPOINTER_TO_INT(g_object_get_data (G_OBJECT (item), "camera_default")); - - if (gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(item))) - { - all_data->global->default_action = flag; //0-image; 1-video - } -} - -/*--------------------- buttons callbacks ------------------*/ -void -Defaults_clicked (GtkWidget *item, struct ALL_DATA *all_data) -{ - struct VidState *s = all_data->s; - struct vdIn *videoIn = all_data->videoIn; - - set_default_values(videoIn->fd, s->control_list, s->num_controls, all_data); -} - -void -Profile_clicked (GtkWidget *item, struct ALL_DATA *all_data) -{ - struct GWIDGET *gwidget = all_data->gwidget; - //struct VidState *s = all_data->s; - struct GLOBAL *global = all_data->global; - //struct vdIn *videoIn = all_data->videoIn; - - GtkWidget *FileDialog; - - int save = GPOINTER_TO_INT(g_object_get_data (G_OBJECT (item), "profile_dialog")); - if(global->debug) g_print("Profile dialog (%d)\n", save); - if (save > 0) - { - FileDialog = gtk_file_chooser_dialog_new (_("Save Profile"), - GTK_WINDOW(gwidget->mainwin), - GTK_FILE_CHOOSER_ACTION_SAVE, - GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, - GTK_STOCK_SAVE, GTK_RESPONSE_ACCEPT, - NULL); - gtk_file_chooser_set_do_overwrite_confirmation (GTK_FILE_CHOOSER (FileDialog), TRUE); - - gtk_file_chooser_set_current_name (GTK_FILE_CHOOSER (FileDialog), - global->profile_FPath[0]); - } - else - { - FileDialog = gtk_file_chooser_dialog_new (_("Load Profile"), - GTK_WINDOW(gwidget->mainwin), - GTK_FILE_CHOOSER_ACTION_OPEN, - GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, - GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT, - NULL); - } - - gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER (FileDialog), - global->profile_FPath[1]); - - if (gtk_dialog_run (GTK_DIALOG (FileDialog)) == GTK_RESPONSE_ACCEPT) - { - /*Save Controls Data*/ - char *filename= gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (FileDialog)); - global->profile_FPath=splitPath(filename,global->profile_FPath); - - if(save > 0) - SaveControls(all_data); - else - LoadControls(all_data); - } - gtk_widget_destroy (FileDialog); - gwidget = NULL; - //s = NULL; - global = NULL; - //videoIn = NULL; -} - -void -ShowFPS_changed(GtkToggleButton * toggle, struct ALL_DATA *all_data) -{ - struct GLOBAL *global = all_data->global; - - global->FpsCount = gtk_toggle_button_get_active (toggle) ? 1 : 0; - - if(global->FpsCount > 0) - { - /*sets the Fps counter timer function every 2 sec*/ - global->timer_id = g_timeout_add(2*1000,FpsCount_callback, all_data); - } - else - { - if (global->timer_id > 0) g_source_remove(global->timer_id); - g_snprintf(global->WVcaption,10,"GUVCVideo"); - SDL_WM_SetCaption(global->WVcaption, NULL); - } - global = NULL; -} - -gboolean -image_capture_callback (gpointer data) -{ - struct ALL_DATA *all_data = (struct ALL_DATA *) data; - struct GWIDGET *gwidget = all_data->gwidget; - - gtk_button_clicked (GTK_BUTTON(gwidget->CapImageButt)); - - return FALSE; -} - -gboolean -video_capture_callback (gpointer data) -{ - struct ALL_DATA *all_data = (struct ALL_DATA *) data; - struct GWIDGET *gwidget = all_data->gwidget; - - gtk_toggle_button_toggled (GTK_TOGGLE_BUTTON(gwidget->CapVidButt)); - - return FALSE; -} - -void -quitButton_clicked (GtkButton * quitButton, struct ALL_DATA *all_data) -{ - shutd(0, all_data);//shutDown -} - - - diff -Nru guvcview-1.7.3/src/callbacks.h guvcview-2.0.1+ubuntu1~ppa1/src/callbacks.h --- guvcview-1.7.3/src/callbacks.h 2014-03-24 22:56:28.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/src/callbacks.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,177 +0,0 @@ -/*******************************************************************************# -# guvcview http://guvcview.sourceforge.net # -# # -# Paulo Assis # -# Nobuhiro Iwamatsu # -# Add UYVY color support(Macbook iSight) # -# # -# This program is free software; you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation; either version 2 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program; if not, write to the Free Software # -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# # -********************************************************************************/ - -#ifndef CALLBACKS_H -#define CALLBACKS_H - -#include -#include "guvcview.h" - -#ifndef GDK_KEY_WebCam -#define GDK_KEY_WebCam 0x1008ff8f -#endif - -void -WARN_DIALOG(const char *warn_title, const char* warn_msg, struct ALL_DATA *all_data); - -void -ERR_DIALOG(const char *err_title, const char* err_msg, struct ALL_DATA *all_data); - -void -file_chooser (GtkWidget * FileButt, struct ALL_DATA *all_data); - -void -lavc_properties(GtkMenuItem * codec_prop, struct ALL_DATA *all_data); - -void -lavc_audio_properties(GtkMenuItem * codec_prop, struct ALL_DATA *all_data); - -/* sound controls*/ -void -set_sensitive_snd_contrls (const int flag, struct GWIDGET *gwidget); - -/*video controls*/ -void -set_sensitive_vid_contrls (const int flag, const int sndEnable, struct GWIDGET *gwidget); - -gint -delete_event (GtkWidget *widget, GdkEventConfigure *event, void *data); - -void -set_sensitive_img_contrls (const int flag, struct GWIDGET *gwidget); - -gboolean -key_pressed (GtkWidget *win, GdkEventKey *event, struct ALL_DATA *all_data); - -void -vidClose (struct ALL_DATA *all_data); - -void -slider_changed (GtkRange * range, struct ALL_DATA *all_data); - -void -spin_changed (GtkSpinButton * spin, struct ALL_DATA *all_data); - -void -set_jpeg_comp_clicked (GtkButton * jpeg_comp, struct ALL_DATA *all_data); - -void -autofocus_changed (GtkToggleButton * toggle, struct ALL_DATA *all_data); - -void -check_changed (GtkToggleButton * toggle, struct ALL_DATA *all_data); - -void -pix_ord_changed (GtkComboBox * combo, struct ALL_DATA *all_data); - -void -combo_changed (GtkComboBox * combo, struct ALL_DATA *all_data); - -void -button_clicked (GtkButton * Button, struct ALL_DATA *all_data); - -void -setfocus_clicked (GtkButton * FocusButton, struct ALL_DATA *all_data); - -void -button_PanTilt1_clicked (GtkButton * Button, struct ALL_DATA *all_data); - -void -button_PanTilt2_clicked (GtkButton * Button, struct ALL_DATA *all_data); - -void -quitButton_clicked (GtkButton * quitButton, struct ALL_DATA *all_data); - -void -Devices_changed (GtkComboBox * Devices, struct ALL_DATA *all_data); - -void -resolution_changed (GtkComboBox * Resolution, struct ALL_DATA *all_data); - -void -InpType_changed(GtkComboBox * ImpType, struct ALL_DATA *all_data); - -void -FrameRate_changed (GtkComboBox * FrameRate, struct ALL_DATA *all_data); - -void -SndSampleRate_changed (GtkComboBox * SampleRate, struct ALL_DATA *all_data); - -void -SndAPI_changed (GtkComboBox * SoundAPI, struct ALL_DATA *all_data); - -void -SndDevice_changed (GtkComboBox * SoundDevice, struct ALL_DATA *all_data); - -void -SndNumChan_changed (GtkComboBox * SoundChan, struct ALL_DATA *all_data); - -void -AudCodec_menu_changed (GtkRadioMenuItem *acodec_item, struct ALL_DATA *all_data); - -void -VidCodec_menu_changed (GtkRadioMenuItem *vcodec_item, struct ALL_DATA *all_data); - -void -SndEnable_changed (GtkToggleButton * toggle, struct ALL_DATA *all_data); - -void -FiltEnable_changed(GtkToggleButton * toggle, struct ALL_DATA *all_data); - -void -osdChanged(GtkToggleButton * toggle, struct ALL_DATA *all_data); - -void -EffEnable_changed(GtkToggleButton * toggle, struct ALL_DATA *all_data); - -void -image_prefix_toggled(GtkWidget * toggle, struct ALL_DATA *all_data); - -void -video_prefix_toggled(GtkWidget * toggle, struct ALL_DATA *all_data); - -void -capture_image (GtkButton *ImageButt, struct ALL_DATA *all_data); - -void -capture_vid (GtkToggleButton *VidButt, struct ALL_DATA *all_data); - -void -camera_button_menu_changed (GtkWidget *item, struct ALL_DATA *all_data); - -void -Profile_clicked (GtkWidget *item, struct ALL_DATA *all_data); - -void -Defaults_clicked (GtkWidget *item, struct ALL_DATA *all_data); - -void -ShowFPS_changed(GtkToggleButton * toggle, struct ALL_DATA *all_data); - -gboolean -image_capture_callback (gpointer data); - -gboolean -video_capture_callback (gpointer data); - -#endif diff -Nru guvcview-1.7.3/src/close.c guvcview-2.0.1+ubuntu1~ppa1/src/close.c --- guvcview-1.7.3/src/close.c 2014-03-24 22:56:28.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/src/close.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,183 +0,0 @@ -/*******************************************************************************# -# guvcview http://guvcview.sourceforge.net # -# # -# Paulo Assis # -# Nobuhiro Iwamatsu # -# Add UYVY color support(Macbook iSight) # -# # -# This program is free software; you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation; either version 2 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program; if not, write to the Free Software # -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# # -********************************************************************************/ - -#include -#include -/* support for internationalization - i18n */ -#include -#include -#include -#include -#include - -#include "v4l2uvc.h" -#include "avilib.h" -#include "globals.h" -#include "sound.h" -#include "jpgenc.h" -#include "autofocus.h" -#include "ms_time.h" -#include "options.h" -#include "video.h" -#include "close.h" - -#define __AMUTEX &pdata->mutex -#define __VMUTEX &videoIn->mutex - -/*-------------------------- clean up and shut down --------------------------*/ - -void -clean_struct (struct ALL_DATA *all_data) -{ - struct GWIDGET *gwidget = all_data->gwidget; - struct VidState *s = all_data->s; - struct paRecordData *pdata = all_data->pdata; - struct GLOBAL *global = all_data->global; - struct focusData *AFdata = all_data->AFdata; - struct vdIn *videoIn = all_data->videoIn; - struct VideoFormatData *videoF = all_data->videoF; - - gboolean control_only = (global->control_only || global->add_ctrls); - - if((!control_only) && (pdata != NULL)) - { - /*destroy mutex for sound buffers*/ - if (global->debug) g_print("free audio mutex\n"); - __CLOSE_MUTEX( __AMUTEX ); - - g_free(pdata); - pdata=NULL; - all_data->pdata=NULL; - g_free(videoF); - videoF=NULL; - } - - if(videoIn) close_v4l2(videoIn, control_only); - videoIn=NULL; - if (global->debug) g_print("closed v4l2 strutures\n"); - - - - if (s->control_list) - { - free_control_list (s->control_list); - s->control_list = NULL; - g_print("free controls\n"); - } - g_free(s); - s = NULL; - all_data->s = NULL; - - g_free(gwidget); - gwidget = NULL; - all_data->gwidget = NULL; - - if (global->debug) g_print("free controls - vidState\n"); - - g_free(AFdata); - AFdata = NULL; - all_data->AFdata = NULL; - - closeGlobals(global); - global=NULL; - all_data->global=NULL; - - g_print("cleaned allocations - 100%%\n"); -} - -void -shutd (gint restart, struct ALL_DATA *all_data) -{ - int exec_status=0; - gchar videodevice[16]; - struct GWIDGET *gwidget = all_data->gwidget; - //gchar *EXEC_CALL = all_data->EXEC_CALL; - - //struct paRecordData *pdata = all_data->pdata; - struct GLOBAL *global = all_data->global; - struct vdIn *videoIn = all_data->videoIn; - - gboolean control_only = (global->control_only || global->add_ctrls); - gboolean no_display = global->no_display; - GMainLoop *main_loop = gwidget->main_loop; - - /* wait for the video thread */ - if(!(control_only)) - { - if (global->debug) g_print("Shuting Down Thread\n"); - __LOCK_MUTEX(__VMUTEX); - videoIn->signalquit=TRUE; - __UNLOCK_MUTEX(__VMUTEX); - __THREAD_JOIN(all_data->video_thread); - if (global->debug) g_print("Video Thread finished\n"); - } - - /* destroys fps timer*/ - if (global->timer_id > 0) g_source_remove(global->timer_id); - /* destroys udev device event check timer*/ - if (global->udev_timer_id > 0) g_source_remove(global->udev_timer_id); - - if(!no_display) - { - gtk_window_get_size(GTK_WINDOW(gwidget->mainwin),&(global->winwidth),&(global->winheight));//mainwin or widget - } - /*save configuration*/ - writeConf(global, videoIn->videodevice); - - g_snprintf(videodevice, 15, "%s", global->videodevice); - - clean_struct(all_data); - gwidget = NULL; - //pdata = NULL; - global = NULL; - videoIn = NULL; - - //end gtk or glib main loop - if(!no_display) - gtk_main_quit(); - else - g_main_loop_quit(main_loop); - - if (restart==1) - { - //closing portaudio - if(!control_only) - { - g_print("Closing portaudio ..."); - if (Pa_Terminate() != paNoError) - g_print("Error\n"); - else - g_print("OK\n"); - } - /* replace running process with new one */ - g_print("Restarting: guvcview -d %s\n", videodevice); - exec_status = execlp(g_get_prgname(), - g_get_prgname(), - "-d", - videodevice, - NULL); - if(exec_status < 0) perror("ERROR restarting guvcview"); - } - //if we didn't restart return to main after gtk_main() and close portaudio there - //this reduces chances for segfault caused by Pa_Terminate() [probable race condition] -} diff -Nru guvcview-1.7.3/src/close.h guvcview-2.0.1+ubuntu1~ppa1/src/close.h --- guvcview-1.7.3/src/close.h 2014-03-24 22:56:28.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/src/close.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,35 +0,0 @@ -/*******************************************************************************# -# guvcview http://guvcview.sourceforge.net # -# # -# Paulo Assis # -# Nobuhiro Iwamatsu # -# Add UYVY color support(Macbook iSight) # -# # -# This program is free software; you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation; either version 2 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program; if not, write to the Free Software # -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# # -********************************************************************************/ - -#ifndef CLOSE_H -#define CLOSE_H - -#include "guvcview.h" - -void -clean_struct (struct ALL_DATA *all_data); - -void -shutd (gint restart, struct ALL_DATA *all_data); - -#endif diff -Nru guvcview-1.7.3/src/colorspaces.c guvcview-2.0.1+ubuntu1~ppa1/src/colorspaces.c --- guvcview-1.7.3/src/colorspaces.c 2014-03-24 22:56:28.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/src/colorspaces.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,1485 +0,0 @@ -/*******************************************************************************# -# guvcview http://guvcview.sourceforge.net # -# # -# Paulo Assis # -# Nobuhiro Iwamatsu # -# # -# This program is free software; you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation; either version 2 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program; if not, write to the Free Software # -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# # -********************************************************************************/ - -#include -#include -#include -#include "colorspaces.h" -#include "v4l2uvc.h" - -/*------------------------------- Color space conversions --------------------*/ -/* regular yuv (YUYV) to rgb24*/ -void -yuyv2rgb (BYTE *pyuv, BYTE *prgb, int width, int height) -{ - int l=0; - int SizeYUV=height * width * 2; /* 2 bytes per pixel*/ - for(l=0;l> bitsIn) & mask; - } -} - -/*convert y10b (bit-packed array greyscale format) to yuyv (packed) -* args: -* framebuffer: pointer to frame buffer (yuyv) -* tmpbuffer: pointer to temp buffer containing y10b (bit-packed array) data frame -* width: picture width -* height: picture height -*/ -void y10b_to_yuyv (BYTE *framebuffer, BYTE *tmpbuffer, int width, int height) -{ - UINT16 *unpacked_buffer = NULL; - UINT16 *ptmp; - int h = 0; - int w = 0; - - unpacked_buffer = malloc(width * height * sizeof(UINT16)); - convert_packed_to_16bit(tmpbuffer, unpacked_buffer, 10, width * height); - - ptmp = unpacked_buffer; - - for (h = 0; h < height; h++) - { - for (w = 0; w < width; w += 2) - { - /* Y0 */ - *framebuffer++ = (BYTE) ((ptmp[0] & 0x3FF) >> 2); - /* U */ - *framebuffer++ = 0x80; - /* Y1 */ - *framebuffer++ = (BYTE) ((ptmp[1] & 0x3FF) >> 2); - /* V */ - *framebuffer++ = 0x80; - - ptmp += 2; - } - } - - free(unpacked_buffer); -} - -/*convert y16 (grey) to yuyv (packed) -* args: -* framebuffer: pointer to frame buffer (yuyv) -* tmpbuffer: pointer to temp buffer containing y16 (grey) data frame -* width: picture width -* height: picture height -*/ -void y16_to_yuyv (BYTE *framebuffer, BYTE *tmpbuffer, int width, int height) -{ - UINT16 *ptmp= (UINT16 *) tmpbuffer; - - int h=0; - int w=0; - - for(h=0;h> 8); - /* U */ - *framebuffer++ = 0x80; - /* Y1 */ - *framebuffer++ = (BYTE) ((ptmp[1] & 0xFF00) >> 8); - /* V */ - *framebuffer++ = 0x80; - - ptmp += 2; - } - } -} - -/*convert yyuv (packed) to yuyv (packed) -* args: -* framebuffer: pointer to frame buffer (yuyv) -* tmpbuffer: pointer to temp buffer containing yyuv packed data frame -* width: picture width -* height: picture height -*/ -void yyuv_to_yuyv (BYTE *framebuffer, BYTE *tmpbuffer, int width, int height) -{ - BYTE *ptmp=NULL; - BYTE *pfmb=NULL; - ptmp = tmpbuffer; - pfmb = framebuffer; - - int h=0; - int w=0; - - for(h=0;h= 0; ) - { - *framebuffer++ = 0x80 + *Y0++; - *framebuffer++ = 0x80 + *U; - *framebuffer++ = 0x80 + *Y0++; - *framebuffer++ = 0x80 + *V; - - *line2++ = 0x80 + *Y1++; - *line2++ = 0x80 + *U++; - *line2++ = 0x80 + *Y1++; - *line2++ = 0x80 + *V++; - } - Y0 += width * 2; /* next block of lines */ - framebuffer = line2; - } -} - -/*convert SPCA505 (s505) to yuv 422 -* s505 |Y0..width..Y0|Y1..width..Y1|U..width/2..U|V..width/2..V| -* signed values (-128;+127) must be converted to unsigned (0; 255) -* args: -* framebuffer: pointer to frame buffer (yuyv) -* tmpbuffer: pointer to temp buffer containing s501 data frame -* width: picture width -* height: picture height -*/ -void s505_to_yuyv(BYTE *framebuffer, BYTE *tmpbuffer, int width, int height) -{ - BYTE *U, *V, *Y0, *Y1; - BYTE *line2; - int h, w; - - Y0 = tmpbuffer; /*fisrt line*/ - for (h = 0; h < height/2; h++ ) - { - line2 = framebuffer + width * 2; /* next line */ - Y1 = Y0 + width; - U = Y1 + width; - V = U + width/2; - for (w = width / 2; --w >= 0; ) - { - *framebuffer++ = 0x80 + *Y0++; - *framebuffer++ = 0x80 + *U; - *framebuffer++ = 0x80 + *Y0++; - *framebuffer++ = 0x80 + *V; - - *line2++ = 0x80 + *Y1++; - *line2++ = 0x80 + *U++; - *line2++ = 0x80 + *Y1++; - *line2++ = 0x80 + *V++; - } - Y0 += width * 2; /* next block of lines */ - framebuffer = line2; - } -} - -/*convert SPCA508 (s508) to yuv 422 -* s508 |Y0..width..Y0|U..width/2..U|V..width/2..V|Y1..width..Y1| -* signed values (-128;+127) must be converted to unsigned (0; 255) -* args: -* framebuffer: pointer to frame buffer (yuyv) -* tmpbuffer: pointer to temp buffer containing s501 data frame -* width: picture width -* height: picture height -*/ -void s508_to_yuyv(BYTE *framebuffer, BYTE *tmpbuffer, int width, int height) -{ - BYTE *U, *V, *Y0, *Y1; - BYTE *line2; - int h, w; - - Y0 = tmpbuffer; /*fisrt line*/ - for (h = 0; h < height/2; h++ ) - { - line2 = framebuffer + width * 2; /* next line */ - U = Y0 + width; - V = U + width/2; - Y1= V + width/2; - for (w = width / 2; --w >= 0; ) - { - *framebuffer++ = 0x80 + *Y0++; - *framebuffer++ = 0x80 + *U; - *framebuffer++ = 0x80 + *Y0++; - *framebuffer++ = 0x80 + *V; - - *line2++ = 0x80 + *Y1++; - *line2++ = 0x80 + *U++; - *line2++ = 0x80 + *Y1++; - *line2++ = 0x80 + *V++; - } - Y0 += width * 2; /* next block of lines */ - framebuffer = line2; - } -} - -// raw bayer functions -// from libv4l bayer.c, (C) 2008 Hans de Goede -//Note: original bayer_to_bgr24 code from : -// 1394-Based Digital Camera Control Library -// -// Bayer pattern decoding functions -// -// Written by Damien Douxchamps and Frederic Devernay -static void convert_border_bayer_line_to_bgr24( BYTE* bayer, BYTE* adjacent_bayer, - BYTE *bgr, int width, gboolean start_with_green, gboolean blue_line) -{ - int t0, t1; - - if (start_with_green) - { - /* First pixel */ - if (blue_line) - { - *bgr++ = bayer[1]; - *bgr++ = bayer[0]; - *bgr++ = adjacent_bayer[0]; - } - else - { - *bgr++ = adjacent_bayer[0]; - *bgr++ = bayer[0]; - *bgr++ = bayer[1]; - } - /* Second pixel */ - t0 = (bayer[0] + bayer[2] + adjacent_bayer[1] + 1) / 3; - t1 = (adjacent_bayer[0] + adjacent_bayer[2] + 1) >> 1; - if (blue_line) - { - *bgr++ = bayer[1]; - *bgr++ = t0; - *bgr++ = t1; - } - else - { - *bgr++ = t1; - *bgr++ = t0; - *bgr++ = bayer[1]; - } - bayer++; - adjacent_bayer++; - width -= 2; - } - else - { - /* First pixel */ - t0 = (bayer[1] + adjacent_bayer[0] + 1) >> 1; - if (blue_line) - { - *bgr++ = bayer[0]; - *bgr++ = t0; - *bgr++ = adjacent_bayer[1]; - } - else - { - *bgr++ = adjacent_bayer[1]; - *bgr++ = t0; - *bgr++ = bayer[0]; - } - width--; - } - - if (blue_line) - { - for ( ; width > 2; width -= 2) - { - t0 = (bayer[0] + bayer[2] + 1) >> 1; - *bgr++ = t0; - *bgr++ = bayer[1]; - *bgr++ = adjacent_bayer[1]; - bayer++; - adjacent_bayer++; - - t0 = (bayer[0] + bayer[2] + adjacent_bayer[1] + 1) / 3; - t1 = (adjacent_bayer[0] + adjacent_bayer[2] + 1) >> 1; - *bgr++ = bayer[1]; - *bgr++ = t0; - *bgr++ = t1; - bayer++; - adjacent_bayer++; - } - } - else - { - for ( ; width > 2; width -= 2) - { - t0 = (bayer[0] + bayer[2] + 1) >> 1; - *bgr++ = adjacent_bayer[1]; - *bgr++ = bayer[1]; - *bgr++ = t0; - bayer++; - adjacent_bayer++; - - t0 = (bayer[0] + bayer[2] + adjacent_bayer[1] + 1) / 3; - t1 = (adjacent_bayer[0] + adjacent_bayer[2] + 1) >> 1; - *bgr++ = t1; - *bgr++ = t0; - *bgr++ = bayer[1]; - bayer++; - adjacent_bayer++; - } - } - - if (width == 2) - { - /* Second to last pixel */ - t0 = (bayer[0] + bayer[2] + 1) >> 1; - if (blue_line) - { - *bgr++ = t0; - *bgr++ = bayer[1]; - *bgr++ = adjacent_bayer[1]; - } - else - { - *bgr++ = adjacent_bayer[1]; - *bgr++ = bayer[1]; - *bgr++ = t0; - } - /* Last pixel */ - t0 = (bayer[1] + adjacent_bayer[2] + 1) >> 1; - if (blue_line) - { - *bgr++ = bayer[2]; - *bgr++ = t0; - *bgr++ = adjacent_bayer[1]; - } - else - { - *bgr++ = adjacent_bayer[1]; - *bgr++ = t0; - *bgr++ = bayer[2]; - } - } - else - { - /* Last pixel */ - if (blue_line) - { - *bgr++ = bayer[0]; - *bgr++ = bayer[1]; - *bgr++ = adjacent_bayer[1]; - } - else - { - *bgr++ = adjacent_bayer[1]; - *bgr++ = bayer[1]; - *bgr++ = bayer[0]; - } - } -} - -/* From libdc1394, which on turn was based on OpenCV's Bayer decoding */ -static void bayer_to_rgbbgr24(BYTE *bayer, - BYTE *bgr, int width, int height, - gboolean start_with_green, gboolean blue_line) -{ - /* render the first line */ - convert_border_bayer_line_to_bgr24(bayer, bayer + width, bgr, width, - start_with_green, blue_line); - bgr += width * 3; - - /* reduce height by 2 because of the special case top/bottom line */ - for (height -= 2; height; height--) - { - int t0, t1; - /* (width - 2) because of the border */ - BYTE *bayerEnd = bayer + (width - 2); - - if (start_with_green) - { - /* OpenCV has a bug in the next line, which was - t0 = (bayer[0] + bayer[width * 2] + 1) >> 1; */ - t0 = (bayer[1] + bayer[width * 2 + 1] + 1) >> 1; - /* Write first pixel */ - t1 = (bayer[0] + bayer[width * 2] + bayer[width + 1] + 1) / 3; - if (blue_line) - { - *bgr++ = t0; - *bgr++ = t1; - *bgr++ = bayer[width]; - } - else - { - *bgr++ = bayer[width]; - *bgr++ = t1; - *bgr++ = t0; - } - - /* Write second pixel */ - t1 = (bayer[width] + bayer[width + 2] + 1) >> 1; - if (blue_line) - { - *bgr++ = t0; - *bgr++ = bayer[width + 1]; - *bgr++ = t1; - } - else - { - *bgr++ = t1; - *bgr++ = bayer[width + 1]; - *bgr++ = t0; - } - bayer++; - } - else - { - /* Write first pixel */ - t0 = (bayer[0] + bayer[width * 2] + 1) >> 1; - if (blue_line) - { - *bgr++ = t0; - *bgr++ = bayer[width]; - *bgr++ = bayer[width + 1]; - } - else - { - *bgr++ = bayer[width + 1]; - *bgr++ = bayer[width]; - *bgr++ = t0; - } - } - - if (blue_line) - { - for (; bayer <= bayerEnd - 2; bayer += 2) - { - t0 = (bayer[0] + bayer[2] + bayer[width * 2] + - bayer[width * 2 + 2] + 2) >> 2; - t1 = (bayer[1] + bayer[width] + - bayer[width + 2] + bayer[width * 2 + 1] + - 2) >> 2; - *bgr++ = t0; - *bgr++ = t1; - *bgr++ = bayer[width + 1]; - - t0 = (bayer[2] + bayer[width * 2 + 2] + 1) >> 1; - t1 = (bayer[width + 1] + bayer[width + 3] + - 1) >> 1; - *bgr++ = t0; - *bgr++ = bayer[width + 2]; - *bgr++ = t1; - } - } - else - { - for (; bayer <= bayerEnd - 2; bayer += 2) - { - t0 = (bayer[0] + bayer[2] + bayer[width * 2] + - bayer[width * 2 + 2] + 2) >> 2; - t1 = (bayer[1] + bayer[width] + - bayer[width + 2] + bayer[width * 2 + 1] + - 2) >> 2; - *bgr++ = bayer[width + 1]; - *bgr++ = t1; - *bgr++ = t0; - - t0 = (bayer[2] + bayer[width * 2 + 2] + 1) >> 1; - t1 = (bayer[width + 1] + bayer[width + 3] + - 1) >> 1; - *bgr++ = t1; - *bgr++ = bayer[width + 2]; - *bgr++ = t0; - } - } - - if (bayer < bayerEnd) - { - /* write second to last pixel */ - t0 = (bayer[0] + bayer[2] + bayer[width * 2] + - bayer[width * 2 + 2] + 2) >> 2; - t1 = (bayer[1] + bayer[width] + - bayer[width + 2] + bayer[width * 2 + 1] + - 2) >> 2; - if (blue_line) - { - *bgr++ = t0; - *bgr++ = t1; - *bgr++ = bayer[width + 1]; - } - else - { - *bgr++ = bayer[width + 1]; - *bgr++ = t1; - *bgr++ = t0; - } - /* write last pixel */ - t0 = (bayer[2] + bayer[width * 2 + 2] + 1) >> 1; - if (blue_line) - { - *bgr++ = t0; - *bgr++ = bayer[width + 2]; - *bgr++ = bayer[width + 1]; - } - else - { - *bgr++ = bayer[width + 1]; - *bgr++ = bayer[width + 2]; - *bgr++ = t0; - } - bayer++; - } - else - { - /* write last pixel */ - t0 = (bayer[0] + bayer[width * 2] + 1) >> 1; - t1 = (bayer[1] + bayer[width * 2 + 1] + bayer[width] + 1) / 3; - if (blue_line) - { - *bgr++ = t0; - *bgr++ = t1; - *bgr++ = bayer[width + 1]; - } - else - { - *bgr++ = bayer[width + 1]; - *bgr++ = t1; - *bgr++ = t0; - } - } - - /* skip 2 border pixels */ - bayer += 2; - - blue_line = !blue_line; - start_with_green = !start_with_green; - } - - /* render the last line */ - convert_border_bayer_line_to_bgr24(bayer + width, bayer, bgr, width, - !start_with_green, !blue_line); -} - -/*convert bayer raw data to rgb24 -* args: -* pBay: pointer to buffer containing Raw bayer data data -* pRGB24: pointer to buffer containing rgb24 data -* width: picture width -* height: picture height -* pix_order: bayer pixel order (0=gb/rg 1=gr/bg 2=bg/gr 3=rg/bg) -*/ -void -bayer_to_rgb24(BYTE *pBay, BYTE *pRGB24, int width, int height, int pix_order) -{ - switch (pix_order) - { - //conversion functions are build for bgr, by switching b and r lines we get rgb - case 0: /* gbgbgb... | rgrgrg... (V4L2_PIX_FMT_SGBRG8)*/ - bayer_to_rgbbgr24(pBay, pRGB24, width, height, TRUE, FALSE); - break; - - case 1: /* grgrgr... | bgbgbg... (V4L2_PIX_FMT_SGRBG8)*/ - bayer_to_rgbbgr24(pBay, pRGB24, width, height, TRUE, TRUE); - break; - - case 2: /* bgbgbg... | grgrgr... (V4L2_PIX_FMT_SBGGR8)*/ - bayer_to_rgbbgr24(pBay, pRGB24, width, height, FALSE, FALSE); - break; - - case 3: /* rgrgrg... ! gbgbgb... (V4L2_PIX_FMT_SRGGB8)*/ - bayer_to_rgbbgr24(pBay, pRGB24, width, height, FALSE, TRUE); - break; - - default: /* default is 0*/ - bayer_to_rgbbgr24(pBay, pRGB24, width, height, TRUE, FALSE); - break; - } -} - - -void -rgb2yuyv(BYTE *prgb, BYTE *pyuv, int width, int height) -{ - - int i=0; - for(i=0;i<(width*height*3);i=i+6) - { - /* y */ - *pyuv++ =CLIP(0.299 * (prgb[i] - 128) + 0.587 * (prgb[i+1] - 128) + 0.114 * (prgb[i+2] - 128) + 128); - /* u */ - *pyuv++ =CLIP(((- 0.147 * (prgb[i] - 128) - 0.289 * (prgb[i+1] - 128) + 0.436 * (prgb[i+2] - 128) + 128) + - (- 0.147 * (prgb[i+3] - 128) - 0.289 * (prgb[i+4] - 128) + 0.436 * (prgb[i+5] - 128) + 128))/2); - /* y1 */ - *pyuv++ =CLIP(0.299 * (prgb[i+3] - 128) + 0.587 * (prgb[i+4] - 128) + 0.114 * (prgb[i+5] - 128) + 128); - /* v*/ - *pyuv++ =CLIP(((0.615 * (prgb[i] - 128) - 0.515 * (prgb[i+1] - 128) - 0.100 * (prgb[i+2] - 128) + 128) + - (0.615 * (prgb[i+3] - 128) - 0.515 * (prgb[i+4] - 128) - 0.100 * (prgb[i+5] - 128) + 128))/2); - } -} - -void -bgr2yuyv(BYTE *pbgr, BYTE *pyuv, int width, int height) -{ - - int i=0; - for(i=0;i<(width*height*3);i=i+6) - { - /* y */ - *pyuv++ =CLIP(0.299 * (pbgr[i+2] - 128) + 0.587 * (pbgr[i+1] - 128) + 0.114 * (pbgr[i] - 128) + 128); - /* u */ - *pyuv++ =CLIP(((- 0.147 * (pbgr[i+2] - 128) - 0.289 * (pbgr[i+1] - 128) + 0.436 * (pbgr[i] - 128) + 128) + - (- 0.147 * (pbgr[i+5] - 128) - 0.289 * (pbgr[i+4] - 128) + 0.436 * (pbgr[i+3] - 128) + 128))/2); - /* y1 */ - *pyuv++ =CLIP(0.299 * (pbgr[i+5] - 128) + 0.587 * (pbgr[i+4] - 128) + 0.114 * (pbgr[i+3] - 128) + 128); - /* v*/ - *pyuv++ =CLIP(((0.615 * (pbgr[i+2] - 128) - 0.515 * (pbgr[i+1] - 128) - 0.100 * (pbgr[i] - 128) + 128) + - (0.615 * (pbgr[i+5] - 128) - 0.515 * (pbgr[i+4] - 128) - 0.100 * (pbgr[i+3] - 128) + 128))/2); - } -} - -/*use in utils.c for jpeg decoding 420 planar to 422 -* args: -* out: pointer to data output of idct (macroblocks yyyy u v) -* pic: pointer to picture buffer (yuyv) -* width: picture width -*/ -void yuv420pto422(int * out,unsigned char *pic,int width) -{ - int j, k; - unsigned char *pic0, *pic1; - int *outy, *outu, *outv; - int outy1 = 0; - int outy2 = 8; - - //yyyyuv - pic0 = pic; - pic1 = pic + width; - outy = out; - outu = out + 64 * 4; - outv = out + 64 * 5; - for (j = 0; j < 8; j++) - { - for (k = 0; k < 8; k++) - { - if( k == 4) - { - outy1 += 56; - outy2 += 56; - } - *pic0++ = CLIP(outy[outy1]); //y1 line 1 - *pic0++ = CLIP(128 + *outu); //u line 1-2 - *pic0++ = CLIP(outy[outy1+1]); //y2 line 1 - *pic0++ = CLIP(128 + *outv); //v line 1-2 - *pic1++ = CLIP(outy[outy2]); //y1 line 2 - *pic1++ = CLIP(128 + *outu); //u line 1-2 - *pic1++ = CLIP(outy[outy2+1]); //y2 line 2 - *pic1++ = CLIP(128 + *outv); //v line 1-2 - outy1 +=2; outy2 += 2; outu++; outv++; - } - if(j==3) - { - outy = out + 128; - } - else - { - outy += 16; - } - outy1 = 0; - outy2 = 8; - pic0 += 2 * (width -16); - pic1 += 2 * (width -16); - } -} - -/*use in utils.c for jpeg decoding 422 planar to 422 -* args: -* out: pointer to data output of idct (macroblocks yyyy u v) -* pic: pointer to picture buffer (yuyv) -* width: picture width -*/ -void yuv422pto422(int * out,unsigned char *pic,int width) -{ - int j, k; - unsigned char *pic0, *pic1; - int *outy, *outu, *outv; - int outy1 = 0; - int outy2 = 8; - int outu1 = 0; - int outv1 = 0; - - //yyyyuv - pic0 = pic; - pic1 = pic + width; - outy = out; - outu = out + 64 * 4; - outv = out + 64 * 5; - for (j = 0; j < 4; j++) - { - for (k = 0; k < 8; k++) - { - if( k == 4) - { - outy1 += 56; - outy2 += 56; - } - *pic0++ = CLIP(outy[outy1]); //y1 line 1 - *pic0++ = CLIP(128 + outu[outu1]); //u line 1 - *pic0++ = CLIP(outy[outy1+1]); //y2 line 1 - *pic0++ = CLIP(128 + outv[outv1]); //v line 1 - *pic1++ = CLIP(outy[outy2]); //y1 line 2 - *pic1++ = CLIP(128 + outu[outu1+8]);//u line 2 - *pic1++ = CLIP(outy[outy2+1]); //y2 line 2 - *pic1++ = CLIP(128 + outv[outv1+8]);//v line 2 - outv1 += 1; outu1 += 1; - outy1 +=2; outy2 +=2; - } - outy += 16;outu +=8; outv +=8; - outv1 = 0; outu1=0; - outy1 = 0; - outy2 = 8; - pic0 += 2 * (width -16); - pic1 += 2 * (width -16); - } -} - -/*use in utils.c for jpeg decoding 444 planar to 422 -* args: -* out: pointer to data output of idct (macroblocks yyyy u v) -* pic: pointer to picture buffer (yuyv) -* width: picture width -*/ -void yuv444pto422(int * out,unsigned char *pic,int width) -{ - int j, k; - unsigned char *pic0, *pic1; - int *outy, *outu, *outv; - int outy1 = 0; - int outy2 = 8; - int outu1 = 0; - int outv1 = 0; - - //yyyyuv - pic0 = pic; - pic1 = pic + width; - outy = out; - outu = out + 64 * 4; // Ooops where did i invert ?? - outv = out + 64 * 5; - for (j = 0; j < 4; j++) - { - for (k = 0; k < 4; k++) - { - *pic0++ =CLIP( outy[outy1]); //y1 line 1 - *pic0++ =CLIP( 128 + outu[outu1]); //u line 1 - *pic0++ =CLIP( outy[outy1+1]); //y2 line 1 - *pic0++ =CLIP( 128 + outv[outv1]); //v line 1 - *pic1++ =CLIP( outy[outy2]); //y1 line 2 - *pic1++ =CLIP( 128 + outu[outu1+8]);//u line 2 - *pic1++ =CLIP( outy[outy2+1]); //y2 line 2 - *pic1++ =CLIP( 128 + outv[outv1+8]);//v line 2 - outv1 += 2; outu1 += 2; - outy1 +=2; outy2 +=2; - } - outy += 16;outu +=16; outv +=16; - outv1 = 0; outu1=0; - outy1 = 0; - outy2 = 8; - pic0 += 2 * (width -8); - pic1 += 2 * (width -8); - } -} - -/*use in utils.c for jpeg decoding 400 planar to 422 -* args: -* out: pointer to data output of idct (macroblocks yyyy ) -* pic: pointer to picture buffer (yuyv) -* width: picture width -*/ -void yuv400pto422(int * out,unsigned char *pic,int width) -{ - int j, k; - unsigned char *pic0, *pic1; - int *outy ; - int outy1 = 0; - int outy2 = 8; - pic0 = pic; - pic1 = pic + width; - outy = out; - - //yyyy - for (j = 0; j < 4; j++) - { - for (k = 0; k < 4; k++) - { - *pic0++ = CLIP(outy[outy1]); //y1 line 1 - *pic0++ = 128 ; //u - *pic0++ = CLIP(outy[outy1+1]);//y2 line 1 - *pic0++ = 128 ; //v - *pic1++ = CLIP(outy[outy2]); //y1 line 2 - *pic1++ = 128 ; //u - *pic1++ = CLIP(outy[outy2+1]);//y2 line 2 - *pic1++ = 128 ; //v - outy1 +=2; outy2 +=2; - } - outy += 16; - outy1 = 0; - outy2 = 8; - pic0 += 2 * (width -8); - pic1 += 2 * (width -8); - } -} - diff -Nru guvcview-1.7.3/src/colorspaces.h guvcview-2.0.1+ubuntu1~ppa1/src/colorspaces.h --- guvcview-1.7.3/src/colorspaces.h 2014-03-24 22:56:28.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/src/colorspaces.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,275 +0,0 @@ -/*******************************************************************************# -# guvcview http://guvcview.sourceforge.net # -# # -# Paulo Assis # -# # -# This program is free software; you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation; either version 2 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program; if not, write to the Free Software # -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# # -********************************************************************************/ - -#ifndef COLORSPACES_H -#define COLORSPACES_H - -#include "defs.h" - -/*convert yuv 420 planar (yu12) to yuv 422 -* args: -* framebuffer: pointer to frame buffer (yuyv) -* tmpbuffer: pointer to temp buffer containing yuv420 planar data frame -* width: picture width -* height: picture height -*/ -void -yuv420_to_yuyv (BYTE *framebuffer, BYTE *tmpbuffer, int width, int height); - -/*convert yvu 420 planar (yv12) to yuv 422 (yuyv) -* args: -* framebuffer: pointer to frame buffer (yuyv) -* tmpbuffer: pointer to temp buffer containing yvu420 planar data frame -* width: picture width -* height: picture height -*/ -void yvu420_to_yuyv (BYTE *framebuffer, BYTE *tmpbuffer, int width, int height); - -/*convert yuv 420 planar (uv interleaved) (nv12) to yuv 422 -* args: -* framebuffer: pointer to frame buffer (yuyv) -* tmpbuffer: pointer to temp buffer containing yuv420 (nv12) planar data frame -* width: picture width -* height: picture height -*/ -void nv12_to_yuyv (BYTE *framebuffer, BYTE *tmpbuffer, int width, int height); - -/*convert yuv 420 planar (vu interleaved) (nv21) to yuv 422 -* args: -* framebuffer: pointer to frame buffer (yuyv) -* tmpbuffer: pointer to temp buffer containing yuv420 (nv21) planar data frame -* width: picture width -* height: picture height -*/ -void nv21_to_yuyv (BYTE *framebuffer, BYTE *tmpbuffer, int width, int height); - -/*convert yuv 422 planar (uv interleaved) (nv16) to yuv 422 -* args: -* framebuffer: pointer to frame buffer (yuyv) -* tmpbuffer: pointer to temp buffer containing yuv422 (nv16) planar data frame -* width: picture width -* height: picture height -*/ -void nv16_to_yuyv (BYTE *framebuffer, BYTE *tmpbuffer, int width, int height); - -/*convert yuv 422 planar (vu interleaved) (nv61) to yuv 422 -* args: -* framebuffer: pointer to frame buffer (yuyv) -* tmpbuffer: pointer to temp buffer containing yuv422 (nv61) planar data frame -* width: picture width -* height: picture height -*/ -void nv61_to_yuyv (BYTE *framebuffer, BYTE *tmpbuffer, int width, int height); - -/*convert y10b (bit-packed array greyscale format) to yuyv (packed) -* args: -* framebuffer: pointer to frame buffer (yuyv) -* tmpbuffer: pointer to temp buffer containing y10b (bit-packed array) data frame -* width: picture width -* height: picture height -*/ -void y10b_to_yuyv (BYTE *framebuffer, BYTE *tmpbuffer, int width, int height); - -/*convert y16 (grey) to yuyv (packed) -* args: -* framebuffer: pointer to frame buffer (yuyv) -* tmpbuffer: pointer to temp buffer containing y16 (grey) data frame -* width: picture width -* height: picture height -*/ -void y16_to_yuyv (BYTE *framebuffer, BYTE *tmpbuffer, int width, int height); - -/*convert yyuv to yuyv -* args: -* framebuffer: pointer to frame buffer (yuyv) -* tmpbuffer: pointer to temp buffer containing a yyuv data frame -* width: picture width -* height: picture height -*/ -void -yyuv_to_yuyv (BYTE *framebuffer, BYTE *tmpbuffer, int width, int height); - -/*convert uyvy (packed) to yuyv (packed) -* args: -* framebuffer: pointer to frame buffer (yuyv) -* tmpbuffer: pointer to temp buffer containing uyvy packed data frame -* width: picture width -* height: picture height -*/ -void uyvy_to_yuyv (BYTE *framebuffer, BYTE *tmpbuffer, int width, int height); - -/*convert yvyu (packed) to yuyv (packed) -* args: -* framebuffer: pointer to frame buffer (yuyv) -* tmpbuffer: pointer to temp buffer containing yvyu packed data frame -* width: picture width -* height: picture height -*/ -void yvyu_to_yuyv (BYTE *framebuffer, BYTE *tmpbuffer, int width, int height); - -/*convert yuv 411 packed (y41p) to yuv 422 -* args: -* framebuffer: pointer to frame buffer (yuyv) -* tmpbuffer: pointer to temp buffer containing y41p data frame -* width: picture width -* height: picture height -*/ -void y41p_to_yuyv (BYTE *framebuffer, BYTE *tmpbuffer, int width, int height); - -/*convert yuv mono (grey) to yuv 422 -* args: -* framebuffer: pointer to frame buffer (yuyv) -* tmpbuffer: pointer to temp buffer containing grey (y only) data frame -* width: picture width -* height: picture height -*/ -void grey_to_yuyv (BYTE *framebuffer, BYTE *tmpbuffer, int width, int height); - -/*convert SPCA501 (s501) to yuv 422 -* s501 |Y0..width..Y0|U..width/2..U|Y1..width..Y1|V..width/2..V| -* signed values (-128;+127) must be converted to unsigned (0; 255) -* args: -* framebuffer: pointer to frame buffer (yuyv) -* tmpbuffer: pointer to temp buffer containing s501 data frame -* width: picture width -* height: picture height -*/ -void s501_to_yuyv(BYTE *framebuffer, BYTE *tmpbuffer, int width, int height); - -/*convert SPCA505 (s505) to yuv 422 -* s505 |Y0..width..Y0|Y1..width..Y1|U..width/2..U|V..width/2..V| -* signed values (-128;+127) must be converted to unsigned (0; 255) -* args: -* framebuffer: pointer to frame buffer (yuyv) -* tmpbuffer: pointer to temp buffer containing s501 data frame -* width: picture width -* height: picture height -*/ -void s505_to_yuyv(BYTE *framebuffer, BYTE *tmpbuffer, int width, int height); - -/*convert SPCA508 (s508) to yuv 422 -* s508 |Y0..width..Y0|U..width/2..U|V..width/2..V|Y1..width..Y1| -* signed values (-128;+127) must be converted to unsigned (0; 255) -* args: -* framebuffer: pointer to frame buffer (yuyv) -* tmpbuffer: pointer to temp buffer containing s501 data frame -* width: picture width -* height: picture height -*/ -void s508_to_yuyv(BYTE *framebuffer, BYTE *tmpbuffer, int width, int height); - -/*convert yuyv to rgb24 -* args: -* pyuv: pointer to buffer containing yuv data (yuyv) -* prgb: pointer to buffer containing rgb24 data -* width: picture width -* height: picture height -*/ -void -yuyv2rgb (BYTE *pyuv, BYTE *prgb, int width, int height); - - -/*convert yuyv to bgr with lines upsidedown -* used for bitmap files (DIB24) -* args: -* pyuv: pointer to buffer containing yuv data (yuyv) -* prgb: pointer to buffer containing rgb24 data -* width: picture width -* height: picture height -*/ -void -yuyv2bgr (BYTE *pyuv, BYTE *pbgr, int width, int height); - -/* used for rgb video (fourcc="RGB ") -* lines are in correct order -*/ -void -yuyv2bgr1 (BYTE *pyuv, BYTE *pbgr, int width, int height); - -/*convert bayer raw data to rgb24 -* args: -* pBay: pointer to buffer containing Raw bayer data data -* pRGB24: pointer to buffer containing rgb24 data -* width: picture width -* height: picture height -* pix_order: bayer pixel order (0=gb/rg 1=gr/bg 2=bg/gr 3=rg/bg) -*/ -void -bayer_to_rgb24(BYTE *pBay, BYTE *pRGB24, int width, int height, int pix_order); - -/*convert rgb24 to yuyv -* args: -* prgb: pointer to buffer containing rgb24 data -* pyuv: pointer to buffer containing yuv data (yuyv) -* width: picture width -* height: picture height -*/ -void -rgb2yuyv(BYTE *prgb, BYTE *pyuv, int width, int height); - -/*convert bgr24 to yuyv -* args: -* pbgr: pointer to buffer containing bgr24 data -* pyuv: pointer to buffer containing yuv data (yuyv) -* width: picture width -* height: picture height -*/ -void -bgr2yuyv(BYTE *pbgr, BYTE *pyuv, int width, int height); - -/*use in utils.c for jpeg decoding 420 planar to 422 -* args: -* out: pointer to data output of idct (macroblocks yyyy u v) -* pic: pointer to picture buffer (yuyv) -* width: picture width -*/ -void -yuv420pto422(int * out,unsigned char *pic,int width); - -/*use in utils.c for jpeg decoding 422 planar to 422 -* args: -* out: pointer to data output of idct (macroblocks yyyy u v) -* pic: pointer to picture buffer (yuyv) -* width: picture width -*/ -void -yuv422pto422(int * out,unsigned char *pic,int width); - -/*use in utils.c for jpeg decoding 444 planar to 422 -* args: -* out: pointer to data output of idct (macroblocks yyyy u v) -* pic: pointer to picture buffer (yuyv) -* width: picture width -*/ -void -yuv444pto422(int * out,unsigned char *pic,int width); - -/*use in utils.c for jpeg decoding 400 planar to 422 -* args: -* out: pointer to data output of idct (macroblocks yyyy ) -* pic: pointer to picture buffer (yuyv) -* width: picture width -*/ -void -yuv400pto422(int * out,unsigned char *pic,int width); - -#endif - diff -Nru guvcview-1.7.3/src/create_image.c guvcview-2.0.1+ubuntu1~ppa1/src/create_image.c --- guvcview-1.7.3/src/create_image.c 2014-03-24 22:56:28.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/src/create_image.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,129 +0,0 @@ -/*******************************************************************************# -# guvcview http://guvcview.sourceforge.net # -# # -# Paulo Assis # -# # -# This program is free software; you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation; either version 2 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program; if not, write to the Free Software # -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# # -********************************************************************************/ - - -#include -#include - -#include "defs.h" -#include "guvcview.h" -#include "v4l2uvc.h" -#include "colorspaces.h" -#include "jpgenc.h" -#include "picture.h" -#include "ms_time.h" -#include "string_utils.h" - -int store_picture(void *data) -{ - struct ALL_DATA *all_data = (struct ALL_DATA *) data; - - struct GLOBAL *global = all_data->global; - struct vdIn *videoIn = all_data->videoIn; - - struct JPEG_ENCODER_STRUCTURE *jpeg_struct = NULL; - BYTE *pim = NULL; - BYTE *jpeg = NULL; - int jpeg_size = 0; - - switch(global->imgFormat) - { - case 0:/*jpg*/ - /* Save directly from MJPG frame */ - if((global->Frame_Flags==0) && (global->format==V4L2_PIX_FMT_MJPEG)) - { - if(SaveJPG(videoIn->ImageFName,videoIn->buf.bytesused,videoIn->tmpbuffer)) - { - g_printerr ("Error: Couldn't capture Image to %s \n", - videoIn->ImageFName); - return(-1); - } - } - else if ((global->Frame_Flags==0) && (global->format==V4L2_PIX_FMT_JPEG)) - { - if (SaveBuff(videoIn->ImageFName,videoIn->buf.bytesused,videoIn->tmpbuffer)) - { - g_printerr ("Error: Couldn't capture Image to %s \n", - videoIn->ImageFName); - return(-1); - } - } - else - { /* use built in encoder */ - jpeg = g_new0(BYTE, ((global->width)*(global->height))>>1); - jpeg_struct = g_new0(struct JPEG_ENCODER_STRUCTURE, 1); - - /* Initialization of JPEG control structure */ - initialization (jpeg_struct,global->width,global->height); - - /* Initialization of Quantization Tables */ - initialize_quantization_tables (jpeg_struct); - - - jpeg_size = encode_image(videoIn->framebuffer, jpeg, - jpeg_struct, 1, global->width, global->height); - - if(SaveBuff(videoIn->ImageFName, jpeg_size, jpeg)) - { - g_printerr ("Error: Couldn't capture Image to %s \n", - videoIn->ImageFName); - return(-1); - } - } - break; - - case 1:/*bmp*/ - /*24 bits -> 3bytes 32 bits ->4 bytes*/ - pim = g_new0(BYTE, (global->width)*(global->height)*3); - yuyv2bgr(videoIn->framebuffer,pim,global->width,global->height); - - if(SaveBPM(videoIn->ImageFName, global->width, global->height, 24, pim)) - { - g_printerr ("Error: Couldn't capture Image to %s \n", - videoIn->ImageFName); - return(-1); - } - break; - - case 2:/*png*/ - /*24 bits -> 3bytes 32 bits ->4 bytes*/ - pim = g_new0(BYTE, (global->width)*(global->height)*3); - yuyv2rgb(videoIn->framebuffer,pim,global->width,global->height); - write_png(videoIn->ImageFName, global->width, global->height, pim); - break; - - case 3:/*raw*/ - videoIn->cap_raw = 1; - return 1; - } - - if(jpeg_struct) g_free(jpeg_struct); - jpeg_struct=NULL; - if(jpeg) g_free(jpeg); - jpeg = NULL; - if(pim) g_free(pim); - pim=NULL; - - return 0; -} - - - diff -Nru guvcview-1.7.3/src/create_image.h guvcview-2.0.1+ubuntu1~ppa1/src/create_image.h --- guvcview-1.7.3/src/create_image.h 2014-03-24 22:56:28.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/src/create_image.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,27 +0,0 @@ -/*******************************************************************************# -# guvcview http://guvcview.sourceforge.net # -# # -# Paulo Assis # -# # -# This program is free software; you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation; either version 2 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program; if not, write to the Free Software # -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# # -********************************************************************************/ - -#ifndef CREATE_IMAGE_H -#define CREATE_IMAGE_H - -int store_picture(void *data); - -#endif diff -Nru guvcview-1.7.3/src/create_video.c guvcview-2.0.1+ubuntu1~ppa1/src/create_video.c --- guvcview-1.7.3/src/create_video.c 2014-03-24 22:56:28.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/src/create_video.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,1175 +0,0 @@ -/*******************************************************************************# -# guvcview http://guvcview.sourceforge.net # -# # -# Paulo Assis # -# # -# This program is free software; you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation; either version 2 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program; if not, write to the Free Software # -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# # -********************************************************************************/ - -#include -#include -#include -#include -#include -#include - -#include "../config.h" -#include "defs.h" -#include "create_video.h" -#include "v4l2uvc.h" -#include "uvc_h264.h" -#include "avilib.h" -#include "globals.h" -#include "sound.h" -#include "acodecs.h" -#include "ms_time.h" -#include "string_utils.h" -#include "callbacks.h" -#include "vcodecs.h" -#include "video_format.h" -#include "audio_effects.h" - - -#define __AMUTEX &pdata->mutex -#define __VMUTEX &videoIn->mutex -#define __GMUTEX &global->mutex -#define __FMUTEX &global->file_mutex -#define __GCOND &global->IO_cond - -/*video capture can only start after buffer allocation*/ -static void alloc_videoBuff(struct ALL_DATA *all_data) -{ - struct GLOBAL *global = all_data->global; - int i = 0; - int framesize = global->height*global->width*2; /*yuyv (maximum size)*/ - if((global->fps > 0) && (global->fps_num > 0)) - global->video_buff_size = (global->fps * 3) / (global->fps_num * 2); /* 1,5 seconds of video in buffer*/ - if (global->video_buff_size < 16) global->video_buff_size = 16; /*keep at least 16 frames*/ - - /*alloc video ring buffer*/ - __LOCK_MUTEX(__GMUTEX); - if (global->videoBuff == NULL) - { - /*alloc video frames to videoBuff*/ - global->videoBuff = g_new0(VidBuff, global->video_buff_size); - for(i=0;ivideo_buff_size;i++) - { - global->videoBuff[i].frame = g_new0(BYTE,framesize); - global->videoBuff[i].used = FALSE; - } - } - else - { - /*free video frames to videoBuff*/ - for(i=0;ivideo_buff_size;i++) - { - if(global->videoBuff[i].frame) g_free(global->videoBuff[i].frame); - global->videoBuff[i].frame = NULL; - } - g_free(global->videoBuff); - - /*alloc video frames to videoBuff*/ - global->videoBuff = g_new0(VidBuff,global->video_buff_size); - for(i=0;ivideo_buff_size;i++) - { - global->videoBuff[i].frame = g_new0(BYTE,framesize); - global->videoBuff[i].used = FALSE; - } - } - //reset indexes - global->r_ind=0; - global->w_ind=0; - __UNLOCK_MUTEX(__GMUTEX); -} - -static int initVideoFile(struct ALL_DATA *all_data, void* lav_data) -{ - //struct GWIDGET *gwidget = all_data->gwidget; - struct paRecordData *pdata = all_data->pdata; - struct GLOBAL *global = all_data->global; - struct vdIn *videoIn = all_data->videoIn; - struct VideoFormatData *videoF = all_data->videoF; - - io_Stream *vstream, *astream; - struct lavcData **lavc_data = (struct lavcData **) lav_data; - - videoF->vcodec = get_vcodec_id(global->VidCodec); //global->VidCodec_ID - videoF->acodec = get_acodec_id(global->AudCodec); - videoF->keyframe = 0; - - __LOCK_MUTEX(__VMUTEX); - gboolean capVid = videoIn->capVid; - __UNLOCK_MUTEX(__VMUTEX); - - printf("initiating video file context\n"); - /*alloc video ring buffer*/ - alloc_videoBuff(all_data); - - //FIXME: don't initiate lavc on uvc h264 stream and H264 codec - if(isLavcCodec(global->VidCodec)) - *lavc_data = init_lavc(global->width, global->height, global->fps_num, global->fps, global->VidCodec, global->format, global->Frame_Flags); - - if((*lavc_data)->monotonic_pts > 0) - global->monotonic_pts = TRUE; - - switch (global->VidFormat) - { - case AVI_FORMAT: - if(videoF->avi != NULL) - { - avi_destroy_context(videoF->avi); - videoF->avi = NULL; - } - videoF->avi = avi_create_context(videoIn->VidFName); - - if(!videoF->avi) - { - g_printerr("Error: Couldn't create AVI context.\n"); - capVid = FALSE; /*don't start video capture*/ - __LOCK_MUTEX(__VMUTEX); - videoIn->capVid = capVid; - __UNLOCK_MUTEX(__VMUTEX); - pdata->capVid = capVid; - return(-1); - } - - vstream = avi_add_video_stream(videoF->avi, - global->width, - global->height, - global->fps, - videoF->vcodec, - get_vid4cc(global->VidCodec)); - - if(videoF->vcodec == AV_CODEC_ID_THEORA) - { - vstream->extra_data = (BYTE*) (*lavc_data)->codec_context->extradata; - vstream->extra_data_size = (*lavc_data)->codec_context->extradata_size; - } - - if(global->Sound_enable > 0) - { - /*get channels and sample rate*/ - set_sound(global, pdata); - - /*sample size - only used for PCM*/ - int32_t a_bits = get_aud_bits(global->AudCodec); - /*bit rate (compressed formats)*/ - int32_t b_rate = get_aud_bit_rate(global->AudCodec); - - astream = avi_add_audio_stream(videoF->avi, - global->Sound_NumChan, - global->Sound_SampRate, - a_bits, - b_rate, - videoF->acodec, - global->Sound_Format); - - if(videoF->acodec == AV_CODEC_ID_VORBIS) - { - astream->extra_data = (BYTE*) pdata->lavc_data->codec_context->extradata; - astream->extra_data_size = pdata->lavc_data->codec_context->extradata_size; - } - - } - /* add first riff header */ - avi_add_new_riff(videoF->avi); - - break; - - case WEBM_FORMAT: - case MKV_FORMAT: - if(videoF->mkv != NULL) - { - mkv_destroy_context(videoF->mkv); - videoF->mkv = NULL; - } - videoF->mkv = mkv_create_context(videoIn->VidFName, global->VidFormat); - - if(!videoF->mkv) - { - g_printerr("Error: Couldn't create MKV context.\n"); - capVid = FALSE; /*don't start video capture*/ - __LOCK_MUTEX(__VMUTEX); - videoIn->capVid = capVid; - __UNLOCK_MUTEX(__VMUTEX); - pdata->capVid = capVid; - return(-1); - } - - vstream = mkv_add_video_stream(videoF->mkv, - global->width, - global->height, - global->fps, - global->fps_num, - videoF->vcodec); - - - vstream->extra_data_size = set_mkvCodecPriv(videoIn, global, *lavc_data); - if(vstream->extra_data_size > 0) - { - vstream->extra_data = get_mkvCodecPriv(global->VidCodec); - if(global->format == V4L2_PIX_FMT_H264) - vstream->h264_process = 1; //we need to process NALU marker - } - - if(global->Sound_enable > 0) - { - /*get channels and sample rate*/ - set_sound(global, pdata); - - /*sample size - only used for PCM*/ - int32_t a_bits = get_aud_bits(global->AudCodec); - /*bit rate (compressed formats)*/ - int32_t b_rate = get_aud_bit_rate(global->AudCodec); - - astream = mkv_add_audio_stream( - videoF->mkv, - pdata->channels, - pdata->samprate, - a_bits, - b_rate, - videoF->acodec, - global->Sound_Format); - - astream->extra_data_size = set_mkvACodecPriv( - global->AudCodec, - pdata->samprate, - pdata->channels, - pdata->lavc_data); - - if(astream->extra_data_size > 0) - astream->extra_data = get_mkvACodecPriv(global->AudCodec); - - - } - - /** write the file header */ - mkv_write_header(videoF->mkv); - - break; - - default: - g_printerr("Init Video File: Unsupported Format(%d)\n", global->VidFormat); - return(-2); - break; - } - - /* start video capture*/ - capVid = TRUE; - __LOCK_MUTEX(__VMUTEX); - videoIn->capVid = capVid; - __UNLOCK_MUTEX(__VMUTEX); - pdata->capVid = capVid; - - /* start sound capture*/ - if(global->Sound_enable > 0 && init_sound (pdata)) - { - //FIXME: enable capture button - g_printerr("Audio initialization error\n"); - global->Sound_enable=0; - } - - printf(" OK\n"); - return (0); -} - -/* Called at avi capture stop */ -static void -aviClose (struct ALL_DATA *all_data) -{ - float tottime = 0; - - struct GLOBAL *global = all_data->global; - //struct vdIn *videoIn = all_data->videoIn; - struct VideoFormatData *videoF = all_data->videoF; - struct paRecordData *pdata = all_data->pdata; - - if (videoF->avi) - { - tottime = (float) ((int64_t) (global->Vidstoptime - global->Vidstarttime) / 1000000); // convert to miliseconds - - if (global->debug) g_print("stop= %llu start=%llu \n", - (unsigned long long) global->Vidstoptime, (unsigned long long) global->Vidstarttime); - if (tottime > 0) - { - /*try to find the real frame rate*/ - videoF->avi->fps = (double) (global->framecount * 1000) / tottime; - } - else - { - /*set the hardware frame rate*/ - videoF->avi->fps = global->fps; - } - - if (global->debug) - g_print("VIDEO: %"PRIu64" frames in %f ms = %f fps\n", - global->framecount, tottime, videoF->avi->fps); - /*------------------- close audio stream and clean up -------------------*/ - if (global->Sound_enable > 0) - { - if (close_sound (pdata)) g_printerr("Sound Close error\n"); - } - avi_close(videoF->avi); - - global->framecount = 0; - global->Vidstarttime = 0; - if (global->debug) g_print ("close avi\n"); - } - - avi_destroy_context(videoF->avi); - pdata = NULL; - global = NULL; - //videoIn = NULL; - videoF->avi = NULL; -} - -static void -mkvClose(struct ALL_DATA *all_data) -{ - float tottime = 0; - - struct GLOBAL *global = all_data->global; - //struct vdIn *videoIn = all_data->videoIn; - struct VideoFormatData *videoF = all_data->videoF; - struct paRecordData *pdata = all_data->pdata; - - if (videoF->mkv) - { - tottime = (float) ((int64_t) (global->Vidstoptime - global->Vidstarttime) / 1000000); // convert to miliseconds - - if (global->debug) g_print("stop= %llu start=%llu \n", - (unsigned long long) global->Vidstoptime, (unsigned long long) global->Vidstarttime); - - if (global->debug) - g_print("VIDEO: %"PRIu64" frames in %f ms \n", global->framecount, tottime); - /*------------------- close audio stream and clean up -------------------*/ - if (global->Sound_enable > 0) - { - if (close_sound (pdata)) g_printerr("Sound Close error\n"); - } - mkv_close(videoF->mkv); - - global->framecount = 0; - global->Vidstarttime = 0; - if (global->debug) g_print ("close mkv\n"); - } - - mkv_destroy_context(videoF->mkv); - pdata = NULL; - global = NULL; - //videoIn = NULL; - videoF->mkv = NULL; -} - - -static void closeVideoFile(struct ALL_DATA *all_data) -{ - struct GLOBAL *global = all_data->global; - struct vdIn *videoIn = all_data->videoIn; - struct paRecordData *pdata = all_data->pdata; - - int i=0; - /*we are streaming so we need to lock a mutex*/ - gboolean capVid = FALSE; - __LOCK_MUTEX(__VMUTEX); - videoIn->capVid = capVid; /*flag video thread to stop recording frames*/ - __UNLOCK_MUTEX(__VMUTEX); - __LOCK_MUTEX(__AMUTEX); - pdata->capVid = capVid; - __UNLOCK_MUTEX(__AMUTEX); - /*wait for flag from video thread that recording has stopped */ - /*wait on videoIn->VidCapStop by sleeping for 200 loops of 10 ms*/ - /*(test VidCapStop == TRUE on every loop)*/ - int stall = wait_ms(&(videoIn->VidCapStop), TRUE, __VMUTEX, 10, 200); - if( !(stall > 0) ) - { - g_printerr("video capture stall on exit(%d) - timeout\n", - videoIn->VidCapStop); - } - - /*free video buffer allocations*/ - __LOCK_MUTEX(__GMUTEX); - //reset the indexes - global->r_ind=0; - global->w_ind=0; - if (global->videoBuff != NULL) - { - /*free video frames to videoBuff*/ - for(i=0;ivideo_buff_size;i++) - { - g_free(global->videoBuff[i].frame); - global->videoBuff[i].frame = NULL; - } - g_free(global->videoBuff); - global->videoBuff = NULL; - } - __UNLOCK_MUTEX(__GMUTEX); - - switch (global->VidFormat) - { - case AVI_FORMAT: - aviClose(all_data); - break; - - case WEBM_FORMAT: - case MKV_FORMAT: - mkvClose(all_data); - break; - - default: - - break; - } - - global->Vidstoptime = 0; - global->Vidstarttime = 0; - global->framecount = 0; -} - -static int write_video_frame (struct ALL_DATA *all_data, - void *jpeg_struct, - struct lavcData *lavc_data, - VidBuff *proc_buff) -{ - struct GLOBAL *global = all_data->global; - //struct GWIDGET *gwidget = all_data->gwidget; - - int ret=0; - - //printf("proc_buff: size: %i, ts:%llu keyframe:%i\n", proc_buff->bytes_used, proc_buff->time_stamp, proc_buff->keyframe); - switch (global->VidFormat) - { - case AVI_FORMAT: - ret = compress_frame(all_data, jpeg_struct, lavc_data, proc_buff); - break; - - case WEBM_FORMAT: - case MKV_FORMAT: - ret = compress_frame(all_data, jpeg_struct, lavc_data, proc_buff); - break; - - default: - break; - } - return (ret); -} - -static int write_audio_frame (struct ALL_DATA *all_data) -{ - struct paRecordData *pdata = all_data->pdata; - struct GLOBAL *global = all_data->global; - struct VideoFormatData *videoF = all_data->videoF; - //struct GWIDGET *gwidget = all_data->gwidget; - - int ret =0; - - switch (global->VidFormat) - { - case AVI_FORMAT: - ret = compress_audio_frame(all_data); - break; - - case WEBM_FORMAT: - case MKV_FORMAT: - __LOCK_MUTEX( __AMUTEX ); //why do we need this ??? - /*set pts*/ - videoF->apts = pdata->audio_buff[pdata->br_ind][pdata->r_ind].time_stamp; - /*write audio chunk*/ - ret = compress_audio_frame(all_data); - __UNLOCK_MUTEX( __AMUTEX ); - break; - - default: - - break; - } - return (ret); -} - -static int sync_audio_frame(struct ALL_DATA *all_data, AudBuff *proc_buff) -{ - struct paRecordData *pdata = all_data->pdata; - struct GLOBAL *global = all_data->global; - struct VideoFormatData *videoF = all_data->videoF; - - switch (global->VidFormat) - { - case AVI_FORMAT: - /*first audio data - sync with video (audio stream capture can take */ - /*a bit longer to start) */ - /*no need of locking the audio mutex yet, since we are not reading from the buffer*/ - if (!get_stream(videoF->avi->stream_list, 1)->audio_strm_length) - { - /*only 1 audio stream*/ - /*time diff for audio-video*/ - int synctime= (int) (pdata->delay + pdata->snd_begintime - pdata->ts_ref)/1000000; /*convert to miliseconds*/ - if (global->debug) g_print("shift sound by %d ms\n", synctime); - if(synctime>10 && synctime<2000) - { /*only sync between 10ms and 2 seconds*/ - if(global->Sound_Format == PA_FOURCC) - { /*shift sound by synctime*/ - UINT32 shiftFrames = abs(synctime * global->Sound_SampRate / 1000); - UINT32 shiftSamples = shiftFrames * global->Sound_NumChan; - if (global->debug) g_print("shift sound forward by %d samples\n", - shiftSamples); - short *EmptySamp; - EmptySamp=g_new0(short, shiftSamples); - avi_write_packet(videoF->avi, 1, (BYTE *) EmptySamp, shiftSamples*sizeof(short), 0, -1, 0); - //AVI_write_audio(videoF->AviOut,(BYTE *) EmptySamp,shiftSamples*sizeof(short)); - g_free(EmptySamp); - } - else - { - /*use lavc encoder*/ - } - } - } - break; - - case WEBM_FORMAT: - case MKV_FORMAT: - - break; - - default: - break; - } - - return (0); -} - -static int buff_scheduler(int w_ind, int r_ind, int buff_size) -{ - int diff_ind = 0; - int sched_sleep = 0; - /* try to balance buffer overrun in read/write operations */ - if(w_ind >= r_ind) - diff_ind = w_ind - r_ind; - else - diff_ind = (buff_size - r_ind) + w_ind; - - int th = (int) lround((double) buff_size * 0.7); - - if(diff_ind <= th) /* from 0 to 50 ms (down below 20 fps)*/ - sched_sleep = (int) lround((double) (diff_ind * 71) / buff_size); - else /*from 50 to 210 ms (down below 5 fps)*/ - sched_sleep = (int) lround((double) ((diff_ind * 320) / buff_size) - 110); - - if(sched_sleep < 0) sched_sleep = 0; /*clip to positive values just in case*/ - - //g_printf("diff index: %i sleep %i\n",diff_ind, sched_sleep); - return sched_sleep; -} - -static int get_audio_flag(struct paRecordData *pdata) -{ - int flag = 0; - __LOCK_MUTEX(__AMUTEX); - flag = pdata->audio_buff_flag[pdata->br_ind]; - __UNLOCK_MUTEX(__AMUTEX); - return flag; -} - -static gboolean is_audio_processing(struct paRecordData *pdata, gboolean set_processing) -{ - int flag = get_audio_flag(pdata); - - if((set_processing) && (flag == AUD_PROCESS)) - { - __LOCK_MUTEX(__AMUTEX); - pdata->audio_buff_flag[pdata->br_ind] = AUD_PROCESSING; - __UNLOCK_MUTEX(__AMUTEX); - - flag = AUD_PROCESSING; - } - - if(flag == AUD_PROCESSING) - return TRUE; - else - return FALSE; -} - -//static gboolean is_audioTS_lessThan_videoTS(void *data) -//{ -// struct ALL_DATA *all_data = (struct ALL_DATA *) data; -// struct paRecordData *pdata = all_data->pdata; -// struct GLOBAL *global = all_data->global; -// -// __LOCK_MUTEX(__AMUTEX); -// QWORD audioTS = pdata->audio_buff[pdata->br_ind][pdata->r_ind].time_stamp; -// __UNLOCK_MUTEX(__AMUTEX); -// -// __LOCK_MUTEX( __GMUTEX ); -// QWORD videoTS = global->videoBuff[global->r_ind].time_stamp; -// __UNLOCK_MUTEX( __GMUTEX ); -// -// if (audioTS < videoTS) -// return TRUE; -// else -// return FALSE; -//} - -static gboolean process_audio(struct ALL_DATA *all_data, - struct audio_effects **aud_eff) -{ - struct vdIn *videoIn = all_data->videoIn; - struct paRecordData *pdata = all_data->pdata; - - __LOCK_MUTEX(__VMUTEX); - gboolean capVid = videoIn->capVid; - __UNLOCK_MUTEX(__VMUTEX); - - /*read audio Frames (1152 * channels samples each)*/ - - gboolean finish = FALSE; - - /*used - doesn't need locking as current buffer must be on AUD_PROCESSING state*/ - if(is_audio_processing(pdata, TRUE) && - pdata->audio_buff[pdata->br_ind][pdata->r_ind].used) - { - sync_audio_frame(all_data, &pdata->audio_buff[pdata->br_ind][pdata->r_ind]); - /*run effects on data*/ - /*echo*/ - if((pdata->snd_Flags & SND_ECHO)==SND_ECHO) - { - Echo(pdata, &pdata->audio_buff[pdata->br_ind][pdata->r_ind], *aud_eff, 300, 0.5); - } - else - { - close_DELAY((*aud_eff)->ECHO); - (*aud_eff)->ECHO = NULL; - } - /*fuzz*/ - if((pdata->snd_Flags & SND_FUZZ)==SND_FUZZ) - { - Fuzz(pdata, &pdata->audio_buff[pdata->br_ind][pdata->r_ind], *aud_eff); - } - else - { - close_FILT((*aud_eff)->HPF); - (*aud_eff)->HPF = NULL; - } - /*reverb*/ - if((pdata->snd_Flags & SND_REVERB)==SND_REVERB) - { - Reverb(pdata, &pdata->audio_buff[pdata->br_ind][pdata->r_ind], *aud_eff, 50); - } - else - { - close_REVERB(*aud_eff); - } - /*wahwah*/ - if((pdata->snd_Flags & SND_WAHWAH)==SND_WAHWAH) - { - WahWah (pdata, &pdata->audio_buff[pdata->br_ind][pdata->r_ind], *aud_eff, 1.5, 0, 0.7, 0.3, 2.5); - } - else - { - close_WAHWAH((*aud_eff)->wahData); - (*aud_eff)->wahData = NULL; - } - /*Ducky*/ - if((pdata->snd_Flags & SND_DUCKY)==SND_DUCKY) - { - change_pitch(pdata, &pdata->audio_buff[pdata->br_ind][pdata->r_ind], *aud_eff, 2); - } - else - { - close_pitch (*aud_eff); - } - - write_audio_frame(all_data); - - pdata->audio_buff[pdata->br_ind][pdata->r_ind].used = FALSE; - NEXT_IND(pdata->r_ind, AUDBUFF_SIZE); - - /*start of new buffer block*/ - if(pdata->r_ind == 0) - { - __LOCK_MUTEX(__AMUTEX); - pdata->audio_buff_flag[pdata->br_ind] = AUD_READY; - NEXT_IND(pdata->br_ind, AUDBUFF_NUM); - __UNLOCK_MUTEX(__AMUTEX); - } - - } - else - { - if (capVid) - { - /*video buffer underrun */ - /*wait for next frame (sleep 10 ms)*/ - sleep_ms(10); - } - else - { - finish = TRUE; /*all frames processed and no longer capturing so finish*/ - } - } - - return finish; -} - -static gboolean process_video(struct ALL_DATA *all_data, - VidBuff *proc_buff, - struct lavcData *lavc_data, - struct JPEG_ENCODER_STRUCTURE **jpeg_struct) -{ - struct GLOBAL *global = all_data->global; - struct vdIn *videoIn = all_data->videoIn; - struct paRecordData *pdata = all_data->pdata; - int64_t max_drift = 0, audio_drift = 0; - - if (global->Sound_enable) { - __LOCK_MUTEX(__AMUTEX); - audio_drift = pdata->ts_drift; - __UNLOCK_MUTEX(__AMUTEX); - int fps = global->fps; - if(fps < 5) - fps = 15; - max_drift = 1000000000 / fps; /* one frame */ - } - - __LOCK_MUTEX(__VMUTEX); - gboolean capVid = videoIn->capVid; - __UNLOCK_MUTEX(__VMUTEX); - - gboolean finish = FALSE; - - __LOCK_MUTEX(__GMUTEX); - gboolean used = global->videoBuff[global->r_ind].used; - __UNLOCK_MUTEX(__GMUTEX); - - if (used) - { - __LOCK_MUTEX(__GMUTEX); - /*read video Frame*/ - proc_buff->bytes_used = global->videoBuff[global->r_ind].bytes_used; - memcpy(proc_buff->frame, global->videoBuff[global->r_ind].frame, proc_buff->bytes_used); - proc_buff->time_stamp = global->videoBuff[global->r_ind].time_stamp; - proc_buff->keyframe = global->videoBuff[global->r_ind].keyframe; - global->videoBuff[global->r_ind].used = FALSE; - /*signals an empty slot in the video buffer*/ - __COND_BCAST(__GCOND); - //printf("proc_buff bytes used %i\n", proc_buff->bytes_used); - NEXT_IND(global->r_ind,global->video_buff_size); - audio_drift -= global->av_drift; - __UNLOCK_MUTEX(__GMUTEX); - - /* fprintf(stderr, "audio drift = %lli ms\n", audio_drift / 1000000); */ - /*process video Frame*/ - if (audio_drift > max_drift) - { - /* audio is behind (this should be compensated when capturing audio) */ - g_print("audio drift (%lli ms): but not dropping/shifting frame\n", (long long int) audio_drift/1000000); - //__LOCK_MUTEX(__GMUTEX); - // global->av_drift += max_drift; /* shift for matroska/webm */ - //__UNLOCK_MUTEX(__GMUTEX); - - } - else if (audio_drift < -1 * max_drift) - { - /* audio is ahead (are we over compensating when capturing audio?) */ - g_print("audio drift: duplicating/shifting frame\n"); - __LOCK_MUTEX(__GMUTEX); - global->av_drift -= max_drift; /* shift for matroska/webm */ - __UNLOCK_MUTEX(__GMUTEX); - - switch (global->VidFormat) - { - case AVI_FORMAT: - /* duplicate the frame */ - write_video_frame(all_data, (void *) jpeg_struct, lavc_data, proc_buff); - break; - - default: - break; - } - } - - /*write frame*/ - write_video_frame(all_data, (void *) jpeg_struct, lavc_data, proc_buff); - } - else - { - if (capVid) - { - /*video buffer underrun */ - /*wait for next frame (sleep 10 ms)*/ - /*FIXME: this is not good on streaming formats (we can loose key frames)*/ - sleep_ms(10); - } - else if (lavc_data != NULL && lavc_data->codec_context != NULL) //if we are using a lavc encoder flush the last frames - { - //flush video encoder - lavc_data->flush_delayed_frames = 1; - write_video_frame(all_data, (void *) jpeg_struct, lavc_data, proc_buff); - finish = lavc_data->flush_done; /*all frames processed and no longer capturing so finish*/ - } - else //finish - finish = TRUE; - } - return finish; -} - -/* this function can only be called after a lock on global->mutex */ -static void store_at_index(void *data) -{ - struct ALL_DATA *all_data = (struct ALL_DATA *) data; - - struct GLOBAL *global = all_data->global; - struct vdIn *videoIn = all_data->videoIn; - - - global->videoBuff[global->w_ind].time_stamp = global->v_ts - global->av_drift; - - /*store frame at index*/ - if ((global->VidCodec == CODEC_MJPEG) && (global->Frame_Flags==0) && - (global->format==V4L2_PIX_FMT_MJPEG)) - { - /*store MJPEG frame*/ - global->videoBuff[global->w_ind].bytes_used = videoIn->buf.bytesused; - memcpy(global->videoBuff[global->w_ind].frame, - videoIn->tmpbuffer, - global->videoBuff[global->w_ind].bytes_used); - } - else if ((global->VidCodec >= CODEC_LAVC) && (global->Frame_Flags==0) && - ((global->format==V4L2_PIX_FMT_NV12) || (global->format==V4L2_PIX_FMT_NV21))) - { - /*store yuv420p frame*/ - global->videoBuff[global->w_ind].bytes_used = videoIn->buf.bytesused; - memcpy(global->videoBuff[global->w_ind].frame, - videoIn->tmpbuffer, - global->videoBuff[global->w_ind].bytes_used); - } - else if ( global->format == V4L2_PIX_FMT_H264 && - global->VidCodec_ID == AV_CODEC_ID_H264 && - global->Frame_Flags == 0 - ) - { - /*store H264 frame*/ - global->videoBuff[global->w_ind].bytes_used = videoIn->buf.bytesused; - memcpy(global->videoBuff[global->w_ind].frame, - videoIn->h264_frame, - global->videoBuff[global->w_ind].bytes_used); - global->videoBuff[global->w_ind].keyframe = videoIn->isKeyframe; - /* use monotonic timestamp instead of real timestamp */ - //if(global->monotonic_pts) - // global->videoBuff[global->w_ind].time_stamp = global->framecount * floor(1E9/global->fps); - } - else - { - /*store YUYV frame*/ - global->videoBuff[global->w_ind].bytes_used = global->height*global->width*2; - memcpy(global->videoBuff[global->w_ind].frame, - videoIn->framebuffer, - global->videoBuff[global->w_ind].bytes_used); - } - global->videoBuff[global->w_ind].used = TRUE; - - //printf("CODECID: %i (%i) format: %i (%i) size: %i (%i)\n",global->VidCodec_ID, AV_CODEC_ID_H264, global->format, V4L2_PIX_FMT_H264, global->videoBuff[global->w_ind].bytes_used, videoIn->buf.bytesused); -} - -/* called from main video loop* - * stores current frame in video ring buffer - */ -int store_video_frame(void *data) -{ - struct ALL_DATA *all_data = (struct ALL_DATA *) data; - struct GLOBAL *global = all_data->global; - struct vdIn *videoIn = all_data->videoIn; - - int ret = 0; - int producer_sleep = 0; - - __LOCK_MUTEX(__GMUTEX); - - if(!global->videoBuff) - { - g_printerr("WARNING: video ring buffer not allocated yet - dropping frame."); - __UNLOCK_MUTEX(__GMUTEX); - return(-1); - } - - if( global->VidCodec_ID == AV_CODEC_ID_H264 && - global->format == V4L2_PIX_FMT_H264 && - global->Frame_Flags == 0) - { - if(videoIn->h264_last_IDR_size <= 0) - { - g_printerr("WARNING: h264 video stream hasn't produce a IDR frame yet - dropping frame."); - g_printerr(" Requesting a IDR frame\n"); - uvcx_request_frame_type(videoIn->fd, global->uvc_h264_unit, PICTURE_TYPE_IDR_FULL); - return (-1); - } - - if( global->framecount < 1 && - !videoIn->isKeyframe ) - { - if (!global->videoBuff[global->w_ind].used) //it's the first frame (should allways be true) - { - //printf("storing last IDR at video buf ind %i\n", global->w_ind); - //char test_filename[20]; - //snprintf(test_filename, 20, "frame_last_IDR.raw"); - //SaveBuff (test_filename, videoIn->h264_last_IDR_size, videoIn->h264_last_IDR); - - //should we add SPS and PPS NALU first?? - //store the last keyframe first (use current timestamp) - global->videoBuff[global->w_ind].time_stamp = global->v_ts; - global->videoBuff[global->w_ind].bytes_used = videoIn->h264_last_IDR_size; - memcpy( global->videoBuff[global->w_ind].frame, - videoIn->h264_last_IDR, - global->videoBuff[global->w_ind].bytes_used); - global->videoBuff[global->w_ind].keyframe = TRUE; - global->videoBuff[global->w_ind].used = TRUE; - NEXT_IND(global->w_ind, global->video_buff_size); - global->framecount++; - } - } - } - - if (!global->videoBuff[global->w_ind].used) - { - store_at_index(data); - if(global->format == V4L2_PIX_FMT_H264) - { - // for stream based formats change frame rate instead of dropping frames - // by making the producer thread sleep - producer_sleep = 0; - h264_framerate_balance(all_data); - } - else - producer_sleep = buff_scheduler(global->w_ind, global->r_ind, global->video_buff_size); - NEXT_IND(global->w_ind, global->video_buff_size); - } - else - { - if(global->debug) g_printerr("WARNING: buffer full waiting for free space\n"); - /*wait for IO_cond at least 100ms*/ - struct timespec endtime; - clock_gettime(CLOCK_REALTIME, &endtime); - endtime.tv_nsec += 10000; - if(__COND_TIMED_WAIT(__GCOND, __GMUTEX, &endtime)) - { - /*try to store the frame again*/ - if (!global->videoBuff[global->w_ind].used) - { - store_at_index(data); - producer_sleep = buff_scheduler(global->w_ind, global->r_ind, global->video_buff_size); - NEXT_IND(global->w_ind, global->video_buff_size); - } - else ret = -2;/*drop frame*/ - - } - else ret = -3;/*drop frame*/ - } - if(!ret) global->framecount++; - - __UNLOCK_MUTEX(__GMUTEX); - - /*-------------if needed, make the thread sleep for a while----------------*/ - if(producer_sleep) sleep_ms(producer_sleep); - - return ret; -} - -void *Audio_loop(void *data) -{ - struct ALL_DATA *all_data = (struct ALL_DATA *) data; - struct GLOBAL *global = all_data->global; - struct paRecordData *pdata = all_data->pdata; - struct vdIn *videoIn = all_data->videoIn; - - struct audio_effects *aud_eff = init_audio_effects (); - global->av_drift = 0; - pdata->ts_drift = 0; - - gboolean capVid = TRUE; - gboolean finished = FALSE; - int max_loops = 60; - - while(!finished) - { - __LOCK_MUTEX(__VMUTEX); - capVid = videoIn->capVid; - __UNLOCK_MUTEX(__VMUTEX); - - finished = process_audio(all_data, &(aud_eff)); - - if(!capVid) - { - /* if capture has stopped then limit the number of iterations - * fixes any possible loop lock on process_audio - */ - max_loops--; - if(max_loops < 1) - finished = TRUE; - } - } - - close_audio_effects (aud_eff); - - return ((void *) 0); -} - -void *IO_loop(void *data) -{ - struct ALL_DATA *all_data = (struct ALL_DATA *) data; - - struct GWIDGET *gwidget = all_data->gwidget; - struct GLOBAL *global = all_data->global; - - struct vdIn *videoIn = all_data->videoIn; - - struct JPEG_ENCODER_STRUCTURE *jpg_data=NULL; - struct lavcData *lavc_data = NULL; - //struct audio_effects *aud_eff = NULL; - - gboolean capVid = TRUE; - gboolean finished=FALSE; - int max_loops = 60; - - __LOCK_MUTEX(__VMUTEX); - videoIn->IOfinished=FALSE; - __UNLOCK_MUTEX(__VMUTEX); - - gboolean failed = FALSE; - gboolean audio_failed = FALSE; - - //video buffers to be processed - int frame_size=0; - VidBuff *proc_buff = NULL; - - /* make sure we have a IDR frame (and SPS+PPS data) before start capturing */ - if( global->VidCodec_ID == AV_CODEC_ID_H264 && - global->Frame_Flags == 0 && - global->format == V4L2_PIX_FMT_H264 && - videoIn->h264_last_IDR_size <= 0) - { - g_printerr("WARNING: h264 video stream hasn't produce a IDR frame yet - waiting\n"); - g_printerr(" Requesting a IDR frame\n"); - uvcx_request_frame_type(videoIn->fd, global->uvc_h264_unit, PICTURE_TYPE_IDR_FULL); - - /*waiting at most 3 seconds (30*100 ms)*/ - int max_loops = 30; - while(videoIn->h264_last_IDR_size <= 0 || max_loops > 0) - { - /*sleep for 100 ms*/ - sleep_ms(100); - max_loops--; - } - } - - if(initVideoFile(all_data, &(lavc_data))<0) - { - g_printerr("Cap Video failed\n"); - if(!(global->no_display)) - { - /*disable signals for video capture callback*/ - g_signal_handlers_block_by_func(GTK_TOGGLE_BUTTON(gwidget->CapVidButt), G_CALLBACK (capture_vid), all_data); - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(gwidget->CapVidButt), FALSE); - gtk_button_set_label(GTK_BUTTON(gwidget->CapVidButt),_("Cap. Video")); - /*enable signals for video capture callback*/ - g_signal_handlers_unblock_by_func(GTK_TOGGLE_BUTTON(gwidget->CapVidButt), G_CALLBACK (capture_vid), all_data); - gdk_flush(); - - /*enabling sound and video compression controls*/ - set_sensitive_vid_contrls(TRUE, global->Sound_enable, gwidget); - } - - finished = TRUE; - failed = TRUE; - } - else - { - if(global->debug) g_print("IO thread started...OK\n"); - frame_size = global->height*global->width*2; - proc_buff = g_new0(VidBuff, 1); - proc_buff->frame = g_new0(BYTE, frame_size); - - if (global->Sound_enable) - { - /*start audio process thread*/ - if( __THREAD_CREATE(&all_data->audio_thread, Audio_loop, (void *) all_data)) - { - g_printerr("Audio thread creation failed\n"); - audio_failed = TRUE; - } - } - } - - /*process video frames*/ - if(!failed) - { - while(!finished) - { - - __LOCK_MUTEX(__VMUTEX); - capVid = videoIn->capVid; - __UNLOCK_MUTEX(__VMUTEX); - - finished = process_video (all_data, proc_buff, lavc_data, &(jpg_data)); - - if(!capVid) - { - /* if capture has stopped then limit the number of iterations - * fixes any possible loop lock on process_video - */ - max_loops--; - if(max_loops < 1) - finished = TRUE; - } - } - - if (global->Sound_enable && !audio_failed) - { - /* join audio thread*/ - __THREAD_JOIN( all_data->audio_thread ); - } - - /*finish capture*/ - closeVideoFile(all_data); - - /*free proc buffer*/ - g_free(proc_buff->frame); - g_free(proc_buff); - - /* reset fps since it may have changed during capture (stream base formats) */ - videoIn->setFPS = 1; - } - - if(lavc_data != NULL) - { - clean_lavc(&lavc_data); - lavc_data = NULL; - } - - if(jpg_data != NULL) g_free(jpg_data); - jpg_data = NULL; - - if(global->jpeg != NULL) g_free(global->jpeg); //jpeg buffer used in encoding - global->jpeg = NULL; - - if(global->debug) g_print("IO thread finished...OK\n"); - - global->VidButtPress = FALSE; - __LOCK_MUTEX(__VMUTEX); - videoIn->IOfinished=TRUE; - __UNLOCK_MUTEX(__VMUTEX); - - return ((void *) 0); -} - diff -Nru guvcview-1.7.3/src/create_video.h guvcview-2.0.1+ubuntu1~ppa1/src/create_video.h --- guvcview-1.7.3/src/create_video.h 2014-03-24 22:56:28.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/src/create_video.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ -/*******************************************************************************# -# guvcview http://guvcview.sourceforge.net # -# # -# Paulo Assis # -# # -# This program is free software; you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation; either version 2 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program; if not, write to the Free Software # -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# # -********************************************************************************/ - -#ifndef CREATE_VIDEO_H -#define CREATE_VIDEO_H - -#include "guvcview.h" - -int store_video_frame(void *data); - -void *IO_loop(void *data); - -#endif diff -Nru guvcview-1.7.3/src/dct.c guvcview-2.0.1+ubuntu1~ppa1/src/dct.c --- guvcview-1.7.3/src/dct.c 2014-03-24 22:56:28.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/src/dct.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,138 +0,0 @@ -/*******************************************************************************# -# guvcview http://guvcview.sourceforge.net # -# # -# Paulo Assis # -# # -# This program is free software; you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation; either version 2 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program; if not, write to the Free Software # -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# # -********************************************************************************/ - -/*******************************************************************************# -# # -# dct for Jpeg encoder # -# # -# Adapted for linux, Paulo Assis, 2007 # -********************************************************************************/ - -#include "dct.h" -#include "defs.h" - - -/* Level shifting to get 8 bit SIGNED values for the data */ -void levelshift (INT16* const data) -{ - INT16 i; - - for (i=63; i>=0; i--) - data [i] -= 128; -} - -/* DCT for One block(8x8) */ -void DCT (INT16 *data) -{ - UINT16 i; - INT32 x0, x1, x2, x3, x4, x5, x6, x7, x8; - INT16 *tmp_ptr; - tmp_ptr=data; - /* All values are shifted left by 10 */ - /* and rounded off to nearest integer */ - - /* scale[0] = 1 - * scale[k] = cos(k*PI/16)*root(2) - */ - static const UINT16 c1=1420; /* cos PI/16 * root(2) */ - static const UINT16 c2=1338; /* cos PI/8 * root(2) */ - static const UINT16 c3=1204; /* cos 3PI/16 * root(2) */ - static const UINT16 c5=805; /* cos 5PI/16 * root(2) */ - static const UINT16 c6=554; /* cos 3PI/8 * root(2) */ - static const UINT16 c7=283; /* cos 7PI/16 * root(2) */ - - static const UINT16 s1=3; - static const UINT16 s2=10; - static const UINT16 s3=13; - - - /* row pass */ - for (i=8; i>0; i--) - { - x8 = data [0] + data [7]; - x0 = data [0] - data [7]; - - x7 = data [1] + data [6]; - x1 = data [1] - data [6]; - - x6 = data [2] + data [5]; - x2 = data [2] - data [5]; - - x5 = data [3] + data [4]; - x3 = data [3] - data [4]; - - x4 = x8 + x5; - x8 -= x5; - - x5 = x7 + x6; - x7 -= x6; - - data [0] = (INT16) (x4 + x5); - data [4] = (INT16) (x4 - x5); - - data [2] = (INT16) ((x8*c2 + x7*c6) >> s2); - data [6] = (INT16) ((x8*c6 - x7*c2) >> s2); - - data [7] = (INT16) ((x0*c7 - x1*c5 + x2*c3 - x3*c1) >> s2); - data [5] = (INT16) ((x0*c5 - x1*c1 + x2*c7 + x3*c3) >> s2); - data [3] = (INT16) ((x0*c3 - x1*c7 - x2*c1 - x3*c5) >> s2); - data [1] = (INT16) ((x0*c1 + x1*c3 + x2*c5 + x3*c7) >> s2); - - data += 8; - } - - data = tmp_ptr;/* return to start of mcu */ - - /* column pass */ - for (i=8; i>0; i--) - { - x8 = data [0] + data [56]; - x0 = data [0] - data [56]; - - x7 = data [8] + data [48]; - x1 = data [8] - data [48]; - - x6 = data [16] + data [40]; - x2 = data [16] - data [40]; - - x5 = data [24] + data [32]; - x3 = data [24] - data [32]; - - x4 = x8 + x5; - x8 -= x5; - - x5 = x7 + x6; - x7 -= x6; - - data [0] = (INT16) ((x4 + x5) >> s1); - data [32] = (INT16) ((x4 - x5) >> s1); - - data [16] = (INT16) ((x8*c2 + x7*c6) >> s3); - data [48] = (INT16) ((x8*c6 - x7*c2) >> s3); - - data [56] = (INT16) ((x0*c7 - x1*c5 + x2*c3 - x3*c1) >> s3); - data [40] = (INT16) ((x0*c5 - x1*c1 + x2*c7 + x3*c3) >> s3); - data [24] = (INT16) ((x0*c3 - x1*c7 - x2*c1 - x3*c5) >> s3); - data [8] = (INT16) ((x0*c1 + x1*c3 + x2*c5 + x3*c7) >> s3); - - data++; - } -} diff -Nru guvcview-1.7.3/src/dct.h guvcview-2.0.1+ubuntu1~ppa1/src/dct.h --- guvcview-1.7.3/src/dct.h 2014-03-24 22:56:28.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/src/dct.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,41 +0,0 @@ -/*******************************************************************************# -# guvcview http://guvcview.sourceforge.net # -# # -# Paulo Assis # -# # -# This program is free software; you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation; either version 2 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program; if not, write to the Free Software # -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# # -********************************************************************************/ - -/*******************************************************************************# -# # -# dct for Jpeg encoder # -# # -# Adapted for linux, Paulo Assis, 2007 # -********************************************************************************/ - -#ifndef DCT_H -#define DCT_H - -#include "defs.h" - -/* Level shifting to get 8 bit SIGNED values for the data */ -void levelshift (INT16* const data); - -/* DCT for One block(8x8) */ -void DCT (INT16 *data); - -#endif - diff -Nru guvcview-1.7.3/src/defs.h guvcview-2.0.1+ubuntu1~ppa1/src/defs.h --- guvcview-1.7.3/src/defs.h 2014-03-24 22:56:28.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/src/defs.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,153 +0,0 @@ -/*******************************************************************************# -# guvcview http://guvcview.sourceforge.net # -# # -# Paulo Assis # -# # -# This program is free software; you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation; either version 2 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program; if not, write to the Free Software # -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# # -********************************************************************************/ - -#ifndef DEFS_H -#define DEFS_H -#include -#include - -#define CLEAR_LINE "\x1B[K" - -#ifdef WORDS_BIGENDIAN - #define BIGENDIAN 1 -#else - #define BIGENDIAN 0 -#endif - -#define IO_MMAP 1 -#define IO_READ 2 - -#define ODD(x) ((x%2)?TRUE:FALSE) - -#define __THREAD_TYPE pthread_t -#define __THREAD_CREATE(t,f,d) (pthread_create(t,NULL,f,d)) -#define __THREAD_JOIN(t) (pthread_join(t, NULL)) - - -#define __MUTEX_TYPE pthread_mutex_t -#define __COND_TYPE pthread_cond_t -#define __INIT_MUTEX(m) ( pthread_mutex_init(m, NULL) ) -#define __CLOSE_MUTEX(m) ( pthread_mutex_destroy(m) ) -#define __LOCK_MUTEX(m) ( pthread_mutex_lock(m) ) -#define __UNLOCK_MUTEX(m) ( pthread_mutex_unlock(m) ) - -#define __INIT_COND(c) ( pthread_cond_init (c, NULL) ) -#define __CLOSE_COND(c) ( pthread_cond_destroy(c) ) -#define __COND_BCAST(c) ( pthread_cond_broadcast(c) ) -#define __COND_TIMED_WAIT(c,m,t) ( pthread_cond_timedwait(c,m,t) ) - -/*next index of ring buffer with size elements*/ -#define NEXT_IND(ind,size) ind++;if(ind>=size) ind=0 -/*previous index of ring buffer with size elements*/ -//#define PREV_IND(ind,size) ind--;if(ind<0) ind=size-1 - -#define VIDBUFF_SIZE 45 //number of video frames in the ring buffer - -#define MPG_NUM_SAMP 1152 //number of samples in a audio MPEG frame -#define AUDBUFF_SIZE 2 //number of audio mpeg frames in each audio buffer - // direct impact on latency as buffer is only processed when full -#define AUDBUFF_NUM 80 //number of audio buffers -//#define MPG_NUM_FRAMES 2 //number of MPEG frames in a audio frame - -typedef uint64_t QWORD; -typedef uint32_t DWORD; -typedef uint16_t WORD; -typedef uint8_t BYTE; -typedef unsigned int LONG; -typedef unsigned int UINT; - -typedef unsigned long long ULLONG; -typedef unsigned long ULONG; - -typedef char* pchar; - -typedef int8_t INT8; -typedef uint8_t UINT8; -typedef int16_t INT16; -typedef uint16_t UINT16; -typedef int32_t INT32; -typedef uint32_t UINT32; -typedef int64_t INT64; -typedef uint64_t UINT64; - -typedef float SAMPLE; - -/* 0 is device default*/ -static const int stdSampleRates[] = -{ - 0, 8000, 9600, 11025, 12000, - 16000, 22050, 24000, - 32000, 44100, 48000, - 88200, 96000, - -1 /* Negative terminated list. */ -}; - -/*----------- guvcview version ----------------*/ -//#define VERSION ("") /*defined in config.h*/ -#define DEBUG (0) - -#define INCPANTILT 64 // 1° - -#define WINSIZEX 560 -#define WINSIZEY 560 - -#define AUTO_EXP 8 -#define MAN_EXP 1 - -#define DHT_SIZE 432 - -#define DEFAULT_WIDTH 640 -#define DEFAULT_HEIGHT 480 - -#define DEFAULT_FPS 25 -#define DEFAULT_FPS_NUM 1 -#define SDL_WAIT_TIME 30 /*SDL - Thread loop sleep time */ - -/*clip value between 0 and 255*/ -#define CLIP(value) (BYTE)(((value)>0xFF)?0xff:(((value)<0)?0:(value))) - -/*MAX macro - gets the bigger value*/ -#ifndef MAX -#define MAX(a,b) (((a) < (b)) ? (b) : (a)) -#endif - -/*FILTER FLAGS*/ -#define YUV_NOFILT (0) -#define YUV_MIRROR (1<<0) -#define YUV_UPTURN (1<<1) -#define YUV_NEGATE (1<<2) -#define YUV_MONOCR (1<<3) -#define YUV_PIECES (1<<4) -#define YUV_PARTICLES (1<<5) - -/*Audio Effects*/ -#define SND_NOEF (0) -#define SND_ECHO (1<<0) -#define SND_FUZZ (1<<1) -#define SND_REVERB (1<<2) -#define SND_WAHWAH (1<<3) -#define SND_DUCKY (1<<4) - -/* On Screen Display flags*/ -#define OSD_METER (1<<0) - -#endif - diff -Nru guvcview-1.7.3/src/file_io.c guvcview-2.0.1+ubuntu1~ppa1/src/file_io.c --- guvcview-1.7.3/src/file_io.c 2014-03-24 22:56:28.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/src/file_io.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,335 +0,0 @@ -/*******************************************************************************# -# guvcview http://guvcview.sourceforge.net # -# # -# Paulo Assis # -# # -# This program is free software; you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation; either version 2 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program; if not, write to the Free Software # -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# # -********************************************************************************/ - -#include -#include -#include -#include -#include -#include -#include -#include "file_io.h" - -/** - * file io base functions - **/ - -static int64_t io_tell(io_Writer* writer) -{ - if(writer->fp == NULL) - { - fprintf(stderr, "IO: (tell) no file pointer associated with writer (mem only ?)\n"); - return -1; - } - //flush the file buffer - fflush(writer->fp); - - //return the file pointer position - return ((int64_t) ftello64(writer->fp)); -} - -/** flush a mem only writer(buf_writer) into a file writer */ -int io_flush_buf_writer(io_Writer* file_writer, io_Writer* buf_writer) -{ - int size = (int) (buf_writer->buf_ptr - buf_writer->buffer); - io_write_buf(file_writer, buf_writer->buffer, size); - buf_writer->buf_ptr = buf_writer->buffer; - - return size; -} - - -/* create a new writer for filename*/ -io_Writer* io_create_writer(const char *filename, int max_size) -{ - io_Writer* writer = g_new0(io_Writer, 1); - - if(writer == NULL) - return NULL; - - if(max_size > 0) - writer->buffer_size = max_size; - else - writer->buffer_size = IO_BUFFER_SIZE; - - writer->buffer = g_new0(BYTE, writer->buffer_size); - writer->buf_ptr = writer->buffer; - writer->buf_end = writer->buf_ptr + writer->buffer_size; - - if(filename != NULL) - { - writer->fp = fopen(filename, "wb"); - if (writer->fp == NULL) - { - perror("Could not open file for writing"); - g_free(writer); - return NULL; - } - } - else - writer->fp = NULL; //mem only writer (must be flushed to a file writer) - - return writer; -} - -void io_destroy_writer(io_Writer* writer) -{ - //clean up - - if(writer->fp != NULL) - { - // flush the buffer to file - io_flush_buffer(writer); - // flush the file buffer - fflush(writer->fp); - // close the file pointer - fclose(writer->fp); - } - - //clean the mem buffer - free(writer->buffer); -} - -int64_t io_flush_buffer(io_Writer* writer) -{ - if(writer->fp == NULL) - { - fprintf(stderr, "IO: (flush) no file pointer associated with writer (mem only ?)\n"); - fprintf(stderr, "IO: (flush) try to increase buffer size\n"); - return -1; - } - - size_t nitems = 0; - if (writer->buf_ptr > writer->buffer) - { - nitems= writer->buf_ptr - writer->buffer; - if(fwrite(writer->buffer, 1, nitems, writer->fp) < nitems) - { - perror("IO: file write error"); - return -1; - } - } - else if (writer->buf_ptr < writer->buffer) - { - fprintf(stderr, "IO: Bad buffer pointer - dropping buffer\n"); - writer->buf_ptr = writer->buffer; - return -1; - } - - int64_t size_inc = nitems - (writer->size - writer->position); - if(size_inc > 0) - writer->size += size_inc; - - writer->position = io_tell(writer); //update current file pointer position - - writer->buf_ptr = writer->buffer; - - //should never happen - if(writer->position > writer->size) - { - fprintf(stderr, "IO: file pointer ( %" PRIu64 " ) above expected file size ( %" PRIu64 " )\n", writer->position, writer->size); - writer->size = writer->position; - } - - return writer->position; -} - -int io_seek(io_Writer* writer, int64_t position) -{ - int ret = 0; - - if(position <= writer->size) //position is on the file - { - if(writer->fp == NULL) - { - fprintf(stderr, "IO: (seek) no file pointer associated with writer (mem only ?)\n"); - return -1; - } - //flush the memory buffer (we need an empty buffer) - io_flush_buffer(writer); - //try to move the file pointer to position - int ret = fseeko(writer->fp, position, SEEK_SET); - if(ret != 0) - fprintf(stderr, "IO: seek to file position %" PRIu64 "failed\n", position); - else - writer->position = io_tell(writer); //update current file pointer position - - //we are now on position with an empty memory buffer - } - else // position is on the buffer - { - //move file pointer to EOF - if(writer->position != writer->size) - { - fseeko(writer->fp, writer->size, SEEK_SET); - writer->position = writer->size; - } - //move buffer pointer to position - writer->buf_ptr = writer->buffer + (position - writer->size); - } - return ret; -} - -int io_skip(io_Writer* writer, int amount) -{ - if(writer->fp == NULL) - { - fprintf(stderr, "IO: (skip) no file pointer associated with writer (mem only ?)\n"); - return -1; - } - //flush the memory buffer (clean buffer) - io_flush_buffer(writer); - //try to move the file pointer to position - int ret = fseeko(writer->fp, amount, SEEK_CUR); - if(ret != 0) - fprintf(stderr, "writer: skip file pointer by 0x%x failed\n", amount); - - writer->position = io_tell(writer); //update current file pointer position - - //we are on position with an empty memory buffer - return ret; -} - -int64_t io_get_offset(io_Writer* writer) -{ - //buffer offset - int64_t offset = writer->buf_ptr - writer->buffer; - if(offset < 0) - { - fprintf(stderr, "IO: bad buf pointer\n"); - writer->buf_ptr = writer->buffer; - offset = 0; - } - //add to file offset - offset += writer->position; - - return offset; -} - -void io_write_w8(io_Writer* writer, BYTE b) -{ - *writer->buf_ptr++ = b; - if (writer->buf_ptr >= writer->buf_end) - io_flush_buffer(writer); -} - -void io_write_buf(io_Writer* writer, BYTE *buf, int size) -{ - while (size > 0) - { - int len = writer->buf_end - writer->buf_ptr; - if(len < 0) - fprintf(stderr,"IO: (write_buf) buff pointer outside buffer\n"); - if(len >= size) - len = size; - - memcpy(writer->buf_ptr, buf, len); - writer->buf_ptr += len; - - if (writer->buf_ptr >= writer->buf_end) - io_flush_buffer(writer); - - buf += len; - size -= len; - } -} - -void io_write_wl16(io_Writer* writer, uint16_t val) -{ - io_write_w8(writer, (BYTE) val); - io_write_w8(writer, (BYTE) (val >> 8)); -} - -void io_write_wb16(io_Writer* writer, uint16_t val) -{ - io_write_w8(writer, (BYTE) (val >> 8)); - io_write_w8(writer, (BYTE) val); -} - -void io_write_wl24(io_Writer* writer, uint32_t val) -{ - io_write_wl16(writer, (uint16_t) (val & 0xffff)); - io_write_w8(writer, (BYTE) (val >> 16)); -} - -void io_write_wb24(io_Writer* writer, uint32_t val) -{ - io_write_wb16(writer, (uint16_t) (val >> 8)); - io_write_w8(writer, (BYTE) val); -} - -void io_write_wl32(io_Writer* writer, uint32_t val) -{ - io_write_w8(writer, (BYTE) val); - io_write_w8(writer, (BYTE) (val >> 8)); - io_write_w8(writer, (BYTE) (val >> 16)); - io_write_w8(writer, (BYTE) (val >> 24)); -} - -void io_write_wb32(io_Writer* writer, uint32_t val) -{ - io_write_w8(writer, (BYTE) (val >> 24)); - io_write_w8(writer, (BYTE) (val >> 16)); - io_write_w8(writer, (BYTE) (val >> 8)); - io_write_w8(writer, (BYTE) val); -} - -void io_write_wl64(io_Writer* writer, uint64_t val) -{ - io_write_wl32(writer, (uint32_t)(val & 0xffffffff)); - io_write_wl32(writer, (uint32_t)(val >> 32)); -} - -void io_write_wb64(io_Writer* writer, uint64_t val) -{ - io_write_wb32(writer, (uint32_t)(val >> 32)); - io_write_wb32(writer, (uint32_t)(val & 0xffffffff)); -} - -void io_write_4cc(io_Writer* writer, const char *str) -{ - int len = 4; - if(strlen(str) < len ) - { - len = strlen(str); - } - - io_write_buf(writer, (BYTE *) str, len); - - len = 4 - len; - //fill remaining chars with spaces - while(len > 0) - { - io_write_w8(writer, ' '); - len--; - } -} - -int io_write_str(io_Writer* writer, const char *str) -{ - int len = 1; - if (str) { - len += strlen(str); - io_write_buf(writer, (BYTE *) str, len); - } else - io_write_w8(writer, 0); - return len; -} diff -Nru guvcview-1.7.3/src/file_io.h guvcview-2.0.1+ubuntu1~ppa1/src/file_io.h --- guvcview-1.7.3/src/file_io.h 2014-03-24 22:56:28.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/src/file_io.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,94 +0,0 @@ -/*******************************************************************************# -# guvcview http://guvcview.sourceforge.net # -# # -# Paulo Assis # -# # -# This program is free software; you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation; either version 2 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program; if not, write to the Free Software # -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# # -********************************************************************************/ - -#ifndef FILE_IO_H -#define FILE_IO_H - -#include "../config.h" -#include "defs.h" - -#define IO_BUFFER_SIZE 32768 - -typedef struct io_Writer -{ - FILE *fp; /* file pointer */ - - BYTE *buffer; /**< Start of the buffer. */ - int buffer_size; /**< Maximum buffer size */ - BYTE *buf_ptr; /**< Current position in the buffer */ - BYTE *buf_end; /**< End of the buffer. */ - - int64_t size; //file size (end of file position) - int64_t position; //file pointer position (updates on buffer flush) -} io_Writer; - -/** create a new writer: - * params: filename - file for write to (if NULL mem only writer) - * max_size - mem buffer size (if 0 use default)*/ -io_Writer* io_create_writer(const char *filename, int max_size); -/* destroy the writer*/ -void io_destroy_writer(io_Writer* writer); -/*flush the writer buffer to disk */ -int64_t io_flush_buffer(io_Writer* writer); -/* move the writer pointer to position */ -int io_seek(io_Writer* writer, int64_t position); -/* move file pointer by amount*/ -int io_skip(io_Writer* writer, int amount); -/* get writer offset (current position) */ -int64_t io_get_offset(io_Writer* writer); -/* write 1 octet */ -void io_write_w8(io_Writer* writer, BYTE b); -/* write a buffer of size*/ -void io_write_buf(io_Writer* writer, BYTE *buf, int size); -/* write 2 octets le */ -void io_write_wl16(io_Writer* writer, uint16_t val); -/* write 2 octets be */ -void io_write_wb16(io_Writer* writer, uint16_t val); -/* write 3 octets le */ -void io_write_wl24(io_Writer* writer, uint32_t val); -/* write 3 octets be */ -void io_write_wb24(io_Writer* writer, uint32_t val); -/* write 4 octets le */ -void io_write_wl32(io_Writer* writer, uint32_t val); -/* write 4 octets be */ -void io_write_wb32(io_Writer* writer, uint32_t val); -/* write 8 octets le */ -void io_write_wl64(io_Writer* writer, uint64_t val); -/* write 8 octets be */ -void io_write_wb64(io_Writer* writer, uint64_t val); -/* write a 4cc (4 char word)*/ -void io_write_4cc(io_Writer* writer, const char *str); -/* write a string (null terminated) returns the size writen*/ -int io_write_str(io_Writer* writer, const char *str); - -#if BIGENDIAN - #define io_write_w16 io_write_wb16 - #define io_write_w24 io_write_wb24 - #define io_write_w32 io_write_wb32 - #define io_write_w64 io_write_wb64 -#else - #define io_write_w16 io_write_wl16 - #define io_write_w24 io_write_wl24 - #define io_write_w32 io_write_wl32 - #define io_write_w64 io_write_wl64 -#endif - -#endif diff -Nru guvcview-1.7.3/src/globals.c guvcview-2.0.1+ubuntu1~ppa1/src/globals.c --- guvcview-1.7.3/src/globals.c 2014-03-24 22:56:28.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/src/globals.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,209 +0,0 @@ -/*******************************************************************************# -# guvcview http://guvcview.sourceforge.net # -# # -# Paulo Assis # -# # -# This program is free software; you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation; either version 2 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program; if not, write to the Free Software # -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# # -********************************************************************************/ - -#include -/* support for internationalization - i18n */ -#include -#include "globals.h" -#include "avilib.h" -#include "sound.h" -#include "v4l2uvc.h" -#include "string_utils.h" -#include "vcodecs.h" -#include "acodecs.h" - -#define __AMUTEX &pdata->mutex -#define __VMUTEX &videoIn->mutex -#define __GMUTEX &global->mutex -#define __FMUTEX &global->file_mutex -#define __GCOND &global->IO_cond - -int initGlobals (struct GLOBAL *global) -{ - __INIT_MUTEX( __GMUTEX ); - __INIT_MUTEX( __FMUTEX ); - __INIT_COND( __GCOND ); /* Initialized video buffer semaphore */ - - global->debug = DEBUG; - - const gchar *home = g_get_home_dir(); - - global->videodevice = g_strdup("/dev/video0"); - - global->confPath = g_strjoin("/", home, ".config", "guvcview", NULL); - int ret = g_mkdir_with_parents(global->confPath, 0777); - if(ret) - fprintf(stderr, "Couldn't create configuration dir: %s \n", global->confPath); - - g_free(global->confPath); - global->confPath = g_strjoin("/", home, ".config", "guvcview", "video0", NULL); - - global->vidFPath = g_new(pchar, 2); - - global->imgFPath = g_new(pchar, 2); - - global->profile_FPath = g_new(pchar, 2); - - global->vidFPath[1] = g_strdup(home); - - global->imgFPath[1] = g_strdup(home); - - global->profile_FPath[1] = g_strdup(home); - - global->vidFPath[0] = g_strdup("guvcview_video.mkv"); - global->VidFormat = check_video_type(global->vidFPath[0]); - - global->imgFPath[0] = g_strdup("guvcview_image.jpg"); - global->imgFormat = check_image_type(global->imgFPath[0]); - - global->profile_FPath[0] = g_strdup("default.gpfl"); - - global->WVcaption = g_new(char, 32); - - g_snprintf(global->WVcaption,10,"GUVCVIdeo"); - - global->videoBuff = NULL; - global->video_buff_size = VIDBUFF_SIZE; - - global->image_inc = 1; //increment filename by default - global->vid_inc = 1; //increment filename by default - - global->vid_sleep=0; - global->vidfile=NULL; /*vid filename passed through argument options with -n */ - global->Capture_time=0; /*vid capture time passed through argument options with -t */ - global->lprofile=0; /* flag for -l command line option*/ - - /** try to set video codec default to mpeg4*/ - setVcodecVal (); - int vcodec = get_list_vcodec_index(AV_CODEC_ID_MPEG4); - if(vcodec < 0) - vcodec = 0; - global->VidCodec= vcodec; /*0-"MJPG" 1-"YUY2" 2-"DIB "(rgb32) 3-...*/ - global->VidCodec_ID = get_vcodec_id(global->VidCodec); // AV_CODEC_ID_MPEG4 or MJPG - /** try to set audio codec default to mp2*/ - setAcodecVal(); - int acodec = get_list_acodec_index(AV_CODEC_ID_MP2); - if(acodec < 0) - acodec = 0; - global->AudCodec = acodec; /*0-"PCM" 1-"MPG2" 2-...*/ - - global->av_drift=0; - global->Vidstarttime=0; - global->Vidstoptime=0; - global->framecount=0; - global->w_ind=0; - global->r_ind=0; - - global->Sound_enable=TRUE; /*Enable Sound by Default*/ - global->Sound_IndexDev=NULL; - global->Sound_SampRate=SAMPLE_RATE; - global->Sound_SampRateInd=0; - global->Sound_numInputDev=0; - global->Sound_Format=WAVE_FORMAT_MPEG12; /*set MP2 by default*/ - global->Sound_DefDev=0; - global->Sound_UseDev=0; - global->Sound_NumChan=NUM_CHANNELS; - global->Sound_NumChanInd=0; - global->Sound_delay=0; /*sound delay in nanosec*/ - global->FpsCount=0; - - global->disk_timer_id=0; - global->timer_id=0; - global->image_timer_id=0; - global->image_timer=0; - global->image_npics=9999;/*default max number of captures*/ - global->image_picn =0; - global->frmCount=0; - global->PanStep=2;/*2 degree step for Pan*/ - global->TiltStep=2;/*2 degree step for Tilt*/ - global->DispFps=0; - global->fps = DEFAULT_FPS; - global->fps_num = DEFAULT_FPS_NUM; - global->bpp = 0; //current bytes per pixel - global->hwaccel = 1; //use hardware acceleration - global->desktop_w = 0; - global->desktop_h = 0; - global->cap_meth = IO_MMAP;//default mmap(1) or read(0) - global->flg_cap_meth = FALSE; - global->width = DEFAULT_WIDTH; - global->height = DEFAULT_HEIGHT; - global->winwidth=WINSIZEX; - global->winheight=WINSIZEY; - - global->default_action=0; - - global->mode = g_new(char, 6); - g_snprintf(global->mode, 5, "mjpg"); - - global->format = V4L2_PIX_FMT_MJPEG; - - global->Frame_Flags = YUV_NOFILT; - global->osdFlags = 0; - - global->no_display = FALSE; - global->exit_on_close = FALSE; - global->skip_n=0; - global->jpeg=NULL; - global->uvc_h264_unit = 0; //not supported by default - - /* reset with videoIn parameters */ - global->autofocus = FALSE; - global->AFcontrol = FALSE; - global->VidButtPress = FALSE; - global->change_res = FALSE; - global->add_ctrls = FALSE; - global->lctl_method = LIST_CTL_METHOD_NEXT_FLAG; //next_ctrl flag method - return (0); -} - -int closeGlobals(struct GLOBAL *global) -{ - if(!global) - return(-1); - - g_free(global->videodevice); - g_free(global->confPath); - g_free(global->vidFPath[1]); - g_free(global->imgFPath[1]); - g_free(global->imgFPath[0]); - g_free(global->vidFPath[0]); - g_free(global->profile_FPath[1]); - g_free(global->profile_FPath[0]); - g_free(global->vidFPath); - g_free(global->imgFPath); - g_free(global->profile_FPath); - g_free (global->WVcaption); - g_free(global->vidfile); - g_free(global->mode); - g_free(global->Sound_IndexDev); - __CLOSE_MUTEX( __GMUTEX ); - __CLOSE_MUTEX( __FMUTEX ); - __CLOSE_COND( __GCOND ); - - global->videodevice=NULL; - global->confPath=NULL; - global->vidfile=NULL; - global->mode=NULL; - if(global->jpeg) g_free(global->jpeg); - global->jpeg=NULL; - g_free(global); - return (0); -} diff -Nru guvcview-1.7.3/src/globals.h guvcview-2.0.1+ubuntu1~ppa1/src/globals.h --- guvcview-1.7.3/src/globals.h 2014-03-24 22:56:28.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/src/globals.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,164 +0,0 @@ -/*******************************************************************************# -# guvcview http://guvcview.sourceforge.net # -# # -# Paulo Assis # -# # -# This program is free software; you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation; either version 2 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program; if not, write to the Free Software # -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# # -********************************************************************************/ - -#ifndef GLOBALS_H -#define GLOBALS_H - -#include -#include -#include "defs.h" -#include "utils.h" - -typedef struct _sndDev -{ - int id; - int chan; - int samprate; - char name[512]; - char description[256]; - //PaTime Hlatency; - //PaTime Llatency; -} sndDev; - -typedef struct _VidBuff -{ - gboolean used; - QWORD time_stamp; - BYTE *frame; - int bytes_used; - gboolean keyframe; -} VidBuff; - -/*global variables used in guvcview*/ -struct GLOBAL -{ - - __MUTEX_TYPE mutex; //global struct mutex - __MUTEX_TYPE file_mutex; //video file mutex - __COND_TYPE IO_cond; //IO thread semaphore - - VidBuff *videoBuff; //video Buffer - int video_buff_size; //size in frames of video buffer - - char *videodevice; // video device (def. /dev/video0) - char *confPath; //configuration file path - char *vidfile; //video filename passed through argument options with -n - char *WVcaption; //video preview title bar caption - //char *imageinc_str; //label for File inc - //char *vidinc_str; //label for File inc - char *mode; //mjpg (default) - pchar* vidFPath; //video path [0] - filename [1] - dir - pchar* imgFPath; //image path [0] - filename [1] - dir - pchar* profile_FPath; //profile path [0] - filename [1] - dir - - sndDev *Sound_IndexDev;//list of sound input devices - BYTE *jpeg; // jpeg buffer - - int64_t av_drift; // amount of A/V time correction - UINT64 Vidstarttime; //video start time - UINT64 Vidstoptime; //video stop time - QWORD v_ts; //video time stamp - QWORD a_ts; //audio time stamp - uint64_t vid_inc; //video name increment - uint64_t framecount; //video frame count - DWORD frmCount; //frame count for fps display calc - uint64_t image_inc; //image name increment - - int vid_sleep; //video thread sleep time (0 by default) - int cap_meth; //capture method: 1-mmap 2-read - int Capture_time; //video capture time passed through argument options with -t - int imgFormat; //image format: 0-"jpg", 1-"png", 2-"bmp" - int VidCodec; //0-"MJPG" 1-"YUY2" 2-"DIB "(rgb32) 3-.... - int VidCodec_ID; //lavc codec ID - int AudCodec; //0-PCM 1-MPG2 3-... - int VidFormat; //0-AVI 1-MKV .... - int Sound_API; //audio API: 0-PORTAUDIO 1-PULSEAUDIO - int Sound_SampRate; //audio sample rate - int Sound_SampRateInd; //audio sample rate combo index - int Sound_numInputDev; //number of audio input devices - int Sound_DefDev; //audio default device index - int Sound_UseDev; //audio used device index - int Sound_NumChan; //audio number of channels - int Sound_NumChanInd; //audio number of channels combo index - WORD Sound_Format; //audio codec - fourcc (avilib.h) - uint64_t Sound_delay; //added sound delay (in nanosec) - int PanStep; //step angle for Pan - int TiltStep; //step angle for Tilt - int FpsCount; //frames counter for fps calc - int timer_id; //fps count timer - int image_timer_id; //auto image capture timer - int udev_timer_id; //timer id for udev device events check - int disk_timer_id; //timer id for disk check (free space) - int image_timer; //auto image capture time - int image_npics; //number of captures - int image_picn; //capture number - int fps; //fps denominator - int fps_num; //fps numerator (usually 1) - int bpp; //current bytes per pixel - int hwaccel; //use hardware acceleration - int desktop_w; //Desktop width - int desktop_h; //Desktop height - int width; //frame width - int height; //frame height - int winwidth; //control windoe width - int winheight; //control window height - int format; //v4l2 pixel format - int Frame_Flags; //frame filter flags - int osdFlags; // Flags to control onscreen display - int skip_n; //initial frames to skip - int w_ind; //write frame index - int r_ind; //read frame index - int default_action; // 0 for taking picture, 1 for video - int lctl_method; // 0 for control id loop, 1 for next_ctrl flag method - int uvc_h264_unit; //uvc h264 unit id, if <= 0 then uvc h264 is not supported - - float DispFps; //fps value - - gboolean no_display; //flag if guvcview will present the gui or not. - gboolean exit_on_close;//exit guvcview after closing video when capturing from start - gboolean Sound_enable; //Enable/disable Sound (Def. enable) - gboolean AFcontrol; //Autofocus control flag (exists or not) - gboolean autofocus; //autofocus flag (enable/disable) - gboolean flg_config; //flag confPath if set in args - gboolean lprofile; //flag for command line -l option - gboolean flg_npics; //flag npics if set in args - gboolean flg_hwaccel; //flag hwaccel if set in args - gboolean flg_res; //flag resol if set in args - gboolean flg_mode; //flag mode if set in args - gboolean flg_imgFPath; //flag imgFPath if set in args - gboolean flg_FpsCount; //flag FpsCount if set in args - gboolean flg_cap_meth; //flag if cap_meth is set in args - gboolean debug; //debug mode flag (--verbose) - gboolean VidButtPress; - gboolean control_only; //if set don't stream video (enables image control in other apps e.g. ekiga, skype, mplayer) - gboolean change_res; //flag for reseting resolution - gboolean add_ctrls; //flag for exiting after adding extension controls - gboolean monotonic_pts;//flag if we are using monotonic or real pts -}; - -/*----------------------------- prototypes ------------------------------------*/ -int initGlobals(struct GLOBAL *global); - -int closeGlobals(struct GLOBAL *global); - - -#endif - diff -Nru guvcview-1.7.3/src/guvcview.c guvcview-2.0.1+ubuntu1~ppa1/src/guvcview.c --- guvcview-1.7.3/src/guvcview.c 2014-03-24 22:56:28.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/src/guvcview.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,887 +0,0 @@ -/*******************************************************************************# -# guvcview http://guvcview.sourceforge.net # -# # -# Paulo Assis # -# Nobuhiro Iwamatsu # -# Dr. Alexander K. Seewald # -# Autofocus algorithm # -# Flemming Frandsen # -# George Sedov # -# # -# This program is free software; you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation; either version 2 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program; if not, write to the Free Software # -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# # -********************************************************************************/ - - -#include -#include -#include -/* support for internationalization - i18n */ -#include -/* locale.h is needed if -O0 used (no optimiztions) */ -/* otherwise included from libintl.h on glib/gi18n.h */ -#include -#include -#include /* for fcntl, O_NONBLOCK */ -#include -#include - -#include "../config.h" -#include "avilib.h" -#include "colorspaces.h" -#include "sound.h" -#include "snd_devices.h" -#include "jpgenc.h" -#include "autofocus.h" -#include "picture.h" -#include "ms_time.h" -#include "string_utils.h" -#include "options.h" -#include "video.h" -#include "lavc_common.h" -#include "vcodecs.h" -#include "acodecs.h" -#include "create_video.h" -#include "profile.h" -#include "callbacks.h" -#include "close.h" -#include "img_controls.h" -#include "menubar.h" -#include "video_tab.h" -#include "audio_tab.h" -#include "uvc_h264.h" -#include "timers.h" - -#define __AMUTEX &pdata->mutex - - -/*----------------------------- globals --------------------------------------*/ - -struct paRecordData *pdata = NULL; -struct GLOBAL *global = NULL; -struct focusData *AFdata = NULL; -struct vdIn *videoIn = NULL; -struct VideoFormatData *videoF = NULL; - -/*controls data*/ -struct VidState *s = NULL; -/*global widgets*/ -struct GWIDGET *gwidget = NULL; - -/*thread definitions*/ -//__THREAD_TYPE video_thread; - -/* - * Unix signals that are cought are written to a pipe. The pipe connects - * the unix signal handler with GTK's event loop. The array signal_pipe will - * hold the file descriptors for the two ends of the pipe (index 0 for - * reading, 1 for writing). - */ -int signal_pipe[2]; - -/* - * The unix signal handler. - * Write any unix signal into the pipe. The writing end of the pipe is in - * non-blocking mode. If it is full (which can only happen when the - * event loop stops working) signals will be dropped. - */ -void pipe_signals(int signal) -{ - if(write(signal_pipe[1], &signal, sizeof(int)) != sizeof(int)) - { - fprintf(stderr, "unix signal %d lost\n", signal); - } -} - -/* - * The event loop callback that handles the unix signals. Must be a GIOFunc. - * The source is the reading end of our pipe, cond is one of - * G_IO_IN or G_IO_PRI (I don't know what could lead to G_IO_PRI) - * the pointer d is always NULL - */ -gboolean deliver_signal(GIOChannel *source, GIOCondition cond, gpointer data) -{ - GError *error = NULL; /* for error handling */ - - /* - * There is no g_io_channel_read or g_io_channel_read_int, so we read - * char's and use a union to recover the unix signal number. - */ - union { - gchar chars[sizeof(int)]; - int signal; - } buf; - GIOStatus status; /* save the reading status */ - gsize bytes_read; /* save the number of chars read */ - - /* - * Read from the pipe as long as data is available. The reading end is - * also in non-blocking mode, so if we have consumed all unix signals, - * the read returns G_IO_STATUS_AGAIN. - */ - while((status = g_io_channel_read_chars(source, buf.chars, - sizeof(int), &bytes_read, &error)) == G_IO_STATUS_NORMAL) - { - g_assert(error == NULL); /* no error if reading returns normal */ - - /* - * There might be some problem resulting in too few char's read. - * Check it. - */ - if(bytes_read != sizeof(int)){ - fprintf(stderr, "lost data in signal pipe (expected %lu, received %lu)\n", - (long unsigned int) sizeof(int), (long unsigned int) bytes_read); - continue; /* discard the garbage and keep fingers crossed */ - } - - /* Ok, we read a unix signal number, so let the label reflect it! */ - switch (buf.signal) - { - case SIGINT: - shutd(0, data);//shutDown - break; - case SIGUSR1: - capture_vid (NULL, data); /* start/stop video capture */ - break; - case SIGUSR2: - capture_image (NULL, data); /* capture a Image */ - break; - default: - printf("guvcview signal %d caught\n", buf.signal); - break; - } - } - - /* - * Reading from the pipe has not returned with normal status. Check for - * potential errors and return from the callback. - */ - if(error != NULL){ - fprintf(stderr, "reading signal pipe failed: %s\n", error->message); - exit(1); - } - if(status == G_IO_STATUS_EOF){ - fprintf(stderr, "signal pipe has been closed\n"); - exit(1); - } - - g_assert(status == G_IO_STATUS_AGAIN); - return (TRUE); /* keep the event source */ -} - -/*--------------------------------- MAIN -------------------------------------*/ -int main(int argc, char *argv[]) -{ - int ret=0; - - /* - * In order to register the reading end of the pipe with the event loop - * we must convert it into a GIOChannel. - */ - GIOChannel *g_signal_in; - long fd_flags; /* used to change the pipe into non-blocking mode */ - GError *error = NULL; /* handle errors */ - - /*print package name and version*/ - g_print("%s\n", PACKAGE_STRING); - - //g_type_init (); - //gdk_threads_init(); - -#ifdef ENABLE_NLS - char* lc_all = setlocale (LC_ALL, ""); - char* lc_dir = bindtextdomain (GETTEXT_PACKAGE, PACKAGE_LOCALE_DIR); - bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8"); - char* txtdom = textdomain (GETTEXT_PACKAGE); - const gchar * const * langs = g_get_language_names (); //get ordered list of defined languages -#endif - /*structure containing all shared data - passed in callbacks*/ - struct ALL_DATA all_data; - memset(&all_data,0,sizeof(struct ALL_DATA)); - - /** initGlobals needs codecs registered - * so do it here - */ -#if !LIBAVCODEC_VER_AT_LEAST(53,34) - avcodec_init(); -#endif - // register all the codecs (you can also register only the codec - //you wish to have smaller code) - avcodec_register_all(); - - /*allocate global variables*/ - global = g_new0(struct GLOBAL, 1); - initGlobals(global); - - /*------------------------ reads command line options --------------------*/ - readOpts(argc,argv,global); - - /*------------------------- reads configuration file ---------------------*/ - readConf(global); - - //sets local control_only flag - prevents several initializations/allocations - gboolean control_only = (global->control_only || global->add_ctrls) ; - - if(global->no_display && global->control_only ) - { - g_printerr("incompatible options (control_only and no_display): enabling display"); - global->no_display = FALSE; - } - - /*---------------------------------- Allocations -------------------------*/ - - gwidget = g_new0(struct GWIDGET, 1); - gwidget->vid_widget_state = TRUE; - - /* widgets */ - GtkWidget *scroll1; - GtkWidget *Tab1; - GtkWidget *Tab1Label; - GtkWidget *Tab1Icon; - GtkWidget *ImgButton_Img; - GtkWidget *VidButton_Img; - GtkWidget *QButton_Img; - GtkWidget *HButtonBox; - - - s = g_new0(struct VidState, 1); - - if(!control_only) /*control_only exclusion (video and Audio) */ - { - pdata = g_new0(struct paRecordData, 1); - //pdata->maincontext = g_main_context_default(); - /*create mutex for sound buffers*/ - __INIT_MUTEX(__AMUTEX); - - /* Allocate the video Format struct */ - videoF = g_new0(struct VideoFormatData, 1); - - /*---------------------------- Start PortAudio API -----------------------*/ - if(global->debug) g_print("starting portaudio...\n"); - Pa_Initialize(); - } - -#ifdef ENABLE_NLS - /* if --verbose mode set do debug*/ - if (global->debug) g_print("language catalog=> dir:%s type:%s lang:%s cat:%s.mo\n", - lc_dir, lc_all, langs[0], txtdom); -#endif - /*---------------------------- GTK init ----------------------------------*/ - if(!global->no_display) - { - if(!gtk_init_check(&argc, &argv)) - { - g_printerr("GUVCVIEW: can't open display: changing to no_display mode\n"); - global->no_display = TRUE; /*if we can't open the display fallback to no_display mode*/ - } - } - - if(!global->no_display) - { - g_set_application_name(_("Guvcview Video Capture")); - g_setenv("PULSE_PROP_media.role", "video", TRUE); //needed for Pulse Audio - - /* make sure the type is realized so that we can change the properties*/ - g_type_class_unref (g_type_class_ref (GTK_TYPE_BUTTON)); - /* make sure gtk-button-images property is set to true (defaults to false in karmic)*/ - g_object_set (gtk_settings_get_default (), "gtk-button-images", TRUE, NULL); - - /* Create a main window */ - gwidget->mainwin = gtk_window_new(GTK_WINDOW_TOPLEVEL); - gtk_window_set_title (GTK_WINDOW (gwidget->mainwin), _("GUVCViewer Controls")); - //get screen resolution - if((!global->desktop_w) || (!global->desktop_h)) - { - GdkScreen* screen = NULL; - screen = gtk_window_get_screen(GTK_WINDOW(gwidget->mainwin)); - global->desktop_w = gdk_screen_get_width(screen); - global->desktop_h = gdk_screen_get_height(screen); - } - if(global->debug) - g_print("Screen resolution is (%d x %d)\n", global->desktop_w, global->desktop_h); - - if((global->winwidth > global->desktop_w) && (global->desktop_w > 0)) - global->winwidth = global->desktop_w; - if((global->winheight > global->desktop_h) && (global->desktop_h > 0)) - global->winheight = global->desktop_h; - - gtk_window_resize(GTK_WINDOW(gwidget->mainwin),global->winwidth,global->winheight); - - /* Add event handlers */ - g_signal_connect(GTK_WINDOW(gwidget->mainwin), "delete_event", G_CALLBACK(delete_event), &all_data); - } - - /*----------------------- init videoIn structure --------------------------*/ - videoIn = g_new0(struct vdIn, 1); - - /*set structure with all global allocations*/ - all_data.pdata = pdata; - all_data.global = global; - all_data.AFdata = AFdata; /*not allocated yet*/ - all_data.videoIn = videoIn; - all_data.videoF = videoF; - all_data.gwidget = gwidget; - all_data.h264_controls = NULL; /*filled by add_uvc_h264_controls_tab */ - all_data.s = s; - - /*get format from selected mode*/ - global->format = get_PixFormat(global->mode); - if(global->debug) - g_print("%s: setting format to %c%c%c%c\n", - global->mode, - global->format & 0xFF, (global->format >> 8) & 0xFF, - (global->format >> 16) & 0xFF, (global->format >> 24) & 0xFF); - - if ( ( ret=init_videoIn (videoIn, global) ) != 0) - { - g_printerr("Init video returned %i\n",ret); - switch (ret) - { - case VDIN_DEVICE_ERR://can't open device - ERR_DIALOG (N_("Guvcview error:\n\nUnable to open device"), - N_("Please make sure the camera is connected\nand that the correct driver is installed."), - &all_data); - break; - - case VDIN_DYNCTRL_OK: //uvc extension controls OK, give warning and shutdown (called with --add_ctrls) - WARN_DIALOG (N_("Guvcview:\n\nUVC Extension controls"), - N_("Extension controls were added to the UVC driver"), - &all_data); - clean_struct(&all_data); - exit(0); - break; - - case VDIN_DYNCTRL_ERR: //uvc extension controls error - EACCES (needs root user) - ERR_DIALOG (N_("Guvcview error:\n\nUVC Extension controls"), - N_("An error occurred while adding extension\ncontrols to the UVC driver\nMake sure you run guvcview as root (or sudo)."), - &all_data); - break; - - case VDIN_UNKNOWN_ERR: //unknown error (treat as invalid format) - case VDIN_FORMAT_ERR://invalid format - case VDIN_RESOL_ERR: //invalid resolution - g_print("trying minimum setup ...\n"); - if (videoIn->listFormats->numb_formats > 0 && videoIn->listFormats->listVidFormats != NULL) //check for supported formats - { - VidFormats *listVidFormats; - videoIn->listFormats->current_format = 0; //get the first supported format - global->format = videoIn->listFormats->listVidFormats[0].format; - g_print("\tformat: %c%c%c%c\n", - global->format & 0xFF, (global->format >> 8) & 0xFF, - (global->format >> 16) & 0xFF, (global->format >> 24) & 0xFF); - - if(get_PixMode(global->format, global->mode) < 0) - g_printerr("IMPOSSIBLE: format has no supported mode !?\n"); - listVidFormats = &videoIn->listFormats->listVidFormats[0]; - if(listVidFormats->numb_res > 0 && listVidFormats->listVidCap != NULL) - { - global->width = listVidFormats->listVidCap[0].width; - global->height = listVidFormats->listVidCap[0].height; - g_print("\tresolution: %i x %i\n", global->width, global->height); - if (listVidFormats->listVidCap[0].framerate_num != NULL) - global->fps_num = listVidFormats->listVidCap[0].framerate_num[0]; - if (listVidFormats->listVidCap[0].framerate_denom != NULL) - global->fps = listVidFormats->listVidCap[0].framerate_denom[0]; - g_print("\tframerate: %i/%i\n", global->fps_num, global->fps); - } - else - { - g_printerr("ERROR: Can't set video stream. No supported resolution found for specified format\nExiting...\n"); - ERR_DIALOG (N_("Guvcview error:\n\nCan't set a valid video stream for guvcview"), - N_("Make sure your device driver is v4l2 compliant\nand that it is properly installed."), - &all_data); - } - } - else - { - g_printerr("ERROR: Can't set video stream. No supported format found\nExiting...\n"); - ERR_DIALOG (N_("Guvcview error:\n\nCan't set a valid video stream for guvcview"), - N_("Make sure your device driver is v4l2 compliant\nand that it is properly installed."), - &all_data); - } - - //try again with new format - ret = init_videoIn (videoIn, global); - - if ((ret == VDIN_QUERYBUF_ERR) && (global->cap_meth != videoIn->cap_meth)) - { - //mmap not supported ? try again with read method - g_printerr("mmap failed trying read method..."); - global->cap_meth = videoIn->cap_meth; - ret = init_videoIn (videoIn, global); - if (ret == VDIN_OK) - g_printerr("OK\n"); - else - g_printerr("FAILED\n"); - } - - if (ret < 0) - { - g_printerr("ERROR: Minimum Setup Failed.\n Exiting...\n"); - ERR_DIALOG (N_("Guvcview error:\n\nUnable to start with minimum setup"), - N_("Please reconnect your camera."), - &all_data); - } - - break; - - case VDIN_QUERYBUF_ERR: - if (global->cap_meth != videoIn->cap_meth) - { - //mmap not supported ? try again with read method - g_printerr("mmap failed trying read method..."); - global->cap_meth = videoIn->cap_meth; - ret = init_videoIn (videoIn, global); - if (ret == VDIN_OK) - g_printerr("OK\n"); - else - { - g_printerr("FAILED\n"); - //return to default method(mmap) - global->cap_meth = IO_MMAP; - g_printerr("ERROR: Minimum Setup Failed.\n Exiting...\n"); - ERR_DIALOG (N_("Guvcview error:\n\nUnable to start with minimum setup"), - N_("Please reconnect your camera."), - &all_data); - } - } - break; - - case VDIN_QUERYCAP_ERR: - ERR_DIALOG (N_("Guvcview error:\n\nCouldn't query device capabilities"), - N_("Make sure the device driver supports v4l2."), - &all_data); - break; - case VDIN_READ_ERR: - ERR_DIALOG (N_("Guvcview error:\n\nRead method error"), - N_("Please try mmap instead (--capture_method=1)."), - &all_data); - break; - - case VDIN_REQBUFS_ERR:/*unable to allocate dequeue buffers or mem*/ - case VDIN_ALLOC_ERR: - case VDIN_FBALLOC_ERR: - default: - ERR_DIALOG (N_("Guvcview error:\n\nUnable to allocate Buffers"), - N_("Please try restarting your system."), - &all_data); - break; - } - } - - videoIn->listFormats->current_format = get_FormatIndex(videoIn->listFormats, global->format); - if(videoIn->listFormats->current_format < 0) - { - g_printerr("ERROR: Can't set video stream. No supported format found\nExiting...\n"); - ERR_DIALOG (N_("Guvcview error:\n\nCan't set a valid video stream for guvcview"), - N_("Make sure your device driver is v4l2 compliant\nand that it is properly installed."), - &all_data); - } - /*-----------------------------GTK widgets---------------------------------*/ - /*----------------------- Image controls Tab ------------------------------*/ - - if(!(global->no_display)) - { - gwidget->maintable = gtk_box_new(GTK_ORIENTATION_VERTICAL, 2); - - gtk_widget_show (gwidget->maintable); - - /** Attach the menu */ - gtk_box_pack_start(GTK_BOX(gwidget->maintable), create_menu(&all_data, control_only), FALSE, TRUE, 2); - - s->control_list = NULL; - /** draw the controls */ - printf("drawing controls\n\n"); - draw_controls(&all_data); - - if (global->lprofile > 0) LoadControls (&all_data); - - gwidget->boxh = gtk_notebook_new(); - - gtk_widget_show (s->table); - gtk_widget_show (gwidget->boxh); - - scroll1=gtk_scrolled_window_new(NULL,NULL); - gtk_scrolled_window_set_placement(GTK_SCROLLED_WINDOW(scroll1), GTK_CORNER_TOP_LEFT); - - //viewport is only needed for gtk < 3.8 - //for 3.8 and above s->table can be directly added to scroll1 - GtkWidget* viewport = gtk_viewport_new(NULL,NULL); - gtk_container_add(GTK_CONTAINER(viewport), s->table); - gtk_widget_show(viewport); - - gtk_container_add(GTK_CONTAINER(scroll1), viewport); - gtk_widget_show(scroll1); - - Tab1 = gtk_grid_new(); - Tab1Label = gtk_label_new(_("Image Controls")); - gtk_widget_show (Tab1Label); - /** check for files */ - gchar* Tab1IconPath = g_strconcat (PACKAGE_DATA_DIR,"/pixmaps/guvcview/image_controls.png",NULL); - /** don't test for file - use default empty image if load fails */ - /** get icon image*/ - Tab1Icon = gtk_image_new_from_file(Tab1IconPath); - g_free(Tab1IconPath); - gtk_widget_show (Tab1Icon); - gtk_grid_attach (GTK_GRID(Tab1), Tab1Icon, 0, 0, 1, 1); - gtk_grid_attach (GTK_GRID(Tab1), Tab1Label, 1, 0, 1, 1); - - gtk_widget_show (Tab1); - - gtk_notebook_append_page(GTK_NOTEBOOK(gwidget->boxh),scroll1,Tab1); - - /*---------------------- Add Buttons ---------------------------------*/ - HButtonBox = gtk_button_box_new(GTK_ORIENTATION_HORIZONTAL); - gtk_widget_set_halign (HButtonBox, GTK_ALIGN_FILL); - gtk_widget_set_hexpand (HButtonBox, TRUE); - gtk_button_box_set_layout(GTK_BUTTON_BOX(HButtonBox),GTK_BUTTONBOX_SPREAD); - gtk_box_set_homogeneous(GTK_BOX(HButtonBox),TRUE); - - gtk_widget_show(HButtonBox); - - /** Attach the buttons */ - gtk_box_pack_start(GTK_BOX(gwidget->maintable), HButtonBox, FALSE, TRUE, 2); - /** Attach the notebook (tabs) */ - gtk_box_pack_start(GTK_BOX(gwidget->maintable), gwidget->boxh, TRUE, TRUE, 2); - - gwidget->quitButton=gtk_button_new_from_stock(GTK_STOCK_QUIT); - - gchar* icon1path = g_strconcat (PACKAGE_DATA_DIR,"/pixmaps/guvcview/guvcview.png",NULL); - if (g_file_test(icon1path,G_FILE_TEST_EXISTS)) - { - gtk_window_set_icon_from_file(GTK_WINDOW (gwidget->mainwin),icon1path,NULL); - } - g_free(icon1path); - - if(!control_only)/*control_only exclusion Image and video buttons*/ - { - if(global->image_timer) - { /*image auto capture*/ - gwidget->CapImageButt=gtk_button_new_with_label (_("Stop Auto (I)")); - } - else - { - gwidget->CapImageButt=gtk_button_new_with_label (_("Cap. Image (I)")); - } - - if (global->Capture_time > 0) - { /*vid capture enabled from start*/ - gwidget->CapVidButt=gtk_toggle_button_new_with_label (_("Stop Video (V)")); - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(gwidget->CapVidButt), TRUE); - } - else - { - gwidget->CapVidButt=gtk_toggle_button_new_with_label (_("Cap. Video (V)")); - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(gwidget->CapVidButt), FALSE); - } - - /*add images to Buttons and top window*/ - /*check for files*/ - - gchar* pix1path = g_strconcat (PACKAGE_DATA_DIR,"/pixmaps/guvcview/movie.png",NULL); - if (g_file_test(pix1path,G_FILE_TEST_EXISTS)) - { - VidButton_Img = gtk_image_new_from_file (pix1path); - - gtk_button_set_image(GTK_BUTTON(gwidget->CapVidButt),VidButton_Img); - gtk_button_set_image_position(GTK_BUTTON(gwidget->CapVidButt),GTK_POS_TOP); - //gtk_widget_show (gwidget->VidButton_Img); - } - //else g_print("couldn't load %s\n", pix1path); - gchar* pix2path = g_strconcat (PACKAGE_DATA_DIR,"/pixmaps/guvcview/camera.png",NULL); - if (g_file_test(pix2path,G_FILE_TEST_EXISTS)) - { - ImgButton_Img = gtk_image_new_from_file (pix2path); - - gtk_button_set_image(GTK_BUTTON(gwidget->CapImageButt),ImgButton_Img); - gtk_button_set_image_position(GTK_BUTTON(gwidget->CapImageButt),GTK_POS_TOP); - //gtk_widget_show (ImgButton_Img); - } - g_free(pix1path); - g_free(pix2path); - gtk_box_pack_start(GTK_BOX(HButtonBox),gwidget->CapImageButt,TRUE,TRUE,2); - gtk_box_pack_start(GTK_BOX(HButtonBox),gwidget->CapVidButt,TRUE,TRUE,2); - gtk_toggle_button_set_mode (GTK_TOGGLE_BUTTON (gwidget->CapVidButt), FALSE); - gtk_widget_show (gwidget->CapImageButt); - gtk_widget_show (gwidget->CapVidButt); - - g_signal_connect (GTK_BUTTON(gwidget->CapImageButt), "clicked", - G_CALLBACK (capture_image), &all_data); - g_signal_connect (GTK_TOGGLE_BUTTON(gwidget->CapVidButt), "toggled", - G_CALLBACK (capture_vid), &all_data); - /*key events*/ - gtk_widget_add_events (GTK_WIDGET (gwidget->mainwin), GDK_KEY_PRESS_MASK | GDK_KEY_RELEASE_MASK); - g_signal_connect (GTK_WINDOW(gwidget->mainwin), "key_press_event", G_CALLBACK(key_pressed), &all_data); - }/*end of control_only exclusion*/ - - gchar* pix3path = g_strconcat (PACKAGE_DATA_DIR,"/pixmaps/guvcview/close.png",NULL); - if (g_file_test(pix3path,G_FILE_TEST_EXISTS)) - { - QButton_Img = gtk_image_new_from_file (pix3path); - - gtk_button_set_image(GTK_BUTTON(gwidget->quitButton),QButton_Img); - gtk_button_set_image_position(GTK_BUTTON(gwidget->quitButton),GTK_POS_TOP); - //gtk_widget_show (QButton_Img); - } - - /*must free path strings*/ - g_free(pix3path); - - gtk_box_pack_start(GTK_BOX(HButtonBox), gwidget->quitButton,TRUE,TRUE,2); - - gtk_widget_show_all (gwidget->quitButton); - - g_signal_connect (GTK_BUTTON(gwidget->quitButton), "clicked", - G_CALLBACK (quitButton_clicked), &all_data); - - /*----------------------------H264 Controls Tab --------------------------*/ - if(global->uvc_h264_unit > 0) - add_uvc_h264_controls_tab(&all_data); - - if(!control_only) /*control_only exclusion (video and Audio) */ - { - /*------------------------- Video Tab ---------------------------------*/ - video_tab (&all_data); - - /*-------------------------- Audio Tab --------------------------------*/ - audio_tab (&all_data); - } /*end of control_only exclusion*/ - - gwidget->status_bar = gtk_statusbar_new(); - gwidget->status_warning_id = gtk_statusbar_get_context_id (GTK_STATUSBAR(gwidget->status_bar), "warning"); - - gtk_widget_show(gwidget->status_bar); - /** add the status bar*/ - gtk_box_pack_start(GTK_BOX(gwidget->maintable), gwidget->status_bar, FALSE, FALSE, 2); - /* main container */ - gtk_container_add (GTK_CONTAINER (gwidget->mainwin), gwidget->maintable); - - gtk_widget_show (gwidget->mainwin); - - /*Add udev device monitoring timer*/ - global->udev_timer_id=g_timeout_add( 500, check_v4l2_udev_events, &all_data); - } - else - list_snd_devices (global); - - - if (!control_only) /*control_only exclusion*/ - { - /*------------------ Creating the video thread ---------------*/ - if( __THREAD_CREATE(&all_data.video_thread, main_loop, (void *) &all_data)) - { - g_printerr("Video thread creation failed\n"); - - ERR_DIALOG (N_("Guvcview error:\n\nUnable to create Video Thread"), - N_("Please report it to http://developer.berlios.de/bugs/?group_id=8179"), - &all_data); - } - //all_data.video_thread = video_thread; - - /*---------------------- image timed capture -----------------------------*/ - if(global->image_timer) - { - global->image_timer_id=g_timeout_add(global->image_timer*1000, - Image_capture_timer, &all_data); - if(!global->no_display) - { - set_sensitive_img_contrls(FALSE, gwidget);/*disable image controls*/ - char *message = g_strjoin(" ", _("capturing photo to"), videoIn->ImageFName, NULL); - gtk_statusbar_pop (GTK_STATUSBAR(gwidget->status_bar), gwidget->status_warning_id); - gtk_statusbar_push (GTK_STATUSBAR(gwidget->status_bar), gwidget->status_warning_id, message); - g_free(message); - } - } - /*--------------------- video capture from start ---------------------------*/ - if(global->Capture_time > 0) - { - - if (global->vid_inc>0) - { - videoIn->VidFName = incFilename(videoIn->VidFName, - global->vidFPath, - global->vid_inc); - - global->vid_inc++; - } - else - { - videoIn->VidFName = joinPath(videoIn->VidFName, global->vidFPath); - } - - if(!global->no_display) - { - char * message = g_strjoin(" ", _("capturing video to"), videoIn->VidFName, NULL); - gtk_statusbar_pop (GTK_STATUSBAR(gwidget->status_bar), gwidget->status_warning_id); - gtk_statusbar_push (GTK_STATUSBAR(gwidget->status_bar), gwidget->status_warning_id, message); - g_free(message); - } - - gboolean cap_ok = TRUE; - /* check if enough free space is available on disk*/ - if(!DiskSupervisor(&all_data)) - { - cap_ok = FALSE; - } - else - { - /*start disk check timed callback (every 10 sec)*/ - if (!global->disk_timer_id) - global->disk_timer_id=g_timeout_add(10*1000, FreeDiskCheck_timer, &all_data); - - //request a IDR frame with SPS and PPS data - uvcx_request_frame_type(videoIn->fd, global->uvc_h264_unit, PICTURE_TYPE_IDR_FULL); - - /*start IO thread*/ - if( __THREAD_CREATE(&all_data.IO_thread, IO_loop, (void *) &all_data)) - { - g_printerr("IO thread creation failed\n"); - cap_ok = FALSE; - } - else - { - /*sets the timer function*/ - g_timeout_add(global->Capture_time*1000,timer_callback,&all_data); - } - } - - if(!cap_ok) - { - g_printerr("ERROR: couldn't start video capture\n"); - if(!global->no_display) - { - //g_signal_handlers_block_by_func(GTK_TOGGLE_BUTTON(gwidget->CapVidButt), G_CALLBACK (capture_vid), all_data); - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(gwidget->CapVidButt), FALSE); - gtk_button_set_label(GTK_BUTTON(gwidget->CapVidButt),_("Cap. Video")); - //g_signal_handlers_unblock_by_func(GTK_TOGGLE_BUTTON(gwidget->CapVidButt), G_CALLBACK (capture_vid), all_data); - } - } - else if(!global->no_display) - { - /*disabling sound and video compression controls*/ - set_sensitive_vid_contrls(FALSE, global->Sound_enable, gwidget); - char *message = g_strjoin(" ", _("capturing video to"), videoIn->VidFName, NULL); - gtk_statusbar_pop (GTK_STATUSBAR(gwidget->status_bar), gwidget->status_warning_id); - gtk_statusbar_push (GTK_STATUSBAR(gwidget->status_bar), gwidget->status_warning_id, message); - g_free(message); - } - } - - if (global->FpsCount>0) - { - /*sets the Fps counter timer function every 2 sec*/ - global->timer_id = g_timeout_add(2*1000,FpsCount_callback,&all_data); - } - - }/*end of control_only exclusion*/ - - /* - * Set the unix signal handling up. - * First create a pipe. - */ - if(pipe(signal_pipe)) - { - perror("pipe"); - exit(1); - } - - /* - * put the write end of the pipe into nonblocking mode, - * need to read the flags first, otherwise we would clear other flags too. - */ - fd_flags = fcntl(signal_pipe[1], F_GETFL); - if(fd_flags == -1) - { - perror("read descriptor flags"); - } - if(fcntl(signal_pipe[1], F_SETFL, fd_flags | O_NONBLOCK) == -1) - { - perror("write descriptor flags"); - } - - /* Install the unix signal handler pipe_signals for the signals of interest */ - signal(SIGINT, pipe_signals); - signal(SIGUSR1, pipe_signals); - signal(SIGUSR2, pipe_signals); - - /* convert the reading end of the pipe into a GIOChannel */ - g_signal_in = g_io_channel_unix_new(signal_pipe[0]); - - /* - * we only read raw binary data from the pipe, - * therefore clear any encoding on the channel - */ - g_io_channel_set_encoding(g_signal_in, NULL, &error); - if(error != NULL) - { - /* handle potential errors */ - fprintf(stderr, "g_io_channel_set_encoding failed %s\n", - error->message); - } - - /* put the reading end also into non-blocking mode */ - g_io_channel_set_flags(g_signal_in, - g_io_channel_get_flags(g_signal_in) | G_IO_FLAG_NONBLOCK, &error); - - if(error != NULL) - { /* tread errors */ - fprintf(stderr, "g_io_set_flags failed %s\n", - error->message); - } - - /* register the reading end with the event loop */ - g_io_add_watch(g_signal_in, G_IO_IN | G_IO_PRI, deliver_signal, &all_data); - - g_print("\nGUVCVIEW Signals:\n"); - g_print(" SIGUSR1: Video stop/start capture\n"); - g_print(" SIGUSR2: Image capture\n"); - g_print(" SIGINT (ctrl+c): Exit\n"); - g_print("examples:\n"); - g_print(" kill -s SIGUSR1 'pid'\n"); - g_print(" killall -s USR2 guvcview\n\n"); - - - /* The last thing to get called (gtk or glib main loop)*/ - if(global->debug) - g_print("Starting main loop \n"); - - if(!global->no_display) - gtk_main(); - else - { - gwidget->main_loop = g_main_loop_new(NULL, TRUE); - g_main_loop_run(gwidget->main_loop); - } - - //free all_data allocations - free(all_data.gwidget); - if(all_data.h264_controls != NULL) - free(all_data.h264_controls); - - //closing portaudio - if(!control_only) - { - g_print("Closing portaudio ..."); - if (Pa_Terminate() != paNoError) - g_print("Error\n"); - else - g_print("OK\n"); - } - - g_print("Closing GTK... OK\n"); - return 0; -} - - diff -Nru guvcview-1.7.3/src/guvcview.h guvcview-2.0.1+ubuntu1~ppa1/src/guvcview.h --- guvcview-1.7.3/src/guvcview.h 2014-03-24 22:56:28.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/src/guvcview.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,151 +0,0 @@ -/*******************************************************************************# -# guvcview http://guvcview.sourceforge.net # -# # -# Paulo Assis # -# Nobuhiro Iwamatsu # -# Add UYVY color support(Macbook iSight) # -# George Sedov # -# Threaded encoding # -# default action selector for Webcam button # -# # -# This program is free software; you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation; either version 2 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program; if not, write to the Free Software # -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# # -********************************************************************************/ - -#ifndef GUVCVIEW_H -#define GUVCVIEW_H - -#include "v4l2uvc.h" -#include "sound.h" -#include "autofocus.h" -#include "video_format.h" - -/* Must set this as global so they */ -/* can be set from any callback. */ - -struct GWIDGET -{ - /*the main loop : only needed for no_display option*/ - GMainLoop *main_loop; - - /* The main window*/ - GtkWidget *mainwin; - /* A restart Dialog */ - GtkWidget *restartdialog; - /*Paned containers*/ - GtkWidget *maintable; - GtkWidget *boxh; - - //group list for menu video codecs - GSList *vgroup; - //group list for menu audio codecs - GSList *agroup; - - //menu top widgets - GtkWidget *menu_photo_top; - GtkWidget *menu_video_top; - - GtkWidget *status_bar; - - GtkWidget *label_SndAPI; - GtkWidget *SndAPI; - GtkWidget *SndEnable; - GtkWidget *SndSampleRate; - GtkWidget *SndDevice; - GtkWidget *SndNumChan; - GtkWidget *SndComp; - /*must be called from main loop if capture timer enabled*/ - GtkWidget *ImageType; - GtkWidget *CapImageButt; - GtkWidget *CapVidButt; - GtkWidget *Resolution; - GtkWidget *InpType; - GtkWidget *FrameRate; - GtkWidget *Devices; - GtkWidget *jpeg_comp; - GtkWidget *quitButton; - - gboolean vid_widget_state; - int status_warning_id; -}; - -/* uvc H264 control widgets */ -struct uvc_h264_gtkcontrols -{ - GtkWidget* FrameInterval; - GtkWidget* BitRate; - GtkWidget* Hints_res; - GtkWidget* Hints_prof; - GtkWidget* Hints_ratecontrol; - GtkWidget* Hints_usage; - GtkWidget* Hints_slicemode; - GtkWidget* Hints_sliceunit; - GtkWidget* Hints_view; - GtkWidget* Hints_temporal; - GtkWidget* Hints_snr; - GtkWidget* Hints_spatial; - GtkWidget* Hints_spatiallayer; - GtkWidget* Hints_frameinterval; - GtkWidget* Hints_leakybucket; - GtkWidget* Hints_bitrate; - GtkWidget* Hints_cabac; - GtkWidget* Hints_iframe; - GtkWidget* Resolution; - GtkWidget* SliceUnits; - GtkWidget* SliceMode; - GtkWidget* Profile; - GtkWidget* Profile_flags; - GtkWidget* IFramePeriod; - GtkWidget* EstimatedVideoDelay; - GtkWidget* EstimatedMaxConfigDelay; - GtkWidget* UsageType; - //GtkWidget* UCConfig; - GtkWidget* RateControlMode; - GtkWidget* RateControlMode_cbr_flag; - GtkWidget* TemporalScaleMode; - GtkWidget* SpatialScaleMode; - GtkWidget* SNRScaleMode; - GtkWidget* StreamMuxOption; - GtkWidget* StreamMuxOption_aux; - GtkWidget* StreamMuxOption_mjpgcontainer; - GtkWidget* StreamFormat; - GtkWidget* EntropyCABAC; - GtkWidget* Timestamp; - GtkWidget* NumOfReorderFrames; - GtkWidget* PreviewFlipped; - GtkWidget* View; - GtkWidget* StreamID; - GtkWidget* SpatialLayerRatio; - GtkWidget* LeakyBucketSize; - GtkWidget* probe_button; - GtkWidget* commit_button; -}; - -struct ALL_DATA -{ - struct paRecordData *pdata; - struct GLOBAL *global; - struct focusData *AFdata; - struct vdIn *videoIn; - struct VideoFormatData *videoF; - struct GWIDGET *gwidget; - struct uvc_h264_gtkcontrols *h264_controls; - struct VidState *s; - __THREAD_TYPE video_thread; - __THREAD_TYPE audio_thread; - __THREAD_TYPE IO_thread; -}; - -#endif diff -Nru guvcview-1.7.3/src/huffman.c guvcview-2.0.1+ubuntu1~ppa1/src/huffman.c --- guvcview-1.7.3/src/huffman.c 2014-03-24 22:56:28.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/src/huffman.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,343 +0,0 @@ -/*******************************************************************************# -# guvcview http://guvcview.sourceforge.net # -# # -# Paulo Assis # -# # -# This program is free software; you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation; either version 2 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program; if not, write to the Free Software # -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# # -********************************************************************************/ - -/*******************************************************************************# -# # -# entropy huffman encoder for Jpeg encoder # -# # -# Adapted for linux, Paulo Assis, 2007 # -********************************************************************************/ - -#include "jpgenc.h" -#include "huffman.h" -#include "defs.h" - -#define PUTBITS \ -{ \ - bits_in_next_word = (INT16) (jpeg_encoder_structure->bitindex + numbits - 32); \ - if (bits_in_next_word < 0) \ - { \ - jpeg_encoder_structure->lcode = (jpeg_encoder_structure->lcode << numbits) | data; \ - jpeg_encoder_structure->bitindex += numbits; \ - } \ - else \ - { \ - jpeg_encoder_structure->lcode = (jpeg_encoder_structure->lcode << (32 - jpeg_encoder_structure->bitindex)) | (data >> bits_in_next_word); \ - if ((*output_ptr++ = (UINT8)(jpeg_encoder_structure->lcode >> 24)) == 0xff) \ - *output_ptr++ = 0; \ - if ((*output_ptr++ = (UINT8)(jpeg_encoder_structure->lcode >> 16)) == 0xff) \ - *output_ptr++ = 0; \ - if ((*output_ptr++ = (UINT8)(jpeg_encoder_structure->lcode >> 8)) == 0xff) \ - *output_ptr++ = 0; \ - if ((*output_ptr++ = (UINT8) jpeg_encoder_structure->lcode) == 0xff) \ - *output_ptr++ = 0; \ - jpeg_encoder_structure->lcode = data; \ - jpeg_encoder_structure->bitindex = bits_in_next_word; \ - } \ -} - -static UINT16 luminance_dc_code_table[12] = -{ - 0x0000, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, - 0x000E, 0x001E, 0x003E, 0x007E, 0x00FE, 0x01FE -}; - -static UINT16 luminance_dc_size_table [12] = -{ - 0x0002, 0x0003, 0x0003, 0x0003, 0x0003, 0x0003, - 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009 -}; - -static UINT16 chrominance_dc_code_table [12] = -{ - 0x0000, 0x0001, 0x0002, 0x0006, 0x000E, 0x001E, - 0x003E, 0x007E, 0x00FE, 0x01FE, 0x03FE, 0x07FE -}; - -static UINT16 chrominance_dc_size_table [12] = -{ - 0x0002, 0x0002, 0x0002, 0x0003, 0x0004, 0x0005, - 0x0006, 0x0007, 0x0008, 0x0009, 0x000A, 0x000B -}; - -static UINT16 luminance_ac_code_table [162] = -{ - 0x000A, - 0x0000, 0x0001, 0x0004, 0x000B, 0x001A, 0x0078, 0x00F8, 0x03F6, 0xFF82, 0xFF83, - 0x000C, 0x001B, 0x0079, 0x01F6, 0x07F6, 0xFF84, 0xFF85, 0xFF86, 0xFF87, 0xFF88, - 0x001C, 0x00F9, 0x03F7, 0x0FF4, 0xFF89, 0xFF8A, 0xFF8b, 0xFF8C, 0xFF8D, 0xFF8E, - 0x003A, 0x01F7, 0x0FF5, 0xFF8F, 0xFF90, 0xFF91, 0xFF92, 0xFF93, 0xFF94, 0xFF95, - 0x003B, 0x03F8, 0xFF96, 0xFF97, 0xFF98, 0xFF99, 0xFF9A, 0xFF9B, 0xFF9C, 0xFF9D, - 0x007A, 0x07F7, 0xFF9E, 0xFF9F, 0xFFA0, 0xFFA1, 0xFFA2, 0xFFA3, 0xFFA4, 0xFFA5, - 0x007B, 0x0FF6, 0xFFA6, 0xFFA7, 0xFFA8, 0xFFA9, 0xFFAA, 0xFFAB, 0xFFAC, 0xFFAD, - 0x00FA, 0x0FF7, 0xFFAE, 0xFFAF, 0xFFB0, 0xFFB1, 0xFFB2, 0xFFB3, 0xFFB4, 0xFFB5, - 0x01F8, 0x7FC0, 0xFFB6, 0xFFB7, 0xFFB8, 0xFFB9, 0xFFBA, 0xFFBB, 0xFFBC, 0xFFBD, - 0x01F9, 0xFFBE, 0xFFBF, 0xFFC0, 0xFFC1, 0xFFC2, 0xFFC3, 0xFFC4, 0xFFC5, 0xFFC6, - 0x01FA, 0xFFC7, 0xFFC8, 0xFFC9, 0xFFCA, 0xFFCB, 0xFFCC, 0xFFCD, 0xFFCE, 0xFFCF, - 0x03F9, 0xFFD0, 0xFFD1, 0xFFD2, 0xFFD3, 0xFFD4, 0xFFD5, 0xFFD6, 0xFFD7, 0xFFD8, - 0x03FA, 0xFFD9, 0xFFDA, 0xFFDB, 0xFFDC, 0xFFDD, 0xFFDE, 0xFFDF, 0xFFE0, 0xFFE1, - 0x07F8, 0xFFE2, 0xFFE3, 0xFFE4, 0xFFE5, 0xFFE6, 0xFFE7, 0xFFE8, 0xFFE9, 0xFFEA, - 0xFFEB, 0xFFEC, 0xFFED, 0xFFEE, 0xFFEF, 0xFFF0, 0xFFF1, 0xFFF2, 0xFFF3, 0xFFF4, - 0xFFF5, 0xFFF6, 0xFFF7, 0xFFF8, 0xFFF9, 0xFFFA, 0xFFFB, 0xFFFC, 0xFFFD, 0xFFFE, - 0x07F9 -}; - -static UINT16 luminance_ac_size_table [162] = -{ - 0x0004, - 0x0002, 0x0002, 0x0003, 0x0004, 0x0005, 0x0007, 0x0008, 0x000A, 0x0010, 0x0010, - 0x0004, 0x0005, 0x0007, 0x0009, 0x000B, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, - 0x0005, 0x0008, 0x000A, 0x000C, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, - 0x0006, 0x0009, 0x000C, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, - 0x0006, 0x000A, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, - 0x0007, 0x000B, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, - 0x0007, 0x000C, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, - 0x0008, 0x000C, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, - 0x0009, 0x000F, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, - 0x0009, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, - 0x0009, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, - 0x000A, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, - 0x000A, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, - 0x000B, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, - 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, - 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, - 0x000B -}; - -static UINT16 chrominance_ac_code_table [162] = -{ - 0x0000, - 0x0001, 0x0004, 0x000A, 0x0018, 0x0019, 0x0038, 0x0078, 0x01F4, 0x03F6, 0x0FF4, - 0x000B, 0x0039, 0x00F6, 0x01F5, 0x07F6, 0x0FF5, 0xFF88, 0xFF89, 0xFF8A, 0xFF8B, - 0x001A, 0x00F7, 0x03F7, 0x0FF6, 0x7FC2, 0xFF8C, 0xFF8D, 0xFF8E, 0xFF8F, 0xFF90, - 0x001B, 0x00F8, 0x03F8, 0x0FF7, 0xFF91, 0xFF92, 0xFF93, 0xFF94, 0xFF95, 0xFF96, - 0x003A, 0x01F6, 0xFF97, 0xFF98, 0xFF99, 0xFF9A, 0xFF9B, 0xFF9C, 0xFF9D, 0xFF9E, - 0x003B, 0x03F9, 0xFF9F, 0xFFA0, 0xFFA1, 0xFFA2, 0xFFA3, 0xFFA4, 0xFFA5, 0xFFA6, - 0x0079, 0x07F7, 0xFFA7, 0xFFA8, 0xFFA9, 0xFFAA, 0xFFAB, 0xFFAC, 0xFFAD, 0xFFAE, - 0x007A, 0x07F8, 0xFFAF, 0xFFB0, 0xFFB1, 0xFFB2, 0xFFB3, 0xFFB4, 0xFFB5, 0xFFB6, - 0x00F9, 0xFFB7, 0xFFB8, 0xFFB9, 0xFFBA, 0xFFBB, 0xFFBC, 0xFFBD, 0xFFBE, 0xFFBF, - 0x01F7, 0xFFC0, 0xFFC1, 0xFFC2, 0xFFC3, 0xFFC4, 0xFFC5, 0xFFC6, 0xFFC7, 0xFFC8, - 0x01F8, 0xFFC9, 0xFFCA, 0xFFCB, 0xFFCC, 0xFFCD, 0xFFCE, 0xFFCF, 0xFFD0, 0xFFD1, - 0x01F9, 0xFFD2, 0xFFD3, 0xFFD4, 0xFFD5, 0xFFD6, 0xFFD7, 0xFFD8, 0xFFD9, 0xFFDA, - 0x01FA, 0xFFDB, 0xFFDC, 0xFFDD, 0xFFDE, 0xFFDF, 0xFFE0, 0xFFE1, 0xFFE2, 0xFFE3, - 0x07F9, 0xFFE4, 0xFFE5, 0xFFE6, 0xFFE7, 0xFFE8, 0xFFE9, 0xFFEA, 0xFFEb, 0xFFEC, - 0x3FE0, 0xFFED, 0xFFEE, 0xFFEF, 0xFFF0, 0xFFF1, 0xFFF2, 0xFFF3, 0xFFF4, 0xFFF5, - 0x7FC3, 0xFFF6, 0xFFF7, 0xFFF8, 0xFFF9, 0xFFFA, 0xFFFB, 0xFFFC, 0xFFFD, 0xFFFE, - 0x03FA -}; - -static UINT16 chrominance_ac_size_table [162] = -{ - 0x0002, - 0x0002, 0x0003, 0x0004, 0x0005, 0x0005, 0x0006, 0x0007, 0x0009, 0x000A, 0x000C, - 0x0004, 0x0006, 0x0008, 0x0009, 0x000B, 0x000C, 0x0010, 0x0010, 0x0010, 0x0010, - 0x0005, 0x0008, 0x000A, 0x000C, 0x000F, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, - 0x0005, 0x0008, 0x000A, 0x000C, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, - 0x0006, 0x0009, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, - 0x0006, 0x000A, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, - 0x0007, 0x000B, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, - 0x0007, 0x000B, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, - 0x0008, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, - 0x0009, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, - 0x0009, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, - 0x0009, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, - 0x0009, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, - 0x000B, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, - 0x000E, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, - 0x000F, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, - 0x000A -}; - -static UINT8 bitsize [256] =/* bit size from 0 to 255 */ -{ - 0, 1, 2, 2, 3, 3, 3, 3, - 4, 4, 4, 4, 4, 4, 4, 4, - 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, - 6, 6, 6, 6, 6, 6, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 6, - 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, - 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8 -}; - -UINT8* huffman (struct JPEG_ENCODER_STRUCTURE * jpeg_encoder_structure, UINT16 component, UINT8 *output_ptr) -{ - UINT16 i; - UINT16 *DcCodeTable, *DcSizeTable, *AcCodeTable, *AcSizeTable; - - INT16 *Temp_Ptr, Coeff, LastDc; - UINT16 AbsCoeff, HuffCode, HuffSize, RunLength=0, DataSize=0, index; - - INT16 bits_in_next_word; - UINT16 numbits; - UINT32 data; - - Temp_Ptr = jpeg_encoder_structure->Temp; - Coeff = *Temp_Ptr++;/* Coeff = DC */ - - /* code DC - Temp[0] */ - if (component == 1)/* luminance - Y */ - { - DcCodeTable = luminance_dc_code_table; - DcSizeTable = luminance_dc_size_table; - AcCodeTable = luminance_ac_code_table; - AcSizeTable = luminance_ac_size_table; - - LastDc = jpeg_encoder_structure->ldc1; - jpeg_encoder_structure->ldc1 = Coeff; - } - else /* Chrominance - U V */ - { - DcCodeTable = chrominance_dc_code_table; - DcSizeTable = chrominance_dc_size_table; - AcCodeTable = chrominance_ac_code_table; - AcSizeTable = chrominance_ac_size_table; - - if (component == 2) /* Chrominance - U */ - { - LastDc = jpeg_encoder_structure->ldc2; - jpeg_encoder_structure->ldc2 = Coeff; - } - else/* Chrominance - V */ - { - LastDc = jpeg_encoder_structure->ldc3; - jpeg_encoder_structure->ldc3 = Coeff; - } - } - - Coeff = Coeff - LastDc; /* DC - LastDC */ - - AbsCoeff = (Coeff < 0) ? -(Coeff--) : Coeff; - - /*calculate data size*/ - while (AbsCoeff != 0) - { - AbsCoeff >>= 1; - DataSize++; - } - - HuffCode = DcCodeTable [DataSize]; - HuffSize = DcSizeTable [DataSize]; - - Coeff &= (1 << DataSize) - 1; - data = (HuffCode << DataSize) | Coeff; - numbits = HuffSize + DataSize; - - PUTBITS - - /* code AC */ - for (i=63; i>0; i--) - { - - if ((Coeff = *Temp_Ptr++) != 0) - { - while (RunLength > 15) - { - RunLength -= 16; - data = AcCodeTable [161]; /* ZRL 0xF0 ( 16 - 0) */ - numbits = AcSizeTable [161];/* ZRL */ - PUTBITS - } - - AbsCoeff = (Coeff < 0) ? -(Coeff--) : Coeff; - - if (AbsCoeff >> 8 == 0) /* Size <= 8 bits */ - DataSize = bitsize [AbsCoeff]; - else /* 16 => Size => 8 */ - DataSize = bitsize [AbsCoeff >> 8] + 8; - - index = RunLength * 10 + DataSize; - - - HuffCode = AcCodeTable [index]; - HuffSize = AcSizeTable [index]; - - Coeff &= (1 << DataSize) - 1; - data = (HuffCode << DataSize) | Coeff; - numbits = HuffSize + DataSize; - - PUTBITS - RunLength = 0; - } - else - RunLength++;/* Add while Zero */ - } - - if (RunLength != 0) - { - data = AcCodeTable [0]; /* EOB - 0x00 end of block */ - numbits = AcSizeTable [0];/* EOB */ - PUTBITS - } - return output_ptr; -} - -/* For bit Stuffing and EOI marker */ -UINT8* close_bitstream (struct JPEG_ENCODER_STRUCTURE * jpeg_encoder_structure, UINT8 *output_ptr) -{ - UINT16 i, count; - UINT8 *ptr; - - - - if (jpeg_encoder_structure->bitindex > 0) - { - jpeg_encoder_structure->lcode <<= (32 - jpeg_encoder_structure->bitindex); - count = (jpeg_encoder_structure->bitindex + 7) >> 3; - - ptr = (UINT8 *) &jpeg_encoder_structure->lcode + 3; - - for (i=count; i>0; i--) - { - if ((*output_ptr++ = *ptr--) == 0xff) - *output_ptr++ = 0; - } - } - - /* End of image marker (EOI) */ - *output_ptr++ = 0xFF; - *output_ptr++ = 0xD9; - return output_ptr; -} diff -Nru guvcview-1.7.3/src/huffman.h guvcview-2.0.1+ubuntu1~ppa1/src/huffman.h --- guvcview-1.7.3/src/huffman.h 2014-03-24 22:56:28.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/src/huffman.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,148 +0,0 @@ -/*******************************************************************************# -# guvcview http://guvcview.sourceforge.net # -# # -# Paulo Assis # -# # -# This program is free software; you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation; either version 2 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program; if not, write to the Free Software # -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# # -********************************************************************************/ - -/*******************************************************************************# -# # -# huffman tables for Jpeg encoder/decoder # -# # -# Adapted for linux, Paulo Assis, 2007 # -********************************************************************************/ - -#ifndef HUFFMAN_H -#define HUFFMAN_H - -#include "defs.h" - -#define DHT_SIZE 432 - -static const unsigned char dht_data[DHT_SIZE] = -{ - 0xff, 0xc4, 0x00, 0x1f, 0x00, 0x00, 0x01, 0x05, 0x01, 0x01, 0x01, 0x01, - 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, - 0x0b, 0xff, 0xc4, 0x00, 0xb5, 0x10, 0x00, 0x02, - 0x01, 0x03, 0x03, 0x02, 0x04, 0x03, 0x05, 0x05, 0x04, 0x04, 0x00, 0x00, - 0x01, 0x7d, 0x01, 0x02, 0x03, 0x00, 0x04, 0x11, - 0x05, 0x12, 0x21, 0x31, 0x41, 0x06, 0x13, 0x51, 0x61, 0x07, 0x22, 0x71, - 0x14, 0x32, 0x81, 0x91, 0xa1, 0x08, 0x23, 0x42, - 0xb1, 0xc1, 0x15, 0x52, 0xd1, 0xf0, 0x24, 0x33, 0x62, 0x72, 0x82, 0x09, - 0x0a, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x25, 0x26, - 0x27, 0x28, 0x29, 0x2a, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x43, - 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x53, - 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x63, 0x64, 0x65, 0x66, 0x67, - 0x68, 0x69, 0x6a, 0x73, 0x74, 0x75, 0x76, 0x77, - 0x78, 0x79, 0x7a, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x92, - 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9a, - 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xb2, 0xb3, 0xb4, - 0xb5, 0xb6, 0xb7, 0xb8, 0xb9, 0xba, 0xc2, 0xc3, - 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, - 0xd7, 0xd8, 0xd9, 0xda, 0xe1, 0xe2, 0xe3, 0xe4, - 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0xea, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, - 0xf7, 0xf8, 0xf9, 0xfa, 0xff, 0xc4, 0x00, 0x1f, - 0x01, 0x00, 0x03, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, - 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0xff, 0xc4, 0x00, - 0xb5, 0x11, 0x00, 0x02, 0x01, 0x02, 0x04, 0x04, - 0x03, 0x04, 0x07, 0x05, 0x04, 0x04, 0x00, 0x01, 0x02, 0x77, 0x00, 0x01, - 0x02, 0x03, 0x11, 0x04, 0x05, 0x21, 0x31, 0x06, - 0x12, 0x41, 0x51, 0x07, 0x61, 0x71, 0x13, 0x22, 0x32, 0x81, 0x08, 0x14, - 0x42, 0x91, 0xa1, 0xb1, 0xc1, 0x09, 0x23, 0x33, - 0x52, 0xf0, 0x15, 0x62, 0x72, 0xd1, 0x0a, 0x16, 0x24, 0x34, 0xe1, 0x25, - 0xf1, 0x17, 0x18, 0x19, 0x1a, 0x26, 0x27, 0x28, - 0x29, 0x2a, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x43, 0x44, 0x45, 0x46, - 0x47, 0x48, 0x49, 0x4a, 0x53, 0x54, 0x55, 0x56, - 0x57, 0x58, 0x59, 0x5a, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, - 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, - 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x92, 0x93, 0x94, - 0x95, 0x96, 0x97, 0x98, 0x99, 0x9a, 0xa2, 0xa3, - 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, - 0xb7, 0xb8, 0xb9, 0xba, 0xc2, 0xc3, 0xc4, 0xc5, - 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, 0xd8, - 0xd9, 0xda, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, - 0xe8, 0xe9, 0xea, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 0xf9, 0xfa -}; - -#define JPG_HUFFMAN_TABLE_LENGTH 0x01A0 - -static const unsigned char JPEGHuffmanTable[JPG_HUFFMAN_TABLE_LENGTH] = -{ - // luminance dc - length bits - 0x00, - 0x00, 0x01, 0x05, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - // luminance dc - code - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x0A, 0x0B, - // chrominance dc - length bits - 0x01, - 0x00, 0x03, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, - 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, - // chrominance dc - code - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x0A, 0x0B, - // luminance ac - number of codes with # bits (ordered by code length 1-16) - 0x10, - 0x00, 0x02, 0x01, 0x03, 0x03, 0x02, 0x04, 0x03, 0x05, 0x05, - 0x04, 0x04, 0x00, 0x00, 0x01, 0x7D, - // luminance ac - run size (ordered by code length) - 0x01, 0x02, 0x03, 0x00, 0x04, 0x11, 0x05, 0x12, 0x21, 0x31, - 0x41, 0x06, 0x13, 0x51, 0x61, 0x07, 0x22, 0x71, 0x14, 0x32, - 0x81, 0x91, 0xA1, 0x08, 0x23, 0x42, 0xB1, 0xC1, 0x15, 0x52, - 0xD1, 0xF0, 0x24, 0x33, 0x62, 0x72, 0x82, 0x09, 0x0A, 0x16, - 0x17, 0x18, 0x19, 0x1A, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, - 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3A, 0x43, 0x44, 0x45, - 0x46, 0x47, 0x48, 0x49, 0x4A, 0x53, 0x54, 0x55, 0x56, 0x57, - 0x58, 0x59, 0x5A, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, - 0x6A, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7A, 0x83, - 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8A, 0x92, 0x93, 0x94, - 0x95, 0x96, 0x97, 0x98, 0x99, 0x9A, 0xA2, 0xA3, 0xA4, 0xA5, - 0xA6, 0xA7, 0xA8, 0xA9, 0xAA, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, - 0xB7, 0xB8, 0xB9, 0xBA, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, - 0xC8, 0xC9, 0xCA, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, 0xD8, - 0xD9, 0xDA, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, 0xE8, - 0xE9, 0xEA, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, 0xF8, - 0xF9, 0xFA, - // chrominance ac -number of codes with # bits (ordered by code length 1-16) - 0x11, - 0x00, 0x02, 0x01, 0x02, 0x04, 0x04, 0x03, 0x04, 0x07, 0x05, - 0x04, 0x04, 0x00, 0x01, 0x02, 0x77, - // chrominance ac - run size (ordered by code length) - 0x00, 0x01, 0x02, 0x03, 0x11, 0x04, 0x05, 0x21, 0x31, 0x06, - 0x12, 0x41, 0x51, 0x07, 0x61, 0x71, 0x13, 0x22, 0x32, 0x81, - 0x08, 0x14, 0x42, 0x91, 0xA1, 0xB1, 0xC1, 0x09, 0x23, 0x33, - 0x52, 0xF0, 0x15, 0x62, 0x72, 0xD1, 0x0A, 0x16, 0x24, 0x34, - 0xE1, 0x25, 0xF1, 0x17, 0x18, 0x19, 0x1A, 0x26, 0x27, 0x28, - 0x29, 0x2A, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3A, 0x43, 0x44, - 0x45, 0x46, 0x47, 0x48, 0x49, 0x4A, 0x53, 0x54, 0x55, 0x56, - 0x57, 0x58, 0x59, 0x5A, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, - 0x69, 0x6A, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7A, - 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8A, 0x92, - 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9A, 0xA2, 0xA3, - 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xAA, 0xB2, 0xB3, 0xB4, - 0xB5, 0xB6, 0xB7, 0xB8, 0xB9, 0xBA, 0xC2, 0xC3, 0xC4, 0xC5, - 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, - 0xD7, 0xD8, 0xD9, 0xDA, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, - 0xE8, 0xE9, 0xEA, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, 0xF8, - 0xF9, 0xFA -}; - -#endif - diff -Nru guvcview-1.7.3/src/image_format.c guvcview-2.0.1+ubuntu1~ppa1/src/image_format.c --- guvcview-1.7.3/src/image_format.c 2014-03-24 22:56:28.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/src/image_format.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,72 +0,0 @@ -/*******************************************************************************# -# guvcview http://guvcview.sourceforge.net # -# # -# Paulo Assis # -# # -# This program is free software; you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation; either version 2 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program; if not, write to the Free Software # -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# # -********************************************************************************/ - -#include -#include -/* support for internationalization - i18n */ -#include - -#include "defs.h" -#include "image_format.h" - - -static iformats_data listSupIFormats[] = //list of supported image formats -{ - { - .name = "Jpeg", - .description = N_("Jpeg (jpg)"), - .extension = "jpg", - .pattern ="*.jpg", - }, - { - .name = "Bmp", - .description = N_("Bitmap (Bmp)"), - .extension = "bmp", - .pattern = "*.bmp", - }, - { - .name = "Png", - .description = N_("Portable Network Graphics (Png)"), - .extension = "png", - .pattern = "*.png", - }, - { - .name = "Raw", - .description = N_("Raw Image (raw)"), - .extension = "raw", - .pattern = "*.raw", - } -}; - -const char *get_iformat_extension(int ind) -{ - return (listSupIFormats[ind].extension); -} - -const char *get_iformat_pattern(int ind) -{ - return (listSupIFormats[ind].pattern); -} - -const char *get_iformat_desc(int ind) -{ - return (listSupIFormats[ind].description); -} diff -Nru guvcview-1.7.3/src/image_format.h guvcview-2.0.1+ubuntu1~ppa1/src/image_format.h --- guvcview-1.7.3/src/image_format.h 2014-03-24 22:56:28.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/src/image_format.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,49 +0,0 @@ -/*******************************************************************************# -# guvcview http://guvcview.sourceforge.net # -# # -# Paulo Assis # -# # -# This program is free software; you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation; either version 2 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program; if not, write to the Free Software # -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# # -********************************************************************************/ - -#ifndef IMAGE_FORMAT_H -#define IMAGE_FORMAT_H - -#include "../config.h" -#include "defs.h" - -#define JPG_FORMAT 0 -#define BMP_FORMAT 1 -#define PNG_FORMAT 2 -#define RAW_FORMAT 3 - -#define MAX_IFORMATS 4 - -typedef struct _iformats_data -{ - const char *name; //format name - const char *description; //format description - const char *extension; //format extension - const char *pattern; //file filter pattern -} iformats_data; - -const char *get_iformat_extension(int ind); - -const char *get_iformat_desc(int ind); - -const char *get_iformat_pattern(int ind); - -#endif diff -Nru guvcview-1.7.3/src/img_controls.c guvcview-2.0.1+ubuntu1~ppa1/src/img_controls.c --- guvcview-1.7.3/src/img_controls.c 2014-03-24 22:56:28.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/src/img_controls.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,176 +0,0 @@ -/*******************************************************************************# -# guvcview http://guvcview.sourceforge.net # -# # -# Paulo Assis # -# Nobuhiro Iwamatsu # -# Add UYVY color support(Macbook iSight) # -# # -# This program is free software; you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation; either version 2 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program; if not, write to the Free Software # -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# # -********************************************************************************/ - -/* support for internationalization - i18n */ -#include -#include -#include - -#include - -#include "img_controls.h" -#include "v4l2uvc.h" -#include "v4l2_controls.h" -#include "v4l2_dyna_ctrls.h" -#include "globals.h" -#include "string_utils.h" -#include "autofocus.h" -#include "callbacks.h" - -/*exposure menu for old type controls */ -// static const char *exp_typ[]={ - // "Manual Mode", - // "Auto Mode", - // "Shutter Priority Mode", - // "Aperture Priority Mode" - // }; - -/*--------------------------- draw camera controls ---------------------------*/ -void -draw_controls (struct ALL_DATA *all_data) -{ - struct VidState *s = all_data->s; - struct GLOBAL *global = all_data->global; - struct vdIn *videoIn = all_data->videoIn; - struct focusData *AFdata = all_data->AFdata; - - if (s->control_list) - { - free_control_list(s->control_list); - } - s->num_controls = 0; - //get the control list - s->control_list = get_control_list(videoIn->fd, &(s->num_controls), global->lctl_method); - - if(!s->control_list) - { - printf("Error: empty control list\n"); - return; - } - - get_ctrl_values (videoIn->fd, s->control_list, s->num_controls, NULL); - - s->table = gtk_grid_new (); - gtk_grid_set_column_homogeneous (GTK_GRID(s->table), FALSE); - gtk_widget_set_hexpand (s->table, TRUE); - gtk_widget_set_halign (s->table, GTK_ALIGN_FILL); - - gtk_grid_set_row_spacing (GTK_GRID(s->table), 4); - gtk_grid_set_column_spacing (GTK_GRID (s->table), 4); - gtk_container_set_border_width (GTK_CONTAINER (s->table), 2); - - //add control widgets to control list - create_control_widgets(s->control_list, (void *) all_data, global->control_only, global->debug); - - int done = 0; - int row=0; - - Control *current = s->control_list; - Control *next = current->next; - - while(!done) - { - //add some flags - if ((current->control.id == V4L2_CID_PAN_RELATIVE) || - (current->control.id == V4L2_CID_TILT_RELATIVE)) - { - videoIn->PanTilt++; - } - - //special cases (extra software controls) - if (((current->control.id == V4L2_CID_FOCUS_ABSOLUTE) || - (current->control.id == V4L2_CID_FOCUS_LOGITECH)) && - !(global->control_only)) - { - global->AFcontrol=1; - - if(!AFdata) - { - AFdata = initFocusData(current->control.maximum, - current->control.minimum, - current->control.step, - current->control.id); - all_data->AFdata = AFdata; - } - - if(!AFdata) - global->AFcontrol = 0; - else - { - GtkWidget *Focus_box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); - GtkWidget *AutoFocus = gtk_check_button_new_with_label (_("Auto Focus (continuous)")); - GtkWidget *FocusButton = gtk_button_new_with_label (_("set Focus")); - gtk_box_pack_start (GTK_BOX (Focus_box), AutoFocus, TRUE, TRUE, 0); - gtk_box_pack_start (GTK_BOX (Focus_box), FocusButton, TRUE, TRUE, 0); - gtk_widget_show (Focus_box); - gtk_widget_show (AutoFocus); - gtk_widget_show (FocusButton); - gtk_grid_attach(GTK_GRID(s->table), Focus_box, 1, row, 1, 1); - - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (AutoFocus), - global->autofocus ? TRUE: FALSE); - - g_signal_connect (G_OBJECT (AutoFocus), "toggled", - G_CALLBACK (autofocus_changed), all_data); - g_signal_connect (G_OBJECT (FocusButton), "clicked", - G_CALLBACK (setfocus_clicked), all_data); - - row++; /*increment control row*/ - - } - } - - - if(current->label) - gtk_grid_attach(GTK_GRID(s->table), current->label, 0, row, 1 , 1); - if(current->widget) - { - gtk_grid_attach(GTK_GRID(s->table), current->widget, 1, row, 1 , 1); - gtk_widget_set_halign (current->widget, GTK_ALIGN_FILL); - gtk_widget_set_hexpand (current->widget, TRUE); - } - if(current->spinbutton) - gtk_grid_attach(GTK_GRID(s->table), current->spinbutton, 2, row, 1 , 1); - - - if(next == NULL) - done = 1; - else - { - row++; - current = next; - next = current->next; - } - } - - /* try to start the video stream */ - /* do it here (after all ioctls) since some cameras take */ - /* a long time to initialize after this */ - /* it's OK if it fails since it is retried in uvcGrab */ - if(!global->control_only) video_enable(videoIn); - - s = NULL; - global = NULL; - videoIn = NULL; -} - diff -Nru guvcview-1.7.3/src/img_controls.h guvcview-2.0.1+ubuntu1~ppa1/src/img_controls.h --- guvcview-1.7.3/src/img_controls.h 2014-03-24 22:56:28.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/src/img_controls.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ -/*******************************************************************************# -# guvcview http://guvcview.sourceforge.net # -# # -# Paulo Assis # -# Nobuhiro Iwamatsu # -# Add UYVY color support(Macbook iSight) # -# # -# This program is free software; you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation; either version 2 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program; if not, write to the Free Software # -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# # -********************************************************************************/ -#ifndef IMG_CONTROLS_H -#define IMG_CONTROLS_H - -#include "guvcview.h" - -void -draw_controls (struct ALL_DATA *all_data); - -#endif diff -Nru guvcview-1.7.3/src/io_stream.c guvcview-2.0.1+ubuntu1~ppa1/src/io_stream.c --- guvcview-1.7.3/src/io_stream.c 2014-03-24 22:56:28.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/src/io_stream.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,152 +0,0 @@ -/*******************************************************************************# -# guvcview http://guvcview.sourceforge.net # -# # -# Paulo Assis # -# # -# This program is free software; you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation; either version 2 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program; if not, write to the Free Software # -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# # -********************************************************************************/ - -#ifndef STREAM_H -#define STREAM_H - -#include "io_stream.h" -#include -#include -#include -#include -#include -#include - -io_Stream* add_new_stream(io_Stream** stream_list, int* list_size) -{ - - io_Stream* stream = g_new0(io_Stream, 1); - stream->next = NULL; - stream->id = *list_size; - - fprintf(stderr, "STREAM: add stream %i to stream list\n", stream->id); - if(stream->id == 0) - { - stream->previous = NULL; - *stream_list = stream; - } - else - { - - io_Stream* last_stream = get_last_stream(*stream_list); - stream->previous = last_stream; - last_stream->next = stream; - } - - stream->indexes = NULL; - - *list_size = *list_size + 1; - - return(stream); -} - -void destroy_stream_list(io_Stream* stream_list, int* list_size) -{ - io_Stream* stream = get_last_stream(stream_list); - while(stream->previous != NULL) //from end to start - { - io_Stream* prev_stream = stream->previous; - if(stream->indexes != NULL) - g_free(stream->indexes); - g_free(stream); - stream = prev_stream; - *list_size = *list_size - 1; - } - g_free(stream); //free the last one; -} - -io_Stream* get_stream(io_Stream* stream_list, int index) -{ - io_Stream* stream = stream_list; - - if(!stream) - return NULL; - - int j = 0; - - while(stream->next != NULL && (j < index)) - { - stream = stream->next; - j++; - } - - if(j != index) - return NULL; - - return stream; -} - -io_Stream* get_first_video_stream(io_Stream* stream_list) -{ - io_Stream* stream = stream_list; - - if(!stream) - return NULL; - - if(stream->type == STREAM_TYPE_VIDEO) - return stream; - - while(stream->next != NULL) - { - stream = stream->next; - - if(stream->type == STREAM_TYPE_VIDEO) - return stream; - } - - return NULL; -} - -io_Stream* get_first_audio_stream(io_Stream* stream_list) -{ - io_Stream* stream = stream_list; - - if(!stream) - return NULL; - - if(stream->type == STREAM_TYPE_AUDIO) - return stream; - - while(stream->next != NULL) - { - stream = stream->next; - - if(stream->type == STREAM_TYPE_AUDIO) - return stream; - } - - return NULL; -} - -io_Stream* get_last_stream(io_Stream* stream_list) -{ - io_Stream* stream = stream_list; - - if(!stream) - return NULL; - - while(stream->next != NULL) - stream = stream->next; - - return stream; -} - -#endif diff -Nru guvcview-1.7.3/src/io_stream.h guvcview-2.0.1+ubuntu1~ppa1/src/io_stream.h --- guvcview-1.7.3/src/io_stream.h 2014-03-24 22:56:28.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/src/io_stream.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,91 +0,0 @@ -/*******************************************************************************# -# guvcview http://guvcview.sourceforge.net # -# # -# Paulo Assis # -# # -# This program is free software; you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation; either version 2 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program; if not, write to the Free Software # -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# # -********************************************************************************/ - -#ifndef IO_STREAM_H -#define IO_STREAM_H - - -#include "../config.h" -#include "defs.h" - -enum STREAM_TYPE -{ - STREAM_TYPE_VIDEO = 0, - STREAM_TYPE_AUDIO = 1, - STREAM_TYPE_SUB = 2 //not supported -}; - -typedef enum STREAM_TYPE STREAM_TYPE; - -struct io_Stream -{ - STREAM_TYPE type; //stream type - - int32_t id; - - uint32_t packet_count; - - /** AVI specific data */ - void* indexes; //pointer to avi_Index struct - int32_t entry; - int64_t rate_hdr_strm, frames_hdr_strm; - char compressor[8]; /* Type of compressor, 4 bytes + padding for 0 byte */ - - int32_t codec_id; - int32_t h264_process; /* Set to 1 if codec private data used (NALU marker needs to be processed)*/ - - //video - int32_t width; /* Width of a video frame */ - int32_t height; /* Height of a video frame */ - double fps; /* Frames per second */ - - //audio - int32_t a_fmt; /* Audio format, see #defines below */ - int32_t a_chans; /* Audio channels, 0 for no audio */ - int32_t a_rate; /* Rate in Hz */ - int32_t a_bits; /* bits per audio sample */ - int32_t mpgrate; /* mpg bitrate kbs*/ - int32_t a_vbr; /* 0 == no Variable BitRate */ - uint64_t audio_strm_length; /* Total number of bytes of audio data */ - - //stream private data (codec private data) - BYTE* extra_data; - int32_t extra_data_size; - - struct io_Stream *previous, *next; -}; - -typedef struct io_Stream io_Stream; - -/** adds a new stream to the stream list*/ -io_Stream* add_new_stream(io_Stream** stream_list, int* list_size); -/** destroys all streams in stream list*/ -void destroy_stream_list(io_Stream* stream_list, int* list_size); -/** get stream with index from stream list*/ -io_Stream* get_stream(io_Stream* stream_list, int index); -/** get the first video stream from stream list */ -io_Stream* get_first_video_stream(io_Stream* stream_list); -/** get the first audio stream from the stream list */ -io_Stream* get_first_audio_stream(io_Stream* stream_list); -/** get the last stream from stream list */ -io_Stream* get_last_stream(io_Stream* stream_list); - -#endif diff -Nru guvcview-1.7.3/src/jdatatype.h guvcview-2.0.1+ubuntu1~ppa1/src/jdatatype.h --- guvcview-1.7.3/src/jdatatype.h 2014-03-24 22:56:28.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/src/jdatatype.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,71 +0,0 @@ -/*******************************************************************************# -# guvcview http://guvcview.sourceforge.net # -# # -# Paulo Assis # -# # -# This program is free software; you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation; either version 2 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program; if not, write to the Free Software # -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# # -********************************************************************************/ - -/*******************************************************************************# -# # -# jpeg encoder struct used in Jpeg encoder # -# # -# Adapted for linux, Paulo Assis, 2007 # -********************************************************************************/ - -#ifndef JDATATYPE_H -#define JDATATYPE_H - -#include "defs.h" - -typedef struct JPEG_ENCODER_STRUCTURE -{ - UINT16 mcu_width; - UINT16 mcu_height; - UINT16 horizontal_mcus; - UINT16 vertical_mcus; - - UINT16 rows; - UINT16 cols; - - UINT16 length_minus_mcu_width; - UINT16 length_minus_width; - UINT16 incr; - UINT16 mcu_width_size; - UINT16 offset; - - INT16 ldc1; - INT16 ldc2; - INT16 ldc3; - - UINT32 lcode; - UINT16 bitindex; - /* MCUs */ - INT16 Y1 [64]; - INT16 Y2 [64]; - INT16 Temp [64]; - INT16 CB [64]; - INT16 CR [64]; - /* Quantization Tables */ - UINT8 Lqt [64]; - UINT8 Cqt [64]; - UINT16 ILqt [64]; - UINT16 ICqt [64]; - -} _JPEG_ENCODER_STRUCTURE; - -#endif - diff -Nru guvcview-1.7.3/src/jpgenc.c guvcview-2.0.1+ubuntu1~ppa1/src/jpgenc.c --- guvcview-1.7.3/src/jpgenc.c 2014-03-24 22:56:28.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/src/jpgenc.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,168 +0,0 @@ -/*******************************************************************************# -# guvcview http://guvcview.sourceforge.net # -# # -# Paulo Assis # -# # -# This program is free software; you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation; either version 2 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program; if not, write to the Free Software # -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# # -********************************************************************************/ - -/*******************************************************************************# -* # -* Jpeg encoder # -* # -* Adapted for linux, Paulo Assis, 2007 # -* # -********************************************************************************/ - -#include -#include -#include -#include -#include "jpgenc.h" - - -void -initialization (struct JPEG_ENCODER_STRUCTURE * jpeg, int image_width, int image_height) -{ - UINT16 mcu_width, mcu_height, bytes_per_pixel; - - jpeg->mcu_width = mcu_width = 16; - jpeg->horizontal_mcus = (UINT16) (image_width >> 4);/* width/16 */ - - jpeg->mcu_height = mcu_height = 8; - jpeg->vertical_mcus = (UINT16) (image_height >> 3); /* height/8 */ - - bytes_per_pixel = 2; - - jpeg->length_minus_mcu_width = (UINT16) ((image_width - mcu_width) * bytes_per_pixel); - jpeg->length_minus_width = (UINT16) (image_width * bytes_per_pixel); - - jpeg->mcu_width_size = (UINT16) (mcu_width * bytes_per_pixel); - - jpeg->rows = jpeg->mcu_height; - jpeg->cols = jpeg->mcu_width; - jpeg->incr = jpeg->length_minus_mcu_width; - jpeg->offset = (UINT16) ((image_width * mcu_height) * bytes_per_pixel); - - jpeg->ldc1 = 0; - jpeg->ldc2 = 0; - jpeg->ldc3 = 0; - - - jpeg->lcode = 0; - jpeg->bitindex = 0; -} - -void -jpeg_restart (struct JPEG_ENCODER_STRUCTURE * jpeg_encoder_structure) -{ - jpeg_encoder_structure->ldc1 = 0; - jpeg_encoder_structure->ldc2 = 0; - jpeg_encoder_structure->ldc3 = 0; - - jpeg_encoder_structure->lcode = 0; - jpeg_encoder_structure->bitindex = 0; -} - - -int encode_image (UINT8 *input_ptr,UINT8 *output_ptr, - struct JPEG_ENCODER_STRUCTURE * jpeg_encoder_structure, - int huff, UINT32 image_width,UINT32 image_height) -{ - int size; - UINT16 i, j; - UINT8 *tmp_ptr=NULL; - UINT8 *tmp_iptr=NULL; - UINT8 *tmp_optr=NULL; - tmp_iptr=input_ptr; - tmp_optr=output_ptr; - - /* clean jpeg parameters*/ - jpeg_restart(jpeg_encoder_structure); - - /* Writing Marker Data */ - tmp_optr = write_markers (jpeg_encoder_structure, tmp_optr, huff, - image_width, image_height); - - for (i=0; ivertical_mcus; i++) /* height /8 */ - { - tmp_ptr=tmp_iptr; - for (j=0; jhorizontal_mcus; j++) /* width /16 */ - { - /*reads a block*/ - read_422_format (jpeg_encoder_structure, tmp_iptr); /*YUYV*/ - - /* Encode the data in MCU */ - tmp_optr = encodeMCU (jpeg_encoder_structure, tmp_optr); - - if(j<(jpeg_encoder_structure->horizontal_mcus -1)) - { - tmp_iptr += jpeg_encoder_structure->mcu_width_size; - } - else - { - tmp_iptr=tmp_ptr; - } - } - tmp_iptr += jpeg_encoder_structure->offset; - - } - - /* Close Routine */ - tmp_optr=close_bitstream (jpeg_encoder_structure, tmp_optr); - size=tmp_optr-output_ptr; - tmp_iptr=NULL; - tmp_optr=NULL; - - return (size); -} - -UINT8* -encodeMCU (struct JPEG_ENCODER_STRUCTURE * jpeg_encoder_structure, UINT8 *output_ptr) -{ - levelshift (jpeg_encoder_structure->Y1); - DCT (jpeg_encoder_structure->Y1); - quantization (jpeg_encoder_structure, jpeg_encoder_structure->Y1, - jpeg_encoder_structure->ILqt); - - output_ptr = huffman (jpeg_encoder_structure, 1, output_ptr); - - levelshift (jpeg_encoder_structure->Y2); - DCT (jpeg_encoder_structure->Y2); - - quantization (jpeg_encoder_structure, jpeg_encoder_structure->Y2, - jpeg_encoder_structure->ILqt); - - output_ptr = huffman (jpeg_encoder_structure, 1, output_ptr); - - levelshift (jpeg_encoder_structure->CB); - DCT (jpeg_encoder_structure->CB); - - quantization (jpeg_encoder_structure, jpeg_encoder_structure->CB, - jpeg_encoder_structure->ICqt); - - output_ptr = huffman (jpeg_encoder_structure, 2, output_ptr); - - levelshift (jpeg_encoder_structure->CR); - DCT (jpeg_encoder_structure->CR); - - quantization (jpeg_encoder_structure, jpeg_encoder_structure->CR, - jpeg_encoder_structure->ICqt); - - output_ptr = huffman (jpeg_encoder_structure, 3, output_ptr); - - return output_ptr; -} diff -Nru guvcview-1.7.3/src/jpgenc.h guvcview-2.0.1+ubuntu1~ppa1/src/jpgenc.h --- guvcview-1.7.3/src/jpgenc.h 2014-03-24 22:56:28.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/src/jpgenc.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,59 +0,0 @@ -/*******************************************************************************# -# guvcview http://guvcview.sourceforge.net # -# # -# Paulo Assis # -# # -# This program is free software; you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation; either version 2 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program; if not, write to the Free Software # -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# # -********************************************************************************/ - -/*******************************************************************************# -# # -# prototypes for Jpeg encoder # -# # -# Adapted for linux, Paulo Assis, 2007 # -********************************************************************************/ - -#ifndef JPGENC_H -#define JPGENC_H - -#include "jdatatype.h" -#include "dct.h" - -void initialization (struct JPEG_ENCODER_STRUCTURE * jpeg, int image_width, int image_height); - -UINT16 DSP_Division (UINT32 numer, UINT32 denom); - -void initialize_quantization_tables (struct JPEG_ENCODER_STRUCTURE * jpeg_encoder_structure); - -UINT8* write_markers (struct JPEG_ENCODER_STRUCTURE * jpeg_encoder_structure, - UINT8 * output_ptr,int huff, UINT32 image_width, UINT32 image_height); - -int encode_image (UINT8 * input_ptr,UINT8 * output_ptr, - struct JPEG_ENCODER_STRUCTURE * jpeg_encoder_structure, - int huff, UINT32 image_width, UINT32 image_height); - -UINT8* read_422_format (struct JPEG_ENCODER_STRUCTURE * jpeg_encoder_structure, UINT8 *input_ptr); - -UINT8* encodeMCU (struct JPEG_ENCODER_STRUCTURE * jpeg_encoder_structure, UINT8 *output_ptr); - -void quantization (struct JPEG_ENCODER_STRUCTURE * jpeg_encoder_structure, - INT16* const data, UINT16* const quant_table_ptr); - -UINT8* huffman (struct JPEG_ENCODER_STRUCTURE * jpeg_encoder_structure, - UINT16 component, UINT8 *output_ptr); - -UINT8* close_bitstream (struct JPEG_ENCODER_STRUCTURE * jpeg_encoder_structure, UINT8 *output_ptr); -#endif diff -Nru guvcview-1.7.3/src/lavc_common.c guvcview-2.0.1+ubuntu1~ppa1/src/lavc_common.c --- guvcview-1.7.3/src/lavc_common.c 2014-03-24 22:56:28.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/src/lavc_common.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,765 +0,0 @@ -/*******************************************************************************# -# guvcview http://guvcview.sourceforge.net # -# # -# Paulo Assis # -# George Sedov # -# - Threaded encoding # -# # -# This program is free software; you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation; either version 2 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program; if not, write to the Free Software # -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# # -********************************************************************************/ - -#include -#include -#include -#include -#include "lavc_common.h" -#include "v4l2uvc.h" -#include "vcodecs.h" -#include "acodecs.h" -#include "sound.h" - -# define AV_RB16(x) \ - ((((const uint8_t*)(x))[0] << 8) | \ - ((const uint8_t*)(x))[1]) - -int avpriv_split_xiph_headers(uint8_t *extradata, int extradata_size, - int first_header_size, uint8_t *header_start[3], - int header_len[3]) -{ - int i; - - if (extradata_size >= 6 && AV_RB16(extradata) == first_header_size) { - int overall_len = 6; - for (i=0; i<3; i++) { - header_len[i] = AV_RB16(extradata); - extradata += 2; - header_start[i] = extradata; - extradata += header_len[i]; - if (overall_len > extradata_size - header_len[i]) - return -1; - overall_len += header_len[i]; - } - } else if (extradata_size >= 3 && extradata_size < INT_MAX - 0x1ff && extradata[0] == 2) { - int overall_len = 3; - extradata++; - for (i=0; i<2; i++, extradata++) { - header_len[i] = 0; - for (; overall_len < extradata_size && *extradata==0xff; extradata++) { - header_len[i] += 0xff; - overall_len += 0xff + 1; - } - header_len[i] += *extradata; - overall_len += *extradata; - if (overall_len > extradata_size) - return -1; - } - header_len[2] = extradata_size - overall_len; - header_start[0] = extradata; - header_start[1] = header_start[0] + header_len[0]; - header_start[2] = header_start[1] + header_len[1]; - } else { - return -1; - } - return 0; -} - -static void yuv422to420p(BYTE* pic, struct lavcData* data ) -{ - int i,j; - int width = data->codec_context->width; - int height = data->codec_context->height; - int linesize=width*2; - int size = width * height; - - BYTE *y; - BYTE *y1; - BYTE *u; - BYTE* v; - y = data->tmpbuf; - y1 = data->tmpbuf + width; - u = data->tmpbuf + size; - v = u + size/4; - - for(j=0;j<(height-1);j+=2) - { - for(i=0;i<(linesize-3);i+=4) - { - *y++ = pic[i+j*linesize]; - *y++ = pic[i+2+j*linesize]; - *y1++ = pic[i+(j+1)*linesize]; - *y1++ = pic[i+2+(j+1)*linesize]; - *u++ = (pic[i+1+j*linesize] + pic[i+1+(j+1)*linesize])>>1; // div by 2 - *v++ = (pic[i+3+j*linesize] + pic[i+3+(j+1)*linesize])>>1; - } - y += width; - y1 += width;//2 lines - } - - data->picture->data[0] = data->tmpbuf; //Y - data->picture->data[1] = data->tmpbuf + size; //U - data->picture->data[2] = data->picture->data[1] + size/4; //V - data->picture->linesize[0] = data->codec_context->width; - data->picture->linesize[1] = data->codec_context->width / 2; - data->picture->linesize[2] = data->codec_context->width / 2; -} - -static void nv12to420p(BYTE* pic, struct lavcData* data ) -{ - int width = data->codec_context->width; - int height = data->codec_context->height; - int size = width * height; - - /*FIXME: do we really need this or can we use pic directly ?*/ - data->tmpbuf = memcpy(data->tmpbuf, pic, (width*height*3)/2); - - data->picture->data[0] = data->tmpbuf; //Y - data->picture->data[1] = data->tmpbuf + size; //U - data->picture->data[2] = data->picture->data[1] + size/4; //V - data->picture->linesize[0] = data->codec_context->width; - data->picture->linesize[1] = data->codec_context->width / 2; - data->picture->linesize[2] = data->codec_context->width / 2; -} - -static void nv21to420p(BYTE* pic, struct lavcData* data ) -{ - int width = data->codec_context->width; - int height = data->codec_context->height; - int size = width * height; - - /*FIXME: do we really need this or can we use pic directly ?*/ - data->tmpbuf = memcpy(data->tmpbuf, pic, (width*height*3)/2); - - data->picture->data[0] = data->tmpbuf; //Y - data->picture->data[2] = data->tmpbuf + size; //V - data->picture->data[1] = data->picture->data[2] + size/4; //U - data->picture->linesize[0] = data->codec_context->width; - data->picture->linesize[1] = data->codec_context->width / 2; - data->picture->linesize[2] = data->codec_context->width / 2; -} - -int encode_lavc_frame (BYTE *picture_buf, struct lavcData* data , int format, struct VideoFormatData *videoF) -{ - int out_size = 0; - - if(!data->codec_context) - { - data->flush_done = 1; - return out_size; - } - videoF->vblock_align = data->codec_context->block_align; - //videoF->avi->time_base_num = data->codec_context->time_base.num; - //videoF->avi->time_base_den = data->codec_context->time_base.den; - - //convert to 4:2:0 - switch (format) - { - case V4L2_PIX_FMT_NV12: - nv12to420p(picture_buf, data ); - break; - - case V4L2_PIX_FMT_NV21: - nv21to420p(picture_buf, data ); - break; - - default: - yuv422to420p(picture_buf, data ); - break; - } - /* encode the image */ - - //videoF->frame_number++; - - if(!data->monotonic_pts) //generate a real pts based on the frame timestamp - data->picture->pts += ((videoF->vpts - videoF->old_vpts)/1000) * 90; - else //generate a true monotonic pts based on the codec fps - data->picture->pts += (data->codec_context->time_base.num*1000/data->codec_context->time_base.den) * 90; - - videoF->old_vpts = videoF->vpts; - - if(data->flush_delayed_frames) - { - //pkt.size = 0; - if(!data->flushed_buffers) - { - avcodec_flush_buffers(data->codec_context); - data->flushed_buffers = 1; - } - - } - -#if LIBAVCODEC_VER_AT_LEAST(54,01) - AVPacket pkt; - int got_packet = 0; - av_init_packet(&pkt); - pkt.data = data->outbuf; - pkt.size = data->outbuf_size; - - //if(data->outbuf_size < FF_MIN_BUFFER_SIZE) - //{ - // av_log(avctx, AV_LOG_ERROR, "buffer smaller than minimum size\n"); - // return -1; - //} - int ret = 0; - if(!data->flush_delayed_frames) - ret = avcodec_encode_video2(data->codec_context, &pkt, data->picture, &got_packet); - else - ret = avcodec_encode_video2(data->codec_context, &pkt, NULL, &got_packet); - - if (!ret && got_packet && data->codec_context->coded_frame) - { - // Do we really need to set this ??? - data->codec_context->coded_frame->pts = pkt.pts; - data->codec_context->coded_frame->key_frame = !!(pkt.flags & AV_PKT_FLAG_KEY); - } - - videoF->vdts = pkt.dts; - videoF->vflags = pkt.flags; - videoF->vduration = pkt.duration; - - /* free any side data since we cannot return it */ - if (pkt.side_data_elems > 0) - { - int i; - for (i = 0; i < pkt.side_data_elems; i++) - av_free(pkt.side_data[i].data); - av_freep(&pkt.side_data); - pkt.side_data_elems = 0; - } - - out_size = pkt.size; -#else - if(!data->flush_delayed_frames) - out_size = avcodec_encode_video(data->codec_context, data->outbuf, data->outbuf_size, data->picture); - else - out_size = avcodec_encode_video(data->codec_context, data->outbuf, data->outbuf_size, NULL); - - videoF->vflags = 0; - if (data->codec_context->coded_frame->key_frame) - videoF->vflags |= AV_PKT_FLAG_KEY; - videoF->vdts = AV_NOPTS_VALUE; - videoF->vduration = videoF->vpts - videoF->old_vpts; -#endif - - if(data->flush_delayed_frames && out_size == 0) - data->flush_done = 1; - - if(out_size == 0 && data->index_of_df < 0) - { - data->delayed_pts[data->delayed_frames] = videoF->vpts; - data->delayed_frames++; - if(data->delayed_frames > MAX_DELAYED_FRAMES) - { - data->delayed_frames = MAX_DELAYED_FRAMES; - printf("WARNING: Maximum of %i delayed video frames reached...\n", MAX_DELAYED_FRAMES); - } - } - else - { - if(data->delayed_frames > 0) - { - if(data->index_of_df < 0) - { - data->index_of_df = 0; - printf("WARNING: video codec is using %i delayed video frames\n", data->delayed_frames); - } - INT64 pts = videoF->vpts; - videoF->vpts = data->delayed_pts[data->index_of_df]; - data->delayed_pts[data->index_of_df] = pts; - data->index_of_df++; - if(data->index_of_df >= data->delayed_frames) - data->index_of_df = 0; - } - } - return (out_size); -} - -int encode_lavc_audio_frame (void *audio_buf, struct lavcAData* data, struct VideoFormatData *videoF) -{ - int out_size = 0; - int ret = 0; - - videoF->ablock_align = data->codec_context->block_align; - - /* encode the audio */ -#if LIBAVCODEC_VER_AT_LEAST(53,34) - AVPacket pkt; - int got_packet; - av_init_packet(&pkt); - pkt.data = data->outbuf; - pkt.size = data->outbuf_size; - - data->frame->nb_samples = data->codec_context->frame_size; - int samples_size = av_samples_get_buffer_size(NULL, data->codec_context->channels, - data->frame->nb_samples, - data->codec_context->sample_fmt, 1); - - avcodec_fill_audio_frame(data->frame, data->codec_context->channels, - data->codec_context->sample_fmt, - (const uint8_t *) audio_buf, samples_size, 1); - if(!data->monotonic_pts) //generate a real pts based on the frame timestamp - data->frame->pts += ((videoF->apts - videoF->old_apts)/1000) * 90; - else //generate a true monotonic pts based on the codec fps - data->frame->pts += (data->codec_context->time_base.num*1000/data->codec_context->time_base.den) * 90; - - ret = avcodec_encode_audio2(data->codec_context, &pkt, data->frame, &got_packet); - - if (!ret && got_packet && data->codec_context->coded_frame) - { - data->codec_context->coded_frame->pts = pkt.pts; - data->codec_context->coded_frame->key_frame = !!(pkt.flags & AV_PKT_FLAG_KEY); - } - - videoF->adts = pkt.dts; - videoF->aflags = pkt.flags; - videoF->aduration = pkt.duration; - - /* free any side data since we cannot return it */ - //ff_packet_free_side_data(&pkt); - if (data->frame && data->frame->extended_data != data->frame->data) - av_freep(data->frame->extended_data); - - out_size = pkt.size; -#else - out_size = avcodec_encode_audio(data->codec_context, data->outbuf, data->outbuf_size, audio_buf); - videoF->adts = AV_NOPTS_VALUE; - videoF->aflags = 0; - if (data->codec_context->coded_frame->key_frame) - videoF->aflags |= AV_PKT_FLAG_KEY; - videoF->aduration = videoF->apts - videoF->old_apts;; -#endif - return (out_size); -} - -int clean_lavc (void* arg) -{ - struct lavcData** data= (struct lavcData**) arg; - //int enc_frames =0; - if(*data) - { - if((*data)->priv_data != NULL) - g_free((*data)->priv_data); - - //close codec - if((*data)->codec_context) - { - //enc_frames = (*data)->codec_context->real_pict_num; - if(!(*data)->flushed_buffers) - { - avcodec_flush_buffers((*data)->codec_context); - (*data)->flushed_buffers = 1; - } - avcodec_close((*data)->codec_context); -#if LIBAVCODEC_VER_AT_LEAST(53,6) - //free private options; - struct lavcData *pdata = *data; - av_dict_free(&(pdata->private_options)); -#endif - //free codec context - g_free((*data)->codec_context); - } - (*data)->codec_context = NULL; - if((*data)->tmpbuf) - g_free((*data)->tmpbuf); - if((*data)->outbuf) - g_free((*data)->outbuf); - if((*data)->picture) - g_free((*data)->picture); - g_free(*data); - *data = NULL; - } - return (0); -} - -int clean_lavc_audio (void* arg) -{ - struct lavcAData** data= (struct lavcAData**) arg; - //int enc_frames =0; - if(*data) - { - if((*data)->priv_data != NULL) - g_free((*data)->priv_data); - //enc_frames = (*data)->codec_context->real_pict_num; - avcodec_flush_buffers((*data)->codec_context); - //close codec - avcodec_close((*data)->codec_context); - //free codec context - g_free((*data)->codec_context); - (*data)->codec_context = NULL; - g_free((*data)->outbuf); - g_free((*data)->frame); - g_free(*data); - *data = NULL; - } - return (0); -} - -struct lavcData* init_lavc(int width, int height, int fps_num, int fps_den, int codec_ind, int format, int frame_flags) -{ - //allocate - struct lavcData* data = g_new0(struct lavcData, 1); - data->priv_data = NULL; - - vcodecs_data *defaults = get_codec_defaults(codec_ind); - data->monotonic_pts = defaults->monotonic_pts; - - if( format == V4L2_PIX_FMT_H264 && - get_vcodec_id(codec_ind) == AV_CODEC_ID_H264 && - frame_flags == 0) - return(data); //we only need the private data in this case - - data->codec_context = NULL; - - data->codec = NULL; - // find the video encoder - //try specific codec (by name) - data->codec = avcodec_find_encoder_by_name(defaults->codec_name); - - if(!data->codec) //if it fails try any codec with matching AV_CODEC_ID - data->codec = avcodec_find_encoder(defaults->codec_id); - - if (!data->codec) - { - fprintf(stderr, "ffmpeg codec not found\n"); - g_free(data); - return(NULL); - } -#if LIBAVCODEC_VER_AT_LEAST(53,6) - data->codec_context = avcodec_alloc_context3(data->codec); - avcodec_get_context_defaults3 (data->codec_context, data->codec); -#else - data->codec_context = avcodec_alloc_context(); -#endif - data->codec_id = defaults->codec_id; - - //alloc picture - data->picture= avcodec_alloc_frame(); - data->picture->pts = 0; - // define bit rate (lower = more compression but lower quality) - data->codec_context->bit_rate = defaults->bit_rate; - // resolution must be a multiple of two - data->codec_context->width = width; - data->codec_context->height = height; - - data->codec_context->flags |= defaults->flags; - if (defaults->num_threads > 0) - data->codec_context->thread_count = defaults->num_threads; - - /* - * mb_decision - *0 (FF_MB_DECISION_SIMPLE) Use mbcmp (default). - *1 (FF_MB_DECISION_BITS) Select the MB mode which needs the fewest bits (=vhq). - *2 (FF_MB_DECISION_RD) Select the MB mode which has the best rate distortion. - */ - data->codec_context->mb_decision = defaults->mb_decision; - /*use trellis quantization*/ - data->codec_context->trellis = defaults->trellis; - - //motion estimation method epzs - data->codec_context->me_method = defaults->me_method; - - data->codec_context->dia_size = defaults->dia; - data->codec_context->pre_dia_size = defaults->pre_dia; - data->codec_context->pre_me = defaults->pre_me; - data->codec_context->me_pre_cmp = defaults->me_pre_cmp; - data->codec_context->me_cmp = defaults->me_cmp; - data->codec_context->me_sub_cmp = defaults->me_sub_cmp; - data->codec_context->me_subpel_quality = defaults->subq; //NEW - data->codec_context->refs = defaults->framerefs; //NEW - data->codec_context->last_predictor_count = defaults->last_pred; - - data->codec_context->mpeg_quant = defaults->mpeg_quant; //h.263 - data->codec_context->qmin = defaults->qmin; // best detail allowed - worst compression - data->codec_context->qmax = defaults->qmax; // worst detail allowed - best compression - data->codec_context->max_qdiff = defaults->max_qdiff; - data->codec_context->max_b_frames = defaults->max_b_frames; - - data->codec_context->qcompress = defaults->qcompress; - data->codec_context->qblur = defaults->qblur; - data->codec_context->strict_std_compliance = FF_COMPLIANCE_NORMAL; - data->codec_context->codec_id = defaults->codec_id; - -#if !LIBAVCODEC_VER_AT_LEAST(53,0) -#define AVMEDIA_TYPE_VIDEO CODEC_TYPE_VIDEO -#endif - data->codec_context->codec_type = AVMEDIA_TYPE_VIDEO; - - data->codec_context->pix_fmt = PIX_FMT_YUV420P; //only yuv420p available for mpeg - if(defaults->fps) - data->codec_context->time_base = (AVRational){1,defaults->fps}; //use codec properties fps - else if (fps_den >= 5) - data->codec_context->time_base = (AVRational){fps_num,fps_den}; //default fps (for gspca this is 1/1) - else data->codec_context->time_base = (AVRational){1,15}; //fallback to 15 fps (e.g gspca) - - if(defaults->gop_size > 0) - data->codec_context->gop_size = defaults->gop_size; - else - data->codec_context->gop_size = data->codec_context->time_base.den; - - if(defaults->codec_id == AV_CODEC_ID_H264) - { - data->codec_context->me_range = 16; - //the first compressed frame will be empty (1 frame out of sync) - //but avoids x264 warning on lookaheadless mb-tree -#if LIBAVCODEC_VER_AT_LEAST(53,6) - av_dict_set(&data->private_options, "rc_lookahead", "1", 0); -#else - data->codec_context->rc_lookahead=1; -#endif - //TODO: - // add rc_lookahead to codec properties and handle it gracefully by - // fixing the frames timestamps => shift them by rc_lookahead frames - } - - // open codec -#if LIBAVCODEC_VER_AT_LEAST(53,6) - if (avcodec_open2(data->codec_context, data->codec, &data->private_options) < 0) -#else - if (avcodec_open(data->codec_context, data->codec) < 0) -#endif - { - fprintf(stderr, "could not open codec\n"); - g_free(data); - return(NULL); - } - //alloc tmpbuff (yuv420p) - data->tmpbuf = g_new0(BYTE, (width*height*3)/2); - //alloc outbuf - data->outbuf_size = 240000;//1792 - data->outbuf = g_new0(BYTE, data->outbuf_size); - - data->delayed_frames = 0; - data->index_of_df = -1; - - data->flushed_buffers = 0; - data->flush_delayed_frames = 0; - data->flush_done = 0; - - return(data); -} - -struct lavcAData* init_lavc_audio(struct paRecordData *pdata, int codec_ind) -{ - //allocate - pdata->lavc_data = g_new0(struct lavcAData, 1); - - pdata->lavc_data->priv_data = NULL; - - pdata->lavc_data->codec_context = NULL; - acodecs_data *defaults = get_aud_codec_defaults(codec_ind); - - // find the audio encoder - //try specific codec (by name) - pdata->lavc_data->codec = avcodec_find_encoder_by_name(defaults->codec_name); - - fprintf(stderr, "AUDIO: codec %s selected\n", defaults->codec_name); - - if(!pdata->lavc_data->codec) //if it fails try any codec with matching AV_CODEC_ID - { - fprintf(stderr, "ffmpeg audio codec %s not found\n", defaults->codec_name); - pdata->lavc_data->codec = avcodec_find_encoder(defaults->codec_id); - - if (!pdata->lavc_data->codec) - { - fprintf(stderr, "ffmpeg no audio codec for ID: %i found\n", defaults->codec_id); - g_free(pdata->lavc_data); - pdata->lavc_data = NULL; - return(NULL); - } - } - -#if LIBAVCODEC_VER_AT_LEAST(53,6) - pdata->lavc_data->codec_context = avcodec_alloc_context3(pdata->lavc_data->codec); - avcodec_get_context_defaults3 (pdata->lavc_data->codec_context, pdata->lavc_data->codec); -#else - pdata->lavc_data->codec_context = avcodec_alloc_context(); -#endif - - // define bit rate (lower = more compression but lower quality) - pdata->lavc_data->codec_context->bit_rate = defaults->bit_rate; - pdata->lavc_data->codec_context->profile = defaults->profile; /*for AAC*/ - - pdata->lavc_data->codec_context->flags |= defaults->flags; - - pdata->lavc_data->codec_context->sample_rate = pdata->samprate; - pdata->lavc_data->codec_context->channels = pdata->channels; - -#ifdef AV_CH_LAYOUT_MONO - if(pdata->channels < 2) - pdata->lavc_data->codec_context->channel_layout = AV_CH_LAYOUT_MONO; - else - pdata->lavc_data->codec_context->channel_layout = AV_CH_LAYOUT_STEREO; -#endif - - pdata->lavc_data->codec_context->cutoff = 0; /*automatic*/ - - pdata->lavc_data->codec_context->sample_fmt = defaults->sample_format; - - pdata->lavc_data->codec_context->codec_id = defaults->codec_id; - -#if !LIBAVCODEC_VER_AT_LEAST(53,0) -#define AVMEDIA_TYPE_AUDIO CODEC_TYPE_AUDIO -#endif - pdata->lavc_data->codec_context->codec_type = AVMEDIA_TYPE_AUDIO; - - // open codec -#if LIBAVCODEC_VER_AT_LEAST(53,6) - if (avcodec_open2(pdata->lavc_data->codec_context, pdata->lavc_data->codec, NULL) < 0) -#else - if (avcodec_open(pdata->lavc_data->codec_context, pdata->lavc_data->codec) < 0) -#endif - { - switch(defaults->sample_format) - { - case AV_SAMPLE_FMT_S16: - defaults->sample_format = AV_SAMPLE_FMT_FLT; - pdata->lavc_data->codec_context->sample_fmt = defaults->sample_format; - fprintf(stderr, "could not open codec...trying again with float sample format\n"); - break; - case AV_SAMPLE_FMT_FLT: - defaults->sample_format = AV_SAMPLE_FMT_S16; - pdata->lavc_data->codec_context->sample_fmt = defaults->sample_format; - fprintf(stderr, "could not open codec...trying again with int16 sample format\n"); - break; - } - #if LIBAVCODEC_VER_AT_LEAST(53,6) - if (avcodec_open2(pdata->lavc_data->codec_context, pdata->lavc_data->codec, NULL) < 0) - #else - if (avcodec_open(pdata->lavc_data->codec_context, pdata->lavc_data->codec) < 0) - #endif - { - fprintf(stderr, "could not open codec...giving up\n"); - g_free(pdata->lavc_data); - pdata->lavc_data = NULL; - return(NULL); - } - } - - /* the codec gives us the frame size, in samples */ - int frame_size = pdata->lavc_data->codec_context->frame_size; - g_print("Audio frame size is %d samples for selected codec\n", frame_size); - - pdata->lavc_data->monotonic_pts = defaults->monotonic_pts; - - //alloc outbuf - pdata->lavc_data->outbuf_size = pdata->outbuf_size; - pdata->lavc_data->outbuf = g_new0(BYTE, pdata->lavc_data->outbuf_size); - -#if LIBAVCODEC_VER_AT_LEAST(53,34) - pdata->lavc_data->frame= avcodec_alloc_frame(); - avcodec_get_frame_defaults(pdata->lavc_data->frame); -#endif - return(pdata->lavc_data); -} - -// H264 decoder -gboolean has_h264_decoder() -{ - if(avcodec_find_decoder(CODEC_ID_H264)) - return TRUE; - else - return FALSE; -} - - -struct h264_decoder_context* init_h264_decoder(int width, int height) -{ - struct h264_decoder_context* h264_ctx = g_new0(struct h264_decoder_context, 1); - - h264_ctx->codec = avcodec_find_decoder(CODEC_ID_H264); - if(!h264_ctx->codec) - { - fprintf(stderr, "H264 decoder: codec not found (please install libavcodec-extra for H264 support)\n"); - g_free(h264_ctx); - return NULL; - } - -#if LIBAVCODEC_VER_AT_LEAST(53,6) - h264_ctx->context = avcodec_alloc_context3(h264_ctx->codec); - avcodec_get_context_defaults3 (h264_ctx->context, h264_ctx->codec); -#else - h264_ctx->context = avcodec_alloc_context(); - avcodec_get_context_defaults(h264_ctx->context); -#endif - - - h264_ctx->context->flags2 |= CODEC_FLAG2_FAST; - h264_ctx->context->pix_fmt = PIX_FMT_YUV420P; - h264_ctx->context->width = width; - h264_ctx->context->height = height; - //h264_ctx->context->dsp_mask = (FF_MM_MMX | FF_MM_MMXEXT | FF_MM_SSE); -#if LIBAVCODEC_VER_AT_LEAST(53,6) - if (avcodec_open2(h264_ctx->context, h264_ctx->codec, NULL) < 0) -#else - if (avcodec_open(h264_ctx->context, h264_ctx->codec) < 0) -#endif - { - fprintf(stderr, "H264 decoder: couldn't open codec\n"); - avcodec_close(h264_ctx->context); - g_free(h264_ctx->context); - g_free(h264_ctx); - return NULL; - } - - h264_ctx->picture = avcodec_alloc_frame(); - avcodec_get_frame_defaults(h264_ctx->picture); - h264_ctx->pic_size = avpicture_get_size(h264_ctx->context->pix_fmt, width, height); - h264_ctx->width = width; - h264_ctx->height = height; - - //decodedOut = (uint8_t *)malloc(pic_size); - - return h264_ctx; -} - -int decode_h264(uint8_t *out_buf, uint8_t *in_buf, int buf_size, struct h264_decoder_context* h264_ctx) -{ - AVPacket avpkt; - - avpkt.size = buf_size; - avpkt.data = in_buf; - - int got_picture = 0; - int len = avcodec_decode_video2(h264_ctx->context, h264_ctx->picture, &got_picture, &avpkt); - - if(len < 0) - { - fprintf(stderr, "H264 decoder: error while decoding frame\n"); - return len; - } - - if(got_picture) - { - avpicture_layout((AVPicture *) h264_ctx->picture, h264_ctx->context->pix_fmt - , h264_ctx->width, h264_ctx->height, out_buf, h264_ctx->pic_size); - return len; - } - else - return 0; - -} - -void close_h264_decoder(struct h264_decoder_context* h264_ctx) -{ - if(h264_ctx == NULL) - return; - - avcodec_close(h264_ctx->context); - - g_free(h264_ctx->context); - g_free(h264_ctx->picture); - - g_free(h264_ctx); -} diff -Nru guvcview-1.7.3/src/lavc_common.h guvcview-2.0.1+ubuntu1~ppa1/src/lavc_common.h --- guvcview-1.7.3/src/lavc_common.h 2014-03-24 22:56:28.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/src/lavc_common.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,170 +0,0 @@ -/*******************************************************************************# -# guvcview http://guvcview.sourceforge.net # -# # -# Paulo Assis # -# George Sedov # -# - Threaded encoding # -# # -# This program is free software; you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation; either version 2 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program; if not, write to the Free Software # -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# # -********************************************************************************/ - -#ifndef LAVC_COMMON_H -#define LAVC_COMMON_H - -#include "../config.h" -#include "defs.h" -#include "sound.h" -#include "video_format.h" - -#ifdef HAS_AVCODEC_H - #include - #include -#else - #ifdef HAS_LIBAVCODEC_AVCODEC_H - #include - #include //mem functions: av_free; av_malloc; av_realloc - #include //channel_layout definitions - #else - #ifdef HAS_FFMPEG_AVCODEC_H - #include - #include - #else - #include - #include - #include - #endif - #endif -#endif - -#define LIBAVCODEC_VER_AT_LEAST(major,minor) (LIBAVCODEC_VERSION_MAJOR > major || \ - (LIBAVCODEC_VERSION_MAJOR == major && \ - LIBAVCODEC_VERSION_MINOR >= minor)) - -#if !LIBAVCODEC_VER_AT_LEAST(53,0) - #define AV_SAMPLE_FMT_S16 SAMPLE_FMT_S16 - #define AV_SAMPLE_FMT_FLT SAMPLE_FMT_FLT -#endif - - -#if !LIBAVCODEC_VER_AT_LEAST(54,25) - #define AV_CODEC_ID_NONE CODEC_ID_NONE - #define AV_CODEC_ID_MJPEG CODEC_ID_MJPEG - #define AV_CODEC_ID_MPEG1VIDEO CODEC_ID_MPEG1VIDEO - #define AV_CODEC_ID_FLV1 CODEC_ID_FLV1 - #define AV_CODEC_ID_WMV1 CODEC_ID_WMV1 - #define AV_CODEC_ID_MPEG2VIDEO CODEC_ID_MPEG2VIDEO - #define AV_CODEC_ID_MSMPEG4V3 CODEC_ID_MSMPEG4V3 - #define AV_CODEC_ID_MPEG4 CODEC_ID_MPEG4 - #define AV_CODEC_ID_H264 CODEC_ID_H264 - #define AV_CODEC_ID_VP8 CODEC_ID_VP8 - #define AV_CODEC_ID_THEORA CODEC_ID_THEORA - - #define AV_CODEC_ID_PCM_S16LE CODEC_ID_PCM_S16LE - #define AV_CODEC_ID_MP2 CODEC_ID_MP2 - #define AV_CODEC_ID_MP3 CODEC_ID_MP3 - #define AV_CODEC_ID_AC3 CODEC_ID_AC3 - #define AV_CODEC_ID_AAC CODEC_ID_AAC - #define AV_CODEC_ID_VORBIS CODEC_ID_VORBIS -#endif - - -#define MAX_DELAYED_FRAMES 50 //Maximum supported delayed frames - -/*video*/ -struct lavcData -{ - AVCodec *codec; - -#if LIBAVCODEC_VER_AT_LEAST(53,6) - AVDictionary *private_options; -#endif - - AVCodecContext *codec_context; - AVFrame *picture; - AVPacket *outpkt; - - int delayed_frames; - int index_of_df; //index of delayed frame pts in use; - INT64 delayed_pts[MAX_DELAYED_FRAMES]; //delayed frames pts - int flush_delayed_frames; - int flushed_buffers; - int flush_done; - - BYTE* tmpbuf; - - BYTE* priv_data; - int outbuf_size; - BYTE* outbuf; - - int codec_id; - int monotonic_pts; -}; - -/*Audio*/ -struct lavcAData -{ - AVCodec *codec; - AVCodecContext *codec_context; - AVFrame *frame; - AVPacket *outpkt; - - BYTE* priv_data; - int outbuf_size; - BYTE* outbuf; - - int codec_id; - int monotonic_pts; -}; - -// H264 decoder -struct h264_decoder_context -{ - AVCodec *codec; - AVCodecContext *context; - AVFrame *picture; - - int width; - int height; - int pic_size; - -}; - -gboolean has_h264_decoder(); -struct h264_decoder_context* init_h264_decoder(int width, int height); -int decode_h264(uint8_t *out_buf, uint8_t *in_buf, int buf_size, struct h264_decoder_context* h264_ctx); -void close_h264_decoder(struct h264_decoder_context* h264_ctx); - -//split the private codec data into xiph headers for mkv muxer (vorbis and theora) -int avpriv_split_xiph_headers(uint8_t *extradata, int extradata_size, - int first_header_size, uint8_t *header_start[3], - int header_len[3]); - -int encode_lavc_frame (BYTE *picture_buf, struct lavcData* data, int format, struct VideoFormatData *videoF); - -int encode_lavc_audio_frame (void *audio_buf, struct lavcAData* data, struct VideoFormatData *videoF); - -/* arg = pointer to lavcData struct => - * *arg = struct lavcData** - */ -int clean_lavc (void *arg); - -int clean_lavc_audio (void* arg); - -struct lavcData* init_lavc(int width, int height, int fps_num, int fps_den, int codec_ind, int format, int frame_flags); - -struct lavcAData* init_lavc_audio(struct paRecordData *pdata, int codec_ind); - -#endif diff -Nru guvcview-1.7.3/src/Makefile.am guvcview-2.0.1+ubuntu1~ppa1/src/Makefile.am --- guvcview-1.7.3/src/Makefile.am 2014-03-24 22:56:28.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/src/Makefile.am 1970-01-01 00:00:00.000000000 +0000 @@ -1,120 +0,0 @@ -## Process this file with automake to produce Makefile.in - -EXTRA_CFLAGS = @PULSE_CFLAGS@ -EXTRA_LIBS = @PULSE_LIBS@ - -bin_PROGRAMS = guvcview - -guvcview_SOURCES = \ - audio_effects.h \ - audio_effects.c \ - audio_tab.h \ - audio_tab.c \ - autofocus.h \ - autofocus.c \ - acodecs.h \ - acodecs.c \ - avilib.c \ - avilib.h \ - callbacks.h \ - callbacks.c \ - close.h \ - close.c \ - colorspaces.h \ - colorspaces.c \ - create_video.h \ - create_video.c \ - create_image.h \ - create_image.c \ - dct.h \ - dct.c \ - defs.h \ - file_io.h \ - file_io.c \ - globals.h \ - globals.c \ - guvcview.h \ - guvcview.c \ - huffman.h \ - huffman.c \ - img_controls.h \ - img_controls.c \ - image_format.h \ - image_format.c\ - io_stream.h \ - io_stream.c \ - jdatatype.h \ - jpgenc.h \ - jpgenc.c \ - lavc_common.h \ - lavc_common.c \ - matroska.h \ - matroska.c \ - marker.c \ - menubar.h \ - menubar.c \ - ms_time.h \ - ms_time.c \ - options.h \ - options.c \ - osd.h \ - osd.c \ - picture.h \ - picture.c \ - profile.h \ - profile.c \ - port_audio.h \ - port_audio.c \ - pulse_audio.h \ - pulse_audio.c \ - quant.c \ - readYUV.c \ - sound.h \ - sound.c \ - snd_devices.h \ - snd_devices.c \ - string_utils.h \ - string_utils.c \ - timers.h \ - timers.c \ - utils.h \ - utils.c \ - uvc_h264.h \ - uvc_h264.c \ - v4l2_controls.h \ - v4l2_controls.c \ - v4l2_devices.h \ - v4l2_devices.c \ - v4l2_dyna_ctrls.h \ - v4l2_dyna_ctrls.c \ - v4l2_formats.h \ - v4l2_formats.c \ - v4l2uvc.h \ - v4l2uvc.c \ - vcodecs.h \ - vcodecs.c \ - video.h \ - video.c \ - video_filters.h \ - video_filters.c \ - video_format.h \ - video_format.c \ - video_tab.h \ - video_tab.c - -guvcview_CFLAGS = -DPACKAGE_LOCALE_DIR=\""$(prefix)/$(DATADIRNAME)/locale"\" \ - -DPACKAGE_SRC_DIR=\""$(srcdir)"\" \ - -DPACKAGE_DATA_DIR=\""$(datadir)"\" \ - $(DEPS_CFLAGS) \ - $(EXTRA_CFLAGS) \ - $(PTHREAD_CFLAGS) \ - -D_REENTRANT \ - -D_FILE_OFFSET_BITS=64 \ - -Wall - -guvcview_LDFLAGS = $(LIBINTL) - -guvcview_LDADD = $(DEPS_LIBS) $(EXTRA_LIBS) $(PTHREAD_LIBS) - -localedir = $(datadir)/locale -DEFS = -DLOCALEDIR=\"$(localedir)\" @DEFS@ diff -Nru guvcview-1.7.3/src/Makefile.am~ guvcview-2.0.1+ubuntu1~ppa1/src/Makefile.am~ --- guvcview-1.7.3/src/Makefile.am~ 2014-03-24 22:56:28.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/src/Makefile.am~ 1970-01-01 00:00:00.000000000 +0000 @@ -1,120 +0,0 @@ -## Process this file with automake to produce Makefile.in - -EXTRA_CFLAGS = @PULSE_CFLAGS@ -EXTRA_LIBS = @PULSE_LIBS@ - -bin_PROGRAMS = guvcview - -guvcview_SOURCES = \ - audio_effects.h \ - audio_effects.c \ - audio_tab.h \ - audio_tab.c \ - autofocus.h \ - autofocus.c \ - acodecs.h \ - acodecs.c \ - avilib.c \ - avilib.h \ - callbacks.h \ - callbacks.c \ - close.h \ - close.c \ - colorspaces.h \ - colorspaces.c \ - create_video.h \ - create_video.c \ - create_image.h \ - create_image.c \ - dct.h \ - dct.c \ - defs.h \ - file_io.h \ - file_io.c \ - globals.h \ - globals.c \ - guvcview.h \ - guvcview.c \ - huffman.h \ - huffman.c \ - img_controls.h \ - img_controls.c \ - image_format.h \ - image_format.c\ - io_stream.h \ - io_stream.c \ - jdatatype.h \ - jpgenc.h \ - jpgenc.c \ - lavc_common.h \ - lavc_common.c \ - matroska.h \ - matroska.c \ - marker.c \ - menubar.h \ - menubar.c \ - ms_time.h \ - ms_time.c \ - options.h \ - options.c \ - osd.h \ - osd.c \ - picture.h \ - picture.c \ - profile.h \ - profile.c \ - port_audio.h \ - port_audio.c \ - pulse_audio.h \ - pulse_audio.c \ - quant.c \ - readYUV.c \ - sound.h \ - sound.c \ - snd_devices.h \ - snd_devices.c \ - string_utils.h \ - string_utils.c \ - timers.h \ - timers.c \ - utils.h \ - utils.c \ - uvc_h264.h \ - uvc_h264.c \ - v4l2_controls.h \ - v4l2_controls.c \ - v4l2_devices.h \ - v4l2_devices.c \ - v4l2_dyna_ctrls.h \ - v4l2_dyna_ctrls.c \ - v4l2_formats.h \ - v4l2_formats.c \ - v4l2uvc.h \ - v4l2uvc.c \ - vcodecs.h \ - vcodecs.c \ - video.h \ - video.c \ - video_filters.h \ - video_filters.c \ - video_format.h \ - video_format.c \ - video_tab.h \ - video_tab.c - -guvcview_CFLAGS = -DPACKAGE_LOCALE_DIR=\""$(prefix)/$(DATADIRNAME)/locale"\" \ - -DPACKAGE_SRC_DIR=\""$(srcdir)"\" \ - -DPACKAGE_DATA_DIR=\""$(datadir)"\" \ - $(DEPS_CFLAGS) \ - $(EXTRA_CFLAGS) \ - $(PTHREAD_CFLAGS) \ - -D_REENTRANT \ - -D_FILE_OFFSET_BITS=64 \ - -Wall - -guvcview_LDFLAGS = $(LIBINTL) - -guvcview_LDADD = $(DEPS_LIBS) $(EXTRA_LIBS) $(PTHREAD_LIBS) - -localedir = $(datadir)/locale -DEFS = -DLOCALEDIR=\"$(localedir)\" @DEFS@ diff -Nru guvcview-1.7.3/src/Makefile.in guvcview-2.0.1+ubuntu1~ppa1/src/Makefile.in --- guvcview-1.7.3/src/Makefile.in 2014-03-24 22:56:28.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/src/Makefile.in 1970-01-01 00:00:00.000000000 +0000 @@ -1,1459 +0,0 @@ -# Makefile.in generated by automake 1.13.3 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994-2013 Free Software Foundation, Inc. - -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -VPATH = @srcdir@ -am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' -am__make_running_with_option = \ - case $${target_option-} in \ - ?) ;; \ - *) echo "am__make_running_with_option: internal error: invalid" \ - "target option '$${target_option-}' specified" >&2; \ - exit 1;; \ - esac; \ - has_opt=no; \ - sane_makeflags=$$MAKEFLAGS; \ - if $(am__is_gnu_make); then \ - sane_makeflags=$$MFLAGS; \ - else \ - case $$MAKEFLAGS in \ - *\\[\ \ ]*) \ - bs=\\; \ - sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ - | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ - esac; \ - fi; \ - skip_next=no; \ - strip_trailopt () \ - { \ - flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ - }; \ - for flg in $$sane_makeflags; do \ - test $$skip_next = yes && { skip_next=no; continue; }; \ - case $$flg in \ - *=*|--*) continue;; \ - -*I) strip_trailopt 'I'; skip_next=yes;; \ - -*I?*) strip_trailopt 'I';; \ - -*O) strip_trailopt 'O'; skip_next=yes;; \ - -*O?*) strip_trailopt 'O';; \ - -*l) strip_trailopt 'l'; skip_next=yes;; \ - -*l?*) strip_trailopt 'l';; \ - -[dEDm]) skip_next=yes;; \ - -[JT]) skip_next=yes;; \ - esac; \ - case $$flg in \ - *$$target_option*) has_opt=yes; break;; \ - esac; \ - done; \ - test $$has_opt = yes -am__make_dryrun = (target_option=n; $(am__make_running_with_option)) -am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -bin_PROGRAMS = guvcview$(EXEEXT) -subdir = src -DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ - $(top_srcdir)/depcomp -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/acx_pthread.m4 \ - $(top_srcdir)/m4/intltool.m4 $(top_srcdir)/m4/nls.m4 \ - $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -mkinstalldirs = $(install_sh) -d -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = -CONFIG_CLEAN_VPATH_FILES = -am__installdirs = "$(DESTDIR)$(bindir)" -PROGRAMS = $(bin_PROGRAMS) -am_guvcview_OBJECTS = guvcview-audio_effects.$(OBJEXT) \ - guvcview-audio_tab.$(OBJEXT) guvcview-autofocus.$(OBJEXT) \ - guvcview-acodecs.$(OBJEXT) guvcview-avilib.$(OBJEXT) \ - guvcview-callbacks.$(OBJEXT) guvcview-close.$(OBJEXT) \ - guvcview-colorspaces.$(OBJEXT) guvcview-create_video.$(OBJEXT) \ - guvcview-create_image.$(OBJEXT) guvcview-dct.$(OBJEXT) \ - guvcview-file_io.$(OBJEXT) guvcview-globals.$(OBJEXT) \ - guvcview-guvcview.$(OBJEXT) guvcview-huffman.$(OBJEXT) \ - guvcview-img_controls.$(OBJEXT) \ - guvcview-image_format.$(OBJEXT) guvcview-io_stream.$(OBJEXT) \ - guvcview-jpgenc.$(OBJEXT) guvcview-lavc_common.$(OBJEXT) \ - guvcview-matroska.$(OBJEXT) guvcview-marker.$(OBJEXT) \ - guvcview-menubar.$(OBJEXT) guvcview-ms_time.$(OBJEXT) \ - guvcview-options.$(OBJEXT) guvcview-osd.$(OBJEXT) \ - guvcview-picture.$(OBJEXT) guvcview-profile.$(OBJEXT) \ - guvcview-port_audio.$(OBJEXT) guvcview-pulse_audio.$(OBJEXT) \ - guvcview-quant.$(OBJEXT) guvcview-readYUV.$(OBJEXT) \ - guvcview-sound.$(OBJEXT) guvcview-snd_devices.$(OBJEXT) \ - guvcview-string_utils.$(OBJEXT) guvcview-timers.$(OBJEXT) \ - guvcview-utils.$(OBJEXT) guvcview-uvc_h264.$(OBJEXT) \ - guvcview-v4l2_controls.$(OBJEXT) \ - guvcview-v4l2_devices.$(OBJEXT) \ - guvcview-v4l2_dyna_ctrls.$(OBJEXT) \ - guvcview-v4l2_formats.$(OBJEXT) guvcview-v4l2uvc.$(OBJEXT) \ - guvcview-vcodecs.$(OBJEXT) guvcview-video.$(OBJEXT) \ - guvcview-video_filters.$(OBJEXT) \ - guvcview-video_format.$(OBJEXT) guvcview-video_tab.$(OBJEXT) -guvcview_OBJECTS = $(am_guvcview_OBJECTS) -am__DEPENDENCIES_1 = -guvcview_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ - $(am__DEPENDENCIES_1) -guvcview_LINK = $(CCLD) $(guvcview_CFLAGS) $(CFLAGS) \ - $(guvcview_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_P = $(am__v_P_@AM_V@) -am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) -am__v_P_0 = false -am__v_P_1 = : -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; -am__v_GEN_1 = -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ -am__v_at_1 = -DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) -depcomp = $(SHELL) $(top_srcdir)/depcomp -am__depfiles_maybe = depfiles -am__mv = mv -f -AM_V_lt = $(am__v_lt_@AM_V@) -am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) -am__v_lt_0 = --silent -am__v_lt_1 = -COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ - $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_@AM_V@) -am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -am__v_CC_1 = -CCLD = $(CC) -LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_@AM_V@) -am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -am__v_CCLD_1 = -SOURCES = $(guvcview_SOURCES) -DIST_SOURCES = $(guvcview_SOURCES) -am__can_run_installinfo = \ - case $$AM_UPDATE_INFO_DIR in \ - n|no|NO) false;; \ - *) (install-info --version) >/dev/null 2>&1;; \ - esac -am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) -# Read a list of newline-separated strings from the standard input, -# and print each of them once, without duplicates. Input order is -# *not* preserved. -am__uniquify_input = $(AWK) '\ - BEGIN { nonempty = 0; } \ - { items[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in items) print i; }; } \ -' -# Make sure the list of sources is unique. This is necessary because, -# e.g., the same source file might be shared among _SOURCES variables -# for different programs/libraries. -am__define_uniq_tagged_files = \ - list='$(am__tagged_files)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | $(am__uniquify_input)` -ETAGS = etags -CTAGS = ctags -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -ALL_LINGUAS = @ALL_LINGUAS@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -CATALOGS = @CATALOGS@ -CATOBJEXT = @CATOBJEXT@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DATADIRNAME = @DATADIRNAME@ -DEFS = -DLOCALEDIR=\"$(localedir)\" @DEFS@ -DEPDIR = @DEPDIR@ -DEPS_CFLAGS = @DEPS_CFLAGS@ -DEPS_LIBS = @DEPS_LIBS@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ -GMOFILES = @GMOFILES@ -GMSGFMT = @GMSGFMT@ -GREP = @GREP@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -INSTOBJEXT = @INSTOBJEXT@ -INTLLIBS = @INTLLIBS@ -INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ -INTLTOOL_MERGE = @INTLTOOL_MERGE@ -INTLTOOL_PERL = @INTLTOOL_PERL@ -INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ -LDFLAGS = @LDFLAGS@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LTLIBOBJS = @LTLIBOBJS@ -MAINT = @MAINT@ -MAKEINFO = @MAKEINFO@ -MKDIR_P = @MKDIR_P@ -MKINSTALLDIRS = @MKINSTALLDIRS@ -MSGFMT = @MSGFMT@ -MSGFMT_OPTS = @MSGFMT_OPTS@ -MSGMERGE = @MSGMERGE@ -OBJEXT = @OBJEXT@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_URL = @PACKAGE_URL@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -PKG_CONFIG = @PKG_CONFIG@ -PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ -PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ -POFILES = @POFILES@ -POSUB = @POSUB@ -PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ -PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ -PTHREAD_CC = @PTHREAD_CC@ -PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ -PTHREAD_LIBS = @PTHREAD_LIBS@ -PULSE_CFLAGS = @PULSE_CFLAGS@ -PULSE_LIBS = @PULSE_LIBS@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRIP = @STRIP@ -USE_NLS = @USE_NLS@ -VERSION = @VERSION@ -XGETTEXT = @XGETTEXT@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_CC = @ac_ct_CC@ -acx_pthread_config = @acx_pthread_config@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = $(datadir)/locale -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pdfdir = @pdfdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -target_alias = @target_alias@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -EXTRA_CFLAGS = @PULSE_CFLAGS@ -EXTRA_LIBS = @PULSE_LIBS@ -guvcview_SOURCES = \ - audio_effects.h \ - audio_effects.c \ - audio_tab.h \ - audio_tab.c \ - autofocus.h \ - autofocus.c \ - acodecs.h \ - acodecs.c \ - avilib.c \ - avilib.h \ - callbacks.h \ - callbacks.c \ - close.h \ - close.c \ - colorspaces.h \ - colorspaces.c \ - create_video.h \ - create_video.c \ - create_image.h \ - create_image.c \ - dct.h \ - dct.c \ - defs.h \ - file_io.h \ - file_io.c \ - globals.h \ - globals.c \ - guvcview.h \ - guvcview.c \ - huffman.h \ - huffman.c \ - img_controls.h \ - img_controls.c \ - image_format.h \ - image_format.c\ - io_stream.h \ - io_stream.c \ - jdatatype.h \ - jpgenc.h \ - jpgenc.c \ - lavc_common.h \ - lavc_common.c \ - matroska.h \ - matroska.c \ - marker.c \ - menubar.h \ - menubar.c \ - ms_time.h \ - ms_time.c \ - options.h \ - options.c \ - osd.h \ - osd.c \ - picture.h \ - picture.c \ - profile.h \ - profile.c \ - port_audio.h \ - port_audio.c \ - pulse_audio.h \ - pulse_audio.c \ - quant.c \ - readYUV.c \ - sound.h \ - sound.c \ - snd_devices.h \ - snd_devices.c \ - string_utils.h \ - string_utils.c \ - timers.h \ - timers.c \ - utils.h \ - utils.c \ - uvc_h264.h \ - uvc_h264.c \ - v4l2_controls.h \ - v4l2_controls.c \ - v4l2_devices.h \ - v4l2_devices.c \ - v4l2_dyna_ctrls.h \ - v4l2_dyna_ctrls.c \ - v4l2_formats.h \ - v4l2_formats.c \ - v4l2uvc.h \ - v4l2uvc.c \ - vcodecs.h \ - vcodecs.c \ - video.h \ - video.c \ - video_filters.h \ - video_filters.c \ - video_format.h \ - video_format.c \ - video_tab.h \ - video_tab.c - -guvcview_CFLAGS = -DPACKAGE_LOCALE_DIR=\""$(prefix)/$(DATADIRNAME)/locale"\" \ - -DPACKAGE_SRC_DIR=\""$(srcdir)"\" \ - -DPACKAGE_DATA_DIR=\""$(datadir)"\" \ - $(DEPS_CFLAGS) \ - $(EXTRA_CFLAGS) \ - $(PTHREAD_CFLAGS) \ - -D_REENTRANT \ - -D_FILE_OFFSET_BITS=64 \ - -Wall - -guvcview_LDFLAGS = $(LIBINTL) -guvcview_LDADD = $(DEPS_LIBS) $(EXTRA_LIBS) $(PTHREAD_LIBS) -all: all-am - -.SUFFIXES: -.SUFFIXES: .c .o .obj -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ - && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnu src/Makefile -.PRECIOUS: Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(am__aclocal_m4_deps): -install-binPROGRAMS: $(bin_PROGRAMS) - @$(NORMAL_INSTALL) - @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ - if test -n "$$list"; then \ - echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \ - fi; \ - for p in $$list; do echo "$$p $$p"; done | \ - sed 's/$(EXEEXT)$$//' | \ - while read p p1; do if test -f $$p \ - ; then echo "$$p"; echo "$$p"; else :; fi; \ - done | \ - sed -e 'p;s,.*/,,;n;h' \ - -e 's|.*|.|' \ - -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ - sed 'N;N;N;s,\n, ,g' | \ - $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ - { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ - if ($$2 == $$4) files[d] = files[d] " " $$1; \ - else { print "f", $$3 "/" $$4, $$1; } } \ - END { for (d in files) print "f", d, files[d] }' | \ - while read type dir files; do \ - if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ - test -z "$$files" || { \ - echo " $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \ - $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ - } \ - ; done - -uninstall-binPROGRAMS: - @$(NORMAL_UNINSTALL) - @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ - files=`for p in $$list; do echo "$$p"; done | \ - sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ - -e 's/$$/$(EXEEXT)/' \ - `; \ - test -n "$$list" || exit 0; \ - echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ - cd "$(DESTDIR)$(bindir)" && rm -f $$files - -clean-binPROGRAMS: - -test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS) - -guvcview$(EXEEXT): $(guvcview_OBJECTS) $(guvcview_DEPENDENCIES) $(EXTRA_guvcview_DEPENDENCIES) - @rm -f guvcview$(EXEEXT) - $(AM_V_CCLD)$(guvcview_LINK) $(guvcview_OBJECTS) $(guvcview_LDADD) $(LIBS) - -mostlyclean-compile: - -rm -f *.$(OBJEXT) - -distclean-compile: - -rm -f *.tab.c - -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/guvcview-acodecs.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/guvcview-audio_effects.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/guvcview-audio_tab.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/guvcview-autofocus.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/guvcview-avilib.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/guvcview-callbacks.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/guvcview-close.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/guvcview-colorspaces.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/guvcview-create_image.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/guvcview-create_video.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/guvcview-dct.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/guvcview-file_io.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/guvcview-globals.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/guvcview-guvcview.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/guvcview-huffman.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/guvcview-image_format.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/guvcview-img_controls.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/guvcview-io_stream.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/guvcview-jpgenc.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/guvcview-lavc_common.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/guvcview-marker.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/guvcview-matroska.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/guvcview-menubar.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/guvcview-ms_time.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/guvcview-options.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/guvcview-osd.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/guvcview-picture.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/guvcview-port_audio.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/guvcview-profile.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/guvcview-pulse_audio.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/guvcview-quant.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/guvcview-readYUV.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/guvcview-snd_devices.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/guvcview-sound.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/guvcview-string_utils.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/guvcview-timers.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/guvcview-utils.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/guvcview-uvc_h264.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/guvcview-v4l2_controls.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/guvcview-v4l2_devices.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/guvcview-v4l2_dyna_ctrls.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/guvcview-v4l2_formats.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/guvcview-v4l2uvc.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/guvcview-vcodecs.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/guvcview-video.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/guvcview-video_filters.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/guvcview-video_format.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/guvcview-video_tab.Po@am__quote@ - -.c.o: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $< - -.c.obj: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` - -guvcview-audio_effects.o: audio_effects.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -MT guvcview-audio_effects.o -MD -MP -MF $(DEPDIR)/guvcview-audio_effects.Tpo -c -o guvcview-audio_effects.o `test -f 'audio_effects.c' || echo '$(srcdir)/'`audio_effects.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/guvcview-audio_effects.Tpo $(DEPDIR)/guvcview-audio_effects.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='audio_effects.c' object='guvcview-audio_effects.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -c -o guvcview-audio_effects.o `test -f 'audio_effects.c' || echo '$(srcdir)/'`audio_effects.c - -guvcview-audio_effects.obj: audio_effects.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -MT guvcview-audio_effects.obj -MD -MP -MF $(DEPDIR)/guvcview-audio_effects.Tpo -c -o guvcview-audio_effects.obj `if test -f 'audio_effects.c'; then $(CYGPATH_W) 'audio_effects.c'; else $(CYGPATH_W) '$(srcdir)/audio_effects.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/guvcview-audio_effects.Tpo $(DEPDIR)/guvcview-audio_effects.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='audio_effects.c' object='guvcview-audio_effects.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -c -o guvcview-audio_effects.obj `if test -f 'audio_effects.c'; then $(CYGPATH_W) 'audio_effects.c'; else $(CYGPATH_W) '$(srcdir)/audio_effects.c'; fi` - -guvcview-audio_tab.o: audio_tab.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -MT guvcview-audio_tab.o -MD -MP -MF $(DEPDIR)/guvcview-audio_tab.Tpo -c -o guvcview-audio_tab.o `test -f 'audio_tab.c' || echo '$(srcdir)/'`audio_tab.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/guvcview-audio_tab.Tpo $(DEPDIR)/guvcview-audio_tab.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='audio_tab.c' object='guvcview-audio_tab.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -c -o guvcview-audio_tab.o `test -f 'audio_tab.c' || echo '$(srcdir)/'`audio_tab.c - -guvcview-audio_tab.obj: audio_tab.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -MT guvcview-audio_tab.obj -MD -MP -MF $(DEPDIR)/guvcview-audio_tab.Tpo -c -o guvcview-audio_tab.obj `if test -f 'audio_tab.c'; then $(CYGPATH_W) 'audio_tab.c'; else $(CYGPATH_W) '$(srcdir)/audio_tab.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/guvcview-audio_tab.Tpo $(DEPDIR)/guvcview-audio_tab.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='audio_tab.c' object='guvcview-audio_tab.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -c -o guvcview-audio_tab.obj `if test -f 'audio_tab.c'; then $(CYGPATH_W) 'audio_tab.c'; else $(CYGPATH_W) '$(srcdir)/audio_tab.c'; fi` - -guvcview-autofocus.o: autofocus.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -MT guvcview-autofocus.o -MD -MP -MF $(DEPDIR)/guvcview-autofocus.Tpo -c -o guvcview-autofocus.o `test -f 'autofocus.c' || echo '$(srcdir)/'`autofocus.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/guvcview-autofocus.Tpo $(DEPDIR)/guvcview-autofocus.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='autofocus.c' object='guvcview-autofocus.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -c -o guvcview-autofocus.o `test -f 'autofocus.c' || echo '$(srcdir)/'`autofocus.c - -guvcview-autofocus.obj: autofocus.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -MT guvcview-autofocus.obj -MD -MP -MF $(DEPDIR)/guvcview-autofocus.Tpo -c -o guvcview-autofocus.obj `if test -f 'autofocus.c'; then $(CYGPATH_W) 'autofocus.c'; else $(CYGPATH_W) '$(srcdir)/autofocus.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/guvcview-autofocus.Tpo $(DEPDIR)/guvcview-autofocus.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='autofocus.c' object='guvcview-autofocus.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -c -o guvcview-autofocus.obj `if test -f 'autofocus.c'; then $(CYGPATH_W) 'autofocus.c'; else $(CYGPATH_W) '$(srcdir)/autofocus.c'; fi` - -guvcview-acodecs.o: acodecs.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -MT guvcview-acodecs.o -MD -MP -MF $(DEPDIR)/guvcview-acodecs.Tpo -c -o guvcview-acodecs.o `test -f 'acodecs.c' || echo '$(srcdir)/'`acodecs.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/guvcview-acodecs.Tpo $(DEPDIR)/guvcview-acodecs.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='acodecs.c' object='guvcview-acodecs.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -c -o guvcview-acodecs.o `test -f 'acodecs.c' || echo '$(srcdir)/'`acodecs.c - -guvcview-acodecs.obj: acodecs.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -MT guvcview-acodecs.obj -MD -MP -MF $(DEPDIR)/guvcview-acodecs.Tpo -c -o guvcview-acodecs.obj `if test -f 'acodecs.c'; then $(CYGPATH_W) 'acodecs.c'; else $(CYGPATH_W) '$(srcdir)/acodecs.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/guvcview-acodecs.Tpo $(DEPDIR)/guvcview-acodecs.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='acodecs.c' object='guvcview-acodecs.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -c -o guvcview-acodecs.obj `if test -f 'acodecs.c'; then $(CYGPATH_W) 'acodecs.c'; else $(CYGPATH_W) '$(srcdir)/acodecs.c'; fi` - -guvcview-avilib.o: avilib.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -MT guvcview-avilib.o -MD -MP -MF $(DEPDIR)/guvcview-avilib.Tpo -c -o guvcview-avilib.o `test -f 'avilib.c' || echo '$(srcdir)/'`avilib.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/guvcview-avilib.Tpo $(DEPDIR)/guvcview-avilib.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='avilib.c' object='guvcview-avilib.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -c -o guvcview-avilib.o `test -f 'avilib.c' || echo '$(srcdir)/'`avilib.c - -guvcview-avilib.obj: avilib.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -MT guvcview-avilib.obj -MD -MP -MF $(DEPDIR)/guvcview-avilib.Tpo -c -o guvcview-avilib.obj `if test -f 'avilib.c'; then $(CYGPATH_W) 'avilib.c'; else $(CYGPATH_W) '$(srcdir)/avilib.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/guvcview-avilib.Tpo $(DEPDIR)/guvcview-avilib.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='avilib.c' object='guvcview-avilib.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -c -o guvcview-avilib.obj `if test -f 'avilib.c'; then $(CYGPATH_W) 'avilib.c'; else $(CYGPATH_W) '$(srcdir)/avilib.c'; fi` - -guvcview-callbacks.o: callbacks.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -MT guvcview-callbacks.o -MD -MP -MF $(DEPDIR)/guvcview-callbacks.Tpo -c -o guvcview-callbacks.o `test -f 'callbacks.c' || echo '$(srcdir)/'`callbacks.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/guvcview-callbacks.Tpo $(DEPDIR)/guvcview-callbacks.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='callbacks.c' object='guvcview-callbacks.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -c -o guvcview-callbacks.o `test -f 'callbacks.c' || echo '$(srcdir)/'`callbacks.c - -guvcview-callbacks.obj: callbacks.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -MT guvcview-callbacks.obj -MD -MP -MF $(DEPDIR)/guvcview-callbacks.Tpo -c -o guvcview-callbacks.obj `if test -f 'callbacks.c'; then $(CYGPATH_W) 'callbacks.c'; else $(CYGPATH_W) '$(srcdir)/callbacks.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/guvcview-callbacks.Tpo $(DEPDIR)/guvcview-callbacks.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='callbacks.c' object='guvcview-callbacks.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -c -o guvcview-callbacks.obj `if test -f 'callbacks.c'; then $(CYGPATH_W) 'callbacks.c'; else $(CYGPATH_W) '$(srcdir)/callbacks.c'; fi` - -guvcview-close.o: close.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -MT guvcview-close.o -MD -MP -MF $(DEPDIR)/guvcview-close.Tpo -c -o guvcview-close.o `test -f 'close.c' || echo '$(srcdir)/'`close.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/guvcview-close.Tpo $(DEPDIR)/guvcview-close.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='close.c' object='guvcview-close.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -c -o guvcview-close.o `test -f 'close.c' || echo '$(srcdir)/'`close.c - -guvcview-close.obj: close.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -MT guvcview-close.obj -MD -MP -MF $(DEPDIR)/guvcview-close.Tpo -c -o guvcview-close.obj `if test -f 'close.c'; then $(CYGPATH_W) 'close.c'; else $(CYGPATH_W) '$(srcdir)/close.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/guvcview-close.Tpo $(DEPDIR)/guvcview-close.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='close.c' object='guvcview-close.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -c -o guvcview-close.obj `if test -f 'close.c'; then $(CYGPATH_W) 'close.c'; else $(CYGPATH_W) '$(srcdir)/close.c'; fi` - -guvcview-colorspaces.o: colorspaces.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -MT guvcview-colorspaces.o -MD -MP -MF $(DEPDIR)/guvcview-colorspaces.Tpo -c -o guvcview-colorspaces.o `test -f 'colorspaces.c' || echo '$(srcdir)/'`colorspaces.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/guvcview-colorspaces.Tpo $(DEPDIR)/guvcview-colorspaces.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='colorspaces.c' object='guvcview-colorspaces.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -c -o guvcview-colorspaces.o `test -f 'colorspaces.c' || echo '$(srcdir)/'`colorspaces.c - -guvcview-colorspaces.obj: colorspaces.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -MT guvcview-colorspaces.obj -MD -MP -MF $(DEPDIR)/guvcview-colorspaces.Tpo -c -o guvcview-colorspaces.obj `if test -f 'colorspaces.c'; then $(CYGPATH_W) 'colorspaces.c'; else $(CYGPATH_W) '$(srcdir)/colorspaces.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/guvcview-colorspaces.Tpo $(DEPDIR)/guvcview-colorspaces.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='colorspaces.c' object='guvcview-colorspaces.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -c -o guvcview-colorspaces.obj `if test -f 'colorspaces.c'; then $(CYGPATH_W) 'colorspaces.c'; else $(CYGPATH_W) '$(srcdir)/colorspaces.c'; fi` - -guvcview-create_video.o: create_video.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -MT guvcview-create_video.o -MD -MP -MF $(DEPDIR)/guvcview-create_video.Tpo -c -o guvcview-create_video.o `test -f 'create_video.c' || echo '$(srcdir)/'`create_video.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/guvcview-create_video.Tpo $(DEPDIR)/guvcview-create_video.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='create_video.c' object='guvcview-create_video.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -c -o guvcview-create_video.o `test -f 'create_video.c' || echo '$(srcdir)/'`create_video.c - -guvcview-create_video.obj: create_video.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -MT guvcview-create_video.obj -MD -MP -MF $(DEPDIR)/guvcview-create_video.Tpo -c -o guvcview-create_video.obj `if test -f 'create_video.c'; then $(CYGPATH_W) 'create_video.c'; else $(CYGPATH_W) '$(srcdir)/create_video.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/guvcview-create_video.Tpo $(DEPDIR)/guvcview-create_video.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='create_video.c' object='guvcview-create_video.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -c -o guvcview-create_video.obj `if test -f 'create_video.c'; then $(CYGPATH_W) 'create_video.c'; else $(CYGPATH_W) '$(srcdir)/create_video.c'; fi` - -guvcview-create_image.o: create_image.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -MT guvcview-create_image.o -MD -MP -MF $(DEPDIR)/guvcview-create_image.Tpo -c -o guvcview-create_image.o `test -f 'create_image.c' || echo '$(srcdir)/'`create_image.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/guvcview-create_image.Tpo $(DEPDIR)/guvcview-create_image.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='create_image.c' object='guvcview-create_image.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -c -o guvcview-create_image.o `test -f 'create_image.c' || echo '$(srcdir)/'`create_image.c - -guvcview-create_image.obj: create_image.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -MT guvcview-create_image.obj -MD -MP -MF $(DEPDIR)/guvcview-create_image.Tpo -c -o guvcview-create_image.obj `if test -f 'create_image.c'; then $(CYGPATH_W) 'create_image.c'; else $(CYGPATH_W) '$(srcdir)/create_image.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/guvcview-create_image.Tpo $(DEPDIR)/guvcview-create_image.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='create_image.c' object='guvcview-create_image.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -c -o guvcview-create_image.obj `if test -f 'create_image.c'; then $(CYGPATH_W) 'create_image.c'; else $(CYGPATH_W) '$(srcdir)/create_image.c'; fi` - -guvcview-dct.o: dct.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -MT guvcview-dct.o -MD -MP -MF $(DEPDIR)/guvcview-dct.Tpo -c -o guvcview-dct.o `test -f 'dct.c' || echo '$(srcdir)/'`dct.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/guvcview-dct.Tpo $(DEPDIR)/guvcview-dct.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='dct.c' object='guvcview-dct.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -c -o guvcview-dct.o `test -f 'dct.c' || echo '$(srcdir)/'`dct.c - -guvcview-dct.obj: dct.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -MT guvcview-dct.obj -MD -MP -MF $(DEPDIR)/guvcview-dct.Tpo -c -o guvcview-dct.obj `if test -f 'dct.c'; then $(CYGPATH_W) 'dct.c'; else $(CYGPATH_W) '$(srcdir)/dct.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/guvcview-dct.Tpo $(DEPDIR)/guvcview-dct.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='dct.c' object='guvcview-dct.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -c -o guvcview-dct.obj `if test -f 'dct.c'; then $(CYGPATH_W) 'dct.c'; else $(CYGPATH_W) '$(srcdir)/dct.c'; fi` - -guvcview-file_io.o: file_io.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -MT guvcview-file_io.o -MD -MP -MF $(DEPDIR)/guvcview-file_io.Tpo -c -o guvcview-file_io.o `test -f 'file_io.c' || echo '$(srcdir)/'`file_io.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/guvcview-file_io.Tpo $(DEPDIR)/guvcview-file_io.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='file_io.c' object='guvcview-file_io.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -c -o guvcview-file_io.o `test -f 'file_io.c' || echo '$(srcdir)/'`file_io.c - -guvcview-file_io.obj: file_io.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -MT guvcview-file_io.obj -MD -MP -MF $(DEPDIR)/guvcview-file_io.Tpo -c -o guvcview-file_io.obj `if test -f 'file_io.c'; then $(CYGPATH_W) 'file_io.c'; else $(CYGPATH_W) '$(srcdir)/file_io.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/guvcview-file_io.Tpo $(DEPDIR)/guvcview-file_io.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='file_io.c' object='guvcview-file_io.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -c -o guvcview-file_io.obj `if test -f 'file_io.c'; then $(CYGPATH_W) 'file_io.c'; else $(CYGPATH_W) '$(srcdir)/file_io.c'; fi` - -guvcview-globals.o: globals.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -MT guvcview-globals.o -MD -MP -MF $(DEPDIR)/guvcview-globals.Tpo -c -o guvcview-globals.o `test -f 'globals.c' || echo '$(srcdir)/'`globals.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/guvcview-globals.Tpo $(DEPDIR)/guvcview-globals.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='globals.c' object='guvcview-globals.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -c -o guvcview-globals.o `test -f 'globals.c' || echo '$(srcdir)/'`globals.c - -guvcview-globals.obj: globals.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -MT guvcview-globals.obj -MD -MP -MF $(DEPDIR)/guvcview-globals.Tpo -c -o guvcview-globals.obj `if test -f 'globals.c'; then $(CYGPATH_W) 'globals.c'; else $(CYGPATH_W) '$(srcdir)/globals.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/guvcview-globals.Tpo $(DEPDIR)/guvcview-globals.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='globals.c' object='guvcview-globals.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -c -o guvcview-globals.obj `if test -f 'globals.c'; then $(CYGPATH_W) 'globals.c'; else $(CYGPATH_W) '$(srcdir)/globals.c'; fi` - -guvcview-guvcview.o: guvcview.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -MT guvcview-guvcview.o -MD -MP -MF $(DEPDIR)/guvcview-guvcview.Tpo -c -o guvcview-guvcview.o `test -f 'guvcview.c' || echo '$(srcdir)/'`guvcview.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/guvcview-guvcview.Tpo $(DEPDIR)/guvcview-guvcview.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='guvcview.c' object='guvcview-guvcview.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -c -o guvcview-guvcview.o `test -f 'guvcview.c' || echo '$(srcdir)/'`guvcview.c - -guvcview-guvcview.obj: guvcview.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -MT guvcview-guvcview.obj -MD -MP -MF $(DEPDIR)/guvcview-guvcview.Tpo -c -o guvcview-guvcview.obj `if test -f 'guvcview.c'; then $(CYGPATH_W) 'guvcview.c'; else $(CYGPATH_W) '$(srcdir)/guvcview.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/guvcview-guvcview.Tpo $(DEPDIR)/guvcview-guvcview.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='guvcview.c' object='guvcview-guvcview.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -c -o guvcview-guvcview.obj `if test -f 'guvcview.c'; then $(CYGPATH_W) 'guvcview.c'; else $(CYGPATH_W) '$(srcdir)/guvcview.c'; fi` - -guvcview-huffman.o: huffman.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -MT guvcview-huffman.o -MD -MP -MF $(DEPDIR)/guvcview-huffman.Tpo -c -o guvcview-huffman.o `test -f 'huffman.c' || echo '$(srcdir)/'`huffman.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/guvcview-huffman.Tpo $(DEPDIR)/guvcview-huffman.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='huffman.c' object='guvcview-huffman.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -c -o guvcview-huffman.o `test -f 'huffman.c' || echo '$(srcdir)/'`huffman.c - -guvcview-huffman.obj: huffman.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -MT guvcview-huffman.obj -MD -MP -MF $(DEPDIR)/guvcview-huffman.Tpo -c -o guvcview-huffman.obj `if test -f 'huffman.c'; then $(CYGPATH_W) 'huffman.c'; else $(CYGPATH_W) '$(srcdir)/huffman.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/guvcview-huffman.Tpo $(DEPDIR)/guvcview-huffman.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='huffman.c' object='guvcview-huffman.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -c -o guvcview-huffman.obj `if test -f 'huffman.c'; then $(CYGPATH_W) 'huffman.c'; else $(CYGPATH_W) '$(srcdir)/huffman.c'; fi` - -guvcview-img_controls.o: img_controls.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -MT guvcview-img_controls.o -MD -MP -MF $(DEPDIR)/guvcview-img_controls.Tpo -c -o guvcview-img_controls.o `test -f 'img_controls.c' || echo '$(srcdir)/'`img_controls.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/guvcview-img_controls.Tpo $(DEPDIR)/guvcview-img_controls.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='img_controls.c' object='guvcview-img_controls.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -c -o guvcview-img_controls.o `test -f 'img_controls.c' || echo '$(srcdir)/'`img_controls.c - -guvcview-img_controls.obj: img_controls.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -MT guvcview-img_controls.obj -MD -MP -MF $(DEPDIR)/guvcview-img_controls.Tpo -c -o guvcview-img_controls.obj `if test -f 'img_controls.c'; then $(CYGPATH_W) 'img_controls.c'; else $(CYGPATH_W) '$(srcdir)/img_controls.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/guvcview-img_controls.Tpo $(DEPDIR)/guvcview-img_controls.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='img_controls.c' object='guvcview-img_controls.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -c -o guvcview-img_controls.obj `if test -f 'img_controls.c'; then $(CYGPATH_W) 'img_controls.c'; else $(CYGPATH_W) '$(srcdir)/img_controls.c'; fi` - -guvcview-image_format.o: image_format.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -MT guvcview-image_format.o -MD -MP -MF $(DEPDIR)/guvcview-image_format.Tpo -c -o guvcview-image_format.o `test -f 'image_format.c' || echo '$(srcdir)/'`image_format.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/guvcview-image_format.Tpo $(DEPDIR)/guvcview-image_format.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='image_format.c' object='guvcview-image_format.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -c -o guvcview-image_format.o `test -f 'image_format.c' || echo '$(srcdir)/'`image_format.c - -guvcview-image_format.obj: image_format.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -MT guvcview-image_format.obj -MD -MP -MF $(DEPDIR)/guvcview-image_format.Tpo -c -o guvcview-image_format.obj `if test -f 'image_format.c'; then $(CYGPATH_W) 'image_format.c'; else $(CYGPATH_W) '$(srcdir)/image_format.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/guvcview-image_format.Tpo $(DEPDIR)/guvcview-image_format.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='image_format.c' object='guvcview-image_format.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -c -o guvcview-image_format.obj `if test -f 'image_format.c'; then $(CYGPATH_W) 'image_format.c'; else $(CYGPATH_W) '$(srcdir)/image_format.c'; fi` - -guvcview-io_stream.o: io_stream.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -MT guvcview-io_stream.o -MD -MP -MF $(DEPDIR)/guvcview-io_stream.Tpo -c -o guvcview-io_stream.o `test -f 'io_stream.c' || echo '$(srcdir)/'`io_stream.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/guvcview-io_stream.Tpo $(DEPDIR)/guvcview-io_stream.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='io_stream.c' object='guvcview-io_stream.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -c -o guvcview-io_stream.o `test -f 'io_stream.c' || echo '$(srcdir)/'`io_stream.c - -guvcview-io_stream.obj: io_stream.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -MT guvcview-io_stream.obj -MD -MP -MF $(DEPDIR)/guvcview-io_stream.Tpo -c -o guvcview-io_stream.obj `if test -f 'io_stream.c'; then $(CYGPATH_W) 'io_stream.c'; else $(CYGPATH_W) '$(srcdir)/io_stream.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/guvcview-io_stream.Tpo $(DEPDIR)/guvcview-io_stream.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='io_stream.c' object='guvcview-io_stream.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -c -o guvcview-io_stream.obj `if test -f 'io_stream.c'; then $(CYGPATH_W) 'io_stream.c'; else $(CYGPATH_W) '$(srcdir)/io_stream.c'; fi` - -guvcview-jpgenc.o: jpgenc.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -MT guvcview-jpgenc.o -MD -MP -MF $(DEPDIR)/guvcview-jpgenc.Tpo -c -o guvcview-jpgenc.o `test -f 'jpgenc.c' || echo '$(srcdir)/'`jpgenc.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/guvcview-jpgenc.Tpo $(DEPDIR)/guvcview-jpgenc.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='jpgenc.c' object='guvcview-jpgenc.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -c -o guvcview-jpgenc.o `test -f 'jpgenc.c' || echo '$(srcdir)/'`jpgenc.c - -guvcview-jpgenc.obj: jpgenc.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -MT guvcview-jpgenc.obj -MD -MP -MF $(DEPDIR)/guvcview-jpgenc.Tpo -c -o guvcview-jpgenc.obj `if test -f 'jpgenc.c'; then $(CYGPATH_W) 'jpgenc.c'; else $(CYGPATH_W) '$(srcdir)/jpgenc.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/guvcview-jpgenc.Tpo $(DEPDIR)/guvcview-jpgenc.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='jpgenc.c' object='guvcview-jpgenc.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -c -o guvcview-jpgenc.obj `if test -f 'jpgenc.c'; then $(CYGPATH_W) 'jpgenc.c'; else $(CYGPATH_W) '$(srcdir)/jpgenc.c'; fi` - -guvcview-lavc_common.o: lavc_common.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -MT guvcview-lavc_common.o -MD -MP -MF $(DEPDIR)/guvcview-lavc_common.Tpo -c -o guvcview-lavc_common.o `test -f 'lavc_common.c' || echo '$(srcdir)/'`lavc_common.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/guvcview-lavc_common.Tpo $(DEPDIR)/guvcview-lavc_common.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='lavc_common.c' object='guvcview-lavc_common.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -c -o guvcview-lavc_common.o `test -f 'lavc_common.c' || echo '$(srcdir)/'`lavc_common.c - -guvcview-lavc_common.obj: lavc_common.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -MT guvcview-lavc_common.obj -MD -MP -MF $(DEPDIR)/guvcview-lavc_common.Tpo -c -o guvcview-lavc_common.obj `if test -f 'lavc_common.c'; then $(CYGPATH_W) 'lavc_common.c'; else $(CYGPATH_W) '$(srcdir)/lavc_common.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/guvcview-lavc_common.Tpo $(DEPDIR)/guvcview-lavc_common.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='lavc_common.c' object='guvcview-lavc_common.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -c -o guvcview-lavc_common.obj `if test -f 'lavc_common.c'; then $(CYGPATH_W) 'lavc_common.c'; else $(CYGPATH_W) '$(srcdir)/lavc_common.c'; fi` - -guvcview-matroska.o: matroska.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -MT guvcview-matroska.o -MD -MP -MF $(DEPDIR)/guvcview-matroska.Tpo -c -o guvcview-matroska.o `test -f 'matroska.c' || echo '$(srcdir)/'`matroska.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/guvcview-matroska.Tpo $(DEPDIR)/guvcview-matroska.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='matroska.c' object='guvcview-matroska.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -c -o guvcview-matroska.o `test -f 'matroska.c' || echo '$(srcdir)/'`matroska.c - -guvcview-matroska.obj: matroska.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -MT guvcview-matroska.obj -MD -MP -MF $(DEPDIR)/guvcview-matroska.Tpo -c -o guvcview-matroska.obj `if test -f 'matroska.c'; then $(CYGPATH_W) 'matroska.c'; else $(CYGPATH_W) '$(srcdir)/matroska.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/guvcview-matroska.Tpo $(DEPDIR)/guvcview-matroska.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='matroska.c' object='guvcview-matroska.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -c -o guvcview-matroska.obj `if test -f 'matroska.c'; then $(CYGPATH_W) 'matroska.c'; else $(CYGPATH_W) '$(srcdir)/matroska.c'; fi` - -guvcview-marker.o: marker.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -MT guvcview-marker.o -MD -MP -MF $(DEPDIR)/guvcview-marker.Tpo -c -o guvcview-marker.o `test -f 'marker.c' || echo '$(srcdir)/'`marker.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/guvcview-marker.Tpo $(DEPDIR)/guvcview-marker.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='marker.c' object='guvcview-marker.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -c -o guvcview-marker.o `test -f 'marker.c' || echo '$(srcdir)/'`marker.c - -guvcview-marker.obj: marker.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -MT guvcview-marker.obj -MD -MP -MF $(DEPDIR)/guvcview-marker.Tpo -c -o guvcview-marker.obj `if test -f 'marker.c'; then $(CYGPATH_W) 'marker.c'; else $(CYGPATH_W) '$(srcdir)/marker.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/guvcview-marker.Tpo $(DEPDIR)/guvcview-marker.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='marker.c' object='guvcview-marker.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -c -o guvcview-marker.obj `if test -f 'marker.c'; then $(CYGPATH_W) 'marker.c'; else $(CYGPATH_W) '$(srcdir)/marker.c'; fi` - -guvcview-menubar.o: menubar.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -MT guvcview-menubar.o -MD -MP -MF $(DEPDIR)/guvcview-menubar.Tpo -c -o guvcview-menubar.o `test -f 'menubar.c' || echo '$(srcdir)/'`menubar.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/guvcview-menubar.Tpo $(DEPDIR)/guvcview-menubar.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='menubar.c' object='guvcview-menubar.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -c -o guvcview-menubar.o `test -f 'menubar.c' || echo '$(srcdir)/'`menubar.c - -guvcview-menubar.obj: menubar.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -MT guvcview-menubar.obj -MD -MP -MF $(DEPDIR)/guvcview-menubar.Tpo -c -o guvcview-menubar.obj `if test -f 'menubar.c'; then $(CYGPATH_W) 'menubar.c'; else $(CYGPATH_W) '$(srcdir)/menubar.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/guvcview-menubar.Tpo $(DEPDIR)/guvcview-menubar.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='menubar.c' object='guvcview-menubar.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -c -o guvcview-menubar.obj `if test -f 'menubar.c'; then $(CYGPATH_W) 'menubar.c'; else $(CYGPATH_W) '$(srcdir)/menubar.c'; fi` - -guvcview-ms_time.o: ms_time.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -MT guvcview-ms_time.o -MD -MP -MF $(DEPDIR)/guvcview-ms_time.Tpo -c -o guvcview-ms_time.o `test -f 'ms_time.c' || echo '$(srcdir)/'`ms_time.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/guvcview-ms_time.Tpo $(DEPDIR)/guvcview-ms_time.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ms_time.c' object='guvcview-ms_time.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -c -o guvcview-ms_time.o `test -f 'ms_time.c' || echo '$(srcdir)/'`ms_time.c - -guvcview-ms_time.obj: ms_time.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -MT guvcview-ms_time.obj -MD -MP -MF $(DEPDIR)/guvcview-ms_time.Tpo -c -o guvcview-ms_time.obj `if test -f 'ms_time.c'; then $(CYGPATH_W) 'ms_time.c'; else $(CYGPATH_W) '$(srcdir)/ms_time.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/guvcview-ms_time.Tpo $(DEPDIR)/guvcview-ms_time.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ms_time.c' object='guvcview-ms_time.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -c -o guvcview-ms_time.obj `if test -f 'ms_time.c'; then $(CYGPATH_W) 'ms_time.c'; else $(CYGPATH_W) '$(srcdir)/ms_time.c'; fi` - -guvcview-options.o: options.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -MT guvcview-options.o -MD -MP -MF $(DEPDIR)/guvcview-options.Tpo -c -o guvcview-options.o `test -f 'options.c' || echo '$(srcdir)/'`options.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/guvcview-options.Tpo $(DEPDIR)/guvcview-options.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='options.c' object='guvcview-options.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -c -o guvcview-options.o `test -f 'options.c' || echo '$(srcdir)/'`options.c - -guvcview-options.obj: options.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -MT guvcview-options.obj -MD -MP -MF $(DEPDIR)/guvcview-options.Tpo -c -o guvcview-options.obj `if test -f 'options.c'; then $(CYGPATH_W) 'options.c'; else $(CYGPATH_W) '$(srcdir)/options.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/guvcview-options.Tpo $(DEPDIR)/guvcview-options.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='options.c' object='guvcview-options.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -c -o guvcview-options.obj `if test -f 'options.c'; then $(CYGPATH_W) 'options.c'; else $(CYGPATH_W) '$(srcdir)/options.c'; fi` - -guvcview-osd.o: osd.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -MT guvcview-osd.o -MD -MP -MF $(DEPDIR)/guvcview-osd.Tpo -c -o guvcview-osd.o `test -f 'osd.c' || echo '$(srcdir)/'`osd.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/guvcview-osd.Tpo $(DEPDIR)/guvcview-osd.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='osd.c' object='guvcview-osd.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -c -o guvcview-osd.o `test -f 'osd.c' || echo '$(srcdir)/'`osd.c - -guvcview-osd.obj: osd.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -MT guvcview-osd.obj -MD -MP -MF $(DEPDIR)/guvcview-osd.Tpo -c -o guvcview-osd.obj `if test -f 'osd.c'; then $(CYGPATH_W) 'osd.c'; else $(CYGPATH_W) '$(srcdir)/osd.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/guvcview-osd.Tpo $(DEPDIR)/guvcview-osd.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='osd.c' object='guvcview-osd.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -c -o guvcview-osd.obj `if test -f 'osd.c'; then $(CYGPATH_W) 'osd.c'; else $(CYGPATH_W) '$(srcdir)/osd.c'; fi` - -guvcview-picture.o: picture.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -MT guvcview-picture.o -MD -MP -MF $(DEPDIR)/guvcview-picture.Tpo -c -o guvcview-picture.o `test -f 'picture.c' || echo '$(srcdir)/'`picture.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/guvcview-picture.Tpo $(DEPDIR)/guvcview-picture.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='picture.c' object='guvcview-picture.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -c -o guvcview-picture.o `test -f 'picture.c' || echo '$(srcdir)/'`picture.c - -guvcview-picture.obj: picture.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -MT guvcview-picture.obj -MD -MP -MF $(DEPDIR)/guvcview-picture.Tpo -c -o guvcview-picture.obj `if test -f 'picture.c'; then $(CYGPATH_W) 'picture.c'; else $(CYGPATH_W) '$(srcdir)/picture.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/guvcview-picture.Tpo $(DEPDIR)/guvcview-picture.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='picture.c' object='guvcview-picture.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -c -o guvcview-picture.obj `if test -f 'picture.c'; then $(CYGPATH_W) 'picture.c'; else $(CYGPATH_W) '$(srcdir)/picture.c'; fi` - -guvcview-profile.o: profile.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -MT guvcview-profile.o -MD -MP -MF $(DEPDIR)/guvcview-profile.Tpo -c -o guvcview-profile.o `test -f 'profile.c' || echo '$(srcdir)/'`profile.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/guvcview-profile.Tpo $(DEPDIR)/guvcview-profile.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='profile.c' object='guvcview-profile.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -c -o guvcview-profile.o `test -f 'profile.c' || echo '$(srcdir)/'`profile.c - -guvcview-profile.obj: profile.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -MT guvcview-profile.obj -MD -MP -MF $(DEPDIR)/guvcview-profile.Tpo -c -o guvcview-profile.obj `if test -f 'profile.c'; then $(CYGPATH_W) 'profile.c'; else $(CYGPATH_W) '$(srcdir)/profile.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/guvcview-profile.Tpo $(DEPDIR)/guvcview-profile.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='profile.c' object='guvcview-profile.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -c -o guvcview-profile.obj `if test -f 'profile.c'; then $(CYGPATH_W) 'profile.c'; else $(CYGPATH_W) '$(srcdir)/profile.c'; fi` - -guvcview-port_audio.o: port_audio.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -MT guvcview-port_audio.o -MD -MP -MF $(DEPDIR)/guvcview-port_audio.Tpo -c -o guvcview-port_audio.o `test -f 'port_audio.c' || echo '$(srcdir)/'`port_audio.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/guvcview-port_audio.Tpo $(DEPDIR)/guvcview-port_audio.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='port_audio.c' object='guvcview-port_audio.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -c -o guvcview-port_audio.o `test -f 'port_audio.c' || echo '$(srcdir)/'`port_audio.c - -guvcview-port_audio.obj: port_audio.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -MT guvcview-port_audio.obj -MD -MP -MF $(DEPDIR)/guvcview-port_audio.Tpo -c -o guvcview-port_audio.obj `if test -f 'port_audio.c'; then $(CYGPATH_W) 'port_audio.c'; else $(CYGPATH_W) '$(srcdir)/port_audio.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/guvcview-port_audio.Tpo $(DEPDIR)/guvcview-port_audio.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='port_audio.c' object='guvcview-port_audio.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -c -o guvcview-port_audio.obj `if test -f 'port_audio.c'; then $(CYGPATH_W) 'port_audio.c'; else $(CYGPATH_W) '$(srcdir)/port_audio.c'; fi` - -guvcview-pulse_audio.o: pulse_audio.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -MT guvcview-pulse_audio.o -MD -MP -MF $(DEPDIR)/guvcview-pulse_audio.Tpo -c -o guvcview-pulse_audio.o `test -f 'pulse_audio.c' || echo '$(srcdir)/'`pulse_audio.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/guvcview-pulse_audio.Tpo $(DEPDIR)/guvcview-pulse_audio.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='pulse_audio.c' object='guvcview-pulse_audio.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -c -o guvcview-pulse_audio.o `test -f 'pulse_audio.c' || echo '$(srcdir)/'`pulse_audio.c - -guvcview-pulse_audio.obj: pulse_audio.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -MT guvcview-pulse_audio.obj -MD -MP -MF $(DEPDIR)/guvcview-pulse_audio.Tpo -c -o guvcview-pulse_audio.obj `if test -f 'pulse_audio.c'; then $(CYGPATH_W) 'pulse_audio.c'; else $(CYGPATH_W) '$(srcdir)/pulse_audio.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/guvcview-pulse_audio.Tpo $(DEPDIR)/guvcview-pulse_audio.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='pulse_audio.c' object='guvcview-pulse_audio.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -c -o guvcview-pulse_audio.obj `if test -f 'pulse_audio.c'; then $(CYGPATH_W) 'pulse_audio.c'; else $(CYGPATH_W) '$(srcdir)/pulse_audio.c'; fi` - -guvcview-quant.o: quant.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -MT guvcview-quant.o -MD -MP -MF $(DEPDIR)/guvcview-quant.Tpo -c -o guvcview-quant.o `test -f 'quant.c' || echo '$(srcdir)/'`quant.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/guvcview-quant.Tpo $(DEPDIR)/guvcview-quant.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='quant.c' object='guvcview-quant.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -c -o guvcview-quant.o `test -f 'quant.c' || echo '$(srcdir)/'`quant.c - -guvcview-quant.obj: quant.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -MT guvcview-quant.obj -MD -MP -MF $(DEPDIR)/guvcview-quant.Tpo -c -o guvcview-quant.obj `if test -f 'quant.c'; then $(CYGPATH_W) 'quant.c'; else $(CYGPATH_W) '$(srcdir)/quant.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/guvcview-quant.Tpo $(DEPDIR)/guvcview-quant.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='quant.c' object='guvcview-quant.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -c -o guvcview-quant.obj `if test -f 'quant.c'; then $(CYGPATH_W) 'quant.c'; else $(CYGPATH_W) '$(srcdir)/quant.c'; fi` - -guvcview-readYUV.o: readYUV.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -MT guvcview-readYUV.o -MD -MP -MF $(DEPDIR)/guvcview-readYUV.Tpo -c -o guvcview-readYUV.o `test -f 'readYUV.c' || echo '$(srcdir)/'`readYUV.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/guvcview-readYUV.Tpo $(DEPDIR)/guvcview-readYUV.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='readYUV.c' object='guvcview-readYUV.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -c -o guvcview-readYUV.o `test -f 'readYUV.c' || echo '$(srcdir)/'`readYUV.c - -guvcview-readYUV.obj: readYUV.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -MT guvcview-readYUV.obj -MD -MP -MF $(DEPDIR)/guvcview-readYUV.Tpo -c -o guvcview-readYUV.obj `if test -f 'readYUV.c'; then $(CYGPATH_W) 'readYUV.c'; else $(CYGPATH_W) '$(srcdir)/readYUV.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/guvcview-readYUV.Tpo $(DEPDIR)/guvcview-readYUV.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='readYUV.c' object='guvcview-readYUV.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -c -o guvcview-readYUV.obj `if test -f 'readYUV.c'; then $(CYGPATH_W) 'readYUV.c'; else $(CYGPATH_W) '$(srcdir)/readYUV.c'; fi` - -guvcview-sound.o: sound.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -MT guvcview-sound.o -MD -MP -MF $(DEPDIR)/guvcview-sound.Tpo -c -o guvcview-sound.o `test -f 'sound.c' || echo '$(srcdir)/'`sound.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/guvcview-sound.Tpo $(DEPDIR)/guvcview-sound.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sound.c' object='guvcview-sound.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -c -o guvcview-sound.o `test -f 'sound.c' || echo '$(srcdir)/'`sound.c - -guvcview-sound.obj: sound.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -MT guvcview-sound.obj -MD -MP -MF $(DEPDIR)/guvcview-sound.Tpo -c -o guvcview-sound.obj `if test -f 'sound.c'; then $(CYGPATH_W) 'sound.c'; else $(CYGPATH_W) '$(srcdir)/sound.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/guvcview-sound.Tpo $(DEPDIR)/guvcview-sound.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sound.c' object='guvcview-sound.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -c -o guvcview-sound.obj `if test -f 'sound.c'; then $(CYGPATH_W) 'sound.c'; else $(CYGPATH_W) '$(srcdir)/sound.c'; fi` - -guvcview-snd_devices.o: snd_devices.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -MT guvcview-snd_devices.o -MD -MP -MF $(DEPDIR)/guvcview-snd_devices.Tpo -c -o guvcview-snd_devices.o `test -f 'snd_devices.c' || echo '$(srcdir)/'`snd_devices.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/guvcview-snd_devices.Tpo $(DEPDIR)/guvcview-snd_devices.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='snd_devices.c' object='guvcview-snd_devices.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -c -o guvcview-snd_devices.o `test -f 'snd_devices.c' || echo '$(srcdir)/'`snd_devices.c - -guvcview-snd_devices.obj: snd_devices.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -MT guvcview-snd_devices.obj -MD -MP -MF $(DEPDIR)/guvcview-snd_devices.Tpo -c -o guvcview-snd_devices.obj `if test -f 'snd_devices.c'; then $(CYGPATH_W) 'snd_devices.c'; else $(CYGPATH_W) '$(srcdir)/snd_devices.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/guvcview-snd_devices.Tpo $(DEPDIR)/guvcview-snd_devices.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='snd_devices.c' object='guvcview-snd_devices.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -c -o guvcview-snd_devices.obj `if test -f 'snd_devices.c'; then $(CYGPATH_W) 'snd_devices.c'; else $(CYGPATH_W) '$(srcdir)/snd_devices.c'; fi` - -guvcview-string_utils.o: string_utils.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -MT guvcview-string_utils.o -MD -MP -MF $(DEPDIR)/guvcview-string_utils.Tpo -c -o guvcview-string_utils.o `test -f 'string_utils.c' || echo '$(srcdir)/'`string_utils.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/guvcview-string_utils.Tpo $(DEPDIR)/guvcview-string_utils.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='string_utils.c' object='guvcview-string_utils.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -c -o guvcview-string_utils.o `test -f 'string_utils.c' || echo '$(srcdir)/'`string_utils.c - -guvcview-string_utils.obj: string_utils.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -MT guvcview-string_utils.obj -MD -MP -MF $(DEPDIR)/guvcview-string_utils.Tpo -c -o guvcview-string_utils.obj `if test -f 'string_utils.c'; then $(CYGPATH_W) 'string_utils.c'; else $(CYGPATH_W) '$(srcdir)/string_utils.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/guvcview-string_utils.Tpo $(DEPDIR)/guvcview-string_utils.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='string_utils.c' object='guvcview-string_utils.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -c -o guvcview-string_utils.obj `if test -f 'string_utils.c'; then $(CYGPATH_W) 'string_utils.c'; else $(CYGPATH_W) '$(srcdir)/string_utils.c'; fi` - -guvcview-timers.o: timers.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -MT guvcview-timers.o -MD -MP -MF $(DEPDIR)/guvcview-timers.Tpo -c -o guvcview-timers.o `test -f 'timers.c' || echo '$(srcdir)/'`timers.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/guvcview-timers.Tpo $(DEPDIR)/guvcview-timers.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='timers.c' object='guvcview-timers.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -c -o guvcview-timers.o `test -f 'timers.c' || echo '$(srcdir)/'`timers.c - -guvcview-timers.obj: timers.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -MT guvcview-timers.obj -MD -MP -MF $(DEPDIR)/guvcview-timers.Tpo -c -o guvcview-timers.obj `if test -f 'timers.c'; then $(CYGPATH_W) 'timers.c'; else $(CYGPATH_W) '$(srcdir)/timers.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/guvcview-timers.Tpo $(DEPDIR)/guvcview-timers.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='timers.c' object='guvcview-timers.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -c -o guvcview-timers.obj `if test -f 'timers.c'; then $(CYGPATH_W) 'timers.c'; else $(CYGPATH_W) '$(srcdir)/timers.c'; fi` - -guvcview-utils.o: utils.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -MT guvcview-utils.o -MD -MP -MF $(DEPDIR)/guvcview-utils.Tpo -c -o guvcview-utils.o `test -f 'utils.c' || echo '$(srcdir)/'`utils.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/guvcview-utils.Tpo $(DEPDIR)/guvcview-utils.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='utils.c' object='guvcview-utils.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -c -o guvcview-utils.o `test -f 'utils.c' || echo '$(srcdir)/'`utils.c - -guvcview-utils.obj: utils.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -MT guvcview-utils.obj -MD -MP -MF $(DEPDIR)/guvcview-utils.Tpo -c -o guvcview-utils.obj `if test -f 'utils.c'; then $(CYGPATH_W) 'utils.c'; else $(CYGPATH_W) '$(srcdir)/utils.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/guvcview-utils.Tpo $(DEPDIR)/guvcview-utils.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='utils.c' object='guvcview-utils.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -c -o guvcview-utils.obj `if test -f 'utils.c'; then $(CYGPATH_W) 'utils.c'; else $(CYGPATH_W) '$(srcdir)/utils.c'; fi` - -guvcview-uvc_h264.o: uvc_h264.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -MT guvcview-uvc_h264.o -MD -MP -MF $(DEPDIR)/guvcview-uvc_h264.Tpo -c -o guvcview-uvc_h264.o `test -f 'uvc_h264.c' || echo '$(srcdir)/'`uvc_h264.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/guvcview-uvc_h264.Tpo $(DEPDIR)/guvcview-uvc_h264.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='uvc_h264.c' object='guvcview-uvc_h264.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -c -o guvcview-uvc_h264.o `test -f 'uvc_h264.c' || echo '$(srcdir)/'`uvc_h264.c - -guvcview-uvc_h264.obj: uvc_h264.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -MT guvcview-uvc_h264.obj -MD -MP -MF $(DEPDIR)/guvcview-uvc_h264.Tpo -c -o guvcview-uvc_h264.obj `if test -f 'uvc_h264.c'; then $(CYGPATH_W) 'uvc_h264.c'; else $(CYGPATH_W) '$(srcdir)/uvc_h264.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/guvcview-uvc_h264.Tpo $(DEPDIR)/guvcview-uvc_h264.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='uvc_h264.c' object='guvcview-uvc_h264.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -c -o guvcview-uvc_h264.obj `if test -f 'uvc_h264.c'; then $(CYGPATH_W) 'uvc_h264.c'; else $(CYGPATH_W) '$(srcdir)/uvc_h264.c'; fi` - -guvcview-v4l2_controls.o: v4l2_controls.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -MT guvcview-v4l2_controls.o -MD -MP -MF $(DEPDIR)/guvcview-v4l2_controls.Tpo -c -o guvcview-v4l2_controls.o `test -f 'v4l2_controls.c' || echo '$(srcdir)/'`v4l2_controls.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/guvcview-v4l2_controls.Tpo $(DEPDIR)/guvcview-v4l2_controls.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='v4l2_controls.c' object='guvcview-v4l2_controls.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -c -o guvcview-v4l2_controls.o `test -f 'v4l2_controls.c' || echo '$(srcdir)/'`v4l2_controls.c - -guvcview-v4l2_controls.obj: v4l2_controls.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -MT guvcview-v4l2_controls.obj -MD -MP -MF $(DEPDIR)/guvcview-v4l2_controls.Tpo -c -o guvcview-v4l2_controls.obj `if test -f 'v4l2_controls.c'; then $(CYGPATH_W) 'v4l2_controls.c'; else $(CYGPATH_W) '$(srcdir)/v4l2_controls.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/guvcview-v4l2_controls.Tpo $(DEPDIR)/guvcview-v4l2_controls.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='v4l2_controls.c' object='guvcview-v4l2_controls.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -c -o guvcview-v4l2_controls.obj `if test -f 'v4l2_controls.c'; then $(CYGPATH_W) 'v4l2_controls.c'; else $(CYGPATH_W) '$(srcdir)/v4l2_controls.c'; fi` - -guvcview-v4l2_devices.o: v4l2_devices.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -MT guvcview-v4l2_devices.o -MD -MP -MF $(DEPDIR)/guvcview-v4l2_devices.Tpo -c -o guvcview-v4l2_devices.o `test -f 'v4l2_devices.c' || echo '$(srcdir)/'`v4l2_devices.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/guvcview-v4l2_devices.Tpo $(DEPDIR)/guvcview-v4l2_devices.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='v4l2_devices.c' object='guvcview-v4l2_devices.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -c -o guvcview-v4l2_devices.o `test -f 'v4l2_devices.c' || echo '$(srcdir)/'`v4l2_devices.c - -guvcview-v4l2_devices.obj: v4l2_devices.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -MT guvcview-v4l2_devices.obj -MD -MP -MF $(DEPDIR)/guvcview-v4l2_devices.Tpo -c -o guvcview-v4l2_devices.obj `if test -f 'v4l2_devices.c'; then $(CYGPATH_W) 'v4l2_devices.c'; else $(CYGPATH_W) '$(srcdir)/v4l2_devices.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/guvcview-v4l2_devices.Tpo $(DEPDIR)/guvcview-v4l2_devices.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='v4l2_devices.c' object='guvcview-v4l2_devices.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -c -o guvcview-v4l2_devices.obj `if test -f 'v4l2_devices.c'; then $(CYGPATH_W) 'v4l2_devices.c'; else $(CYGPATH_W) '$(srcdir)/v4l2_devices.c'; fi` - -guvcview-v4l2_dyna_ctrls.o: v4l2_dyna_ctrls.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -MT guvcview-v4l2_dyna_ctrls.o -MD -MP -MF $(DEPDIR)/guvcview-v4l2_dyna_ctrls.Tpo -c -o guvcview-v4l2_dyna_ctrls.o `test -f 'v4l2_dyna_ctrls.c' || echo '$(srcdir)/'`v4l2_dyna_ctrls.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/guvcview-v4l2_dyna_ctrls.Tpo $(DEPDIR)/guvcview-v4l2_dyna_ctrls.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='v4l2_dyna_ctrls.c' object='guvcview-v4l2_dyna_ctrls.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -c -o guvcview-v4l2_dyna_ctrls.o `test -f 'v4l2_dyna_ctrls.c' || echo '$(srcdir)/'`v4l2_dyna_ctrls.c - -guvcview-v4l2_dyna_ctrls.obj: v4l2_dyna_ctrls.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -MT guvcview-v4l2_dyna_ctrls.obj -MD -MP -MF $(DEPDIR)/guvcview-v4l2_dyna_ctrls.Tpo -c -o guvcview-v4l2_dyna_ctrls.obj `if test -f 'v4l2_dyna_ctrls.c'; then $(CYGPATH_W) 'v4l2_dyna_ctrls.c'; else $(CYGPATH_W) '$(srcdir)/v4l2_dyna_ctrls.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/guvcview-v4l2_dyna_ctrls.Tpo $(DEPDIR)/guvcview-v4l2_dyna_ctrls.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='v4l2_dyna_ctrls.c' object='guvcview-v4l2_dyna_ctrls.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -c -o guvcview-v4l2_dyna_ctrls.obj `if test -f 'v4l2_dyna_ctrls.c'; then $(CYGPATH_W) 'v4l2_dyna_ctrls.c'; else $(CYGPATH_W) '$(srcdir)/v4l2_dyna_ctrls.c'; fi` - -guvcview-v4l2_formats.o: v4l2_formats.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -MT guvcview-v4l2_formats.o -MD -MP -MF $(DEPDIR)/guvcview-v4l2_formats.Tpo -c -o guvcview-v4l2_formats.o `test -f 'v4l2_formats.c' || echo '$(srcdir)/'`v4l2_formats.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/guvcview-v4l2_formats.Tpo $(DEPDIR)/guvcview-v4l2_formats.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='v4l2_formats.c' object='guvcview-v4l2_formats.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -c -o guvcview-v4l2_formats.o `test -f 'v4l2_formats.c' || echo '$(srcdir)/'`v4l2_formats.c - -guvcview-v4l2_formats.obj: v4l2_formats.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -MT guvcview-v4l2_formats.obj -MD -MP -MF $(DEPDIR)/guvcview-v4l2_formats.Tpo -c -o guvcview-v4l2_formats.obj `if test -f 'v4l2_formats.c'; then $(CYGPATH_W) 'v4l2_formats.c'; else $(CYGPATH_W) '$(srcdir)/v4l2_formats.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/guvcview-v4l2_formats.Tpo $(DEPDIR)/guvcview-v4l2_formats.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='v4l2_formats.c' object='guvcview-v4l2_formats.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -c -o guvcview-v4l2_formats.obj `if test -f 'v4l2_formats.c'; then $(CYGPATH_W) 'v4l2_formats.c'; else $(CYGPATH_W) '$(srcdir)/v4l2_formats.c'; fi` - -guvcview-v4l2uvc.o: v4l2uvc.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -MT guvcview-v4l2uvc.o -MD -MP -MF $(DEPDIR)/guvcview-v4l2uvc.Tpo -c -o guvcview-v4l2uvc.o `test -f 'v4l2uvc.c' || echo '$(srcdir)/'`v4l2uvc.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/guvcview-v4l2uvc.Tpo $(DEPDIR)/guvcview-v4l2uvc.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='v4l2uvc.c' object='guvcview-v4l2uvc.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -c -o guvcview-v4l2uvc.o `test -f 'v4l2uvc.c' || echo '$(srcdir)/'`v4l2uvc.c - -guvcview-v4l2uvc.obj: v4l2uvc.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -MT guvcview-v4l2uvc.obj -MD -MP -MF $(DEPDIR)/guvcview-v4l2uvc.Tpo -c -o guvcview-v4l2uvc.obj `if test -f 'v4l2uvc.c'; then $(CYGPATH_W) 'v4l2uvc.c'; else $(CYGPATH_W) '$(srcdir)/v4l2uvc.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/guvcview-v4l2uvc.Tpo $(DEPDIR)/guvcview-v4l2uvc.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='v4l2uvc.c' object='guvcview-v4l2uvc.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -c -o guvcview-v4l2uvc.obj `if test -f 'v4l2uvc.c'; then $(CYGPATH_W) 'v4l2uvc.c'; else $(CYGPATH_W) '$(srcdir)/v4l2uvc.c'; fi` - -guvcview-vcodecs.o: vcodecs.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -MT guvcview-vcodecs.o -MD -MP -MF $(DEPDIR)/guvcview-vcodecs.Tpo -c -o guvcview-vcodecs.o `test -f 'vcodecs.c' || echo '$(srcdir)/'`vcodecs.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/guvcview-vcodecs.Tpo $(DEPDIR)/guvcview-vcodecs.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='vcodecs.c' object='guvcview-vcodecs.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -c -o guvcview-vcodecs.o `test -f 'vcodecs.c' || echo '$(srcdir)/'`vcodecs.c - -guvcview-vcodecs.obj: vcodecs.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -MT guvcview-vcodecs.obj -MD -MP -MF $(DEPDIR)/guvcview-vcodecs.Tpo -c -o guvcview-vcodecs.obj `if test -f 'vcodecs.c'; then $(CYGPATH_W) 'vcodecs.c'; else $(CYGPATH_W) '$(srcdir)/vcodecs.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/guvcview-vcodecs.Tpo $(DEPDIR)/guvcview-vcodecs.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='vcodecs.c' object='guvcview-vcodecs.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -c -o guvcview-vcodecs.obj `if test -f 'vcodecs.c'; then $(CYGPATH_W) 'vcodecs.c'; else $(CYGPATH_W) '$(srcdir)/vcodecs.c'; fi` - -guvcview-video.o: video.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -MT guvcview-video.o -MD -MP -MF $(DEPDIR)/guvcview-video.Tpo -c -o guvcview-video.o `test -f 'video.c' || echo '$(srcdir)/'`video.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/guvcview-video.Tpo $(DEPDIR)/guvcview-video.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='video.c' object='guvcview-video.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -c -o guvcview-video.o `test -f 'video.c' || echo '$(srcdir)/'`video.c - -guvcview-video.obj: video.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -MT guvcview-video.obj -MD -MP -MF $(DEPDIR)/guvcview-video.Tpo -c -o guvcview-video.obj `if test -f 'video.c'; then $(CYGPATH_W) 'video.c'; else $(CYGPATH_W) '$(srcdir)/video.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/guvcview-video.Tpo $(DEPDIR)/guvcview-video.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='video.c' object='guvcview-video.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -c -o guvcview-video.obj `if test -f 'video.c'; then $(CYGPATH_W) 'video.c'; else $(CYGPATH_W) '$(srcdir)/video.c'; fi` - -guvcview-video_filters.o: video_filters.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -MT guvcview-video_filters.o -MD -MP -MF $(DEPDIR)/guvcview-video_filters.Tpo -c -o guvcview-video_filters.o `test -f 'video_filters.c' || echo '$(srcdir)/'`video_filters.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/guvcview-video_filters.Tpo $(DEPDIR)/guvcview-video_filters.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='video_filters.c' object='guvcview-video_filters.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -c -o guvcview-video_filters.o `test -f 'video_filters.c' || echo '$(srcdir)/'`video_filters.c - -guvcview-video_filters.obj: video_filters.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -MT guvcview-video_filters.obj -MD -MP -MF $(DEPDIR)/guvcview-video_filters.Tpo -c -o guvcview-video_filters.obj `if test -f 'video_filters.c'; then $(CYGPATH_W) 'video_filters.c'; else $(CYGPATH_W) '$(srcdir)/video_filters.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/guvcview-video_filters.Tpo $(DEPDIR)/guvcview-video_filters.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='video_filters.c' object='guvcview-video_filters.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -c -o guvcview-video_filters.obj `if test -f 'video_filters.c'; then $(CYGPATH_W) 'video_filters.c'; else $(CYGPATH_W) '$(srcdir)/video_filters.c'; fi` - -guvcview-video_format.o: video_format.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -MT guvcview-video_format.o -MD -MP -MF $(DEPDIR)/guvcview-video_format.Tpo -c -o guvcview-video_format.o `test -f 'video_format.c' || echo '$(srcdir)/'`video_format.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/guvcview-video_format.Tpo $(DEPDIR)/guvcview-video_format.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='video_format.c' object='guvcview-video_format.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -c -o guvcview-video_format.o `test -f 'video_format.c' || echo '$(srcdir)/'`video_format.c - -guvcview-video_format.obj: video_format.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -MT guvcview-video_format.obj -MD -MP -MF $(DEPDIR)/guvcview-video_format.Tpo -c -o guvcview-video_format.obj `if test -f 'video_format.c'; then $(CYGPATH_W) 'video_format.c'; else $(CYGPATH_W) '$(srcdir)/video_format.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/guvcview-video_format.Tpo $(DEPDIR)/guvcview-video_format.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='video_format.c' object='guvcview-video_format.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -c -o guvcview-video_format.obj `if test -f 'video_format.c'; then $(CYGPATH_W) 'video_format.c'; else $(CYGPATH_W) '$(srcdir)/video_format.c'; fi` - -guvcview-video_tab.o: video_tab.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -MT guvcview-video_tab.o -MD -MP -MF $(DEPDIR)/guvcview-video_tab.Tpo -c -o guvcview-video_tab.o `test -f 'video_tab.c' || echo '$(srcdir)/'`video_tab.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/guvcview-video_tab.Tpo $(DEPDIR)/guvcview-video_tab.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='video_tab.c' object='guvcview-video_tab.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -c -o guvcview-video_tab.o `test -f 'video_tab.c' || echo '$(srcdir)/'`video_tab.c - -guvcview-video_tab.obj: video_tab.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -MT guvcview-video_tab.obj -MD -MP -MF $(DEPDIR)/guvcview-video_tab.Tpo -c -o guvcview-video_tab.obj `if test -f 'video_tab.c'; then $(CYGPATH_W) 'video_tab.c'; else $(CYGPATH_W) '$(srcdir)/video_tab.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/guvcview-video_tab.Tpo $(DEPDIR)/guvcview-video_tab.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='video_tab.c' object='guvcview-video_tab.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -c -o guvcview-video_tab.obj `if test -f 'video_tab.c'; then $(CYGPATH_W) 'video_tab.c'; else $(CYGPATH_W) '$(srcdir)/video_tab.c'; fi` - -ID: $(am__tagged_files) - $(am__define_uniq_tagged_files); mkid -fID $$unique -tags: tags-am -TAGS: tags - -tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - set x; \ - here=`pwd`; \ - $(am__define_uniq_tagged_files); \ - shift; \ - if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - if test $$# -gt 0; then \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - "$$@" $$unique; \ - else \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$unique; \ - fi; \ - fi -ctags: ctags-am - -CTAGS: ctags -ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - $(am__define_uniq_tagged_files); \ - test -z "$(CTAGS_ARGS)$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && $(am__cd) $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) "$$here" -cscopelist: cscopelist-am - -cscopelist-am: $(am__tagged_files) - list='$(am__tagged_files)'; \ - case "$(srcdir)" in \ - [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ - *) sdir=$(subdir)/$(srcdir) ;; \ - esac; \ - for i in $$list; do \ - if test -f "$$i"; then \ - echo "$(subdir)/$$i"; \ - else \ - echo "$$sdir/$$i"; \ - fi; \ - done >> $(top_builddir)/cscope.files - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -distdir: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done -check-am: all-am -check: check-am -all-am: Makefile $(PROGRAMS) -installdirs: - for dir in "$(DESTDIR)$(bindir)"; do \ - test -z "$$dir" || $(MKDIR_P) "$$dir"; \ - done -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - if test -z '$(STRIP)'; then \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - install; \ - else \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ - fi -mostlyclean-generic: - -clean-generic: - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." -clean: clean-am - -clean-am: clean-binPROGRAMS clean-generic mostlyclean-am - -distclean: distclean-am - -rm -rf ./$(DEPDIR) - -rm -f Makefile -distclean-am: clean-am distclean-compile distclean-generic \ - distclean-tags - -dvi: dvi-am - -dvi-am: - -html: html-am - -html-am: - -info: info-am - -info-am: - -install-data-am: - -install-dvi: install-dvi-am - -install-dvi-am: - -install-exec-am: install-binPROGRAMS - -install-html: install-html-am - -install-html-am: - -install-info: install-info-am - -install-info-am: - -install-man: - -install-pdf: install-pdf-am - -install-pdf-am: - -install-ps: install-ps-am - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -rf ./$(DEPDIR) - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-compile mostlyclean-generic - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: uninstall-binPROGRAMS - -.MAKE: install-am install-strip - -.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean \ - clean-binPROGRAMS clean-generic cscopelist-am ctags ctags-am \ - distclean distclean-compile distclean-generic distclean-tags \ - distdir dvi dvi-am html html-am info info-am install \ - install-am install-binPROGRAMS install-data install-data-am \ - install-dvi install-dvi-am install-exec install-exec-am \ - install-html install-html-am install-info install-info-am \ - install-man install-pdf install-pdf-am install-ps \ - install-ps-am install-strip installcheck installcheck-am \ - installdirs maintainer-clean maintainer-clean-generic \ - mostlyclean mostlyclean-compile mostlyclean-generic pdf pdf-am \ - ps ps-am tags tags-am uninstall uninstall-am \ - uninstall-binPROGRAMS - - -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff -Nru guvcview-1.7.3/src/marker.c guvcview-2.0.1+ubuntu1~ppa1/src/marker.c --- guvcview-1.7.3/src/marker.c 2014-03-24 22:56:28.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/src/marker.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,201 +0,0 @@ -/*******************************************************************************# -# guvcview http://guvcview.sourceforge.net # -# # -# Paulo Assis # -# # -# This program is free software; you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation; either version 2 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program; if not, write to the Free Software # -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# # -********************************************************************************/ - -/*******************************************************************************# -# # -# write header and markers for Jpeg encoder # -# # -# Adapted for linux, Paulo Assis, 2007 # -********************************************************************************/ - -#include "huffman.h" -#include "jpgenc.h" -#include -// Header for JPEG Encoder - -UINT8* -write_markers (struct JPEG_ENCODER_STRUCTURE * jpeg_encoder_structure, UINT8 *output_ptr, - int huff, UINT32 image_width, UINT32 image_height) -{ - UINT16 i, header_length; - UINT8 number_of_components; - - // Start of image marker - *output_ptr++ = 0xFF; - *output_ptr++ = 0xD8; - //added from here - // Start of APP0 marker - *output_ptr++ = 0xFF; - *output_ptr++ = 0xE0; - //header length - *output_ptr++= 0x00; - *output_ptr++= 0x10;//16 bytes - - //type - if(huff) - { //JFIF0 0x4A46494600 - *output_ptr++= 0x4A; - *output_ptr++= 0x46; - *output_ptr++= 0x49; - *output_ptr++= 0x46; - *output_ptr++= 0x00; - } - else - { // AVI10 0x4156493100 - *output_ptr++= 0x41; - *output_ptr++= 0x56; - *output_ptr++= 0x49; - *output_ptr++= 0x31; - *output_ptr++= 0x00; - } - // version - *output_ptr++= 0x01; - *output_ptr++= 0x02; - // density 0- no units 1- pix per inch 2- pix per mm - *output_ptr++= 0x01; - // xdensity - 120 - *output_ptr++= 0x00; - *output_ptr++= 0x78; - // ydensity - 120 - *output_ptr++= 0x00; - *output_ptr++= 0x78; - - //thumb x y - *output_ptr++= 0x00; - *output_ptr++= 0x00; - //to here - - // Quantization table marker - *output_ptr++ = 0xFF; - *output_ptr++ = 0xDB; - - // Quantization table length - *output_ptr++ = 0x00; - *output_ptr++ = 0x43; - - // Pq, Tq - *output_ptr++ = 0x00; - - // Lqt table - for (i=0; i<64; i++) - *output_ptr++ = jpeg_encoder_structure->Lqt [i]; - - // Quantization table marker - *output_ptr++ = 0xFF; - *output_ptr++ = 0xDB; - - // Quantization table length - *output_ptr++ = 0x00; - *output_ptr++ = 0x43; - - // Pq, Tq - *output_ptr++ = 0x01; - - // Cqt table - for (i=0; i<64; i++) - *output_ptr++ = jpeg_encoder_structure->Cqt [i]; - - if (huff) - { - // huffman table(DHT) - - *output_ptr++=0xff; - *output_ptr++=0xc4; - *output_ptr++=0x01; - *output_ptr++=0xa2; - memmove(output_ptr,&JPEGHuffmanTable,JPG_HUFFMAN_TABLE_LENGTH);/*0x01a0*/ - output_ptr+=JPG_HUFFMAN_TABLE_LENGTH; - - } - - number_of_components = 3; - - // Frame header(SOF) - - // Start of frame marker - *output_ptr++ = 0xFF; - *output_ptr++ = 0xC0; - - header_length = (UINT16) (8 + 3 * number_of_components); - - // Frame header length - *output_ptr++ = (UINT8) (header_length >> 8); - *output_ptr++ = (UINT8) header_length; - - // Precision (P) - *output_ptr++ = 0x08;/*8 bits*/ - - // image height - *output_ptr++ = (UINT8) (image_height >> 8); - *output_ptr++ = (UINT8) image_height; - - // image width - *output_ptr++ = (UINT8) (image_width >> 8); - *output_ptr++ = (UINT8) image_width; - - // Nf - *output_ptr++ = number_of_components; - - /* type 422 */ - *output_ptr++ = 0x01; /*id (y)*/ - *output_ptr++ = 0x21; /*horiz|vertical */ - *output_ptr++ = 0x00; /*quantization table used*/ - - *output_ptr++ = 0x02; /*id (u)*/ - *output_ptr++ = 0x11; /*horiz|vertical*/ - *output_ptr++ = 0x01; /*quantization table used*/ - - *output_ptr++ = 0x03; /*id (v)*/ - *output_ptr++ = 0x11; /*horiz|vertical*/ - *output_ptr++ = 0x01; /*quantization table used*/ - - - // Scan header(SOF) - - // Start of scan marker - *output_ptr++ = 0xFF; - *output_ptr++ = 0xDA; - - header_length = (UINT16) (6 + (number_of_components << 1)); - - // Scan header length - *output_ptr++ = (UINT8) (header_length >> 8); - *output_ptr++ = (UINT8) header_length; - - // Ns = number of scans - *output_ptr++ = number_of_components; - - /* type 422*/ - *output_ptr++ = 0x01; /*component id (y)*/ - *output_ptr++ = 0x00; /*dc|ac tables*/ - - *output_ptr++ = 0x02; /*component id (u)*/ - *output_ptr++ = 0x11; /*dc|ac tables*/ - - *output_ptr++ = 0x03; /*component id (v)*/ - *output_ptr++ = 0x11; /*dc|ac tables*/ - - *output_ptr++ = 0x00; /*0 */ - *output_ptr++ = 0x3F; /*63*/ - *output_ptr++ = 0x00; /*0 */ - - return output_ptr; -} diff -Nru guvcview-1.7.3/src/matroska.c guvcview-2.0.1+ubuntu1~ppa1/src/matroska.c --- guvcview-1.7.3/src/matroska.c 2014-03-24 22:56:28.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/src/matroska.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,980 +0,0 @@ -/*******************************************************************************# -# guvcview http://guvcview.sourceforge.net # -# # -# Paulo Assis # -# # -# This is a heavily modified version of the matroska interface from x264 # -# Copyright (C) 2005 Mike Matsnev # -# # -# This program is free software; you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation; either version 2 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program; if not, write to the Free Software # -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# # -********************************************************************************/ - -#include -#include -#include -#include -#include -#include -#include - -#include "ms_time.h" -#include "defs.h" -#include "video_format.h" -#include "matroska.h" -#include "acodecs.h" -#include "vcodecs.h" -#include "lavc_common.h" - - -/** 2 bytes * 3 for EBML IDs, 3 1-byte EBML lengths, 8 bytes for 64 bit - * offset, 4 bytes for target EBML ID */ -#define MAX_SEEKENTRY_SIZE 21 - -/** per-cuepoint-track - 3 1-byte EBML IDs, 3 1-byte EBML sizes, 2 - * 8-byte uint max */ -#define MAX_CUETRACKPOS_SIZE 22 - -/** per-cuepoint - 2 1-byte EBML IDs, 2 1-byte EBML sizes, 8-byte uint max */ -#define MAX_CUEPOINT_SIZE(num_tracks) 12 + MAX_CUETRACKPOS_SIZE*num_tracks - - -/** Some utilities for - * float and double conversion to/from int */ -union mkv_union_intfloat32 -{ - uint32_t i; - float f; -}; - -union mkv_union_intfloat64 -{ - uint64_t i; - double f; -}; - -//static float mkv_int2float(uint32_t i) -//{ -// union mkv_union_intfloat32 v; -// v.i = i; -// return v.f; -//} - -//static uint32_t mkv_float2int(float f) -//{ -// union mkv_union_intfloat32 v; -// v.f = f; -// return v.i; -//} - -//static double mkv_int2double(uint64_t i) -//{ -// union mkv_union_intfloat64 v; -// v.i = i; -// return v.f; -//} - -static uint64_t mkv_double2int(double f) -{ - union mkv_union_intfloat64 v; - v.f = f; - return v.i; -} - - -/** get id size */ -static int ebml_id_size(unsigned int id) -{ - int bytes = 4, mask = 0x10; - - while (!(id & (mask << ((bytes - 1) * 8))) && bytes > 0) - { - mask <<= 1; - bytes--; - } - - return bytes; -} - -/** write an id */ -static void mkv_put_ebml_id(mkv_Context* MKV, unsigned int id) -{ - int i = ebml_id_size(id); - while (i--) - io_write_w8(MKV->writer, id >> (i*8)); -} - -/** - * Write an EBML size meaning "unknown size". - * - * @param bytes The number of bytes the size should occupy (maximum: 8). - */ -static void mkv_put_ebml_size_unknown(mkv_Context* MKV, int bytes) -{ - if(bytes <= 8) //max is 64 bits - { - io_write_w8(MKV->writer, 0x1ff >> bytes); - while (--bytes) - io_write_w8(MKV->writer, 0xff); - } - else - fprintf(stderr, "MKV: bad unknown size (%i > 8) bytes)\n", bytes); -} - -/** - * Calculate how many bytes are needed to represent a given number in EBML. - */ -static int ebml_num_size(uint64_t num) -{ - int bytes = 1; - while ((num+1) >> bytes*7) - bytes++; - return bytes; -} - -/** - * Write a number in EBML variable length format. - * - * @param bytes The number of bytes that need to be used to write the number. - * If zero, any number of bytes can be used. - */ -static void mkv_put_ebml_num(mkv_Context* MKV, uint64_t num, int bytes) -{ - int i, needed_bytes = ebml_num_size(num); - - // sizes larger than this are currently undefined in EBML - if(num >= (1ULL<<56)-1) - { - fprintf(stderr, "MKV: ebml number: %" PRIu64 "\n", num); - return; - } - - if (bytes == 0) - // don't care how many bytes are used, so use the min - bytes = needed_bytes; - // the bytes needed to write the given size would exceed the bytes - // that we need to use, so write unknown size. This shouldn't happen. - if(bytes < needed_bytes) - { - fprintf(stderr, "MKV: bad requested size for ebml number: %" PRIu64 " (%i < %i)\n", num, bytes, needed_bytes); - return; - } - - num |= 1ULL << bytes*7; - for (i = bytes - 1; i >= 0; i--) - io_write_w8(MKV->writer, num >> i*8); -} - -static void mkv_put_ebml_uint(mkv_Context* MKV, unsigned int elementid, uint64_t val) -{ - int i, bytes = 1; - uint64_t tmp = val; - while (tmp>>=8) bytes++; - - mkv_put_ebml_id(MKV, elementid); - mkv_put_ebml_num(MKV, bytes, 0); - for (i = bytes - 1; i >= 0; i--) - io_write_w8(MKV->writer, val >> i*8); -} - -static void mkv_put_ebml_float(mkv_Context* MKV, unsigned int elementid, double val) -{ - mkv_put_ebml_id(MKV, elementid); - mkv_put_ebml_num(MKV, 8, 0); - io_write_wb64(MKV->writer, mkv_double2int(val)); -} - -static void mkv_put_ebml_binary(mkv_Context* MKV, unsigned int elementid, - void *buf, int size) -{ - mkv_put_ebml_id(MKV, elementid); - mkv_put_ebml_num(MKV, size, 0); - io_write_buf(MKV->writer, buf, size); -} - -static void mkv_put_ebml_string(mkv_Context* MKV, unsigned int elementid, char *str) -{ - mkv_put_ebml_binary(MKV, elementid, str, strlen(str)); -} - -/** - * Write a void element of a given size. Useful for reserving space in - * the file to be written to later. - * - * @param size The number of bytes to reserve, which must be at least 2. - */ -static void mkv_put_ebml_void(mkv_Context* MKV, uint64_t size) -{ - int64_t currentpos = io_get_offset(MKV->writer); - - if(size < 2) - { - fprintf(stderr, "MKV: wrong void size %" PRIu64 " < 2", size); - } - - mkv_put_ebml_id(MKV, EBML_ID_VOID); - // we need to subtract the length needed to store the size from the - // size we need to reserve so 2 cases, we use 8 bytes to store the - // size if possible, 1 byte otherwise - if (size < 10) - mkv_put_ebml_num(MKV, size-1, 0); - else - mkv_put_ebml_num(MKV, size-9, 8); - while(io_get_offset(MKV->writer) < currentpos + size) - io_write_w8(MKV->writer, 0); -} - -static ebml_master mkv_start_ebml_master(mkv_Context* MKV, unsigned int elementid, uint64_t expectedsize) -{ - //if 0 reserve max (8 bytes) - int bytes = expectedsize ? ebml_num_size(expectedsize) : 8; - mkv_put_ebml_id(MKV, elementid); - mkv_put_ebml_size_unknown(MKV, bytes); - return (ebml_master){ io_get_offset(MKV->writer), bytes }; -} - -static void mkv_end_ebml_master(mkv_Context* MKV, ebml_master master) -{ - int64_t pos = io_get_offset(MKV->writer); - - if (io_seek(MKV->writer, master.pos - master.sizebytes) < 0) - return; - mkv_put_ebml_num(MKV, pos - master.pos, master.sizebytes); - io_seek(MKV->writer, pos); -} - -//static void mkv_put_xiph_size(mkv_Context* MKV, int size) -//{ -// int i; -// for (i = 0; i < size / 255; i++) -// io_write_w8(MKV->writer, 255); -// io_write_w8(MKV->writer, size % 255); -//} - -/** - * Initialize a mkv_seekhead element to be ready to index level 1 Matroska - * elements. If a maximum number of elements is specified, enough space - * will be reserved at the current file location to write a seek head of - * that size. - * - * @param segment_offset The absolute offset to the position in the file - * where the segment begins. - * @param numelements The maximum number of elements that will be indexed - * by this seek head, 0 if unlimited. - */ -static mkv_seekhead * mkv_start_seekhead(mkv_Context* MKV, int64_t segment_offset, int numelements) -{ - mkv_seekhead *new_seekhead = g_new0(mkv_seekhead, 1); - if (new_seekhead == NULL) - return NULL; - - new_seekhead->segment_offset = segment_offset; - - if (numelements > 0) - { - new_seekhead->filepos = io_get_offset(MKV->writer); - // 21 bytes max for a seek entry, 10 bytes max for the SeekHead ID - // and size, and 3 bytes to guarantee that an EBML void element - // will fit afterwards - new_seekhead->reserved_size = numelements * MAX_SEEKENTRY_SIZE + 13; - new_seekhead->max_entries = numelements; - mkv_put_ebml_void(MKV, new_seekhead->reserved_size); - } - return new_seekhead; -} - -static int mkv_add_seekhead_entry(mkv_seekhead *seekhead, unsigned int elementid, uint64_t filepos) -{ - mkv_seekhead_entry *entries = seekhead->entries; - fprintf(stderr,"MKV: add seekhead entry %i (max %i)\n", seekhead->num_entries, seekhead->max_entries); - // don't store more elements than we reserved space for - if (seekhead->max_entries > 0 && seekhead->max_entries <= seekhead->num_entries) - return -1; - - entries = g_renew(mkv_seekhead_entry, entries, seekhead->num_entries + 1); - //entries = av_realloc(entries, (seekhead->num_entries + 1) * sizeof(mkv_seekhead_entry)); - if (entries == NULL) - { - fprintf(stderr, "MKV: couldn't allocate memory for seekhead entries\n"); - return -1; - } - entries[seekhead->num_entries].elementid = elementid; - entries[seekhead->num_entries].segmentpos = filepos - seekhead->segment_offset; - - seekhead->num_entries++; - - seekhead->entries = entries; - return 0; -} - -/** - * Write the seek head to the file and free it. If a maximum number of - * elements was specified to mkv_start_seekhead(), the seek head will - * be written at the location reserved for it. Otherwise, it is written - * at the current location in the file. - * - * @return The file offset where the seekhead was written, - * -1 if an error occurred. - */ -static int64_t mkv_write_seekhead(mkv_Context* MKV, mkv_seekhead *seekhead) -{ - ebml_master metaseek, seekentry; - int64_t currentpos; - int i; - - currentpos = io_get_offset(MKV->writer); - - if (seekhead->reserved_size > 0) - { - if (io_seek(MKV->writer, seekhead->filepos) < 0) - { - fprintf(stderr, "MKV: failed to write seekhead at pos %" PRIu64 "\n", seekhead->filepos); - currentpos = -1; - goto fail; - } - } - - metaseek = mkv_start_ebml_master(MKV, MATROSKA_ID_SEEKHEAD, seekhead->reserved_size); - for (i = 0; i < seekhead->num_entries; i++) - { - mkv_seekhead_entry *entry = &seekhead->entries[i]; - - seekentry = mkv_start_ebml_master(MKV, MATROSKA_ID_SEEKENTRY, MAX_SEEKENTRY_SIZE); - - mkv_put_ebml_id(MKV, MATROSKA_ID_SEEKID); - mkv_put_ebml_num(MKV, ebml_id_size(entry->elementid), 0); - mkv_put_ebml_id(MKV, entry->elementid); - - mkv_put_ebml_uint(MKV, MATROSKA_ID_SEEKPOSITION, entry->segmentpos); - mkv_end_ebml_master(MKV, seekentry); - } - mkv_end_ebml_master(MKV, metaseek); - - if (seekhead->reserved_size > 0) { - uint64_t remaining = seekhead->filepos + seekhead->reserved_size - io_get_offset(MKV->writer); - mkv_put_ebml_void(MKV, remaining); - io_seek(MKV->writer, currentpos); - - currentpos = seekhead->filepos; - } -fail: - g_free(seekhead->entries); - g_free(seekhead); - - return currentpos; -} - -static mkv_cues * mkv_start_cues(int64_t segment_offset) -{ - mkv_cues *cues = g_new0(mkv_cues, 1); - if (cues == NULL) - return NULL; - - cues->segment_offset = segment_offset; - return cues; -} - -static int mkv_add_cuepoint(mkv_cues *cues, int stream, int64_t ts, int64_t cluster_pos) -{ - mkv_cuepoint *entries = cues->entries; - - if (ts < 0) - return 0; - - entries = g_renew(mkv_cuepoint, entries, cues->num_entries + 1); - //entries = av_realloc(entries, (cues->num_entries + 1) * sizeof(mkv_cuepoint)); - if (entries == NULL) - return AVERROR(ENOMEM); - - entries[cues->num_entries].pts = ts; - entries[cues->num_entries].tracknum = stream + 1; - entries[cues->num_entries].cluster_pos = cluster_pos - cues->segment_offset; - - cues->num_entries++; - - cues->entries = entries; - return 0; -} - -static int64_t mkv_write_cues(mkv_Context* MKV, mkv_cues *cues, int num_tracks) -{ - ebml_master cues_element; - int64_t currentpos; - int i, j; - - currentpos = io_get_offset(MKV->writer); - cues_element = mkv_start_ebml_master(MKV, MATROSKA_ID_CUES, 0); - - for (i = 0; i < cues->num_entries; i++) - { - ebml_master cuepoint, track_positions; - mkv_cuepoint *entry = &cues->entries[i]; - uint64_t pts = entry->pts; - - cuepoint = mkv_start_ebml_master(MKV, MATROSKA_ID_POINTENTRY, MAX_CUEPOINT_SIZE(num_tracks)); - mkv_put_ebml_uint(MKV, MATROSKA_ID_CUETIME, pts); - - // put all the entries from different tracks that have the exact same - // timestamp into the same CuePoint - for (j = 0; j < cues->num_entries - i && entry[j].pts == pts; j++) - { - track_positions = mkv_start_ebml_master(MKV, MATROSKA_ID_CUETRACKPOSITION, MAX_CUETRACKPOS_SIZE); - mkv_put_ebml_uint(MKV, MATROSKA_ID_CUETRACK , entry[j].tracknum ); - mkv_put_ebml_uint(MKV, MATROSKA_ID_CUECLUSTERPOSITION, entry[j].cluster_pos); - mkv_end_ebml_master(MKV, track_positions); - } - i += j - 1; - mkv_end_ebml_master(MKV, cuepoint); - } - mkv_end_ebml_master(MKV, cues_element); - - return currentpos; -} - -static void mkv_write_codecprivate(mkv_Context* MKV, io_Stream* stream) -{ - if (stream->extra_data_size && stream->extra_data != NULL) - mkv_put_ebml_binary(MKV, MATROSKA_ID_CODECPRIVATE, stream->extra_data, stream->extra_data_size); -} - -static void mkv_write_trackdefaultduration(mkv_Context* MKV, io_Stream* stream) -{ - if(stream->type == STREAM_TYPE_VIDEO) - { - mkv_put_ebml_uint(MKV, MATROSKA_ID_TRACKDEFAULTDURATION, floor(1E9/stream->fps)); - } -} - -static int mkv_write_tracks(mkv_Context* MKV) -{ - ebml_master tracks; - int i, ret; - - ret = mkv_add_seekhead_entry(MKV->main_seekhead, MATROSKA_ID_TRACKS, io_get_offset(MKV->writer)); - if (ret < 0) return ret; - - tracks = mkv_start_ebml_master(MKV, MATROSKA_ID_TRACKS, 0); - - for (i = 0; i < MKV->stream_list_size; i++) - { - io_Stream* stream = get_stream(MKV->stream_list, i); - ebml_master subinfo, track; - - track = mkv_start_ebml_master(MKV, MATROSKA_ID_TRACKENTRY, 0); - mkv_put_ebml_uint (MKV, MATROSKA_ID_TRACKNUMBER , i + 1); - mkv_put_ebml_uint (MKV, MATROSKA_ID_TRACKUID , i + 1); - mkv_put_ebml_uint (MKV, MATROSKA_ID_TRACKFLAGLACING , 0); // no lacing (yet) - mkv_put_ebml_uint(MKV, MATROSKA_ID_TRACKFLAGDEFAULT, 1); - - char* mkv_codec_name; - if(stream->type == STREAM_TYPE_VIDEO) - { - int codec_index = get_vcodec_index(stream->codec_id); - if(codec_index < 0) - { - fprintf(stderr, "MKV: bad video codec index for id:0x%x\n",stream->codec_id); - return -1; - } - mkv_codec_name = (char *) get_mkvCodec(codec_index); - } - else - { - int codec_index = get_acodec_index(stream->codec_id); - if(codec_index < 0) - { - fprintf(stderr, "MKV: bad audio codec index for id:0x%x\n",stream->codec_id); - return -1; - } - mkv_codec_name = (char *) get_mkvACodec(codec_index); - } - - mkv_put_ebml_string(MKV, MATROSKA_ID_CODECID, mkv_codec_name); - - if (MKV->mode == WEBM_FORMAT && !(stream->codec_id == AV_CODEC_ID_VP8 || - stream->codec_id == AV_CODEC_ID_VORBIS)) - { - fprintf(stderr, "MKV: Only VP8 video and Vorbis audio are supported for WebM.\n"); - return -2; - } - - switch (stream->type) - { - case STREAM_TYPE_VIDEO: - mkv_put_ebml_uint(MKV, MATROSKA_ID_TRACKTYPE, MATROSKA_TRACK_TYPE_VIDEO); - subinfo = mkv_start_ebml_master(MKV, MATROSKA_ID_TRACKVIDEO, 0); - // XXX: interlace flag? - mkv_put_ebml_uint (MKV, MATROSKA_ID_VIDEOPIXELWIDTH , stream->width); - mkv_put_ebml_uint (MKV, MATROSKA_ID_VIDEOPIXELHEIGHT, stream->height); - mkv_put_ebml_uint(MKV, MATROSKA_ID_VIDEODISPLAYWIDTH , stream->width); - mkv_put_ebml_uint(MKV, MATROSKA_ID_VIDEODISPLAYHEIGHT, stream->height); - mkv_put_ebml_uint(MKV, MATROSKA_ID_VIDEODISPLAYUNIT, 3); - - mkv_end_ebml_master(MKV, subinfo); - break; - - case STREAM_TYPE_AUDIO: - mkv_put_ebml_uint(MKV, MATROSKA_ID_TRACKTYPE, MATROSKA_TRACK_TYPE_AUDIO); - - - //no mkv-specific ID, use ACM mode - //put_ebml_string(pb, MATROSKA_ID_CODECID, "A_MS/ACM"); - - subinfo = mkv_start_ebml_master(MKV, MATROSKA_ID_TRACKAUDIO, 0); - mkv_put_ebml_uint(MKV, MATROSKA_ID_AUDIOCHANNELS, stream->a_chans); - mkv_put_ebml_float(MKV, MATROSKA_ID_AUDIOSAMPLINGFREQ, stream->a_rate); - mkv_put_ebml_uint(MKV, MATROSKA_ID_AUDIOBITDEPTH, stream->a_bits); - mkv_end_ebml_master(MKV, subinfo); - break; - - default: - fprintf(stderr, "MKV: Only audio and video are supported by the Matroska muxer.\n"); - break; - } - - mkv_write_codecprivate(MKV, stream); - mkv_write_trackdefaultduration(MKV, stream); - - mkv_end_ebml_master(MKV, track); - } - mkv_put_ebml_void(MKV, 200); // add some extra space - mkv_end_ebml_master(MKV, tracks); - return 0; -} - -int mkv_write_header(mkv_Context* MKV) -{ - ebml_master ebml_header, segment_info; - int ret; - - ebml_header = mkv_start_ebml_master(MKV, EBML_ID_HEADER, 0); - mkv_put_ebml_uint (MKV, EBML_ID_EBMLVERSION , 1); - mkv_put_ebml_uint (MKV, EBML_ID_EBMLREADVERSION , 1); - mkv_put_ebml_uint (MKV, EBML_ID_EBMLMAXIDLENGTH , 4); - mkv_put_ebml_uint (MKV, EBML_ID_EBMLMAXSIZELENGTH , 8); - if (MKV->mode == WEBM_FORMAT) - mkv_put_ebml_string (MKV, EBML_ID_DOCTYPE , "webm"); - else - mkv_put_ebml_string (MKV, EBML_ID_DOCTYPE , "matroska"); - mkv_put_ebml_uint (MKV, EBML_ID_DOCTYPEVERSION , 2); - mkv_put_ebml_uint (MKV, EBML_ID_DOCTYPEREADVERSION , 2); - mkv_end_ebml_master(MKV, ebml_header); - - MKV->segment = mkv_start_ebml_master(MKV, MATROSKA_ID_SEGMENT, 0); - MKV->segment_offset = io_get_offset(MKV->writer); - - // we write 2 seek heads - one at the end of the file to point to each - // cluster, and one at the beginning to point to all other level one - // elements (including the seek head at the end of the file), which - // isn't more than 10 elements if we only write one of each other - // currently defined level 1 element - MKV->main_seekhead = mkv_start_seekhead(MKV, MKV->segment_offset, 10); - //fprintf(stderr, "MKV: allocated main seekhead at 0x%x\n", MKV->main_seekhead); - if (!MKV->main_seekhead) - { - fprintf(stderr,"MKV: couldn't allocate seekhead\n"); - return -1; - } - - ret = mkv_add_seekhead_entry(MKV->main_seekhead, MATROSKA_ID_INFO, io_get_offset(MKV->writer)); - if (ret < 0) return ret; - - segment_info = mkv_start_ebml_master(MKV, MATROSKA_ID_INFO, 0); - mkv_put_ebml_uint(MKV, MATROSKA_ID_TIMECODESCALE, MKV->timescale); - mkv_put_ebml_string(MKV, MATROSKA_ID_MUXINGAPP , "Guvcview Muxer-2013.01"); - mkv_put_ebml_string(MKV, MATROSKA_ID_WRITINGAPP, "Guvcview"); - - /*generate seg uid - 16 byte random int*/ - GRand* rand_uid= g_rand_new_with_seed(2); - int seg_uid[4] = {0,0,0,0}; - seg_uid[0] = g_rand_int_range(rand_uid, G_MININT32, G_MAXINT32); - seg_uid[1] = g_rand_int_range(rand_uid, G_MININT32, G_MAXINT32); - seg_uid[2] = g_rand_int_range(rand_uid, G_MININT32, G_MAXINT32); - seg_uid[3] = g_rand_int_range(rand_uid, G_MININT32, G_MAXINT32); - mkv_put_ebml_binary(MKV, MATROSKA_ID_SEGMENTUID, seg_uid, 16); - - // reserve space for the duration - MKV->duration = 0; - MKV->duration_offset = io_get_offset(MKV->writer); - mkv_put_ebml_void(MKV, 11); // assumes double-precision float to be written - mkv_end_ebml_master(MKV, segment_info); - - ret = mkv_write_tracks(MKV); - if (ret < 0) return ret; - - - MKV->cues = mkv_start_cues(MKV->segment_offset); - if (MKV->cues == NULL) - { - fprintf(stderr,"MKV: couldn't allocate cues\n"); - return -1; - } - - io_flush_buffer(MKV->writer); - return 0; -} - -static int mkv_processh264_nalu(BYTE *data, int size) -{ - //replace 00 00 00 01 (nalu marker) with nalu size - int last_nalu = 0; //marks last nalu in buffer - int tot_nal = 0; - uint8_t *nal_start = data; - uint8_t *sp = data; - uint8_t *ep = NULL; - uint32_t nal_size = 0; - - while (!last_nalu) - { - nal_size = 0; - - //search for NALU marker - for(sp = nal_start; sp < data + size - 4; ++sp) - { - if(sp[0] == 0x00 && - sp[1] == 0x00 && - sp[2] == 0x00 && - sp[3] == 0x01) - { - nal_start = sp + 4; - break; - } - } - - //search for end of NALU - for(ep = nal_start; ep < data + size - 4; ++ep) - { - if(ep[0] == 0x00 && - ep[1] == 0x00 && - ep[2] == 0x00 && - ep[3] == 0x01) - { - nal_size = ep - nal_start; - nal_start = ep;//reset for next NALU - break; - } - } - - if(!nal_size) - { - last_nalu = 1; - nal_size = data + size - nal_start; - } - - sp[0] = (nal_size >> 24) & 0x000000FF; - sp[1] = (nal_size >> 16) & 0x000000FF; - sp[2] = (nal_size >> 8) & 0x000000FF; - sp[3] = (nal_size) & 0x000000FF; - - tot_nal++; - - } - - return tot_nal; -} - -static int mkv_blockgroup_size(int pkt_size) -{ - int size = pkt_size + 4; - size += ebml_num_size(size); - size += 2; // EBML ID for block and block duration - size += 8; // max size of block duration - size += ebml_num_size(size); - size += 1; // blockgroup EBML ID - return size; -} - -static void mkv_write_block(mkv_Context* MKV, - unsigned int blockid, - int stream_index, - BYTE* data, - int size, - uint64_t pts, - int flags) -{ - io_Stream* stream = get_stream(MKV->stream_list, stream_index); - if(stream->codec_id == AV_CODEC_ID_H264 && stream->h264_process) - mkv_processh264_nalu(data, size); - - uint8_t block_flags = 0x00; - - if(!!(flags & AV_PKT_FLAG_KEY)) //for simple block - block_flags |= 0x80; - - mkv_put_ebml_id(MKV, blockid); - mkv_put_ebml_num(MKV, size+4, 0); - io_write_w8(MKV->writer, 0x80 | (stream_index + 1));// this assumes stream_index is less than 126 - io_write_wb16(MKV->writer, pts - MKV->cluster_pts); //pts and cluster_pts are scaled - io_write_w8(MKV->writer, block_flags); - io_write_buf(MKV->writer, data, size); -} - -static int mkv_write_packet_internal(mkv_Context* MKV, - int stream_index, - BYTE* data, - int size, - int duration, - uint64_t pts, - int flags) -{ - int keyframe = !!(flags & AV_PKT_FLAG_KEY); - - int use_simpleblock = 1; - - int ret; - uint64_t ts = pts / MKV->timescale; //scale the time stamp - - io_Stream* stream = get_stream(MKV->stream_list, stream_index); - stream->packet_count++; - - if (!MKV->cluster_pos) - { - MKV->cluster_pos = io_get_offset(MKV->writer); - MKV->cluster = mkv_start_ebml_master(MKV, MATROSKA_ID_CLUSTER, 0); - mkv_put_ebml_uint(MKV, MATROSKA_ID_CLUSTERTIMECODE, MAX(0, ts)); - MKV->cluster_pts = MAX(0, ts); - } - - if(use_simpleblock) - mkv_write_block(MKV, MATROSKA_ID_SIMPLEBLOCK, stream_index, data, size, ts, flags); - else - { - ebml_master blockgroup = mkv_start_ebml_master(MKV, MATROSKA_ID_BLOCKGROUP, mkv_blockgroup_size(size)); - mkv_write_block(MKV, MATROSKA_ID_BLOCK, stream_index, data, size, ts, flags); - if(duration) - mkv_put_ebml_uint(MKV, MATROSKA_ID_BLOCKDURATION, duration); - mkv_end_ebml_master(MKV, blockgroup); - } - - if (get_stream(MKV->stream_list, stream_index)->type == STREAM_TYPE_VIDEO && keyframe) - { - //fprintf(stderr,"MKV: add a cue point\n"); - ret = mkv_add_cuepoint(MKV->cues, stream_index, ts, MKV->cluster_pos); - if (ret < 0) return ret; - } - - MKV->duration = MAX(MKV->duration, ts + duration); - return 0; -} - -static int mkv_copy_packet(mkv_Context* MKV, - int stream_index, - BYTE* data, - int size, - int duration, - uint64_t pts, - int flags) -{ - if(size > MKV->pkt_buffer_size) - { - MKV->pkt_buffer_size = size; - MKV->pkt_buffer = g_renew(BYTE, MKV->pkt_buffer, MKV->pkt_buffer_size); - } - - if (!MKV->pkt_buffer) - { - fprintf(stderr,"MKV: couldn't allocate mem for packet\n"); - return -1; - } - memcpy(MKV->pkt_buffer, data, size); - MKV->pkt_size = size; - MKV->pkt_duration = duration; - MKV->pkt_pts = pts; - MKV->pkt_flags = flags; - MKV->pkt_stream_index = stream_index; - - return 0; -} - -/** public interface */ -int mkv_write_packet(mkv_Context* MKV, - int stream_index, - BYTE* data, - int size, - int duration, - uint64_t pts, - int flags) -{ - int ret, keyframe = !!(flags & AV_PKT_FLAG_KEY); - uint64_t ts = pts; - - ts -= MKV->first_pts; - - int cluster_size = io_get_offset(MKV->writer) - MKV->cluster_pos; - - io_Stream* stream = get_stream(MKV->stream_list, stream_index); - // start a new cluster every 5 MB or 5 sec, or 32k / 1 sec for streaming or - // after 4k and on a keyframe - if (MKV->cluster_pos && - (/*(cluster_size > 32*1024 && ts > MKV->cluster_pts + 1000) ||*/ - (cluster_size > 5*1024*1024 && ts > MKV->cluster_pts + 5000) || - (stream->type == STREAM_TYPE_VIDEO && keyframe && cluster_size > 4*1024))) - { - //fprintf(stderr, "MKV: Starting new cluster at offset %" PRIu64 " bytes, pts %" PRIu64 "\n", io_get_offset(MKV->writer), ts); - mkv_end_ebml_master(MKV, MKV->cluster); - MKV->cluster_pos = 0; - } - - // check if we have an audio packet cached - if (MKV->pkt_size > 0) - { - ret = mkv_write_packet_internal(MKV, - MKV->pkt_stream_index, - MKV->pkt_buffer, - MKV->pkt_size, - MKV->pkt_duration, - MKV->pkt_pts, - MKV->pkt_flags); - - MKV->pkt_size = 0; - if (ret < 0) - { - fprintf(stderr, "MKV: Could not write cached audio packet\n"); - return ret; - } - } - - // buffer an audio packet to ensure the packet containing the video - // keyframe's timecode is contained in the same cluster for WebM - if (stream->type == STREAM_TYPE_AUDIO) - ret = mkv_copy_packet(MKV, stream_index, data, size, duration, ts, flags); - else - ret = mkv_write_packet_internal(MKV, stream_index, data, size, duration, ts, flags); - - return ret; -} - -int mkv_close(mkv_Context* MKV) -{ - int64_t currentpos, cuespos; - int ret; - printf("closing MKV\n"); - // check if we have an audio packet cached - if (MKV->pkt_size > 0) - { - ret = mkv_write_packet_internal(MKV, - MKV->pkt_stream_index, - MKV->pkt_buffer, - MKV->pkt_size, - MKV->pkt_duration, - MKV->pkt_pts, - MKV->pkt_flags); - - MKV->pkt_size = 0; - if (ret < 0) - { - fprintf(stderr, "MKV: Could not write cached audio packet\n"); - return ret; - } - } - - printf("closing cluster\n"); - if(MKV->cluster_pos) - mkv_end_ebml_master(MKV, MKV->cluster); - - if (MKV->cues->num_entries) - { - printf("writing cues\n"); - cuespos = mkv_write_cues(MKV, MKV->cues, MKV->stream_list_size); - printf("add seekhead\n"); - ret = mkv_add_seekhead_entry(MKV->main_seekhead, MATROSKA_ID_CUES, cuespos); - if (ret < 0) return ret; - } - printf("write seekhead\n"); - mkv_write_seekhead(MKV, MKV->main_seekhead); - - // update the duration - fprintf(stderr,"MKV: end duration = %" PRIu64 " (%f) \n", MKV->duration, (float) MKV->duration); - currentpos = io_get_offset(MKV->writer); - io_seek(MKV->writer, MKV->duration_offset); - - mkv_put_ebml_float(MKV, MATROSKA_ID_DURATION, (float) MKV->duration); - io_seek(MKV->writer, currentpos); - - mkv_end_ebml_master(MKV, MKV->segment); - av_freep(&MKV->cues->entries); - av_freep(&MKV->cues); - - return 0; -} - -mkv_Context* mkv_create_context(char* filename, int mode) -{ - mkv_Context* MKV = g_new0(mkv_Context, 1); - - MKV->writer = io_create_writer(filename, 0); - MKV->mode = mode; - MKV->main_seekhead = NULL; - MKV->cues = NULL; - MKV->pkt_buffer = NULL; - MKV->stream_list = NULL; - MKV->timescale = 1000000; - - return MKV; -} - -void mkv_destroy_context(mkv_Context* MKV) -{ - io_destroy_writer(MKV->writer); - - destroy_stream_list(MKV->stream_list, &MKV->stream_list_size); - - if(MKV->pkt_buffer != NULL) - g_free(MKV->pkt_buffer); - g_free(MKV); -} - -io_Stream* -mkv_add_video_stream(mkv_Context *MKV, - int32_t width, - int32_t height, - int32_t fps, - int32_t fps_num, - int32_t codec_id) -{ - io_Stream* stream = add_new_stream(&MKV->stream_list, &MKV->stream_list_size); - stream->type = STREAM_TYPE_VIDEO; - stream->width = width; - stream->height = height; - stream->codec_id = codec_id; - - stream->fps = (double) fps/fps_num; - stream->indexes = NULL; - - return stream; -} - -io_Stream* -mkv_add_audio_stream(mkv_Context *MKV, - int32_t channels, - int32_t rate, - int32_t bits, - int32_t mpgrate, - int32_t codec_id, - int32_t format) -{ - io_Stream* stream = add_new_stream(&MKV->stream_list, &MKV->stream_list_size); - stream->type = STREAM_TYPE_AUDIO; - - stream->a_rate = rate; - stream->a_bits = bits; - stream->mpgrate = mpgrate; - stream->a_vbr = 0; - stream->codec_id = codec_id; - stream->a_fmt = format; - - stream->indexes = NULL; - - return stream; -} diff -Nru guvcview-1.7.3/src/matroska.h guvcview-2.0.1+ubuntu1~ppa1/src/matroska.h --- guvcview-1.7.3/src/matroska.h 2014-03-24 22:56:28.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/src/matroska.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,379 +0,0 @@ -/*******************************************************************************# -# guvcview http://guvcview.sourceforge.net # -# # -# Paulo Assis # -# # -# This is a heavily modified version of the matroska interface from x264 # -# Copyright (C) 2005 Mike Matsnev # -# # -# This program is free software; you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation; either version 2 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program; if not, write to the Free Software # -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# # -********************************************************************************/ - -#ifndef GUVC_MATROSKA_H -#define GUVC_MATROSKA_H - -#include "defs.h" -#include -#include -#include -#include -#include "file_io.h" -#include "io_stream.h" - -/* EBML version supported */ -#define EBML_VERSION 1 - -/* top-level master-IDs */ -#define EBML_ID_HEADER 0x1A45DFA3 - -/* IDs in the HEADER master */ -#define EBML_ID_EBMLVERSION 0x4286 -#define EBML_ID_EBMLREADVERSION 0x42F7 -#define EBML_ID_EBMLMAXIDLENGTH 0x42F2 -#define EBML_ID_EBMLMAXSIZELENGTH 0x42F3 -#define EBML_ID_DOCTYPE 0x4282 -#define EBML_ID_DOCTYPEVERSION 0x4287 -#define EBML_ID_DOCTYPEREADVERSION 0x4285 - -/* general EBML types */ -#define EBML_ID_VOID 0xEC -#define EBML_ID_CRC32 0xBF - -/* - * Matroska element IDs, max. 32 bits - */ - -/* toplevel segment */ -#define MATROSKA_ID_SEGMENT 0x18538067 - -/* Matroska top-level master IDs */ -#define MATROSKA_ID_INFO 0x1549A966 -#define MATROSKA_ID_TRACKS 0x1654AE6B -#define MATROSKA_ID_CUES 0x1C53BB6B -#define MATROSKA_ID_TAGS 0x1254C367 -#define MATROSKA_ID_SEEKHEAD 0x114D9B74 -#define MATROSKA_ID_ATTACHMENTS 0x1941A469 -#define MATROSKA_ID_CLUSTER 0x1F43B675 -#define MATROSKA_ID_CHAPTERS 0x1043A770 - -/* IDs in the info master */ -#define MATROSKA_ID_TIMECODESCALE 0x2AD7B1 -#define MATROSKA_ID_DURATION 0x4489 -#define MATROSKA_ID_TITLE 0x7BA9 -#define MATROSKA_ID_WRITINGAPP 0x5741 -#define MATROSKA_ID_MUXINGAPP 0x4D80 -#define MATROSKA_ID_DATEUTC 0x4461 -#define MATROSKA_ID_SEGMENTUID 0x73A4 - -/* ID in the tracks master */ -#define MATROSKA_ID_TRACKENTRY 0xAE - -/* IDs in the trackentry master */ -#define MATROSKA_ID_TRACKNUMBER 0xD7 -#define MATROSKA_ID_TRACKUID 0x73C5 -#define MATROSKA_ID_TRACKTYPE 0x83 -#define MATROSKA_ID_TRACKAUDIO 0xE1 -#define MATROSKA_ID_TRACKVIDEO 0xE0 -#define MATROSKA_ID_CODECID 0x86 -#define MATROSKA_ID_CODECPRIVATE 0x63A2 -#define MATROSKA_ID_CODECNAME 0x258688 -#define MATROSKA_ID_CODECINFOURL 0x3B4040 -#define MATROSKA_ID_CODECDOWNLOADURL 0x26B240 -#define MATROSKA_ID_CODECDECODEALL 0xAA -#define MATROSKA_ID_TRACKNAME 0x536E -#define MATROSKA_ID_TRACKLANGUAGE 0x22B59C -#define MATROSKA_ID_TRACKFLAGENABLED 0xB9 -#define MATROSKA_ID_TRACKFLAGDEFAULT 0x88 -#define MATROSKA_ID_TRACKFLAGFORCED 0x55AA -#define MATROSKA_ID_TRACKFLAGLACING 0x9C -#define MATROSKA_ID_TRACKMINCACHE 0x6DE7 -#define MATROSKA_ID_TRACKMAXCACHE 0x6DF8 -#define MATROSKA_ID_TRACKDEFAULTDURATION 0x23E383 -#define MATROSKA_ID_TRACKCONTENTENCODINGS 0x6D80 -#define MATROSKA_ID_TRACKCONTENTENCODING 0x6240 -#define MATROSKA_ID_TRACKTIMECODESCALE 0x23314F -#define MATROSKA_ID_TRACKMAXBLKADDID 0x55EE - -/* IDs in the trackvideo master */ -#define MATROSKA_ID_VIDEOFRAMERATE 0x2383E3 -#define MATROSKA_ID_VIDEODISPLAYWIDTH 0x54B0 -#define MATROSKA_ID_VIDEODISPLAYHEIGHT 0x54BA -#define MATROSKA_ID_VIDEOPIXELWIDTH 0xB0 -#define MATROSKA_ID_VIDEOPIXELHEIGHT 0xBA -#define MATROSKA_ID_VIDEOPIXELCROPB 0x54AA -#define MATROSKA_ID_VIDEOPIXELCROPT 0x54BB -#define MATROSKA_ID_VIDEOPIXELCROPL 0x54CC -#define MATROSKA_ID_VIDEOPIXELCROPR 0x54DD -#define MATROSKA_ID_VIDEODISPLAYUNIT 0x54B2 -#define MATROSKA_ID_VIDEOFLAGINTERLACED 0x9A -#define MATROSKA_ID_VIDEOSTEREOMODE 0x53B9 -#define MATROSKA_ID_VIDEOASPECTRATIO 0x54B3 -#define MATROSKA_ID_VIDEOCOLORSPACE 0x2EB524 - -/* IDs in the trackaudio master */ -#define MATROSKA_ID_AUDIOSAMPLINGFREQ 0xB5 -#define MATROSKA_ID_AUDIOOUTSAMPLINGFREQ 0x78B5 - -#define MATROSKA_ID_AUDIOBITDEPTH 0x6264 -#define MATROSKA_ID_AUDIOCHANNELS 0x9F - -/* IDs in the content encoding master */ -#define MATROSKA_ID_ENCODINGORDER 0x5031 -#define MATROSKA_ID_ENCODINGSCOPE 0x5032 -#define MATROSKA_ID_ENCODINGTYPE 0x5033 -#define MATROSKA_ID_ENCODINGCOMPRESSION 0x5034 -#define MATROSKA_ID_ENCODINGCOMPALGO 0x4254 -#define MATROSKA_ID_ENCODINGCOMPSETTINGS 0x4255 - -/* ID in the cues master */ -#define MATROSKA_ID_POINTENTRY 0xBB - -/* IDs in the pointentry master */ -#define MATROSKA_ID_CUETIME 0xB3 -#define MATROSKA_ID_CUETRACKPOSITION 0xB7 - -/* IDs in the cuetrackposition master */ -#define MATROSKA_ID_CUETRACK 0xF7 -#define MATROSKA_ID_CUECLUSTERPOSITION 0xF1 -#define MATROSKA_ID_CUEBLOCKNUMBER 0x5378 - -/* IDs in the tags master */ -#define MATROSKA_ID_TAG 0x7373 -#define MATROSKA_ID_SIMPLETAG 0x67C8 -#define MATROSKA_ID_TAGNAME 0x45A3 -#define MATROSKA_ID_TAGSTRING 0x4487 -#define MATROSKA_ID_TAGLANG 0x447A -#define MATROSKA_ID_TAGDEFAULT 0x44B4 -#define MATROSKA_ID_TAGTARGETS 0x63C0 -#define MATROSKA_ID_TAGTARGETS_TYPE 0x63CA -#define MATROSKA_ID_TAGTARGETS_TYPEVALUE 0x68CA -#define MATROSKA_ID_TAGTARGETS_TRACKUID 0x63C5 -#define MATROSKA_ID_TAGTARGETS_CHAPTERUID 0x63C4 -#define MATROSKA_ID_TAGTARGETS_ATTACHUID 0x63C6 - -/* IDs in the seekhead master */ -#define MATROSKA_ID_SEEKENTRY 0x4DBB - -/* IDs in the seekpoint master */ -#define MATROSKA_ID_SEEKID 0x53AB -#define MATROSKA_ID_SEEKPOSITION 0x53AC - -/* IDs in the cluster master */ -#define MATROSKA_ID_CLUSTERTIMECODE 0xE7 -#define MATROSKA_ID_CLUSTERPOSITION 0xA7 -#define MATROSKA_ID_CLUSTERPREVSIZE 0xAB -#define MATROSKA_ID_BLOCKGROUP 0xA0 -#define MATROSKA_ID_SIMPLEBLOCK 0xA3 - -/* IDs in the blockgroup master */ -#define MATROSKA_ID_BLOCK 0xA1 -#define MATROSKA_ID_BLOCKDURATION 0x9B -#define MATROSKA_ID_BLOCKREFERENCE 0xFB - -/* IDs in the attachments master */ -#define MATROSKA_ID_ATTACHEDFILE 0x61A7 -#define MATROSKA_ID_FILEDESC 0x467E -#define MATROSKA_ID_FILENAME 0x466E -#define MATROSKA_ID_FILEMIMETYPE 0x4660 -#define MATROSKA_ID_FILEDATA 0x465C -#define MATROSKA_ID_FILEUID 0x46AE - -/* IDs in the chapters master */ -#define MATROSKA_ID_EDITIONENTRY 0x45B9 -#define MATROSKA_ID_CHAPTERATOM 0xB6 -#define MATROSKA_ID_CHAPTERTIMESTART 0x91 -#define MATROSKA_ID_CHAPTERTIMEEND 0x92 -#define MATROSKA_ID_CHAPTERDISPLAY 0x80 -#define MATROSKA_ID_CHAPSTRING 0x85 -#define MATROSKA_ID_CHAPLANG 0x437C -#define MATROSKA_ID_EDITIONUID 0x45BC -#define MATROSKA_ID_EDITIONFLAGHIDDEN 0x45BD -#define MATROSKA_ID_EDITIONFLAGDEFAULT 0x45DB -#define MATROSKA_ID_EDITIONFLAGORDERED 0x45DD -#define MATROSKA_ID_CHAPTERUID 0x73C4 -#define MATROSKA_ID_CHAPTERFLAGHIDDEN 0x98 -#define MATROSKA_ID_CHAPTERFLAGENABLED 0x4598 -#define MATROSKA_ID_CHAPTERPHYSEQUIV 0x63C3 - -/* track type*/ -#define MATROSKA_TRACK_TYPE_NONE 0x0 -#define MATROSKA_TRACK_TYPE_VIDEO 0x1 -#define MATROSKA_TRACK_TYPE_AUDIO 0x2 -#define MATROSKA_TRACK_TYPE_COMPLEX 0x3 -#define MATROSKA_TRACK_TYPE_LOGO 0x10 -#define MATROSKA_TRACK_TYPE_SUBTITLE 0x11 -#define MATROSKA_TRACK_TYPE_CONTROL 0x20 - - -/* -typedef enum { - MATROSKA_TRACK_ENCODING_COMP_ZLIB = 0, - MATROSKA_TRACK_ENCODING_COMP_BZLIB = 1, - MATROSKA_TRACK_ENCODING_COMP_LZO = 2, - MATROSKA_TRACK_ENCODING_COMP_HEADERSTRIP = 3, -} MatroskaTrackEncodingCompAlgo; -*/ - -typedef struct ebml_master { - int64_t pos; ///< absolute offset in the file where the master's elements start - int sizebytes; ///< how many bytes were reserved for the size -} ebml_master; - -typedef struct mkv_seekhead_entry { - unsigned int elementid; - uint64_t segmentpos; -} mkv_seekhead_entry; - -typedef struct mkv_seekhead { - int64_t filepos; - int64_t segment_offset; ///< the file offset to the beginning of the segment - int reserved_size; ///< -1 if appending to file - int max_entries; - mkv_seekhead_entry *entries; - int num_entries; -} mkv_seekhead; - -typedef struct { - uint64_t pts; - int tracknum; - int64_t cluster_pos; ///< file offset of the cluster containing the block -} mkv_cuepoint; - -typedef struct { - int64_t segment_offset; - mkv_cuepoint *entries; - int num_entries; -} mkv_cues; - -typedef struct mkv_Context { - int mode; //matroska or webm - io_Writer* writer; - ebml_master segment; - int64_t segment_offset; - ebml_master cluster; - int64_t cluster_pos; ///< file offset of the current cluster - int64_t cluster_pts; - int64_t duration_offset; - int64_t duration; - mkv_seekhead *main_seekhead; - mkv_cues *cues; - - uint64_t timescale; - uint64_t first_pts; //pts of first packet - // store one audio packet (webm) - unsigned int pkt_buffer_size; - BYTE* pkt_buffer; - unsigned int pkt_size; - uint64_t pkt_pts; - int pkt_duration; - int pkt_stream_index; - int pkt_flags; - - io_Stream* stream_list; - int stream_list_size; -} mkv_Context; - - -/** create a muxer context - * mode : WEBM_FORMAT or MKV_FORMAT*/ -mkv_Context* -mkv_create_context(char* filename, int mode); - -/** add a video stream to the context */ -io_Stream* -mkv_add_video_stream(mkv_Context *MKV, - int32_t width, - int32_t height, - int32_t fps, - int32_t fps_num, - int32_t codec_id); - -/** add a audio stream to the context */ -io_Stream* -mkv_add_audio_stream(mkv_Context *MKV, - int32_t channels, - int32_t rate, - int32_t bits, - int32_t mpgrate, - int32_t codec_id, - int32_t format); - -/** write the header*/ -int mkv_write_header(mkv_Context* MKV); - -int mkv_write_packet(mkv_Context* MKV, - int stream_index, - BYTE* data, - int size, - int duration, - uint64_t pts, - int flags); - -/** finalize file operations*/ -int mkv_close(mkv_Context* MKV); - -/** destroy the muxer context (clean up)*/ -void mkv_destroy_context(mkv_Context* MKV); - - - - - - - - - - - - - - - - - - - - - - - - -typedef struct mk_Writer mk_Writer; - -mk_Writer *mk_createWriter( const char *filename, int format ); - -int mk_writeHeader( mk_Writer *w, const char *writingApp, - const char *codecID, - const char *AcodecID, - const void *codecPrivate, int64_t codecPrivateSize, - UINT64 default_frame_duration, - const void *AcodecPrivate, int64_t AcodecPrivateSize, - UINT64 default_aframe_duration, - int64_t timescale, - unsigned width, unsigned height, - unsigned d_width, unsigned d_height, - float SampRate, int channels, int bitsSample ); - -void mk_setDef_Duration(mk_Writer *w, UINT64 def_duration); -int mk_startFrame( mk_Writer *w ); -int mk_startAudioFrame(mk_Writer *w); -int mk_addFrameData( mk_Writer *w, const void *data, int64_t size ); -int mk_addAudioFrameData(mk_Writer *w, const void *data, int64_t size); -int mk_setFrameFlags( mk_Writer *w, int64_t timestamp, int keyframe ); -int mk_setAudioFrameFlags(mk_Writer *w,int64_t timestamp, int keyframe); -int mk_close( mk_Writer *w ); - -#endif diff -Nru guvcview-1.7.3/src/menubar.c guvcview-2.0.1+ubuntu1~ppa1/src/menubar.c --- guvcview-1.7.3/src/menubar.c 2014-03-24 22:56:28.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/src/menubar.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,259 +0,0 @@ -/*******************************************************************************# -# guvcview http://guvcview.sourceforge.net # -# # -# Paulo Assis # -# Nobuhiro Iwamatsu # -# Dr. Alexander K. Seewald # -# Autofocus algorithm # -# Flemming Frandsen # -# George Sedov # -# # -# This program is free software; you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation; either version 2 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program; if not, write to the Free Software # -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# # -********************************************************************************/ - -#include -#include -/* support for internationalization - i18n */ -#include -/* locale.h is needed if -O0 used (no optimiztions) */ -/* otherwise included from libintl.h on glib/gi18n.h */ -#include -#include - -#include "../config.h" -#include "string_utils.h" -#include "options.h" -#include "vcodecs.h" -#include "acodecs.h" -#include "callbacks.h" - -GtkWidget *create_menu(struct ALL_DATA *all_data, int control_only) -{ - struct GLOBAL *global = all_data->global; - struct GWIDGET *gwidget = all_data->gwidget; - - GtkWidget *menubar; - - GtkWidget *controls_menu; - GtkWidget *controls_top; - GtkWidget *controls_load; - GtkWidget *controls_save; - GtkWidget *controls_default; - GtkWidget *camera_button_menu; - GtkWidget *camera_button_top; - - menubar = gtk_menu_bar_new(); - gtk_menu_bar_set_pack_direction(GTK_MENU_BAR(menubar), GTK_PACK_DIRECTION_LTR); - - controls_menu = gtk_menu_new(); - - //controls menu - controls_top = gtk_menu_item_new_with_label(_("Settings")); - controls_load = gtk_menu_item_new_with_label(_("Load Profile")); - controls_save = gtk_menu_item_new_with_label(_("Save Profile")); - controls_default = gtk_menu_item_new_with_label(_("Hardware Defaults")); - - gtk_widget_show (controls_top); - gtk_widget_show (controls_load); - gtk_widget_show (controls_save); - gtk_widget_show (controls_default); - - camera_button_menu = gtk_menu_new(); - camera_button_top = gtk_menu_item_new_with_label(_("Camera Button")); - - GSList *camera_button_group = NULL; - - GtkWidget *def_image = gtk_radio_menu_item_new_with_label(camera_button_group, _("Capture Image")); - g_object_set_data (G_OBJECT (def_image), "camera_default", GINT_TO_POINTER(0)); - gtk_menu_shell_append(GTK_MENU_SHELL(camera_button_menu), def_image); - - camera_button_group = gtk_radio_menu_item_get_group (GTK_RADIO_MENU_ITEM (def_image)); - GtkWidget *def_video = gtk_radio_menu_item_new_with_label(camera_button_group, _("Capture Video")); - g_object_set_data (G_OBJECT (def_video), "camera_default", GINT_TO_POINTER(1)); - gtk_menu_shell_append(GTK_MENU_SHELL(camera_button_menu), def_video); - - gtk_widget_show (camera_button_top); - gtk_widget_show (def_image); - gtk_widget_show (def_video); - - gtk_menu_item_set_submenu(GTK_MENU_ITEM(camera_button_top), camera_button_menu); - - if (global->default_action == 0) - gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (def_image), TRUE); - else - gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (def_video), TRUE); - - g_signal_connect (GTK_RADIO_MENU_ITEM(def_image), "toggled", - G_CALLBACK (camera_button_menu_changed), all_data); - g_signal_connect (GTK_RADIO_MENU_ITEM(def_video), "toggled", - G_CALLBACK (camera_button_menu_changed), all_data); - - g_object_set_data (G_OBJECT (controls_save), "profile_dialog", GINT_TO_POINTER(1)); - g_signal_connect (GTK_MENU_ITEM(controls_save), "activate", - G_CALLBACK (Profile_clicked), all_data); - g_object_set_data (G_OBJECT (controls_load), "profile_dialog", GINT_TO_POINTER(0)); - g_signal_connect (GTK_MENU_ITEM(controls_load), "activate", - G_CALLBACK (Profile_clicked), all_data); - g_signal_connect (GTK_MENU_ITEM(controls_default), "activate", - G_CALLBACK (Defaults_clicked), all_data); - - gtk_menu_item_set_submenu(GTK_MENU_ITEM(controls_top), controls_menu); - gtk_menu_shell_append(GTK_MENU_SHELL(controls_menu), controls_load); - gtk_menu_shell_append(GTK_MENU_SHELL(controls_menu), controls_save); - gtk_menu_shell_append(GTK_MENU_SHELL(controls_menu), controls_default); - gtk_menu_shell_append(GTK_MENU_SHELL(controls_menu), camera_button_top); - gtk_menu_shell_append(GTK_MENU_SHELL(menubar), controls_top); - - if(!control_only) /*control_only exclusion */ - { - GtkWidget *item = NULL; - - GtkWidget *video_menu; - //GtkWidget *video_top; - GtkWidget *video_file; - GtkWidget *video_timestamp; - GtkWidget *video_codec_menu; - GtkWidget *video_codec_top; - GtkWidget *video_codec_prop; - GtkWidget *audio_codec_menu; - GtkWidget *audio_codec_top; - GtkWidget *audio_codec_prop; - - GtkWidget *photo_menu; - //GtkWidget *photo_top; - GtkWidget *photo_file; - GtkWidget *photo_timestamp; - - video_menu = gtk_menu_new(); - photo_menu = gtk_menu_new(); - - //video menu - gwidget->menu_video_top = gtk_menu_item_new_with_label(_("Video")); - video_file = gtk_menu_item_new_with_label(_("File")); - video_timestamp = gtk_check_menu_item_new_with_label(_("Increment Filename")); - - gtk_widget_show (gwidget->menu_video_top); - gtk_widget_show (video_file); - gtk_widget_show (video_timestamp); - - /** flag the file dialog as video file*/ - g_object_set_data (G_OBJECT (video_file), "file_butt", GINT_TO_POINTER(1)); - g_signal_connect (GTK_MENU_ITEM(video_file), "activate", - G_CALLBACK (file_chooser), all_data); - - /** add callback to Append timestamp */ - gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (video_timestamp), (global->vid_inc > 0)); - g_signal_connect (GTK_CHECK_MENU_ITEM(video_timestamp), "toggled", - G_CALLBACK (video_prefix_toggled), all_data); - - //video codec submenu - video_codec_menu = gtk_menu_new(); - video_codec_top = gtk_menu_item_new_with_label(_("Video Codec")); - gtk_widget_show (video_codec_top); - gtk_menu_item_set_submenu(GTK_MENU_ITEM(video_codec_top), video_codec_menu); - //Add codecs to submenu - gwidget->vgroup = NULL; - int num_vcodecs = setVcodecVal(); - int vcodec_ind =0; - for (vcodec_ind =0; vcodec_ind < num_vcodecs; vcodec_ind++) - { - item = gtk_radio_menu_item_new_with_label(gwidget->vgroup, gettext(get_desc4cc(vcodec_ind))); - if (vcodec_ind == global->VidCodec) - { - gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (item), TRUE); - global->VidCodec_ID = get_vcodec_id(global->VidCodec); //sync the index with the codec_id - } - //NOTE: GSList indexes (g_slist_index) are in reverse order: last inserted has index 0 - gwidget->vgroup = gtk_radio_menu_item_get_group (GTK_RADIO_MENU_ITEM (item)); - - gtk_widget_show (item); - gtk_menu_shell_append(GTK_MENU_SHELL(video_codec_menu), item); - - g_signal_connect (GTK_RADIO_MENU_ITEM(item), "toggled", - G_CALLBACK (VidCodec_menu_changed), all_data); - } - - video_codec_prop = gtk_menu_item_new_with_label(_("Video Codec Properties")); - gtk_widget_show (video_codec_prop); - g_signal_connect (GTK_MENU_ITEM(video_codec_prop), "activate", - G_CALLBACK (lavc_properties), all_data); - - //Audio codec submenu - audio_codec_menu = gtk_menu_new(); - audio_codec_top = gtk_menu_item_new_with_label(_("Audio Codec")); - gtk_widget_show (audio_codec_top); - gtk_menu_item_set_submenu(GTK_MENU_ITEM(audio_codec_top), audio_codec_menu); - //Add codecs to submenu - gwidget->agroup = NULL; - int num_acodecs = setAcodecVal(); - int acodec_ind =0; - for (acodec_ind =0; acodec_ind < num_acodecs; acodec_ind++) - { - item = gtk_radio_menu_item_new_with_label(gwidget->agroup, gettext(get_aud_desc4cc(acodec_ind))); - gwidget->agroup = gtk_radio_menu_item_get_group (GTK_RADIO_MENU_ITEM (item)); - if (acodec_ind == global->AudCodec) - gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (item), TRUE); - - gtk_widget_show (item); - gtk_menu_shell_append(GTK_MENU_SHELL(audio_codec_menu), item); - - g_signal_connect (GTK_RADIO_MENU_ITEM(item), "toggled", - G_CALLBACK (AudCodec_menu_changed), all_data); - } - - audio_codec_prop = gtk_menu_item_new_with_label(_("Audio Codec Properties")); - gtk_widget_show (audio_codec_prop); - g_signal_connect (GTK_MENU_ITEM(audio_codec_prop), "activate", - G_CALLBACK (lavc_audio_properties), all_data); - - gtk_menu_item_set_submenu(GTK_MENU_ITEM(gwidget->menu_video_top), video_menu); - gtk_menu_shell_append(GTK_MENU_SHELL(video_menu), video_file); - gtk_menu_shell_append(GTK_MENU_SHELL(video_menu), video_timestamp); - gtk_menu_shell_append(GTK_MENU_SHELL(video_menu), video_codec_top); - gtk_menu_shell_append(GTK_MENU_SHELL(video_menu), video_codec_prop); - gtk_menu_shell_append(GTK_MENU_SHELL(video_menu), audio_codec_top); - gtk_menu_shell_append(GTK_MENU_SHELL(video_menu), audio_codec_prop); - gtk_menu_shell_append(GTK_MENU_SHELL(menubar), gwidget->menu_video_top); - - //photo menu - gwidget->menu_photo_top = gtk_menu_item_new_with_label(_("Photo")); - photo_file = gtk_menu_item_new_with_label(_("File")); - photo_timestamp = gtk_check_menu_item_new_with_label(_("Increment Filename")); - - gtk_widget_show (gwidget->menu_photo_top); - gtk_widget_show (photo_file); - gtk_widget_show (photo_timestamp); - - /** flag the file dialog as image file*/ - g_object_set_data (G_OBJECT (photo_file), "file_butt", GINT_TO_POINTER(0)); - g_signal_connect (GTK_MENU_ITEM(photo_file), "activate", - G_CALLBACK (file_chooser), all_data); - - /** add callback to Append timestamp */ - gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (photo_timestamp), (global->image_inc > 0)); - g_signal_connect (GTK_CHECK_MENU_ITEM(photo_timestamp), "toggled", - G_CALLBACK (image_prefix_toggled), all_data); - - gtk_menu_item_set_submenu(GTK_MENU_ITEM(gwidget->menu_photo_top), photo_menu); - gtk_menu_shell_append(GTK_MENU_SHELL(photo_menu), photo_file); - gtk_menu_shell_append(GTK_MENU_SHELL(photo_menu), photo_timestamp); - gtk_menu_shell_append(GTK_MENU_SHELL(menubar), gwidget->menu_photo_top); - } - - gtk_widget_show (menubar); - gtk_container_set_resize_mode (GTK_CONTAINER(menubar), GTK_RESIZE_PARENT); - return menubar; -} diff -Nru guvcview-1.7.3/src/menubar.h guvcview-2.0.1+ubuntu1~ppa1/src/menubar.h --- guvcview-1.7.3/src/menubar.h 2014-03-24 22:56:28.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/src/menubar.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ -/*******************************************************************************# -# guvcview http://guvcview.sourceforge.net # -# # -# Paulo Assis # -# Nobuhiro Iwamatsu # -# Add UYVY color support(Macbook iSight) # -# # -# This program is free software; you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation; either version 2 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program; if not, write to the Free Software # -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# # -********************************************************************************/ - -#ifndef MENUBAR_H -#define MENUBAR_H - -#include "guvcview.h" - -GtkWidget *create_menu(struct ALL_DATA *all_data, int control_only); - -#endif diff -Nru guvcview-1.7.3/src/ms_time.c guvcview-2.0.1+ubuntu1~ppa1/src/ms_time.c --- guvcview-1.7.3/src/ms_time.c 2014-03-24 22:56:28.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/src/ms_time.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,93 +0,0 @@ -/*******************************************************************************# -# guvcview http://guvcview.sourceforge.net # -# # -# Paulo Assis # -# # -# This program is free software; you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation; either version 2 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program; if not, write to the Free Software # -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# # -********************************************************************************/ - - -#include -#include -#include -#include - -#include "ms_time.h" - -/*------------------------------ get time ------------------------------------*/ -/*in miliseconds*/ -DWORD ms_time (void) -{ - GTimeVal *tod; - tod = g_new0(GTimeVal, 1); - g_get_current_time(tod); - DWORD mst = (DWORD) tod->tv_sec * 1000 + (DWORD) tod->tv_usec / 1000; - g_free(tod); - return (mst); -} -/*in microseconds*/ -ULLONG us_time(void) -{ - GTimeVal *tod; - tod = g_new0(GTimeVal, 1); - g_get_current_time(tod); - ULLONG ust = (DWORD) tod->tv_sec * G_USEC_PER_SEC + (DWORD) tod->tv_usec; - g_free(tod); - return (ust); -} - -/*REAL TIME CLOCK*/ -/*in nanoseconds*/ -ULLONG ns_time (void) -{ - static struct timespec ts; - clock_gettime(CLOCK_REALTIME, &ts); - return ((ULLONG) ts.tv_sec * G_NSEC_PER_SEC + (ULLONG) ts.tv_nsec); -} - -/*MONOTONIC CLOCK*/ -/*in nanosec*/ -UINT64 ns_time_monotonic() -{ - static struct timespec ts; - clock_gettime(CLOCK_MONOTONIC, &ts); - return ((UINT64) ts.tv_sec * G_NSEC_PER_SEC + (ULLONG) ts.tv_nsec); -} - -//sleep for given time in ms -void sleep_ms(int ms_time) -{ - gulong sleep_us = ms_time *1000; /*convert to microseconds*/ - g_usleep( sleep_us );/*sleep for sleep_ms ms*/ -} - -/*wait on cond by sleeping for n_loops of sleep_ms ms (test var==val every loop)*/ -/*return remaining number of loops (if 0 then a stall occurred) */ -int wait_ms(gboolean* var, gboolean val, __MUTEX_TYPE *mutex, int ms_time, int n_loops) -{ - int n=n_loops; - __LOCK_MUTEX(mutex); - while( (*var!=val) && ( n > 0 ) ) /*wait at max (n_loops*sleep_ms) ms */ - { - __UNLOCK_MUTEX(mutex); - n--; - sleep_ms( ms_time );/*sleep for sleep_ms ms*/ - __LOCK_MUTEX(mutex); - }; - __UNLOCK_MUTEX(mutex); - return (n); -} - diff -Nru guvcview-1.7.3/src/ms_time.h guvcview-2.0.1+ubuntu1~ppa1/src/ms_time.h --- guvcview-1.7.3/src/ms_time.h 2014-03-24 22:56:28.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/src/ms_time.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,47 +0,0 @@ -/*******************************************************************************# -# guvcview http://guvcview.sourceforge.net # -# # -# Paulo Assis # -# # -# This program is free software; you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation; either version 2 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program; if not, write to the Free Software # -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# # -********************************************************************************/ -#ifndef MS_TIME_H -#define MS_TIME_H - -#include -#include "defs.h" - -#ifndef G_NSEC_PER_SEC -#define G_NSEC_PER_SEC 1000000000LL -#endif - -/*time in miliseconds*/ -DWORD ms_time (void); -/*time in microseconds*/ -ULLONG us_time(void); -/*time in nanoseconds (real time for benchmark)*/ -ULLONG ns_time (void); -/*MONOTONIC CLOCK in nano sec for time stamps*/ -UINT64 ns_time_monotonic(); - -/*sleep for given time in ms*/ -void sleep_ms(int ms_time); - -/*wait on cond by sleeping for n_loops of sleep_ms ms */ -/*(test (var == val) every loop) */ -int wait_ms(gboolean* var, gboolean val, __MUTEX_TYPE *mutex, int ms_time, int n_loops); -#endif - diff -Nru guvcview-1.7.3/src/options.c guvcview-2.0.1+ubuntu1~ppa1/src/options.c --- guvcview-1.7.3/src/options.c 2014-03-24 22:56:28.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/src/options.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,995 +0,0 @@ -/*******************************************************************************# -# guvcview http://guvcview.sourceforge.net # -# # -# Paulo Assis # -# # -# This program is free software; you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation; either version 2 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program; if not, write to the Free Software # -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# # -********************************************************************************/ - -#include -#include -#include -#include -#include -#include -/* support for internationalization - i18n */ -#include -/*needs locale.h when debug is enabled*/ -#include - -#include "defs.h" -#include "globals.h" -#include "vcodecs.h" -#include "acodecs.h" -#include "string_utils.h" -#include "avilib.h" -#include "v4l2uvc.h" -#include "../config.h" -/*----------------------- write conf (.guvcviewrc) file ----------------------*/ -int -writeConf(struct GLOBAL *global, char *videodevice) -{ - int ret=0; - FILE *fp; - //use c locale - make sure floats are writen with a "." and not a "," - setlocale(LC_NUMERIC, "C"); - //get pointers to codec properties - vcodecs_data *vcodec_defaults = get_codec_defaults(global->VidCodec); - acodecs_data *acodec_defaults = get_aud_codec_defaults(get_ind_by4cc(global->Sound_Format)); - // write to tmp file then rename after sucessfull fsync - // using fsync avois data loss on system crash - // see: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/317781/comments/54 - char *tmpfile = g_strjoin (".", global->confPath, "tmp", NULL); - if ((fp = g_fopen(tmpfile,"w"))!=NULL) - { - g_fprintf(fp,"# guvcview configuration file for %s\n\n",videodevice); - g_fprintf(fp,"version='%s'\n",VERSION); - g_fprintf(fp,"# video loop sleep time in ms: 0,1,2,3,...\n"); - g_fprintf(fp,"# increased sleep time -> less cpu load, more droped frames\n"); - g_fprintf(fp,"vid_sleep=%i\n",global->vid_sleep); - g_fprintf(fp,"# capture method: 1- mmap 2- read\n"); - g_fprintf(fp,"cap_meth=%i\n",global->cap_meth); - g_fprintf(fp,"# video resolution \n"); - g_fprintf(fp,"resolution='%ix%i'\n", global->width, global->height); - g_fprintf(fp,"# control window size: default %ix%i\n", WINSIZEX, WINSIZEY); - g_fprintf(fp,"windowsize='%ix%i'\n",global->winwidth, global->winheight); - g_fprintf(fp,"#Default action. 0 for picture, 1 for video.\n"); - g_fprintf(fp,"default_action=%i\n", global->default_action); - g_fprintf(fp,"# mode video format 'yuvy' 'yvyu' 'uyvy' 'yyuv' 'yu12' 'yv12' 'nv12' 'nv21' 'nv16' 'nv61' 'y41p' 'grey' 'y10b' 'y16 ' 's501' 's505' 's508' 'gbrg' 'grbg' 'ba81' 'rggb' 'rgb3' 'bgr3' 'jpeg' 'mjpg'(default)\n"); - g_fprintf(fp,"mode='%s'\n",global->mode); - g_fprintf(fp,"# frames per sec. - hardware supported - default( %i )\n",DEFAULT_FPS); - g_fprintf(fp,"fps='%d/%d'\n",global->fps_num,global->fps); - g_fprintf(fp,"#Display Fps counter: 1- Yes 0- No\n"); - g_fprintf(fp,"fps_display=%i\n",global->FpsCount); - g_fprintf(fp,"#auto focus (continuous): 1- Yes 0- No\n"); - g_fprintf(fp,"auto_focus=%i\n",global->autofocus); - g_fprintf(fp,"# bytes per pixel: default (0 - current)\n"); - g_fprintf(fp,"bpp=%i\n",global->bpp); - g_fprintf(fp,"# hardware accelaration: 0 1 (default - 1)\n"); - g_fprintf(fp,"hwaccel=%i\n",global->hwaccel); - g_fprintf(fp,"# video compression format: 0-MJPG 1-YUY2/UYVY 2-DIB (BMP 24) 3-MPEG1 4-FLV1 5-MPEG2 6-MS MPEG4 V3(DIV3) 7-MPEG4 (DIV5)\n"); - g_fprintf(fp,"vid_codec=%i\n",global->VidCodec); - g_fprintf(fp,"# video muxer format: 0-AVI 1-MKV 2-WebM\n"); - g_fprintf(fp,"vid_format=%i\n",global->VidFormat); - g_fprintf(fp,"# Auto Video naming (ex: filename-n.avi)\n"); - g_fprintf(fp,"vid_inc=%i\n",(global->vid_inc > 0 ? 1: 0)); - g_fprintf(fp,"# sound 0 - disable 1 - enable\n"); - g_fprintf(fp,"sound=%i\n",global->Sound_enable); - g_fprintf(fp,"# sound API: 0- Portaudio 1- Pulseaudio\n"); - g_fprintf(fp,"snd_api=%i\n", global->Sound_API); - g_fprintf(fp,"# snd_device - sound device index/id as listed by audio API\n"); - g_fprintf(fp,"snd_device=%i\n",global->Sound_UseDev); - g_fprintf(fp,"# snd_samprate - sound sample rate\n"); - g_fprintf(fp,"snd_samprate=%i\n",global->Sound_SampRateInd); - g_fprintf(fp,"# snd_numchan - sound number of channels 0- dev def 1 - mono 2 -stereo\n"); - g_fprintf(fp,"snd_numchan=%i\n",global->Sound_NumChanInd); - g_fprintf(fp,"# sound delay in nanosec - delays sound by the specified amount when capturing video\n"); - g_fprintf(fp,"snd_delay=%llu\n",(unsigned long long) global->Sound_delay); - g_fprintf(fp,"# Audio codec (PCM=0; MPG2=1; ... )\n"); - g_fprintf(fp,"aud_codec=%i\n",global->AudCodec); - g_fprintf(fp,"# video filters: 0 -none 1- flip 2- upturn 4- negate 8- mono ...\n"); - g_fprintf(fp,"frame_flags=%i\n",global->Frame_Flags); - g_fprintf(fp,"#on screen display flags (VU meter)\n"); - g_fprintf(fp,"osd_flags=%i\n",global->osdFlags); - g_fprintf(fp,"# Auto Image naming (filename-n.ext)\n"); - g_fprintf(fp,"image_inc=%i\n",(global->image_inc > 0 ? 1: 0)); - g_fprintf(fp,"# Image capture Full Path\n"); - g_fprintf(fp,"image_path='%s/%s'\n",global->imgFPath[1],global->imgFPath[0]); - g_fprintf(fp,"# Video capture Full Path\n"); - g_fprintf(fp,"video_path='%s/%s'\n",global->vidFPath[1],global->vidFPath[0]); - g_fprintf(fp,"# control profiles Full Path\n"); - g_fprintf(fp,"profile_path='%s/%s'\n",global->profile_FPath[1],global->profile_FPath[0]); - g_fprintf(fp, "# audio codec properties (remove for default values\n"); - g_fprintf(fp, "acodec_bit_rate=%d\n",acodec_defaults->bit_rate); - g_fprintf(fp, "# video codec (%s) properties (remove for default values\n", vcodec_defaults->compressor); - g_fprintf(fp, "vcodec_bit_rate=%d\n",vcodec_defaults->bit_rate); - g_fprintf(fp, "vcodec_fps=%d\n",vcodec_defaults->fps); - g_fprintf(fp, "vcodec_monotonic_pts=%d\n",vcodec_defaults->monotonic_pts); - g_fprintf(fp, "vcodec_qmax=%d\n",vcodec_defaults->qmax); - g_fprintf(fp, "vcodec_qmin=%d\n",vcodec_defaults->qmin); - g_fprintf(fp, "vcodec_max_qdiff=%d\n",vcodec_defaults->max_qdiff); - g_fprintf(fp, "vcodec_dia=%d\n",vcodec_defaults->dia); - g_fprintf(fp, "vcodec_pre_dia=%d\n",vcodec_defaults->pre_dia); - g_fprintf(fp, "vcodec_pre_me=%d\n",vcodec_defaults->pre_me); - g_fprintf(fp, "vcodec_me_pre_cmp=%d\n",vcodec_defaults->me_pre_cmp); - g_fprintf(fp, "vcodec_me_cmp=%d\n",vcodec_defaults->me_cmp); - g_fprintf(fp, "vcodec_me_sub_cmp=%d\n",vcodec_defaults->me_sub_cmp); - g_fprintf(fp, "vcodec_last_pred=%d\n",vcodec_defaults->last_pred); - g_fprintf(fp, "vcodec_gop_size=%d\n",vcodec_defaults->gop_size); - g_fprintf(fp, "vcodec_qcompress=%.2f\n",vcodec_defaults->qcompress); - g_fprintf(fp, "vcodec_qblur=%.2f\n",vcodec_defaults->qblur); - g_fprintf(fp, "vcodec_subq=%d\n",vcodec_defaults->subq); - g_fprintf(fp, "vcodec_framerefs=%d\n",vcodec_defaults->framerefs); - g_fprintf(fp, "vcodec_mb_decision=%d\n",vcodec_defaults->mb_decision); - g_fprintf(fp, "vcodec_trellis=%d\n",vcodec_defaults->trellis); - g_fprintf(fp, "vcodec_me_method=%d\n",vcodec_defaults->me_method); - g_fprintf(fp, "vcodec_mpeg_quant=%d\n",vcodec_defaults->mpeg_quant); - g_fprintf(fp, "vcodec_max_b_frames=%d\n",vcodec_defaults->max_b_frames); - g_fprintf(fp, "vcodec_num_threads=%d\n",vcodec_defaults->num_threads); - g_fprintf(fp, "vcodec_flags=%d\n",vcodec_defaults->flags); - printf("write %s OK\n",global->confPath); - - //flush stream buffers to filesystem - fflush(fp); - - //close file after fsync (sync file data to disk) - if (fsync(fileno(fp)) || fclose(fp)) - { - perror("error writing configuration data to file"); - ret=-1; - } - else - { - //rename from tmp to real name - g_rename (tmpfile, global->confPath); - } - } - else - { - g_printerr("Could not write file %s \n Please check file permissions\n",tmpfile); - ret=-2; - } - g_free(tmpfile); - - //return to system locale - setlocale(LC_NUMERIC, ""); - - return ret; -} - -/*----------------------- read conf (.config/guvcview/videoX) file -----------------------*/ -int -readConf(struct GLOBAL *global) -{ - int ret=0; - //int signal=1; /*1=>+ or -1=>-*/ - GScanner *scanner; - GTokenType ttype; - GScannerConfig config = - { - " \t\r\n", /* characters to skip */ - G_CSET_a_2_z "_" G_CSET_A_2_Z, /* identifier start */ - G_CSET_a_2_z "_." G_CSET_A_2_Z G_CSET_DIGITS,/* identifier cont. */ - "#\n", /* single line comment */ - FALSE, /* case_sensitive */ - TRUE, /* skip multi-line comments */ - TRUE, /* skip single line comments */ - FALSE, /* scan multi-line comments */ - TRUE, /* scan identifiers */ - TRUE, /* scan 1-char identifiers */ - FALSE, /* scan NULL identifiers */ - FALSE, /* scan symbols */ - FALSE, /* scan binary */ - FALSE, /* scan octal */ - TRUE, /* scan float */ - TRUE, /* scan hex */ - FALSE, /* scan hex dollar */ - TRUE, /* scan single quote strings */ - TRUE, /* scan double quote strings */ - TRUE, /* numbers to int */ - FALSE, /* int to float */ - TRUE, /* identifier to string */ - TRUE, /* char to token */ - FALSE, /* symbol to token */ - FALSE, /* scope 0 fallback */ - TRUE /* store int64 */ - }; - - int fd = g_open (global->confPath, O_RDONLY, 0); - - if (fd < 0 ) - { - printf("Could not open %s for read,\n will try to create it\n",global->confPath); - ret=writeConf(global, global->videodevice); - } - else - { - scanner = g_scanner_new (&config); - g_scanner_input_file (scanner, fd); - scanner->input_name = global->confPath; - //temp codec values - int ac_bit_rate =-1, vc_bit_rate=-1, vc_fps=-1, vc_qmax=-1, vc_qmin=-1, vc_max_qdiff=-1, vc_dia=-1; - int vc_pre_dia=-1, vc_pre_me=-1, vc_me_pre_cmp=-1, vc_me_cmp=-1, vc_me_sub_cmp=-1, vc_last_pred=-1; - int vc_gop_size=-1, vc_subq=-1, vc_framerefs=-1, vc_mb_decision=-1, vc_trellis=-1, vc_me_method=-1; - int vc_mpeg_quant=-1, vc_max_b_frames=-1, vc_num_threads=-1, vc_flags=-1, vc_monotonic_pts=-1; - float vc_qcompress=-1, vc_qblur=-1; - int VMAJOR =-1, VMINOR=-1, VMICRO=-1; - - for (ttype = g_scanner_get_next_token (scanner); - ttype != G_TOKEN_EOF; - ttype = g_scanner_get_next_token (scanner)) - { - if (ttype == G_TOKEN_STRING) - { - //printf("reading %s...\n",scanner->value.v_string); - char *name = g_strdup (scanner->value.v_string); - ttype = g_scanner_get_next_token (scanner); - if (ttype != G_TOKEN_EQUAL_SIGN) - { - g_scanner_unexp_token (scanner, - G_TOKEN_EQUAL_SIGN, - NULL, - NULL, - NULL, - NULL, - FALSE); - } - else - { - ttype = g_scanner_get_next_token (scanner); - /*check for signed integers*/ - if(ttype == '-') - { - //signal = -1; - ttype = g_scanner_get_next_token (scanner); - } - - if (ttype == G_TOKEN_STRING) - { - - if (g_strcmp0(name,"version")==0) - { - sscanf(scanner->value.v_string,"%i.%i.%i", - &(VMAJOR), - &(VMINOR), - &(VMICRO)); - } - else if (g_strcmp0(name,"resolution")==0) - { - if(global->flg_res < 1) /*must check for defaults since ReadOpts runs before ReadConf*/ - sscanf(scanner->value.v_string,"%ix%i", - &(global->width), - &(global->height)); - } - else if (g_strcmp0(name,"windowsize")==0) - { - sscanf(scanner->value.v_string,"%ix%i", - &(global->winwidth), &(global->winheight)); - } - else if (g_strcmp0(name,"mode")==0) - { - if(global->flg_mode < 1) - { - /*use fourcc but keep it compatible with luvcview*/ - if(g_strcmp0(scanner->value.v_string,"yuv") == 0) - g_snprintf(global->mode,5,"yuyv"); - else - g_snprintf(global->mode,5,"%s",scanner->value.v_string); - } - } - else if (g_strcmp0(name,"fps")==0) - { - sscanf(scanner->value.v_string,"%i/%i", - &(global->fps_num), &(global->fps)); - } - else if (g_strcmp0(name,"image_path")==0) - { - if(global->flg_imgFPath < 1) - { - global->imgFPath = splitPath(scanner->value.v_string,global->imgFPath); - /*get the file type*/ - - global->imgFormat = check_image_type(global->imgFPath[0]); - } - else - { - /* check if new file != old file */ - gchar * newPath = g_strjoin ("/", global->imgFPath[1], global->imgFPath[0], NULL); - //printf("image path: %s\n old path: %s\n", newPath, scanner->value.v_string); - if(g_strcmp0(scanner->value.v_string, newPath) !=0) - { - /* reset counter */ - //printf("reset counter from: %i\n", global->image_inc); - if(global->image_inc > 0) - { - global->image_inc = 1; - //g_snprintf(global->imageinc_str,20,_("File num:%d"),global->image_inc); - } - } - g_free(newPath); - } - } - else if ((g_strcmp0(name,"video_path")==0) || (g_strcmp0(name,"avi_path")==0)) - { - if(global->vidfile == NULL) - { - global->vidFPath=splitPath(scanner->value.v_string,global->vidFPath); - } - } - else if (g_strcmp0(name,"profile_path")==0) - { - if(global->lprofile < 1) - global->profile_FPath=splitPath(scanner->value.v_string, - global->profile_FPath); - } - else - { - printf("unexpected string value (%s) for %s\n", - scanner->value.v_string, name); - } - } - else if (ttype==G_TOKEN_INT) - { - if (g_strcmp0(name,"vid_sleep")==0) - { - global->vid_sleep = scanner->value.v_int; - } - else if (g_strcmp0(name,"cap_meth")==0) - { - if(!(global->flg_cap_meth)) - global->cap_meth = scanner->value.v_int; - } - else if (g_strcmp0(name,"default_action")==0) - { - global->default_action = scanner->value.v_int; - } - else if (g_strcmp0(name,"fps")==0) - { - /*parse non-quoted fps values*/ - int line = g_scanner_cur_line(scanner); - - global->fps_num = scanner->value.v_int; - ttype = g_scanner_peek_next_token (scanner); - if(ttype=='/') - { - /*get '/'*/ - g_scanner_get_next_token (scanner); - ttype = g_scanner_peek_next_token (scanner); - if(ttype==G_TOKEN_INT) - { - ttype = g_scanner_get_next_token (scanner); - global->fps = scanner->value.v_int; - } - else if (scanner->next_line>line) - { - /*start new loop*/ - break; - } - else - { - ttype = g_scanner_get_next_token (scanner); - g_scanner_unexp_token (scanner, - G_TOKEN_NONE, - NULL, - NULL, - NULL, - "bad value for fps", - FALSE); - } - } - } - else if (strcmp(name,"fps_display")==0) - { - if(global->flg_FpsCount < 1) - global->FpsCount = (short) scanner->value.v_int; - } - else if (g_strcmp0(name,"auto_focus")==0) - { - global->autofocus = scanner->value.v_int; - } - else if (g_strcmp0(name,"bpp")==0) - { - global->bpp = scanner->value.v_int; - } - else if (g_strcmp0(name,"hwaccel")==0) - { - if(global->flg_hwaccel < 1) - global->hwaccel = scanner->value.v_int; - } - else if (g_strcmp0(name,"vid_codec")==0 || (g_strcmp0(name,"avi_format")==0)) - { - global->VidCodec = scanner->value.v_int; - //sync with global->VidCodec_ID when creating the menu entry for the codecs - } - else if (g_strcmp0(name,"vid_format")==0) - { - global->VidFormat = scanner->value.v_int; - } - else if ((g_strcmp0(name,"vid_inc")==0) || (g_strcmp0(name,"avi_inc")==0)) - { - global->vid_inc = (DWORD) scanner->value.v_int; - } - else if (g_strcmp0(name,"sound")==0) - { - global->Sound_enable = (short) scanner->value.v_int; - } - else if (g_strcmp0(name,"snd_api")==0) - { - global->Sound_API = scanner->value.v_int; - } - else if (g_strcmp0(name,"snd_device")==0) - { - global->Sound_UseDev = scanner->value.v_int; - } - else if (g_strcmp0(name,"snd_samprate")==0) - { - global->Sound_SampRateInd = scanner->value.v_int; - } - else if (g_strcmp0(name,"snd_numchan")==0) - { - global->Sound_NumChanInd = scanner->value.v_int; - } - else if (g_strcmp0(name,"snd_delay")==0) - { - global->Sound_delay = scanner->value.v_int64; - } - else if (g_strcmp0(name,"aud_codec")==0) - { - global->AudCodec = scanner->value.v_int; - global->Sound_Format = get_aud4cc(global->AudCodec); - } - else if (g_strcmp0(name,"frame_flags")==0) - { - global->Frame_Flags = scanner->value.v_int; - } - else if (g_strcmp0(name,"osd_flags")==0) - { - global->osdFlags = scanner->value.v_int; - } - else if (g_strcmp0(name,"image_inc")==0) - { - global->image_inc = (DWORD) scanner->value.v_int; - } - else if (g_strcmp0(name,"acodec_bit_rate")==0) - { - ac_bit_rate = scanner->value.v_int; - } - else if (g_strcmp0(name,"vcodec_bit_rate")==0) - { - vc_bit_rate = scanner->value.v_int; - } - else if (g_strcmp0(name,"vcodec_fps")==0) - { - vc_fps = scanner->value.v_int; - } - else if (g_strcmp0(name,"vcodec_monotonic_pts")==0) - { - vc_monotonic_pts = scanner->value.v_int; - } - else if (g_strcmp0(name,"vcodec_qmax")==0) - { - vc_qmax = scanner->value.v_int; - } - else if (g_strcmp0(name,"vcodec_qmin")==0) - { - vc_qmin = scanner->value.v_int; - } - else if (g_strcmp0(name,"vcodec_max_qdiff")==0) - { - vc_max_qdiff = scanner->value.v_int; - } - else if (g_strcmp0(name,"vcodec_dia")==0) - { - vc_dia = scanner->value.v_int; - } - else if (g_strcmp0(name,"vcodec_pre_dia")==0) - { - vc_pre_dia = scanner->value.v_int; - } - else if (g_strcmp0(name,"vcodec_pre_me")==0) - { - vc_pre_me= scanner->value.v_int; - } - else if (g_strcmp0(name,"vcodec_me_pre_cmp")==0) - { - vc_me_pre_cmp = scanner->value.v_int; - } - else if (g_strcmp0(name,"vcodec_me_cmp")==0) - { - vc_me_cmp = scanner->value.v_int; - } - else if (g_strcmp0(name,"vcodec_me_sub_cmp")==0) - { - vc_me_sub_cmp = scanner->value.v_int; - } - else if (g_strcmp0(name,"vcodec_last_pred")==0) - { - vc_last_pred = scanner->value.v_int; - } - else if (g_strcmp0(name,"vcodec_gop_size")==0) - { - vc_gop_size = scanner->value.v_int; - } - else if (g_strcmp0(name,"vcodec_subq")==0) - { - vc_subq = scanner->value.v_int; - } - else if (g_strcmp0(name,"vcodec_framerefs")==0) - { - vc_framerefs = scanner->value.v_int; - } - else if (g_strcmp0(name,"vcodec_mb_decision")==0) - { - vc_mb_decision = scanner->value.v_int; - } - else if (g_strcmp0(name,"vcodec_trellis")==0) - { - vc_trellis = scanner->value.v_int; - } - else if (g_strcmp0(name,"vcodec_me_method")==0) - { - vc_me_method = scanner->value.v_int; - } - else if (g_strcmp0(name,"vcodec_mpeg_quant")==0) - { - vc_mpeg_quant = scanner->value.v_int; - } - else if (g_strcmp0(name,"vcodec_max_b_frames")==0) - { - vc_max_b_frames = scanner->value.v_int; - } - else if (g_strcmp0(name,"vcodec_flags")==0) - { - vc_flags = scanner->value.v_int; - } - else if (g_strcmp0(name,"vcodec_num_threads")==0) - { - vc_num_threads = scanner->value.v_int; - } - else - { - printf("unexpected integer value (%lu) for %s\n", - scanner->value.v_int, name); - printf("Strings must be quoted\n"); - } - } - else if (ttype==G_TOKEN_FLOAT) - { - if (g_strcmp0(name,"vcodec_qcompress")==0) - { - vc_qcompress = scanner->value.v_float; - } - else if (g_strcmp0(name,"vcodec_qblur")==0) - { - vc_qblur = scanner->value.v_float; - } - else - printf("unexpected float value (%f) for %s\n", scanner->value.v_float, name); - } - else if (ttype==G_TOKEN_CHAR) - { - printf("unexpected char value (%c) for %s\n", scanner->value.v_char, name); - } - else - { - g_scanner_unexp_token (scanner, - G_TOKEN_NONE, - NULL, - NULL, - NULL, - "string values must be quoted - skiping", - FALSE); - int line = g_scanner_cur_line (scanner); - int stp=0; - - do - { - ttype = g_scanner_peek_next_token (scanner); - if(scanner->next_line > line) - { - //printf("next line reached\n"); - stp=1; - break; - } - else - { - ttype = g_scanner_get_next_token (scanner); - } - } - while (!stp); - } - } - g_free(name); - } - } - - g_scanner_destroy (scanner); - close (fd); - - //get pointers to codec properties - vcodecs_data *vcodec_defaults = get_codec_defaults(global->VidCodec); - acodecs_data *acodec_defaults = get_aud_codec_defaults(get_ind_by4cc(global->Sound_Format)); - - if (ac_bit_rate >= 0) acodec_defaults->bit_rate = ac_bit_rate; - if (vc_bit_rate >= 0) vcodec_defaults->bit_rate = vc_bit_rate; - if (vc_fps >= 0) vcodec_defaults->fps = vc_fps; - //from 1.5.3 onwards we set version on conf file and monotonic is set by default for all codecs - if ((vc_monotonic_pts >= 0) && (VMAJOR > 0)) vcodec_defaults->monotonic_pts = vc_monotonic_pts; - if (vc_qmax >= 0) vcodec_defaults->qmax = vc_qmax; - if (vc_qmin >= 0) vcodec_defaults->qmin = vc_qmin; - if (vc_max_qdiff >=0) vcodec_defaults->max_qdiff = vc_max_qdiff; - if (vc_dia >=0) vcodec_defaults->dia = vc_dia; - if (vc_pre_dia >=0) vcodec_defaults->pre_dia = vc_pre_dia; - if (vc_pre_me >=0) vcodec_defaults->pre_me = vc_pre_me; - if (vc_me_pre_cmp >=0) vcodec_defaults->me_pre_cmp = vc_me_pre_cmp; - if (vc_me_cmp >=0) vcodec_defaults->me_cmp = vc_me_cmp; - if (vc_me_sub_cmp >=0) vcodec_defaults->me_sub_cmp = vc_me_sub_cmp; - if (vc_last_pred >= 0) vcodec_defaults->last_pred = vc_last_pred; - if (vc_gop_size >= 0) vcodec_defaults->gop_size = vc_gop_size; - if (vc_subq >=0) vcodec_defaults->subq = vc_subq; - if (vc_framerefs >=0) vcodec_defaults->framerefs = vc_framerefs; - if (vc_mb_decision >=0) vcodec_defaults->mb_decision = vc_mb_decision; - if (vc_trellis >=0) vcodec_defaults->trellis = vc_trellis; - if (vc_me_method >=0) vcodec_defaults->me_method = vc_me_method; - if (vc_mpeg_quant >=0) vcodec_defaults->mpeg_quant = vc_mpeg_quant; - if (vc_max_b_frames >=0) vcodec_defaults->max_b_frames = vc_max_b_frames; - if (vc_num_threads >=0) vcodec_defaults->num_threads = vc_num_threads; - if (vc_flags >=0) vcodec_defaults->flags = vc_flags; - if (vc_qcompress >= 0) vcodec_defaults->qcompress = vc_qcompress; - if (vc_qblur >=0) vcodec_defaults->qblur = vc_qblur; - - if(global->vid_inc>0) - { - uint64_t suffix = get_file_suffix(global->vidFPath[1], global->vidFPath[0]); - fprintf(stderr, "Video file suffix detected: %" PRIu64 "\n", suffix); - if(suffix >= G_MAXUINT64) - { - global->vidFPath[0] = add_file_suffix(global->vidFPath[0], suffix); - suffix = 0; - } - if(suffix > 0) - global->vid_inc = suffix + 1; - } - - if(global->image_inc>0) - { - uint64_t suffix = get_file_suffix(global->imgFPath[1], global->imgFPath[0]); - fprintf(stderr, "Image file suffix detected: %" PRIu64 "\n", suffix); - if(suffix >= G_MAXUINT64) - { - global->imgFPath[0] = add_file_suffix(global->imgFPath[0], suffix); - suffix = 0; - } - if(suffix > 0) - global->image_inc = suffix + 1; - } - - if (global->debug) - { - g_print("video_device: %s\n",global->videodevice); - g_print("vid_sleep: %i\n",global->vid_sleep); - g_print("cap_meth: %i\n",global->cap_meth); - g_print("resolution: %i x %i\n",global->width,global->height); - g_print("windowsize: %i x %i\n",global->winwidth,global->winheight); - g_print("default action: %i\n",global->default_action); - g_print("mode: %s\n",global->mode); - g_print("fps: %i/%i\n",global->fps_num,global->fps); - g_print("Display Fps: %i\n",global->FpsCount); - g_print("bpp: %i\n",global->bpp); - g_print("hwaccel: %i\n",global->hwaccel); - g_print("vid_codec: %i\n",global->VidCodec); - g_print("sound: %i\n",global->Sound_enable); - g_print("sound Device: %i\n",global->Sound_UseDev); - g_print("sound samp rate: %i\n",global->Sound_SampRateInd); - g_print("sound Channels: %i\n",global->Sound_NumChanInd); - g_print("Sound delay: %llu nanosec\n",(unsigned long long) global->Sound_delay); - g_print("Sound Format: %i \n",global->Sound_Format); - g_print("Pan Step: %i degrees\n",global->PanStep); - g_print("Tilt Step: %i degrees\n",global->TiltStep); - g_print("Video Filter Flags: %i\n",global->Frame_Flags); - g_print("image inc: %" PRIu64 "\n",global->image_inc); - g_print("profile(default):%s/%s\n",global->profile_FPath[1],global->profile_FPath[0]); - } - } - - return (ret); -} - -/*------------------------- read command line options ------------------------*/ -void -readOpts(int argc,char *argv[], struct GLOBAL *global) -{ - gchar *device=NULL; - gchar *format=NULL; - gchar *size = NULL; - gchar *image = NULL; - gchar *video=NULL; - gchar *profile=NULL; - gchar *separateur=NULL; - gboolean help = FALSE; - gboolean help_gtk = FALSE; - gboolean help_all = FALSE; - gboolean vers = FALSE; - gchar *help_str = NULL; - gchar *help_gtk_str = NULL; - gchar *help_all_str = NULL; - gchar *config = NULL; - int hwaccel=-1; - int FpsCount=-1; - int cap_meth=-1; - - GOptionEntry entries[] = - { - { "help-all", 'h', G_OPTION_FLAG_HIDDEN, G_OPTION_ARG_NONE, &help_all, "Display all help options", NULL}, - { "help-gtk", '!', G_OPTION_FLAG_HIDDEN, G_OPTION_ARG_NONE, &help_gtk, "DISPLAY GTK+ help", NULL}, - { "help", '?', G_OPTION_FLAG_HIDDEN, G_OPTION_ARG_NONE, &help, "Display help", NULL}, - { "version", 0, 0, G_OPTION_ARG_NONE, &vers, N_("Prints version"), NULL}, - { "verbose", 'v', 0, G_OPTION_ARG_NONE, &global->debug, N_("Displays debug information"), NULL }, - { "device", 'd', 0, G_OPTION_ARG_STRING, &device, N_("Video Device to use [default: /dev/video0]"), "VIDEO_DEVICE" }, - { "add_ctrls", 'a', 0, G_OPTION_ARG_NONE, &global->add_ctrls, N_("Exit after adding UVC extension controls (needs root/sudo)"), NULL}, - { "control_only", 'o', 0, G_OPTION_ARG_NONE, &global->control_only, N_("Don't stream video (image controls only)"), NULL}, - { "no_display", 0,0, G_OPTION_ARG_NONE, &global->no_display, N_("Don't display a GUI"), NULL}, - { "capture_method", 'r', 0, G_OPTION_ARG_INT, &cap_meth, N_("Capture method (1-mmap (default) 2-read)"), "[1 | 2]"}, - { "config", 'g', 0, G_OPTION_ARG_STRING, &config, N_("Configuration file"), "FILENAME" }, - { "hwd_acel", 'w', 0, G_OPTION_ARG_INT, &hwaccel, N_("Hardware accelaration (enable(1) | disable(0))"), "[1 | 0]" }, - { "format", 'f', 0, G_OPTION_ARG_STRING, &format, N_("Pixel format(mjpg|jpeg|yuyv|yvyu|uyvy|yyuv|yu12|yv12|nv12|nv21|nv16|nv61|y41p|grey|y10b|y16 |s501|s505|s508|gbrg|grbg|ba81|rggb|bgr3|rgb3)"), "FORMAT" }, - { "size", 's', 0, G_OPTION_ARG_STRING, &size, N_("Frame size, default: 640x480"), "WIDTHxHEIGHT"}, - { "image", 'i', 0, G_OPTION_ARG_STRING, &image, N_("Image File name"), "FILENAME"}, - { "cap_time", 'c', 0, G_OPTION_ARG_INT, &global->image_timer, N_("Image capture interval in seconds"), "TIME"}, - { "npics", 'm', 0, G_OPTION_ARG_INT, &global->image_npics, N_("Number of Pictures to capture"), "NUMPIC"}, - { "video", 'n', 0, G_OPTION_ARG_STRING, &video, N_("Video File name"), "FILENAME"}, - { "vid_time", 't', 0, G_OPTION_ARG_INT, &global->Capture_time,N_("Video capture time (seconds) - capture from start"), "TIME"}, - { "exit_on_close", 0, 0, G_OPTION_ARG_NONE, &global->exit_on_close, N_("Exits guvcview after closing video"), NULL}, - { "skip", 'j', 0, G_OPTION_ARG_INT, &global->skip_n, N_("Number of initial frames to skip"), "N_FRAMES"}, - { "show_fps", 'p', 0, G_OPTION_ARG_INT, &FpsCount, N_("Show FPS value (enable(1) | disable (0))"), "[1 | 0]"}, - { "profile", 'l', 0, G_OPTION_ARG_STRING, &profile, N_("Load Profile at start"), "FILENAME"}, - { "lctl_method", 'k', 0, G_OPTION_ARG_INT, &global->lctl_method, N_("List controls method (0:loop, 1:next_ctrl flag [def])"), "[0 |1]"}, - { NULL } - }; - - GError *error = NULL; - GOptionContext *context; - context = g_option_context_new (N_("- local options")); - g_option_context_add_main_entries (context, entries, GETTEXT_PACKAGE); - g_option_context_add_group (context, gtk_get_option_group (FALSE)); - g_set_prgname (PACKAGE); - help_str = g_option_context_get_help (context, TRUE, NULL); - help_gtk_str = g_option_context_get_help (context, FALSE, gtk_get_option_group (TRUE)); - help_all_str = g_option_context_get_help (context, FALSE, NULL); - /*disable automatic help parsing - must clean global before exit*/ - g_option_context_set_help_enabled (context, FALSE); - if (!g_option_context_parse (context, &argc, &argv, &error)) - { - g_printerr ("option parsing failed: %s\n", error->message); - g_error_free ( error ); - closeGlobals(global); - global=NULL; - g_print("%s",help_all_str); - g_free(help_all_str); - g_free(help_str); - g_free(help_gtk_str); - g_option_context_free (context); - exit (1); - } - - if(vers) - { - //print version and exit - //version already printed in guvcview.c - closeGlobals(global); - global=NULL; - g_free(help_all_str); - g_free(help_str); - g_free(help_gtk_str); - g_option_context_free (context); - exit(0); - } - /*Display help message and exit*/ - if(help_all) - { - closeGlobals(global); - global=NULL; - g_print("%s",help_all_str); - g_free(help_all_str); - g_free(help_str); - g_free(help_gtk_str); - g_option_context_free (context); - exit(0); - } - else if(help) - { - closeGlobals(global); - global=NULL; - g_print("%s",help_str); - g_free(help_str); - g_free(help_gtk_str); - g_free(help_all_str); - g_option_context_free (context); - exit(0); - } else if(help_gtk) - { - closeGlobals(global); - global=NULL; - g_print("%s",help_gtk_str); - g_free(help_str); - g_free(help_gtk_str); - g_free(help_all_str); - g_option_context_free (context); - exit(0); - } - - /*regular options*/ - if(device) - { - gchar *basename = NULL; - gchar *dirname = NULL; - basename = g_path_get_basename(device); - if(!(g_str_has_prefix(basename,"video"))) - { - g_printerr("%s not a valid video device name\n", - basename); - } - else - { - g_free(global->videodevice); - global->videodevice=NULL; - dirname = g_path_get_dirname(device); - if(g_strcmp0(".",dirname)==0) - { - g_free(dirname); - dirname=g_strdup("/dev"); - } - - global->videodevice = g_strjoin("/", - dirname, - basename, - NULL); - if(global->flg_config < 1) - { - if(g_strcmp0("video0",basename) !=0 ) - { - g_free(global->confPath); - global->confPath=NULL; - global->confPath = g_strjoin("/", - g_get_home_dir(), - ".config", - "guvcview", - basename, - NULL); - } - } - } - g_free(dirname); - g_free(basename); - } - if(config) - { - g_free(global->confPath); - global->confPath=NULL; - global->confPath = g_strdup(config); - global->flg_config = 1; - } - if(format) - { - /*use fourcc but keep compatability with luvcview*/ - if(g_strcmp0("yuv",format)==0) - g_snprintf(global->mode,5,"yuyv"); - else if (g_strcmp0("bggr",format)==0) // be compatible with guvcview < 1.1.4 - g_snprintf(global->mode,5,"ba81"); - else - g_snprintf(global->mode,5,"%s ",format); - - printf("requested format \"%s\" from command line\n", global->mode); - - global->flg_mode = TRUE; - } - if(size) - { - global->width = (int) g_ascii_strtoull(size, &separateur, 10); - if (*separateur != 'x') - { - g_printerr("Error in size usage: -s[--size] WIDTHxHEIGHT \n"); - } - else - { - ++separateur; - global->height = (int) g_ascii_strtoull(separateur, &separateur, 10); - if (*separateur != 0) - g_printerr("hmm.. don't like that!! trying this height \n"); - } - - global->flg_res = 1; - } - if(image) - { - global->imgFPath=splitPath(image,global->imgFPath); - /*get the file type*/ - global->imgFormat = check_image_type(global->imgFPath[0]); - global->flg_imgFPath = TRUE; - - if(global->image_inc>0) - { - uint64_t suffix = get_file_suffix(global->imgFPath[1], global->imgFPath[0]); - fprintf(stderr, "Image file suffix detected: %" PRIu64 "\n", suffix); - if(suffix >= G_MAXUINT64) - { - global->imgFPath[0] = add_file_suffix(global->imgFPath[0], suffix); - suffix = 0; - } - if(suffix > 0) - global->image_inc = suffix + 1; - } - } - if(global->image_timer > 0 ) - { - g_print("capturing images every %i seconds\n",global->image_timer); - } - if(video) - { - global->vidFPath=splitPath(video, global->vidFPath); - if(global->vid_inc>0) - { - uint64_t suffix = get_file_suffix(global->vidFPath[1], global->vidFPath[0]); - fprintf(stderr, "Video file suffix detected: %" PRIu64 "\n", suffix); - if(suffix >= G_MAXUINT64) - { - global->vidFPath[0] = add_file_suffix(global->vidFPath[0], suffix); - suffix = 0; - } - if(suffix > 0) - global->vid_inc = suffix + 1; - } - - global->vidfile = joinPath(global->vidfile, global->vidFPath); - - g_print("set video file: %s \n",global->vidfile); - /*get the file type*/ - global->VidFormat = check_video_type(global->vidFPath[0]); - } - if(profile) - { - global->lprofile=1; - global->profile_FPath=splitPath(profile,global->profile_FPath); - } - if(hwaccel != -1 ) - { - global->hwaccel = hwaccel; - global->flg_hwaccel = 1; - } - if(FpsCount != -1) - { - global->FpsCount = FpsCount; - global->flg_FpsCount = 1; - } - if(cap_meth != -1) - { - global->flg_cap_meth = TRUE; - global->cap_meth = cap_meth; - } - - //g_print("option capture meth is %i\n", global->cap_meth); - g_free(help_str); - g_free(help_gtk_str); - g_free(help_all_str); - g_free(device); - g_free(config); - g_free(format); - g_free(size); - g_free(image); - g_free(video); - g_free(profile); - g_option_context_free (context); -} diff -Nru guvcview-1.7.3/src/options.h guvcview-2.0.1+ubuntu1~ppa1/src/options.h --- guvcview-1.7.3/src/options.h 2014-03-24 22:56:28.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/src/options.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,39 +0,0 @@ -/*******************************************************************************# -# guvcview http://guvcview.sourceforge.net # -# # -# Paulo Assis # -# # -# This program is free software; you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation; either version 2 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program; if not, write to the Free Software # -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# # -********************************************************************************/ - -#ifndef OPTIONS_H -#define OPTIONS_H - -#include "globals.h" - -/*----------------------- write conf (.guvcviewrc) file ----------------------*/ -int -writeConf(struct GLOBAL *global, char *videodevice); - -/*----------------------- read conf (.guvcviewrc) file -----------------------*/ -int -readConf(struct GLOBAL *global); - -/*------------------------- read command line options ------------------------*/ -void -readOpts(int argc,char *argv[], struct GLOBAL *global); - -#endif diff -Nru guvcview-1.7.3/src/osd.c guvcview-2.0.1+ubuntu1~ppa1/src/osd.c --- guvcview-1.7.3/src/osd.c 2014-03-24 22:56:28.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/src/osd.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,152 +0,0 @@ -/*******************************************************************************# -# guvcview http://guvcview.sourceforge.net # -# # -# Paulo Assis # -# Nobuhiro Iwamatsu # -# Add UYVY color support(Macbook iSight) # -# Flemming Frandsen # -# Add VU meter OSD # -# # -# This program is free software; you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation; either version 2 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program; if not, write to the Free Software # -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# # -********************************************************************************/ - -#include -#include -#include "defs.h" -#include "guvcview.h" - -#define __AMUTEX &pdata->mutex - -#define AUDIO_REFERENCE_LEVEL 0.2 - -void draw_vu_meter(int width, int height, SAMPLE vuPeak[2], int vuPeakFreeze[2], void *data) -{ - struct ALL_DATA *all_data = (struct ALL_DATA *) data; - - struct paRecordData *pdata = all_data->pdata; - struct vdIn *videoIn = all_data->videoIn; - - int i,j; // Fuck pre-C99 sucks. - __LOCK_MUTEX( __AMUTEX ); - SAMPLE vuLevel[2]; // The maximum sample for this frame. - for (i=0;i<2;i++) - { - vuLevel[i] = 0; - // Run through all available samples and find the current level. - SAMPLE *samples = pdata->audio_buff[pdata->blast_ind][pdata->last_ind].frame; - for (j=0;jaud_numSamples;j++) - { - int channel = j % pdata->channels; - if (channel < 2) - { - SAMPLE s = samples[j]; - if (s > vuLevel[channel]) - { - vuLevel[channel] = s; - } - } - } - } - __UNLOCK_MUTEX( __AMUTEX ); - - BYTE *vuFrame = videoIn->framebuffer; - - int bh = height / 20; - int bw = width / 150; - int channel; - for (channel=0;channel<2;channel++) - { - // Handle peak calculation and falloff. - if (vuPeak[channel] < vuLevel[channel]) - { - vuPeak[channel] = vuLevel[channel]; - vuPeakFreeze[channel] = 30; - } - else if (vuPeakFreeze[channel] > 0) - { - vuPeakFreeze[channel]--; - } - else if (vuPeak[channel] > vuLevel[channel]) - { - vuPeak[channel] -= (vuPeak[channel]-vuLevel[channel]) / 10; - } - float dBuLevel = 10*log10(vuLevel[channel]/AUDIO_REFERENCE_LEVEL); - float dBuPeak = 10*log10(vuPeak[channel] /AUDIO_REFERENCE_LEVEL); - - // Draw the pretty bars, but only if there actually is an audio channel with samples present - if (vuLevel[channel] == 0) - continue; - - int peaked = 0; - int box; - for (box=0;box<=26;box++) - { - float db = box-20; // The dB it takes to light the current box. - int bx = (5+box)*bw*2*4; // Start byte for box on each line - int by = (channel*(bh+5) + bh*2)* 2*width; // Start byte for box top. - - BYTE u = 0; - BYTE v = 0; - if (db > 4) - { - u=128; - v=255; - } - else if (db > 0) - { - u=0; - v=200; - } - - int light = dBuLevel > db; - if (dBuPeak < db+1 && !peaked) - { - peaked = 1; - light = 1; - } - - if (light) - { - int yc; - for (yc=0;yc 0) - { - int bi = bx + by + width*2*bh/2; - for (j=0;j # -# Nobuhiro Iwamatsu # -# Add UYVY color support(Macbook iSight) # -# Flemming Frandsen # -# Add VU meter OSD # -# # -# This program is free software; you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation; either version 2 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program; if not, write to the Free Software # -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# # -********************************************************************************/ - -#ifndef OSD_H -#define OSD_H - -#include "defs.h" - -void draw_vu_meter(int width, int height, SAMPLE vuPeak[2], int vuPeakFreeze[2], void *data); - -#endif diff -Nru guvcview-1.7.3/src/picture.c guvcview-2.0.1+ubuntu1~ppa1/src/picture.c --- guvcview-1.7.3/src/picture.c 2014-03-24 22:56:28.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/src/picture.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,367 +0,0 @@ -/*******************************************************************************# -# guvcview http://guvcview.sourceforge.net # -# # -# Paulo Assis # -# # -# This program is free software; you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation; either version 2 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program; if not, write to the Free Software # -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# # -********************************************************************************/ - -#include "picture.h" -#include "huffman.h" -#include "jpgenc.h" -#include -#include -#include -#include -#include - -/*----------------------------------- Image Files ----------------------------*/ -int -SaveJPG(const char *Filename,int imgsize,BYTE *ImagePix) -{ - int ret=0; - int jpgsize=0; - BYTE *jpgtmp=NULL; - BYTE *Pimg=NULL; - BYTE *Pjpg=NULL; - BYTE *tp=NULL; - JPGFILEHEADER JpgFileh; - int jpghsize=sizeof(JpgFileh); - FILE *fp; - jpgsize=jpghsize+imgsize+sizeof(JPEGHuffmanTable)+4;/*header+huffman+marker+buffsize*/ - Pimg=ImagePix; - - if((jpgtmp=g_malloc0(jpgsize))!=NULL) - { - Pjpg=jpgtmp; - /*Fill JFIF header*/ - JpgFileh.SOI[0]=0xff; - JpgFileh.SOI[1]=0xd8; - JpgFileh.APP0[0]=0xff; - JpgFileh.APP0[1]=0xe0; - JpgFileh.length[0]=0x00; - JpgFileh.length[1]=0x10; - JpgFileh.JFIF[0]=0x4a;//JFIF0 - JpgFileh.JFIF[1]=0x46; - JpgFileh.JFIF[2]=0x49; - JpgFileh.JFIF[3]=0x46; - JpgFileh.JFIF[4]=0x00; - JpgFileh.VERS[0]=0x01;//version 1.2 - JpgFileh.VERS[1]=0x02; - JpgFileh.density=0x00; - JpgFileh.xdensity[0]=0x00; - JpgFileh.xdensity[1]=0x78; - JpgFileh.ydensity[0]=0x00; - JpgFileh.ydensity[1]=0x78; - JpgFileh.WTN=0; - JpgFileh.HTN=0; - - /*adds header (JFIF)*/ - memmove(Pjpg,&JpgFileh,jpghsize); - /*moves to the end of the header struct (JFIF)*/ - Pjpg+=jpghsize; - int headSize = ImagePix[4]*256+ImagePix[5] + 4;/*length + SOI+APP0*/ - /*moves to the end of header (MJPG)*/ - Pimg+=headSize; - /*adds Quantization tables and everything else until * - * start of frame marker (FFC0) */ - tp=Pimg; - int qtsize=0; - while(!((tp[qtsize]== 0xff) && (tp[qtsize+1]== 0xc0))) - { - qtsize++; - } - memmove(Pjpg,Pimg,qtsize); - /*moves to the begining of frame marker*/ - Pjpg+=qtsize; - Pimg+=qtsize; - /*insert huffman table with marker (FFC4) and length(x01a2)*/ - BYTE HUFMARK[4]; - HUFMARK[0]=0xff; - HUFMARK[1]=0xc4; - HUFMARK[2]=0x01; - HUFMARK[3]=0xa2; - memmove(Pjpg,&HUFMARK,4); - Pjpg+=4; - memmove(Pjpg,&JPEGHuffmanTable,JPG_HUFFMAN_TABLE_LENGTH);/*0x01a0*/ - /*moves to the end of huffman tables (JFIF)*/ - Pjpg+=JPG_HUFFMAN_TABLE_LENGTH; - /*copys frame data(JFIF)*/ - memmove(Pjpg,Pimg,(imgsize-(Pimg-ImagePix))); - Pjpg+=imgsize-(Pimg-ImagePix); - - int totSize = Pjpg - jpgtmp; - - if ((fp = fopen(Filename,"wb"))!=NULL) - { - ret=fwrite(jpgtmp,totSize,1,fp);/*jpeg - jfif*/ - if (ret< 1) ret=1; //write error - else ret=0; - fflush(fp); //flush data stream to file system - if(fsync(fileno(fp)) || fclose(fp)) - perror("JPEG ERROR - couldn't write to file"); - } - else ret=1; - - g_free(jpgtmp); - jpgtmp=NULL; - Pimg=NULL; - Pjpg=NULL; - tp=NULL; - } - else - { - g_printerr("could not allocate memmory for jpg file\n"); - ret=1; - } - return ret; -} - - -int -SaveBuff(const char *Filename,int imgsize,BYTE *data) -{ - FILE *fp; - int ret = 0; - if ((fp = fopen(Filename,"wb"))!=NULL) - { - ret=fwrite(data,imgsize,1,fp); - - if (ret<1) ret=1;//write error - else ret=0; - - fflush(fp); //flush data stream to file system - if(fsync(fileno(fp)) || fclose(fp)) - perror("BUFF WRITE ERROR - couldn't write buffer to file"); - } - else ret = 1; - return (ret); -} - -int -SaveBPM(const char *Filename, long width, long height, int BitCount, BYTE *ImagePix) -{ - int ret=0; - BITMAPFILEHEADER BmpFileh; - BITMAPINFOHEADER BmpInfoh; - DWORD imgsize; - FILE *fp; - - imgsize=width*height*BitCount/8; - - BmpFileh.bfType=0x4d42;//must be BM (x4d42) - /*Specifies the size, in bytes, of the bitmap file*/ - BmpFileh.bfSize=sizeof(BITMAPFILEHEADER)+sizeof(BITMAPINFOHEADER)+imgsize; - BmpFileh.bfReserved1=0; //Reserved; must be zero - BmpFileh.bfReserved2=0; //Reserved; must be zero - /*Specifies the offset, in bytes, */ - /*from the beginning of the BITMAPFILEHEADER structure */ - /* to the bitmap bits */ - BmpFileh.bfOffBits=sizeof(BITMAPFILEHEADER)+sizeof(BITMAPINFOHEADER); - - BmpInfoh.biSize=40; - BmpInfoh.biWidth=width; - BmpInfoh.biHeight=height; - BmpInfoh.biPlanes=1; - BmpInfoh.biBitCount=BitCount; - BmpInfoh.biCompression=0; // 0 - BmpInfoh.biSizeImage=imgsize; - BmpInfoh.biXPelsPerMeter=0; - BmpInfoh.biYPelsPerMeter=0; - BmpInfoh.biClrUsed=0; - BmpInfoh.biClrImportant=0; - - if ((fp = fopen(Filename,"wb"))!=NULL) - { // (wb) write in binary mode - ret=fwrite(&BmpFileh, sizeof(BITMAPFILEHEADER), 1, fp); - ret+=fwrite(&BmpInfoh, sizeof(BITMAPINFOHEADER),1,fp); - ret+=fwrite(ImagePix,imgsize,1,fp); - if (ret<3) ret=1;//write error - else ret=0; - - fflush(fp); //flush data stream to file system - if(fsync(fileno(fp)) || fclose(fp)) - { - perror("BMP ERROR - couldn't write to file"); - ret=1; - } - } - else - { - ret=1; - g_printerr("ERROR: Could not open file %s for write \n",Filename); - } - return ret; -} - -/* write a png file */ -int write_png(char *file_name, int width, int height,BYTE *prgb_data) -{ - int l=0; - FILE *fp; - png_structp png_ptr; - png_infop info_ptr; - png_text text_ptr[3]; - - png_bytep row_pointers[height]; - /* open the file */ - fp = fopen(file_name, "wb"); - if (fp == NULL) - return (1); - - /* Create and initialize the png_struct with the desired error handler - * functions. If you want to use the default stderr and longjump method, - * you can supply NULL for the last three parameters. We also check that - * the library version is compatible with the one used at compile time, - * in case we are using dynamically linked libraries. - */ - png_ptr = png_create_write_struct(PNG_LIBPNG_VER_STRING, - NULL, NULL, NULL); - - if (png_ptr == NULL) - { - fclose(fp); - return (2); - } - - /* Allocate/initialize the image information data. */ - info_ptr = png_create_info_struct(png_ptr); - if (info_ptr == NULL) - { - fclose(fp); - png_destroy_write_struct(&png_ptr, NULL); - return (3); - } - - /* Set error handling. REQUIRED if you aren't supplying your own - * error handling functions in the png_create_write_struct() call. - */ - if (setjmp(png_jmpbuf(png_ptr))) - { - /* If we get here, we had a problem reading the file */ - fclose(fp); - png_destroy_write_struct(&png_ptr, &info_ptr); - return (4); - } - - /* set up the output control using standard C streams */ - png_init_io(png_ptr, fp); - - /* turn on or off filtering, and/or choose - specific filters. You can use either a single - PNG_FILTER_VALUE_NAME or the bitwise OR of one - or more PNG_FILTER_NAME masks. */ - /* png_set_filter(png_ptr, 0, - PNG_FILTER_NONE | PNG_FILTER_VALUE_NONE | - PNG_FILTER_SUB | PNG_FILTER_VALUE_SUB | - PNG_FILTER_UP | PNG_FILTER_VALUE_UP | - PNG_FILTER_AVE | PNG_FILTER_VALUE_AVE | - PNG_FILTER_PAETH | PNG_FILTER_VALUE_PAETH| - PNG_ALL_FILTERS);*/ - - /* set the zlib compression level */ - //png_set_compression_level(png_ptr, - // Z_BEST_COMPRESSION); - - /* set other zlib parameters */ - //png_set_compression_mem_level(png_ptr, 8); - //png_set_compression_strategy(png_ptr, - // Z_DEFAULT_STRATEGY); - //png_set_compression_window_bits(png_ptr, 15); - //png_set_compression_method(png_ptr, 8); - //png_set_compression_buffer_size(png_ptr, 8192); - - png_set_IHDR(png_ptr, info_ptr, width, height, - 8, PNG_COLOR_TYPE_RGB, PNG_INTERLACE_NONE, - PNG_COMPRESSION_TYPE_DEFAULT, PNG_FILTER_TYPE_DEFAULT); - - /* Optional gamma chunk is strongly suggested if you have any guess - * as to the correct gamma of the image. - */ - //png_set_gAMA(png_ptr, info_ptr, gamma); - - /* Optionally write comments into the image */ - text_ptr[0].key = "Title"; - text_ptr[0].text = file_name; - text_ptr[0].compression = PNG_TEXT_COMPRESSION_NONE; - text_ptr[1].key = "Software"; - text_ptr[1].text = "guvcview"; - text_ptr[1].compression = PNG_TEXT_COMPRESSION_NONE; - text_ptr[2].key = "Description"; - text_ptr[2].text = "File generated by guvcview "; - text_ptr[2].compression = PNG_TEXT_COMPRESSION_NONE; -#ifdef PNG_iTXt_SUPPORTED - text_ptr[0].lang = NULL; - text_ptr[1].lang = NULL; - text_ptr[2].lang = NULL; -#endif - png_set_text(png_ptr, info_ptr, text_ptr, 3); - - /* Write the file header information. REQUIRED */ - png_write_info(png_ptr, info_ptr); - - /* flip BGR pixels to RGB */ - //png_set_bgr(png_ptr); /*?no longuer required?*/ - - /* Write the image data.*/ - for (l = 0; l < height; l++) - row_pointers[l] = prgb_data + l*width*3; - - png_write_image(png_ptr, row_pointers); - - /* You can write optional chunks like tEXt, zTXt, and tIME at the end - * as well. Shouldn't be necessary in 1.1.0 and up as all the public - * chunks are supported and you can use png_set_unknown_chunks() to - * register unknown chunks into the info structure to be written out. - */ - - /* It is REQUIRED to call this to finish writing the rest of the file */ - png_write_end(png_ptr, info_ptr); - - /* If you png_malloced a palette, free it here (don't free info_ptr->palette, - as recommended in versions 1.0.5m and earlier of this example; if - libpng mallocs info_ptr->palette, libpng will free it). If you - allocated it with malloc() instead of png_malloc(), use free() instead - of png_free(). */ - //png_free(png_ptr, palette); - //palette=NULL; - - /* Similarly, if you png_malloced any data that you passed in with - png_set_something(), such as a hist or trans array, free it here, - when you can be sure that libpng is through with it. */ - //png_free(png_ptr, trans); - //trans=NULL; - - /* clean up after the write, and free any memory allocated */ - png_destroy_write_struct(&png_ptr, &info_ptr); - - /* close the file */ - fflush(fp); //flush data stream to file system - if(fsync(fileno(fp)) || fclose(fp)) - { - perror("PNG ERROR - couldn't write to file"); - return(5); - } - - for(l=0;l # -# # -# This program is free software; you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation; either version 2 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program; if not, write to the Free Software # -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# # -********************************************************************************/ - -#ifndef PICTURE_H -#define PICTURE_H - -#include "defs.h" - -typedef struct tagBITMAPFILEHEADER -{ - WORD bfType; //Specifies the file type, must be BM - DWORD bfSize; //Specifies the size, in bytes, of the bitmap file - WORD bfReserved1; //Reserved; must be zero - WORD bfReserved2; //Reserved; must be zero - DWORD bfOffBits; /*Specifies the offset, in bytes, - from the beginning of the BITMAPFILEHEADER structure - to the bitmap bits= FileHeader+InfoHeader+RGBQUAD(0 for 24bit BMP)=64*/ -} __attribute__ ((packed)) BITMAPFILEHEADER, *PBITMAPFILEHEADER; - - -typedef struct tagBITMAPINFOHEADER -{ - DWORD biSize; - LONG biWidth; - LONG biHeight; - WORD biPlanes; - WORD biBitCount; - DWORD biCompression; - DWORD biSizeImage; - LONG biXPelsPerMeter; - LONG biYPelsPerMeter; - DWORD biClrUsed; - DWORD biClrImportant; -} __attribute__ ((packed)) BITMAPINFOHEADER, *PBITMAPINFOHEADER; - -typedef struct tagJPGFILEHEADER -{ - BYTE SOI[2];/*SOI Marker 0xFFD8*/ - BYTE APP0[2];/*APP0 MARKER 0xFF0E*/ - BYTE length[2];/*length of header without APP0 in bytes*/ - BYTE JFIF[5];/*set to JFIF0 0x4A46494600*/ - BYTE VERS[2];/*1-2 0x0102*/ - BYTE density;/* 0 - No units, aspect ratio only specified - 1 - Pixels per Inch on quickcam5000pro - 2 - Pixels per Centimetre */ - BYTE xdensity[2];/*120 on quickcam5000pro*/ - BYTE ydensity[2];/*120 on quickcam5000pro*/ - BYTE WTN;/*width Thumbnail 0*/ - BYTE HTN;/*height Thumbnail 0*/ -} __attribute__ ((packed)) JPGFILEHEADER, *PJPGFILEHEADER; - -int SaveJPG(const char *Filename,int imgsize,BYTE *ImagePix); - -int SaveBuff(const char *Filename,int imgsize,BYTE *data); - -int SaveBPM(const char *Filename, long width, long height, int BitCount, BYTE *ImagePix); - -int write_png(char *file_name, int width, int height,BYTE *prgb_data); - -#endif - diff -Nru guvcview-1.7.3/src/port_audio.c guvcview-2.0.1+ubuntu1~ppa1/src/port_audio.c --- guvcview-1.7.3/src/port_audio.c 2014-03-24 22:56:28.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/src/port_audio.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,288 +0,0 @@ -/*******************************************************************************# -# guvcview http://guvcview.sourceforge.net # -# # -# Paulo Assis # -# # -# This program is free software; you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation; either version 2 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program; if not, write to the Free Software # -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# # -********************************************************************************/ - -#include -#include "port_audio.h" -#include "ms_time.h" - -int -portaudio_list_snd_devices(struct GLOBAL *global) -{ - int it, numDevices, defaultDisplayed; - const PaDeviceInfo *deviceInfo; - - //reset device count - global->Sound_numInputDev = 0; - - numDevices = Pa_GetDeviceCount(); - if( numDevices < 0 ) - { - g_print( "SOUND DISABLE: Pa_CountDevices returned 0x%x\n", numDevices ); - //err = numDevices; - global->Sound_enable=0; - } - else - { - global->Sound_DefDev = 0; - - for( it=0; itdebug) g_print( "--------------------------------------- device #%d\n", it ); - // Mark global and API specific default devices - defaultDisplayed = 0; - - // with pulse, ALSA is now listed first and doesn't set a API default- 11-2009 - if( it == Pa_GetDefaultInputDevice() ) - { - if (global->debug) g_print( "[ Default Input" ); - defaultDisplayed = 1; - global->Sound_DefDev=global->Sound_numInputDev;/*default index in array of input devs*/ - } - else if( it == Pa_GetHostApiInfo( deviceInfo->hostApi )->defaultInputDevice ) - { - const PaHostApiInfo *hostInfo = Pa_GetHostApiInfo( deviceInfo->hostApi ); - if (global->debug) g_print( "[ Default %s Input", hostInfo->name ); - defaultDisplayed = 2; - //global->Sound_DefDev=global->Sound_numInputDev;/*index in array of input devs*/ - } - // OUTPUT device doesn't matter for capture - if( it == Pa_GetDefaultOutputDevice() ) - { - if (global->debug) - { - g_print( (defaultDisplayed ? "," : "[") ); - g_print( " Default Output" ); - } - defaultDisplayed = 3; - } - else if( it == Pa_GetHostApiInfo( deviceInfo->hostApi )->defaultOutputDevice ) - { - const PaHostApiInfo *hostInfo = Pa_GetHostApiInfo( deviceInfo->hostApi ); - if (global->debug) - { - g_print( (defaultDisplayed ? "," : "[") ); - g_print( " Default %s Output", hostInfo->name );/* OSS ALSA etc*/ - } - defaultDisplayed = 4; - } - - if( defaultDisplayed!=0 ) - if (global->debug) g_print( " ]\n" ); - - /* print device info fields */ - if (global->debug) - { - g_print( "Name = %s\n", deviceInfo->name ); - g_print( "Host API = %s\n", Pa_GetHostApiInfo( deviceInfo->hostApi )->name ); - g_print( "Max inputs = %d", deviceInfo->maxInputChannels ); - } - // INPUT devices (if it has input channels it's a capture device) - if (deviceInfo->maxInputChannels >0) - { - global->Sound_numInputDev++; - //allocate new Sound Device Info - global->Sound_IndexDev = g_renew(sndDev, global->Sound_IndexDev, global->Sound_numInputDev); - //fill structure with sound data - global->Sound_IndexDev[global->Sound_numInputDev-1].id=it; /*saves dev id*/ - strncpy(global->Sound_IndexDev[global->Sound_numInputDev-1].name, deviceInfo->name, 511); - strncpy(global->Sound_IndexDev[global->Sound_numInputDev-1].description, deviceInfo->name, 255); - global->Sound_IndexDev[global->Sound_numInputDev-1].chan=deviceInfo->maxInputChannels; - global->Sound_IndexDev[global->Sound_numInputDev-1].samprate=deviceInfo->defaultSampleRate; - //Sound_IndexDev[Sound_numInputDev].Hlatency=deviceInfo->defaultHighInputLatency; - //Sound_IndexDev[Sound_numInputDev].Llatency=deviceInfo->defaultLowInputLatency; - } - if (global->debug) - { - g_print( ", Max outputs = %d\n", deviceInfo->maxOutputChannels ); - g_print( "Def. low input latency = %8.3f\n", deviceInfo->defaultLowInputLatency ); - g_print( "Def. low output latency = %8.3f\n", deviceInfo->defaultLowOutputLatency ); - g_print( "Def. high input latency = %8.3f\n", deviceInfo->defaultHighInputLatency ); - g_print( "Def. high output latency = %8.3f\n", deviceInfo->defaultHighOutputLatency ); - g_print( "Def. sample rate = %8.2f\n", deviceInfo->defaultSampleRate ); - } - - } - - if (global->debug) g_print("----------------------------------------------\n"); - } - - return 0; -} - -/*--------------------------- audio record callback -----------------------*/ -static int -recordCallback (const void *inputBuffer, void *outputBuffer, - unsigned long framesPerBuffer, - const PaStreamCallbackTimeInfo* timeInfo, - PaStreamCallbackFlags statusFlags, - void *userData ) -{ - struct paRecordData *pdata = (struct paRecordData*)userData; - - int channels = pdata->channels; - - unsigned long numSamples = framesPerBuffer * channels; - UINT64 frame_length = G_NSEC_PER_SEC / pdata->samprate; /*in nanosec*/ - - PaTime ts_sec = timeInfo->inputBufferAdcTime; /*in seconds (double)*/ - int64_t ts = ts_sec * G_NSEC_PER_SEC; /*in nanosec (monotonic time)*/ - - if(statusFlags & paInputOverflow) - { - g_print( "AUDIO: portaudio buffer overflow\n" ); - /*determine the number of samples dropped*/ - if(pdata->a_last_ts <= 0) - pdata->a_last_ts = pdata->snd_begintime; - - int64_t d_ts = ts - pdata->a_last_ts; - int n_samples = (d_ts / frame_length) * channels; - record_silence (n_samples, userData); - } - if(statusFlags & paInputUnderflow) - g_print( "AUDIO: portaudio buffer underflow\n" ); - - int res = record_sound ( inputBuffer, numSamples, ts, userData ); - - pdata->a_last_ts = ts + (framesPerBuffer * frame_length); - - if(res < 0 ) - return (paComplete); /*capture stopped*/ - else - return (paContinue); /*still capturing*/ -} - -/*--------------------------- API initialization -------------------------*/ -int -port_init_audio(struct paRecordData* pdata) -{ - PaError err = paNoError; - PaStream *stream = NULL; - - PaStreamParameters inputParameters; - - if(stream) - { - if( !(Pa_IsStreamStopped( stream ))) - { - Pa_AbortStream( pdata->stream ); - Pa_CloseStream( pdata->stream ); - pdata->stream = NULL; - } - } - - inputParameters.device = pdata->device_id; - inputParameters.channelCount = pdata->channels; - inputParameters.sampleFormat = PA_SAMPLE_TYPE; - - if (Pa_GetDeviceInfo( inputParameters.device )) - inputParameters.suggestedLatency = Pa_GetDeviceInfo( inputParameters.device )->defaultLowInputLatency; - //inputParameters.suggestedLatency = Pa_GetDeviceInfo( inputParameters.device )->defaultHighInputLatency; - else - inputParameters.suggestedLatency = DEFAULT_LATENCY_DURATION/1000.0; - inputParameters.hostApiSpecificStreamInfo = NULL; - - /*---------------------------- start recording Audio. ----------------------------- */ - - err = Pa_OpenStream( - &stream, - &inputParameters, - NULL, /* &outputParameters, */ - pdata->samprate, /* sample rate */ - paFramesPerBufferUnspecified,/* buffer in frames (use API optimal)*/ - paNoFlag, /* PaNoFlag - clip and dhiter*/ - recordCallback, /* sound callback */ - pdata ); /* callback userData */ - - if( err != paNoError ) goto error; - - err = Pa_StartStream( stream ); - pdata->stream = (void *) stream; //store stream pointer - - if( err != paNoError ) goto error; /*should close the stream if error ?*/ - - const PaStreamInfo* stream_info = Pa_GetStreamInfo (stream); - g_print("AUDIO: latency of %8.3f msec\n", 1000 * stream_info->inputLatency); - - return 0; - -error: - g_printerr("AUDIO: An error occured while starting the portaudio API\n" ); - g_printerr(" Error number: %d\n", err ); - g_printerr(" Error message: %s\n", Pa_GetErrorText( err ) ); - pdata->streaming=FALSE; - - if(stream) Pa_AbortStream( stream ); - - /*lavc is allways checked and cleaned when finishing worker thread*/ - return(-1); -} - -int -port_close_audio (struct paRecordData *pdata) -{ - PaError err = paNoError; - PaStream *stream = (PaStream *) pdata->stream; - int ret = 0; - - /*stops and closes the audio stream*/ - if(stream) - { - if(Pa_IsStreamActive( stream ) > 0) - { - g_print("Aborting audio stream\n"); - err = Pa_AbortStream( stream ); - } - else - { - g_print("Stoping audio stream\n"); - err = Pa_StopStream( stream ); - } - - if( err != paNoError ) - { - g_printerr("An error occured while stoping the audio stream\n" ); - g_printerr("Error number: %d\n", err ); - g_printerr("Error message: %s\n", Pa_GetErrorText( err ) ); - ret = -1; - } - - g_print("Closing audio stream...\n"); - err = Pa_CloseStream( stream ); - - if( err != paNoError ) - { - g_printerr("An error occured while closing the audio stream\n" ); - g_printerr("Error number: %d\n", err ); - g_printerr("Error message: %s\n", Pa_GetErrorText( err ) ); - ret = -1; - } - } - else - g_print("Invalid stream pointer.\n"); - - - pdata->stream = NULL; - - return (ret); -} - - diff -Nru guvcview-1.7.3/src/port_audio.h guvcview-2.0.1+ubuntu1~ppa1/src/port_audio.h --- guvcview-1.7.3/src/port_audio.h 2014-03-24 22:56:28.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/src/port_audio.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,54 +0,0 @@ -/*******************************************************************************# -# guvcview http://guvcview.sourceforge.net # -# # -# Paulo Assis # -# # -# This program is free software; you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation; either version 2 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program; if not, write to the Free Software # -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# # -********************************************************************************/ - -#ifndef PORT_AUDIO_H -#define PORT_AUDIO_H - -#include -#include "guvcview.h" -#include "sound.h" - -/*------------- portaudio defs ----------------*/ -/*---- can be override in rc file or GUI ------*/ - -#define DEFAULT_LATENCY_DURATION 100.0 -#define DEFAULT_LATENCY_CORRECTION -130.0 - -#define SAMPLE_RATE (0) /* 0 device default*/ -//#define FRAMES_PER_BUFFER (4096) - -/* sound can go for more 1 seconds than video */ - -#define NUM_CHANNELS (0) /* 0-device default 1-mono 2-stereo */ - -#define PA_SAMPLE_TYPE paFloat32 -#define PA_FOURCC WAVE_FORMAT_PCM //use PCM 16 bits converted from float - -int -portaudio_list_snd_devices(struct GLOBAL *global); - -int -port_init_audio(struct paRecordData* pdata); - -int -port_close_audio(struct paRecordData *pdata); - -#endif \ No newline at end of file diff -Nru guvcview-1.7.3/src/profile.c guvcview-2.0.1+ubuntu1~ppa1/src/profile.c --- guvcview-1.7.3/src/profile.c 2014-03-24 22:56:28.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/src/profile.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,314 +0,0 @@ -/*******************************************************************************# -# guvcview http://guvcview.sourceforge.net # -# # -# Paulo Assis # -# # -# This program is free software; you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation; either version 2 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program; if not, write to the Free Software # -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# # -********************************************************************************/ - -#include -#include -#include -#include -#include -#include -#include - -#include "defs.h" -#include "profile.h" -#include "../config.h" - -int -SaveControls(struct ALL_DATA *all_data) -{ - struct VidState *s = all_data->s; - struct GLOBAL *global = all_data->global; - - FILE *fp; - int i=0; - char *filename; - filename = g_strjoin("/", global->profile_FPath[1], global->profile_FPath[0], NULL); - - fp = g_fopen(filename, "w"); - if( fp == NULL ) - { - g_printerr("Could not open profile data file: %s.\n",filename); - return (-1); - } - else - { - if (s->control_list) - { - Control *current = s->control_list; - Control *next = current->next; - //write header - fprintf(fp, "#V4L2/CTRL/0.0.2\n"); - fprintf(fp, "APP{\"%s\"}\n", PACKAGE_STRING); - //write control data - fprintf(fp, "# control data\n"); - for(i=0; inum_controls; i++) - { - if((current->control.flags & V4L2_CTRL_FLAG_WRITE_ONLY) || - (current->control.flags & V4L2_CTRL_FLAG_READ_ONLY) || - (current->control.flags & V4L2_CTRL_FLAG_GRABBED)) - { - if(next == NULL) - break; - else - { - current = next; - next = current->next; - } - continue; - } - fprintf(fp, "#%s\n", current->control.name); - switch(current->control.type) - { - case V4L2_CTRL_TYPE_STRING : - fprintf(fp, "ID{0x%08x};CHK{%i:%i:%i:0}=STR{\"%s\"}\n", - current->control.id, - current->control.minimum, - current->control.maximum, - current->control.step, - current->string); - break; - case V4L2_CTRL_TYPE_INTEGER64 : - fprintf(fp, "ID{0x%08x};CHK{0:0:0:0}=VAL64{%" PRId64 "}\n", - current->control.id, - current->value64); - break; - default : - fprintf(fp, "ID{0x%08x};CHK{%i:%i:%i:%i}=VAL{%i}\n", - current->control.id, - current->control.minimum, - current->control.maximum, - current->control.step, - current->control.default_value, - current->value); - break; - } - - if(next == NULL) - break; - else - { - current = next; - next = current->next; - } - } - } - } - g_free(filename); - - fflush(fp); //flush stream buffers to filesystem - if(fsync(fileno(fp)) || fclose(fp)) - { - perror("PROFILE ERROR - write to file failed"); - return(-1); - } - - return (0); -} - -int -LoadControls(struct ALL_DATA *all_data) -{ - struct VidState *s = all_data->s; - struct GLOBAL *global = all_data->global; - struct vdIn *videoIn = all_data->videoIn; - FILE *fp; - int major=0, minor=0, rev=0; - int num_controls = 0; - Control *current = NULL; - Control *set_list= NULL; - Control *set_curr= NULL; - Control *set_next= NULL; - - char *filename; - filename = g_strjoin("/", global->profile_FPath[1], global->profile_FPath[0], NULL); - - if((fp = g_fopen(filename,"r"))!=NULL) - { - char line[200]; - if(fgets(line, sizeof(line), fp) != NULL) - { - if(sscanf(line,"#V4L2/CTRL/%i.%i.%i", &major, &minor, &rev) == 3) - { - //check standard version if needed - } - else - { - printf("no valid header found\n"); - goto finish; - } - } - else - { - printf("no valid header found\n"); - goto finish; - } - - while (fgets(line, sizeof(line), fp) != NULL) - { - int id = 0; - int min = 0, max = 0, step = 0, def = 0; - int32_t val = 0; - int64_t val64 = 0; - - if ((line[0]!='#') && (line[0]!='\n')) - { - if(sscanf(line,"ID{0x%08x};CHK{%i:%i:%i:%i}=VAL{%i}", - &id, &min, &max, &step, &def, &val) == 6) - { - - current = get_ctrl_by_id(s->control_list, id); - if(current) - { - //check values - if(current->control.minimum == min && - current->control.maximum == max && - current->control.step == step && - current->control.default_value == def) - { - //if its one of the special auto controls disable it first - disable_special_auto (videoIn->fd, s->control_list, id); - //control exists add it to set_list - if(!set_list) - { - set_list = calloc (1, sizeof(Control)); - set_curr = set_list; - memcpy(&(set_curr->control), &(current->control), sizeof(struct v4l2_queryctrl)); - set_curr->class = set_curr->control.id & 0xFFFF0000; - set_curr->next = NULL; - set_curr->menu = NULL; - set_curr->string = NULL; - set_curr->value = val; - } - else - { - set_next = calloc (1, sizeof(Control)); - memcpy(&(set_next->control), &(current->control), sizeof(struct v4l2_queryctrl)); - set_next->next = NULL; - set_curr->next = set_next; - set_curr = set_next; - set_curr->class = set_curr->control.id & 0xFFFF0000; - set_curr->menu = NULL; - set_curr->string = NULL; - set_curr->value = val; - } - num_controls++; - } - } - } - else if(sscanf(line,"ID{0x%08x};CHK{0:0:0:0}=VAL64{%" PRId64 "}", - &id, &val64) == 2) - { - current = get_ctrl_by_id(s->control_list, id); - if(current) - { - //control exists add it to set_list - if(!set_list) - { - set_list = calloc (1, sizeof(Control)); - set_curr = set_list; - memcpy(&(set_curr->control), &(current->control), sizeof(struct v4l2_queryctrl)); - set_curr->class = set_curr->control.id & 0xFFFF0000; - set_curr->next = NULL; - set_curr->value64 = val64; - } - else - { - set_next = calloc (1, sizeof(Control)); - memcpy(&(set_next->control), &(current->control), sizeof(struct v4l2_queryctrl)); - set_next->next = NULL; - set_curr->next = set_next; - set_curr = set_next; - set_curr->class = set_curr->control.id & 0xFFFF0000; - set_curr->menu = NULL; - set_curr->string = NULL; - set_curr->value64 = val64; - } - num_controls++; - } - } - else if(sscanf(line,"ID{0x%08x};CHK{%i:%i:%i:0}=STR{\"%*s\"}", - &id, &min, &max, &step) == 5) - { - current = get_ctrl_by_id(s->control_list, id); - if(current) - { - //check values - if(current->control.minimum == min && - current->control.maximum == max && - current->control.step == step) - { - char str[max+1]; - sscanf(line, "ID{0x%*x};CHK{%*i:%*i:%*i:0}==STR{\"%s\"}", str); - if(strlen(str) > max) //FIXME: should also check (minimum +N*step) - { - printf("string bigger than maximum buffer size"); - } - else - { - //control exists add it to set_list - if(!set_list) - { - set_list = calloc (1, sizeof(Control)); - set_curr = set_list; - memcpy(&(set_curr->control), &(current->control), sizeof(struct v4l2_queryctrl)); - set_curr->class = set_curr->control.id & 0xFFFF0000; - set_curr->next = NULL; - set_curr->menu = NULL; - set_curr->value = strlen(str) + 1; - set_curr->string = calloc(set_curr->value, sizeof(char)); - strcpy(set_curr->string, str); - } - else - { - set_next = calloc (1, sizeof(Control)); - memcpy(&(set_next->control), &(current->control), sizeof(struct v4l2_queryctrl)); - set_next->next = NULL; - set_curr->next = set_next; - set_curr = set_next; - set_curr->class = set_curr->control.id & 0xFFFF0000; - set_curr->menu = NULL; - set_curr->value = strlen(str) + 1; - set_curr->string = calloc(set_curr->value, sizeof(char)); - strcpy(set_curr->string, str); - } - num_controls++; - } - } - } - } - } - } - - set_ctrl_values(videoIn->fd, set_list, num_controls); - get_ctrl_values(videoIn->fd, s->control_list, s->num_controls, all_data); - } - else - { - g_printerr("Could not open profile data file: %s.\n",filename); - return (-1); - } - -finish: - free_control_list (set_list); - fclose(fp); - g_free(filename); - return (0); -} diff -Nru guvcview-1.7.3/src/profile.h guvcview-2.0.1+ubuntu1~ppa1/src/profile.h --- guvcview-1.7.3/src/profile.h 2014-03-24 22:56:28.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/src/profile.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,35 +0,0 @@ -/*******************************************************************************# -# guvcview http://guvcview.sourceforge.net # -# # -# Paulo Assis # -# # -# This program is free software; you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation; either version 2 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program; if not, write to the Free Software # -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# # -********************************************************************************/ - -#ifndef PROFILE_H -#define PROFILE_H - -#include "v4l2uvc.h" -#include "guvcview.h" -#include "globals.h" - -int -SaveControls(struct ALL_DATA *all_data); - -int -LoadControls(struct ALL_DATA *all_data); - -#endif diff -Nru guvcview-1.7.3/src/pulse_audio.c guvcview-2.0.1+ubuntu1~ppa1/src/pulse_audio.c --- guvcview-1.7.3/src/pulse_audio.c 2014-03-24 22:56:28.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/src/pulse_audio.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,534 +0,0 @@ -/*******************************************************************************# -# guvcview http://guvcview.sourceforge.net # -# # -# Paulo Assis # -# # -# This program is free software; you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation; either version 2 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program; if not, write to the Free Software # -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# # -********************************************************************************/ -#include "../config.h" - -#ifdef PULSEAUDIO - -#include -#include -#include "pulse_audio.h" -#include "audio_effects.h" -#include "ms_time.h" - -#include - -#define __AMUTEX &pdata->mutex - -//#define TIME_EVENT_USEC 50000 - -// From pulsecore/macro.h -#define pa_memzero(x,l) (memset((x), 0, (l))) -#define pa_zero(x) (pa_memzero(&(x), sizeof(x))) - -static pa_stream *recordstream = NULL; // pulse audio stream -static pa_context *pa_ctx = NULL; //pulse context - -static uint32_t latency_ms = 15; // requested initial latency in milisec: 0 use max -static pa_usec_t latency = 0; //real latency in usec (for timestamping) - -//static int64_t timestamp = 0; -//static int64_t totalFrames = 0; - -static int sink_index = 0; -static int source_index = 0; - -static void -finish(pa_context *pa_ctx, pa_mainloop *pa_ml) -{ - /* clean up and disconnect */ - pa_context_disconnect(pa_ctx); - pa_context_unref(pa_ctx); - pa_mainloop_free(pa_ml); -} - -/* This callback gets called when our context changes state. We really only - * care about when it's ready or if it has failed - */ -void -pa_state_cb(pa_context *c, void *userdata) -{ - pa_context_state_t state; - int *pa_ready = userdata; - state = pa_context_get_state(c); - switch (state) - { - // These are just here for reference - case PA_CONTEXT_UNCONNECTED: - case PA_CONTEXT_CONNECTING: - case PA_CONTEXT_AUTHORIZING: - case PA_CONTEXT_SETTING_NAME: - default: - break; - case PA_CONTEXT_FAILED: - case PA_CONTEXT_TERMINATED: - *pa_ready = 2; - break; - case PA_CONTEXT_READY: - *pa_ready = 1; - break; - } -} - -/* - * pa_mainloop will call this function when it's ready to tell us about a source. - * Since we're not threading when listing devices, there's no need for mutexes - * on the devicelist structure - */ -void pa_sourcelist_cb(pa_context *c, const pa_source_info *l, int eol, void *userdata) -{ - struct GLOBAL *global = userdata; - int channels = 1; - - if (eol > 0) - { - return; - } - - source_index++; - - if(l->sample_spec.channels <1) - channels = 1; - else if (l->sample_spec.channels > 2) - channels = 2; - else - channels = l->sample_spec.channels; - - if(global->debug) - { - g_print("=======[ Input Device #%d ]=======\n", source_index); - g_print("Description: %s\n", l->description); - g_print("Name: %s\n", l->name); - g_print("Index: %d\n", l->index); - g_print("Channels: %d (default to: %d)\n", l->sample_spec.channels, channels); - g_print("SampleRate: %d\n", l->sample_spec.rate); - g_print("Latency: %llu (usec)\n", (long long unsigned) l->latency); - g_print("Card: %d\n", l->card); - g_print("\n"); - } - - if(l->monitor_of_sink == PA_INVALID_INDEX) - { - global->Sound_numInputDev++; - //allocate new Sound Device Info - global->Sound_IndexDev = g_renew(sndDev, global->Sound_IndexDev, global->Sound_numInputDev); - //fill structure with sound data - global->Sound_IndexDev[global->Sound_numInputDev-1].id = l->index; /*saves dev id*/ - strncpy(global->Sound_IndexDev[global->Sound_numInputDev-1].name, l->name, 511); - strncpy(global->Sound_IndexDev[global->Sound_numInputDev-1].description, l->description, 255); - global->Sound_IndexDev[global->Sound_numInputDev-1].chan = channels; - global->Sound_IndexDev[global->Sound_numInputDev-1].samprate = l->sample_spec.rate; - } -} - -/* - * See above. This callback is pretty much identical to the previous - * but it will only print the output devices - */ -void pa_sinklist_cb(pa_context *c, const pa_sink_info *l, int eol, void *userdata) -{ - struct GLOBAL *global = userdata; - - /* If eol is set to a positive number, you're at the end of the list */ - if (eol > 0) - { - return; - } - - sink_index++; - - if(global->debug) - { - g_print("=======[ Output Device #%d ]=======\n", sink_index); - g_print("Description: %s\n", l->description); - g_print("Name: %s\n", l->name); - g_print("Index: %d\n", l->index); - g_print("Channels: %d\n", l->channel_map.channels); - g_print("SampleRate: %d\n", l->sample_spec.rate); - g_print("Latency: %llu (usec)\n", (long long unsigned) l->latency); - g_print("Card: %d\n", l->card); - g_print("\n"); - } -} - -/* - * iterate the main loop until all devices are listed - */ -int pa_get_devicelist(struct GLOBAL *global) -{ - /* Define our pulse audio loop and connection variables */ - pa_mainloop *pa_ml; - pa_mainloop_api *pa_mlapi; - pa_operation *pa_op = NULL; - pa_context *pa_ctx; - - /* We'll need these state variables to keep track of our requests */ - int state = 0; - int pa_ready = 0; - - /* Create a mainloop API and connection to the default server */ - pa_ml = pa_mainloop_new(); - pa_mlapi = pa_mainloop_get_api(pa_ml); - pa_ctx = pa_context_new(pa_mlapi, "getDevices"); - - /* This function connects to the pulse server */ - pa_context_connect(pa_ctx, NULL, 0, NULL); - - /* - * This function defines a callback so the server will tell us it's state. - * Our callback will wait for the state to be ready. The callback will - * modify the variable to 1 so we know when we have a connection and it's - * ready. - * If there's an error, the callback will set pa_ready to 2 - */ - pa_context_set_state_callback(pa_ctx, pa_state_cb, &pa_ready); - - /* - * Now we'll enter into an infinite loop until we get the data we receive - * or if there's an error - */ - for (;;) - { - /* - * We can't do anything until PA is ready, so just iterate the mainloop - * and continue - */ - if (pa_ready == 0) - { - pa_mainloop_iterate(pa_ml, 1, NULL); - continue; - } - /* We couldn't get a connection to the server, so exit out */ - if (pa_ready == 2) - { - finish(pa_ctx, pa_ml); - return -1; - } - /* - * At this point, we're connected to the server and ready to make - * requests - */ - switch (state) - { - /* State 0: we haven't done anything yet */ - case 0: - /* - * This sends an operation to the server. pa_sinklist_cb is - * our callback function and a pointer to our devicelist will - * be passed to the callback (global) The operation ID is stored in the - * pa_op variable - */ - pa_op = pa_context_get_sink_info_list(pa_ctx, - pa_sinklist_cb, - global //userdata - ); - - /* Update state for next iteration through the loop */ - state++; - break; - case 1: - /* - * Now we wait for our operation to complete. When it's - * complete our pa_output_devicelist is filled out, and we move - * along to the next state - */ - if (pa_operation_get_state(pa_op) == PA_OPERATION_DONE) - { - pa_operation_unref(pa_op); - - /* - * Now we perform another operation to get the source - * (input device) list just like before. This time we pass - * a pointer to our input structure - */ - pa_op = pa_context_get_source_info_list(pa_ctx, - pa_sourcelist_cb, - global //userdata - ); - /* Update the state so we know what to do next */ - state++; - } - break; - case 2: - if (pa_operation_get_state(pa_op) == PA_OPERATION_DONE) - { - /* Now we're done, clean up and disconnect and return */ - pa_operation_unref(pa_op); - finish(pa_ctx, pa_ml); - return 0; - } - break; - default: - /* We should never see this state */ - g_print("AUDIO: Pulseaudio in state %d\n", state); - return -1; - } - /* - * Iterate the main loop and go again. The second argument is whether - * or not the iteration should block until something is ready to be - * done. Set it to zero for non-blocking. - */ - pa_mainloop_iterate(pa_ml, 1, NULL); - } -} - -/* - * get the device list from pulse server - */ -int -pulse_list_snd_devices(struct GLOBAL *global) -{ - global->Sound_numInputDev = 0; //reset input device count - global->Sound_DefDev = 0; - - if (pa_get_devicelist(global) < 0) - { - g_print("AUDIO: Pulseaudio failed to get audio device list from PULSE server\n"); - return 1; - } - - return 0; -} - -void get_latency(pa_stream *s) -{ - pa_usec_t l; - int negative; - - pa_stream_get_timing_info(s); - - if (pa_stream_get_latency(s, &l, &negative) != 0) - { - g_printerr("AUDIO: Pulseaudio pa_stream_get_latency() failed\n"); - return; - } - - //latency = l * (negative?-1:1); - latency = l; /*can only be negative in monitoring streams*/ - - //g_print("%0.0f usec \r", (float)latency); -} - -/* - * audio record callback - */ -static void -stream_request_cb(pa_stream *s, size_t length, void *userdata) -{ - - //struct paRecordData *pdata = (struct paRecordData*) userdata; - - //__LOCK_MUTEX( __AMUTEX ); - // int channels = pdata->channels; - // int samprate = pdata->samprate; - //__UNLOCK_MUTEX( __AMUTEX ); - - int64_t timestamp = 0; - - while (pa_stream_readable_size(s) > 0) - { - const void *inputBuffer; - size_t length; - - /*read from stream*/ - if (pa_stream_peek(s, &inputBuffer, &length) < 0) - { - g_print( "AUDIO: pa_stream_peek() failed\n"); - return; - } - - get_latency(s); - - timestamp = ns_time_monotonic() - (latency * 1000); - - if(length == 0) - { - g_print( "AUDIO: empty buffer!\n"); - return; /*buffer is empty*/ - } - - /*timestamp*/ - int numSamples= length / sizeof(SAMPLE); - - if(inputBuffer == NULL) /*it's a hole*/ - { - record_silence (numSamples, userdata); - } - else - record_sound ( inputBuffer, numSamples, timestamp, userdata ); - - pa_stream_drop(s); /*clean the samples*/ - } - -} - -/* - * Iterate the main loop while recording is on. - * This function runs under it's own thread called by pulse_init_audio - */ -static int -pulse_read_audio(void *userdata) -{ - - struct paRecordData *pdata = (struct paRecordData*) userdata; - - g_print("Pulse audio Thread started\n"); - pa_mainloop *pa_ml; - pa_mainloop_api *pa_mlapi; - pa_buffer_attr bufattr; - pa_sample_spec ss; - pa_stream_flags_t flags = 0; - int r; - int pa_ready = 0; - - /* Create a mainloop API and connection to the default server */ - pa_ml = pa_mainloop_new(); - pa_mlapi = pa_mainloop_get_api(pa_ml); - pa_ctx = pa_context_new(pa_mlapi, "guvcview Pulse API"); - pa_context_connect(pa_ctx, NULL, 0, NULL); - - /* - * This function defines a callback so the server will tell us it's state. - * Our callback will wait for the state to be ready. The callback will - * modify the variable to 1 so we know when we have a connection and it's - * ready. - * If there's an error, the callback will set pa_ready to 2 - */ - pa_context_set_state_callback(pa_ctx, pa_state_cb, &pa_ready); - - /* - * This function defines a time event callback (called every TIME_EVENT_USEC) - */ - //pa_context_rttime_new(pa_ctx, pa_rtclock_now() + TIME_EVENT_USEC, time_event_callback, NULL); - - /* - * We can't do anything until PA is ready, so just iterate the mainloop - * and continue - */ - while (pa_ready == 0) - { - pa_mainloop_iterate(pa_ml, 1, NULL); - } - if (pa_ready == 2) - { - finish(pa_ctx, pa_ml); - return -1; - } - - /* set the sample spec (frame rate, channels and format) */ - ss.rate = pdata->samprate; - ss.channels = pdata->channels; - ss.format = PULSE_SAMPLE_TYPE; - - recordstream = pa_stream_new(pa_ctx, "Record", &ss, NULL); - if (!recordstream) - g_print("AUDIO: pa_stream_new failed\n"); - - /* define the callbacks */ - pa_stream_set_read_callback(recordstream, stream_request_cb, (void *) pdata); - - // Set properties of the record buffer - pa_zero(bufattr); - /* optimal value for all is (uint32_t)-1 ~= 2 sec */ - bufattr.maxlength = (uint32_t) -1; - bufattr.prebuf = (uint32_t) -1; - bufattr.minreq = (uint32_t) -1; - - if (latency_ms > 0) - { - bufattr.fragsize = bufattr.tlength = pa_usec_to_bytes(latency_ms * PA_USEC_PER_MSEC, &ss); - flags |= PA_STREAM_ADJUST_LATENCY; - } - else - bufattr.fragsize = bufattr.tlength = (uint32_t) -1; - - flags |= PA_STREAM_INTERPOLATE_TIMING; - flags |= PA_STREAM_AUTO_TIMING_UPDATE; - - char * dev = pdata->device_name; - g_print("AUDIO: Pulseaudio connecting to device %s\n\t (channels %d rate %d)\n", dev, ss.channels, ss.rate); - r = pa_stream_connect_record(recordstream, dev, &bufattr, flags); - if (r < 0) - { - g_print("AUDIO: skip latency adjustment\n"); - /* Old pulse audio servers don't like the ADJUST_LATENCY flag, - * so retry without that - */ - r = pa_stream_connect_record(recordstream, dev, &bufattr, - PA_STREAM_INTERPOLATE_TIMING| - PA_STREAM_AUTO_TIMING_UPDATE); - } - if (r < 0) - { - g_print("AUDIO: pa_stream_connect_record failed\n"); - finish(pa_ctx, pa_ml); - return -1; - } - - get_latency(recordstream); - - pdata->streaming=TRUE; - - /* - * Iterate the main loop while streaming. The second argument is whether - * or not the iteration should block until something is ready to be - * done. Set it to zero for non-blocking. - */ - while (pdata->capVid) - { - pa_mainloop_iterate(pa_ml, 1, NULL); - } - - pa_stream_disconnect (recordstream); - pa_stream_unref (recordstream); - finish(pa_ctx, pa_ml); - return 0; -} - -/* - * Launch the main loop iteration thread - */ -int -pulse_init_audio(struct paRecordData* pdata) -{ - /* start audio capture thread */ - if(__THREAD_CREATE(&pdata->pulse_read_th, (GThreadFunc) pulse_read_audio, pdata)) - { - g_printerr("Pulse thread creation failed\n"); - pdata->streaming=FALSE; - - return (-1); - } - - return 0; -} - -/* - * join the main loop iteration thread - */ -int -pulse_close_audio(struct paRecordData* pdata) -{ - __THREAD_JOIN( pdata->pulse_read_th ); - g_print("AUDIO: pulse read thread joined\n"); - return 0; -} - -#endif diff -Nru guvcview-1.7.3/src/pulse_audio.h guvcview-2.0.1+ubuntu1~ppa1/src/pulse_audio.h --- guvcview-1.7.3/src/pulse_audio.h 2014-03-24 22:56:28.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/src/pulse_audio.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,39 +0,0 @@ -/*******************************************************************************# -# guvcview http://guvcview.sourceforge.net # -# # -# Paulo Assis # -# # -# This program is free software; you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation; either version 2 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program; if not, write to the Free Software # -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# # -********************************************************************************/ - -#ifdef PULSEAUDIO -#ifndef PULSE_AUDIO_H -#define PULSE_AUDIO_H - -#include -#include "sound.h" - -int -pulse_list_snd_devices(struct GLOBAL *global); - -int -pulse_init_audio(struct paRecordData* pdata); - -int -pulse_close_audio(struct paRecordData* pdata); - -#endif -#endif diff -Nru guvcview-1.7.3/src/quant.c guvcview-2.0.1+ubuntu1~ppa1/src/quant.c --- guvcview-1.7.3/src/quant.c 2014-03-24 22:56:28.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/src/quant.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,213 +0,0 @@ -/*******************************************************************************# -# guvcview http://guvcview.sourceforge.net # -# # -# Paulo Assis # -# # -# This program is free software; you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation; either version 2 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program; if not, write to the Free Software # -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# # -********************************************************************************/ - -/*******************************************************************************# -# # -# quantization for Jpeg encoder # -# # -# Adapted for linux, Paulo Assis, 2007 # -********************************************************************************/ - -#include "jpgenc.h" - -UINT8 zigzag_table [] = -{ - 0, 1, 5, 6, 14, 15, 27, 28, - 2, 4, 7, 13, 16, 26, 29, 42, - 3, 8, 12, 17, 25, 30, 41, 43, - 9, 11, 18, 24, 31, 40, 44, 53, - 10, 19, 23, 32, 39, 45, 52, 54, - 20, 22, 33, 38, 46, 51, 55, 60, - 21, 34, 37, 47, 50, 56, 59, 61, - 35, 36, 48, 49, 57, 58, 62, 63 -}; - -/* This function implements 16 Step division for Q.15 format data */ -UINT16 DSP_Division (UINT32 numer, UINT32 denom) -{ - UINT16 i; - - denom <<= 15; - - for (i=16; i>0; i--) - { - if (numer > denom) - { - numer -= denom; - numer <<= 1; - numer++; - } - else numer <<= 1; - } - - return (UINT16) numer; -} - -/* Multiply Quantization table with quality factor to get LQT and CQT */ -/* Will use constant Quantization tables to make it faster */ -void initialize_quantization_tables (struct JPEG_ENCODER_STRUCTURE * jpeg_encoder_structure) -{ - UINT16 i, index; - UINT32 value; - -/* comment next line to use JPEG default tables*/ -#define QCAM_TABLES - -#ifndef QCAM_TABLES - /* JPEG default tables (good Quality) */ - static UINT8 luminance_quant_table [] = - { - 16, 11, 10, 16, 24, 40, 51, 61, - 12, 12, 14, 19, 26, 58, 60, 55, - 14, 13, 16, 24, 40, 57, 69, 56, - 14, 17, 22, 29, 51, 87, 80, 62, - 18, 22, 37, 56, 68, 109, 103, 77, - 24, 35, 55, 64, 81, 104, 113, 92, - 49, 64, 78, 87, 103, 121, 120, 101, - 72, 92, 95, 98, 112, 100, 103, 99 - - }; - - static UINT8 chrominance_quant_table [] = - { - 17, 18, 24, 47, 99, 99, 99, 99, - 18, 21, 26, 66, 99, 99, 99, 99, - 24, 26, 56, 99, 99, 99, 99, 99, - 47, 66, 99, 99, 99, 99, 99, 99, - 99, 99, 99, 99, 99, 99, 99, 99, - 99, 99, 99, 99, 99, 99, 99, 99, - 99, 99, 99, 99, 99, 99, 99, 99, - 99, 99, 99, 99, 99, 99, 99, 99 - }; -#else - /* quickcam 5000pro tables (very good quality) */ - static UINT8 luminance_quant_table [] = - { - 0x04, 0x02, 0x03, 0x03, 0x03, 0x02, 0x04, 0x03, - 0x03, 0x03, 0x04, 0x04, 0x04, 0x04, 0x06, 0x0a, - 0x06, 0x06, 0x05, 0x05, 0x06, 0x0c, 0x08, 0x09, - 0x07, 0x0a, 0x0e, 0x0c, 0x0f, 0x0f, 0x0e, 0x0c, - 0x0e, 0x0f, 0x10, 0x12, 0x17, 0x13, 0x10, 0x11, - 0x15, 0x11, 0x0d, 0x0e, 0x14, 0x1a, 0x14, 0x15, - 0x17, 0x18, 0x19, 0x1a, 0x19, 0x0f, 0x13, 0x1c, - 0x1e, 0x1c, 0x19, 0x1e, 0x17, 0x19, 0x19, 0x18 - }; - - static UINT8 chrominance_quant_table [] = - { - 0x04, 0x04, 0x04, 0x06, 0x05, 0x06, 0x0b, 0x06, - 0x06, 0x0b, 0x18, 0x10, 0x0e, 0x10, 0x18, 0x18, - 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, - 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, - 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, - 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, - 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, - 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18 - }; -#endif - -/* static UINT8 qtable_jpeg_flattened[] = - * { 18, 23, 22, 28, 34, 44, 50, 55, - * 24, 24, 26, 31, 36, 53, 54, 52, - * 26, 25, 28, 34, 44, 53, 58, 52, - * 26, 29, 33, 38, 50, 65, 63, 55, - * 30, 33, 43, 52, 58, 73, 71, 61, - * 34, 41, 52, 56, 63, 71, 74, 67, - * 49, 56, 62, 65, 71, 77, 77, 70, - * 59, 67, 68, 69, 74, 70, 71, 70}; - * - * static UINT8 qtable_semiuniform[] = - * { 16, 32, 64, 64, 64, 64, 64, 64, - * 32, 64, 64, 64, 64, 64, 64, 64, - * 64, 64, 64, 64, 64, 64, 64, 64, - * 64, 64, 64, 64, 64, 64, 64, 64, - * 64, 64, 64, 64, 64, 64, 64, 64, - * 64, 64, 64, 64, 64, 64, 64, 64, - * 64, 64, 64, 64, 64, 64, 64, 64, - * 64, 64, 64, 64, 64, 64, 64, 64 }; - * - * static UINT8 qtable_uniform[] = - * { 100, 100, 100, 100, 100, 100, 100, 100, - * 100, 100, 100, 100, 100, 100, 100, 100, - * 100, 100, 100, 100, 100, 100, 100, 100, - * 100, 100, 100, 100, 100, 100, 100, 100, - * 100, 100, 100, 100, 100, 100, 100, 100, - * 100, 100, 100, 100, 100, 100, 100, 100, - * 100, 100, 100, 100, 100, 100, 100, 100, - * 100, 100, 100, 100, 100, 100, 100, 100 }; - * - * static UINT8 qtable_none[] = - * { 1, 1, 1, 1, 1, 1, 1, 1, - * 1, 1, 1, 1, 1, 1, 1, 1, - * 1, 1, 1, 1, 1, 1, 1, 1, - * 1, 1, 1, 1, 1, 1, 1, 1, - * 1, 1, 1, 1, 1, 1, 1, 1, - * 1, 1, 1, 1, 1, 1, 1, 1, - * 1, 1, 1, 1, 1, 1, 1, 1, - * 1, 1, 1, 1, 1, 1, 1, 1 }; - * - * static UINT8 qtable_jpeg_squashed[] = { //4*sqrt(jpeg_flat) - * 18, 19, 19, 21, 23, 27, 28, 30, - * 20, 20, 21, 22, 24, 29, 30, 29, - * 21, 20, 21, 23, 27, 29, 31, 29, - * 21, 22, 23, 25, 28, 32, 32, 30, - * 22, 23, 26, 29, 31, 34, 34, 31, - * 23, 26, 29, 30, 32, 34, 35, 33, - * 28, 30, 32, 32, 34, 35, 35, 34, - * 31, 33, 33, 33, 35, 34, 34, 34 }; - */ - - - - - - - for (i=0; i<64; i++) - { - index = zigzag_table [i]; - - value= luminance_quant_table [i]; - - jpeg_encoder_structure->Lqt [index] = (UINT8) value; - jpeg_encoder_structure->ILqt [i] = DSP_Division (0x8000, value); - - - value = chrominance_quant_table [i]; - - jpeg_encoder_structure->Cqt[index] = (UINT8) value; - jpeg_encoder_structure->ICqt [i] = DSP_Division (0x8000, value); - } -} - -/* multiply DCT Coefficients with Quantization table and store in ZigZag location */ -void quantization (struct JPEG_ENCODER_STRUCTURE * jpeg_encoder_structure, INT16* const data, UINT16* const quant_table_ptr) -{ - INT16 i; - INT32 value; - - for (i=63; i>=0; i--) - { - value = data [i] * quant_table_ptr [i]; - value = (value + 0x4000) >> 15; - - jpeg_encoder_structure->Temp [zigzag_table [i]] = (INT16) value; - } -} diff -Nru guvcview-1.7.3/src/readYUV.c guvcview-2.0.1+ubuntu1~ppa1/src/readYUV.c --- guvcview-1.7.3/src/readYUV.c 2014-03-24 22:56:28.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/src/readYUV.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,69 +0,0 @@ -/*******************************************************************************# -# guvcview http://guvcview.sourceforge.net # -# # -# Paulo Assis # -# # -# This program is free software; you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation; either version 2 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program; if not, write to the Free Software # -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# # -********************************************************************************/ - -/*******************************************************************************# -# # -# read YUYV or UYVY data for Jpeg encoding # -# # -# Adapted for linux, Paulo Assis, 2007 # -********************************************************************************/ - -#include -#include "jpgenc.h" - -/*YUYV*/ -UINT8* read_422_format (struct JPEG_ENCODER_STRUCTURE * jpeg_encoder_structure, UINT8 *input_ptr) -{ - INT32 i, j; - - INT16 *Y1_Ptr = jpeg_encoder_structure->Y1; /*64 int16 block*/ - INT16 *Y2_Ptr = jpeg_encoder_structure->Y2; - INT16 *CB_Ptr = jpeg_encoder_structure->CB; - INT16 *CR_Ptr = jpeg_encoder_structure->CR; - - UINT16 incr = jpeg_encoder_structure->incr; - - UINT8 *tmp_ptr=NULL; - tmp_ptr=input_ptr; - - for (i=8; i>0; i--) /*8 rows*/ - { - for (j=4; j>0; j--) /* 8 cols*/ - { - *Y1_Ptr++ = *tmp_ptr++; - *CB_Ptr++ = *tmp_ptr++; - *Y1_Ptr++ = *tmp_ptr++; - *CR_Ptr++ = *tmp_ptr++; - } - - for (j=4; j>0; j--) /* 8 cols*/ - { - *Y2_Ptr++ = *tmp_ptr++; - *CB_Ptr++ = *tmp_ptr++; - *Y2_Ptr++ = *tmp_ptr++; - *CR_Ptr++ = *tmp_ptr++; - } - - tmp_ptr += incr; /* next row (width - mcu_width)*/ - } - tmp_ptr=NULL;/*clean*/ - return (input_ptr); -} diff -Nru guvcview-1.7.3/src/snd_devices.c guvcview-2.0.1+ubuntu1~ppa1/src/snd_devices.c --- guvcview-1.7.3/src/snd_devices.c 2014-03-24 22:56:28.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/src/snd_devices.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,107 +0,0 @@ -/*******************************************************************************# -# guvcview http://guvcview.sourceforge.net # -# # -# Paulo Assis # -# # -# This program is free software; you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation; either version 2 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program; if not, write to the Free Software # -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# # -********************************************************************************/ -#include -#include -#include -#include "port_audio.h" -#include "pulse_audio.h" -#include "sound.h" -#include "guvcview.h" -#include "callbacks.h" -#include "snd_devices.h" - -GtkWidget * -list_snd_devices(struct GLOBAL *global) -{ - int i = 0; - - switch(global->Sound_API) - { -#ifdef PULSEAUDIO - case PULSE: - pulse_list_snd_devices(global); - break; -#endif - default: - case PORT: - portaudio_list_snd_devices(global); - break; - } - /*sound device combo box*/ - - GtkWidget *SndDevice = NULL; - - if(!global->no_display) - { - SndDevice = gtk_combo_box_text_new (); - - for(i=0; i < global->Sound_numInputDev; i++) - { - gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(SndDevice),global->Sound_IndexDev[i].description); - } - } - - return (SndDevice); -} - -void -update_snd_devices(struct ALL_DATA *all_data) -{ - struct GLOBAL *global = all_data->global; - struct GWIDGET *gwidget = all_data->gwidget; - - int i = 0; - - switch(global->Sound_API) - { -#ifdef PULSEAUDIO - case PULSE: - pulse_list_snd_devices(global); - break; -#endif - default: - case PORT: - portaudio_list_snd_devices(global); - break; - } - - if(!global->no_display) - { - /*disable fps combobox signals*/ - g_signal_handlers_block_by_func(GTK_COMBO_BOX_TEXT(gwidget->SndDevice), G_CALLBACK (SndDevice_changed), all_data); - /* clear out the old device list... */ - GtkListStore *store = GTK_LIST_STORE(gtk_combo_box_get_model (GTK_COMBO_BOX(gwidget->SndDevice))); - gtk_list_store_clear(store); - - for(i=0; i < global->Sound_numInputDev; i++) - { - gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(gwidget->SndDevice), global->Sound_IndexDev[i].description); - } - - /*set default device in combo*/ - global->Sound_UseDev = global->Sound_DefDev; - gtk_combo_box_set_active(GTK_COMBO_BOX(gwidget->SndDevice), global->Sound_UseDev); - - /*enable fps combobox signals*/ - g_signal_handlers_unblock_by_func(GTK_COMBO_BOX_TEXT(gwidget->SndDevice), G_CALLBACK (SndDevice_changed), all_data); - } - -} diff -Nru guvcview-1.7.3/src/snd_devices.h guvcview-2.0.1+ubuntu1~ppa1/src/snd_devices.h --- guvcview-1.7.3/src/snd_devices.h 2014-03-24 22:56:28.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/src/snd_devices.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,34 +0,0 @@ -/*******************************************************************************# -# guvcview http://guvcview.sourceforge.net # -# # -# Paulo Assis # -# # -# This program is free software; you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation; either version 2 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program; if not, write to the Free Software # -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# # -********************************************************************************/ - -#ifndef SNDDEV_H -#define SNDDEV_H -#include -#include "globals.h" -#include "guvcview.h" - -GtkWidget * -list_snd_devices(struct GLOBAL *global); - -void -update_snd_devices(struct ALL_DATA *all_data); - -#endif diff -Nru guvcview-1.7.3/src/sound.c guvcview-2.0.1+ubuntu1~ppa1/src/sound.c --- guvcview-1.7.3/src/sound.c 2014-03-24 22:56:28.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/src/sound.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,550 +0,0 @@ -/*******************************************************************************# -# guvcview http://guvcview.sourceforge.net # -# # -# Paulo Assis # -# # -# This program is free software; you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation; either version 2 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program; if not, write to the Free Software # -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# # -********************************************************************************/ - -#include -#include -#include -#include "sound.h" -#include "port_audio.h" -#include "pulse_audio.h" -#include "vcodecs.h" -#include "avilib.h" -#include "acodecs.h" -#include "lavc_common.h" -#include "audio_effects.h" -#include "ms_time.h" - -#define __AMUTEX &pdata->mutex -#define MAX_FRAME_DRIFT 15000000 //15 ms -#define MAX_N_DRIFTS 3 //max allowed consecutive drifts - -int n_drifts = 0; //number of consecutive delivered buffers with drift -int64_t last_drift = 0; //last calculated drift - -/* - * ts - timestamp of last frame based on monotonic time (nsec) - * pdata->a_ts - timestamp of first buffer sample based on - * sample count and sample rate (nsec) - */ -static int64_t -fill_audio_buffer(struct paRecordData *pdata, int64_t ts) -{ - int64_t ts_drift = 0; - UINT64 frame_length = G_NSEC_PER_SEC / pdata->samprate; /*in nanosec*/ - UINT64 buffer_length = frame_length * (pdata->aud_numSamples / pdata->channels); /*in nanosec*/ - - /*first frame time stamp*/ - if(pdata->a_ts < 0) - { - /* - * if sound begin time > first video frame ts then sync audio to video - * else set audio ts to aprox. the video ts (0) - */ - if((pdata->ts_ref > 0) && (pdata->ts_ref < pdata->snd_begintime)) - pdata->a_ts = pdata->snd_begintime - pdata->ts_ref; - else - pdata->a_ts = 0; - } - else /*increment time stamp for audio frame*/ - pdata->a_ts += buffer_length; /*add buffer time*/ - - /* check audio drift through timestamps */ - - /* - * this will introduce some drift unless - * snd_begintime is first buffer ts - */ - if (ts > pdata->snd_begintime) - ts -= pdata->snd_begintime; - else - ts = 0; - - /* - * for accuracy this should be buffer_length - frame_length - * since ts is for last frame we should discount that one, - * in pratice one frame is irrelevant - */ - if (ts > buffer_length) - ts -= buffer_length; - else - ts = 0; - - /*drift between monotonic ts and frame based ts*/ - ts_drift = ts - pdata->a_ts; - - pdata->sampleIndex = 0; /*reset*/ - - __LOCK_MUTEX( __AMUTEX ); - int flag = pdata->audio_buff_flag[pdata->bw_ind]; - __UNLOCK_MUTEX( __AMUTEX ); - - if( flag == AUD_READY || flag == AUD_IN_USE ) - { - if(flag == AUD_READY) - { - /*flag as IN_USE*/ - __LOCK_MUTEX( __AMUTEX ); - pdata->audio_buff_flag[pdata->bw_ind] = AUD_IN_USE; - __UNLOCK_MUTEX( __AMUTEX ); - } - /*copy data to audio buffer*/ - memcpy(pdata->audio_buff[pdata->bw_ind][pdata->w_ind].frame, pdata->recordedSamples, pdata->aud_numBytes); - pdata->audio_buff[pdata->bw_ind][pdata->w_ind].time_stamp = pdata->a_ts + pdata->delay; - pdata->audio_buff[pdata->bw_ind][pdata->w_ind].used = TRUE; - - pdata->blast_ind = pdata->bw_ind; - pdata->last_ind = pdata->w_ind; - - /*doesn't need locking as it's only used in the callback*/ - NEXT_IND(pdata->w_ind, AUDBUFF_SIZE); - - if(pdata->w_ind == 0) - { - /* reached end of current ring buffer - * flag it as AUD_PROCESS - * move to next one and flag it as AUD_IN_USE (if READY) - */ - pdata->audio_buff_flag[pdata->bw_ind] = AUD_PROCESS; - - __LOCK_MUTEX( __AMUTEX ); - NEXT_IND(pdata->bw_ind, AUDBUFF_NUM); - - if(pdata->audio_buff_flag[pdata->bw_ind] != AUD_READY) - { - g_printf("AUDIO: next buffer is not yet ready\n"); - } - else - { - pdata->audio_buff_flag[pdata->bw_ind] = AUD_IN_USE; - } - __UNLOCK_MUTEX( __AMUTEX ); - - } - } - else - { - /*drop audio data*/ - g_printerr("AUDIO: dropping audio data\n"); - ts_drift = buffer_length; - } - - return ts_drift; -} - -/*--------------------------- sound callback ------------------------------*/ -int -record_sound ( const void *inputBuffer, unsigned long numSamples, int64_t timestamp, void *userData ) -{ - struct paRecordData *pdata = (struct paRecordData*)userData; - - __LOCK_MUTEX( __AMUTEX ); - gboolean capVid = pdata->capVid; - int channels = pdata->channels; - int skip_n = pdata->skip_n; - __UNLOCK_MUTEX( __AMUTEX ); - - const SAMPLE *rptr = (const SAMPLE*) inputBuffer; - unsigned long i = 0; - int64_t ts_drift = 0; - - //UINT64 numFrames = numSamples / channels; - UINT64 nsec_per_frame = G_NSEC_PER_SEC / pdata->samprate; - - /*timestamp marks beginning of buffer*/ - int64_t ts = timestamp; - - if (skip_n > 0) /*skip audio while were skipping video frames*/ - { - if(capVid) - { - __LOCK_MUTEX( __AMUTEX ); - pdata->snd_begintime = ns_time_monotonic(); /*reset first time stamp*/ - __UNLOCK_MUTEX( __AMUTEX ); - return (0); /*still capturing*/ - } - else - { __LOCK_MUTEX( __AMUTEX ); - pdata->streaming=FALSE; - __LOCK_MUTEX( __AMUTEX ); - return (-1); /*capture has stopped*/ - } - } - - for( i=0; irecordedSamples[pdata->sampleIndex] = inputBuffer ? *rptr++ : 0; - pdata->sampleIndex++; - - if(pdata->sampleIndex >= pdata->aud_numSamples) - { - ts = timestamp + nsec_per_frame * (i/channels); /*timestamp for current frame*/ - ts_drift = fill_audio_buffer(pdata, ts); - - if(ts_drift > MAX_FRAME_DRIFT) /*audio delayed*/ - { - /* - * wait for trend in the next couple of frames - * delay maybe compensated in the next buffers - */ - n_drifts++; - - /*drift has increased, increment n_drifts faster*/ - if(last_drift > MAX_FRAME_DRIFT && ts_drift > last_drift) - n_drifts +=2; - - } - else - n_drifts = 0; /*we are good (if audio is faster compensate in video)*/ - - last_drift = ts_drift; - } - } - - - if(n_drifts > MAX_N_DRIFTS) /*Drift has been incresing for the last frames*/ - { - n_drifts = 0; /*reset*/ - - /* compensate drift (not all, only to MAX/2 ) */ - int n_samples = ((ts_drift - (MAX_FRAME_DRIFT/2)) / nsec_per_frame) * channels; - - printf("AUDIO: compensating ts drift of %" PRId64 " with %d samples (pa_ts=%" PRId64 " curr_ts=%" PRId64 ")\n", - ts_drift, n_samples, timestamp, ts ); - - int j=0; - for( j=0; jrecordedSamples[pdata->sampleIndex] = 0; - pdata->sampleIndex++; - - if(pdata->sampleIndex >= pdata->aud_numSamples) - { - ts += nsec_per_frame * (j/channels); /*timestamp for current frame*/ - ts_drift = fill_audio_buffer(pdata, ts); - - /*break if new drift is acceptable*/ - if(ts_drift < MAX_FRAME_DRIFT) - break; /* already compensated */ - } - } - } - - pdata->ts_drift = ts_drift; /*reset*/ - - if(capVid) return (0); /*still capturing*/ - else - { - __LOCK_MUTEX( __AMUTEX ); - pdata->streaming=FALSE; - /* mark current buffer as ready to process */ - pdata->audio_buff_flag[pdata->bw_ind] = AUD_PROCESS; - __UNLOCK_MUTEX( __AMUTEX ); - } - - return(-1); /* audio capture stopped*/ -} - -void -record_silence ( unsigned long numSamples, void *userData ) -{ - struct paRecordData *pdata = (struct paRecordData*)userData; - - unsigned long i = 0; - - for( i=0; irecordedSamples[pdata->sampleIndex] = 0; - pdata->sampleIndex++; - - if(pdata->sampleIndex >= pdata->aud_numSamples) - { - /*we don't care about drift here*/ - fill_audio_buffer(pdata, pdata->a_last_ts); - } - } -} - -void -set_sound (struct GLOBAL *global, struct paRecordData* pdata) -{ - if(global->Sound_SampRateInd==0) - global->Sound_SampRate=global->Sound_IndexDev[global->Sound_UseDev].samprate;/*using default*/ - - if(global->Sound_NumChanInd==0) - { - /*using default if channels <3 or stereo(2) otherwise*/ - global->Sound_NumChan=(global->Sound_IndexDev[global->Sound_UseDev].chan < 3) ? - global->Sound_IndexDev[global->Sound_UseDev].chan : 2; - } - - pdata->api = global->Sound_API; - pdata->audio_buff[0] = NULL; - pdata->recordedSamples = NULL; - - pdata->samprate = global->Sound_SampRate; - pdata->channels = global->Sound_NumChan; - __LOCK_MUTEX( __AMUTEX ); - pdata->skip_n = global->skip_n; /*initial video frames to skip*/ - __UNLOCK_MUTEX( __AMUTEX ); - if(global->debug) - { - g_print("using audio codec: 0x%04x\n",global->Sound_Format ); - g_print("\tchannels: %d samplerate: %d\n", pdata->channels, pdata->samprate); - } - - switch (global->Sound_Format) - { - case PA_FOURCC: - { - pdata->aud_numSamples = MPG_NUM_SAMP * pdata->channels; - //outbuffer size in bytes (max value is for pcm 2 bytes per sample) - pdata->outbuf_size = pdata->aud_numSamples * 2; //a good value is 240000; - break; - } - default: - { - //outbuffer size in bytes (max value is for pcm 2 bytes per sample) - pdata->outbuf_size = MPG_NUM_SAMP * pdata->channels * 2; //a good value is 240000; - - /*initialize lavc data*/ - if(!(pdata->lavc_data)) - { - pdata->lavc_data = init_lavc_audio(pdata, global->AudCodec); - } - /*use lavc audio codec frame size to determine samples*/ - pdata->aud_numSamples = (pdata->lavc_data)->codec_context->frame_size * pdata->channels; - if(pdata->aud_numSamples <= 0) - { - pdata->aud_numSamples = MPG_NUM_SAMP * pdata->channels; - } - break; - } - } - - pdata->aud_numBytes = pdata->aud_numSamples * sizeof(SAMPLE); - pdata->input_type = PA_SAMPLE_TYPE; - pdata->mp2Buff = NULL; - - pdata->sampleIndex = 0; - - fprintf(stderr, "AUDIO: samples(%d)\n", pdata->aud_numSamples); - pdata->flush = 0; - pdata->a_ts= -1; - pdata->ts_ref = 0; - pdata->a_last_ts = 0; - last_drift = 0; - - pdata->stream = NULL; - /* some drivers, e.g. GSPCA, don't set fps( guvcview sets it to 1/1 ) - * so we can't obtain the proper delay for H.264 (2 video frames) - * if set, use the codec properties fps value */ - int fps_num = 1; - int fps_den = get_enc_fps(global->VidCodec); /*if set use encoder fps */ - if(!fps_den) /*if not set use video combobox fps*/ - { - fps_num = global->fps_num; - fps_den = global->fps; - } - if((get_vcodec_id(global->VidCodec) == CODEC_ID_H264) && (fps_den >= 5)) - pdata->delay = (UINT64) 2*(fps_num * G_NSEC_PER_SEC / fps_den); /*2 frame delay in nanosec*/ - pdata->delay += global->Sound_delay; /*add predefined delay - def = 0*/ - - /*reset the indexes*/ - pdata->r_ind = 0; - pdata->w_ind = 0; - pdata->bw_ind = 0; - pdata->br_ind = 0; - pdata->blast_ind = 0; - pdata->last_ind = 0; - /*buffer for video PCM 16 bits*/ - pdata->pcm_sndBuff=NULL; - - - /*set audio device id to use (portaudio)*/ - pdata->device_id = global->Sound_IndexDev[global->Sound_UseDev].id; /* input device */ - - - /*set audio device to use (pulseudio)*/ - strncpy(pdata->device_name, global->Sound_IndexDev[global->Sound_UseDev].name, 511); -} - - -int -init_sound(struct paRecordData* pdata) -{ - int err = paNoError; - int i = 0; - int j = 0; - - /*alloc audio ring buffers*/ - if(!(pdata->audio_buff[0])) - { - for(j=0; j< AUDBUFF_NUM; j++) - { - pdata->audio_buff[j] = g_new0(AudBuff, AUDBUFF_SIZE); - for(i=0; iaudio_buff[j][i].frame = g_new0(SAMPLE, pdata->aud_numSamples); - pdata->audio_buff[j][i].used = FALSE; - pdata->audio_buff[j][i].time_stamp = 0; - } - pdata->audio_buff_flag[j] = AUD_READY; - } - } - - /*alloc the callback buffer*/ - pdata->recordedSamples = g_new0(SAMPLE, pdata->aud_numSamples); - - switch(pdata->api) - { -#ifdef PULSEAUDIO - case PULSE: - err = pulse_init_audio(pdata); - if(err) - goto error; - break; -#endif - case PORT: - default: - err = port_init_audio(pdata); - if(err) - goto error; - break; - } - - /*sound start time - used to sync with video*/ - pdata->snd_begintime = ns_time_monotonic(); - - return (0); - -error: - pdata->streaming=FALSE; - pdata->flush=0; - pdata->delay=0; - - if(pdata->recordedSamples) g_free( pdata->recordedSamples ); - pdata->recordedSamples=NULL; - if(pdata->audio_buff) - { - - for(j=0; j< AUDBUFF_NUM; j++) - { - for(i=0; iaudio_buff[j][i].frame); - } - g_free(pdata->audio_buff[j]); - pdata->audio_buff[j] = NULL; - } - } - /*lavc is allways checked and cleaned when finishing worker thread*/ - return(-1); -} - -int -close_sound (struct paRecordData *pdata) -{ - int err = 0; - int i= 0, j= 0; - - pdata->capVid = 0; - - switch(pdata->api) - { -#ifdef PULSEAUDIO - case PULSE: - err = pulse_close_audio(pdata); - break; -#endif - case PORT: - default: - err = port_close_audio(pdata); - break; - } - - pdata->flush = 0; - pdata->delay = 0; /*reset the audio delay*/ - - /* --------------------------------------------------------------------- - * make sure no operations are performed on the buffers */ - __LOCK_MUTEX(__AMUTEX); - if(pdata->lavc_data) - clean_lavc_audio(&(pdata->lavc_data)); - pdata->lavc_data = NULL; - /*free primary buffer*/ - g_free( pdata->recordedSamples ); - pdata->recordedSamples=NULL; - if(pdata->audio_buff) - { - for(j=0; j< AUDBUFF_NUM; j++) - { - for(i=0; iaudio_buff[j][i].frame); - } - g_free(pdata->audio_buff[j]); - pdata->audio_buff[j] = NULL; - } - } - if(pdata->pcm_sndBuff) g_free(pdata->pcm_sndBuff); - pdata->pcm_sndBuff = NULL; - __UNLOCK_MUTEX(__AMUTEX); - - return (err); -} - -/* saturate float samples to int16 limits*/ -static gint16 clip_int16 (float in) -{ - in = (in < -32768) ? -32768 : (in > 32767) ? 32767 : in; - - return ((gint16) in); -} - -void SampleConverter (struct paRecordData* pdata) -{ - if(pdata->lavc_data && pdata->lavc_data->codec_context->sample_fmt == AV_SAMPLE_FMT_FLT) - { - if(!(pdata->float_sndBuff)) - pdata->float_sndBuff = g_new0(float, pdata->aud_numSamples); - - int samp = 0; - - for(samp=0; samp < pdata->aud_numSamples; samp++) - { - pdata->float_sndBuff[samp] = pdata->audio_buff[pdata->br_ind][pdata->r_ind].frame[samp]; - } - } - else - { - if (!(pdata->pcm_sndBuff)) - pdata->pcm_sndBuff = g_new0(gint16, pdata->aud_numSamples); - - int samp = 0; - - for(samp=0; samp < pdata->aud_numSamples; samp++) - { - pdata->pcm_sndBuff[samp] = clip_int16(pdata->audio_buff[pdata->br_ind][pdata->r_ind].frame[samp] * 32767.0); //* 32768 + 385; - } - } -} - diff -Nru guvcview-1.7.3/src/sound.h guvcview-2.0.1+ubuntu1~ppa1/src/sound.h --- guvcview-1.7.3/src/sound.h 2014-03-24 22:56:28.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/src/sound.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,147 +0,0 @@ -/*******************************************************************************# -# guvcview http://guvcview.sourceforge.net # -# # -# Paulo Assis # -# # -# This program is free software; you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation; either version 2 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program; if not, write to the Free Software # -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# # -********************************************************************************/ - -#ifndef SOUND_H -#define SOUND_H - -#include -#include -#include "globals.h" -#include "../config.h" -#include "defs.h" - -/*------------- portaudio defs ----------------*/ -/*---- can be override in rc file or GUI ------*/ - -#define DEFAULT_LATENCY_DURATION 100.0 -#define DEFAULT_LATENCY_CORRECTION -130.0 - -#define SAMPLE_RATE (0) /* 0 device default*/ -//#define FRAMES_PER_BUFFER (4096) - -/* sound can go for more 1 seconds than video */ - -#define NUM_CHANNELS (0) /* 0-device default 1-mono 2-stereo */ - -#define PA_SAMPLE_TYPE paFloat32 -#define PA_FOURCC WAVE_FORMAT_PCM //use PCM 16 bits converted from float -#define PULSE_SAMPLE_TYPE PA_SAMPLE_FLOAT32LE //for PCM -> PA_SAMPLE_S16LE - - -#define SAMPLE_SILENCE (0.0f) -#define MAX_SAMPLE (1.0f) -#define PRINTF_S_FORMAT "%.8f" - -/*buffer flags*/ -#define AUD_IN_USE 0 /* in use by interrupt handler*/ -#define AUD_PROCESS 1 /* ready to process */ -#define AUD_PROCESSING 2 /* processing */ -#define AUD_PROCESSED 3 /* ready to write to disk */ -#define AUD_READY 4 /* ready to re-use by interrupt handler*/ - -//API index -#define PORT 0 -#define PULSE 1 - -typedef struct _AudBuff -{ - gboolean used; - QWORD time_stamp; - SAMPLE *frame; -} AudBuff; - -// main audio interface struct -struct paRecordData -{ - int api; //0-Portaudio 1-pulse audio - int input_type; // audio SAMPLE type - - unsigned long framesPerBuffer; //frames per buffer passed in audio callback - char device_name[512]; //device name - for pulse - int device_id; //device id - for portaudio - - int w_ind; // producer index - int r_ind; // consumer index - int bw_ind; // audio_buffer in_use index - int br_ind; // audio_buffer processing - int blast_ind; // last in_use index (for vu meter) - int last_ind; // last producer index (for vu meter) - int channels; // channels - gboolean streaming; // audio streaming flag - int flush; // flush mp2 buffer flag - int samprate; // samp rate - int numsec; // aprox. number of seconds for out buffer size - int aud_numBytes; // bytes copied to out buffer*/ - int aud_numSamples; // samples copied to out buffer*/ - int64_t snd_begintime; // audio recording start time*/ - //int64_t api_ts_ref; - int capVid; // video capture flag - SAMPLE *recordedSamples; // callback buffer - int sampleIndex; - AudBuff *audio_buff[AUDBUFF_NUM];// ring buffers for audio data captured from device - int audio_buff_flag[AUDBUFF_NUM];// process_buffer flags - int64_t a_ts; // audio frame time stamp - int64_t ts_ref; // timestamp video reference - int64_t a_last_ts; // last audio frame timestamp - int64_t ts_drift; // time drift between audio device clock and system clock - gint16 *pcm_sndBuff; // buffer for pcm coding with int16 - float *float_sndBuff; // buffer for pcm coding with float - BYTE *mp2Buff; // mp2 encode buffer - int mp2BuffSize; // mp2 buffer size - int snd_Flags; // effects flag - int skip_n; // video frames to skip - UINT64 delay; // in nanosec - h264 has a two frame delay that must be compensated - - int outbuf_size; //size of output buffer - struct lavcAData* lavc_data; //libavcodec data - __MUTEX_TYPE mutex; - - //PORTAUDIO SUPPORT - void *stream; - - //PULSE SUPPORT -#ifdef PULSEAUDIO - __THREAD_TYPE pulse_read_th; - /*The main loop context*/ - //GMainContext *maincontext; -#endif -}; - -int -record_sound ( const void *inputBuffer, unsigned long numSamples, int64_t timestamp, void *userData ); - -void -record_silence ( unsigned long numSamples, void *userData ); - -void -set_sound (struct GLOBAL *global, struct paRecordData* data); - -int -init_sound(struct paRecordData* data); - -int -close_sound (struct paRecordData *data); - -void -SampleConverter (struct paRecordData* data); - -#endif - diff -Nru guvcview-1.7.3/src/string_utils.c guvcview-2.0.1+ubuntu1~ppa1/src/string_utils.c --- guvcview-1.7.3/src/string_utils.c 2014-03-24 22:56:28.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/src/string_utils.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,300 +0,0 @@ -/*******************************************************************************# -# guvcview http://guvcview.sourceforge.net # -# # -# Paulo Assis # -# # -# This program is free software; you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation; either version 2 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program; if not, write to the Free Software # -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# # -********************************************************************************/ - -#include -#include -#include -#include "defs.h" -#include "string_utils.h" -#include "video_format.h" - - -/* counts chars needed for n*/ -int -int_num_chars (int n) -{ - int i = 0; - - if (n <= 0) - { - i++; - n = -n; - } - - while (n != 0) - { - n /= 10; - i++; - } - return i; -} - -int -uint64_num_chars (uint64_t n) -{ - int i = 0; - - while (n != 0) - { - n /= 10; - i++; - } - return i; -} - -/* check image file extension and return image type*/ -int -check_image_type (char *filename) -{ - int format=0; - - /*get the file extension*/ - GString * file_str = g_string_new(filename); - file_str = g_string_ascii_down(file_str); - - if (g_str_has_suffix (file_str->str, ".jpg")) - { - format = 0; - } - else if (g_str_has_suffix (file_str->str, ".bmp")) - { - format = 1; - } - else if (g_str_has_suffix (file_str->str, ".png")) - { - format = 2; - } - else if (g_str_has_suffix (file_str->str, ".raw")) - { - format = 3; - } - else - format = 0; - - fprintf(stderr, "file %s has extension type %i\n", filename, format); - g_string_free(file_str, TRUE); - return (format); -} - - -/* check video file extension and return video format*/ -int -check_video_type (char *filename) -{ - int format=0; - /*get the file extension*/ - GString * file_str = g_string_new(filename); - file_str = g_string_ascii_down(file_str); - - if (g_str_has_suffix (file_str->str, ".avi")) - { - format = AVI_FORMAT; - } - else if (g_str_has_suffix (file_str->str, ".mkv")) - { - format = MKV_FORMAT; - } - else if (g_str_has_suffix (file_str->str, ".webm")) - { - format = WEBM_FORMAT; - } - else - format = MKV_FORMAT; - - fprintf(stderr, "file %s has extension type %i\n", filename, format); - g_string_free(file_str, TRUE); - return (format); -} - -/* split fullpath in Path (splited[1]) and filename (splited[0])*/ -pchar* splitPath(char *FullPath, char* splited[2]) -{ - char *basename = g_path_get_basename(FullPath); - char *dirname = g_path_get_dirname(FullPath); - - //fprintf(stderr, "base: '%s' dir: '%s'\n",basename, dirname); - - int cpysize = 0; - int size = strlen(basename)+1; - - if (size > (strlen(splited[0])+1)) - { - /* strlen doesn't count '/0' so add 1 char*/ - splited[0]=g_renew(char, splited[0], size); - } - - cpysize = g_strlcpy(splited[0], basename, size*sizeof(char)); - if ( (cpysize+1) < (size*sizeof(char)) ) - g_printerr("filename copy size error:(%i != %lu)\n", - cpysize+1, - (unsigned long) size*sizeof(char)); - - - size = strlen(dirname)+1; - - if (size > (strlen(splited[1])+1)) - { - /* strlen doesn't count '/0' so add 1 char*/ - splited[1]=g_renew(char, splited[1], size); - } - - cpysize = g_strlcpy(splited[1], dirname, size*sizeof(char)); - if ( (cpysize + 1) < (size*sizeof(char)) ) - g_printerr("dirname copy size error:(%i != %lu)\n", - cpysize+1, - (unsigned long) size*sizeof(char)); - - - g_free(basename); - g_free(dirname); - - return (splited); -} - -char *joinPath(char *fullPath, pchar *splited) -{ - /*clean existing string allocation*/ - if(fullPath != NULL) - g_free(fullPath); - - /*allocate newly formed string*/ - fullPath = g_strjoin ("/", splited[1], splited[0], NULL); - - return (fullPath); -} - -char *incFilename(char *fullPath, pchar *splited, uint64_t inc) -{ - /** we don't want to change the base filename (splited[0]) - * so copy it - */ - char* filename = g_strdup(splited[0]); - filename = add_file_suffix(filename, inc); - - /*clean existing string allocation*/ - g_free(fullPath); - - fullPath = g_strjoin ("/", splited[1], filename, NULL); - - if(filename) - g_free(filename); - - return(fullPath); -} - -char *setImgExt(char *filename, int format) -{ - int sname = strlen(filename)+1; /*include '\0' terminator*/ - char basename[sname]; - sscanf(filename,"%[^.]",basename); - switch(format) - { - case 0: - g_snprintf(filename, sname, "%s.jpg", basename); - break; - case 1: - g_snprintf(filename, sname, "%s.bmp", basename); - break; - case 2: - g_snprintf(filename, sname, "%s.png", basename); - break; - case 3: - g_snprintf(filename, sname, "%s.raw", basename); - break; - default: - g_printerr("Image format not supported\n"); - } - return (filename); -} - -char *setVidExt(char *filename, int format_ind) -{ - //include '\0' terminator - int size = strlen(filename) + 1; - char basename[size]; - sscanf(filename,"%[^.]",basename); - const char* extension = get_vformat_extension(format_ind); - //add '.' and '\0' - int total_size = strlen(basename) + strlen(extension) + 2; - if(total_size > size) - filename = g_renew(char, filename, total_size); - - g_snprintf(filename, total_size, "%s.%s", basename, extension); - - return (filename); -} - -char *add_file_suffix(char *filename, uint64_t suffix) -{ - int fsize=strlen(filename); - char basename[fsize+1]; - char extension[5]; - - sscanf(filename, "%[^.].%4s", basename, extension); - - fsize += uint64_num_chars(suffix) + 2; - - filename = g_renew(char, filename, fsize+1); - - snprintf(filename, fsize, "%s-%llu.%s", basename, (unsigned long long) suffix, extension); - - return(filename); -} - -uint64_t get_file_suffix(const char *path, const char* filename) -{ - uint64_t suffix = 0; - GDir *dir = g_dir_open(path, 0, NULL); - - if(dir == NULL) - { - fprintf(stderr, "ERROR: Couldn't open %s directory\n", path); - return suffix; - } - - int fsize=strlen(filename); - char basename[fsize]; - char extension[5]; - - sscanf(filename,"%[^.].%4s", basename, extension); - fsize += 8; - char format_str[fsize]; - g_snprintf(format_str, fsize-1, "%s-%%20s.%s", basename, extension); - - char* file_name = NULL; - while ((file_name = (char *) g_dir_read_name (dir)) != NULL) - { - if( g_str_has_prefix (file_name, basename) && - g_str_has_suffix (file_name, extension)) - { - char sfix_str[21]; - sscanf(file_name, format_str, sfix_str); - uint64_t sfix = g_ascii_strtoull(sfix_str, NULL, 10); - - if(sfix > suffix) - suffix = sfix; - } - } - - g_dir_close(dir); - return suffix; -} - diff -Nru guvcview-1.7.3/src/string_utils.h guvcview-2.0.1+ubuntu1~ppa1/src/string_utils.h --- guvcview-1.7.3/src/string_utils.h 2014-03-24 22:56:28.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/src/string_utils.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,65 +0,0 @@ -/*******************************************************************************# -# guvcview http://guvcview.sourceforge.net # -# # -# Paulo Assis # -# # -# This program is free software; you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation; either version 2 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program; if not, write to the Free Software # -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# # -********************************************************************************/ - -#ifndef STRING_UTILS_H -#define STRING_UTILS_H - -#include "defs.h" - -int -int_num_chars (int n); - -int -uint64_num_chars (uint64_t n); - -/* check image file extension and return image type*/ -int -check_image_type (char *filename); - -/* check video file extension and return video format*/ -int -check_video_type (char *filename); - -/* split fullpath in Path (splited[1]) and filename (splited[0])*/ -pchar* -splitPath(char *FullPath, char* splited[2]); - -/*join splited path into fullpath*/ -char * -joinPath(char *fullPath, pchar * splited); - -/*increment file name with inc*/ -char * -incFilename(char *fullPath, pchar *splited, uint64_t inc); - -char * -setImgExt(char *filename, int format); - -char * -setVidExt(char *filename, int format_ind); - -char * -add_file_suffix(char *filename, uint64_t suffix); - -uint64_t -get_file_suffix(const char *path, const char* filename); - -#endif diff -Nru guvcview-1.7.3/src/timers.c guvcview-2.0.1+ubuntu1~ppa1/src/timers.c --- guvcview-1.7.3/src/timers.c 2014-03-24 22:56:28.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/src/timers.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,350 +0,0 @@ -/*******************************************************************************# -# guvcview http://guvcview.sourceforge.net # -# # -# Paulo Assis # -# # -# This program is free software; you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation; either version 2 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program; if not, write to the Free Software # -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# # -********************************************************************************/ - -#include -/* support for internationalization - i18n */ -#include -#include -#include -#include -#include -#include - -#include "string_utils.h" -#include "v4l2uvc.h" -#include "globals.h" -#include "guvcview.h" -#include "callbacks.h" -#include "close.h" - -#define __VMUTEX &videoIn->mutex - -/* called for timed shutdown (from video thread)*/ -gboolean -shutd_timer(gpointer data) -{ - /*stop video capture*/ - shutd (0, data); - - return (FALSE);/*destroys the timer*/ -} - -/* called by video capture from start timer */ -gboolean -timer_callback(gpointer data) -{ - struct ALL_DATA * all_data = (struct ALL_DATA *) data; - struct vdIn *videoIn = all_data->videoIn; - struct GLOBAL *global = all_data->global; - struct GWIDGET *gwidget = all_data->gwidget; - - __LOCK_MUTEX(__VMUTEX); - gboolean capVid = videoIn->capVid; - __UNLOCK_MUTEX(__VMUTEX); - - if(!capVid) - return (FALSE);/*destroys the timer*/ - - /*stop video capture*/ - if(global->debug) g_print("setting video toggle to FALSE\n"); - - if(!global->no_display) - { - //gdk_threads_enter(); - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(gwidget->CapVidButt), FALSE); - gdk_flush(); - //gdk_threads_leave(); - } - else - { - capture_vid(NULL, all_data); - } - - global->Capture_time=0; - //if exit_on_close then shutdown - if(global->exit_on_close) - shutd (0, data); - - return (FALSE);/*destroys the timer*/ -} - -/*called by timed capture [-c seconds] command line option*/ -gboolean -Image_capture_timer(gpointer data) -{ - struct ALL_DATA * all_data = (struct ALL_DATA *) data; - struct GLOBAL *global = all_data->global; - struct GWIDGET *gwidget = all_data->gwidget; - struct vdIn *videoIn = all_data->videoIn; - - global->image_picn++; - - if(global->image_inc > 0) - { - /*increment image name */ - videoIn->ImageFName = incFilename(videoIn->ImageFName, - global->imgFPath, - global->image_inc); - - if(!global->no_display) - { - char *message = g_strjoin(" ", _("capturing photo to"), videoIn->ImageFName, NULL); - gtk_statusbar_pop (GTK_STATUSBAR(gwidget->status_bar), gwidget->status_warning_id); - gtk_statusbar_push (GTK_STATUSBAR(gwidget->status_bar), gwidget->status_warning_id, message); - g_free(message); - } - - global->image_inc++; - } - else - videoIn->ImageFName = joinPath(videoIn->ImageFName, global->imgFPath); - - videoIn->capImage = TRUE; - - if(global->image_picn >= global->image_npics) - { /*destroy timer*/ - if(!global->no_display) - { - //gdk_threads_enter(); - gtk_button_set_label(GTK_BUTTON(gwidget->CapImageButt),_("Cap. Image")); - set_sensitive_img_contrls(TRUE, gwidget);/*enable image controls*/ - gdk_flush(); - //gdk_threads_leave(); - } - global->image_timer=0; - global->image_picn=0; - //if exit_on_close then shutdown - if(global->exit_on_close) - shutd (0, data); - - return (FALSE); - } - else return (TRUE);/*keep the timer*/ -} - -/* called by fps counter every 2 sec */ -gboolean -FpsCount_callback(gpointer data) -{ - struct ALL_DATA * all_data = (struct ALL_DATA *) data; - struct GLOBAL *global = all_data->global; - - global->DispFps = (double) global->frmCount / 2; - - if (global->FpsCount>0) - return(TRUE); /*keeps the timer*/ - else - { - if(!global->no_display) - { - g_snprintf(global->WVcaption,10,"GUVCVideo"); - SDL_WM_SetCaption(global->WVcaption, NULL); - } - return (FALSE);/*destroys the timer*/ - } -} - -/* - * Not a timer callback - * Regular function to determine if enought free space is available - * returns TRUE if still enough free space left on disk - * FALSE otherwise - */ -gboolean -DiskSupervisor(gpointer data) -{ - struct ALL_DATA * all_data = (struct ALL_DATA *) data; - struct GLOBAL *global = all_data->global; - struct vdIn *videoIn = all_data->videoIn; - - int free_tresh = 51200; //50Mb - default for compressed data - int percent = 0; - QWORD free_kbytes=0; - QWORD total_kbytes=0; - struct statfs buf; - - switch(global->VidCodec) - { - case 0: //MJPEG - free_tresh = 102400; // 100Mb - break; - - case 1: //yuyv - free_tresh = 358400; // 300Mb - break; - - case 2: //rgb - free_tresh = 512000; // 500Mb - break; - - default: //lavc - free_tresh = 51200; //50Mb - break; - } - - statfs(global->vidFPath[1], &buf); - - total_kbytes= buf.f_blocks * (buf.f_bsize/1024); - free_kbytes= buf.f_bavail * (buf.f_bsize/1024); - - if(total_kbytes > 0) - percent = (int) ((1.0f-((float)free_kbytes/(float)total_kbytes))*100.0f); - else - { - g_printerr("couldn't get disk stats for %s\n", videoIn->VidFName); - return (TRUE); /* don't invalidate video capture*/ - } - - if(global->debug) - g_print("(%s) %lluK bytes free on a total of %lluK (used: %d %%) treshold=%iK\n", - global->vidFPath[1], (unsigned long long) free_kbytes, - (unsigned long long) total_kbytes, percent, free_tresh); - - if(free_kbytes < free_tresh) - { - g_printerr("Not enough free disk space (%lluKb) left on disk, need > %ik \n", - (unsigned long long) free_kbytes, free_tresh); - WARN_DIALOG(N_("Guvcview Warning:"), N_("Not enough free space left on disk"), data); - return(FALSE); /* not enough free space left on disk */ - } - else - return (TRUE); /* still have enough free space on disk */ -} - -/* called by video capture every 10 sec for checking disk free space*/ -gboolean -FreeDiskCheck_timer(gpointer data) -{ - struct ALL_DATA * all_data = (struct ALL_DATA *) data; - struct vdIn *videoIn = all_data->videoIn; - struct GLOBAL *global = all_data->global; - struct GWIDGET *gwidget = all_data->gwidget; - - __LOCK_MUTEX(__VMUTEX); - gboolean capVid = videoIn->capVid; - __UNLOCK_MUTEX(__VMUTEX); - - if (capVid) - { - if(!DiskSupervisor(data)) - { - g_printerr("Stopping video Capture\n"); - /*stop video capture*/ - if(global->debug) g_print("setting video toggle to FALSE\n"); - if(!global->no_display) - { - //gdk_threads_enter(); - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(gwidget->CapVidButt), FALSE); - gdk_flush(); - //gdk_threads_leave(); - } - else - capture_vid(NULL, all_data); - } - else - return(TRUE); /*keeps the timer*/ - } - - return (FALSE);/*destroys the timer*/ -} - -/* check for udev events for v4l2 devices*/ -gboolean -check_v4l2_udev_events(gpointer data) -{ - struct ALL_DATA * all_data = (struct ALL_DATA *) data; - struct vdIn *videoIn = all_data->videoIn; - struct GLOBAL *global = all_data->global; - struct GWIDGET *gwidget = all_data->gwidget; - - fd_set fds; - struct timeval tv; - int ret; - - FD_ZERO(&fds); - FD_SET(videoIn->udev_fd, &fds); - tv.tv_sec = 0; - tv.tv_usec = 0; - - ret = select(videoIn->udev_fd+1, &fds, NULL, NULL, &tv); - - /* Check if our file descriptor has received data. */ - if (ret > 0 && FD_ISSET(videoIn->udev_fd, &fds)) - { - /* Make the call to receive the device. - select() ensured that this will not block. */ - struct udev_device *dev = udev_monitor_receive_device(videoIn->udev_mon); - if (dev) - { - if (global->debug) - { - g_print("Got Device event\n"); - g_print(" Node: %s\n", udev_device_get_devnode(dev)); - g_print(" Subsystem: %s\n", udev_device_get_subsystem(dev)); - g_print(" Devtype: %s\n", udev_device_get_devtype(dev)); - - g_print(" Action: %s\n",udev_device_get_action(dev)); - } - - /*update device list*/ - g_signal_handlers_block_by_func(GTK_COMBO_BOX_TEXT(gwidget->Devices), - G_CALLBACK (Devices_changed), all_data); - - /* clear out the old device list... */ - if(videoIn->listDevices != NULL) freeDevices(videoIn->listDevices); - - GtkListStore *store = GTK_LIST_STORE(gtk_combo_box_get_model (GTK_COMBO_BOX(gwidget->Devices))); - gtk_list_store_clear(store); - - /*create new device list*/ - videoIn->listDevices = enum_devices( videoIn->videodevice, videoIn->udev, global->debug ); - - if (videoIn->listDevices->num_devices < 1) - { - //use current - gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(gwidget->Devices), - videoIn->videodevice); - gtk_combo_box_set_active(GTK_COMBO_BOX(gwidget->Devices),0); - } - else - { - int i=0; - for(i=0;i<(videoIn->listDevices->num_devices);i++) - { - gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(gwidget->Devices), - videoIn->listDevices->listVidDevices[i].name); - if(videoIn->listDevices->listVidDevices[i].current) - gtk_combo_box_set_active(GTK_COMBO_BOX(gwidget->Devices),i); - } - } - g_signal_handlers_unblock_by_func(GTK_COMBO_BOX_TEXT(gwidget->Devices), - G_CALLBACK (Devices_changed), all_data); - - udev_device_unref(dev); - } - else - g_printerr("No Device from receive_device(). An error occured.\n"); - - } - - return(TRUE); -} - diff -Nru guvcview-1.7.3/src/timers.h guvcview-2.0.1+ubuntu1~ppa1/src/timers.h --- guvcview-1.7.3/src/timers.h 2014-03-24 22:56:28.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/src/timers.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,56 +0,0 @@ -/*******************************************************************************# -# guvcview http://guvcview.sourceforge.net # -# # -# Paulo Assis # -# # -# This program is free software; you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation; either version 2 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program; if not, write to the Free Software # -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# # -********************************************************************************/ - -#ifndef TIMERS_H -#define TIMERS_H - -#include - -gboolean -shutd_timer(gpointer data); - -gboolean -timer_callback(gpointer data); - -gboolean -Image_capture_timer(gpointer data); - -gboolean -FpsCount_callback(gpointer data); - -/* - * Not a timer callback - * Regular function to determine if enought free space is available - * returns TRUE if still enough free space left on disk - * FALSE otherwise - */ -gboolean -DiskSupervisor(gpointer data); - -/* called by video capture every 10 sec for checking disk free space*/ -gboolean -FreeDiskCheck_timer(gpointer data); - -/* check for udev events for v4l2 devices*/ -gboolean -check_v4l2_udev_events(gpointer data); - -#endif diff -Nru guvcview-1.7.3/src/utils.c guvcview-2.0.1+ubuntu1~ppa1/src/utils.c --- guvcview-1.7.3/src/utils.c 2014-03-24 22:56:28.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/src/utils.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,998 +0,0 @@ -/*******************************************************************************# -# guvcview http://guvcview.sourceforge.net # -# # -# Paulo Assis # -# Nobuhiro Iwamatsu # -# Add UYVY color support(Macbook iSight) # -# # -# This program is free software; you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation; either version 2 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program; if not, write to the Free Software # -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# # -********************************************************************************/ - -/*******************************************************************************# -# # -# MJpeg decoding and frame capture taken from luvcview # -# # -# # -********************************************************************************/ - -#include -#include -/* support for internationalization - i18n */ -#include -#include "utils.h" -#include "v4l2uvc.h" -#include "huffman.h" -#include "colorspaces.h" - -/*********************************/ - -static int huffman_init(void); - -static void decode_mcus - __P((struct in *, int *, int, struct scan *, int *)); - -static int dec_readmarker __P((struct in *)); - -static void dec_makehuff - __P((struct dec_hufftbl *, int *, BYTE *)); - -static void setinput __P((struct in *, BYTE *)); -/*********************************/ - -#undef PREC -#define PREC int - -static void idctqtab __P((BYTE *, PREC *)); - -inline static void idct(int *in, int *out, int *quant, long off, int max); - -/*********************************/ -//static void col221111 __P((int *, unsigned char *, int)); - -typedef void (*ftopict) (int * out, BYTE *pic, int width) ; - -/*********************************/ -static BYTE *datap; - -static int getbyte(void) -{ - return *datap++; -} - -static int getword(void) -{ - int c1, c2; - c1 = *datap++; - c2 = *datap++; - return c1 << 8 | c2; -} - -struct comp -{ - int cid; - int hv; - int tq; -}; - -#define MAXCOMP 4 -struct jpginfo -{ - int nc; /* number of components */ - int ns; /* number of scans */ - int dri; /* restart interval */ - int nm; /* mcus til next marker */ - int rm; /* next restart marker */ -}; - -static struct jpginfo info; -static struct comp comps[MAXCOMP]; - -static struct scan dscans[MAXCOMP]; - -static unsigned char quant[4][64]; - -static struct dec_hufftbl dhuff[4]; - -#define dec_huffdc (dhuff + 0) -#define dec_huffac (dhuff + 2) - -static struct in in; - -/*read jpeg tables (huffman and quantization) -* args: -* till: Marker (frame - SOF0 scan - SOS) -* isDHT: flag indicating the presence of huffman tables (if 0 must use default ones - MJPG frame) -*/ -static int readtables(int till, int *isDHT) -{ - int m, l, i, j, lq, pq, tq; - int tc, th, tt; - - for (;;) - { - if (getbyte() != 0xff) - return -1; - if ((m = getbyte()) == till) - break; - - switch (m) - { - case 0xc2: - return 0; - /*read quantization tables (Lqt and Cqt)*/ - case M_DQT: - lq = getword(); - while (lq > 2) - { - pq = getbyte(); - /*Lqt=0x00 Cqt=0x01*/ - tq = pq & 15; - if (tq > 3) - return -1; - pq >>= 4; - if (pq != 0) - return -1; - for (i = 0; i < 64; i++) - quant[tq][i] = getbyte(); - lq -= 64 + 1; - } - break; - /*read huffman table*/ - case M_DHT: - l = getword(); - while (l > 2) - { - int hufflen[16], k; - BYTE huffvals[256]; - - tc = getbyte(); - th = tc & 15; - tc >>= 4; - tt = tc * 2 + th; - if (tc > 1 || th > 1) - return -1; - - for (i = 0; i < 16; i++) - hufflen[i] = getbyte(); - l -= 1 + 16; - k = 0; - for (i = 0; i < 16; i++) - { - for (j = 0; j < hufflen[i]; j++) - huffvals[k++] = getbyte(); - l -= hufflen[i]; - } - dec_makehuff(dhuff + tt, hufflen, huffvals); - } - /* has huffman tables defined (JPEG)*/ - *isDHT= 1; - break; - /*restart interval*/ - case M_DRI: - l = getword(); - info.dri = getword(); - break; - - default: - l = getword(); - while (l-- > 2) - getbyte(); - break; - } - } - return 0; -} - -static void dec_initscans(void) -{ - int i; - - info.nm = info.dri + 1; - info.rm = M_RST0; - for (i = 0; i < info.ns; i++) - dscans[i].dc = 0; -} - -static int dec_checkmarker(void) -{ - int i; - - if (dec_readmarker(&in) != info.rm) - return -1; - info.nm = info.dri; - info.rm = (info.rm + 1) & ~0x08; - for (i = 0; i < info.ns; i++) - dscans[i].dc = 0; - return 0; -} - -/*jpeg decode -* args: -* pic: pointer to picture data ( decoded image - yuyv format) -* buf: pointer to input data ( compressed jpeg ) -* with: picture width -* height: picture height -*/ -int jpeg_decode(BYTE **pic, BYTE *buf, int width, int height) -{ - struct jpeg_decdata *decdata; - int i=0, j=0, m=0, tac=0, tdc=0; - int intwidth=0, intheight=0; - int mcusx=0, mcusy=0, mx=0, my=0; - int ypitch=0 ,xpitch=0,bpp=0,pitch=0,x=0,y=0; - int mb=0; - int max[6]; - ftopict convert; - int err = 0; - int isInitHuffman = 0; - decdata = g_new0(struct jpeg_decdata, 1); - - for(i=0;i<6;i++) - max[i]=0; - - if (!decdata) - { - err = -1; - goto error; - } - if (buf == NULL) - { - err = -1; - goto error; - } - datap = buf; - /*check SOI (0xFFD8)*/ - if (getbyte() != 0xff) - { - err = ERR_NO_SOI; - goto error; - } - if (getbyte() != M_SOI) - { - err = ERR_NO_SOI; - goto error; - } - /*read tables - if exist, up to start frame marker (0xFFC0)*/ - if (readtables(M_SOF0, &isInitHuffman)) - { - err = ERR_BAD_TABLES; - goto error; - } - getword(); /*header lenght*/ - i = getbyte(); /*precision (8 bit)*/ - if (i != 8) - { - err = ERR_NOT_8BIT; - goto error; - } - intheight = getword(); /*height*/ - intwidth = getword(); /*width */ - - if ((intheight & 7) || (intwidth & 7)) /*must be even*/ - { - err = ERR_BAD_WIDTH_OR_HEIGHT; - goto error; - } - info.nc = getbyte(); /*number of components*/ - if (info.nc > MAXCOMP) - { - err = ERR_TOO_MANY_COMPPS; - goto error; - } - /*for each component*/ - for (i = 0; i < info.nc; i++) - { - int h, v; - comps[i].cid = getbyte(); /*component id*/ - comps[i].hv = getbyte(); - v = comps[i].hv & 15; /*vertical sampling */ - h = comps[i].hv >> 4; /*horizontal sampling */ - comps[i].tq = getbyte(); /*quantization table used*/ - if (h > 3 || v > 3) - { - err = ERR_ILLEGAL_HV; - goto error; - } - if (comps[i].tq > 3) - { - err = ERR_QUANT_TABLE_SELECTOR; - goto error; - } - } - /*read tables - if exist, up to start of scan marker (0xFFDA)*/ - if (readtables(M_SOS,&isInitHuffman)) - { - err = ERR_BAD_TABLES; - goto error; - } - getword(); /* header lenght */ - info.ns = getbyte(); /* number of scans */ - if (!info.ns) - { - g_print("info ns %d/n",info.ns); - err = ERR_NOT_YCBCR_221111; - goto error; - } - /*for each scan*/ - for (i = 0; i < info.ns; i++) - { - dscans[i].cid = getbyte(); /*component id*/ - tdc = getbyte(); - tac = tdc & 15; /*ac table*/ - tdc >>= 4; /*dc table*/ - if (tdc > 1 || tac > 1) - { - err = ERR_QUANT_TABLE_SELECTOR; - goto error; - } - for (j = 0; j < info.nc; j++) - if (comps[j].cid == dscans[i].cid) - break; - if (j == info.nc) - { - err = ERR_UNKNOWN_CID_IN_SCAN; - goto error; - } - dscans[i].hv = comps[j].hv; - dscans[i].tq = comps[j].tq; - dscans[i].hudc.dhuff = dec_huffdc + tdc; - dscans[i].huac.dhuff = dec_huffac + tac; - } - - i = getbyte(); /*0 */ - j = getbyte(); /*63*/ - m = getbyte(); /*0 */ - - if (i != 0 || j != 63 || m != 0) - { - g_printerr("hmm FW error,not seq DCT ??\n"); - } - - /*build huffman tables*/ - if(!isInitHuffman) - { - if(huffman_init() < 0) - return -ERR_BAD_TABLES; - } - /* - if (dscans[0].cid != 1 || dscans[1].cid != 2 || dscans[2].cid != 3) - { - err = ERR_NOT_YCBCR_221111; - goto error; - } - - if (dscans[1].hv != 0x11 || dscans[2].hv != 0x11) - { - err = ERR_NOT_YCBCR_221111; - goto error; - } - */ - /* if internal width and external are not the same or heigth too - and pic not allocated realloc the good size and mark the change - need 1 macroblock line more ?? */ - if (intwidth != width || intheight != height || *pic == NULL) - { - width = intwidth; - height = intheight; - // BytesperPixel 2 yuyv , 3 rgb24 - *pic = g_renew(unsigned char, *pic, - intwidth * (intheight + 8) * 2); - } - - switch (dscans[0].hv) - { - case 0x22: // 411 - mb=6; - mcusx = width >> 4; - mcusy = height >> 4; - bpp=2; - xpitch = 16 * bpp; - pitch = width * bpp; // YUYV out - ypitch = 16 * pitch; - convert = yuv420pto422; //choose the right conversion function - break; - case 0x21: //422 - mb=4; - mcusx = width >> 4; - mcusy = height >> 3; - bpp=2; - xpitch = 16 * bpp; - pitch = width * bpp; // YUYV out - ypitch = 8 * pitch; - convert = yuv422pto422; //choose the right conversion function - break; - case 0x11: //444 - mcusx = width >> 3; - mcusy = height >> 3; - bpp=2; - xpitch = 8 * bpp; - pitch = width * bpp; // YUYV out - ypitch = 8 * pitch; - if (info.ns==1) - { - mb = 1; - convert = yuv400pto422; //choose the right conversion function - } - else - { - mb=3; - convert = yuv444pto422; //choose the right conversion function - } - break; - default: - err = ERR_NOT_YCBCR_221111; - goto error; - break; - } - - idctqtab(quant[dscans[0].tq], decdata->dquant[0]); - idctqtab(quant[dscans[1].tq], decdata->dquant[1]); - idctqtab(quant[dscans[2].tq], decdata->dquant[2]); - setinput(&in, datap); - dec_initscans(); - - dscans[0].next = 2; - dscans[1].next = 1; - dscans[2].next = 0; /* 4xx encoding */ - for (my = 0,y=0; my < mcusy; my++,y+=ypitch) - { - for (mx = 0,x=0; mx < mcusx; mx++,x+=xpitch) - { - if (info.dri && !--info.nm) - if (dec_checkmarker()) - { - err = ERR_WRONG_MARKER; - goto error; - } - switch (mb) - { - case 6: - decode_mcus(&in, decdata->dcts, mb, dscans, max); - idct(decdata->dcts, decdata->out, decdata->dquant[0], - IFIX(128.5), max[0]); - idct(decdata->dcts + 64, decdata->out + 64, - decdata->dquant[0], IFIX(128.5), max[1]); - idct(decdata->dcts + 128, decdata->out + 128, - decdata->dquant[0], IFIX(128.5), max[2]); - idct(decdata->dcts + 192, decdata->out + 192, - decdata->dquant[0], IFIX(128.5), max[3]); - idct(decdata->dcts + 256, decdata->out + 256, - decdata->dquant[1], IFIX(0.5), max[4]); - idct(decdata->dcts + 320, decdata->out + 320, - decdata->dquant[2], IFIX(0.5), max[5]); - break; - - case 4: - decode_mcus(&in, decdata->dcts, mb, dscans, max); - idct(decdata->dcts, decdata->out, decdata->dquant[0], - IFIX(128.5), max[0]); - idct(decdata->dcts + 64, decdata->out + 64, - decdata->dquant[0], IFIX(128.5), max[1]); - idct(decdata->dcts + 128, decdata->out + 256, - decdata->dquant[1], IFIX(0.5), max[4]); - idct(decdata->dcts + 192, decdata->out + 320, - decdata->dquant[2], IFIX(0.5), max[5]); - break; - - case 3: - decode_mcus(&in, decdata->dcts, mb, dscans, max); - idct(decdata->dcts, decdata->out, decdata->dquant[0], - IFIX(128.5), max[0]); - idct(decdata->dcts + 64, decdata->out + 256, - decdata->dquant[1], IFIX(0.5), max[4]); - idct(decdata->dcts + 128, decdata->out + 320, - decdata->dquant[2], IFIX(0.5), max[5]); - break; - - case 1: - decode_mcus(&in, decdata->dcts, mb, dscans, max); - idct(decdata->dcts, decdata->out, decdata->dquant[0], - IFIX(128.5), max[0]); - break; - } // switch enc411 - convert(decdata->out,*pic+y+x,pitch); //convert to 422 - } - } - - m = dec_readmarker(&in); - if (m != M_EOI) - { - err = ERR_NO_EOI; - goto error; - } - g_free(decdata); - return 0; -error: - g_free(decdata); - return err; -} - -/****************************************************************/ -/************** huffman decoder ***************/ -/****************************************************************/ -static int huffman_init(void) -{ - int tc, th, tt; - unsigned char *ptr= (unsigned char *) JPEGHuffmanTable ; - int i, j, l; - l = JPG_HUFFMAN_TABLE_LENGTH ; - while (l > 0) - { - int hufflen[16], k; - unsigned char huffvals[256]; - - tc = *ptr++; - th = tc & 15; - tc >>= 4; - tt = tc * 2 + th; - if (tc > 1 || th > 1) - return -ERR_BAD_TABLES; - for (i = 0; i < 16; i++) - hufflen[i] = *ptr++; - l -= 1 + 16; - k = 0; - for (i = 0; i < 16; i++) - { - for (j = 0; j < hufflen[i]; j++) - huffvals[k++] = *ptr++; - l -= hufflen[i]; - } - dec_makehuff(dhuff + tt, hufflen, huffvals); - } - return 0; -} - -static int fillbits __P((struct in *, int, unsigned int)); -static int dec_rec2 -__P((struct in *, struct dec_hufftbl *, int *, int, int)); - -static void setinput(in, p) -struct in *in; -unsigned char *p; -{ - in->p = p; - in->left = 0; - in->bits = 0; - in->marker = 0; -} - -static int fillbits(in, le, bi) -struct in *in; -int le; -unsigned int bi; -{ - int b, m; - - if (in->marker) - { - if (le <= 16) - in->bits = bi << 16, le += 16; - return le; - } - while (le <= 24) - { - b = *in->p++; - if (b == 0xff && (m = *in->p++) != 0) - { - if (m == M_EOF) - { - if (in->func && (m = in->func(in->data)) == 0) - continue; - } - in->marker = m; - if (le <= 16) - bi = bi << 16, le += 16; - break; - } - bi = bi << 8 | b; - le += 8; - } - in->bits = bi; /* tmp... 2 return values needed */ - return le; -} - -static int dec_readmarker(in) -struct in *in; -{ - int m; - - in->left = fillbits(in, in->left, in->bits); - if ((m = in->marker) == 0) - return 0; - in->left = 0; - in->marker = 0; - return m; -} - -#define LEBI_DCL int le, bi -#define LEBI_GET(in) (le = in->left, bi = in->bits) -#define LEBI_PUT(in) (in->left = le, in->bits = bi) - -#define GETBITS(in, n) ( \ - (le < (n) ? le = fillbits(in, le, bi), bi = in->bits : 0), \ - (le -= (n)), \ - bi >> le & ((1 << (n)) - 1) \ -) - -#define UNGETBITS(in, n) ( \ - le += (n) \ -) - - -static int dec_rec2(in, hu, runp, c, i) - struct in *in; - struct dec_hufftbl *hu; - int *runp; - int c, i; -{ - LEBI_DCL; - - LEBI_GET(in); - if (i) - { - UNGETBITS(in, i & 127); - *runp = i >> 8 & 15; - i >>= 16; - } - else - { - for (i = DECBITS; - (c = ((c << 1) | GETBITS(in, 1))) >= (hu->maxcode[i]); i++); - if (i >= 16) - { - in->marker = M_BADHUFF; - return 0; - } - i = hu->vals[hu->valptr[i] + c - hu->maxcode[i - 1] * 2]; - *runp = i >> 4; - i &= 15; - } - if (i == 0) - { /* sigh, 0xf0 is 11 bit */ - LEBI_PUT(in); - return 0; - } - /* receive part */ - c = GETBITS(in, i); - if (c < (1 << (i - 1))) - c += (-1 << i) + 1; - LEBI_PUT(in); - return c; -} - -#define DEC_REC(in, hu, r, i) ( \ - r = GETBITS(in, DECBITS), \ - i = hu->llvals[r], \ - i & 128 ? \ - ( \ - UNGETBITS(in, i & 127), \ - r = i >> 8 & 15, \ - i >> 16 \ - ) \ - : \ - ( \ - LEBI_PUT(in), \ - i = dec_rec2(in, hu, &r, r, i), \ - LEBI_GET(in), \ - i \ - ) \ -) - -static void decode_mcus(in, dct, n, sc, maxp) - struct in *in; - int *dct; - int n; - struct scan *sc; - int *maxp; -{ - struct dec_hufftbl *hu; - int i = 0, r = 0, t = 0; - LEBI_DCL; - - memset(dct, 0, n * 64 * sizeof(*dct)); - LEBI_GET(in); - while (n-- > 0) - { - hu = sc->hudc.dhuff; - *dct++ = (sc->dc += DEC_REC(in, hu, r, t)); - - hu = sc->huac.dhuff; - i = 63; - while (i > 0) - { - t = DEC_REC(in, hu, r, t); - if (t == 0 && r == 0) - { - dct += i; - break; - } - dct += r; - *dct++ = t; - i -= r + 1; - } - *maxp++ = 64 - i; - if (n == sc->next) - sc++; - } - LEBI_PUT(in); -} - -static void dec_makehuff(hu, hufflen, huffvals) - struct dec_hufftbl *hu; - int *hufflen; - unsigned char *huffvals; -{ - int code, k, i, j, d, x, c, v; - for (i = 0; i < (1 << DECBITS); i++) - hu->llvals[i] = 0; - - /* - * llvals layout: - * - * value v already known, run r, backup u bits: - * vvvvvvvvvvvvvvvv 0000 rrrr 1 uuuuuuu - * value unknown, size b bits, run r, backup u bits: - * 000000000000bbbb 0000 rrrr 0 uuuuuuu - * value and size unknown: - * 0000000000000000 0000 0000 0 0000000 - */ - code = 0; - k = 0; - for (i = 0; i < 16; i++, code <<= 1) - { /* sizes */ - hu->valptr[i] = k; - for (j = 0; j < hufflen[i]; j++) - { - hu->vals[k] = *huffvals++; - if (i < DECBITS) - { - c = code << (DECBITS - 1 - i); - v = hu->vals[k] & 0x0f; /* size */ - for (d = 1 << (DECBITS - 1 - i); --d >= 0;) - { - if (v + i < DECBITS) - { /* both fit in table */ - x = d >> (DECBITS - 1 - v - i); - if (v && x < (1 << (v - 1))) - x += (-1 << v) + 1; - x = x << 16 | (hu->vals[k] & 0xf0) << 4 | - (DECBITS - (i + 1 + v)) | 128; - } - else - x = v << 16 | (hu->vals[k] & 0xf0) << 4 | - (DECBITS - (i + 1)); - hu->llvals[c | d] = x; - } - } - code++; - k++; - } - hu->maxcode[i] = code; - } - hu->maxcode[16] = 0x20000; /* always terminate decode */ -} - -/****************************************************************/ -/************** idct ***************/ -/****************************************************************/ - -#define IMULT(a, b) (((a) * (b)) >> ISHIFT) -#define ITOINT(a) ((a) >> ISHIFT) - -#define S22 ((PREC)IFIX(2 * 0.382683432)) -#define C22 ((PREC)IFIX(2 * 0.923879532)) -#define IC4 ((PREC)IFIX(1 / 0.707106781)) - -//zigzag order used by idct -static unsigned char zig2[64] = { - 0, 2, 3, 9, 10, 20, 21, 35, - 14, 16, 25, 31, 39, 46, 50, 57, - 5, 7, 12, 18, 23, 33, 37, 48, - 27, 29, 41, 44, 52, 55, 59, 62, - 15, 26, 30, 40, 45, 51, 56, 58, - 1, 4, 8, 11, 19, 22, 34, 36, - 28, 42, 43, 53, 54, 60, 61, 63, - 6, 13, 17, 24, 32, 38, 47, 49 -}; - -/*inverse dct for jpeg decoding -* args: -* in: pointer to input data ( mcu - after huffman decoding) -* out: pointer to data with output of idct (to be filled) -* quant: pointer to quantization data tables -* off: offset value (128.5 or 0.5) -* max: maximum input mcu index? -*/ -inline static void idct(int *in, int *out, int *quant, long off, int max) -{ - long t0, t1, t2, t3, t4, t5, t6, t7; // t ; - long tmp0, tmp1, tmp2, tmp3, tmp4, tmp5, tmp6; - long tmp[64], *tmpp; - int i, j, te; - unsigned char *zig2p; - - t0 = off; - if (max == 1) //single color mcu - { - t0 += in[0] * quant[0]; //only DC available - for (i = 0; i < 64; i++) // fill mcu with DC value - out[i] = ITOINT(t0); - return; - } - zig2p = zig2; - tmpp = tmp; - for (i = 0; i < 8; i++) //apply quantization table in zigzag order - { - j = *zig2p++; - t0 += in[j] * (long) quant[j]; - j = *zig2p++; - t5 = in[j] * (long) quant[j]; - j = *zig2p++; - t2 = in[j] * (long) quant[j]; - j = *zig2p++; - t7 = in[j] * (long) quant[j]; - j = *zig2p++; - t1 = in[j] * (long) quant[j]; - j = *zig2p++; - t4 = in[j] * (long) quant[j]; - j = *zig2p++; - t3 = in[j] * (long) quant[j]; - j = *zig2p++; - t6 = in[j] * (long) quant[j]; - - - if ((t1 | t2 | t3 | t4 | t5 | t6 | t7) == 0) - { - tmpp[0 * 8] = t0; //DC - tmpp[1 * 8] = t0; - tmpp[2 * 8] = t0; - tmpp[3 * 8] = t0; - tmpp[4 * 8] = t0; - tmpp[5 * 8] = t0; - tmpp[6 * 8] = t0; - tmpp[7 * 8] = t0; - - tmpp++; - t0 = 0; - continue; - } - //IDCT; - tmp0 = t0 + t1; - t1 = t0 - t1; - tmp2 = t2 - t3; - t3 = t2 + t3; - tmp2 = IMULT(tmp2, IC4) - t3; - tmp3 = tmp0 + t3; - t3 = tmp0 - t3; - tmp1 = t1 + tmp2; - tmp2 = t1 - tmp2; - tmp4 = t4 - t7; - t7 = t4 + t7; - tmp5 = t5 + t6; - t6 = t5 - t6; - tmp6 = tmp5 - t7; - t7 = tmp5 + t7; - tmp5 = IMULT(tmp6, IC4); - tmp6 = IMULT((tmp4 + t6), S22); - tmp4 = IMULT(tmp4, (C22 - S22)) + tmp6; - t6 = IMULT(t6, (C22 + S22)) - tmp6; - t6 = t6 - t7; - t5 = tmp5 - t6; - t4 = tmp4 - t5; - - tmpp[0 * 8] = tmp3 + t7; //t0; - tmpp[1 * 8] = tmp1 + t6; //t1; - tmpp[2 * 8] = tmp2 + t5; //t2; - tmpp[3 * 8] = t3 + t4; //t3; - tmpp[4 * 8] = t3 - t4; //t4; - tmpp[5 * 8] = tmp2 - t5; //t5; - tmpp[6 * 8] = tmp1 - t6; //t6; - tmpp[7 * 8] = tmp3 - t7; //t7; - tmpp++; - t0 = 0; - } - for (i = 0, j = 0; i < 8; i++) - { - t0 = tmp[j + 0]; - t1 = tmp[j + 1]; - t2 = tmp[j + 2]; - t3 = tmp[j + 3]; - t4 = tmp[j + 4]; - t5 = tmp[j + 5]; - t6 = tmp[j + 6]; - t7 = tmp[j + 7]; - if ((t1 | t2 | t3 | t4 | t5 | t6 | t7) == 0) - { - te = ITOINT(t0); - out[j + 0] = te; - out[j + 1] = te; - out[j + 2] = te; - out[j + 3] = te; - out[j + 4] = te; - out[j + 5] = te; - out[j + 6] = te; - out[j + 7] = te; - j += 8; - continue; - } - //IDCT; - tmp0 = t0 + t1; - t1 = t0 - t1; - tmp2 = t2 - t3; - t3 = t2 + t3; - tmp2 = IMULT(tmp2, IC4) - t3; - tmp3 = tmp0 + t3; - t3 = tmp0 - t3; - tmp1 = t1 + tmp2; - tmp2 = t1 - tmp2; - tmp4 = t4 - t7; - t7 = t4 + t7; - tmp5 = t5 + t6; - t6 = t5 - t6; - tmp6 = tmp5 - t7; - t7 = tmp5 + t7; - tmp5 = IMULT(tmp6, IC4); - tmp6 = IMULT((tmp4 + t6), S22); - tmp4 = IMULT(tmp4, (C22 - S22)) + tmp6; - t6 = IMULT(t6, (C22 + S22)) - tmp6; - t6 = t6 - t7; - t5 = tmp5 - t6; - t4 = tmp4 - t5; - - out[j + 0] = ITOINT(tmp3 + t7); - out[j + 1] = ITOINT(tmp1 + t6); - out[j + 2] = ITOINT(tmp2 + t5); - out[j + 3] = ITOINT(t3 + t4); - out[j + 4] = ITOINT(t3 - t4); - out[j + 5] = ITOINT(tmp2 - t5); - out[j + 6] = ITOINT(tmp1 - t6); - out[j + 7] = ITOINT(tmp3 - t7); - j += 8; - } -} - -static unsigned char zig[64] = { - 0, 1, 5, 6, 14, 15, 27, 28, - 2, 4, 7, 13, 16, 26, 29, 42, - 3, 8, 12, 17, 25, 30, 41, 43, - 9, 11, 18, 24, 31, 40, 44, 53, - 10, 19, 23, 32, 39, 45, 52, 54, - 20, 22, 33, 38, 46, 51, 55, 60, - 21, 34, 37, 47, 50, 56, 59, 61, - 35, 36, 48, 49, 57, 58, 62, 63 -}; - -//coef used in idct -static PREC aaidct[8] = { - IFIX(0.3535533906), IFIX(0.4903926402), - IFIX(0.4619397663), IFIX(0.4157348062), - IFIX(0.3535533906), IFIX(0.2777851165), - IFIX(0.1913417162), IFIX(0.0975451610) -}; - - -static void idctqtab(qin, qout) - unsigned char *qin; - PREC *qout; -{ - int i, j; - - for (i = 0; i < 8; i++) - for (j = 0; j < 8; j++) - qout[zig[i * 8 + j]] = qin[zig[i * 8 + j]] * - IMULT(aaidct[i], aaidct[j]); -} - diff -Nru guvcview-1.7.3/src/utils.h guvcview-2.0.1+ubuntu1~ppa1/src/utils.h --- guvcview-1.7.3/src/utils.h 2014-03-24 22:56:28.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/src/utils.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,140 +0,0 @@ -/*******************************************************************************# -# guvcview http://guvcview.sourceforge.net # -# # -# Paulo Assis # -# # -# This program is free software; you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation; either version 2 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program; if not, write to the Free Software # -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# # -********************************************************************************/ - -/*******************************************************************************# -# # -# MJpeg decoding and frame capture taken from luvcview # -# # -# # -********************************************************************************/ - -#ifndef UTILS_H -#define UTILS_H - -#include "defs.h" - -/*video defs*/ -//#define BI_RGB 0; -//#define BI_RLE4 1; -//#define BI_RLE8 2; -//#define BI_BITFIELDS 3; - -/* Fixed point arithmetic */ -//#define FIXED Sint32 -//#define FIXED_BITS 16 -//#define TO_FIXED(X) (((Sint32)(X))<<(FIXED_BITS)) -//#define FROM_FIXED(X) (((Sint32)(X))>>(FIXED_BITS)) - -#define ISHIFT 11 - -#define IFIX(a) ((int)((a) * (1 << ISHIFT) + .5)) - -#ifndef __P -# define __P(x) x -#endif - -/* special markers */ -#define M_BADHUFF -1 -#define M_EOF 0x80 - -struct jpeg_decdata -{ - int dcts[6 * 64 + 16]; - int out[64 * 6]; - int dquant[3][64]; -}; - -struct in -{ - BYTE *p; - DWORD bits; - int left; - int marker; - int (*func) __P((void *)); - void *data; -}; - -/*********************************/ -#define DECBITS 10 /* seems to be the optimum */ - -struct dec_hufftbl -{ - int maxcode[17]; - int valptr[16]; - BYTE vals[256]; - DWORD llvals[1 << DECBITS]; -}; - -//struct enc_hufftbl; - -union hufftblp -{ - struct dec_hufftbl *dhuff; - //struct enc_hufftbl *ehuff; -}; - -struct scan -{ - int dc; /* old dc value */ - - union hufftblp hudc; - union hufftblp huac; - int next; /* when to switch to next scan */ - - int cid; /* component id */ - int hv; /* horiz/vert, copied from comp */ - int tq; /* quant tbl, copied from comp */ -}; - -/******** Markers *********/ -#define M_SOI 0xd8 -#define M_APP0 0xe0 -#define M_DQT 0xdb -#define M_SOF0 0xc0 -#define M_DHT 0xc4 -#define M_DRI 0xdd -#define M_SOS 0xda -#define M_RST0 0xd0 -#define M_EOI 0xd9 -#define M_COM 0xfe - -/*******Error codes *******/ -#define ERR_NO_SOI 1 -#define ERR_NOT_8BIT 2 -#define ERR_HEIGHT_MISMATCH 3 -#define ERR_WIDTH_MISMATCH 4 -#define ERR_BAD_WIDTH_OR_HEIGHT 5 -#define ERR_TOO_MANY_COMPPS 6 -#define ERR_ILLEGAL_HV 7 -#define ERR_QUANT_TABLE_SELECTOR 8 -#define ERR_NOT_YCBCR_221111 9 -#define ERR_UNKNOWN_CID_IN_SCAN 10 -#define ERR_NOT_SEQUENTIAL_DCT 11 -#define ERR_WRONG_MARKER 12 -#define ERR_NO_EOI 13 -#define ERR_BAD_TABLES 14 -#define ERR_DEPTH_MISMATCH 15 - - -int jpeg_decode(unsigned char **pic, unsigned char *buf, int width, int height); - -#endif - diff -Nru guvcview-1.7.3/src/uvc_h264.c guvcview-2.0.1+ubuntu1~ppa1/src/uvc_h264.c --- guvcview-1.7.3/src/uvc_h264.c 2014-03-24 22:56:28.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/src/uvc_h264.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,1907 +0,0 @@ -/*******************************************************************************# -# guvcview http://guvcview.sourceforge.net # -# # -# Paulo Assis # -# Nobuhiro Iwamatsu # -# Add UYVY color support(Macbook iSight) # -# # -# This program is free software; you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation; either version 2 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program; if not, write to the Free Software # -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# # -********************************************************************************/ - -/* support for internationalization - i18n */ -#include -#include -#include -#include -#include - -#include "uvc_h264.h" -#include "v4l2_dyna_ctrls.h" -#include "v4l2_formats.h" -#include "string_utils.h" -#include "callbacks.h" -#include "guvcview.h" -#include "ms_time.h" - - -#define USB_VIDEO_CONTROL 0x01 -#define USB_VIDEO_CONTROL_INTERFACE 0x24 -#define USB_VIDEO_CONTROL_XU_TYPE 0x06 - -static void print_probe_commit_data(uvcx_video_config_probe_commit_t *data) -{ - printf("uvcx_video_config_probe_commit:\n"); - printf("\tFrameInterval: %i\n", data->dwFrameInterval); - printf("\tBitRate: %i\n", data->dwBitRate); - printf("\tHints: 0x%X\n", data->bmHints); - printf("\tConfigurationIndex: %i\n", data->wConfigurationIndex); - printf("\tWidth: %i\n", data->wWidth); - printf("\tHeight: %i\n", data->wHeight); - printf("\tSliceUnits: %i\n", data->wSliceUnits); - printf("\tSliceMode: %i\n", data->wSliceMode); - printf("\tProfile: %i\n", data->wProfile); - printf("\tIFramePeriod: %i\n", data->wIFramePeriod); - printf("\tEstimatedVideoDelay: %i\n",data->wEstimatedVideoDelay); - printf("\tEstimatedMaxConfigDelay: %i\n",data->wEstimatedMaxConfigDelay); - printf("\tUsageType: %i\n",data->bUsageType); - printf("\tRateControlMode: %i\n",data->bRateControlMode); - printf("\tTemporalScaleMode: %i\n",data->bTemporalScaleMode); - printf("\tSpatialScaleMode: %i\n",data->bSpatialScaleMode); - printf("\tSNRScaleMode: %i\n",data->bSNRScaleMode); - printf("\tStreamMuxOption: %i\n",data->bStreamMuxOption); - printf("\tStreamFormat: %i\n",data->bStreamFormat); - printf("\tEntropyCABAC: %i\n",data->bEntropyCABAC); - printf("\tTimestamp: %i\n",data->bTimestamp); - printf("\tNumOfReorderFrames: %i\n",data->bNumOfReorderFrames); - printf("\tPreviewFlipped: %i\n",data->bPreviewFlipped); - printf("\tView: %i\n",data->bView); - printf("\tReserved1: %i\n",data->bReserved1); - printf("\tReserved2: %i\n",data->bReserved2); - printf("\tStreamID: %i\n",data->bStreamID); - printf("\tSpatialLayerRatio: %i\n",data->bSpatialLayerRatio); - printf("\tLeakyBucketSize: %i\n",data->wLeakyBucketSize); -} - -static void update_h264_controls(struct ALL_DATA* data) -{ - //struct GLOBAL *global = data->global; - struct vdIn *videoIn = data->videoIn; - struct uvc_h264_gtkcontrols *h264_controls = data->h264_controls; - - uvcx_video_config_probe_commit_t *config_probe_req = &(videoIn->h264_config_probe_req); - //dwFrameInterval - //gtk_spin_button_set_value(GTK_SPIN_BUTTON(h264_controls->FrameInterval), config_probe_req->dwFrameInterval); - //dwBitRate - gtk_spin_button_set_value(GTK_SPIN_BUTTON(h264_controls->BitRate), config_probe_req->dwBitRate); - //bmHints - uint16_t hints = config_probe_req->bmHints; - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(h264_controls->Hints_res), ((hints & 0x0001) != 0)); - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(h264_controls->Hints_prof), ((hints & 0x0002) != 0)); - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(h264_controls->Hints_ratecontrol), ((hints & 0x0004) != 0)); - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(h264_controls->Hints_usage), ((hints & 0x0008) != 0)); - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(h264_controls->Hints_slicemode), ((hints & 0x0010) != 0)); - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(h264_controls->Hints_sliceunit), ((hints & 0x0020) != 0)); - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(h264_controls->Hints_view), ((hints & 0x0040) != 0)); - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(h264_controls->Hints_temporal), ((hints & 0x0080) != 0)); - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(h264_controls->Hints_snr), ((hints & 0x0100) != 0)); - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(h264_controls->Hints_spatial), ((hints & 0x0200) != 0)); - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(h264_controls->Hints_spatiallayer), ((hints & 0x0400) != 0)); - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(h264_controls->Hints_frameinterval), ((hints & 0x0800) != 0)); - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(h264_controls->Hints_leakybucket), ((hints & 0x1000) != 0)); - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(h264_controls->Hints_bitrate), ((hints & 0x2000) != 0)); - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(h264_controls->Hints_cabac), ((hints & 0x4000) != 0)); - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(h264_controls->Hints_iframe), ((hints & 0x8000) != 0)); - //wWidth x wHeight - /* - int h264_format_ind = get_FormatIndex(videoIn->listFormats,V4L2_PIX_FMT_H264); - VidFormats *listVidFormats = &videoIn->listFormats->listVidFormats[h264_format_ind]; - int i=0; - int defres = 0; - for(i=0; i < listVidFormats->numb_res ; i++) - { - if ((config_probe_req->wWidth == listVidFormats->listVidCap[i].width) && - (config_probe_req->wHeight == listVidFormats->listVidCap[i].height)) - { - defres = i; - break; - } - } - gtk_combo_box_set_active(GTK_COMBO_BOX(h264_controls->Resolution), defres);//set selected resolution index - */ - - //wSliceMode - gtk_combo_box_set_active(GTK_COMBO_BOX(h264_controls->SliceMode), config_probe_req->wSliceMode); - //wSliceUnits - gtk_spin_button_set_value(GTK_SPIN_BUTTON(h264_controls->SliceUnits), config_probe_req->wSliceUnits); - //wProfile - uint16_t profile = config_probe_req->wProfile & 0xFF00; - int prof_index = 0; - switch(profile) - { - case 0x4200: - prof_index = 0; - break; - case 0x4D00: - prof_index = 1; - break; - case 0x6400: - prof_index = 2; - break; - case 0x5300: - prof_index = 3; - break; - case 0x5600: - prof_index = 4; - break; - case 0x7600: - prof_index = 5; - break; - case 0x8000: - prof_index = 6; - break; - default: - fprintf(stderr, "H264 probe: unknown profile mode 0x%X\n", profile); - break; - - } - gtk_combo_box_set_active(GTK_COMBO_BOX(h264_controls->Profile), prof_index); - gtk_spin_button_set_value(GTK_SPIN_BUTTON(h264_controls->Profile_flags), config_probe_req->wProfile & 0x00FF); - //wIFramePeriod - gtk_spin_button_set_value(GTK_SPIN_BUTTON(h264_controls->IFramePeriod), config_probe_req->wIFramePeriod); - //wEstimatedVideoDelay - gtk_spin_button_set_value(GTK_SPIN_BUTTON(h264_controls->EstimatedVideoDelay), config_probe_req->wEstimatedVideoDelay); - //wEstimatedMaxConfigDelay - gtk_spin_button_set_value(GTK_SPIN_BUTTON(h264_controls->EstimatedMaxConfigDelay), config_probe_req->wEstimatedMaxConfigDelay); - //bUsageType - int usage_type_ind = (config_probe_req->bUsageType & 0x0F) - 1; - if(usage_type_ind < 0) - usage_type_ind = 0; - gtk_combo_box_set_active(GTK_COMBO_BOX(h264_controls->UsageType), usage_type_ind); - //bRateControlMode - gtk_combo_box_set_active(GTK_COMBO_BOX(h264_controls->RateControlMode), (config_probe_req->bRateControlMode & 0x03) - 1); - gtk_spin_button_set_value(GTK_SPIN_BUTTON(h264_controls->RateControlMode_cbr_flag), config_probe_req->bRateControlMode & 0x0000001C); - //bTemporalScaleMode - gtk_spin_button_set_value(GTK_SPIN_BUTTON(h264_controls->TemporalScaleMode), config_probe_req->bTemporalScaleMode); - //bSpatialScaleMode - gtk_spin_button_set_value(GTK_SPIN_BUTTON(h264_controls->SpatialScaleMode), config_probe_req->bSpatialScaleMode); - //bSNRScaleMode - uint8_t snrscalemode = config_probe_req->bSNRScaleMode & 0x0F; - int snrscalemode_index = 0; - switch(snrscalemode) - { - case 0: - snrscalemode_index = 0; - break; - case 2: - case 3: - case 4: - case 5: - case 6: - snrscalemode_index = snrscalemode - 1; - break; - } - gtk_combo_box_set_active(GTK_COMBO_BOX(h264_controls->SNRScaleMode), snrscalemode_index); - //bStreamMuxOption - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(h264_controls->StreamMuxOption),((config_probe_req->bStreamMuxOption & 0x01) != 0)); - uint8_t streammux = config_probe_req->bStreamMuxOption & 0x0E; - int streammux_index = 0; - switch(streammux) - { - case 2: - streammux_index = 0; - break; - case 4: - streammux_index = 1; - break; - case 8: - streammux_index = 2; - break; - } - gtk_combo_box_set_active (GTK_COMBO_BOX(h264_controls->StreamMuxOption_aux), streammux_index); - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(h264_controls->StreamMuxOption_mjpgcontainer),((config_probe_req->bStreamMuxOption & 0x40) != 0)); - //bStreamFormat - gtk_combo_box_set_active (GTK_COMBO_BOX(h264_controls->StreamFormat), config_probe_req->bStreamMuxOption & 0x01); - //bEntropyCABAC - gtk_combo_box_set_active (GTK_COMBO_BOX(h264_controls->EntropyCABAC), config_probe_req->bEntropyCABAC & 0x01); - //bTimestamp - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(h264_controls->Timestamp), (config_probe_req->bTimestamp & 0x01) != 0); - //bNumOfReorderFrames - gtk_spin_button_set_value (GTK_SPIN_BUTTON(h264_controls->NumOfReorderFrames), config_probe_req->bNumOfReorderFrames); - //bPreviewFlipped - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(h264_controls->PreviewFlipped), (config_probe_req->bPreviewFlipped & 0x01) != 0); - //bView - gtk_spin_button_set_value (GTK_SPIN_BUTTON(h264_controls->View), config_probe_req->bView); - //bStreamID - gtk_spin_button_set_value (GTK_SPIN_BUTTON(h264_controls->StreamID), config_probe_req->bStreamID); - //bSpatialLayerRatio - int SLRatio = config_probe_req->bSpatialLayerRatio & 0x000000FF; - gdouble val = (gdouble) ((SLRatio & 0x000000F0)>>4) + (gdouble)((SLRatio & 0x0000000F)/16); - gtk_spin_button_set_value (GTK_SPIN_BUTTON(h264_controls->SpatialLayerRatio), val); - //wLeakyBucketSize - gtk_spin_button_set_value (GTK_SPIN_BUTTON(h264_controls->LeakyBucketSize), config_probe_req->wLeakyBucketSize); -} - -static void fill_video_config_probe (struct ALL_DATA* data) -{ - struct GLOBAL *global = data->global; - struct vdIn *videoIn = data->videoIn; - struct uvc_h264_gtkcontrols *h264_controls = data->h264_controls; - - uvcx_video_config_probe_commit_t *config_probe_req = &(videoIn->h264_config_probe_req); - - //dwFrameInterval - uint32_t frame_interval = (global->fps_num * 1000000000LL / global->fps)/100; - config_probe_req->dwFrameInterval = frame_interval;//(uint32_t) gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(h264_controls->FrameInterval)); - //dwBitRate - config_probe_req->dwBitRate = (uint32_t) gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(h264_controls->BitRate)); - //bmHints - uint16_t hints = 0x0000; - hints |= gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(h264_controls->Hints_res)) ? 0x0001 : 0; - hints |= gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(h264_controls->Hints_prof)) ? 0x0002 : 0; - hints |= gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(h264_controls->Hints_ratecontrol)) ? 0x0004: 0; - hints |= gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(h264_controls->Hints_usage)) ? 0x0008: 0; - hints |= gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(h264_controls->Hints_slicemode)) ? 0x0010: 0; - hints |= gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(h264_controls->Hints_sliceunit)) ? 0x0020: 0; - hints |= gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(h264_controls->Hints_view)) ? 0x0040: 0; - hints |= gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(h264_controls->Hints_temporal)) ? 0x0080: 0; - hints |= gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(h264_controls->Hints_snr)) ? 0x0100: 0; - hints |= gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(h264_controls->Hints_spatial)) ? 0x0200: 0; - hints |= gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(h264_controls->Hints_spatiallayer)) ? 0x0400: 0; - hints |= gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(h264_controls->Hints_frameinterval)) ? 0x0800: 0; - hints |= gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(h264_controls->Hints_leakybucket)) ? 0x1000: 0; - hints |= gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(h264_controls->Hints_bitrate)) ? 0x2000: 0; - hints |= gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(h264_controls->Hints_cabac)) ? 0x4000: 0; - hints |= gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(h264_controls->Hints_iframe)) ? 0x8000: 0; - config_probe_req->bmHints = hints; - //wWidth x wHeight - /* - int h264_format_ind = get_FormatIndex(videoIn->listFormats,V4L2_PIX_FMT_H264); - int def_res = gtk_combo_box_get_active(GTK_COMBO_BOX(h264_controls->Resolution)); - config_probe_req->wWidth = (uint16_t) videoIn->listFormats->listVidFormats[h264_format_ind].listVidCap[def_res].width; - config_probe_req->wHeight = (uint16_t) videoIn->listFormats->listVidFormats[h264_format_ind].listVidCap[def_res].height; - */ - config_probe_req->wWidth = (uint16_t) global->width; - config_probe_req->wHeight = (uint16_t) global->height; - //wSliceMode - config_probe_req->wSliceMode = (uint16_t) gtk_combo_box_get_active(GTK_COMBO_BOX(h264_controls->SliceMode)); - //wSliceUnits - config_probe_req->wSliceUnits = (uint16_t) gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(h264_controls->SliceUnits)); - //wProfile - int profile_index = gtk_combo_box_get_active(GTK_COMBO_BOX(h264_controls->Profile)); - uint16_t profile = 0x4200; - switch(profile_index) - { - case 0: - profile = 0x4200; - break; - case 1: - profile = 0x4D00; - break; - case 2: - profile = 0x6400; - break; - case 3: - profile = 0x5300; - break; - case 4: - profile = 0x5600; - break; - case 5: - profile = 0x7600; - break; - case 6: - profile = 0x8000; - break; - default: - fprintf(stderr, "H264 probe: unknown profile\n"); - break; - } - - profile |= (uint16_t) (gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(h264_controls->Profile_flags)) & 0x000000FF); - config_probe_req->wProfile = profile; - //wIFramePeriod - config_probe_req->wIFramePeriod = (uint16_t) gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(h264_controls->IFramePeriod)); - //wEstimatedVideoDelay - config_probe_req->wEstimatedVideoDelay = (uint16_t) gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(h264_controls->EstimatedVideoDelay)); - //wEstimatedMaxConfigDelay - config_probe_req->wEstimatedMaxConfigDelay = (uint16_t) gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(h264_controls->EstimatedMaxConfigDelay)); - //bUsageType - config_probe_req->bUsageType = (uint8_t) (gtk_combo_box_get_active(GTK_COMBO_BOX(h264_controls->UsageType)) + 1); - //bRateControlMode - config_probe_req->bRateControlMode = (uint8_t) (gtk_combo_box_get_active(GTK_COMBO_BOX(h264_controls->RateControlMode)) + 1); - config_probe_req->bRateControlMode |= (uint8_t) (gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(h264_controls->RateControlMode_cbr_flag)) & 0x0000001C); - //bTemporalScaleMode - config_probe_req->bTemporalScaleMode = (uint8_t) gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(h264_controls->TemporalScaleMode)); - //bSpatialScaleMode - config_probe_req->bSpatialScaleMode = (uint8_t) gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(h264_controls->SpatialScaleMode)); - //bSNRScaleMode - int snrscalemode_index = gtk_combo_box_get_active(GTK_COMBO_BOX(h264_controls->SNRScaleMode)); - config_probe_req->bSNRScaleMode = 0; - switch(snrscalemode_index) - { - case 1: - case 2: - case 3: - case 4: - case 5: - config_probe_req->bSNRScaleMode = snrscalemode_index + 1; - break; - } - //bStreamMuxOption - /* - uint8_t streammux = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(h264_controls->StreamMuxOption)) ? 0x01: 0; - - int streammux_index = gtk_combo_box_get_active(GTK_COMBO_BOX(h264_controls->StreamMuxOption_aux)); - switch(streammux_index) - { - case 0: - streammux |= 0x02; - break; - case 1: - streammux |= 0x04; - break; - case 2: - streammux |= 0x08; - break; - } - streammux |= gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(h264_controls->StreamMuxOption_mjpgcontainer)) ? 0x40 : 0x00; - - config_probe_req->bStreamMuxOption = streammux; - //bStreamFormat - config_probe_req->bStreamMuxOption = (uint8_t) gtk_combo_box_get_active(GTK_COMBO_BOX(h264_controls->StreamFormat)) & 0x01; - */ - - if(global->format == V4L2_PIX_FMT_H264 && get_SupPixFormatUvcH264() > 1) - config_probe_req->bStreamMuxOption = STREAMMUX_H264; - else - config_probe_req->bStreamMuxOption = 0; - - //bEntropyCABAC - config_probe_req->bEntropyCABAC = (uint8_t) gtk_combo_box_get_active(GTK_COMBO_BOX(h264_controls->EntropyCABAC)) & 0x01; - //bTimestamp - config_probe_req->bTimestamp = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(h264_controls->Timestamp)) ? 0x01 : 0x00; - //bNumOfReorderFrames - config_probe_req->bNumOfReorderFrames = (uint8_t) gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(h264_controls->NumOfReorderFrames)); - //bPreviewFlipped - config_probe_req->bPreviewFlipped = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(h264_controls->PreviewFlipped)) ? 0x01 : 0x00; - //bView - config_probe_req->bView = (uint8_t) gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(h264_controls->View)); - //bStreamID - config_probe_req->bStreamID = (uint8_t) gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(h264_controls->StreamID)); - //bSpatialLayerRatio - gdouble spatialratio = gtk_spin_button_get_value(GTK_SPIN_BUTTON(h264_controls->SpatialLayerRatio)); - uint8_t high_nibble = floor(spatialratio); - uint8_t lower_nibble = floor((spatialratio - high_nibble) * 16); - config_probe_req->bSpatialLayerRatio = (high_nibble << 4) + lower_nibble; - //wLeakyBucketSize - config_probe_req->wLeakyBucketSize = (uint16_t) gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(h264_controls->LeakyBucketSize)); -} - -void h264_probe( - struct ALL_DATA *data) -{ - struct GLOBAL *global = data->global; - struct vdIn *videoIn = data->videoIn; - - uvcx_video_config_probe_commit_t *config_probe_req = &(videoIn->h264_config_probe_req); - - uvcx_video_probe(videoIn->fd, global->uvc_h264_unit, UVC_GET_CUR, config_probe_req); - - //get the control data and fill req (need fps and resolution) - fill_video_config_probe(data); - printf("Probing:\n"); - print_probe_commit_data(config_probe_req); - - //Probe the request - uvcx_video_probe(videoIn->fd, global->uvc_h264_unit, UVC_SET_CUR, config_probe_req); - uvcx_video_probe(videoIn->fd, global->uvc_h264_unit, UVC_GET_CUR, config_probe_req); - printf("Probe Request:\n"); - print_probe_commit_data(config_probe_req); - - //update the control widgets - update_h264_controls(data); -} - -void h264_commit(struct vdIn *vd, struct GLOBAL *global) -{ - //Commit the request - uvcx_video_commit(vd->fd, global->uvc_h264_unit, &(vd->h264_config_probe_req)); - - uvcx_video_probe(vd->fd, global->uvc_h264_unit, UVC_GET_CUR, &(vd->h264_config_probe_req)); - printf("Probe Current:\n"); - print_probe_commit_data( &(vd->h264_config_probe_req)); -} - -void h264_probe_button_clicked(GtkButton * Button, struct ALL_DATA* data) -{ - h264_probe(data); -} - -void h264_commit_button_clicked(GtkButton * Button, struct ALL_DATA* data) -{ - struct vdIn *videoIn = data->videoIn; - - fill_video_config_probe(data); - printf("Commiting:\n"); - print_probe_commit_data( &(videoIn->h264_config_probe_req)); - - videoIn->setH264ConfigProbe = 1; - - int counter = 0; - //wait for videoIn->setH264ConfigProbe = 0 - while(videoIn->setH264ConfigProbe > 0 && counter < 10) - { - sleep_ms(100); - counter++; - } - - update_h264_controls(data); -} - -void h264_reset_button_clicked(GtkButton * Button, struct ALL_DATA* data) -{ - struct GLOBAL *global = data->global; - struct vdIn *videoIn = data->videoIn; - - uvcx_video_encoder_reset(videoIn->fd, global->uvc_h264_unit); -} - -void rate_control_mode_changed(GtkComboBox *combo, struct ALL_DATA *all_data) -{ - struct GLOBAL *global = all_data->global; - struct vdIn *videoIn = all_data->videoIn; - struct uvc_h264_gtkcontrols *h264_controls = all_data->h264_controls; - - uint8_t rate_mode = (uint8_t) (gtk_combo_box_get_active (combo) + 1); - - rate_mode |= (uint8_t) (gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(h264_controls->RateControlMode_cbr_flag)) & 0x0000001C); - - uvcx_set_video_rate_control_mode(videoIn->fd, global->uvc_h264_unit, rate_mode); - - rate_mode = uvcx_get_video_rate_control_mode(videoIn->fd, global->uvc_h264_unit, UVC_GET_CUR); - - int ratecontrolmode_index = rate_mode - 1; // from 0x01 to 0x03 - if(ratecontrolmode_index < 0) - ratecontrolmode_index = 0; - - g_signal_handlers_block_by_func(combo, G_CALLBACK (rate_control_mode_changed), all_data); - gtk_combo_box_set_active(GTK_COMBO_BOX(h264_controls->RateControlMode), ratecontrolmode_index); - g_signal_handlers_unblock_by_func(combo, G_CALLBACK (rate_control_mode_changed), all_data); -} - -void TemporalScaleMode_changed(GtkSpinButton *spin, struct ALL_DATA *all_data) -{ - struct GLOBAL *global = all_data->global; - struct vdIn *videoIn = all_data->videoIn; - - uint8_t scale_mode = (uint8_t) gtk_spin_button_get_value_as_int(spin); - - uvcx_set_temporal_scale_mode(videoIn->fd, global->uvc_h264_unit, scale_mode); - - scale_mode = uvcx_get_temporal_scale_mode(videoIn->fd, global->uvc_h264_unit, UVC_GET_CUR) & 0x07; - - g_signal_handlers_block_by_func (spin, G_CALLBACK (TemporalScaleMode_changed), all_data); - gtk_spin_button_set_value (spin, scale_mode); - g_signal_handlers_unblock_by_func (spin, G_CALLBACK (TemporalScaleMode_changed), all_data); - -} - -void SpatialScaleMode_changed(GtkSpinButton *spin, struct ALL_DATA *all_data) -{ - struct GLOBAL *global = all_data->global; - struct vdIn *videoIn = all_data->videoIn; - - uint8_t scale_mode = (uint8_t) gtk_spin_button_get_value_as_int(spin); - - uvcx_set_spatial_scale_mode(videoIn->fd, global->uvc_h264_unit, scale_mode); - - scale_mode = uvcx_get_spatial_scale_mode(videoIn->fd, global->uvc_h264_unit, UVC_GET_CUR) & 0x07; - - g_signal_handlers_block_by_func (spin, G_CALLBACK (SpatialScaleMode_changed), all_data); - gtk_spin_button_set_value (spin, scale_mode); - g_signal_handlers_unblock_by_func (spin, G_CALLBACK (SpatialScaleMode_changed), all_data); - -} - -void FrameInterval_changed(GtkSpinButton *spin, struct ALL_DATA *all_data) -{ - struct GLOBAL *global = all_data->global; - struct vdIn *videoIn = all_data->videoIn; - - uint32_t framerate = (uint32_t) gtk_spin_button_get_value_as_int(spin); - - uvcx_set_frame_rate_config(videoIn->fd, global->uvc_h264_unit, framerate); - - framerate = uvcx_get_frame_rate_config(videoIn->fd, global->uvc_h264_unit, UVC_GET_CUR); - - g_signal_handlers_block_by_func (spin, G_CALLBACK (FrameInterval_changed), all_data); - gtk_spin_button_set_value (spin, framerate); - g_signal_handlers_unblock_by_func (spin, G_CALLBACK (FrameInterval_changed), all_data); - -} - -/* - * creates the control widgets for uvc H264 - */ -void add_uvc_h264_controls_tab (struct ALL_DATA* all_data) -{ - struct GLOBAL *global = all_data->global; - struct vdIn *videoIn = all_data->videoIn; - struct uvc_h264_gtkcontrols *h264_controls = g_new0(struct uvc_h264_gtkcontrols, 1); - all_data->h264_controls = h264_controls; - struct GWIDGET *gwidget = all_data->gwidget; - - //get current values - uvcx_video_config_probe_commit_t *config_probe_cur = &(videoIn->h264_config_probe_req); - - uvcx_video_probe(videoIn->fd, global->uvc_h264_unit, UVC_GET_CUR, config_probe_cur); - //print_probe_commit_data(&config_probe_cur); - - //get Max values - uvcx_video_config_probe_commit_t config_probe_max; - uvcx_video_probe(videoIn->fd, global->uvc_h264_unit, UVC_GET_MAX, &config_probe_max); - - //get Min values - uvcx_video_config_probe_commit_t config_probe_min; - uvcx_video_probe(videoIn->fd, global->uvc_h264_unit, UVC_GET_MIN, &config_probe_min); - - int line = 0; - //add the controls and associate the callbacks - GtkWidget *table; - GtkWidget *scroll; - GtkWidget *Tab; - GtkWidget *TabLabel; - GtkWidget *TabIcon; - - //TABLE - table = gtk_grid_new(); - gtk_grid_set_column_homogeneous (GTK_GRID(table), FALSE); - gtk_widget_set_hexpand (table, TRUE); - gtk_widget_set_halign (table, GTK_ALIGN_FILL); - - gtk_grid_set_row_spacing (GTK_GRID(table), 4); - gtk_grid_set_column_spacing (GTK_GRID (table), 4); - gtk_container_set_border_width (GTK_CONTAINER (table), 2); - gtk_widget_show (table); - //SCROLL - scroll = gtk_scrolled_window_new(NULL,NULL); - gtk_scrolled_window_set_placement(GTK_SCROLLED_WINDOW(scroll), GTK_CORNER_TOP_LEFT); - - //ADD TABLE TO SCROLL - - //viewport is only needed for gtk < 3.8 - //for 3.8 and above s->table can be directly added to scroll1 - GtkWidget* viewport = gtk_viewport_new(NULL,NULL); - gtk_container_add(GTK_CONTAINER(viewport), table); - gtk_widget_show(viewport); - - gtk_container_add(GTK_CONTAINER(scroll), viewport); - gtk_widget_show(scroll); - - //new hbox for tab label and icon - Tab = gtk_grid_new(); - TabLabel = gtk_label_new(_("H264 Controls")); - gtk_widget_show (TabLabel); - - gchar* TabIconPath = g_strconcat (PACKAGE_DATA_DIR,"/pixmaps/guvcview/image_controls.png",NULL); - //don't test for file - use default empty image if load fails - //get icon image - TabIcon = gtk_image_new_from_file(TabIconPath); - g_free(TabIconPath); - gtk_widget_show (TabIcon); - gtk_grid_attach (GTK_GRID(Tab), TabIcon, 0, 0, 1, 1); - gtk_grid_attach (GTK_GRID(Tab), TabLabel, 1, 0, 1, 1); - - gtk_widget_show (Tab); - gtk_notebook_append_page(GTK_NOTEBOOK(gwidget->boxh),scroll,Tab); - - //streaming controls - - //bRateControlMode - line++; - GtkWidget* label_RateControlMode = gtk_label_new(_("Rate Control Mode:")); - gtk_misc_set_alignment (GTK_MISC (label_RateControlMode), 1, 0.5); - gtk_grid_attach (GTK_GRID(table), label_RateControlMode, 0, line, 1, 1); - gtk_widget_show (label_RateControlMode); - - uint8_t min_ratecontrolmode = uvcx_get_video_rate_control_mode(videoIn->fd, global->uvc_h264_unit, UVC_GET_MIN) & 0x03; - uint8_t max_ratecontrolmode = uvcx_get_video_rate_control_mode(videoIn->fd, global->uvc_h264_unit, UVC_GET_MAX) & 0x03; - - h264_controls->RateControlMode = gtk_combo_box_text_new(); - if(max_ratecontrolmode >= 1 && min_ratecontrolmode < 2) - gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT(h264_controls->RateControlMode), - _("CBR")); - if(max_ratecontrolmode >= 2 && min_ratecontrolmode < 3) - gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT(h264_controls->RateControlMode), - _("VBR")); - - if(max_ratecontrolmode >= 3 && min_ratecontrolmode < 4) - gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT(h264_controls->RateControlMode), - _("Constant QP")); - - uint8_t cur_ratecontrolmode = uvcx_get_video_rate_control_mode(videoIn->fd, global->uvc_h264_unit, UVC_GET_CUR) & 0x03; - int ratecontrolmode_index = cur_ratecontrolmode - 1; // from 0x01 to 0x03 - if(ratecontrolmode_index < 0) - ratecontrolmode_index = 0; - - gtk_combo_box_set_active(GTK_COMBO_BOX(h264_controls->RateControlMode), ratecontrolmode_index); - - //connect signal - g_signal_connect (GTK_COMBO_BOX_TEXT(h264_controls->RateControlMode), "changed", - G_CALLBACK (rate_control_mode_changed), all_data); - - gtk_grid_attach (GTK_GRID(table), h264_controls->RateControlMode, 1, line, 1 ,1); - gtk_widget_show (h264_controls->RateControlMode); - - //bRateControlMode flags (Bits 4-8) - line++; - GtkWidget* label_RateControlMode_cbr_flag = gtk_label_new(_("Rate Control Mode flags:")); - gtk_misc_set_alignment (GTK_MISC (label_RateControlMode_cbr_flag), 1, 0.5); - gtk_grid_attach (GTK_GRID(table), label_RateControlMode_cbr_flag, 0, line, 1, 1); - gtk_widget_show (label_RateControlMode_cbr_flag); - - uint8_t cur_vrcflags = uvcx_get_video_rate_control_mode(videoIn->fd, global->uvc_h264_unit, UVC_GET_CUR) & 0x1C; - uint8_t max_vrcflags = uvcx_get_video_rate_control_mode(videoIn->fd, global->uvc_h264_unit, UVC_GET_MAX) & 0x1C; - uint8_t min_vrcflags = uvcx_get_video_rate_control_mode(videoIn->fd, global->uvc_h264_unit, UVC_GET_MIN) & 0x1C; - - GtkAdjustment *adjustment7 = gtk_adjustment_new ( - cur_vrcflags, - min_vrcflags, - max_vrcflags, - 1, - 10, - 0); - - h264_controls->RateControlMode_cbr_flag = gtk_spin_button_new(adjustment7, 1, 0); - gtk_editable_set_editable(GTK_EDITABLE(h264_controls->RateControlMode_cbr_flag), TRUE); - - gtk_grid_attach (GTK_GRID(table), h264_controls->RateControlMode_cbr_flag, 1, line, 1 ,1); - gtk_widget_show (h264_controls->RateControlMode_cbr_flag); - - //bTemporalScaleMode - line++; - GtkWidget* label_TemporalScaleMode = gtk_label_new(_("Temporal Scale Mode:")); - gtk_misc_set_alignment (GTK_MISC (label_TemporalScaleMode), 1, 0.5); - gtk_grid_attach (GTK_GRID(table), label_TemporalScaleMode, 0, line, 1, 1); - gtk_widget_show (label_TemporalScaleMode); - - uint8_t cur_tsmflags = config_probe_cur->bTemporalScaleMode & 0x07; - uint8_t max_tsmflags = config_probe_max.bTemporalScaleMode & 0x07; - uint8_t min_tsmflags = config_probe_min.bTemporalScaleMode & 0x07; - - GtkAdjustment *adjustment8 = gtk_adjustment_new ( - cur_tsmflags, - min_tsmflags, - max_tsmflags, - 1, - 10, - 0); - - h264_controls->TemporalScaleMode = gtk_spin_button_new(adjustment8, 1, 0); - gtk_editable_set_editable(GTK_EDITABLE(h264_controls->TemporalScaleMode), TRUE); - - g_signal_connect(GTK_SPIN_BUTTON(h264_controls->TemporalScaleMode),"value-changed", - G_CALLBACK (TemporalScaleMode_changed), all_data); - - gtk_grid_attach (GTK_GRID(table), h264_controls->TemporalScaleMode, 1, line, 1 ,1); - gtk_widget_show (h264_controls->TemporalScaleMode); - - //bSpatialScaleMode - line++; - GtkWidget* label_SpatialScaleMode = gtk_label_new(_("Spatial Scale Mode:")); - gtk_misc_set_alignment (GTK_MISC (label_SpatialScaleMode), 1, 0.5); - gtk_grid_attach (GTK_GRID(table), label_SpatialScaleMode, 0, line, 1, 1); - gtk_widget_show (label_SpatialScaleMode); - - //uint8_t cur_ssmflags = uvcx_get_spatial_scale_mode(videoIn->fd, global->uvc_h264_unit, UVC_GET_CUR) & 0x0F; - //uint8_t max_ssmflags = uvcx_get_spatial_scale_mode(videoIn->fd, global->uvc_h264_unit, UVC_GET_MAX) & 0x0F; - //uint8_t min_ssmflags = uvcx_get_spatial_scale_mode(videoIn->fd, global->uvc_h264_unit, UVC_GET_MIN) & 0x0F; - uint8_t cur_ssmflags = config_probe_cur->bSpatialScaleMode & 0x0F; - uint8_t max_ssmflags = config_probe_max.bSpatialScaleMode & 0x0F; - uint8_t min_ssmflags = config_probe_min.bSpatialScaleMode & 0x0F; - - GtkAdjustment *adjustment9 = gtk_adjustment_new ( - cur_ssmflags, - min_ssmflags, - max_ssmflags, - 1, - 10, - 0); - - h264_controls->SpatialScaleMode = gtk_spin_button_new(adjustment9, 1, 0); - gtk_editable_set_editable(GTK_EDITABLE(h264_controls->SpatialScaleMode), TRUE); - - g_signal_connect(GTK_SPIN_BUTTON(h264_controls->SpatialScaleMode),"value-changed", - G_CALLBACK (SpatialScaleMode_changed), all_data); - - gtk_grid_attach (GTK_GRID(table), h264_controls->SpatialScaleMode, 1, line, 1 ,1); - gtk_widget_show (h264_controls->SpatialScaleMode); - - //dwFrameInterval - if(global->control_only) // if streaming use fps to determine FrameInterval - { - line++; - GtkWidget* label_FrameInterval = gtk_label_new(_("Frame Interval (100ns units):")); - gtk_misc_set_alignment (GTK_MISC (label_FrameInterval), 1, 0.5); - gtk_grid_attach (GTK_GRID(table), label_FrameInterval, 0, line, 1, 1); - gtk_widget_show (label_FrameInterval); - - //uint32_t cur_framerate = (global->fps_num * 1000000000LL / global->fps)/100; - uint32_t cur_framerate = uvcx_get_frame_rate_config(videoIn->fd, global->uvc_h264_unit, UVC_GET_CUR); - uint32_t max_framerate = uvcx_get_frame_rate_config(videoIn->fd, global->uvc_h264_unit, UVC_GET_MAX); - uint32_t min_framerate = uvcx_get_frame_rate_config(videoIn->fd, global->uvc_h264_unit, UVC_GET_MIN); - - GtkAdjustment *adjustment0 = gtk_adjustment_new ( - cur_framerate, - min_framerate, - max_framerate, - 1, - 10, - 0); - - h264_controls->FrameInterval = gtk_spin_button_new(adjustment0, 1, 0); - gtk_editable_set_editable(GTK_EDITABLE(h264_controls->FrameInterval), TRUE); - - g_signal_connect(GTK_SPIN_BUTTON(h264_controls->FrameInterval),"value-changed", - G_CALLBACK (FrameInterval_changed), all_data); - - gtk_grid_attach (GTK_GRID(table), h264_controls->FrameInterval, 1, line, 1 ,1); - gtk_widget_show (h264_controls->FrameInterval); - } - - //probe_commit specific controls - - if(global->control_only) - return; //don't create probe_commit specific controls if we are in control panel mode - - //dwBitRate - line++; - GtkWidget* label_BitRate = gtk_label_new(_("Bit Rate:")); - gtk_misc_set_alignment (GTK_MISC (label_BitRate), 1, 0.5); - gtk_grid_attach (GTK_GRID(table), label_BitRate, 0, line, 1, 1); - gtk_widget_show (label_BitRate); - - GtkAdjustment *adjustment1 = gtk_adjustment_new ( - config_probe_cur->dwBitRate, - config_probe_min.dwBitRate, - config_probe_max.dwBitRate, - 1, - 10, - 0); - - h264_controls->BitRate = gtk_spin_button_new(adjustment1, 1, 0); - gtk_editable_set_editable(GTK_EDITABLE(h264_controls->BitRate), TRUE); - - gtk_grid_attach (GTK_GRID(table), h264_controls->BitRate, 1, line, 1 ,1); - gtk_widget_show (h264_controls->BitRate); - - //bmHints - line++; - GtkWidget* hints_table = gtk_grid_new(); - - GtkWidget* label_Hints = gtk_label_new(_("Hints:")); - gtk_misc_set_alignment (GTK_MISC (label_Hints), 1, 0.5); - gtk_grid_attach (GTK_GRID(hints_table), label_Hints, 0, 1, 2, 1); - gtk_widget_show (label_Hints); - - h264_controls->Hints_res = gtk_check_button_new_with_label (_("Resolution")); - gtk_grid_attach (GTK_GRID(hints_table), h264_controls->Hints_res, 0, 2, 1, 1); - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(h264_controls->Hints_res),((config_probe_cur->bmHints & 0x0001) > 0)); - gtk_widget_show (h264_controls->Hints_res); - h264_controls->Hints_prof = gtk_check_button_new_with_label (_("Profile")); - gtk_grid_attach (GTK_GRID(hints_table),h264_controls->Hints_prof, 1, 2, 1, 1); - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(h264_controls->Hints_prof),((config_probe_cur->bmHints & 0x0002) > 0)); - gtk_widget_show (h264_controls->Hints_prof); - h264_controls->Hints_ratecontrol = gtk_check_button_new_with_label (_("Rate Control")); - gtk_grid_attach (GTK_GRID(hints_table),h264_controls->Hints_ratecontrol, 2, 2, 1, 1); - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(h264_controls->Hints_ratecontrol),((config_probe_cur->bmHints & 0x0004) > 0)); - gtk_widget_show (h264_controls->Hints_ratecontrol); - h264_controls->Hints_usage = gtk_check_button_new_with_label (_("Usage Type")); - gtk_grid_attach (GTK_GRID(hints_table),h264_controls->Hints_usage, 3, 2, 1, 1); - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(h264_controls->Hints_usage),((config_probe_cur->bmHints & 0x0008) > 0)); - gtk_widget_show (h264_controls->Hints_usage); - h264_controls->Hints_slicemode = gtk_check_button_new_with_label (_("Slice Mode")); - gtk_grid_attach (GTK_GRID(hints_table),h264_controls->Hints_slicemode, 0, 3, 1, 1); - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(h264_controls->Hints_slicemode),((config_probe_cur->bmHints & 0x0010) > 0)); - gtk_widget_show (h264_controls->Hints_slicemode); - h264_controls->Hints_sliceunit = gtk_check_button_new_with_label (_("Slice Unit")); - gtk_grid_attach (GTK_GRID(hints_table),h264_controls->Hints_sliceunit, 1, 3, 1, 1); - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(h264_controls->Hints_sliceunit),((config_probe_cur->bmHints & 0x0020) > 0)); - gtk_widget_show (h264_controls->Hints_sliceunit); - h264_controls->Hints_view = gtk_check_button_new_with_label (_("MVC View")); - gtk_grid_attach (GTK_GRID(hints_table),h264_controls->Hints_view, 2, 3, 1, 1); - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(h264_controls->Hints_view),((config_probe_cur->bmHints & 0x0040) > 0)); - gtk_widget_show (h264_controls->Hints_view); - h264_controls->Hints_temporal = gtk_check_button_new_with_label (_("Temporal Scale")); - gtk_grid_attach (GTK_GRID(hints_table),h264_controls->Hints_temporal, 3, 3, 1, 1); - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(h264_controls->Hints_temporal),((config_probe_cur->bmHints & 0x0080) > 0)); - gtk_widget_show (h264_controls->Hints_temporal); - h264_controls->Hints_snr = gtk_check_button_new_with_label (_("SNR Scale")); - gtk_grid_attach (GTK_GRID(hints_table),h264_controls->Hints_snr, 0, 4, 1, 1); - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(h264_controls->Hints_snr),((config_probe_cur->bmHints & 0x0100) > 0)); - gtk_widget_show (h264_controls->Hints_snr); - h264_controls->Hints_spatial = gtk_check_button_new_with_label (_("Spatial Scale")); - gtk_grid_attach (GTK_GRID(hints_table),h264_controls->Hints_spatial, 1, 4, 1, 1); - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(h264_controls->Hints_spatial),((config_probe_cur->bmHints & 0x0200) > 0)); - gtk_widget_show (h264_controls->Hints_spatial); - h264_controls->Hints_spatiallayer = gtk_check_button_new_with_label (_("Spatial Layer Ratio")); - gtk_grid_attach (GTK_GRID(hints_table),h264_controls->Hints_spatiallayer, 2, 4, 1, 1); - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(h264_controls->Hints_spatiallayer),((config_probe_cur->bmHints & 0x0400) > 0)); - gtk_widget_show (h264_controls->Hints_spatiallayer); - h264_controls->Hints_frameinterval = gtk_check_button_new_with_label (_("Frame Interval")); - gtk_grid_attach (GTK_GRID(hints_table),h264_controls->Hints_frameinterval, 3, 4, 1, 1); - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(h264_controls->Hints_frameinterval),((config_probe_cur->bmHints & 0x0800) > 0)); - gtk_widget_show (h264_controls->Hints_frameinterval); - h264_controls->Hints_leakybucket = gtk_check_button_new_with_label (_("Leaky Bucket Size")); - gtk_grid_attach (GTK_GRID(hints_table),h264_controls->Hints_leakybucket, 0, 5, 1, 1); - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(h264_controls->Hints_leakybucket),((config_probe_cur->bmHints & 0x1000) > 0)); - gtk_widget_show (h264_controls->Hints_leakybucket); - h264_controls->Hints_bitrate = gtk_check_button_new_with_label (_("Bit Rate")); - gtk_grid_attach (GTK_GRID(hints_table),h264_controls->Hints_bitrate, 1, 5, 1, 1); - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(h264_controls->Hints_bitrate),((config_probe_cur->bmHints & 0x2000) > 0)); - gtk_widget_show (h264_controls->Hints_bitrate); - h264_controls->Hints_cabac = gtk_check_button_new_with_label (_("CABAC")); - gtk_grid_attach (GTK_GRID(hints_table),h264_controls->Hints_cabac, 2, 5, 1, 1); - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(h264_controls->Hints_cabac),((config_probe_cur->bmHints & 0x4000) > 0)); - gtk_widget_show (h264_controls->Hints_cabac); - h264_controls->Hints_iframe = gtk_check_button_new_with_label (_("(I) Frame Period")); - gtk_grid_attach (GTK_GRID(hints_table),h264_controls->Hints_iframe, 3, 5, 1, 1); - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(h264_controls->Hints_iframe),((config_probe_cur->bmHints & 0x8000) > 0)); - gtk_widget_show (h264_controls->Hints_iframe); - - gtk_grid_attach (GTK_GRID(table), hints_table, 0, line, 2, 1); - gtk_widget_show(hints_table); - - //wWidth x wHeight - use global values - /* - line++; - GtkWidget* label_Resolution = gtk_label_new(_("Resolution:")); - gtk_misc_set_alignment (GTK_MISC (label_Resolution), 1, 0.5); - gtk_grid_attach (GTK_GRID(table), label_Resolution, 0, line, 1, 1); - gtk_widget_show (label_Resolution); - - h264_controls->Resolution = gtk_combo_box_text_new (); - gtk_widget_set_halign (h264_controls->Resolution, GTK_ALIGN_FILL); - gtk_widget_set_hexpand (h264_controls->Resolution, TRUE); - char temp_str[20]; - int defres=0; - - int h264_format_ind = get_FormatIndex(videoIn->listFormats,V4L2_PIX_FMT_H264); - VidFormats *listVidFormats = &videoIn->listFormats->listVidFormats[h264_format_ind]; - - int i = 0; - for(i = 0 ; i < listVidFormats->numb_res ; i++) - { - if (listVidFormats->listVidCap[i].width>0) - { - g_snprintf(temp_str,18,"%ix%i", listVidFormats->listVidCap[i].width, - listVidFormats->listVidCap[i].height); - gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(h264_controls->Resolution),temp_str); - - if ((config_probe_cur->wWidth == listVidFormats->listVidCap[i].width) && - (config_probe_cur->wHeight == listVidFormats->listVidCap[i].height)) - defres=i;//set selected resolution index - } - } - - gtk_combo_box_set_active(GTK_COMBO_BOX(h264_controls->Resolution),defres); - gtk_grid_attach (GTK_GRID(table), h264_controls->Resolution, 1, line, 1 ,1); - gtk_widget_show (h264_controls->Resolution); - */ - - //wSliceMode - line++; - GtkWidget* label_SliceMode = gtk_label_new(_("Slice Mode:")); - gtk_misc_set_alignment (GTK_MISC (label_SliceMode), 1, 0.5); - gtk_grid_attach (GTK_GRID(table), label_SliceMode, 0, line, 1, 1); - gtk_widget_show (label_SliceMode); - - h264_controls->SliceMode = gtk_combo_box_text_new(); - gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT(h264_controls->SliceMode), - _("no multiple slices")); - gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT(h264_controls->SliceMode), - _("bits/slice")); - gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT(h264_controls->SliceMode), - _("Mbits/slice")); - gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT(h264_controls->SliceMode), - _("slices/frame")); - - gtk_combo_box_set_active(GTK_COMBO_BOX(h264_controls->SliceMode), config_probe_cur->wSliceMode); //0 indexed - - gtk_grid_attach (GTK_GRID(table), h264_controls->SliceMode, 1, line, 1 ,1); - gtk_widget_show (h264_controls->SliceMode); - - //wSliceUnits - line++; - GtkWidget* label_SliceUnits = gtk_label_new(_("Slice Units:")); - gtk_misc_set_alignment (GTK_MISC (label_SliceUnits), 1, 0.5); - gtk_grid_attach (GTK_GRID(table), label_SliceUnits, 0, line, 1, 1); - gtk_widget_show (label_SliceUnits); - - GtkAdjustment *adjustment2 = gtk_adjustment_new ( - config_probe_cur->wSliceUnits, - config_probe_min.wSliceUnits, - config_probe_max.wSliceUnits, - 1, - 10, - 0); - - h264_controls->SliceUnits = gtk_spin_button_new(adjustment2, 1, 0); - gtk_editable_set_editable(GTK_EDITABLE(h264_controls->SliceUnits), TRUE); - - gtk_grid_attach (GTK_GRID(table), h264_controls->SliceUnits, 1, line, 1 ,1); - gtk_widget_show (h264_controls->SliceUnits); - - //wProfile - line++; - GtkWidget* label_Profile = gtk_label_new(_("Profile:")); - gtk_misc_set_alignment (GTK_MISC (label_Profile), 1, 0.5); - gtk_grid_attach (GTK_GRID(table), label_Profile, 0, line, 1, 1); - gtk_widget_show (label_Profile); - - h264_controls->Profile = gtk_combo_box_text_new(); - gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT(h264_controls->Profile), - _("Baseline Profile")); - gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT(h264_controls->Profile), - _("Main Profile")); - gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT(h264_controls->Profile), - _("High Profile")); - gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT(h264_controls->Profile), - _("Scalable Baseline Profile")); - gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT(h264_controls->Profile), - _("Scalable High Profile")); - gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT(h264_controls->Profile), - _("Multiview High Profile")); - gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT(h264_controls->Profile), - _("Stereo High Profile")); - - uint16_t profile = config_probe_cur->wProfile & 0xFF00; - int prof_index = 0; - switch(profile) - { - case 0x4200: - prof_index = 0; - break; - case 0x4D00: - prof_index = 1; - break; - case 0x6400: - prof_index = 2; - break; - case 0x5300: - prof_index = 3; - break; - case 0x5600: - prof_index = 4; - break; - case 0x7600: - prof_index = 5; - break; - case 0x8000: - prof_index = 6; - break; - default: - fprintf(stderr, "H264 probe: unknown profile mode 0x%X\n", profile); - break; - - } - gtk_combo_box_set_active(GTK_COMBO_BOX(h264_controls->Profile), prof_index); - - gtk_grid_attach (GTK_GRID(table), h264_controls->Profile, 1, line, 1 ,1); - gtk_widget_show (h264_controls->Profile); - - //wProfile (Bits 0-7) - line++; - GtkWidget* label_Profile_flags = gtk_label_new(_("Profile flags:")); - gtk_misc_set_alignment (GTK_MISC (label_Profile_flags), 1, 0.5); - gtk_grid_attach (GTK_GRID(table), label_Profile_flags, 0, line, 1, 1); - gtk_widget_show (label_Profile_flags); - - int cur_flags = config_probe_cur->wProfile & 0x000000FF; - int max_flags = config_probe_max.wProfile & 0x000000FF; - int min_flags = config_probe_min.wProfile & 0x000000FF; - - GtkAdjustment *adjustment3 = gtk_adjustment_new ( - cur_flags, - min_flags, - max_flags, - 1, - 10, - 0); - - h264_controls->Profile_flags = gtk_spin_button_new(adjustment3, 1, 0); - gtk_editable_set_editable(GTK_EDITABLE(h264_controls->Profile_flags), TRUE); - - gtk_grid_attach (GTK_GRID(table), h264_controls->Profile_flags, 1, line, 1 ,1); - gtk_widget_show (h264_controls->Profile_flags); - - //wIFramePeriod - line++; - GtkWidget* label_IFramePeriod = gtk_label_new(_("(I) Frame Period (ms):")); - gtk_misc_set_alignment (GTK_MISC (label_IFramePeriod), 1, 0.5); - gtk_grid_attach (GTK_GRID(table), label_IFramePeriod, 0, line, 1, 1); - gtk_widget_show (label_IFramePeriod); - - GtkAdjustment *adjustment4 = gtk_adjustment_new ( - config_probe_cur->wIFramePeriod, - config_probe_min.wIFramePeriod, - config_probe_max.wIFramePeriod, - 1, - 10, - 0); - - h264_controls->IFramePeriod = gtk_spin_button_new(adjustment4, 1, 0); - gtk_editable_set_editable(GTK_EDITABLE(h264_controls->IFramePeriod), TRUE); - - gtk_grid_attach (GTK_GRID(table), h264_controls->IFramePeriod, 1, line, 1 ,1); - gtk_widget_show (h264_controls->IFramePeriod); - - //wEstimatedVideoDelay - line++; - GtkWidget* label_EstimatedVideoDelay = gtk_label_new(_("Estimated Video Delay (ms):")); - gtk_misc_set_alignment (GTK_MISC (label_EstimatedVideoDelay), 1, 0.5); - gtk_grid_attach (GTK_GRID(table), label_EstimatedVideoDelay, 0, line, 1, 1); - gtk_widget_show (label_EstimatedVideoDelay); - - GtkAdjustment *adjustment5 = gtk_adjustment_new ( - config_probe_cur->wEstimatedVideoDelay, - config_probe_min.wEstimatedVideoDelay, - config_probe_max.wEstimatedVideoDelay, - 1, - 10, - 0); - - h264_controls->EstimatedVideoDelay = gtk_spin_button_new(adjustment5, 1, 0); - gtk_editable_set_editable(GTK_EDITABLE(h264_controls->EstimatedVideoDelay), TRUE); - - gtk_grid_attach (GTK_GRID(table), h264_controls->EstimatedVideoDelay, 1, line, 1 ,1); - gtk_widget_show (h264_controls->EstimatedVideoDelay); - - //wEstimatedMaxConfigDelay - line++; - GtkWidget* label_EstimatedMaxConfigDelay = gtk_label_new(_("Estimated Max Config Delay (ms):")); - gtk_misc_set_alignment (GTK_MISC (label_EstimatedMaxConfigDelay), 1, 0.5); - gtk_grid_attach (GTK_GRID(table), label_EstimatedMaxConfigDelay, 0, line, 1, 1); - gtk_widget_show (label_EstimatedMaxConfigDelay); - - GtkAdjustment *adjustment6 = gtk_adjustment_new ( - config_probe_cur->wEstimatedMaxConfigDelay, - config_probe_min.wEstimatedMaxConfigDelay, - config_probe_max.wEstimatedMaxConfigDelay, - 1, - 10, - 0); - - h264_controls->EstimatedMaxConfigDelay = gtk_spin_button_new(adjustment6, 1, 0); - gtk_editable_set_editable(GTK_EDITABLE(h264_controls->EstimatedMaxConfigDelay), TRUE); - - gtk_grid_attach (GTK_GRID(table), h264_controls->EstimatedMaxConfigDelay, 1, line, 1 ,1); - gtk_widget_show (h264_controls->EstimatedMaxConfigDelay); - - //bUsageType - line++; - GtkWidget* label_UsageType = gtk_label_new(_("Usage Type:")); - gtk_misc_set_alignment (GTK_MISC (label_UsageType), 1, 0.5); - gtk_grid_attach (GTK_GRID(table), label_UsageType, 0, line, 1, 1); - gtk_widget_show (label_UsageType); - - h264_controls->UsageType = gtk_combo_box_text_new(); - gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT(h264_controls->UsageType), - _("Real-time")); - gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT(h264_controls->UsageType), - _("Broadcast")); - gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT(h264_controls->UsageType), - _("Storage")); - gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT(h264_controls->UsageType), - _("(0) Non-scalable single layer AVC")); - gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT(h264_controls->UsageType), - _("(1) SVC temporal scalability with hierarchical P")); - gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT(h264_controls->UsageType), - _("(2q) SVC temporal scalability + Quality/SNR scalability")); - gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT(h264_controls->UsageType), - _("(2s) SVC temporal scalability + spatial scalability")); - gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT(h264_controls->UsageType), - _("(3) Full SVC scalability")); - - uint8_t usage = config_probe_cur->bUsageType & 0x0F; - int usage_index = usage - 1; // from 0x01 to 0x0F - if(usage_index < 0) - usage_index = 0; - - gtk_combo_box_set_active(GTK_COMBO_BOX(h264_controls->UsageType), usage_index); - - gtk_grid_attach (GTK_GRID(table), h264_controls->UsageType, 1, line, 1 ,1); - gtk_widget_show (h264_controls->UsageType); - - //bSNRScaleMode - line++; - GtkWidget* label_SNRScaleMode = gtk_label_new(_("SNR Control Mode:")); - gtk_misc_set_alignment (GTK_MISC (label_SNRScaleMode), 1, 0.5); - gtk_grid_attach (GTK_GRID(table), label_SNRScaleMode, 0, line, 1, 1); - gtk_widget_show (label_SNRScaleMode); - - h264_controls->SNRScaleMode = gtk_combo_box_text_new(); - gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT(h264_controls->SNRScaleMode), - _("No SNR Enhancement Layer")); - gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT(h264_controls->SNRScaleMode), - _("CGS NonRewrite (2 Layer)")); - gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT(h264_controls->SNRScaleMode), - _("CGS NonRewrite (3 Layer)")); - gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT(h264_controls->SNRScaleMode), - _("CGS Rewrite (2 Layer)")); - gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT(h264_controls->SNRScaleMode), - _("CGS Rewrite (3 Layer)")); - gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT(h264_controls->SNRScaleMode), - _("MGS (2 Layer)")); - - uint8_t snrscalemode = config_probe_cur->bSNRScaleMode & 0x0F; - int snrscalemode_index = 0; - switch(snrscalemode) - { - case 0: - snrscalemode_index = 0; - break; - case 2: - case 3: - case 4: - case 5: - case 6: - snrscalemode_index = snrscalemode - 1; - break; - } - gtk_combo_box_set_active(GTK_COMBO_BOX(h264_controls->SNRScaleMode), snrscalemode_index); - - gtk_grid_attach (GTK_GRID(table), h264_controls->SNRScaleMode, 1, line, 1 ,1); - gtk_widget_show (h264_controls->SNRScaleMode); - - //bStreamMuxOption - line++; - GtkWidget* StreamMuxOption_table = gtk_grid_new(); - h264_controls->StreamMuxOption = gtk_check_button_new_with_label (_("Stream Mux Enable")); - gtk_grid_attach (GTK_GRID(StreamMuxOption_table), h264_controls->StreamMuxOption, 0, 1, 1, 1); - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(h264_controls->StreamMuxOption),((config_probe_cur->bStreamMuxOption & 0x01) != 0)); - gtk_widget_show (h264_controls->StreamMuxOption); - - h264_controls->StreamMuxOption_aux = gtk_combo_box_text_new(); - gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT(h264_controls->StreamMuxOption_aux), - _("Embed H.264 aux stream")); - gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT(h264_controls->StreamMuxOption_aux), - _("Embed YUY2 aux stream")); - gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT(h264_controls->StreamMuxOption_aux), - _("Embed NV12 aux stream")); - - uint8_t streammux = config_probe_cur->bStreamMuxOption & 0x0E; - int streammux_index = 0; - switch(streammux) - { - case 2: - streammux_index = 0; - break; - case 4: - streammux_index = 1; - break; - case 8: - streammux_index = 2; - break; - } - gtk_combo_box_set_active(GTK_COMBO_BOX(h264_controls->StreamMuxOption_aux), streammux_index); - gtk_widget_show(h264_controls->StreamMuxOption_aux); - gtk_grid_attach (GTK_GRID(StreamMuxOption_table), h264_controls->StreamMuxOption_aux, 1, 1, 1, 1); - - h264_controls->StreamMuxOption_mjpgcontainer = gtk_check_button_new_with_label (_("MJPG payload container")); - gtk_grid_attach (GTK_GRID(StreamMuxOption_table), h264_controls->StreamMuxOption_mjpgcontainer, 2, 1, 1, 1); - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(h264_controls->StreamMuxOption_mjpgcontainer),((config_probe_cur->bStreamMuxOption & 0x40) != 0)); - gtk_widget_show (h264_controls->StreamMuxOption_mjpgcontainer); - - gtk_grid_attach (GTK_GRID(table), StreamMuxOption_table, 0, line, 2, 1); - gtk_widget_show(StreamMuxOption_table); - - gtk_widget_set_sensitive(h264_controls->StreamMuxOption, FALSE); //No support yet - gtk_widget_set_sensitive(h264_controls->StreamMuxOption_aux, FALSE); //No support yet - gtk_widget_set_sensitive(h264_controls->StreamMuxOption_mjpgcontainer, FALSE); //No support yet - - - //bStreamFormat - line++; - GtkWidget* label_StreamFormat = gtk_label_new(_("Stream Format:")); - gtk_misc_set_alignment (GTK_MISC (label_StreamFormat), 1, 0.5); - gtk_grid_attach (GTK_GRID(table), label_StreamFormat, 0, line, 1, 1); - gtk_widget_show (label_StreamFormat); - - h264_controls->StreamFormat = gtk_combo_box_text_new(); - //TODO: check for min and max values - gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT(h264_controls->StreamFormat), - _("Byte stream format (H.264 Annex-B)")); - gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT(h264_controls->StreamFormat), - _("NAL stream format")); - - uint8_t streamformat = config_probe_cur->bStreamFormat & 0x01; - int streamformat_index = streamformat; - gtk_combo_box_set_active(GTK_COMBO_BOX(h264_controls->StreamFormat), streamformat_index); - - gtk_grid_attach (GTK_GRID(table), h264_controls->StreamFormat, 1, line, 1 ,1); - gtk_widget_show (h264_controls->StreamFormat); - - //bEntropyCABAC - line++; - GtkWidget* label_EntropyCABAC = gtk_label_new(_("Entropy CABAC:")); - gtk_misc_set_alignment (GTK_MISC (label_EntropyCABAC), 1, 0.5); - gtk_grid_attach (GTK_GRID(table), label_EntropyCABAC, 0, line, 1, 1); - gtk_widget_show (label_EntropyCABAC); - - h264_controls->EntropyCABAC = gtk_combo_box_text_new(); - //TODO: check for min and max values - gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT(h264_controls->EntropyCABAC), - _("CAVLC")); - gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT(h264_controls->EntropyCABAC), - _("CABAC")); - - uint8_t entropycabac = config_probe_cur->bEntropyCABAC & 0x01; - int entropycabac_index = entropycabac; - gtk_combo_box_set_active(GTK_COMBO_BOX(h264_controls->EntropyCABAC), entropycabac_index); - - gtk_grid_attach (GTK_GRID(table), h264_controls->EntropyCABAC, 1, line, 1 ,1); - gtk_widget_show (h264_controls->EntropyCABAC); - - //bTimestamp - line++; - h264_controls->Timestamp = gtk_check_button_new_with_label (_("Picture timing SEI")); - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(h264_controls->Timestamp),((config_probe_cur->bTimestamp & 0x01) > 0)); - gtk_grid_attach (GTK_GRID(table), h264_controls->Timestamp, 1, line, 1 ,1); - gtk_widget_show (h264_controls->Timestamp); - - //bNumOfReorderFrames - line++; - GtkWidget* label_NumOfReorderFrames = gtk_label_new(_("B Frames:")); - gtk_misc_set_alignment (GTK_MISC (label_NumOfReorderFrames), 1, 0.5); - gtk_grid_attach (GTK_GRID(table), label_NumOfReorderFrames, 0, line, 1, 1); - gtk_widget_show (label_NumOfReorderFrames); - - cur_flags = config_probe_cur->bNumOfReorderFrames & 0x000000FF; - max_flags = config_probe_max.bNumOfReorderFrames & 0x000000FF; - min_flags = config_probe_min.bNumOfReorderFrames & 0x000000FF; - - GtkAdjustment *adjustment10 = gtk_adjustment_new ( - cur_flags, - min_flags, - max_flags, - 1, - 10, - 0); - - h264_controls->NumOfReorderFrames = gtk_spin_button_new(adjustment10, 1, 0); - gtk_editable_set_editable(GTK_EDITABLE(h264_controls->NumOfReorderFrames), TRUE); - - gtk_grid_attach (GTK_GRID(table), h264_controls->NumOfReorderFrames, 1, line, 1 ,1); - gtk_widget_show (h264_controls->NumOfReorderFrames); - - //bPreviewFlipped - line++; - h264_controls->PreviewFlipped = gtk_check_button_new_with_label (_("Preview Flipped")); - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(h264_controls->PreviewFlipped),((config_probe_cur->bPreviewFlipped & 0x01) > 0)); - gtk_grid_attach (GTK_GRID(table), h264_controls->PreviewFlipped, 1, line, 1 ,1); - gtk_widget_show (h264_controls->PreviewFlipped); - - //bView - line++; - GtkWidget* label_View = gtk_label_new(_("Additional MVC Views:")); - gtk_misc_set_alignment (GTK_MISC (label_View), 1, 0.5); - gtk_grid_attach (GTK_GRID(table), label_View, 0, line, 1, 1); - gtk_widget_show (label_View); - - cur_flags = config_probe_cur->bView & 0x000000FF; - max_flags = config_probe_max.bView & 0x000000FF; - min_flags = config_probe_min.bView & 0x000000FF; - - GtkAdjustment *adjustment11 = gtk_adjustment_new ( - cur_flags, - min_flags, - max_flags, - 1, - 10, - 0); - - h264_controls->View = gtk_spin_button_new(adjustment11, 1, 0); - gtk_editable_set_editable(GTK_EDITABLE(h264_controls->View), TRUE); - - gtk_grid_attach (GTK_GRID(table), h264_controls->View, 1, line, 1 ,1); - gtk_widget_show (h264_controls->View); - - //bStreamID - line++; - GtkWidget* label_StreamID = gtk_label_new(_("Simulcast stream index:")); - gtk_misc_set_alignment (GTK_MISC (label_StreamID), 1, 0.5); - gtk_grid_attach (GTK_GRID(table), label_StreamID, 0, line, 1, 1); - gtk_widget_show (label_StreamID); - - cur_flags = config_probe_cur->bStreamID & 0x000000FF; - max_flags = config_probe_max.bStreamID & 0x000000FF; - min_flags = config_probe_min.bStreamID & 0x000000FF; - - GtkAdjustment *adjustment12 = gtk_adjustment_new ( - cur_flags, - min_flags, - max_flags, - 1, - 10, - 0); - - h264_controls->StreamID = gtk_spin_button_new(adjustment12, 1, 0); - gtk_editable_set_editable(GTK_EDITABLE(h264_controls->StreamID), TRUE); - - gtk_grid_attach (GTK_GRID(table), h264_controls->StreamID, 1, line, 1 ,1); - gtk_widget_show (h264_controls->StreamID); - - //bSpatialLayerRatio - line++; - GtkWidget* label_SpatialLayerRatio = gtk_label_new(_("Spatial Layer Ratio:")); - gtk_misc_set_alignment (GTK_MISC (label_SpatialLayerRatio), 1, 0.5); - gtk_grid_attach (GTK_GRID(table), label_SpatialLayerRatio, 0, line, 1, 1); - gtk_widget_show (label_SpatialLayerRatio); - - cur_flags = config_probe_cur->bSpatialLayerRatio & 0x000000FF; - max_flags = config_probe_max.bSpatialLayerRatio & 0x000000FF; - min_flags = config_probe_min.bSpatialLayerRatio & 0x000000FF; - - gdouble cur = (gdouble) ((cur_flags & 0x000000F0)>>4) + (gdouble)((cur_flags & 0x0000000F)/16); - gdouble min = (gdouble) ((min_flags & 0x000000F0)>>4) + (gdouble)((min_flags & 0x0000000F)/16); - gdouble max = (gdouble) ((max_flags & 0x000000F0)>>4) + (gdouble)((max_flags & 0x0000000F)/16); - - GtkAdjustment *adjustment13 = gtk_adjustment_new ( - cur, - min, - max, - 0.1, - 1, - 1); - - h264_controls->SpatialLayerRatio = gtk_spin_button_new(adjustment13, 1, 0); - gtk_editable_set_editable(GTK_EDITABLE(h264_controls->SpatialLayerRatio), TRUE); - - gtk_grid_attach (GTK_GRID(table), h264_controls->SpatialLayerRatio, 1, line, 1 ,1); - gtk_widget_show (h264_controls->SpatialLayerRatio); - - //wLeakyBucketSize - line++; - GtkWidget* label_LeakyBucketSize = gtk_label_new(_("Leaky Bucket Size (ms):")); - gtk_misc_set_alignment (GTK_MISC (label_LeakyBucketSize), 1, 0.5); - gtk_grid_attach (GTK_GRID(table), label_LeakyBucketSize, 0, line, 1, 1); - gtk_widget_show (label_LeakyBucketSize); - - cur_flags = config_probe_cur->wLeakyBucketSize; - max_flags = config_probe_max.wLeakyBucketSize; - min_flags = config_probe_min.wLeakyBucketSize; - - GtkAdjustment *adjustment14 = gtk_adjustment_new ( - cur_flags, - min_flags, - max_flags, - 1, - 10, - 0); - - h264_controls->LeakyBucketSize = gtk_spin_button_new(adjustment14, 1, 0); - gtk_editable_set_editable(GTK_EDITABLE(h264_controls->LeakyBucketSize), TRUE); - - gtk_grid_attach (GTK_GRID(table), h264_controls->LeakyBucketSize, 1, line, 1 ,1); - gtk_widget_show (h264_controls->LeakyBucketSize); - - //PROBE COMMIT buttons - line++; - - //encoder reset - GtkWidget *reset_button = gtk_button_new_with_label(_("Encoder Reset")); - g_signal_connect (GTK_BUTTON(reset_button), "clicked", - G_CALLBACK (h264_reset_button_clicked), all_data); - - gtk_grid_attach (GTK_GRID(table), reset_button, 0, line, 1 ,1); - gtk_widget_show(reset_button); - -/* - h264_controls->probe_button = gtk_button_new_with_label(_("PROBE")); - g_signal_connect (GTK_BUTTON(h264_controls->probe_button), "clicked", - G_CALLBACK (h264_probe_button_clicked), all_data); - - gtk_grid_attach (GTK_GRID(table), h264_controls->probe_button, 0, line, 1 ,1); - gtk_widget_show(h264_controls->probe_button); -*/ - h264_controls->commit_button = gtk_button_new_with_label(_("COMMIT")); - g_signal_connect (GTK_BUTTON(h264_controls->commit_button), "clicked", - G_CALLBACK (h264_commit_button_clicked), all_data); - - gtk_grid_attach (GTK_GRID(table), h264_controls->commit_button, 1, line, 1 ,1); - gtk_widget_show(h264_controls->commit_button); - - gtk_widget_show(table); - -} - -/* get the unit id for GUID_UVCX_H264_XU by using libusb */ -uint8_t xu_get_unit_id (uint64_t busnum, uint64_t devnum) -{ - /* use libusb */ - libusb_context *usb_ctx = NULL; - libusb_device **device_list = NULL; - libusb_device *device = NULL; - ssize_t cnt; - int i, j, k; - - static const uint8_t guid[16] = GUID_UVCX_H264_XU; - uint8_t unit = 0; - - if (usb_ctx == NULL) - libusb_init (&usb_ctx); - - cnt = libusb_get_device_list (usb_ctx, &device_list); - for (i = 0; i < cnt; i++) - { - uint64_t dev_busnum = libusb_get_bus_number (device_list[i]); - uint64_t dev_devnum = libusb_get_device_address (device_list[i]); - if (busnum == dev_busnum && devnum == dev_devnum) - { - device = libusb_ref_device (device_list[i]); - break; - } - } - - libusb_free_device_list (device_list, 1); - - if (device) - { - struct libusb_device_descriptor desc; - - if (libusb_get_device_descriptor (device, &desc) == 0) - { - for (i = 0; i < desc.bNumConfigurations; ++i) - { - struct libusb_config_descriptor *config = NULL; - - if (libusb_get_config_descriptor (device, i, &config) == 0) - { - for (j = 0; j < config->bNumInterfaces; j++) - { - for (k = 0; k < config->interface[j].num_altsetting; k++) - { - const struct libusb_interface_descriptor *interface; - const guint8 *ptr = NULL; - - interface = &config->interface[j].altsetting[k]; - if (interface->bInterfaceClass != LIBUSB_CLASS_VIDEO || - interface->bInterfaceSubClass != USB_VIDEO_CONTROL) - continue; - ptr = interface->extra; - while (ptr - interface->extra + - sizeof (xu_descriptor) < interface->extra_length) - { - xu_descriptor *desc = (xu_descriptor *) ptr; - - if (desc->bDescriptorType == USB_VIDEO_CONTROL_INTERFACE && - desc->bDescriptorSubType == USB_VIDEO_CONTROL_XU_TYPE && - memcmp (desc->guidExtensionCode, guid, 16) == 0) - { - uint8_t unit_id = desc->bUnitID; - - libusb_unref_device (device); - return unit_id; - } - ptr += desc->bLength; - } - } - } - } - else - fprintf(stderr,"libusb: couldn't get config descriptor for configuration %i\n", i); - } - } - else - fprintf(stderr,"libusb: couldn't get device descriptor"); - libusb_unref_device (device); - } - - return unit; -} - -/* - * check for uvc h264 support by querying UVCX_VERSION - * although geting a unit id > 0 from xu_get_unit_id - * should be enought - */ -int has_h264_support(int hdevice, uint8_t unit_id) -{ - if(unit_id <= 0) - { - g_printerr("device doesn't seem to support uvc H264 (%i)\n", unit_id); - return 0; - } - - uvcx_version_t uvcx_version; - - if(query_xu_control(hdevice, unit_id, UVCX_VERSION, UVC_GET_CUR, &uvcx_version) < 0) - { - g_printerr("device doesn't seem to support uvc H264 in unit_id %d\n", unit_id); - return 0; - } - - printf("device seems to support uvc H264 (version: %d) in unit_id %d\n", uvcx_version.wVersion, unit_id); - return 1; - -} - -/* - * called if uvc h264 is supported - * adds h264 to the format list - */ -void check_uvc_h264_format(struct vdIn *vd, struct GLOBAL *global) -{ - printf("checking muxed H264 format support\n"); - if(get_FormatIndex(vd->listFormats, V4L2_PIX_FMT_H264) >= 0) - return; //H264 is already in the list - - if(!has_h264_support(vd->fd, global->uvc_h264_unit)) - return; //no XU support for H264 - - //add the format to the list - int mjpg_index = get_FormatIndex(vd->listFormats, V4L2_PIX_FMT_MJPEG); - if(mjpg_index < 0) //MJPG must be available for uvc H264 streams - return; - - printf("adding muxed H264 format\n"); - set_SupPixFormatUvcH264(); - - vd->listFormats->numb_formats++; //increment number of formats - int fmtind = vd->listFormats->numb_formats; - - vd->listFormats->listVidFormats = g_renew(VidFormats, vd->listFormats->listVidFormats, fmtind); - vd->listFormats->listVidFormats[fmtind-1].format = V4L2_PIX_FMT_H264; - g_snprintf(vd->listFormats->listVidFormats[fmtind-1].fourcc ,5,"H264"); - vd->listFormats->listVidFormats[fmtind-1].listVidCap = NULL; - vd->listFormats->listVidFormats[fmtind-1].numb_res = 0; - - - //add MJPG resolutions and frame rates for H264 - int numb_res = vd->listFormats->listVidFormats[mjpg_index].numb_res; - - int i=0, j=0; - int res_index = 0; - for(i=0; i < numb_res; i++) - { - int width = vd->listFormats->listVidFormats[mjpg_index].listVidCap[i].width; - int height = vd->listFormats->listVidFormats[mjpg_index].listVidCap[i].height; - - res_index++; - vd->listFormats->listVidFormats[fmtind-1].listVidCap = g_renew(VidCap, - vd->listFormats->listVidFormats[fmtind-1].listVidCap, res_index); - vd->listFormats->listVidFormats[fmtind-1].numb_res = res_index; - vd->listFormats->listVidFormats[fmtind-1].listVidCap[res_index-1].width = width; - vd->listFormats->listVidFormats[fmtind-1].listVidCap[res_index-1].height = height; - vd->listFormats->listVidFormats[fmtind-1].listVidCap[res_index-1].framerate_num = NULL; - vd->listFormats->listVidFormats[fmtind-1].listVidCap[res_index-1].framerate_denom = NULL; - vd->listFormats->listVidFormats[fmtind-1].listVidCap[res_index-1].numb_frates = 0; - - //add frates - int numb_frates = vd->listFormats->listVidFormats[mjpg_index].listVidCap[i].numb_frates; - int frate_index = 0; - for(j=0; j < numb_frates; j++) - { - int framerate_num = vd->listFormats->listVidFormats[mjpg_index].listVidCap[i].framerate_num[j]; - int framerate_denom = vd->listFormats->listVidFormats[mjpg_index].listVidCap[i].framerate_denom[j]; - - frate_index++; - vd->listFormats->listVidFormats[fmtind-1].listVidCap[res_index-1].numb_frates = frate_index; - vd->listFormats->listVidFormats[fmtind-1].listVidCap[res_index-1].framerate_num = g_renew(int, - vd->listFormats->listVidFormats[fmtind-1].listVidCap[res_index-1].framerate_num, frate_index); - vd->listFormats->listVidFormats[fmtind-1].listVidCap[res_index-1].framerate_num[frate_index-1] = framerate_num; - vd->listFormats->listVidFormats[fmtind-1].listVidCap[res_index-1].framerate_denom = g_renew(int, - vd->listFormats->listVidFormats[fmtind-1].listVidCap[res_index-1].framerate_denom, frate_index); - vd->listFormats->listVidFormats[fmtind-1].listVidCap[res_index-1].framerate_denom[frate_index-1] = framerate_denom; - } - } -} - -void set_muxed_h264_format(struct vdIn *vd, struct GLOBAL *global) -{ - uvcx_video_config_probe_commit_t *config_probe_req = &(vd->h264_config_probe_req); - - /* reset the encoder*/ - uvcx_video_encoder_reset(vd->fd, global->uvc_h264_unit); - - /* - * Get default values (safe) - */ - uvcx_video_probe(vd->fd, global->uvc_h264_unit, UVC_GET_DEF, config_probe_req); - - //set resolution - config_probe_req->wWidth = global->width; - config_probe_req->wHeight = global->height; - //set frame rate in 100ns units - uint32_t frame_interval = (global->fps_num * 1000000000LL / global->fps)/100; - config_probe_req->dwFrameInterval = frame_interval; - //printf("requesting frame interval of: %i\n",frame_interval); - //set the aux stream (h264) - config_probe_req->bStreamMuxOption = STREAMMUX_H264; - - //probe the format - uvcx_video_probe(vd->fd, global->uvc_h264_unit, UVC_SET_CUR, config_probe_req); - uvcx_video_probe(vd->fd, global->uvc_h264_unit, UVC_GET_CUR, config_probe_req); - - if(config_probe_req->wWidth != global->width) - { - fprintf(stderr, "H264 config probe: requested width %i but got %i\n", - global->width, config_probe_req->wWidth); - - global->width = config_probe_req->wWidth; - } - if(config_probe_req->wHeight != global->height) - { - fprintf(stderr, "H264 config probe: requested height %i but got %i\n", - global->height, config_probe_req->wHeight); - - global->height = config_probe_req->wHeight; - } - if(config_probe_req->dwFrameInterval != frame_interval) - { - fprintf(stderr, "H264 config probe: requested frame interval %i but got %i\n", - frame_interval, config_probe_req->dwFrameInterval); - } - //commit the format - uvcx_video_commit(vd->fd, global->uvc_h264_unit, config_probe_req); - print_probe_commit_data(config_probe_req); -} - -int uvcx_video_probe(int hdevice, uint8_t unit_id, uint8_t query, uvcx_video_config_probe_commit_t *uvcx_video_config) -{ - int err = 0; - - - if((err = query_xu_control(hdevice, unit_id, UVCX_VIDEO_CONFIG_PROBE, query, uvcx_video_config)) < 0) - { - perror("UVCX_VIDEO_CONFIG_PROBE error"); - return err; - } - - return err; -} - -int uvcx_video_commit(int hdevice, uint8_t unit_id, uvcx_video_config_probe_commit_t *uvcx_video_config) -{ - int err = 0; - - if((err = query_xu_control(hdevice, unit_id, UVCX_VIDEO_CONFIG_COMMIT, UVC_SET_CUR, uvcx_video_config)) < 0) - { - perror("UVCX_VIDEO_CONFIG_COMMIT error"); - return err; - } - - return err; -} - -int uvcx_video_encoder_reset(int hdevice, uint8_t unit_id) -{ - uvcx_encoder_reset encoder_reset_req = {0}; - - int err = 0; - - if((err = query_xu_control(hdevice, unit_id, UVCX_ENCODER_RESET, UVC_SET_CUR, &encoder_reset_req)) < 0) - { - perror("UVCX_ENCODER_RESET error"); - } - - return err; -} - -uint8_t uvcx_get_video_rate_control_mode(int hdevice, uint8_t unit_id, uint8_t query) -{ - uvcx_rate_control_mode_t rate_control_mode_req; - rate_control_mode_req.wLayerID = 0; - - int err = 0; - - if((err = query_xu_control(hdevice, unit_id, UVCX_RATE_CONTROL_MODE, query, &rate_control_mode_req)) < 0) - { - perror("UVCX_RATE_CONTROL_MODE: query error"); - return err; - } - - return rate_control_mode_req.bRateControlMode; -} - -int uvcx_set_video_rate_control_mode(int hdevice, uint8_t unit_id, uint8_t rate_mode) -{ - uvcx_rate_control_mode_t rate_control_mode_req; - rate_control_mode_req.wLayerID = 0; - rate_control_mode_req.bRateControlMode = rate_mode; - - int err = 0; - - if((err = query_xu_control(hdevice, unit_id, UVCX_RATE_CONTROL_MODE, UVC_SET_CUR, &rate_control_mode_req)) < 0) - { - perror("UVCX_ENCODER_RESET: SET_CUR error"); - } - - return err; -} - -uint8_t uvcx_get_temporal_scale_mode(int hdevice, uint8_t unit_id, uint8_t query) -{ - uvcx_temporal_scale_mode_t temporal_scale_mode_req; - temporal_scale_mode_req.wLayerID = 0; - - int err = 0; - - if((err = query_xu_control(hdevice, unit_id, UVCX_TEMPORAL_SCALE_MODE, query, &temporal_scale_mode_req)) < 0) - { - perror("UVCX_TEMPORAL_SCALE_MODE: query error"); - return err; - } - - return temporal_scale_mode_req.bTemporalScaleMode; -} - -int uvcx_set_temporal_scale_mode(int hdevice, uint8_t unit_id, uint8_t scale_mode) -{ - uvcx_temporal_scale_mode_t temporal_scale_mode_req; - temporal_scale_mode_req.wLayerID = 0; - temporal_scale_mode_req.bTemporalScaleMode = scale_mode; - - int err = 0; - - if((err = query_xu_control(hdevice, unit_id, UVCX_TEMPORAL_SCALE_MODE, UVC_SET_CUR, &temporal_scale_mode_req)) < 0) - { - perror("UVCX_TEMPORAL_SCALE_MODE: SET_CUR error"); - } - - return err; -} - -uint8_t uvcx_get_spatial_scale_mode(int hdevice, uint8_t unit_id, uint8_t query) -{ - uvcx_spatial_scale_mode_t spatial_scale_mode_req; - spatial_scale_mode_req.wLayerID = 0; - - int err = 0; - - if((err = query_xu_control(hdevice, unit_id, UVCX_SPATIAL_SCALE_MODE, query, &spatial_scale_mode_req)) < 0) - { - perror("UVCX_SPATIAL_SCALE_MODE: query error"); - return err; - } - - return spatial_scale_mode_req.bSpatialScaleMode; -} - -int uvcx_set_spatial_scale_mode(int hdevice, uint8_t unit_id, uint8_t scale_mode) -{ - uvcx_spatial_scale_mode_t spatial_scale_mode_req; - spatial_scale_mode_req.wLayerID = 0; - spatial_scale_mode_req.bSpatialScaleMode = scale_mode; - - int err = 0; - - if((err = query_xu_control(hdevice, unit_id, UVCX_SPATIAL_SCALE_MODE, UVC_SET_CUR, &spatial_scale_mode_req)) < 0) - { - perror("UVCX_SPATIAL_SCALE_MODE: SET_CUR error"); - } - - return err; -} - -int uvcx_request_frame_type(int hdevice, uint8_t unit_id, uint16_t type) -{ - uvcx_picture_type_control_t picture_type_req; - picture_type_req.wLayerID = 0; - picture_type_req.wPicType = type; - - int err = 0; - - if((err = query_xu_control(hdevice, unit_id, UVCX_PICTURE_TYPE_CONTROL, UVC_SET_CUR, &picture_type_req)) < 0) - { - perror("UVCX_PICTURE_TYPE_CONTROL: SET_CUR error"); - } - - return err; - -} - -uint32_t uvcx_get_frame_rate_config(int hdevice, uint8_t unit_id, uint8_t query) -{ - uvcx_framerate_config_t framerate_req; - framerate_req.wLayerID = 0; - - int err = 0; - - if((err = query_xu_control(hdevice, unit_id, UVCX_FRAMERATE_CONFIG, query, &framerate_req)) < 0) - { - perror("UVCX_FRAMERATE_CONFIG: query error"); - return err; - } - - return framerate_req.dwFrameInterval; -} - -int uvcx_set_frame_rate_config(int hdevice, uint8_t unit_id, uint32_t framerate) -{ - uvcx_framerate_config_t framerate_req; - framerate_req.wLayerID = 0; - framerate_req.dwFrameInterval = framerate; - - int err = 0; - - if((err = query_xu_control(hdevice, unit_id, UVCX_FRAMERATE_CONFIG, UVC_SET_CUR, &framerate_req)) < 0) - { - perror("UVCX_FRAMERATE_CONFIG: SET_CUR error"); - } - - return err; -} - -/* - * must be called with the global mutex locked. - * called from the consumer loop. - */ -int h264_framerate_balance(struct ALL_DATA *all_data) -{ - struct GLOBAL *global = all_data->global; - struct vdIn *videoIn = all_data->videoIn; - struct uvc_h264_gtkcontrols *h264_controls = all_data->h264_controls; - - int err = 0; - int diff_ind = 0; - //get max frame interval from gtk control if available (avoids usb traffic) - uint32_t min_frameinterval = 333333; //30 fps - uint32_t max_frameinterval = 1000000; //10 fps - if(h264_controls && h264_controls->FrameInterval) - { - double min = 0, max= 0; - gtk_spin_button_get_range(GTK_SPIN_BUTTON(h264_controls->FrameInterval), &min, &max); - if(min > 0) - min_frameinterval = (uint32_t) lround(min); - } - else - min_frameinterval = uvcx_get_frame_rate_config(videoIn->fd, global->uvc_h264_unit, UVC_GET_MIN); - - //get current framerate - uint32_t frameinterval = uvcx_get_frame_rate_config(videoIn->fd, global->uvc_h264_unit, UVC_GET_CUR); - - /* try to balance buffer overrun in read/write operations */ - if(global->w_ind >= global->r_ind) - diff_ind = global->w_ind - global->r_ind; - else - diff_ind = (global->video_buff_size - global->r_ind) + global->w_ind; - - //min_treshold = 65% - int th_min = (int) lround((double) global->video_buff_size * 0.65); - //max treshold = 85% - int th_max = (int) lround((double) global->video_buff_size * 0.85); - - if(diff_ind > th_max ) /* reduce current fps by 5 */ - { - frameinterval = (uint32_t) lround((double) 1E9 * frameinterval / (1E9 - 5*100*frameinterval)); - if(frameinterval < min_frameinterval) - frameinterval = min_frameinterval; - - err = uvcx_set_frame_rate_config(videoIn->fd, global->uvc_h264_unit, frameinterval); - } - else if(diff_ind < th_min) /* increase fps by 5 */ - { - frameinterval = (uint32_t) lround((double) 1E9 * frameinterval / (1E9 + 5*100*frameinterval)); - if(frameinterval > max_frameinterval) - frameinterval = max_frameinterval; - - err = uvcx_set_frame_rate_config(videoIn->fd, global->uvc_h264_unit, frameinterval); - } - - return err; -} diff -Nru guvcview-1.7.3/src/uvc_h264.h guvcview-2.0.1+ubuntu1~ppa1/src/uvc_h264.h --- guvcview-1.7.3/src/uvc_h264.h 2014-03-24 22:56:28.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/src/uvc_h264.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,295 +0,0 @@ -/*******************************************************************************# -# guvcview http://guvcview.sourceforge.net # -# # -# Paulo Assis # -# # -# This program is free software; you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation; either version 2 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program; if not, write to the Free Software # -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# # -********************************************************************************/ - -#ifndef UVC_H264_H -#define UVC_H264_H - -#include -#include -#include - -#include - -#include "defs.h" -#include "v4l2uvc.h" -#include "globals.h" -#include "guvcview.h" - -// GUID of the UVC H.264 extension unit: {A29E7641-DE04-47E3-8B2B-F4341AFF003B} -#define GUID_UVCX_H264_XU {0x41, 0x76, 0x9E, 0xA2, 0x04, 0xDE, 0xE3, 0x47, 0x8B, 0x2B, 0xF4, 0x34, 0x1A, 0xFF, 0x00, 0x3B} - -typedef struct -{ - int8_t bLength; - int8_t bDescriptorType; - int8_t bDescriptorSubType; - int8_t bUnitID; - uint8_t guidExtensionCode[16]; -} __attribute__ ((__packed__)) xu_descriptor; - -/* UVC H.264 control selectors */ -#define UVCX_VIDEO_CONFIG_PROBE 0x01 -#define UVCX_VIDEO_CONFIG_COMMIT 0x02 -#define UVCX_RATE_CONTROL_MODE 0x03 -#define UVCX_TEMPORAL_SCALE_MODE 0x04 -#define UVCX_SPATIAL_SCALE_MODE 0x05 -#define UVCX_SNR_SCALE_MODE 0x06 -#define UVCX_LTR_BUFFER_SIZE_CONTROL 0x07 -#define UVCX_LTR_PICTURE_CONTROL 0x08 -#define UVCX_PICTURE_TYPE_CONTROL 0x09 -#define UVCX_VERSION 0x0A -#define UVCX_ENCODER_RESET 0x0B -#define UVCX_FRAMERATE_CONFIG 0x0C -#define UVCX_VIDEO_ADVANCE_CONFIG 0x0D -#define UVCX_BITRATE_LAYERS 0x0E -#define UVCX_QP_STEPS_LAYERS 0x0F - -/* bmHints defines */ -#define BMHINTS_RESOLUTION 0x0001 -#define BMHINTS_PROFILE 0x0002 -#define BMHINTS_RATECONTROL 0x0004 -#define BMHINTS_USAGE 0x0008 -#define BMHINTS_SLICEMODE 0x0010 -#define BMHINTS_SLICEUNITS 0x0020 -#define BMHINTS_MVCVIEW 0x0040 -#define BMHINTS_TEMPORAL 0x0080 -#define BMHINTS_SNR 0x0100 -#define BMHINTS_SPATIAL 0x0200 -#define BMHINTS_SPATIAL_RATIO 0x0400 -#define BMHINTS_FRAME_INTERVAL 0x0800 -#define BMHINTS_LEAKY_BKT_SIZE 0x1000 -#define BMHINTS_BITRATE 0x2000 -#define BMHINTS_ENTROPY 0x4000 -#define BMHINTS_IFRAMEPERIOD 0x8000 - -/* wSliceMode defines */ -#define SLICEMODE_BITSPERSLICE 0x0001 -#define SLICEMODE_MBSPERSLICE 0x0002 -#define SLICEMODE_SLICEPERFRAME 0x0003 - -/*********************************************************************************************************************** -* bUsageType defines -* The bUsageType used in Probe/Commit structure. The UCCONFIG parameters are based on "UCConfig Modes v1.1". -* bUsageType UCConfig Description -* 4 0 Non-scalable single layer AVC bitstream with simulcast(number of simulcast streams>=1) -* 5 1 SVC temporal scalability with hierarchical P with simulcast(number of simulcast streams>=1) -* 6 2q SVC temporal scalability + Quality/SNR scalability with simulcast(number of simulcast streams>=1) -* 7 2s SVC temporal scalability + spatial scalability with simulcast(number of simulcast streams>=1) -* 8 3 Full SVC scalability (temporal scalability + SNR scalability + spatial scalability) -* with simulcast(number of simulcast streams>=1) -************************************************************************************************************************/ - -#define USAGETYPE_REALTIME 0x01 -#define USAGETYPE_BROADCAST 0x02 -#define USAGETYPE_STORAGE 0x03 -#define USAGETYPE_UCCONFIG_0 0x04 -#define USAGETYPE_UCCONFIG_1 0x05 -#define USAGETYPE_UCCONFIG_2Q 0x06 -#define USAGETYPE_UCCONFIG_2S 0x07 -#define USAGETYPE_UCCONFIG_3 0x08 - -/* bRateControlMode defines */ -#define RATECONTROL_CBR 0x01 -#define RATECONTROL_VBR 0x02 -#define RATECONTROL_CONST_QP 0x03 -#define RATECONTROL_FIXED_FRM_FLG 0x10 - -/* bStreamFormat defines */ -#define STREAMFORMAT_ANNEXB 0x00 -#define STREAMFORMAT_NAL 0x01 - -/* bEntropyCABAC defines */ -#define ENTROPY_CAVLC 0x00 -#define ENTROPY_CABAC 0x01 - -/* bTimingstamp defines */ -#define TIMESTAMP_SEI_DISABLE 0x00 -#define TIMESTAMP_SEI_ENABLE 0x01 - -/* bPreviewFlipped defines */ -#define PREFLIPPED_DISABLE 0x00 -#define PREFLIPPED_HORIZONTAL 0x01 - -/* wPictureType defines */ -#define PICTURE_TYPE_IFRAME 0x0000 //Generate an IFRAME -#define PICTURE_TYPE_IDR 0x0001 //Generate an IDR -#define PICTURE_TYPE_IDR_FULL 0x0002 //Generate an IDR frame with new SPS and PPS - -/* bStreamMuxOption defines */ -#define STREAMMUX_H264 (1 << 0) | (1 << 1) -#define STREAMMUX_YUY2 (1 << 0) | (1 << 2) -#define STREAMMUX_YUYV (1 << 0) | (1 << 2) -#define STREAMMUX_NV12 (1 << 0) | (1 << 3) - -/* wLayerID Macro */ - -/* wLayerID - |------------+------------+------------+----------------+------------| - | Reserved | StreamID | QualityID | DependencyID | TemporalID | - | (3 bits) | (3 bits) | (3 bits) | (4 bits) | (3 bits) | - |------------+------------+------------+----------------+------------| - |15 13|12 10|9 7|6 3|2 0| - |------------+------------+------------+----------------+------------| -*/ - -#define xLayerID(stream_id, quality_id, dependency_id, temporal_id) ((((stream_id)&7)<<10)|(((quality_id)&7)<<7)|(((dependency_id)&15)<<3)|((temporal_id)&7)) - -/* id extraction from wLayerID */ -#define xStream_id(layer_id) (((layer_id)>>10)&7) -#define xQuality_id(layer_id) (((layer_id)>>7)&7) -#define xDependency_id(layer_id) (((layer_id)>>3)&15) -#define xTemporal_id(layer_id) ((layer_id)&7) - -/* h264 probe commit struct (defined in v4l2uvc.h) */ - -/* rate control */ -typedef struct _uvcx_rate_control_mode_t -{ - WORD wLayerID; - BYTE bRateControlMode; -} __attribute__((__packed__)) uvcx_rate_control_mode_t; - -/* temporal scale */ -typedef struct _uvcx_temporal_scale_mode_t -{ - WORD wLayerID; - BYTE bTemporalScaleMode; -} __attribute__((__packed__)) uvcx_temporal_scale_mode_t; - -/* spatial scale mode */ -typedef struct _uvcx_spatial_scale_mode_t -{ - WORD wLayerID; - BYTE bSpatialScaleMode; -} __attribute__((__packed__)) uvcx_spatial_scale_mode_t; - -/* snr scale mode */ -typedef struct _uvcx_snr_scale_mode_t -{ - WORD wLayerID; - BYTE bSNRScaleMode; - BYTE bMGSSublayerMode; -} __attribute__((__packed__)) uvcx_snr_scale_mode_t; - -/* buffer size control*/ -typedef struct _uvcx_ltr_buffer_size_control_t -{ - WORD wLayerID; - BYTE bLTRBufferSize; - BYTE bLTREncoderControl; -} __attribute__((__packed__)) uvcx_ltr_buffer_size_control_t; - -/* ltr picture control */ -typedef struct _uvcx_ltr_picture_control -{ - WORD wLayerID; - BYTE bPutAtPositionInLTRBuffer; - BYTE bEncodeUsingLTR; -} __attribute__((__packed__)) uvcx_ltr_picture_control; - -/* picture type control */ -typedef struct _uvcx_picture_type_control_t -{ - WORD wLayerID; - WORD wPicType; -} __attribute__((__packed__)) uvcx_picture_type_control_t; - -/* version */ -typedef struct _uvcx_version_t -{ - WORD wVersion; -} __attribute__((__packed__)) uvcx_version_t; - -/* encoder reset */ -typedef struct _uvcx_encoder_reset -{ - WORD wLayerID; -} __attribute__((__packed__)) uvcx_encoder_reset; - -/* frame rate */ -typedef struct _uvcx_framerate_config_t -{ - WORD wLayerID; - DWORD dwFrameInterval; -} __attribute__((__packed__)) uvcx_framerate_config_t; - -/* advance config */ -typedef struct _uvcx_video_advance_config_t -{ - WORD wLayerID; - DWORD dwMb_max; - BYTE blevel_idc; - BYTE bReserved; -} __attribute__((__packed__)) uvcx_video_advance_config_t; - -/* bit rate */ -typedef struct _uvcx_bitrate_layers_t -{ - WORD wLayerID; - DWORD dwPeakBitrate; - DWORD dwAverageBitrate; -} __attribute__((__packed__)) uvcx_bitrate_layers_t; - -/* qp steps */ -typedef struct _uvcx_qp_steps_layers_t -{ - WORD wLayerID; - BYTE bFrameType; - BYTE bMinQp; - BYTE bMaxQp; -} __attribute__((__packed__)) uvcx_qp_steps_layers_t; - - -/* - * creates the control widgets for uvc H264 - */ -void add_uvc_h264_controls_tab (struct ALL_DATA* all_data); - -uint8_t xu_get_unit_id (uint64_t busnum, uint64_t devnum); -int has_h264_support(int hdevice, uint8_t unit_id); -/* - * determines and sets a resonable framerate - * for the h264 stream depending on the video capture - * circular buffer usage - */ -int h264_framerate_balance(struct ALL_DATA *all_data); - -void check_uvc_h264_format(struct vdIn *vd, struct GLOBAL *global); -void set_muxed_h264_format(struct vdIn *vd, struct GLOBAL *global); -/* - * probe/commit h264 controls (video stream must be off) - */ -void h264_probe(struct ALL_DATA *data); -void h264_commit(struct vdIn *vd, struct GLOBAL *global); - -int uvcx_video_probe(int hdevice, uint8_t unit_id, uint8_t query, uvcx_video_config_probe_commit_t *uvcx_video_config); -int uvcx_video_commit(int hdevice, uint8_t unit_id, uvcx_video_config_probe_commit_t *uvcx_video_config); -int uvcx_video_encoder_reset(int hdevice, uint8_t unit_id); -uint8_t uvcx_get_video_rate_control_mode(int hdevice, uint8_t unit_id, uint8_t query); -int uvcx_set_video_rate_control_mode(int hdevice, uint8_t unit_id, uint8_t rate_mode); -uint8_t uvcx_get_temporal_scale_mode(int hdevice, uint8_t unit_id, uint8_t query); -int uvcx_set_temporal_scale_mode(int hdevice, uint8_t unit_id, uint8_t scale_mode); -uint8_t uvcx_get_spatial_scale_mode(int hdevice, uint8_t unit_id, uint8_t query); -int uvcx_set_spatial_scale_mode(int hdevice, uint8_t unit_id, uint8_t scale_mode); -int uvcx_request_frame_type(int hdevice, uint8_t unit_id, uint16_t type); -uint32_t uvcx_get_frame_rate_config(int hdevice, uint8_t unit_id, uint8_t query); -int uvcx_set_frame_rate_config(int hdevice, uint8_t unit_id, uint32_t framerate); -#endif /*UVC_H264_H*/ diff -Nru guvcview-1.7.3/src/v4l2_controls.c guvcview-2.0.1+ubuntu1~ppa1/src/v4l2_controls.c --- guvcview-1.7.3/src/v4l2_controls.c 2014-03-24 22:56:28.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/src/v4l2_controls.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,1615 +0,0 @@ -/*******************************************************************************# -# guvcview http://guvcview.sourceforge.net # -# # -# Paulo Assis # -# # -# This program is free software; you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation; either version 2 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program; if not, write to the Free Software # -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# # -********************************************************************************/ - -#include -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include - -#include "v4l2uvc.h" -#include "string_utils.h" -#include "v4l2_controls.h" -#include "v4l2_dyna_ctrls.h" -#include "callbacks.h" - -#ifndef V4L2_CTRL_ID2CLASS -#define V4L2_CTRL_ID2CLASS(id) ((id) & 0x0fff0000UL) -#endif - -/* - * don't use xioctl for control query when using V4L2_CTRL_FLAG_NEXT_CTRL - */ -static int query_ioctl(int hdevice, int current_ctrl, struct v4l2_queryctrl *ctrl) -{ - int ret = 0; - int tries = 4; - do - { - if(ret) - ctrl->id = current_ctrl | V4L2_CTRL_FLAG_NEXT_CTRL; - ret = v4l2_ioctl(hdevice, VIDIOC_QUERYCTRL, ctrl); - } - while (ret && tries-- && - ((errno == EIO || errno == EPIPE || errno == ETIMEDOUT))); - - return(ret); -} - -gboolean is_special_case_control(int control_id) -{ - switch(control_id) - { - case V4L2_CID_PAN_RELATIVE: - case V4L2_CID_TILT_RELATIVE: - case V4L2_CID_PAN_RESET: - case V4L2_CID_TILT_RESET: - case V4L2_CID_LED1_MODE_LOGITECH: - case V4L2_CID_RAW_BITS_PER_PIXEL_LOGITECH: - return TRUE; - break; - default: - return FALSE; - break; - } -} - -static void print_control(Control *control, int i) -{ - int j=0; - - switch (control->control.type) - { - case V4L2_CTRL_TYPE_INTEGER: - g_print("control[%d]:(int) 0x%x '%s'\n",i ,control->control.id, control->control.name); - g_print ("\tmin:%d max:%d step:%d def:%d curr:%d\n", - control->control.minimum, control->control.maximum, control->control.step, - control->control.default_value, control->value); - break; - -#ifdef V4L2_CTRL_TYPE_INTEGER64 - case V4L2_CTRL_TYPE_INTEGER64: - g_print("control[%d]:(int64) 0x%x '%s'\n",i ,control->control.id, control->control.name); - g_print ("\tcurr:%" PRIu64 "\n", control->value64); - break; -#endif -#ifdef V4L2_CTRL_TYPE_STRING - case V4L2_CTRL_TYPE_STRING: - g_print("control[%d]:(str) 0x%x '%s'\n",i ,control->control.id, control->control.name); - g_print ("\tmin:%d max:%d step:%d\n", - control->control.minimum, control->control.maximum, control->control.step); - break; -#endif - case V4L2_CTRL_TYPE_BOOLEAN: - g_print("control[%d]:(bool) 0x%x '%s'\n",i ,control->control.id, control->control.name); - g_print ("\tdef:%d curr:%d\n", - control->control.default_value, control->value); - break; - - case V4L2_CTRL_TYPE_MENU: - g_print("control[%d]:(menu) 0x%x '%s'\n",i ,control->control.id, control->control.name); - g_print("\tmin:%d max:%d def:%d curr:%d\n", - control->control.minimum, control->control.maximum, - control->control.default_value, control->value); - for (j = 0; control->menu[j].index <= control->control.maximum; j++) - g_print("\tmenu[%d]: [%d] -> '%s'\n", j, control->menu[j].index, control->menu[j].name); - break; - -#ifdef V4L2_CTRL_TYPE_INTEGER_MENU - case V4L2_CTRL_TYPE_INTEGER_MENU: - g_print("control[%d]:(intmenu) 0x%x '%s'\n",i ,control->control.id, control->control.name); - g_print("\tmin:%d max:%d def:%d curr:%d\n", - control->control.minimum, control->control.maximum, - control->control.default_value, control->value); - for (j = 0; control->menu[j].index <= control->control.maximum; j++) - g_print("\tmenu[%d]: [%d] -> %" PRId64 " (0x%" PRIx64 ")", j, control->menu[j].index, - (int64_t) control->menu[j].value, - (int64_t) control->menu[j].value); - break; -#endif - case V4L2_CTRL_TYPE_BUTTON: - g_print("control[%d]:(button) 0x%x '%s'\n",i ,control->control.id, control->control.name); - break; - -#ifdef V4L2_CTRL_TYPE_BITMASK - case V4L2_CTRL_TYPE_BITMASK: - g_print("control[%d]:(bitmask) 0x%x '%s'\n",i ,control->control.id, control->control.name); - g_print("\tmax:%d def:%d curr:%d\n", - control->control.maximum, control->control.default_value, control->value); -#endif - default: - g_print("control[%d]:(unknown - 0x%x) 0x%x '%s'\n",i ,control->control.type, - control->control.id, control->control.name); - break; - } -} - -static Control *add_control(int hdevice, struct v4l2_queryctrl *queryctrl, Control **current, Control **first) -{ - Control *control = NULL; - struct v4l2_querymenu *menu = NULL; //menu list - - if (queryctrl->flags & V4L2_CTRL_FLAG_DISABLED) - { - printf("Control 0x%08x is disabled: remove it from control list\n", queryctrl->id); - return NULL; - } - - //check menu items if needed - if(queryctrl->type == V4L2_CTRL_TYPE_MENU -#ifdef V4L2_CTRL_TYPE_INTEGER_MENU - || queryctrl->type == V4L2_CTRL_TYPE_INTEGER_MENU -#endif - ) - { - int i = 0; - int ret = 0; - struct v4l2_querymenu querymenu={0}; - - for (querymenu.index = queryctrl->minimum; - querymenu.index <= queryctrl->maximum; - querymenu.index++) - { - querymenu.id = queryctrl->id; - ret = xioctl (hdevice, VIDIOC_QUERYMENU, &querymenu); - if (ret < 0) - continue; - - if(!menu) - menu = g_new0(struct v4l2_querymenu, i+1); - else - menu = g_renew(struct v4l2_querymenu, menu, i+1); - - memcpy(&(menu[i]), &querymenu, sizeof(struct v4l2_querymenu)); - i++; - } - - if(!menu) - menu = g_new0(struct v4l2_querymenu, i+1); - else - menu = g_renew(struct v4l2_querymenu, menu, i+1); - - menu[i].id = querymenu.id; - menu[i].index = queryctrl->maximum+1; - if(queryctrl->type == V4L2_CTRL_TYPE_MENU) - menu[i].name[0] = 0; - } - - // Add the control to the linked list - control = calloc (1, sizeof(Control)); - memcpy(&(control->control), queryctrl, sizeof(struct v4l2_queryctrl)); - control->class = V4L2_CTRL_ID2CLASS(control->control.id); - //add the menu adress (NULL if not a menu) - control->menu = menu; -#ifdef V4L2_CTRL_TYPE_STRING - //allocate a string with max size if needed - if(control->control.type == V4L2_CTRL_TYPE_STRING) - control->string = (char *) g_strnfill(control->control.maximum + 1, 0); - else -#endif - control->string = NULL; - - if(*first != NULL) - { - (*current)->next = control; - *current = control; - } - else - { - *first = control; - *current = *first; - } - - return control; -} - -/* - * returns a Control structure NULL terminated linked list - * with all of the device controls with Read/Write permissions. - * These are the only ones that we can store/restore. - * Also sets num_ctrls with the controls count. - */ -Control *get_control_list(int hdevice, int *num_ctrls, int list_method) -{ - int ret=0; - Control *first = NULL; - Control *current = NULL; - - int n = 0; - struct v4l2_queryctrl queryctrl={0}; - - int currentctrl = 0; - queryctrl.id = V4L2_CTRL_FLAG_NEXT_CTRL; - - if(list_method == LIST_CTL_METHOD_NEXT_FLAG) //try the next_flag method first - { - while ((ret=query_ioctl(hdevice, currentctrl, &queryctrl)) == 0) - { - if(add_control(hdevice, &queryctrl, ¤t, &first) != NULL) - n++; - - currentctrl = queryctrl.id; - - queryctrl.id |= V4L2_CTRL_FLAG_NEXT_CTRL; - } - if (queryctrl.id != V4L2_CTRL_FLAG_NEXT_CTRL) - { - *num_ctrls = n; - return first; //done - } - - if(ret) - { - printf("Control 0x%08x failed to query with error %i\n", queryctrl.id, ret); - } - - printf("buggy V4L2_CTRL_FLAG_NEXT_CTRL flag implementation (workaround enabled)\n"); - - //next_flag method failed loop through the ids: - // USER CLASS Controls - for (currentctrl = V4L2_CID_USER_BASE; currentctrl < V4L2_CID_LASTP1; currentctrl++) - { - queryctrl.id = currentctrl; - if (xioctl(hdevice, VIDIOC_QUERYCTRL, &queryctrl) == 0) - { - if(add_control(hdevice, &queryctrl, ¤t, &first) != NULL) - n++; - } - } - //CAMERA CLASS Controls - for (currentctrl = V4L2_CID_CAMERA_CLASS_BASE; currentctrl < V4L2_CID_CAMERA_CLASS_BASE+32; currentctrl++) - { - queryctrl.id = currentctrl; - if (xioctl(hdevice, VIDIOC_QUERYCTRL, &queryctrl) == 0) - { - if(add_control(hdevice, &queryctrl, ¤t, &first) != NULL) - n++; - } - } - //PRIVATE controls (deprecated) - for (queryctrl.id = V4L2_CID_PRIVATE_BASE; - xioctl(hdevice, VIDIOC_QUERYCTRL, &queryctrl) == 0; queryctrl.id++) - { - if(add_control(hdevice, &queryctrl, ¤t, &first) != NULL) - n++; - } - } - else - { - printf("using control id loop method for enumeration \n"); - //next_flag method failed loop through the ids: - // USER CLASS Controls - for (currentctrl = V4L2_CID_USER_BASE; currentctrl < V4L2_CID_LASTP1; currentctrl++) - { - queryctrl.id = currentctrl; - if (xioctl(hdevice, VIDIOC_QUERYCTRL, &queryctrl) == 0) - { - if(add_control(hdevice, &queryctrl, ¤t, &first) != NULL) - n++; - } - } - //CAMERA CLASS Controls - for (currentctrl = V4L2_CID_CAMERA_CLASS_BASE; currentctrl < V4L2_CID_CAMERA_CLASS_BASE+32; currentctrl++) - { - queryctrl.id = currentctrl; - if (xioctl(hdevice, VIDIOC_QUERYCTRL, &queryctrl) == 0) - { - if(add_control(hdevice, &queryctrl, ¤t, &first) != NULL) - n++; - } - } - //PRIVATE controls (deprecated) - for (queryctrl.id = V4L2_CID_PRIVATE_BASE; - xioctl(hdevice, VIDIOC_QUERYCTRL, &queryctrl) == 0; queryctrl.id++) - { - if(add_control(hdevice, &queryctrl, ¤t, &first) != NULL) - n++; - } - } - - *num_ctrls = n; - return first; -} - -/* - * called when setting controls - */ -static void update_ctrl_flags(Control *control_list, int id) -{ - switch (id) - { - case V4L2_CID_EXPOSURE_AUTO: - { - Control *ctrl_this = get_ctrl_by_id(control_list, id ); - if(ctrl_this == NULL) - break; - - switch (ctrl_this->value) - { - case V4L2_EXPOSURE_AUTO: - { - //printf("auto\n"); - Control *ctrl_that = get_ctrl_by_id(control_list, - V4L2_CID_IRIS_ABSOLUTE ); - if (ctrl_that) - ctrl_that->control.flags |= V4L2_CTRL_FLAG_GRABBED; - - ctrl_that = get_ctrl_by_id(control_list, - V4L2_CID_IRIS_RELATIVE ); - if (ctrl_that) - ctrl_that->control.flags |= V4L2_CTRL_FLAG_GRABBED; - ctrl_that = get_ctrl_by_id(control_list, - V4L2_CID_EXPOSURE_ABSOLUTE ); - if (ctrl_that) - ctrl_that->control.flags |= V4L2_CTRL_FLAG_GRABBED; - } - break; - - case V4L2_EXPOSURE_APERTURE_PRIORITY: - { - //printf("AP\n"); - Control *ctrl_that = get_ctrl_by_id(control_list, - V4L2_CID_EXPOSURE_ABSOLUTE ); - if (ctrl_that) - ctrl_that->control.flags |= V4L2_CTRL_FLAG_GRABBED; - ctrl_that = get_ctrl_by_id(control_list, - V4L2_CID_IRIS_ABSOLUTE ); - if (ctrl_that) - ctrl_that->control.flags &= !(V4L2_CTRL_FLAG_GRABBED); - ctrl_that = get_ctrl_by_id(control_list, - V4L2_CID_IRIS_RELATIVE ); - if (ctrl_that) - ctrl_that->control.flags &= !(V4L2_CTRL_FLAG_GRABBED); - } - break; - - case V4L2_EXPOSURE_SHUTTER_PRIORITY: - { - //printf("SP\n"); - Control *ctrl_that = get_ctrl_by_id(control_list, - V4L2_CID_IRIS_ABSOLUTE ); - if (ctrl_that) - ctrl_that->control.flags |= V4L2_CTRL_FLAG_GRABBED; - - ctrl_that = get_ctrl_by_id(control_list, - V4L2_CID_IRIS_RELATIVE ); - if (ctrl_that) - ctrl_that->control.flags |= V4L2_CTRL_FLAG_GRABBED; - ctrl_that = get_ctrl_by_id(control_list, - V4L2_CID_EXPOSURE_ABSOLUTE ); - if (ctrl_that) - ctrl_that->control.flags &= !(V4L2_CTRL_FLAG_GRABBED); - } - break; - - default: - { - //printf("manual\n"); - Control *ctrl_that = get_ctrl_by_id(control_list, - V4L2_CID_EXPOSURE_ABSOLUTE ); - if (ctrl_that) - ctrl_that->control.flags &= !(V4L2_CTRL_FLAG_GRABBED); - ctrl_that = get_ctrl_by_id(control_list, - V4L2_CID_IRIS_ABSOLUTE ); - if (ctrl_that) - ctrl_that->control.flags &= !(V4L2_CTRL_FLAG_GRABBED); - ctrl_that = get_ctrl_by_id(control_list, - V4L2_CID_IRIS_RELATIVE ); - if (ctrl_that) - ctrl_that->control.flags &= !(V4L2_CTRL_FLAG_GRABBED); - } - break; - } - } - break; - - case V4L2_CID_FOCUS_AUTO: - { - Control *ctrl_this = get_ctrl_by_id(control_list, id ); - if(ctrl_this == NULL) - break; - if(ctrl_this->value > 0) - { - Control *ctrl_that = get_ctrl_by_id(control_list, - V4L2_CID_FOCUS_ABSOLUTE); - if (ctrl_that) - ctrl_that->control.flags |= V4L2_CTRL_FLAG_GRABBED; - - ctrl_that = get_ctrl_by_id(control_list, - V4L2_CID_FOCUS_RELATIVE); - if (ctrl_that) - ctrl_that->control.flags |= V4L2_CTRL_FLAG_GRABBED; - } - else - { - Control *ctrl_that = get_ctrl_by_id(control_list, - V4L2_CID_FOCUS_ABSOLUTE); - if (ctrl_that) - ctrl_that->control.flags &= !(V4L2_CTRL_FLAG_GRABBED); - - ctrl_that = get_ctrl_by_id(control_list, - V4L2_CID_FOCUS_RELATIVE); - if (ctrl_that) - ctrl_that->control.flags &= !(V4L2_CTRL_FLAG_GRABBED); - } - } - break; - - case V4L2_CID_HUE_AUTO: - { - Control *ctrl_this = get_ctrl_by_id(control_list, id ); - if(ctrl_this == NULL) - break; - if(ctrl_this->value > 0) - { - Control *ctrl_that = get_ctrl_by_id(control_list, - V4L2_CID_HUE); - if (ctrl_that) - ctrl_that->control.flags |= V4L2_CTRL_FLAG_GRABBED; - } - else - { - Control *ctrl_that = get_ctrl_by_id(control_list, - V4L2_CID_HUE); - if (ctrl_that) - ctrl_that->control.flags &= !(V4L2_CTRL_FLAG_GRABBED); - } - } - break; - - case V4L2_CID_AUTO_WHITE_BALANCE: - { - Control *ctrl_this = get_ctrl_by_id(control_list, id ); - if(ctrl_this == NULL) - break; - - if(ctrl_this->value > 0) - { - Control *ctrl_that = get_ctrl_by_id(control_list, - V4L2_CID_WHITE_BALANCE_TEMPERATURE); - if (ctrl_that) - ctrl_that->control.flags |= V4L2_CTRL_FLAG_GRABBED; - ctrl_that = get_ctrl_by_id(control_list, - V4L2_CID_BLUE_BALANCE); - if (ctrl_that) - ctrl_that->control.flags |= V4L2_CTRL_FLAG_GRABBED; - ctrl_that = get_ctrl_by_id(control_list, - V4L2_CID_RED_BALANCE); - if (ctrl_that) - ctrl_that->control.flags |= V4L2_CTRL_FLAG_GRABBED; - } - else - { - Control *ctrl_that = get_ctrl_by_id(control_list, - V4L2_CID_WHITE_BALANCE_TEMPERATURE); - if (ctrl_that) - ctrl_that->control.flags &= !(V4L2_CTRL_FLAG_GRABBED); - ctrl_that = get_ctrl_by_id(control_list, - V4L2_CID_BLUE_BALANCE); - if (ctrl_that) - ctrl_that->control.flags &= !(V4L2_CTRL_FLAG_GRABBED); - ctrl_that = get_ctrl_by_id(control_list, - V4L2_CID_RED_BALANCE); - if (ctrl_that) - ctrl_that->control.flags &= !(V4L2_CTRL_FLAG_GRABBED); - } - } - break; - } -} - -/* - * update flags of entire control list - */ -static void update_ctrl_list_flags(Control *control_list) -{ - Control *current = control_list; - - for(; current != NULL; current = current->next) - update_ctrl_flags(control_list, current->control.id); -} - -/* - * Disables special auto-controls with higher IDs than - * their absolute/relative counterparts - * this is needed before restoring controls state - */ -void disable_special_auto (int hdevice, Control *control_list, int id) -{ - Control *current = get_ctrl_by_id(control_list, id); - if(current && ((id == V4L2_CID_FOCUS_AUTO) || (id == V4L2_CID_HUE_AUTO))) - { - current->value = 0; - set_ctrl(hdevice, control_list, id); - } -} - -static void update_widget_state(Control *control_list, void *all_data) -{ - Control *current = control_list; - - for(; current != NULL; current = current->next) - { - if(all_data && current->widget) - { - switch(current->control.type) - { -#ifdef V4L2_CTRL_TYPE_STRING - case V4L2_CTRL_TYPE_STRING: - { - char *text_input = g_strescape(current->string, ""); - gtk_entry_set_text (current->widget, text_input); - g_free(text_input); - break; - } -#endif - case V4L2_CTRL_TYPE_BOOLEAN: - //disable widget signals - g_signal_handlers_block_by_func(GTK_TOGGLE_BUTTON(current->widget), - G_CALLBACK (check_changed), all_data); - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (current->widget), - current->value ? TRUE : FALSE); - //enable widget signals - g_signal_handlers_unblock_by_func(GTK_TOGGLE_BUTTON(current->widget), - G_CALLBACK (check_changed), all_data); - break; - -#ifdef V4L2_CTRL_TYPE_BITMASK - case V4L2_CTRL_TYPE_BITMASK: - { - char *text_input = g_strdup_printf("0x%x", current->value); - gtk_entry_set_text (current->widget, text_input); - g_free(text_input); - break; - } -#endif -#ifdef V4L2_CTRL_TYPE_INTEGER64 - case V4L2_CTRL_TYPE_INTEGER64: - { - char *text_input = g_strdup_printf("0x%" PRIx64 "", c->value64); - gtk_entry_set_text (current->widget, text_input); - g_free(text_input); - break; - } -#endif - case V4L2_CTRL_TYPE_INTEGER: - if(!(is_special_case_control(current->control.id))) - { - //disable widget signals - g_signal_handlers_block_by_func(GTK_SCALE (current->widget), - G_CALLBACK (slider_changed), all_data); - gtk_range_set_value (GTK_RANGE (current->widget), current->value); - //enable widget signals - g_signal_handlers_unblock_by_func(GTK_SCALE (current->widget), - G_CALLBACK (slider_changed), all_data); - if(current->spinbutton) - { - //disable widget signals - g_signal_handlers_block_by_func(GTK_SPIN_BUTTON(current->spinbutton), - G_CALLBACK (spin_changed), all_data); - gtk_spin_button_set_value (GTK_SPIN_BUTTON(current->spinbutton), current->value); - //enable widget signals - g_signal_handlers_unblock_by_func(GTK_SPIN_BUTTON(current->spinbutton), - G_CALLBACK (spin_changed), all_data); - } - } - break; - -#ifdef V4L2_CTRL_TYPE_INTEGER_MENU - case V4L2_CTRL_TYPE_INTEGER_MENU: -#endif - case V4L2_CTRL_TYPE_MENU: - { - //disable widget signals - g_signal_handlers_block_by_func(GTK_COMBO_BOX_TEXT(current->widget), - G_CALLBACK (combo_changed), all_data); - //get new index - int j = 0; - int def = 0; - for (j = 0; current->menu[j].index <= current->control.maximum; j++) - { - if(current->value == current->menu[j].index) - def = j; - } - - gtk_combo_box_set_active(GTK_COMBO_BOX(current->widget), def); - //enable widget signals - g_signal_handlers_unblock_by_func(GTK_COMBO_BOX_TEXT(current->widget), - G_CALLBACK (combo_changed), all_data); - break; - } - - default: - break; - } - } - if((current->control.flags & V4L2_CTRL_FLAG_GRABBED) || - (current->control.flags & V4L2_CTRL_FLAG_DISABLED)) - { - if(current->label) - gtk_widget_set_sensitive (current->label, FALSE); - if(current->widget) - gtk_widget_set_sensitive (current->widget, FALSE); - if(current->spinbutton) - gtk_widget_set_sensitive (current->spinbutton, FALSE); - } - else - { - if(current->label) - gtk_widget_set_sensitive (current->label, TRUE); - if(current->widget) - gtk_widget_set_sensitive (current->widget, TRUE); - if(current->spinbutton) - gtk_widget_set_sensitive (current->spinbutton, TRUE); - } - } -} - - - -/* - * creates the control associated widgets for all controls in the list - */ - -void create_control_widgets(Control *control_list, void *all_data, int control_only, int verbose) -{ - struct ALL_DATA *data = (struct ALL_DATA *) all_data; - struct vdIn *videoIn = data->videoIn; - Control *current; - int i = 0; - - for(current = control_list; current != NULL; current = current->next) - { - get_ctrl(videoIn->fd, control_list, current->control.id, all_data); - if (verbose) - { - print_control(current, i); - } - - if(!current->control.step) current->control.step = 1; - gchar *tmp; - tmp = g_strdup_printf ("%s:", gettext((char *) current->control.name)); - current->label = gtk_label_new (tmp); - g_free(tmp); - gtk_widget_show (current->label); - gtk_misc_set_alignment (GTK_MISC (current->label), 1, 0.5); - - switch(current->control.type) - { -#ifdef V4L2_CTRL_TYPE_STRING - case V4L2_CTRL_TYPE_STRING: - //text box and set button with maximum charaters - { - current->widget = gtk_entry_new(); - gtk_entry_set_max_length(current->widget, current->control.maximum); - - current->spinbutton = gtk_button_new_from_stock(GTK_STOCK_APPLY); - - gtk_widget_show (current->widget); - gtk_widget_show (current->spinbutton); - - g_object_set_data (G_OBJECT (current->spinbutton), "control_info", - GINT_TO_POINTER(current->control.id)); - - g_signal_connect (GTK_BUTTON(current->spinbutton), "clicked", - G_CALLBACK (button_clicked), all_data); - - } - break; -#endif -#ifdef V4L2_CTRL_TYPE_INTEGER64 - case V4L2_CTRL_TYPE_INTEGER64: - //text box and set button - { - current->widget = gtk_entry_new(); - - current->spinbutton = gtk_button_new_from_stock(GTK_STOCK_APPLY); - - gtk_widget_show (current->widget); - gtk_widget_show (current->spinbutton); - - g_object_set_data (G_OBJECT (current->spinbutton), "control_info", - GINT_TO_POINTER(current->control.id)); - - g_signal_connect (GTK_BUTTON(current->spinbutton), "clicked", - G_CALLBACK (button_clicked), all_data); - - } - break; -#endif -#ifdef V4L2_CTRL_TYPE_BITMASK - case V4L2_CTRL_TYPE_BITMASK: - //text box and set button - { - current->widget = gtk_entry_new(); - - current->spinbutton = gtk_button_new_from_stock(GTK_STOCK_APPLY); - - gtk_widget_show (current->widget); - gtk_widget_show (current->spinbutton); - - g_object_set_data (G_OBJECT (current->spinbutton), "control_info", - GINT_TO_POINTER(current->control.id)); - - g_signal_connect (GTK_BUTTON(current->spinbutton), "clicked", - G_CALLBACK (button_clicked), all_data); - - } - break; -#endif - case V4L2_CTRL_TYPE_BUTTON: - { - current->widget = gtk_button_new_with_label(" "); - gtk_widget_show (current->widget); - - g_object_set_data (G_OBJECT (current->widget), "control_info", - GINT_TO_POINTER(current->control.id)); - - g_signal_connect (GTK_BUTTON(current->widget), "clicked", - G_CALLBACK (button_clicked), all_data); - } - break; - - case V4L2_CTRL_TYPE_INTEGER: - { - switch (current->control.id) - { //special cases - case V4L2_CID_PAN_RELATIVE: - case V4L2_CID_TILT_RELATIVE: - { - //videoIn->PanTilt++; - current->widget = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 1); - - GtkWidget *PanTilt1 = NULL; - GtkWidget *PanTilt2 = NULL; - if(current->control.id == V4L2_CID_PAN_RELATIVE) - { - PanTilt1 = gtk_button_new_with_label(_("Left")); - PanTilt2 = gtk_button_new_with_label(_("Right")); - } - else - { - PanTilt1 = gtk_button_new_with_label(_("Down")); - PanTilt2 = gtk_button_new_with_label(_("Up")); - } - - gtk_widget_show (PanTilt1); - gtk_widget_show (PanTilt2); - gtk_box_pack_start(GTK_BOX(current->widget),PanTilt1,TRUE,TRUE,2); - gtk_box_pack_start(GTK_BOX(current->widget),PanTilt2,TRUE,TRUE,2); - - g_object_set_data (G_OBJECT (PanTilt1), "control_info", - GINT_TO_POINTER(current->control.id)); - g_object_set_data (G_OBJECT (PanTilt2), "control_info", - GINT_TO_POINTER(current->control.id)); - - g_signal_connect (GTK_BUTTON(PanTilt1), "clicked", - G_CALLBACK (button_PanTilt1_clicked), all_data); - g_signal_connect (GTK_BUTTON(PanTilt2), "clicked", - G_CALLBACK (button_PanTilt2_clicked), all_data); - - gtk_widget_show (current->widget); - - current->spinbutton = gtk_spin_button_new_with_range(-256, 256, 64); - /*can't edit the spin value by hand*/ - gtk_editable_set_editable(GTK_EDITABLE(current->spinbutton),TRUE); - - gtk_spin_button_set_value (GTK_SPIN_BUTTON(current->spinbutton), 128); - gtk_widget_show (current->spinbutton); - }; - break; - - case V4L2_CID_PAN_RESET: - case V4L2_CID_TILT_RESET: - { - current->widget = gtk_button_new_with_label(" "); - gtk_widget_show (current->widget); - - g_object_set_data (G_OBJECT (current->widget), "control_info", - GINT_TO_POINTER(current->control.id)); - - g_signal_connect (GTK_BUTTON(current->widget), "clicked", - G_CALLBACK (button_clicked), all_data); - }; - break; - - case V4L2_CID_LED1_MODE_LOGITECH: - { - char* LEDMenu[4] = {_("Off"),_("On"),_("Blinking"),_("Auto")}; - /*turn it into a menu control*/ - if(!current->menu) - current->menu = g_new0(struct v4l2_querymenu, 4+1); - else - current->menu = g_renew(struct v4l2_querymenu, current->menu, 4+1); - - current->menu[0].id = current->control.id; - current->menu[0].index = 0; - current->menu[0].name[0] = 'N'; //just set something here - current->menu[1].id = current->control.id; - current->menu[1].index = 1; - current->menu[1].name[0] = 'O'; - current->menu[2].id = current->control.id; - current->menu[2].index = 2; - current->menu[2].name[0] = 'B'; - current->menu[3].id = current->control.id; - current->menu[3].index = 3; - current->menu[3].name[0] = 'A'; - current->menu[4].id = current->control.id; - current->menu[4].index = current->control.maximum+1; - current->menu[4].name[0] = '\0'; - - int j = 0; - int def = 0; - current->widget = gtk_combo_box_text_new (); - for (j = 0; current->menu[j].index <= current->control.maximum; j++) - { - gtk_combo_box_text_append_text ( - GTK_COMBO_BOX_TEXT (current->widget), - (char *) LEDMenu[j]); - if(current->value == current->menu[j].index) - def = j; - } - - gtk_combo_box_set_active (GTK_COMBO_BOX(current->widget), def); - gtk_widget_show (current->widget); - - g_object_set_data (G_OBJECT (current->widget), "control_info", - GINT_TO_POINTER(current->control.id)); - //connect signal - g_signal_connect (GTK_COMBO_BOX_TEXT(current->widget), "changed", - G_CALLBACK (combo_changed), all_data); - }; - break; - - case V4L2_CID_RAW_BITS_PER_PIXEL_LOGITECH: - { - /*turn it into a menu control*/ - char* BITSMenu[2] = {_("8 bit"),_("12 bit")}; - /*turn it into a menu control*/ - if(!current->menu) - current->menu = g_new0(struct v4l2_querymenu, 2+1); - else - current->menu = g_renew(struct v4l2_querymenu, current->menu, 2+1); - - current->menu[0].id = current->control.id; - current->menu[0].index = 0; - current->menu[0].name[0] = 'o'; //just set something here - current->menu[1].id = current->control.id; - current->menu[1].index = 1; - current->menu[1].name[0] = 'd'; - current->menu[2].id = current->control.id; - current->menu[2].index = 2; - current->menu[2].name[0] = '\0'; - int j = 0; - int def = 0; - current->widget = gtk_combo_box_text_new (); - for (j = 0; current->menu[j].index <= current->control.maximum; j++) - { - //if (verbose) - // printf("adding menu entry %d: %d, %s\n",j, current->menu[j].index, current->menu[j].name); - gtk_combo_box_text_append_text ( - GTK_COMBO_BOX_TEXT (current->widget), - (char *) BITSMenu[j]); - if(current->value == current->menu[j].index) - def = j; - } - - gtk_combo_box_set_active (GTK_COMBO_BOX(current->widget), def); - gtk_widget_show (current->widget); - - g_object_set_data (G_OBJECT (current->widget), "control_info", - GINT_TO_POINTER(current->control.id)); - //connect signal - g_signal_connect (GTK_COMBO_BOX_TEXT(current->widget), "changed", - G_CALLBACK (combo_changed), all_data); - }; - break; - - default: //standard case - hscale - { - /* check for valid range */ - if((current->control.maximum > current->control.minimum) && (current->control.step != 0)) - { - GtkAdjustment *adjustment = gtk_adjustment_new ( - current->value, - current->control.minimum, - current->control.maximum, - current->control.step, - current->control.step*10, - 0); - - current->widget = gtk_scale_new (GTK_ORIENTATION_HORIZONTAL, adjustment); - - gtk_scale_set_draw_value (GTK_SCALE (current->widget), FALSE); - gtk_range_set_round_digits(GTK_RANGE (current->widget), 0); - - gtk_widget_show (current->widget); - - current->spinbutton = gtk_spin_button_new(adjustment,current->control.step, 0); - - /*can't edit the spin value by hand*/ - gtk_editable_set_editable(GTK_EDITABLE(current->spinbutton),TRUE); - - gtk_widget_show (current->spinbutton); - - g_object_set_data (G_OBJECT (current->widget), "control_info", - GINT_TO_POINTER(current->control.id)); - g_object_set_data (G_OBJECT (current->spinbutton), "control_info", - GINT_TO_POINTER(current->control.id)); - //connect signal - g_signal_connect (GTK_SCALE(current->widget), "value-changed", - G_CALLBACK (slider_changed), all_data); - g_signal_connect(GTK_SPIN_BUTTON(current->spinbutton),"value-changed", - G_CALLBACK (spin_changed), all_data); - } - else - { - printf("INVALID RANGE (MAX <= MIN) for control id: 0x%08x \n", current->control.id); - } - }; - break; - }; - }; - break; - -#ifdef V4L2_CTRL_TYPE_INTEGER_MENU - case V4L2_CTRL_TYPE_INTEGER_MENU: -#endif - case V4L2_CTRL_TYPE_MENU: - { - if(current->menu) - { - int j = 0; - int def = 0; - current->widget = gtk_combo_box_text_new (); - for (j = 0; current->menu[j].index <= current->control.maximum; j++) - { - if(current->control.type == V4L2_CTRL_TYPE_MENU) - { - gtk_combo_box_text_append_text ( - GTK_COMBO_BOX_TEXT (current->widget), - (char *) current->menu[j].name); - } -#ifdef V4L2_CTRL_TYPE_INTEGER_MENU - else - { - char buffer[30]="0"; - snprintf(buffer, "%" PRIu64 "", 29, current->menu[j].value); - gtk_combo_box_text_append_text ( - GTK_COMBO_BOX_TEXT (current->widget), buffer); - } -#endif - if(current->value == current->menu[j].index) - def = j; - } - - gtk_combo_box_set_active (GTK_COMBO_BOX(current->widget), def); - gtk_widget_show (current->widget); - - g_object_set_data (G_OBJECT (current->widget), "control_info", - GINT_TO_POINTER(current->control.id)); - //connect signal - g_signal_connect (GTK_COMBO_BOX_TEXT(current->widget), "changed", - G_CALLBACK (combo_changed), all_data); - } - } - break; - - case V4L2_CTRL_TYPE_BOOLEAN: - { - if(current->control.id ==V4L2_CID_DISABLE_PROCESSING_LOGITECH) - { - //a little hack :D we use the spin widget as a combo - current->spinbutton = gtk_combo_box_text_new (); - gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(current->spinbutton), - "GBGB... | RGRG..."); - gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(current->spinbutton), - "GRGR... | BGBG..."); - gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(current->spinbutton), - "BGBG... | GRGR..."); - gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(current->spinbutton), - "RGRG... | GBGB..."); - - gtk_combo_box_set_active(GTK_COMBO_BOX(current->spinbutton), 0); - - gtk_widget_show (current->spinbutton); - - g_signal_connect (GTK_COMBO_BOX_TEXT (current->spinbutton), "changed", - G_CALLBACK (pix_ord_changed), all_data); - - videoIn->isbayer = (current->value ? TRUE : FALSE); - } - - current->widget = gtk_check_button_new(); - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (current->widget), - current->value ? TRUE : FALSE); - gtk_widget_show (current->widget); - - g_object_set_data (G_OBJECT (current->widget), "control_info", - GINT_TO_POINTER(current->control.id)); - //connect signal - g_signal_connect (GTK_TOGGLE_BUTTON(current->widget), "toggled", - G_CALLBACK (check_changed), all_data); - } - break; - - default: - printf("control type: 0x%08x not supported\n", current->control.type); - break; - } - - i++;//increment control index - } - update_widget_state(control_list, all_data); - } - -/* - * Returns the Control structure corresponding to control id, - * from the control list. - */ -Control *get_ctrl_by_id(Control *control_list, int id) -{ - Control *current = control_list; - - for(; current != NULL; current = current->next) - { - if(current->control.id == id) - return (current); - } - if(current->control.id == id) - return (current); - else//no id match - return(NULL); -} - -/* - * Goes through the control list and gets the controls current values - * also updates flags and widget states - */ -void get_ctrl_values (int hdevice, Control *control_list, int num_controls, void *all_data) -{ - int ret = 0; - struct v4l2_ext_control clist[num_controls]; - Control *current = control_list; - - int count = 0; - int i = 0; - - for(; current != NULL; current = current->next) - { - if(current->control.flags & V4L2_CTRL_FLAG_WRITE_ONLY) - continue; - - clist[count].id = current->control.id; -#ifdef V4L2_CTRL_TYPE_STRING - clist[count].size = 0; - if(current->control.type == V4L2_CTRL_TYPE_STRING) - { - clist[count].size = current->control.maximum; - clist[count].string = (char *) g_strnfill(clist[count].size + 1, 0); - } -#endif - count++; - - if((current->next == NULL) || (current->next->class != current->class)) - { - struct v4l2_ext_controls ctrls = {0}; - ctrls.ctrl_class = current->class; - ctrls.count = count; - ctrls.controls = clist; - ret = xioctl(hdevice, VIDIOC_G_EXT_CTRLS, &ctrls); - if(ret) - { - printf("VIDIOC_G_EXT_CTRLS failed\n"); - struct v4l2_control ctrl; - //get the controls one by one - if( current->class == V4L2_CTRL_CLASS_USER -#ifdef V4L2_CTRL_TYPE_STRING - && current->control.type != V4L2_CTRL_TYPE_STRING -#endif -#ifdef V4L2_CTRL_TYPE_INTEGER64 - && current->control.type != V4L2_CTRL_TYPE_INTEGER64 -#endif - ) - { - printf(" using VIDIOC_G_CTRL for user class controls\n"); - for(i=0; i < count; i++) - { - ctrl.id = clist[i].id; - ctrl.value = 0; - ret = xioctl(hdevice, VIDIOC_G_CTRL, &ctrl); - if(ret) - continue; - clist[i].value = ctrl.value; - } - } - else - { - printf(" using VIDIOC_G_EXT_CTRLS on single controls for class: 0x%08x\n", - current->class); - for(i=0;i < count; i++) - { - ctrls.count = 1; - ctrls.controls = &clist[i]; - ret = xioctl(hdevice, VIDIOC_G_EXT_CTRLS, &ctrls); - if(ret) - printf("control id: 0x%08x failed to get (error %i)\n", - clist[i].id, ret); - } - } - } - - //fill in the values on the control list - for(i=0; icontrol.type) - { -#ifdef V4L2_CTRL_TYPE_STRING - case V4L2_CTRL_TYPE_STRING: - { - //string gets set on VIDIOC_G_EXT_CTRLS - //add the maximum size to value - unsigned len = clist[i].size; - unsigned max_len = ctrl->control.maximum; - - strncpy(ctrl->string, clist[i].string, max_len); - if(len > max_len) - { - ctrl->string[max_len] = 0; //Null terminated - printf("control id: 0x%08x returned string size of %d when max is %d\n", - ctrl->control.id, len, max_len); - } - - //clean up - g_free(clist[i].string); - clist[i].string = NULL; - break; - } -#endif - case V4L2_CTRL_TYPE_INTEGER64: - ctrl->value64 = clist[i].value64; - break; - default: - ctrl->value = clist[i].value; - //printf("control %i [0x%08x] = %i\n", - // i, clist[i].id, clist[i].value); - break; - } - } - - count = 0; - } - } - - update_ctrl_list_flags(control_list); - update_widget_state(control_list, all_data); - -} - -/* - * Gets the value for control id - * and updates control flags and widgets - */ -int get_ctrl(int hdevice, Control *control_list, int id, void *all_data) -{ - Control *control = get_ctrl_by_id(control_list, id ); - int ret = 0; - - if(!control) - return (-1); - if(control->control.flags & V4L2_CTRL_FLAG_WRITE_ONLY) - return (-1); - - if( control->class == V4L2_CTRL_CLASS_USER -#ifdef V4L2_CTRL_TYPE_STRING - && control->control.type != V4L2_CTRL_TYPE_STRING -#endif -#ifdef V4L2_CTRL_TYPE_INTEGER64 - && control->control.type != V4L2_CTRL_TYPE_INTEGER64 -#endif - ) - { - struct v4l2_control ctrl; - //printf(" using VIDIOC_G_CTRL for user class controls\n"); - ctrl.id = control->control.id; - ctrl.value = 0; - ret = xioctl(hdevice, VIDIOC_G_CTRL, &ctrl); - if(ret) - printf("control id: 0x%08x failed to get value (error %i)\n", - ctrl.id, ret); - else - control->value = ctrl.value; - } - else - { - //printf(" using VIDIOC_G_EXT_CTRLS on single controls for class: 0x%08x\n", - // current->class); - struct v4l2_ext_controls ctrls = {0}; - struct v4l2_ext_control ctrl = {0}; - ctrl.id = control->control.id; -#ifdef V4L2_CTRL_TYPE_STRING - ctrl.size = 0; - if(control->control.type == V4L2_CTRL_TYPE_STRING) - { - ctrl.size = control->control.maximum; - ctrl.string = (char *) g_strnfill(ctrl.size + 1, 0); - } -#endif - ctrls.ctrl_class = control->class; - ctrls.count = 1; - ctrls.controls = &ctrl; - ret = xioctl(hdevice, VIDIOC_G_EXT_CTRLS, &ctrls); - if(ret) - printf("control id: 0x%08x failed to get value (error %i)\n", - ctrl.id, ret); - else - { - switch(control->control.type) - { -#ifdef V4L2_CTRL_TYPE_STRING - case V4L2_CTRL_TYPE_STRING: - { - unsigned len = ctrl.size; - unsigned max_len = control->control.maximum; - - strncpy(control->string, ctrl.string, max_len); - if(len > max_len) - { - control->value = max_len; - control->string[max_len] = 0; //Null terminated - printf("control id: 0x%08x returned string size of %d when max is %d\n", - control->control.id, len, max_len); - } - - - //clean up - g_free(ctrl.string); - ctrl.string = NULL; - - break; - } -#endif -#ifdef V4L2_CTRL_TYPE_INTEGER64 - case V4L2_CTRL_TYPE_INTEGER64: - control->value64 = ctrl.value64; - break; -#endif - - default: - control->value = ctrl.value; - //printf("control %i [0x%08x] = %i\n", - // i, clist[i].id, clist[i].value); - break; - } - } - } - - update_ctrl_flags(control_list, id); - update_widget_state(control_list, all_data); - - return (ret); -} - -/* - * Goes through the control list and tries to set the controls values - */ -void set_ctrl_values (int hdevice, Control *control_list, int num_controls) -{ - int ret = 0; - struct v4l2_ext_control clist[num_controls]; - Control *current = control_list; - - int count = 0; - int i = 0; - - for(; current != NULL; current = current->next) - { - if(current->control.flags & V4L2_CTRL_FLAG_READ_ONLY) - continue; - - clist[count].id = current->control.id; - switch (current->control.type) - { -#ifdef V4L2_CTRL_TYPE_STRING - case V4L2_CTRL_TYPE_STRING: - { - unsigned len = strlen(current->string); - unsigned max_len = current->control.maximum; - - if(len > max_len) - { - clist[count].size = max_len; - clist[count].string = (char *) g_strndup(current->string, max_len); - printf("control id: 0x%08x trying to set string size of %d when max is %d (clip)\n", - current->control.id, len, max_len); - } - else - { - clist[count].size = len; - clist[count].string = (char *) g_strdup(current->string); - } - break; - } -#endif - case V4L2_CTRL_TYPE_INTEGER64: - clist[count].value64 = current->value64; - break; - default: - clist[count].value = current->value; - break; - } - count++; - - if((current->next == NULL) || (current->next->class != current->class)) - { - struct v4l2_ext_controls ctrls = {0}; - ctrls.ctrl_class = current->class; - ctrls.count = count; - ctrls.controls = clist; - ret = xioctl(hdevice, VIDIOC_S_EXT_CTRLS, &ctrls); - if(ret) - { - printf("VIDIOC_S_EXT_CTRLS for multiple controls failed (error %i)\n", ret); - struct v4l2_control ctrl; - //set the controls one by one - if( current->class == V4L2_CTRL_CLASS_USER -#ifdef V4L2_CTRL_TYPE_STRING - && current->control.type != V4L2_CTRL_TYPE_STRING -#endif -#ifdef V4L2_CTRL_TYPE_INTEGER64 - && current->control.type != V4L2_CTRL_TYPE_INTEGER64 -#endif - ) - { - printf(" using VIDIOC_S_CTRL for user class controls\n"); - for(i=0;i < count; i++) - { - ctrl.id = clist[i].id; - ctrl.value = clist[i].value; - ret = xioctl(hdevice, VIDIOC_S_CTRL, &ctrl); - if(ret) - { - Control *ctrl = get_ctrl_by_id(control_list, clist[i].id); - if(ctrl) - printf("control(0x%08x) \"%s\" failed to set (error %i)\n", - clist[i].id, ctrl->control.name, ret); - else - printf("control(0x%08x) failed to set (error %i)\n", - clist[i].id, ret); - } - } - } - else - { - printf(" using VIDIOC_S_EXT_CTRLS on single controls for class: 0x%08x\n", - current->class); - for(i=0;i < count; i++) - { - ctrls.count = 1; - ctrls.controls = &clist[i]; - ret = xioctl(hdevice, VIDIOC_S_EXT_CTRLS, &ctrls); - - Control *ctrl = get_ctrl_by_id(control_list, clist[i].id); - - if(ret) - { - if(ctrl) - printf("control(0x%08x) \"%s\" failed to set (error %i)\n", - clist[i].id, ctrl->control.name, ret); - else - printf("control(0x%08x) failed to set (error %i)\n", - clist[i].id, ret); - } -#ifdef V4L2_CTRL_TYPE_STRING - if(ctrl && ctrl->control.type == V4L2_CTRL_TYPE_STRING) - { - g_free(clist[i].string); //free allocated string - clist[i].string = NULL; - } -#endif - } - } - } - count = 0; - } - } - - //update list with real values - //get_ctrl_values (hdevice, control_list, num_controls); -} - -/* - * sets all controls to default values - */ -void set_default_values(int hdevice, Control *control_list, int num_controls, void *all_data) -{ - Control *current = control_list; - - for(; current != NULL; current = current->next) - { - if(current->control.flags & V4L2_CTRL_FLAG_READ_ONLY) - continue; - - //printf("setting 0x%08X to %i\n",current->control.id, current->control.default_value); - switch (current->control.type) - { -#ifdef V4L2_CTRL_TYPE_STRING - case V4L2_CTRL_TYPE_STRING: // do string controls have a default value? - break; -#endif -#ifdef V4L2_CTRL_TYPE_INTEGER64 - case V4L2_CTRL_TYPE_INTEGER64: // do int64 controls have a default value? - break; -#endif - default: - //if its one of the special auto controls disable it first - disable_special_auto (hdevice, control_list, current->control.id); - current->value = current->control.default_value; - break; - } - } - - set_ctrl_values (hdevice, control_list, num_controls); - get_ctrl_values (hdevice, control_list, num_controls, all_data); -} - -/* - * sets the value for control id - */ -int set_ctrl(int hdevice, Control *control_list, int id) -{ - Control *control = get_ctrl_by_id(control_list, id ); - int ret = 0; - - if(!control) - return (-1); - if(control->control.flags & V4L2_CTRL_FLAG_READ_ONLY) - return (-1); - - if( control->class == V4L2_CTRL_CLASS_USER -#ifdef V4L2_CTRL_TYPE_STRING - && control->control.type != V4L2_CTRL_TYPE_STRING -#endif - && control->control.type != V4L2_CTRL_TYPE_INTEGER64) - { - //using VIDIOC_G_CTRL for user class controls - struct v4l2_control ctrl; - ctrl.id = control->control.id; - ctrl.value = control->value; - ret = xioctl(hdevice, VIDIOC_S_CTRL, &ctrl); - } - else - { - //using VIDIOC_G_EXT_CTRLS on single controls - struct v4l2_ext_controls ctrls = {0}; - struct v4l2_ext_control ctrl = {0}; - ctrl.id = control->control.id; - switch (control->control.type) - { -#ifdef V4L2_CTRL_TYPE_STRING - case V4L2_CTRL_TYPE_STRING: - { - unsigned len = strlen(control->string); - unsigned max_len = control->control.maximum; - - if(len > max_len) - { - ctrl.size = max_len; - ctrl.string = (char *) g_strndup(control->string, max_len); - printf("control id: 0x%08x trying to set string size of %d when max is %d (clip)\n", - control->control.id, len, max_len); - } - else - { - ctrl.size = len; - ctrl.string = (char *) g_strndup(control->string, max_len); - } - break; - } -#endif -#ifdef V4L2_CTRL_TYPE_INTEGER64 - case V4L2_CTRL_TYPE_INTEGER64: - ctrl.value64 = control->value64; - break; -#endif - default: - ctrl.value = control->value; - break; - } - ctrls.ctrl_class = control->class; - ctrls.count = 1; - ctrls.controls = &ctrl; - ret = xioctl(hdevice, VIDIOC_S_EXT_CTRLS, &ctrls); - if(ret) - printf("control id: 0x%08x failed to set (error %i)\n", - ctrl.id, ret); -#ifdef V4L2_CTRL_TYPE_STRING - if(control->control.type == V4L2_CTRL_TYPE_STRING) - { - g_free(ctrl.string); //clean up string allocation - ctrl.string = NULL; - } -#endif - } - - //update real value - get_ctrl(hdevice, control_list, id, NULL); - - return (ret); -} - -/* - * frees the control list allocations - */ -void free_control_list (Control *control_list) -{ - Control *first = control_list; - Control *next = first->next; - while (next != NULL) - { - if(first->string) g_free(first->string); - if(first->menu) g_free(first->menu); - free(first); - first = next; - next = first->next; - } - //clean the last one - if(first->string) g_free(first->string); - if(first) free(first); -} - -/* - * sets pan tilt (direction = 1 or -1) - */ -void uvcPanTilt (int hdevice, Control *control_list, int is_pan, int direction) -{ - Control *ctrl = NULL; - int id = V4L2_CID_TILT_RELATIVE; - if (is_pan) - id = V4L2_CID_PAN_RELATIVE; - - ctrl = get_ctrl_by_id(control_list, id ); - - if (ctrl && ctrl->spinbutton) - { - - ctrl->value = direction * gtk_spin_button_get_value_as_int ( - GTK_SPIN_BUTTON(ctrl->spinbutton)); - set_ctrl(hdevice, control_list, id); - } - -} - - diff -Nru guvcview-1.7.3/src/v4l2_controls.h guvcview-2.0.1+ubuntu1~ppa1/src/v4l2_controls.h --- guvcview-1.7.3/src/v4l2_controls.h 2014-03-24 22:56:28.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/src/v4l2_controls.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,125 +0,0 @@ -/*******************************************************************************# -# guvcview http://guvcview.sourceforge.net # -# # -# Paulo Assis # -# # -# This program is free software; you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation; either version 2 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program; if not, write to the Free Software # -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# # -********************************************************************************/ -#ifndef V4L2_CONTROLS_H -#define V4L2_CONTROLS_H - -#include -#include -#include - -typedef struct _Control -{ - struct v4l2_queryctrl control; - struct v4l2_querymenu *menu; - int32_t class; - int32_t value; //also used for string max size - int64_t value64; - char *string; - //widgets - GtkWidget * widget; - GtkWidget * label; - GtkWidget *spinbutton; - //next control in the list - struct _Control *next; -} Control; - -struct VidState -{ - GtkWidget * table; - Control *control_list; - - int num_controls; - int width_req; - int height_req; -}; - -/* - * returns a Control structure NULL terminated linked list - * with all of the device controls with Read/Write permissions. - * These are the only ones that we can store/restore. - * Also sets num_ctrls with the controls count. - */ -Control *get_control_list(int hdevice, int *num_ctrls, int list_method); - -/* - * creates the control associated widgets for all controls in the list - */ - -void create_control_widgets(Control *control_list, void *all_data, int control_only, int verbose); - -/* - * Returns the Control structure corresponding to control id, - * from the control list. - */ -Control *get_ctrl_by_id(Control *control_list, int id); - -/* - * Goes through the control list and gets the controls current values - */ -void get_ctrl_values (int hdevice, Control *control_list, int num_controls, void *all_data); - -/* - * Gets the value for control id - * and updates control flags and widgets - */ -int get_ctrl(int hdevice, Control *control_list, int id, void *all_data); - -/* - * Disables special auto-controls with higher IDs than - * their absolute/relative counterparts - * this is needed before restoring controls state - */ -void disable_special_auto (int hdevice, Control *control_list, int id); - -/* - * Goes through the control list and tries to set the controls values - */ -void set_ctrl_values (int hdevice, Control *control_list, int num_controls); - -/* - * sets all controls to default values - */ -void set_default_values(int hdevice, Control *control_list, int num_controls, void *all_data); - -/* - * sets the value for control id - */ -int set_ctrl(int hdevice, Control *control_list, int id); - -/* - * frees the control list allocations - */ -void free_control_list (Control *control_list); - -/* - * sets pan tilt (direction = 1 or -1) - */ -void uvcPanTilt (int hdevice, Control *control_list, int is_pan, int direction); - -#ifndef V4L2_CID_IRIS_ABSOLUTE -#define V4L2_CID_IRIS_ABSOLUTE (V4L2_CID_CAMERA_CLASS_BASE +17) -#endif -#ifndef V4L2_CID_IRIS_RELATIVE -#define V4L2_CID_IRIS_RELATIVE (V4L2_CID_CAMERA_CLASS_BASE +18) -#endif - - -#endif diff -Nru guvcview-1.7.3/src/v4l2_devices.c guvcview-2.0.1+ubuntu1~ppa1/src/v4l2_devices.c --- guvcview-1.7.3/src/v4l2_devices.c 2014-03-24 22:56:28.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/src/v4l2_devices.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,357 +0,0 @@ -/*******************************************************************************# -# guvcview http://guvcview.sourceforge.net # -# # -# Paulo Assis # -# # -# This program is free software; you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation; either version 2 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program; if not, write to the Free Software # -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# # -********************************************************************************/ - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "v4l2uvc.h" -#include "v4l2_devices.h" - -/* (fall through - DEPRECATED) - * enumerates system video devices - * by checking /sys/class/video4linux - * args: - * videodevice: current device string (default "/dev/video0") - * - * returns: pointer to LDevices struct containing the video devices list */ -LDevices *list_devices( gchar *videodevice ) -{ - int ret=0; - int fd=0; - LDevices *listDevices = NULL; - listDevices = g_new0( LDevices, 1); - listDevices->listVidDevices = NULL; - struct v4l2_capability v4l2_cap; - GDir *v4l2_dir=NULL; - GError *error=NULL; - - v4l2_dir = g_dir_open("/sys/class/video4linux",0,&error); - if(v4l2_dir == NULL) - { - g_printerr ("opening '/sys/class/video4linux' failed: %s\n", - error->message); - g_error_free ( error ); - error=NULL; - g_free(listDevices); - return NULL; - } - const gchar *v4l2_device; - int num_dev = 0; - - while((v4l2_device = g_dir_read_name(v4l2_dir)) != NULL) - { - if(!(g_str_has_prefix(v4l2_device, "video"))) - continue; - gchar *device = NULL; - device = g_strjoin("/","/dev",v4l2_device,NULL); - - if ((fd = v4l2_open(device, O_RDWR | O_NONBLOCK, 0)) < 0) - { - g_printerr("ERROR opening V4L interface for %s\n", - device); - g_free(device); - continue; /*next dir entry*/ - } - else - { - ret = xioctl(fd, VIDIOC_QUERYCAP, &v4l2_cap); - if (ret < 0) - { - perror("VIDIOC_QUERYCAP error"); - g_printerr(" couldn't query device %s\n", - device); - g_free(device); - v4l2_close(fd); - continue; /*next dir entry*/ - } - else - { - num_dev++; - g_print("%s - device %d\n", device, num_dev); - listDevices->listVidDevices = g_renew(VidDevice, - listDevices->listVidDevices, - num_dev); - listDevices->listVidDevices[num_dev-1].device = g_strdup(device); - listDevices->listVidDevices[num_dev-1].name = g_strdup((gchar *) v4l2_cap.card); - listDevices->listVidDevices[num_dev-1].driver = g_strdup((gchar *) v4l2_cap.driver); - listDevices->listVidDevices[num_dev-1].location = g_strdup((gchar *) v4l2_cap.bus_info); - listDevices->listVidDevices[num_dev-1].valid = 1; - if(g_strcmp0(videodevice,listDevices->listVidDevices[num_dev-1].device)==0) - { - listDevices->listVidDevices[num_dev-1].current = 1; - listDevices->current_device = num_dev-1; - } - else - listDevices->listVidDevices[num_dev-1].current = 0; - } - } - g_free(device); - v4l2_close(fd); - - listDevices->listVidDevices[num_dev-1].vendor = 0; - listDevices->listVidDevices[num_dev-1].product = 0; - - gchar *vid_dev_lnk = g_strjoin("/","/sys/class/video4linux",v4l2_device,"device",NULL); - gchar *device_lnk = g_file_read_link (vid_dev_lnk,&error); - g_free(vid_dev_lnk); - - if(device_lnk == NULL) - { - g_printerr ("reading link '/sys/class/video4linux/%s/device' failed: %s\n", - v4l2_device, - error->message); - g_error_free ( error ); - error=NULL; - //if standard way fails try to get vid, pid from uvc device name - //we only need this info for Dynamic controls - uvc driver - listDevices->listVidDevices[num_dev-1].vendor = 0; /*reset vid */ - listDevices->listVidDevices[num_dev-1].product = 0; /*reset pid */ - if(g_strcmp0(listDevices->listVidDevices[num_dev-1].driver,"uvcvideo") == 0) - { - sscanf(listDevices->listVidDevices[num_dev-1].name,"UVC Camera (%04x:%04x)", - &(listDevices->listVidDevices[num_dev-1].vendor), - &(listDevices->listVidDevices[num_dev-1].product)); - } - } - else - { - gchar *d_dir = g_strjoin("/","/sys/class/video4linux", v4l2_device, device_lnk, NULL); - gchar *id_dir = g_path_get_dirname(d_dir); - g_free(d_dir); - - gchar *idVendor = g_strjoin("/", id_dir, "idVendor" ,NULL); - gchar *idProduct = g_strjoin("/", id_dir, "idProduct" ,NULL); - - //g_print("idVendor: %s\n", idVendor); - //g_print("idProduct: %s\n", idProduct); - FILE *vid_fp = g_fopen(idVendor,"r"); - if(vid_fp != NULL) - { - gchar code[5]; - if(fgets(code, sizeof(code), vid_fp) != NULL) - { - listDevices->listVidDevices[num_dev-1].vendor = g_ascii_strtoull(code, NULL, 16); - } - fclose (vid_fp); - } - else - { - g_printerr("couldn't open idVendor: %s\n", idVendor); - } - - vid_fp = g_fopen(idProduct,"r"); - if(vid_fp != NULL) - { - gchar code[5]; - if(fgets(code, sizeof(code), vid_fp) != NULL) - { - listDevices->listVidDevices[num_dev-1].product = g_ascii_strtoull(code, NULL, 16); - } - fclose (vid_fp); - } - else - { - g_printerr("couldn't open idProduct: %s\n", idProduct); - } - - g_free(id_dir); - g_free(idVendor); - g_free(idProduct); - } - - g_free(device_lnk); - } - - if(v4l2_dir != NULL) g_dir_close(v4l2_dir); - - listDevices->num_devices = num_dev; - return(listDevices); -} - -/* enumerates v4l2 devices - * by using libudev - args: - * videodevice: current device string (default "/dev/video0") - * - * returns: pointer to LDevices struct containing the video devices list */ - -LDevices *enum_devices( gchar *videodevice, struct udev *udev, int debug) -{ - struct udev_enumerate *enumerate; - struct udev_list_entry *devices, *dev_list_entry; - struct udev_device *dev; - - int num_dev = 0; - int fd = 0; - struct v4l2_capability v4l2_cap; - - if (!udev) - { - /*use fall through method (sysfs)*/ - g_print("Can't create udev...using sysfs method\n"); - return(list_devices(videodevice)); - } - - LDevices *listDevices = NULL; - listDevices = g_new0( LDevices, 1); - listDevices->listVidDevices = NULL; - - /* Create a list of the devices in the 'v4l2' subsystem. */ - enumerate = udev_enumerate_new(udev); - udev_enumerate_add_match_subsystem(enumerate, "video4linux"); - udev_enumerate_scan_devices(enumerate); - devices = udev_enumerate_get_list_entry(enumerate); - /* For each item enumerated, print out its information. - udev_list_entry_foreach is a macro which expands to - a loop. The loop will be executed for each member in - devices, setting dev_list_entry to a list entry - which contains the device's path in /sys. */ - udev_list_entry_foreach(dev_list_entry, devices) - { - const char *path; - - /* Get the filename of the /sys entry for the device - and create a udev_device object (dev) representing it */ - path = udev_list_entry_get_name(dev_list_entry); - dev = udev_device_new_from_syspath(udev, path); - - /* usb_device_get_devnode() returns the path to the device node - itself in /dev. */ - const gchar *v4l2_device = udev_device_get_devnode(dev); - if (debug) - g_print("Device Node Path: %s\n", v4l2_device); - - /* open the device and query the capabilities */ - if ((fd = v4l2_open(v4l2_device, O_RDWR | O_NONBLOCK, 0)) < 0) - { - g_printerr("ERROR opening V4L2 interface for %s\n", v4l2_device); - v4l2_close(fd); - continue; /*next dir entry*/ - } - - if (xioctl(fd, VIDIOC_QUERYCAP, &v4l2_cap) < 0) - { - perror("VIDIOC_QUERYCAP error"); - g_printerr(" couldn't query device %s\n", v4l2_device); - v4l2_close(fd); - continue; /*next dir entry*/ - } - v4l2_close(fd); - - num_dev++; - /* Update the device list*/ - listDevices->listVidDevices = g_renew(VidDevice, - listDevices->listVidDevices, - num_dev); - listDevices->listVidDevices[num_dev-1].device = g_strdup(v4l2_device); - listDevices->listVidDevices[num_dev-1].name = g_strdup((gchar *) v4l2_cap.card); - listDevices->listVidDevices[num_dev-1].driver = g_strdup((gchar *) v4l2_cap.driver); - listDevices->listVidDevices[num_dev-1].location = g_strdup((gchar *) v4l2_cap.bus_info); - listDevices->listVidDevices[num_dev-1].valid = 1; - if(g_strcmp0(videodevice,listDevices->listVidDevices[num_dev-1].device)==0) - { - listDevices->listVidDevices[num_dev-1].current = 1; - listDevices->current_device = num_dev-1; - } - else - listDevices->listVidDevices[num_dev-1].current = 0; - - /* The device pointed to by dev contains information about - the v4l2 device. In order to get information about the - USB device, get the parent device with the - subsystem/devtype pair of "usb"/"usb_device". This will - be several levels up the tree, but the function will find - it.*/ - dev = udev_device_get_parent_with_subsystem_devtype( - dev, - "usb", - "usb_device"); - if (!dev) - { - printf("Unable to find parent usb device."); - continue; - } - - /* From here, we can call get_sysattr_value() for each file - in the device's /sys entry. The strings passed into these - functions (idProduct, idVendor, serial, etc.) correspond - directly to the files in the directory which represents - the USB device. Note that USB strings are Unicode, UCS2 - encoded, but the strings returned from - udev_device_get_sysattr_value() are UTF-8 encoded. */ - if (debug) - { - g_print(" VID/PID: %s %s\n", - udev_device_get_sysattr_value(dev,"idVendor"), - udev_device_get_sysattr_value(dev, "idProduct")); - g_print(" %s\n %s\n", - udev_device_get_sysattr_value(dev,"manufacturer"), - udev_device_get_sysattr_value(dev,"product")); - g_print(" serial: %s\n", - udev_device_get_sysattr_value(dev, "serial")); - g_print(" busnum: %s\n", - udev_device_get_sysattr_value(dev, "busnum")); - g_print(" devnum: %s\n", - udev_device_get_sysattr_value(dev, "devnum")); - } - - listDevices->listVidDevices[num_dev-1].vendor = g_ascii_strtoull(udev_device_get_sysattr_value(dev,"idVendor"), NULL, 16); - listDevices->listVidDevices[num_dev-1].product = g_ascii_strtoull(udev_device_get_sysattr_value(dev, "idProduct"), NULL, 16); - listDevices->listVidDevices[num_dev-1].busnum = g_ascii_strtoull(udev_device_get_sysattr_value(dev, "busnum"), NULL, 16); - listDevices->listVidDevices[num_dev-1].devnum = g_ascii_strtoull(udev_device_get_sysattr_value(dev, "devnum"), NULL, 16); - - udev_device_unref(dev); - } - /* Free the enumerator object */ - udev_enumerate_unref(enumerate); - - listDevices->num_devices = num_dev; - return(listDevices); - -} - -/*clean video devices list - * args: listVidDevices: array of VidDevice (list of video devices) - * numb_devices: number of existing supported video devices - * - * returns: void - */ -void freeDevices(LDevices *listDevices) -{ - int i=0; - - for(i=0;i<(listDevices->num_devices);i++) - { - g_free(listDevices->listVidDevices[i].device); - g_free(listDevices->listVidDevices[i].name); - g_free(listDevices->listVidDevices[i].driver); - g_free(listDevices->listVidDevices[i].location); - } - g_free(listDevices->listVidDevices); - g_free(listDevices); -} diff -Nru guvcview-1.7.3/src/v4l2_devices.h guvcview-2.0.1+ubuntu1~ppa1/src/v4l2_devices.h --- guvcview-1.7.3/src/v4l2_devices.h 2014-03-24 22:56:28.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/src/v4l2_devices.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,63 +0,0 @@ -/*******************************************************************************# -# guvcview http://guvcview.sourceforge.net # -# # -# Paulo Assis # -# # -# This program is free software; you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation; either version 2 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program; if not, write to the Free Software # -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# # -********************************************************************************/ - -#ifndef V4L2_DEVICES_H -#define V4L2_DEVICES_H - -#include - -typedef struct _VidDevice -{ - char *device; - char *name; - char *driver; - char *location; - guint vendor; - guint product; - int valid; - int current; - guint64 busnum; - guint64 devnum; -} VidDevice; - -typedef struct _LDevices -{ - VidDevice *listVidDevices; - int num_devices; - int current_device; -} LDevices; - -/* enumerates system video devices - * by checking /sys/class/video4linux - * args: - * videodevice: current device string (default "/dev/video0") - * - * returns: pointer to LDevices struct containing the video devices list */ -LDevices *enum_devices( gchar *videodevice, struct udev *udev, int debug); - -/*clean video devices list - * args: - * listDevices: pointer to LDevices struct containing the video devices list - * - * returns: void */ -void freeDevices(LDevices *listDevices); - -#endif diff -Nru guvcview-1.7.3/src/v4l2_dyna_ctrls.c guvcview-2.0.1+ubuntu1~ppa1/src/v4l2_dyna_ctrls.c --- guvcview-1.7.3/src/v4l2_dyna_ctrls.c 2014-03-24 22:56:28.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/src/v4l2_dyna_ctrls.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,306 +0,0 @@ -/*******************************************************************************# -# guvcview http://guvcview.sourceforge.net # -# # -# Paulo Assis # -# # -# This program is free software; you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation; either version 2 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program; if not, write to the Free Software # -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# # -********************************************************************************/ - -#include -#include -#include -/* support for internationalization - i18n */ -#include -#include - -#include "v4l2uvc.h" -#include "v4l2_controls.h" -#include "v4l2_dyna_ctrls.h" - -/* some Logitech webcams have pan/tilt/focus controls */ -#define LENGTH_OF_XU_CTR (6) -#define LENGTH_OF_XU_MAP (9) - -/* -static struct uvc_xu_control_info xu_ctrls[] = -{ - { - .entity = UVC_GUID_LOGITECH_MOTOR_CONTROL, - .selector = XU_MOTORCONTROL_PANTILT_RELATIVE, - .index = 0, - .size = 4, - .flags = UVC_CONTROL_SET_CUR | UVC_CONTROL_GET_MIN | UVC_CONTROL_GET_MAX | UVC_CONTROL_GET_DEF | UVC_CONTROL_AUTO_UPDATE - }, - { - .entity = UVC_GUID_LOGITECH_MOTOR_CONTROL, - .selector = XU_MOTORCONTROL_PANTILT_RESET, - .index = 1, - .size = 1, - .flags = UVC_CONTROL_SET_CUR | UVC_CONTROL_GET_MIN | UVC_CONTROL_GET_MAX | UVC_CONTROL_GET_RES | UVC_CONTROL_GET_DEF | UVC_CONTROL_AUTO_UPDATE - }, - { - .entity = UVC_GUID_LOGITECH_MOTOR_CONTROL, - .selector = XU_MOTORCONTROL_FOCUS, - .index = 2, - .size = 6, - .flags = UVC_CONTROL_SET_CUR | UVC_CONTROL_GET_CUR | UVC_CONTROL_GET_MIN | UVC_CONTROL_GET_MAX |UVC_CONTROL_GET_DEF | UVC_CONTROL_AUTO_UPDATE - }, - { - .entity = UVC_GUID_LOGITECH_VIDEO_PIPE, - .selector = XU_COLOR_PROCESSING_DISABLE, - .index = 4, - .size = 1, - .flags = UVC_CONTROL_SET_CUR | UVC_CONTROL_GET_CUR |UVC_CONTROL_GET_MIN | UVC_CONTROL_GET_MAX | UVC_CONTROL_GET_RES | UVC_CONTROL_GET_DEF | UVC_CONTROL_AUTO_UPDATE - }, - { - .entity = UVC_GUID_LOGITECH_VIDEO_PIPE, - .selector = XU_RAW_DATA_BITS_PER_PIXEL, - .index = 7, - .size = 1, - .flags = UVC_CONTROL_SET_CUR | UVC_CONTROL_GET_CUR |UVC_CONTROL_GET_MIN | UVC_CONTROL_GET_MAX | UVC_CONTROL_GET_RES | UVC_CONTROL_GET_DEF | UVC_CONTROL_AUTO_UPDATE - }, - { - .entity = UVC_GUID_LOGITECH_USER_HW_CONTROL, - .selector = XU_HW_CONTROL_LED1, - .index = 0, - .size = 3, - .flags = UVC_CONTROL_SET_CUR | UVC_CONTROL_GET_CUR |UVC_CONTROL_GET_MIN | UVC_CONTROL_GET_MAX | UVC_CONTROL_GET_RES | UVC_CONTROL_GET_DEF | UVC_CONTROL_AUTO_UPDATE - }, - -}; -*/ - -static struct uvc_menu_info led_menu_entry[4] = {{0, "Off"}, - {1, "On"}, - {2, "Blinking"}, - {3, "Auto"}}; - -/* mapping for Pan/Tilt/Focus */ -static struct uvc_xu_control_mapping xu_mappings[] = -{ - { - .id = V4L2_CID_PAN_RELATIVE, - .name = N_("Pan (relative)"), - .entity = UVC_GUID_LOGITECH_MOTOR_CONTROL, - .selector = XU_MOTORCONTROL_PANTILT_RELATIVE, - .size = 16, - .offset = 0, - .v4l2_type = V4L2_CTRL_TYPE_INTEGER, - .data_type = UVC_CTRL_DATA_TYPE_SIGNED, - .menu_info = NULL, - .menu_count = 0, - .reserved = {0,0,0,0} - }, - { - .id = V4L2_CID_TILT_RELATIVE, - .name = N_("Tilt (relative)"), - .entity = UVC_GUID_LOGITECH_MOTOR_CONTROL, - .selector = XU_MOTORCONTROL_PANTILT_RELATIVE, - .size = 16, - .offset = 16, - .v4l2_type = V4L2_CTRL_TYPE_INTEGER, - .data_type = UVC_CTRL_DATA_TYPE_SIGNED, - .menu_info = NULL, - .menu_count = 0, - .reserved = {0,0,0,0} - }, - { - .id = V4L2_CID_PAN_RESET, - .name = N_("Pan Reset"), - .entity = UVC_GUID_LOGITECH_MOTOR_CONTROL, - .selector = XU_MOTORCONTROL_PANTILT_RESET, - .size = 1, - .offset = 0, - .v4l2_type = V4L2_CTRL_TYPE_BUTTON, - .data_type = UVC_CTRL_DATA_TYPE_UNSIGNED, - .menu_info = NULL, - .menu_count = 0, - .reserved = {0,0,0,0} - }, - { - .id = V4L2_CID_TILT_RESET, - .name = N_("Tilt Reset"), - .entity = UVC_GUID_LOGITECH_MOTOR_CONTROL, - .selector = XU_MOTORCONTROL_PANTILT_RESET, - .size = 1, - .offset = 1, - .v4l2_type = V4L2_CTRL_TYPE_BUTTON, - .data_type = UVC_CTRL_DATA_TYPE_UNSIGNED, - .menu_info = NULL, - .menu_count = 0, - .reserved = {0,0,0,0} - }, - { - .id = V4L2_CID_FOCUS_LOGITECH, - .name = N_("Focus (absolute)"), - .entity = UVC_GUID_LOGITECH_MOTOR_CONTROL, - .selector = XU_MOTORCONTROL_FOCUS, - .size = 8, - .offset = 0, - .v4l2_type = V4L2_CTRL_TYPE_INTEGER, - .data_type = UVC_CTRL_DATA_TYPE_UNSIGNED, - .menu_info = NULL, - .menu_count = 0, - .reserved = {0,0,0,0} - }, - { - .id = V4L2_CID_LED1_MODE_LOGITECH, - .name = N_("LED1 Mode"), - .entity = UVC_GUID_LOGITECH_USER_HW_CONTROL, - .selector = XU_HW_CONTROL_LED1, - .size = 8, - .offset = 0, - .v4l2_type = V4L2_CTRL_TYPE_MENU, - .data_type = UVC_CTRL_DATA_TYPE_UNSIGNED, - .menu_info = led_menu_entry, - .menu_count = 4, - .reserved = {0,0,0,0} - }, - { - .id = V4L2_CID_LED1_FREQUENCY_LOGITECH, - .name = N_("LED1 Frequency"), - .entity = UVC_GUID_LOGITECH_USER_HW_CONTROL, - .selector = XU_HW_CONTROL_LED1, - .size = 8, - .offset = 16, - .v4l2_type = V4L2_CTRL_TYPE_INTEGER, - .data_type = UVC_CTRL_DATA_TYPE_UNSIGNED, - .menu_info = NULL, - .menu_count = 0, - .reserved = {0,0,0,0} - }, - { - .id = V4L2_CID_DISABLE_PROCESSING_LOGITECH, - .name = N_("Disable video processing"), - .entity = UVC_GUID_LOGITECH_VIDEO_PIPE, - .selector = XU_COLOR_PROCESSING_DISABLE, - .size = 8, - .offset = 0, - .v4l2_type = V4L2_CTRL_TYPE_BOOLEAN, - .data_type = UVC_CTRL_DATA_TYPE_BOOLEAN, - .menu_info = NULL, - .menu_count = 0, - .reserved = {0,0,0,0} - }, - { - .id = V4L2_CID_RAW_BITS_PER_PIXEL_LOGITECH, - .name = N_("Raw bits per pixel"), - .entity = UVC_GUID_LOGITECH_VIDEO_PIPE, - .selector = XU_RAW_DATA_BITS_PER_PIXEL, - .size = 8, - .offset = 0, - .v4l2_type = V4L2_CTRL_TYPE_INTEGER, - .data_type = UVC_CTRL_DATA_TYPE_UNSIGNED, - .menu_info = NULL, - .menu_count = 0, - .reserved = {0,0,0,0} - }, - -}; - -int initDynCtrls(int hdevice) -{ - int i=0; - int err=0; - /* after adding the controls, add the mapping now */ - for ( i=0; i # -# # -# This program is free software; you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation; either version 2 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program; if not, write to the Free Software # -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# # -********************************************************************************/ - -#ifndef V4L2_DYNA_CTRLS_H -#define V4L2_DYNA_CTRLS_H - -#include -#include - -/* A.8. Video Class-Specific Request Codes */ -#define UVC_RC_UNDEFINED 0x00 -#define UVC_SET_CUR 0x01 -#define UVC_GET_CUR 0x81 -#define UVC_GET_MIN 0x82 -#define UVC_GET_MAX 0x83 -#define UVC_GET_RES 0x84 -#define UVC_GET_LEN 0x85 -#define UVC_GET_INFO 0x86 -#define UVC_GET_DEF 0x87 - -/* - * Dynamic controls - */ - -#define V4L2_CID_BASE_EXTCTR 0x0A046D01 -#define V4L2_CID_BASE_LOGITECH V4L2_CID_BASE_EXTCTR -//#define V4L2_CID_PAN_RELATIVE_LOGITECH V4L2_CID_BASE_LOGITECH -//#define V4L2_CID_TILT_RELATIVE_LOGITECH V4L2_CID_BASE_LOGITECH+1 -#define V4L2_CID_PANTILT_RESET_LOGITECH V4L2_CID_BASE_LOGITECH+2 - -/*this should realy be replaced by V4L2_CID_FOCUS_ABSOLUTE in libwebcam*/ -#define V4L2_CID_FOCUS_LOGITECH V4L2_CID_BASE_LOGITECH+3 -#define V4L2_CID_LED1_MODE_LOGITECH V4L2_CID_BASE_LOGITECH+4 -#define V4L2_CID_LED1_FREQUENCY_LOGITECH V4L2_CID_BASE_LOGITECH+5 -#define V4L2_CID_DISABLE_PROCESSING_LOGITECH V4L2_CID_BASE_LOGITECH+0x70 -#define V4L2_CID_RAW_BITS_PER_PIXEL_LOGITECH V4L2_CID_BASE_LOGITECH+0x71 -#define V4L2_CID_LAST_EXTCTR V4L2_CID_RAW_BITS_PER_PIXEL_LOGITECH - -#define UVC_GUID_LOGITECH_VIDEO_PIPE {0x82, 0x06, 0x61, 0x63, 0x70, 0x50, 0xab, 0x49, 0xb8, 0xcc, 0xb3, 0x85, 0x5e, 0x8d, 0x22, 0x50} -#define UVC_GUID_LOGITECH_MOTOR_CONTROL {0x82, 0x06, 0x61, 0x63, 0x70, 0x50, 0xab, 0x49, 0xb8, 0xcc, 0xb3, 0x85, 0x5e, 0x8d, 0x22, 0x56} -#define UVC_GUID_LOGITECH_USER_HW_CONTROL {0x82, 0x06, 0x61, 0x63, 0x70, 0x50, 0xab, 0x49, 0xb8, 0xcc, 0xb3, 0x85, 0x5e, 0x8d, 0x22, 0x1f} - -#define XU_HW_CONTROL_LED1 1 -#define XU_MOTORCONTROL_PANTILT_RELATIVE 1 -#define XU_MOTORCONTROL_PANTILT_RESET 2 -#define XU_MOTORCONTROL_FOCUS 3 -#define XU_COLOR_PROCESSING_DISABLE 5 -#define XU_RAW_DATA_BITS_PER_PIXEL 8 - - -int initDynCtrls(int hdevice); -uint16_t get_length_xu_control(int hdevice, uint8_t unit, uint8_t selector); -uint8_t get_info_xu_control(int hdevice, uint8_t unit, uint8_t selector); -int query_xu_control(int hdevice, uint8_t unit, uint8_t selector, uint8_t query, void *data); - -#endif diff -Nru guvcview-1.7.3/src/v4l2_formats.c guvcview-2.0.1+ubuntu1~ppa1/src/v4l2_formats.c --- guvcview-1.7.3/src/v4l2_formats.c 2014-03-24 22:56:28.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/src/v4l2_formats.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,624 +0,0 @@ -/*******************************************************************************# -# guvcview http://guvcview.sourceforge.net # -# # -# Paulo Assis # -# Nobuhiro Iwamatsu # -# # -# This program is free software; you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation; either version 2 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program; if not, write to the Free Software # -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# # -********************************************************************************/ - -#include -#include -#include -#include -#include -#include -#include "v4l2uvc.h" -#include "v4l2_formats.h" - -#define SUP_PIX_FMT 26 //total number of software(guvcview) - //supported formats (list size) - -static SupFormats listSupFormats[SUP_PIX_FMT] = //list of software supported formats -{ - { - .format = V4L2_PIX_FMT_H264, - .mode = "h264", - .hardware = 0 - //.decoder = decode_jpeg - }, - { - .format = V4L2_PIX_FMT_MJPEG, - .mode = "mjpg", - .hardware = 0 - //.decoder = decode_jpeg - }, - { - .format = V4L2_PIX_FMT_JPEG, - .mode ="jpeg", - .hardware = 0 - //.decoder = decode_jpeg - }, - { - .format = V4L2_PIX_FMT_YUYV, - .mode = "yuyv", - .hardware = 0 - }, - { - .format = V4L2_PIX_FMT_YVYU, - .mode = "yvyu", - .hardware = 0 - }, - { - .format = V4L2_PIX_FMT_UYVY, - .mode = "uyvy", - .hardware = 0 - }, - { - .format = V4L2_PIX_FMT_YYUV, - .mode = "yyuv", - .hardware = 0 - }, - { - .format = V4L2_PIX_FMT_Y41P, - .mode = "y41p", - .hardware = 0 - }, - { - .format = V4L2_PIX_FMT_GREY, - .mode = "grey", - .hardware = 0 - }, - { - .format = V4L2_PIX_FMT_Y10BPACK, - .mode = "y10b", - .hardware = 0 - }, - { - .format = V4L2_PIX_FMT_Y16, - .mode = "y16 ", - .hardware = 0 - }, - { - .format = V4L2_PIX_FMT_YUV420, - .mode = "yu12", - .hardware = 0 - }, - { - .format = V4L2_PIX_FMT_YVU420, - .mode = "yv12", - .hardware = 0 - }, - { - .format = V4L2_PIX_FMT_NV12, - .mode = "nv12", - .hardware = 0 - }, - { - .format = V4L2_PIX_FMT_NV21, - .mode = "nv21", - .hardware = 0 - }, - { - .format = V4L2_PIX_FMT_NV16, - .mode = "nv16", - .hardware = 0 - }, - { - .format = V4L2_PIX_FMT_NV61, - .mode = "nv61", - .hardware = 0 - }, - { - .format = V4L2_PIX_FMT_SPCA501, - .mode = "s501", - .hardware = 0 - }, - { - .format = V4L2_PIX_FMT_SPCA505, - .mode = "s505", - .hardware = 0 - }, - { - .format = V4L2_PIX_FMT_SPCA508, - .mode = "s508", - .hardware = 0 - }, - { - .format = V4L2_PIX_FMT_SGBRG8, - .mode = "gbrg", - .hardware = 0 - }, - { - .format = V4L2_PIX_FMT_SGRBG8, - .mode = "grbg", - .hardware = 0 - }, - { - .format = V4L2_PIX_FMT_SBGGR8, - .mode = "ba81", - .hardware = 0 - }, - { - .format = V4L2_PIX_FMT_SRGGB8, - .mode = "rggb", - .hardware = 0 - }, - { - .format = V4L2_PIX_FMT_RGB24, - .mode = "rgb3", - .hardware = 0 - }, - { - .format = V4L2_PIX_FMT_BGR24, - .mode = "bgr3", - .hardware = 0 - } -}; - -/* check if format is supported by guvcview - * args: - * pixfmt: V4L2 pixel format - * return index from supported devices list - * or -1 if not supported */ -int check_PixFormat(int pixfmt) -{ - int i=0; - for (i=0; i 0) return (i); /*supported by hardware*/ - } - } - return (-1); - -} - -/* convert v4l2 pix format to mode (Fourcc) - * args: - * pixfmt: V4L2 pixel format - * mode: fourcc string (lower case) - * returns 1 on success - * and -1 on failure (not supported) */ -int get_PixMode(int pixfmt, char *mode) -{ - int i=0; - for (i=0; inumb_formats;i++) - { - if(format == listFormats->listVidFormats[i].format) - return (i); - } - return (-1); -} - -/* clean video formats list - * args: - * listFormats: struct containing list of available video formats - * - * returns: void */ -void freeFormats(LFormats *listFormats) -{ - if(listFormats == NULL) - return; - - if(listFormats->listVidFormats == NULL) - { - g_free(listFormats); - return; - } - - int i=0; - int j=0; - for(i=0;inumb_formats;i++) - { - if(listFormats->listVidFormats[i].listVidCap != NULL) - { - for(j=0;jlistVidFormats[i].numb_res;j++) - { - //g_free should handle NULL but we check it anyway - if(listFormats->listVidFormats[i].listVidCap[j].framerate_num != NULL) - g_free(listFormats->listVidFormats[i].listVidCap[j].framerate_num); - - if(listFormats->listVidFormats[i].listVidCap[j].framerate_denom != NULL) - g_free(listFormats->listVidFormats[i].listVidCap[j].framerate_denom); - } - g_free(listFormats->listVidFormats[i].listVidCap); - } - } - g_free(listFormats->listVidFormats); - g_free(listFormats); -} - -/* enumerate frame intervals (fps) - * args: - * listVidFormats: array of VidFormats (list of video formats) - * pixfmt: v4l2 pixel format that we want to list frame intervals for - * width: video width that we want to list frame intervals for - * height: video height that we want to list frame intervals for - * fmtind: current index of format list - * fsizeind: current index of frame size list - * fd: device file descriptor - * - * returns 0 if enumeration succeded or errno otherwise */ -static int enum_frame_intervals(VidFormats *listVidFormats, __u32 pixfmt, __u32 width, __u32 height, - int fmtind, int fsizeind, int fd) -{ - int ret=0; - struct v4l2_frmivalenum fival; - int list_fps=0; - memset(&fival, 0, sizeof(fival)); - fival.index = 0; - fival.pixel_format = pixfmt; - fival.width = width; - fival.height = height; - listVidFormats[fmtind-1].listVidCap[fsizeind-1].framerate_num=NULL; - listVidFormats[fmtind-1].listVidCap[fsizeind-1].framerate_denom=NULL; - - g_print("\tTime interval between frame: "); - while ((ret = xioctl(fd, VIDIOC_ENUM_FRAMEINTERVALS, &fival)) == 0) - { - fival.index++; - if (fival.type == V4L2_FRMIVAL_TYPE_DISCRETE) - { - g_print("%u/%u, ", fival.discrete.numerator, fival.discrete.denominator); - - list_fps++; - listVidFormats[fmtind-1].listVidCap[fsizeind-1].framerate_num = g_renew( - int, listVidFormats[fmtind-1].listVidCap[fsizeind-1].framerate_num, list_fps); - listVidFormats[fmtind-1].listVidCap[fsizeind-1].framerate_denom = g_renew( - int, listVidFormats[fmtind-1].listVidCap[fsizeind-1].framerate_denom, list_fps); - - listVidFormats[fmtind-1].listVidCap[fsizeind-1].framerate_num[list_fps-1] = fival.discrete.numerator; - listVidFormats[fmtind-1].listVidCap[fsizeind-1].framerate_denom[list_fps-1] = fival.discrete.denominator; - } - else if (fival.type == V4L2_FRMIVAL_TYPE_CONTINUOUS) - { - g_print("{min { %u/%u } .. max { %u/%u } }, ", - fival.stepwise.min.numerator, fival.stepwise.min.numerator, - fival.stepwise.max.denominator, fival.stepwise.max.denominator); - break; - } - else if (fival.type == V4L2_FRMIVAL_TYPE_STEPWISE) - { - g_print("{min { %u/%u } .. max { %u/%u } / " - "stepsize { %u/%u } }, ", - fival.stepwise.min.numerator, fival.stepwise.min.denominator, - fival.stepwise.max.numerator, fival.stepwise.max.denominator, - fival.stepwise.step.numerator, fival.stepwise.step.denominator); - break; - } - } - - if (list_fps==0) - { - listVidFormats[fmtind-1].listVidCap[fsizeind-1].numb_frates = 1; - listVidFormats[fmtind-1].listVidCap[fsizeind-1].framerate_num = g_renew( - int, listVidFormats[fmtind-1].listVidCap[fsizeind-1].framerate_num, 1); - listVidFormats[fmtind-1].listVidCap[fsizeind-1].framerate_denom = g_renew( - int, listVidFormats[fmtind-1].listVidCap[fsizeind-1].framerate_denom, 1); - - listVidFormats[fmtind-1].listVidCap[fsizeind-1].framerate_num[0] = 1; - listVidFormats[fmtind-1].listVidCap[fsizeind-1].framerate_denom[0] = 1; - } - else - listVidFormats[fmtind-1].listVidCap[fsizeind-1].numb_frates = list_fps; - - g_print("\n"); - if (ret != 0 && errno != EINVAL) - { - perror("VIDIOC_ENUM_FRAMEINTERVALS - Error enumerating frame intervals"); - return errno; - } - return 0; -} - -/* enumerate frame sizes - * args: - * listVidFormats: array of VidFormats (list of video formats) - * pixfmt: v4l2 pixel format that we want to list frame sizes for - * fmtind: format list current index - * width: pointer to integer containing the selected video width - * height: pointer to integer containing the selected video height - * fd: device file descriptor - * - * returns 0 if enumeration succeded or errno otherwise */ -static int enum_frame_sizes(VidFormats *listVidFormats, __u32 pixfmt, int fmtind, int *width, int *height, int fd) -{ - int ret=0; - int fsizeind=0; /*index for supported sizes*/ - listVidFormats[fmtind-1].listVidCap = NULL; - struct v4l2_frmsizeenum fsize; - - memset(&fsize, 0, sizeof(fsize)); - fsize.index = 0; - fsize.pixel_format = pixfmt; - while ((ret = xioctl(fd, VIDIOC_ENUM_FRAMESIZES, &fsize)) == 0) - { - fsize.index++; - if (fsize.type == V4L2_FRMSIZE_TYPE_DISCRETE) - { - g_print("{ discrete: width = %u, height = %u }\n", - fsize.discrete.width, fsize.discrete.height); - - fsizeind++; - listVidFormats[fmtind-1].listVidCap = g_renew(VidCap, - listVidFormats[fmtind-1].listVidCap, - fsizeind); - - listVidFormats[fmtind-1].listVidCap[fsizeind-1].width = fsize.discrete.width; - listVidFormats[fmtind-1].listVidCap[fsizeind-1].height = fsize.discrete.height; - - ret = enum_frame_intervals(listVidFormats, - pixfmt, - fsize.discrete.width, - fsize.discrete.height, - fmtind, - fsizeind, - fd); - - if (ret != 0) perror(" Unable to enumerate frame sizes"); - } - else if (fsize.type == V4L2_FRMSIZE_TYPE_CONTINUOUS) - { - g_print("{ continuous: min { width = %u, height = %u } .. " - "max { width = %u, height = %u } }\n", - fsize.stepwise.min_width, fsize.stepwise.min_height, - fsize.stepwise.max_width, fsize.stepwise.max_height); - g_print(" will not enumerate frame intervals.\n"); - } - else if (fsize.type == V4L2_FRMSIZE_TYPE_STEPWISE) - { - g_print("{ stepwise: min { width = %u, height = %u } .. " - "max { width = %u, height = %u } / " - "stepsize { width = %u, height = %u } }\n", - fsize.stepwise.min_width, fsize.stepwise.min_height, - fsize.stepwise.max_width, fsize.stepwise.max_height, - fsize.stepwise.step_width, fsize.stepwise.step_height); - g_print(" will not enumerate frame intervals.\n"); - } - else - { - g_printerr(" fsize.type not supported: %d\n", fsize.type); - g_printerr(" (Discrete: %d Continuous: %d Stepwise: %d)\n", - V4L2_FRMSIZE_TYPE_DISCRETE, - V4L2_FRMSIZE_TYPE_CONTINUOUS, - V4L2_FRMSIZE_TYPE_STEPWISE); - } - } - if (ret != 0 && errno != EINVAL) - { - perror("VIDIOC_ENUM_FRAMESIZES - Error enumerating frame sizes"); - return errno; - } - else if ((ret != 0) && (fsizeind == 0)) - { - /* ------ some drivers don't enumerate frame sizes ------ */ - /* negotiate with VIDIOC_TRY_FMT instead */ - - fsizeind++; - struct v4l2_format fmt; - fmt.type = V4L2_BUF_TYPE_VIDEO_CAPTURE; - fmt.fmt.pix.width = *width; - fmt.fmt.pix.height = *height; - fmt.fmt.pix.pixelformat = pixfmt; - fmt.fmt.pix.field = V4L2_FIELD_ANY; - ret = xioctl(fd, VIDIOC_TRY_FMT, &fmt); - /*use the returned values*/ - *width = fmt.fmt.pix.width; - *height = fmt.fmt.pix.height; - g_print("{ VIDIOC_TRY_FMT : width = %u, height = %u }\n", *width, *height); - g_print("fmtind:%i fsizeind: %i\n",fmtind,fsizeind); - if(listVidFormats[fmtind-1].listVidCap == NULL) - { - listVidFormats[fmtind-1].listVidCap = g_renew( VidCap, - listVidFormats[fmtind-1].listVidCap, - fsizeind); - listVidFormats[fmtind-1].listVidCap[0].framerate_num = NULL; - listVidFormats[fmtind-1].listVidCap[0].framerate_num = g_renew( int, - listVidFormats[fmtind-1].listVidCap[0].framerate_num, - 1); - listVidFormats[fmtind-1].listVidCap[0].framerate_denom = NULL; - listVidFormats[fmtind-1].listVidCap[0].framerate_denom = g_renew( int, - listVidFormats[fmtind-1].listVidCap[0].framerate_denom, - 1); - } - else - { - g_printerr("assert failed: listVidCap not Null\n"); - return (-2); - } - listVidFormats[fmtind-1].listVidCap[0].width = *width; - listVidFormats[fmtind-1].listVidCap[0].height = *height; - listVidFormats[fmtind-1].listVidCap[0].framerate_num[0] = 1; - listVidFormats[fmtind-1].listVidCap[0].framerate_denom[0] = 25; - listVidFormats[fmtind-1].listVidCap[0].numb_frates = 1; - } - - listVidFormats[fmtind-1].numb_res=fsizeind; - return 0; -} - -/* enumerate frames (formats, sizes and fps) - * args: - * width: current selected width - * height: current selected height - * fd: device file descriptor - * - * returns: pointer to LFormats struct containing list of available frame formats */ -LFormats *enum_frame_formats(int *width, int *height, int fd) -{ - int ret=0; - int fmtind=0; - struct v4l2_fmtdesc fmt; - memset(&fmt, 0, sizeof(fmt)); - fmt.index = 0; - fmt.type = V4L2_BUF_TYPE_VIDEO_CAPTURE; - LFormats *listFormats = NULL; - listFormats = g_new0 ( LFormats, 1); - listFormats->listVidFormats = NULL; - - while ((ret = xioctl(fd, VIDIOC_ENUM_FMT, &fmt)) == 0) - { - fmt.index++; - g_print("{ pixelformat = '%c%c%c%c', description = '%s' }\n", - fmt.pixelformat & 0xFF, (fmt.pixelformat >> 8) & 0xFF, - (fmt.pixelformat >> 16) & 0xFF, (fmt.pixelformat >> 24) & 0xFF, - fmt.description); - /*check if format is supported by guvcview, set hardware flag and allocate on device list*/ - if((ret=set_SupPixFormat(fmt.pixelformat)) >= 0) - { - fmtind++; - listFormats->listVidFormats = g_renew(VidFormats, listFormats->listVidFormats, fmtind); - listFormats->listVidFormats[fmtind-1].format=fmt.pixelformat; - g_snprintf(listFormats->listVidFormats[fmtind-1].fourcc,5,"%c%c%c%c", - fmt.pixelformat & 0xFF, (fmt.pixelformat >> 8) & 0xFF, - (fmt.pixelformat >> 16) & 0xFF, (fmt.pixelformat >> 24) & 0xFF); - //enumerate frame sizes - ret = enum_frame_sizes(listFormats->listVidFormats, fmt.pixelformat, fmtind, width, height, fd); - if (ret != 0) - perror(" Unable to enumerate frame sizes.\n"); - } - else - { - g_printerr(" { not supported - request format(%i) support at http://guvcview.sourceforge.net }\n", - fmt.pixelformat); - } - } - if (errno != EINVAL) { - perror("VIDIOC_ENUM_FMT - Error enumerating frame formats"); - } - listFormats->numb_formats=fmtind; - return (listFormats); -} diff -Nru guvcview-1.7.3/src/v4l2_formats.h guvcview-2.0.1+ubuntu1~ppa1/src/v4l2_formats.h --- guvcview-1.7.3/src/v4l2_formats.h 2014-03-24 22:56:28.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/src/v4l2_formats.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,235 +0,0 @@ -/*******************************************************************************# -# guvcview http://guvcview.sourceforge.net # -# # -# Paulo Assis # -# # -# This program is free software; you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation; either version 2 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program; if not, write to the Free Software # -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# # -********************************************************************************/ -#ifndef V4L2_FORMATS_H -#define V4L2_FORMATS_H - -#include - -/* (Patch) define all supported formats - already done in videodev2.h*/ -#ifndef V4L2_PIX_FMT_MJPEG -#define V4L2_PIX_FMT_MJPEG v4l2_fourcc('M', 'J', 'P', 'G') /* MJPEG stream */ -#endif - -#ifndef V4L2_PIX_FMT_JPEG -#define V4L2_PIX_FMT_JPEG v4l2_fourcc('J', 'P', 'E', 'G') /* JPEG stream */ -#endif - -#ifndef V4L2_PIX_FMT_YUYV -#define V4L2_PIX_FMT_YUYV v4l2_fourcc('Y','U','Y','V') /* YUV 4:2:2 */ -#endif - -#ifndef V4L2_PIX_FMT_YVYU -#define V4L2_PIX_FMT_YVYU v4l2_fourcc('Y','V','Y','U') /* YUV 4:2:2 */ -#endif - -#ifndef V4L2_PIX_FMT_UYVY -#define V4L2_PIX_FMT_UYVY v4l2_fourcc('U','Y','V','Y') /* YUV 4:2:2 */ -#endif - -#ifndef V4L2_PIX_FMT_YYUV -#define V4L2_PIX_FMT_YYUV v4l2_fourcc('Y','Y','U','V') /* YUV 4:2:2 */ -#endif - -#ifndef V4L2_PIX_FMT_YUV420 -#define V4L2_PIX_FMT_YUV420 v4l2_fourcc('Y','U','1','2') /* YUV 4:2:0 Planar */ -#endif - -#ifndef V4L2_PIX_FMT_YVU420 -#define V4L2_PIX_FMT_YVU420 v4l2_fourcc('Y','V','1','2') /* YUV 4:2:0 Planar */ -#endif - -#ifndef V4L2_PIX_FMT_NV12 -#define V4L2_PIX_FMT_NV12 v4l2_fourcc('N','V','1','2') /* YUV 4:2:0 Planar (u/v) interleaved */ -#endif - -#ifndef V4L2_PIX_FMT_NV21 -#define V4L2_PIX_FMT_NV21 v4l2_fourcc('N','V','2','1') /* YUV 4:2:0 Planar (v/u) interleaved */ -#endif - -#ifndef V4L2_PIX_FMT_NV16 -#define V4L2_PIX_FMT_NV16 v4l2_fourcc('N','V','1','6') /* YUV 4:2:2 Planar (u/v) interleaved */ -#endif - -#ifndef V4L2_PIX_FMT_NV61 -#define V4L2_PIX_FMT_NV61 v4l2_fourcc('N','V','6','1') /* YUV 4:2:2 Planar (v/u) interleaved */ -#endif - -#ifndef V4L2_PIX_FMT_Y41P -#define V4L2_PIX_FMT_Y41P v4l2_fourcc('Y','4','1','P') /* YUV 4:1:1 */ -#endif - -#ifndef V4L2_PIX_FMT_GREY -#define V4L2_PIX_FMT_GREY v4l2_fourcc('G','R','E','Y') /* Y only */ -#endif - -#ifndef V4L2_PIX_FMT_Y10BPACK -#define V4L2_PIX_FMT_Y10BPACK v4l2_fourcc('Y','1','0','B') /* Y only (10 bit bit-packed array) */ -#endif - -#ifndef V4L2_PIX_FMT_Y16 -#define V4L2_PIX_FMT_Y16 v4l2_fourcc('Y','1','6',' ') /* Y only (16 bit) */ -#endif - -#ifndef V4L2_PIX_FMT_SPCA501 -#define V4L2_PIX_FMT_SPCA501 v4l2_fourcc('S','5','0','1') /* YUYV - by line */ -#endif - -#ifndef V4L2_PIX_FMT_SPCA505 -#define V4L2_PIX_FMT_SPCA505 v4l2_fourcc('S','5','0','5') /* YYUV - by line */ -#endif - -#ifndef V4L2_PIX_FMT_SPCA508 -#define V4L2_PIX_FMT_SPCA508 v4l2_fourcc('S','5','0','8') /* YUVY - by line */ -#endif - -#ifndef V4L2_PIX_FMT_SGBRG8 -#define V4L2_PIX_FMT_SGBRG8 v4l2_fourcc('G', 'B', 'R', 'G') /* GBGB.. RGRG.. */ -#endif - -#ifndef V4L2_PIX_FMT_SGRBG8 -#define V4L2_PIX_FMT_SGRBG8 v4l2_fourcc('G', 'R', 'B', 'G') /* GRGR.. BGBG.. */ -#endif - -#ifndef V4L2_PIX_FMT_SBGGR8 -#define V4L2_PIX_FMT_SBGGR8 v4l2_fourcc('B', 'A', '8', '1') /* BGBG.. GRGR.. */ -#endif - -#ifndef V4L2_PIX_FMT_SRGGB8 -#define V4L2_PIX_FMT_SRGGB8 v4l2_fourcc('R', 'G', 'G', 'B') /* RGRG.. GBGB.. */ -#endif - -#ifndef V4L2_PIX_FMT_BGR24 -#define V4L2_PIX_FMT_BGR24 v4l2_fourcc('B', 'G', 'R', '3') /* 24 BGR-8-8-8 */ -#endif - -#ifndef V4L2_PIX_FMT_RGB24 -#define V4L2_PIX_FMT_RGB24 v4l2_fourcc('R', 'G', 'B', '3') /* 24 RGB-8-8-8 */ -#endif - -#ifndef V4L2_PIX_FMT_H264 -#define V4L2_PIX_FMT_H264 v4l2_fourcc('H', '2', '6', '4') /* H264 with start codes */ -#endif - -typedef struct _SupFormats -{ - int format; //v4l2 software(guvcview) supported format - char mode[5]; //mode (fourcc - lower case) - int hardware; //hardware supported (0, 1 or 2 (H264 through MJPG) ) - //void *decoder; //function to decode format into YUYV -} SupFormats; - -typedef struct _VidCap -{ - int width; //width - int height; //height - int *framerate_num; //list of numerator values - should be 1 in almost all cases - int *framerate_denom; //list of denominator values - gives fps - int numb_frates; //number of frame rates (numerator and denominator lists size) -} VidCap; - -typedef struct _VidFormats -{ - int format; //v4l2 pixel format - char fourcc[5]; //corresponding fourcc (mode) - int numb_res; //available number of resolutions for format (VidCap list size) - VidCap *listVidCap; //list of VidCap for format -} VidFormats; - -typedef struct _LFormats -{ - VidFormats *listVidFormats; //list of VidFormats - int numb_formats; //total number of VidFormats (VidFormats list size) - int current_format; //index of current format in listVidFormats -} LFormats; - -/* check if format is supported by guvcview - * args: - * pixfmt: V4L2 pixel format - * return index from supported devices list - * or -1 if not supported */ -int check_PixFormat(int pixfmt); - -/* check if format is supported by hardware - * args: - * pixfmt: V4L2 pixel format - * return index from supported devices list - * or -1 if not supported */ -int check_SupPixFormat(int pixfmt); - -/* set hardware flag for v4l2 pix format - * args: - * pixfmt: V4L2 pixel format - * return index from supported devices list - * or -1 if not supported */ -int set_SupPixFormat(int pixfmt); - -/* set hardware flag for uvc H264 - * args: - * return index from supported devices list - * or -1 if not supported */ -int set_SupPixFormatUvcH264(); - -/* get hardware flag for uvc H264 - * args: - * return hardware flag from supported - * devices list */ -int get_SupPixFormatUvcH264(); - -/* convert v4l2 pix format to mode (Fourcc) - * args: - * pixfmt: V4L2 pixel format - * mode: fourcc string (lower case) - * returns 1 on success - * and -1 on failure (not supported) */ -int get_PixMode(int pixfmt, char *mode); - -/* converts mode (fourcc) to v4l2 pix format - * args: - * mode: fourcc string (lower case) - * returns v4l2 pix format - * defaults to MJPG if mode not supported */ -int get_PixFormat(char *mode); - -/* enumerate frames (formats, sizes and fps) - * args: - * width: current selected width - * height: current selected height - * fd: device file descriptor - * - * returns: pointer to LFormats struct containing list of available frame formats */ -LFormats *enum_frame_formats( int *width, int *height, int fd); - -/* get Format index from available format list - * args: - * listFormats: available video format list - * format: v4l2 pix format - * - * returns format list index */ -int get_FormatIndex( LFormats *listFormats, int format); - -/* clean video formats list - * args: - * listFormats: struct containing list of available video formats - * - * returns: void */ -void freeFormats(LFormats *listFormats); - -#endif diff -Nru guvcview-1.7.3/src/v4l2uvc.c guvcview-2.0.1+ubuntu1~ppa1/src/v4l2uvc.c --- guvcview-1.7.3/src/v4l2uvc.c 2014-03-24 22:56:28.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/src/v4l2uvc.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,1848 +0,0 @@ -/*******************************************************************************# -# guvcview http://guvcview.sourceforge.net # -# # -# Paulo Assis # -# # -# This program is free software; you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation; either version 2 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program; if not, write to the Free Software # -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# # -********************************************************************************/ - -/*******************************************************************************# -# # -# V4L2 interface # -# # -********************************************************************************/ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -/* support for internationalization - i18n */ -#include - -#include "v4l2uvc.h" -#include "v4l2_dyna_ctrls.h" -#include "uvc_h264.h" -#include "utils.h" -#include "picture.h" -#include "colorspaces.h" -#include "ms_time.h" - -#define __VMUTEX &videoIn->mutex - -/* needed only for language files (not used)*/ - -// V4L2 control strings -#define CSTR_USER_CLASS N_("User Controls") -#define CSTR_BRIGHT N_("Brightness") -#define CSTR_CONTRAST N_("Contrast") -#define CSTR_HUE N_("Hue") -#define CSTR_SATURAT N_("Saturation") -#define CSTR_SHARP N_("Sharpness") -#define CSTR_GAMMA N_("Gamma") -#define CSTR_BLCOMP N_("Backlight Compensation") -#define CSTR_PLFREQ N_("Power Line Frequency") -#define CSTR_HUEAUTO N_("Hue, Automatic") -#define CSTR_FOCUSAUTO N_("Focus, Auto") -#define CSTR_EXPMENU1 N_("Manual Mode") -#define CSTR_EXPMENU2 N_("Auto Mode") -#define CSTR_EXPMENU3 N_("Shutter Priority Mode") -#define CSTR_EXPMENU4 N_("Aperture Priority Mode") -#define CSTR_BLACK_LEVEL N_("Black Level") -#define CSTR_AUTO_WB N_("White Balance, Automatic") -#define CSTR_DO_WB N_("Do White Balance") -#define CSTR_RB N_("Red Balance") -#define CSTR_BB N_("Blue Balance") -#define CSTR_EXP N_("Exposure") -#define CSTR_AUTOGAIN N_("Gain, Automatic") -#define CSTR_GAIN N_("Gain") -#define CSTR_HFLIP N_("Horizontal Flip") -#define CSTR_VFLIP N_("Vertical Flip") -#define CSTR_HCENTER N_("Horizontal Center") -#define CSTR_VCENTER N_("Vertical Center") -#define CSTR_CHR_AGC N_("Chroma AGC") -#define CSTR_CLR_KILL N_("Color Killer") -#define CSTR_COLORFX N_("Color Effects") - -// CAMERA CLASS control strings -#define CSTR_CAMERA_CLASS N_("Camera Controls") -#define CSTR_EXPAUTO N_("Auto Exposure") -#define CSTR_EXPABS N_("Exposure Time, Absolute") -#define CSTR_EXPAUTOPRI N_("Exposure, Dynamic Framerate") -#define CSTR_PAN_REL N_("Pan, Relative") -#define CSTR_TILT_REL N_("Tilt, Relative") -#define CSTR_PAN_RESET N_("Pan, Reset") -#define CSTR_TILT_RESET N_("Tilt, Reset") -#define CSTR_PAN_ABS N_("Pan, Absolute") -#define CSTR_TILT_ABS N_"Tilt, Absolute") -#define CSTR_FOCUS_ABS N_("Focus, Absolute") -#define CSTR_FOCUS_REL N_("Focus, Relative") -#define CSTR_FOCUS_AUTO N_("Focus, Automatic") -#define CSTR_ZOOM_ABS N_("Zoom, Absolute") -#define CSTR_ZOOM_REL N_("Zoom, Relative") -#define CSTR_ZOOM_CONT N_("Zoom, Continuous") -#define CSTR_PRIV N_("Privacy") - -//UVC specific control strings -#define CSTR_EXPAUTO_UVC N_("Exposure, Auto") -#define CSTR_EXPAUTOPRI_UVC N_("Exposure, Auto Priority") -#define CSTR_EXPABS_UVC N_("Exposure (Absolute)") -#define CSTR_WBTAUTO_UVC N_("White Balance Temperature, Auto") -#define CSTR_WBT_UVC N_("White Balance Temperature") -#define CSTR_WBCAUTO_UVC N_("White Balance Component, Auto") -#define CSTR_WBCB_UVC N_("White Balance Blue Component") -#define CSTR_WBCR_UVC N_("White Balance Red Component") - -//libwebcam specific control strings -#define CSTR_FOCUS_LIBWC N_("Focus") -#define CSTR_FOCUSABS_LIBWC N_("Focus (Absolute)") - - -/* ioctl with a number of retries in the case of failure -* args: -* fd - device descriptor -* IOCTL_X - ioctl reference -* arg - pointer to ioctl data -* returns - ioctl result -*/ -int xioctl(int fd, int IOCTL_X, void *arg) -{ - int ret = 0; - int tries= IOCTL_RETRY; - do - { - ret = v4l2_ioctl(fd, IOCTL_X, arg); - } - while (ret && tries-- && - ((errno == EINTR) || (errno == EAGAIN) || (errno == ETIMEDOUT))); - - if (ret && (tries <= 0)) g_printerr("ioctl (%i) retried %i times - giving up: %s)\n", IOCTL_X, IOCTL_RETRY, strerror(errno)); - - return (ret); -} - -/* Query video device capabilities and supported formats - * args: - * vd: pointer to a VdIn struct ( must be allready allocated ) - * - * returns: error code (0- OK) -*/ -static int check_videoIn(struct vdIn *vd, struct GLOBAL *global) -{ - if (vd == NULL) - return VDIN_ALLOC_ERR; - - memset(&vd->cap, 0, sizeof(struct v4l2_capability)); - - if ( xioctl(vd->fd, VIDIOC_QUERYCAP, &vd->cap) < 0 ) - { - perror("VIDIOC_QUERYCAP error"); - return VDIN_QUERYCAP_ERR; - } - - if ( ( vd->cap.capabilities & V4L2_CAP_VIDEO_CAPTURE ) == 0) - { - g_printerr("Error opening device %s: video capture not supported.\n", - vd->videodevice); - return VDIN_QUERYCAP_ERR; - } - if (!(vd->cap.capabilities & V4L2_CAP_STREAMING)) - { - g_printerr("%s does not support streaming i/o\n", - vd->videodevice); - return VDIN_QUERYCAP_ERR; - } - - if(vd->cap_meth == IO_READ) - { - - vd->mem[vd->buf.index] = NULL; - if (!(vd->cap.capabilities & V4L2_CAP_READWRITE)) - { - g_printerr("%s does not support read i/o\n", - vd->videodevice); - return VDIN_READ_ERR; - } - } - g_print("Init. %s (location: %s)\n", vd->cap.card, vd->cap.bus_info); - - vd->listFormats = enum_frame_formats( &global->width, &global->height, vd->fd); - /* - * logitech c930 camera supports h264 through aux stream multiplexing in the MJPG container - * check if H264 UVCX XU h264 controls exist and add a virtual H264 format entry to the list - */ - check_uvc_h264_format(vd, global); - - if(!(vd->listFormats->listVidFormats)) - g_printerr("Couldn't detect any supported formats on your device (%i)\n", vd->listFormats->numb_formats); - return VDIN_OK; -} - -static int unmap_buff(struct vdIn *vd) -{ - int i=0; - int ret=0; - - switch(vd->cap_meth) - { - case IO_READ: - break; - - case IO_MMAP: - for (i = 0; i < NB_BUFFER; i++) - { - // unmap old buffer - if((vd->mem[i] != MAP_FAILED) && vd->buff_length[i]) - if((ret=v4l2_munmap(vd->mem[i], vd->buff_length[i]))<0) - { - perror("couldn't unmap buff"); - } - } - } - return ret; -} - -static int map_buff(struct vdIn *vd) -{ - int i = 0; - // map new buffer - for (i = 0; i < NB_BUFFER; i++) - { - vd->mem[i] = v4l2_mmap( NULL, // start anywhere - vd->buff_length[i], - PROT_READ | PROT_WRITE, - MAP_SHARED, - vd->fd, - vd->buff_offset[i]); - if (vd->mem[i] == MAP_FAILED) - { - perror("Unable to map buffer"); - return VDIN_MMAP_ERR; - } - } - - return (0); -} - -/* Query and map buffers - * args: - * vd: pointer to a VdIn struct ( must be allready allocated ) - * setUNMAP: ( flag )if set unmap old buffers first - * - * returns: error code (0- OK) -*/ -static int query_buff(struct vdIn *vd) -{ - int i=0; - int ret=0; - - switch(vd->cap_meth) - { - case IO_READ: - break; - - case IO_MMAP: - for (i = 0; i < NB_BUFFER; i++) - { - memset(&vd->buf, 0, sizeof(struct v4l2_buffer)); - vd->buf.index = i; - vd->buf.type = V4L2_BUF_TYPE_VIDEO_CAPTURE; - //vd->buf.flags = V4L2_BUF_FLAG_TIMECODE; - //vd->buf.timecode = vd->timecode; - //vd->buf.timestamp.tv_sec = 0;//get frame as soon as possible - //vd->buf.timestamp.tv_usec = 0; - vd->buf.memory = V4L2_MEMORY_MMAP; - ret = xioctl(vd->fd, VIDIOC_QUERYBUF, &vd->buf); - if (ret < 0) - { - perror("VIDIOC_QUERYBUF - Unable to query buffer"); - if(errno == EINVAL) - { - g_printerr("trying with read method instead\n"); - vd->cap_meth = IO_READ; - } - return VDIN_QUERYBUF_ERR; - } - if (vd->buf.length <= 0) - g_printerr("WARNING VIDIOC_QUERYBUF - buffer length is %d\n", - vd->buf.length); - - vd->buff_length[i] = vd->buf.length; - vd->buff_offset[i] = vd->buf.m.offset; - } - // map the new buffers - if(map_buff(vd) != 0) - return VDIN_MMAP_ERR; - } - return VDIN_OK; -} - -/* Queue Buffers - * args: - * vd: pointer to a VdIn struct ( must be allready allocated ) - * - * returns: error code (0- OK) -*/ -static int queue_buff(struct vdIn *vd) -{ - int i=0; - int ret=0; - switch(vd->cap_meth) - { - case IO_READ: - break; - - case IO_MMAP: - default: - for (i = 0; i < NB_BUFFER; ++i) - { - memset(&vd->buf, 0, sizeof(struct v4l2_buffer)); - vd->buf.index = i; - vd->buf.type = V4L2_BUF_TYPE_VIDEO_CAPTURE; - //vd->buf.flags = V4L2_BUF_FLAG_TIMECODE; - //vd->buf.timecode = vd->timecode; - //vd->buf.timestamp.tv_sec = 0;//get frame as soon as possible - //vd->buf.timestamp.tv_usec = 0; - vd->buf.memory = V4L2_MEMORY_MMAP; - ret = xioctl(vd->fd, VIDIOC_QBUF, &vd->buf); - if (ret < 0) - { - perror("VIDIOC_QBUF - Unable to queue buffer"); - return VDIN_QBUF_ERR; - } - } - vd->buf.index = 0; /*reset index*/ - } - return VDIN_OK; -} - -/* - * check buff (*buff) of size (size) for NALU type (type) - * returns: - * buffer pointer to NALU type data if found - * NULL if not found - */ -static uint8_t* check_NALU(uint8_t type, uint8_t *buff, int size) -{ - uint8_t *sp = buff; - uint8_t *nal = NULL; - //search for NALU of type - for(sp = buff; sp < buff + size - 5; ++sp) - { - if(sp[0] == 0x00 && - sp[1] == 0x00 && - sp[2] == 0x00 && - sp[3] == 0x01 && - (sp[4] & 0x1F) == type) - { - //found it - nal = sp + 4; - break; - } - } - - return nal; -} - -/* - * parses a buff (*buff) of size (size) for NALU type (type), - * returns NALU size and sets pointer (NALU) to NALU data - * returns -1 if no NALU found - */ -static int parse_NALU(uint8_t type, uint8_t **NALU, uint8_t *buff, int size) -{ - int nal_size = 0; - uint8_t *sp = NULL; - - //search for NALU of type - uint8_t *nal = check_NALU(type, buff, size); - if(nal == NULL) - { - fprintf(stderr, "uvc H264: could not find NALU of type %i in buffer\n", type); - return -1; - } - - //search for end of NALU - for(sp = nal; sp < buff + size - 4; ++sp) - { - if(sp[0] == 0x00 && - sp[1] == 0x00 && - sp[2] == 0x00 && - sp[3] == 0x01) - { - nal_size = sp - nal; - break; - } - } - - if(!nal_size) - nal_size = buff + size - nal; - - *NALU = g_new0(uint8_t, nal_size); - memcpy(*NALU, nal, nal_size); - - //char test_filename2[20]; - //snprintf(test_filename2, 20, "frame_nalu-%i.raw", type); - //SaveBuff (test_filename2, nal_size, *NALU); - - return nal_size; -} - -/* - * demux a buff (*buff) of size (size) for NALU data, - * returns data size and copies NALU data to h264 buffer - */ -static int demux_NALU(uint8_t *h264_data, uint8_t *buff, int size) -{ - uint8_t *sp = NULL; - uint8_t *pl = NULL; - uint8_t *spl = NULL; - uint8_t *epl = NULL; - uint8_t *ph264 = h264_data; - int total_size = 0; - //segments have a maximum of 64Kb - int seg_size = 64*1024; - - //search for first APP4 marker - for(sp = buff; sp < buff + size - 2; ++sp) - { - if(sp[0] == 0xFF && - sp[1] == 0xE4) - { - spl = sp; //payload start - break; - } - } - - if(spl == buff) - { - fprintf(stderr, "uvc H264 demux: could not find a APP4 marker in buffer\n"); - return -1; - } - - pl = spl + 4; //marker(2) + length(2) - - uint32_t frame_PTS = 0; - frame_PTS = ((uint32_t) pl[18]) << 0; - frame_PTS |= ((uint32_t) pl[19]) << 8; - frame_PTS |= ((uint32_t) pl[20]) << 16; - frame_PTS |= ((uint32_t) pl[21]) << 24; - - pl += 22; //header(22) - - //get payload size - uint32_t payload_size = 0; - payload_size = ((uint32_t) pl[0]) << 0; - payload_size |= ((uint32_t) pl[1]) << 8; - payload_size |= ((uint32_t) pl[2]) << 16; - payload_size |= ((uint32_t) pl[3]) << 24; - - pl +=4; //start of the payload data - epl = pl + payload_size; //end of payload data - if(epl > buff + size) - epl = buff + size; - - //for the first segment remove header size - //marker(2) + length(2) + header(22) + payload size(4) - seg_size = 64*1024 - (pl-spl); - - while(pl + seg_size <= epl) - { - //copy segment to h264 data buffer - memcpy(ph264, pl, seg_size); - ph264 += seg_size; - total_size += seg_size; - - pl += seg_size; //reset to the next segment data - - if(pl[0] != 0xFF || - pl[1] != 0xE4) - { - fprintf(stderr, "uvc H264 demux: no APP4 marker at end of 64K segment\n"); - break; - } - else - pl += 4; //skip marker(2) + length(2) - - seg_size = 64*1024 - 4; //skip marker + length - } - - seg_size = epl - pl; //last segment - if(seg_size > 0) - { - //copy segment to h264 data buffer - memcpy(ph264, pl, seg_size); - ph264 += seg_size; - total_size += seg_size; - } - - //char test_filename2[22]; - //snprintf(test_filename2, 22, "frame-%u.raw", frame_PTS); - //SaveBuff (test_filename2, total_size, h264_data); - - //printf("demuxed frame: PTS: %u; payload size: %u, total size: %u\n", frame_PTS, payload_size, total_size); - return total_size; -} - -/* - * Store the SPS and PPS of uvc H264 stream - * if available in the frame - */ -static int store_extra_data(struct vdIn *vd) -{ - - if(vd->h264_SPS == NULL) - { - vd->h264_SPS_size = parse_NALU( 7, &vd->h264_SPS, vd->h264_frame, vd->buf.bytesused); - - if(vd->h264_SPS_size <= 0 || vd->h264_SPS == NULL) - { - fprintf(stderr, "Could not find SPS (NALU type: 7)\n"); - return -1; - } - else - printf("stored SPS %i bytes of data\n", vd->h264_SPS_size); - } - - if(vd->h264_PPS == NULL) - { - vd->h264_PPS_size = parse_NALU( 8, &vd->h264_PPS, vd->h264_frame, vd->buf.bytesused); - - if(vd->h264_PPS_size <= 0 || vd->h264_PPS == NULL) - { - fprintf(stderr, "Could not find PPS (NALU type: 8)\n"); - return -1; - } - else - printf("stored PPS %i bytes of data\n", vd->h264_PPS_size); - } - - return 0; -} - -/* check/store the last IDR frame - * return: - * 1 if IDR frame - * 0 if non IDR frame - */ -static gboolean is_h264_keyframe (struct vdIn *vd) -{ - //check for a IDR frame type - if(check_NALU(5, vd->h264_frame, vd->buf.bytesused) != NULL) - { - memcpy(vd->h264_last_IDR, vd->h264_frame, vd->buf.bytesused); - vd->h264_last_IDR_size = vd->buf.bytesused; - //printf("IDR frame found in frame %" PRIu64 "\n", vd->frame_index); - return 1; - } - - return 0; -} - -static int demux_h264(uint8_t* h264_data, uint8_t* frame_buffer, int bytesused) -{ - /* - * if it's a muxed stream we must demux it first - */ - if(get_SupPixFormatUvcH264() > 1) - { - return demux_NALU(h264_data, frame_buffer, bytesused); - } - - /* - * store the raw frame in h264 frame buffer - */ - memcpy(h264_data, frame_buffer, bytesused); - return bytesused; - -} - -/* Enable video stream - * args: - * vd: pointer to a VdIn struct ( must be allready initiated) - * - * returns: VIDIOC_STREAMON ioctl result (0- OK) -*/ -int video_enable(struct vdIn *vd) -{ - int type = V4L2_BUF_TYPE_VIDEO_CAPTURE; - int ret=0; - switch(vd->cap_meth) - { - case IO_READ: - //do nothing - break; - - case IO_MMAP: - default: - ret = xioctl(vd->fd, VIDIOC_STREAMON, &type); - if (ret < 0) - { - perror("VIDIOC_STREAMON - Unable to start capture"); - return VDIN_STREAMON_ERR; - } - break; - } - vd->isstreaming = 1; - return 0; -} - -/* Disable video stream - * args: - * vd: pointer to a VdIn struct ( must be allready initiated) - * - * returns: VIDIOC_STREAMOFF ioctl result (0- OK) -*/ -int video_disable(struct vdIn *vd) -{ - int type = V4L2_BUF_TYPE_VIDEO_CAPTURE; - int ret=0; - switch(vd->cap_meth) - { - case IO_READ: - //do nothing - break; - - case IO_MMAP: - default: - ret = xioctl(vd->fd, VIDIOC_STREAMOFF, &type); - if (ret < 0) - { - perror("VIDIOC_STREAMOFF - Unable to stop capture"); - if(errno == 9) vd->isstreaming = 0;/*capture as allready stoped*/ - return VDIN_STREAMOFF_ERR; - } - break; - } - vd->isstreaming = 0; - return 0; -} - -/* gets video stream jpeg compression parameters - * args: - * vd: pointer to a VdIn struct ( must be allready initiated) - * - * returns: VIDIOC_G_JPEGCOMP ioctl result value -*/ -int get_jpegcomp(struct vdIn *vd) -{ - int ret = xioctl(vd->fd, VIDIOC_G_JPEGCOMP, &vd->jpgcomp); - if(!ret) - { - g_print("VIDIOC_G_COMP:\n"); - g_print(" quality: %i\n", vd->jpgcomp.quality); - g_print(" APPn: %i\n", vd->jpgcomp.APPn); - g_print(" APP_len: %i\n", vd->jpgcomp.APP_len); - g_print(" APP_data: %s\n", vd->jpgcomp.APP_data); - g_print(" COM_len: %i\n", vd->jpgcomp.COM_len); - g_print(" COM_data: %s\n", vd->jpgcomp.COM_data); - g_print(" jpeg_markers: 0x%x\n", vd->jpgcomp.jpeg_markers); - } - else - { - perror("VIDIOC_G_COMP:"); - if(errno == EINVAL) - { - vd->jpgcomp.quality = -1; //not supported - g_print(" compression control not supported\n"); - } - } - - return (ret); -} - -/* sets video stream jpeg compression parameters - * args: - * vd: pointer to a VdIn struct ( must be allready initiated) - * - * returns: VIDIOC_S_JPEGCOMP ioctl result value -*/ -int set_jpegcomp(struct vdIn *vd) -{ - int ret = xioctl(vd->fd, VIDIOC_S_JPEGCOMP, &vd->jpgcomp); - if(ret != 0) - { - perror("VIDIOC_S_COMP:"); - if(errno == EINVAL) - { - vd->jpgcomp.quality = -1; //not supported - g_print(" compression control not supported\n"); - } - } - - return (ret); -} - -/* Try/Set device video stream format - * args: - * vd: pointer to a VdIn struct ( must be allready allocated ) - * - * returns: error code ( 0 - VDIN_OK) -*/ -static int init_v4l2(struct vdIn *vd, struct GLOBAL *global)//int *format, int *width, int *height, int *fps, int *fps_num) -{ - int ret = 0; - - // make sure we set a valid format - g_print("checking format: %c%c%c%c\n", - (global->format) & 0xFF, ((global->format) >> 8) & 0xFF, - ((global->format) >> 16) & 0xFF, ((global->format) >> 24) & 0xFF); - - if ((ret=check_SupPixFormat(global->format)) < 0) - { - // not available - Fail so we can check other formats (don't bother trying it) - g_printerr("Format unavailable: %c%c%c%c\n", - (global->format) & 0xFF, ((global->format) >> 8) & 0xFF, - ((global->format) >> 16) & 0xFF, ((global->format) >> 24) & 0xFF); - return VDIN_FORMAT_ERR; - } - - vd->timestamp = 0; - // set format - vd->fmt.type = V4L2_BUF_TYPE_VIDEO_CAPTURE; - vd->fmt.fmt.pix.width = global->width; - vd->fmt.fmt.pix.height = global->height; - vd->fmt.fmt.pix.pixelformat = global->format; - vd->fmt.fmt.pix.field = V4L2_FIELD_ANY; - - //if it's uvc muxed H264 we must use MJPG - if(global->format == V4L2_PIX_FMT_H264 && get_SupPixFormatUvcH264() > 1) - vd->fmt.fmt.pix.pixelformat = V4L2_PIX_FMT_MJPEG; - - - ret = xioctl(vd->fd, VIDIOC_S_FMT, &vd->fmt); - if (ret < 0) - { - perror("VIDIOC_S_FORMAT - Unable to set format"); - return VDIN_FORMAT_ERR; - } - if ((vd->fmt.fmt.pix.width != global->width) || - (vd->fmt.fmt.pix.height != global->height)) - { - g_printerr("Requested Format unavailable: get width %d height %d \n", - vd->fmt.fmt.pix.width, vd->fmt.fmt.pix.height); - global->width = vd->fmt.fmt.pix.width; - global->height = vd->fmt.fmt.pix.height; - } - - /* ----------- FPS --------------*/ - input_set_framerate(vd, &global->fps, &global->fps_num); - - /* - * if it's uvc muxed H264 we must now set UVCX_VIDEO_CONFIG_COMMIT - * with bStreamMuxOption = STREAMMUX_H264 - */ - if(global->format == V4L2_PIX_FMT_H264 && get_SupPixFormatUvcH264() > 1) - set_muxed_h264_format(vd, global); - - //deprecated in v4l2 - still waiting for new API implementation - if(global->format == V4L2_PIX_FMT_MJPEG || global->format == V4L2_PIX_FMT_JPEG) - { - get_jpegcomp(vd); - } - - switch (vd->cap_meth) - { - case IO_READ: //allocate buffer for read - memset(&vd->buf, 0, sizeof(struct v4l2_buffer)); - vd->buf.length = (global->width) * (global->height) * 3; //worst case (rgb) - vd->mem[vd->buf.index] = g_new0(BYTE, vd->buf.length); - break; - - case IO_MMAP: - default: - // request buffers - memset(&vd->rb, 0, sizeof(struct v4l2_requestbuffers)); - vd->rb.count = NB_BUFFER; - vd->rb.type = V4L2_BUF_TYPE_VIDEO_CAPTURE; - vd->rb.memory = V4L2_MEMORY_MMAP; - - ret = xioctl(vd->fd, VIDIOC_REQBUFS, &vd->rb); - if (ret < 0) - { - perror("VIDIOC_REQBUFS - Unable to allocate buffers"); - return VDIN_REQBUFS_ERR; - } - // map the buffers - if (query_buff(vd)) - { - //delete requested buffers - //no need to unmap as mmap failed for sure - memset(&vd->rb, 0, sizeof(struct v4l2_requestbuffers)); - vd->rb.count = 0; - vd->rb.type = V4L2_BUF_TYPE_VIDEO_CAPTURE; - vd->rb.memory = V4L2_MEMORY_MMAP; - if(xioctl(vd->fd, VIDIOC_REQBUFS, &vd->rb)<0) - perror("VIDIOC_REQBUFS - Unable to delete buffers"); - return VDIN_QUERYBUF_ERR; - } - // Queue the buffers - if (queue_buff(vd)) - { - //delete requested buffers - unmap_buff(vd); - memset(&vd->rb, 0, sizeof(struct v4l2_requestbuffers)); - vd->rb.count = 0; - vd->rb.type = V4L2_BUF_TYPE_VIDEO_CAPTURE; - vd->rb.memory = V4L2_MEMORY_MMAP; - if(xioctl(vd->fd, VIDIOC_REQBUFS, &vd->rb)<0) - perror("VIDIOC_REQBUFS - Unable to delete buffers"); - return VDIN_QBUF_ERR; - } - } - - return VDIN_OK; -} - -/* Alloc image buffers for decoding video stream - * args: - * vd: pointer to a VdIn struct ( must be allready allocated ) - * - * returns: error code ( 0 - VDIN_OK) -*/ -static int videoIn_frame_alloca(struct vdIn *vd, int format, int width, int height) -{ - int ret = VDIN_OK; - size_t framebuf_size=0; - size_t tmpbuf_size=0; - - int framesizeIn = (width * height << 1); //2 bytes per pixel - switch (format) - { - case V4L2_PIX_FMT_H264: - vd->h264_frame = g_new0(uint8_t, framesizeIn); - vd->h264_last_IDR = g_new0(uint8_t, framesizeIn); - vd->h264_last_IDR_size = 0; //reset (no frame stored) - if(vd->h264_ctx) - close_h264_decoder(vd->h264_ctx); - vd->h264_ctx = init_h264_decoder(width, height); //init h264 context and fall through - case V4L2_PIX_FMT_JPEG: - case V4L2_PIX_FMT_MJPEG: - // alloc a temp buffer to reconstruct the pict (MJPEG) - tmpbuf_size= framesizeIn; - vd->tmpbuffer = g_new0(uint8_t, tmpbuf_size); - - framebuf_size = width * (height + 8) * 2; - vd->framebuffer = g_new0(uint8_t, framebuf_size); - break; - - case V4L2_PIX_FMT_UYVY: - case V4L2_PIX_FMT_YVYU: - case V4L2_PIX_FMT_YYUV: - case V4L2_PIX_FMT_YUV420: // only needs 3/2 bytes per pixel but we alloc 2 bytes per pixel - case V4L2_PIX_FMT_YVU420: // only needs 3/2 bytes per pixel but we alloc 2 bytes per pixel - case V4L2_PIX_FMT_Y41P: // only needs 3/2 bytes per pixel but we alloc 2 bytes per pixel - case V4L2_PIX_FMT_NV12: - case V4L2_PIX_FMT_NV21: - case V4L2_PIX_FMT_NV16: - case V4L2_PIX_FMT_NV61: - case V4L2_PIX_FMT_SPCA501: - case V4L2_PIX_FMT_SPCA505: - case V4L2_PIX_FMT_SPCA508: - // alloc a temp buffer for converting to YUYV - tmpbuf_size= framesizeIn; - vd->tmpbuffer = g_new0(unsigned char, tmpbuf_size); - framebuf_size = framesizeIn; - vd->framebuffer = g_new0(unsigned char, framebuf_size); - break; - - case V4L2_PIX_FMT_GREY: - // alloc a temp buffer for converting to YUYV - tmpbuf_size= width * height; // 1 byte per pixel - vd->tmpbuffer = g_new0(unsigned char, tmpbuf_size); - framebuf_size = framesizeIn; - vd->framebuffer = g_new0(unsigned char, framebuf_size); - break; - - case V4L2_PIX_FMT_Y10BPACK: - case V4L2_PIX_FMT_Y16: - // alloc a temp buffer for converting to YUYV - tmpbuf_size= width * height * 2; // 2 byte per pixel - vd->tmpbuffer = g_new0(unsigned char, tmpbuf_size); - framebuf_size = framesizeIn; - vd->framebuffer = g_new0(unsigned char, framebuf_size); - break; - - case V4L2_PIX_FMT_YUYV: - // YUYV doesn't need a temp buffer but we will set it if/when - // video processing disable control is checked (bayer processing). - // (logitech cameras only) - framebuf_size = framesizeIn; - vd->framebuffer = g_new0(unsigned char, framebuf_size); - break; - - case V4L2_PIX_FMT_SGBRG8: //0 - case V4L2_PIX_FMT_SGRBG8: //1 - case V4L2_PIX_FMT_SBGGR8: //2 - case V4L2_PIX_FMT_SRGGB8: //3 - // Raw 8 bit bayer - // when grabbing use: - // bayer_to_rgb24(bayer_data, RGB24_data, width, height, 0..3) - // rgb2yuyv(RGB24_data, vd->framebuffer, width, height) - - // alloc a temp buffer for converting to YUYV - // rgb buffer for decoding bayer data - tmpbuf_size = width * height * 3; - vd->tmpbuffer = g_new0(unsigned char, tmpbuf_size); - - framebuf_size = framesizeIn; - vd->framebuffer = g_new0(unsigned char, framebuf_size); - break; - case V4L2_PIX_FMT_RGB24: - case V4L2_PIX_FMT_BGR24: - //rgb or bgr (8-8-8) - // alloc a temp buffer for converting to YUYV - // rgb buffer - //tmpbuf_size = width * height * 3; - //vd->tmpbuffer = g_new0(unsigned char, tmpbuf_size); - - framebuf_size = framesizeIn; - vd->framebuffer = g_new0(unsigned char, framebuf_size); - break; - - default: - g_printerr("(v4l2uvc.c) should never arrive (1)- exit fatal !!\n"); - ret = VDIN_UNKNOWN_ERR; - if(vd->framebuffer) - g_free(vd->framebuffer); - vd->framebuffer = NULL; - if(vd->tmpbuffer) - g_free(vd->tmpbuffer); - vd->tmpbuffer = NULL; - return (ret); - } - - if ((!vd->framebuffer) || (framebuf_size ==0)) - { - g_printerr("couldn't calloc %lu bytes of memory for frame buffer\n", - (unsigned long) framebuf_size); - ret = VDIN_FBALLOC_ERR; - if(vd->framebuffer) - g_free(vd->framebuffer); - vd->framebuffer = NULL; - if(vd->tmpbuffer) - g_free(vd->tmpbuffer); - vd->tmpbuffer = NULL; - return (ret); - } - else - { - int i = 0; - // set framebuffer to black (y=0x00 u=0x80 v=0x80) by default - for (i=0; i<(framebuf_size-4); i+=4) - { - vd->framebuffer[i]=0x00; //Y - vd->framebuffer[i+1]=0x80;//U - vd->framebuffer[i+2]=0x00;//Y - vd->framebuffer[i+3]=0x80;//V - } - } - return (ret); -} - -/* cleans VdIn struct and allocations - * args: - * pointer to initiated vdIn struct - * - * returns: void -*/ -void clear_v4l2(struct vdIn *videoIn) -{ - v4l2_close(videoIn->fd); - videoIn->fd=0; - g_free(videoIn->videodevice); - g_free(videoIn->VidFName); - g_free(videoIn->ImageFName); - close_h264_decoder(videoIn->h264_ctx); - videoIn->h264_ctx = NULL; - videoIn->videodevice = NULL; - videoIn->VidFName = NULL; - videoIn->ImageFName = NULL; - videoIn->h264_last_IDR_size = 0; - videoIn->h264_PPS_size = 0; - videoIn->h264_SPS_size = 0; - - if(videoIn->cap_meth == IO_READ) - { - g_print("cleaning read buffer\n"); - if((videoIn->buf.length > 0) && videoIn->mem[0]) - { - g_free(videoIn->mem[0]); - videoIn->mem[0] = NULL; - } - } - __CLOSE_MUTEX( __VMUTEX ); -} - -/* Init VdIn struct with default and/or global values - * args: - * vd: pointer to a VdIn struct ( must be allready allocated ) - * global: pointer to a GLOBAL struct ( must be allready initiated ) - * - * returns: error code ( 0 - VDIN_OK) -*/ -int init_videoIn(struct vdIn *videoIn, struct GLOBAL *global) -{ - int ret = VDIN_OK; - char *device = global->videodevice; - - /* Create a udev object */ - videoIn->udev = udev_new(); - - __INIT_MUTEX( __VMUTEX ); - if (global->width == 0 || global->height == 0) - return VDIN_RESOL_ERR; - if (global->cap_meth < IO_MMAP || global->cap_meth > IO_READ) - global->cap_meth = IO_MMAP; //mmap by default - videoIn->cap_meth = global->cap_meth; - if(global->debug) g_print("capture method = %i\n",videoIn->cap_meth); - videoIn->videodevice = NULL; - videoIn->videodevice = g_strdup(device); - g_print("video device: %s \n", videoIn->videodevice); - - //flag to video thread - videoIn->capVid = FALSE; - //flag from video thread - videoIn->VidCapStop=TRUE; - - videoIn->VidFName = g_strdup(global->vidFPath[0]); - videoIn->signalquit = FALSE; - videoIn->PanTilt=0; - videoIn->isbayer = 0; //bayer mode off - videoIn->pix_order=0; // pix order for bayer mode def: gbgbgb..|rgrgrg.. - videoIn->setFPS=0; - videoIn->capImage=FALSE; - videoIn->cap_raw=0; - - videoIn->ImageFName = g_strdup(global->imgFPath[0]); - - videoIn->h264_ctx = NULL; - videoIn->h264_SPS = NULL; - videoIn->h264_SPS_size = 0; - videoIn->h264_PPS = NULL; - videoIn->h264_PPS_size = 0; - videoIn->h264_last_IDR = NULL; - videoIn->h264_last_IDR_size = 0; - //timestamps not supported by UVC driver - //vd->timecode.type = V4L2_TC_TYPE_25FPS; - //vd->timecode.flags = V4L2_TC_FLAG_DROPFRAME; - - videoIn->available_exp[0]=-1; - videoIn->available_exp[1]=-1; - videoIn->available_exp[2]=-1; - videoIn->available_exp[3]=-1; - - videoIn->tmpbuffer = NULL; - videoIn->framebuffer = NULL; - videoIn->h264_frame = NULL; - - /*start udev device monitoring*/ - /* Set up a monitor to monitor v4l2 devices */ - if(videoIn->udev) - { - videoIn->udev_mon = udev_monitor_new_from_netlink(videoIn->udev, "udev"); - udev_monitor_filter_add_match_subsystem_devtype(videoIn->udev_mon, "video4linux", NULL); - udev_monitor_enable_receiving(videoIn->udev_mon); - /* Get the file descriptor (fd) for the monitor */ - videoIn->udev_fd = udev_monitor_get_fd(videoIn->udev_mon); - } - - videoIn->listDevices = enum_devices( videoIn->videodevice, videoIn->udev, (int) global->debug); - - if (videoIn->listDevices != NULL) - { - if(!(videoIn->listDevices->listVidDevices)) - g_printerr("unable to detect video devices on your system (%i)\n", videoIn->listDevices->num_devices); - } - else - g_printerr("Unable to detect devices on your system\n"); - - if (videoIn->fd <=0 ) //open device - { - if ((videoIn->fd = v4l2_open(videoIn->videodevice, O_RDWR | O_NONBLOCK, 0)) < 0) - { - perror("ERROR opening V4L interface"); - ret = VDIN_DEVICE_ERR; - clear_v4l2(videoIn); - return (ret); - } - } - - //if it's a uvc device - //map dynamic controls - //and check for h264 support - if(videoIn->listDevices->num_devices > 0) - { - g_print("vid:%04x \npid:%04x \ndriver:%s\n", - videoIn->listDevices->listVidDevices[videoIn->listDevices->current_device].vendor, - videoIn->listDevices->listVidDevices[videoIn->listDevices->current_device].product, - videoIn->listDevices->listVidDevices[videoIn->listDevices->current_device].driver); - if(g_strcmp0(videoIn->listDevices->listVidDevices[videoIn->listDevices->current_device].driver,"uvcvideo") == 0) - { - //check for uvc H264 support in the device - uint64_t busnum = videoIn->listDevices->listVidDevices[videoIn->listDevices->current_device].busnum; - uint64_t devnum = videoIn->listDevices->listVidDevices[videoIn->listDevices->current_device].devnum; - uint8_t unit_id = xu_get_unit_id (busnum, devnum); - - if(has_h264_support(videoIn->fd, unit_id)) - { - global->uvc_h264_unit = unit_id; - videoIn->uvc_h264_unit = unit_id; - } - if(videoIn->listDevices->listVidDevices[videoIn->listDevices->current_device].vendor != 0) - { - //check for logitech vid - if (videoIn->listDevices->listVidDevices[videoIn->listDevices->current_device].vendor == 0x046d) - (ret=initDynCtrls(videoIn->fd)); - else ret= VDIN_DYNCTRL_ERR; - } - else (ret=initDynCtrls(videoIn->fd)); - } - else ret = VDIN_DYNCTRL_ERR; - - } - - //For H264 we need to get the unit id before checking video formats - //reset v4l2_format - memset(&videoIn->fmt, 0, sizeof(struct v4l2_format)); - // populate video capabilities structure array - // should only be called after all vdIn struct elements - // have been initialized - if((ret = check_videoIn(videoIn, global)) != VDIN_OK) - { - clear_v4l2(videoIn); - return (ret); - } - - if(global->add_ctrls) - { - //added extension controls so now we can exit - //set a return code for enabling the correct warning window - ret = (ret ? VDIN_DYNCTRL_ERR: VDIN_DYNCTRL_OK); - clear_v4l2(videoIn); - return (ret); - } - else ret = 0; //clean ret code - - if(!(global->control_only)) - { - if ((ret=init_v4l2(videoIn, global)) < 0) - { - g_printerr("Init v4L2 failed !! \n"); - clear_v4l2(videoIn); - return (ret); - } - - g_print("fps is set to %i/%i\n", global->fps_num, global->fps); - /*allocations*/ - if((ret = videoIn_frame_alloca(videoIn, global->format, global->width, global->height)) != VDIN_OK) - { - clear_v4l2(videoIn); - return (ret); - } - } - return (ret); -} - -/* decode video stream (frame buffer in yuyv format) - * args: - * vd: pointer to a VdIn struct ( must be allready allocated ) - * - * returns: error code ( 0 - VDIN_OK) -*/ -static int frame_decode(struct vdIn *vd, int format, int width, int height) -{ - int ret = VDIN_OK; - int framesizeIn =(width * height << 1);//2 bytes per pixel - int max_size = framesizeIn; - - switch (format) - { - case V4L2_PIX_FMT_H264: - /* - * get the h264 frame - */ - vd->buf.bytesused = demux_h264(vd->h264_frame, vd->mem[vd->buf.index], vd->buf.bytesused); - - /* - * store SPS and PPS info (usually the first two NALU) - * and check/store the last IDR frame - */ - store_extra_data(vd); - - /* - * check for keyframe - */ - vd->isKeyframe = is_h264_keyframe(vd); - - //decode if we already have a IDR frame - if(vd->h264_last_IDR_size > 0) - { - /* decode (h264) to vd->tmpbuffer (yuv420p)*/ - decode_h264(vd->tmpbuffer, vd->h264_frame, vd->buf.bytesused, vd->h264_ctx); - yuv420_to_yuyv (vd->framebuffer, vd->tmpbuffer, width, height); - } - break; - - case V4L2_PIX_FMT_JPEG: - case V4L2_PIX_FMT_MJPEG: - if(vd->buf.bytesused <= HEADERFRAME1) - { - // Prevent crash on empty image - g_print("Ignoring empty buffer ...\n"); - return (ret); - } - memcpy(vd->tmpbuffer, vd->mem[vd->buf.index],vd->buf.bytesused); - - if (jpeg_decode(&vd->framebuffer, vd->tmpbuffer, width, height) < 0) - { - g_printerr("jpeg decode errors\n"); - ret = VDIN_DECODE_ERR; - return ret; - } - break; - - case V4L2_PIX_FMT_UYVY: - /* - * check vd->buf.bytesused some drivers (or libusb) - * seem to return a bigger value than the format requires - */ - if(vd->buf.bytesused < max_size) - max_size = vd->buf.bytesused; - memcpy(vd->tmpbuffer, vd->mem[vd->buf.index], max_size); - uyvy_to_yuyv(vd->framebuffer, vd->tmpbuffer, width, height); - break; - - case V4L2_PIX_FMT_YVYU: - /* - * check vd->buf.bytesused some drivers (or libusb) - * seem to return a bigger value than the format requires - */ - if(vd->buf.bytesused < max_size) - max_size = vd->buf.bytesused; - memcpy(vd->tmpbuffer, vd->mem[vd->buf.index], max_size); - yvyu_to_yuyv(vd->framebuffer, vd->tmpbuffer, width, height); - break; - - case V4L2_PIX_FMT_YYUV: - /* - * check vd->buf.bytesused some drivers (or libusb) - * seem to return a bigger value than the format requires - */ - if(vd->buf.bytesused < max_size) - max_size = vd->buf.bytesused; - memcpy(vd->tmpbuffer, vd->mem[vd->buf.index], max_size); - yyuv_to_yuyv(vd->framebuffer, vd->tmpbuffer, width, height); - break; - - case V4L2_PIX_FMT_YUV420: - /* - * check vd->buf.bytesused some drivers (or libusb) - * seem to return a bigger value than the format requires - */ - if(vd->buf.bytesused < max_size) - max_size = vd->buf.bytesused; - memcpy(vd->tmpbuffer, vd->mem[vd->buf.index], max_size); - yuv420_to_yuyv(vd->framebuffer, vd->tmpbuffer, width, height); - break; - - case V4L2_PIX_FMT_YVU420: - /* - * check vd->buf.bytesused some drivers (or libusb) - * seem to return a bigger value than the format requires - */ - if(vd->buf.bytesused < max_size) - max_size = vd->buf.bytesused; - memcpy(vd->tmpbuffer, vd->mem[vd->buf.index], max_size); - yvu420_to_yuyv(vd->framebuffer, vd->tmpbuffer, width, height); - break; - - case V4L2_PIX_FMT_NV12: - /* - * check vd->buf.bytesused some drivers (or libusb) - * seem to return a bigger value than the format requires - */ - if(vd->buf.bytesused < max_size) - max_size = vd->buf.bytesused; - memcpy(vd->tmpbuffer, vd->mem[vd->buf.index], max_size); - nv12_to_yuyv(vd->framebuffer, vd->tmpbuffer, width, height); - break; - - case V4L2_PIX_FMT_NV21: - /* - * check vd->buf.bytesused some drivers (or libusb) - * seem to return a bigger value than the format requires - */ - if(vd->buf.bytesused < max_size) - max_size = vd->buf.bytesused; - memcpy(vd->tmpbuffer, vd->mem[vd->buf.index], max_size); - nv21_to_yuyv(vd->framebuffer, vd->tmpbuffer, width, height); - break; - - case V4L2_PIX_FMT_NV16: - /* - * check vd->buf.bytesused some drivers (or libusb) - * seem to return a bigger value than the format requires - */ - if(vd->buf.bytesused < max_size) - max_size = vd->buf.bytesused; - memcpy(vd->tmpbuffer, vd->mem[vd->buf.index], max_size); - nv16_to_yuyv(vd->framebuffer, vd->tmpbuffer, width, height); - break; - - case V4L2_PIX_FMT_NV61: - /* - * check vd->buf.bytesused some drivers (or libusb) - * seem to return a bigger value than the format requires - */ - if(vd->buf.bytesused < max_size) - max_size = vd->buf.bytesused; - memcpy(vd->tmpbuffer, vd->mem[vd->buf.index], max_size); - nv61_to_yuyv(vd->framebuffer, vd->tmpbuffer, width, height); - break; - - case V4L2_PIX_FMT_Y41P: - /* - * check vd->buf.bytesused some drivers (or libusb) - * seem to return a bigger value than the format requires - */ - if(vd->buf.bytesused < max_size) - max_size = vd->buf.bytesused; - memcpy(vd->tmpbuffer, vd->mem[vd->buf.index], max_size); - y41p_to_yuyv(vd->framebuffer, vd->tmpbuffer, width, height); - break; - - case V4L2_PIX_FMT_GREY: - memcpy(vd->tmpbuffer, vd->mem[vd->buf.index],vd->buf.bytesused); - grey_to_yuyv(vd->framebuffer, vd->tmpbuffer, width, height); - break; - - case V4L2_PIX_FMT_Y10BPACK: - memcpy(vd->tmpbuffer, vd->mem[vd->buf.index],vd->buf.bytesused); - y10b_to_yuyv(vd->framebuffer, vd->tmpbuffer, width, height); - break; - - case V4L2_PIX_FMT_Y16: - memcpy(vd->tmpbuffer, vd->mem[vd->buf.index],vd->buf.bytesused); - y16_to_yuyv(vd->framebuffer, vd->tmpbuffer, width, height); - break; - - case V4L2_PIX_FMT_SPCA501: - /* - * check vd->buf.bytesused some drivers (or libusb) - * seem to return a bigger value than the format requires - */ - if(vd->buf.bytesused < max_size) - max_size = vd->buf.bytesused; - memcpy(vd->tmpbuffer, vd->mem[vd->buf.index], max_size); - s501_to_yuyv(vd->framebuffer, vd->tmpbuffer, width, height); - break; - - case V4L2_PIX_FMT_SPCA505: - /* - * check vd->buf.bytesused some drivers (or libusb) - * seem to return a bigger value than the format requires - */ - if(vd->buf.bytesused < max_size) - max_size = vd->buf.bytesused; - memcpy(vd->tmpbuffer, vd->mem[vd->buf.index], max_size); - s505_to_yuyv(vd->framebuffer, vd->tmpbuffer, width, height); - break; - - case V4L2_PIX_FMT_SPCA508: - /* - * check vd->buf.bytesused some drivers (or libusb) - * seem to return a bigger value than the format requires - */ - if(vd->buf.bytesused < max_size) - max_size = vd->buf.bytesused; - memcpy(vd->tmpbuffer, vd->mem[vd->buf.index], max_size); - s508_to_yuyv(vd->framebuffer, vd->tmpbuffer, width, height); - break; - - case V4L2_PIX_FMT_YUYV: - if(vd->isbayer>0) - { - if (!(vd->tmpbuffer)) - { - // rgb buffer for decoding bayer data - vd->tmpbuffer = g_new0(unsigned char, - width * height * 3); - } - bayer_to_rgb24 (vd->mem[vd->buf.index],vd->tmpbuffer, width, height, vd->pix_order); - // raw bayer is only available in logitech cameras in yuyv mode - rgb2yuyv (vd->tmpbuffer,vd->framebuffer, width, height); - } - else - { - if (vd->buf.bytesused > framesizeIn) - memcpy(vd->framebuffer, vd->mem[vd->buf.index], - (size_t) framesizeIn); - else - memcpy(vd->framebuffer, vd->mem[vd->buf.index], - (size_t) vd->buf.bytesused); - } - break; - - case V4L2_PIX_FMT_SGBRG8: //0 - bayer_to_rgb24 (vd->mem[vd->buf.index],vd->tmpbuffer, width, height, 0); - rgb2yuyv (vd->tmpbuffer, vd->framebuffer, width, height); - break; - - case V4L2_PIX_FMT_SGRBG8: //1 - bayer_to_rgb24 (vd->mem[vd->buf.index], vd->tmpbuffer, width, height, 1); - rgb2yuyv (vd->tmpbuffer, vd->framebuffer, width, height); - break; - - case V4L2_PIX_FMT_SBGGR8: //2 - bayer_to_rgb24 (vd->mem[vd->buf.index], vd->tmpbuffer, width, height, 2); - rgb2yuyv (vd->tmpbuffer, vd->framebuffer, width, height); - break; - case V4L2_PIX_FMT_SRGGB8: //3 - bayer_to_rgb24 (vd->mem[vd->buf.index], vd->tmpbuffer, width, height, 3); - rgb2yuyv (vd->tmpbuffer, vd->framebuffer, width, height); - break; - - case V4L2_PIX_FMT_RGB24: - /* - * check vd->buf.bytesused some drivers (or libusb) - * seem to return a bigger value than the format requires - */ - // max_size = width * height * 3; - //if(vd->buf.bytesused < max_size) - // max_size = vd->buf.bytesused; - //memcpy(vd->tmpbuffer, vd->mem[vd->buf.index], max_size); - //rgb2yuyv(vd->tmpbuffer, vd->framebuffer, width, height); - rgb2yuyv(vd->mem[vd->buf.index], vd->framebuffer, width, height); - break; - case V4L2_PIX_FMT_BGR24: - /* - * check vd->buf.bytesused some drivers (or libusb) - * seem to return a bigger value than the format requires - */ - // max_size = width * height * 3; - //if(vd->buf.bytesused < max_size) - // max_size = vd->buf.bytesused; - //memcpy(vd->tmpbuffer, vd->mem[vd->buf.index], max_size); - //bgr2yuyv(vd->tmpbuffer, vd->framebuffer, width, height); - bgr2yuyv(vd->mem[vd->buf.index], vd->framebuffer, width, height); - break; - - default: - g_printerr("error grabbing (v4l2uvc.c) unknown format: %i\n", format); - ret = VDIN_UNKNOWN_ERR; - return ret; - } - return ret; -} - -static int check_frame_available(struct vdIn *vd) -{ - int ret = VDIN_OK; - fd_set rdset; - struct timeval timeout; - //make sure streaming is on - if (!vd->isstreaming) - if (video_enable(vd)) - { - vd->signalquit = TRUE; - return VDIN_STREAMON_ERR; - } - - FD_ZERO(&rdset); - FD_SET(vd->fd, &rdset); - timeout.tv_sec = 1; // 1 sec timeout - timeout.tv_usec = 0; - // select - wait for data or timeout - ret = select(vd->fd + 1, &rdset, NULL, NULL, &timeout); - if (ret < 0) - { - perror(" Could not grab image (select error)"); - vd->timestamp = 0; - return VDIN_SELEFAIL_ERR; - } - else if (ret == 0) - { - perror(" Could not grab image (select timeout)"); - vd->timestamp = 0; - return VDIN_SELETIMEOUT_ERR; - } - else if ((ret > 0) && (FD_ISSET(vd->fd, &rdset))) - return VDIN_OK; - else - return VDIN_UNKNOWN_ERR; - -} - -/* Grabs video frame and decodes it if necessary - * args: - * vd: pointer to a VdIn struct ( must be allready initiated) - * - * returns: error code ( 0 - VDIN_OK) -*/ -int uvcGrab(struct vdIn *vd, struct GLOBAL *global, int format, int width, int height) -{ - //request a IDR frame with SPS and PPS data if it's the first frame - if(global->format == V4L2_PIX_FMT_H264 && vd->frame_index < 1) - uvcx_request_frame_type(vd->fd, global->uvc_h264_unit, PICTURE_TYPE_IDR_FULL); - - int ret = check_frame_available(vd); - - UINT64 ts = 0; - - if (ret < 0) - return ret; - - switch(vd->cap_meth) - { - case IO_READ: - if(vd->setFPS > 0) - { - video_disable(vd); - input_set_framerate (vd, &global->fps, &global->fps_num); - video_enable(vd); - vd->setFPS = 0; /*no need to query and queue buffers*/ - } - vd->buf.bytesused = v4l2_read (vd->fd, vd->mem[vd->buf.index], vd->buf.length); - vd->timestamp = ns_time_monotonic(); - if (-1 == vd->buf.bytesused ) - { - switch (errno) - { - case EAGAIN: - g_print("No data available for read\n"); - return VDIN_SELETIMEOUT_ERR; - break; - case EINVAL: - perror("Read method error, try mmap instead"); - return VDIN_READ_ERR; - break; - case EIO: - perror("read I/O Error"); - return VDIN_READ_ERR; - break; - default: - perror("read"); - return VDIN_READ_ERR; - break; - } - vd->timestamp = 0; - } - break; - - case IO_MMAP: - default: - /*query and queue buffers since fps or compression as changed*/ - if((vd->setFPS > 0) || (vd->setJPEGCOMP > 0) || (vd->setH264ConfigProbe > 0)) - { - /*------------------------------------------*/ - /* change video fps or frame compression */ - /*------------------------------------------*/ - if(vd->setFPS) //change fps - { - video_disable(vd); - unmap_buff(vd); - - input_set_framerate (vd, &global->fps, &global->fps_num); - - /* - * For uvc muxed H264 stream - * since we are restarting the video stream and codec values will be reset - * commit the codec data again - */ - if(global->format == V4L2_PIX_FMT_H264 && get_SupPixFormatUvcH264() > 1) - set_muxed_h264_format(vd, global); - - vd->setFPS = 0; - query_buff(vd); - queue_buff(vd); - video_enable(vd); - } - else if(vd->setH264ConfigProbe) - { - video_disable(vd); - unmap_buff(vd); - - h264_commit(vd, global); - - vd->setH264ConfigProbe = 0; - query_buff(vd); - queue_buff(vd); - video_enable(vd); - } - else if(vd->setJPEGCOMP) //change jpeg quality/compression in video frame - { - video_disable(vd); - unmap_buff(vd); - set_jpegcomp(vd); - get_jpegcomp(vd); - query_buff(vd); - queue_buff(vd); - video_enable(vd); - vd->setJPEGCOMP = 0; - } - - ret = check_frame_available(vd); - - if (ret < 0) - return ret; - } - - /* dequeue the buffers */ - memset(&vd->buf, 0, sizeof(struct v4l2_buffer)); - vd->buf.type = V4L2_BUF_TYPE_VIDEO_CAPTURE; - vd->buf.memory = V4L2_MEMORY_MMAP; - - ret = xioctl(vd->fd, VIDIOC_DQBUF, &vd->buf); - if (ret < 0) - { - perror("VIDIOC_DQBUF - Unable to dequeue buffer "); - ret = VDIN_DEQBUFS_ERR; - return ret; - } - ts = (UINT64) vd->buf.timestamp.tv_sec * G_NSEC_PER_SEC + - vd->buf.timestamp.tv_usec * 1000; //in nanosec - /* use buffer timestamp if set by the driver, otherwise use current system time */ - if(ts > 0) vd->timestamp = ts; - else vd->timestamp = ns_time_monotonic(); - - ret = xioctl(vd->fd, VIDIOC_QBUF, &vd->buf); - if (ret < 0) - { - perror("VIDIOC_QBUF - Unable to queue buffer"); - ret = VDIN_QBUF_ERR; - return ret; - } - } - - - // save raw frame - if (vd->cap_raw > 0) - { - SaveBuff (vd->ImageFName,vd->buf.bytesused,vd->mem[vd->buf.index]); - vd->cap_raw=0; - } - - vd->frame_index++; - - //char test_filename[20]; - //snprintf(test_filename, 20, "rawframe-%u.raw", vd->frame_index); - //SaveBuff (test_filename,vd->buf.bytesused,vd->mem[vd->buf.index]); - - if ((ret = frame_decode(vd, format, width, height)) != VDIN_OK) - { - vd->signalquit = TRUE; - return ret; - } - - return VDIN_OK; -} - -static int close_v4l2_buffers (struct vdIn *vd) -{ - //clean frame buffers - if(vd->tmpbuffer != NULL) g_free(vd->tmpbuffer); - vd->tmpbuffer = NULL; - if(vd->framebuffer != NULL) g_free(vd->framebuffer); - vd->framebuffer = NULL; - if(vd->h264_last_IDR != NULL) g_free(vd->h264_last_IDR); - vd->h264_last_IDR = NULL; - if(vd->h264_frame != NULL) g_free(vd->h264_frame); - vd->h264_frame = NULL; - //clean h264 SPS and PPS data buffers - if(vd->h264_SPS != NULL) g_free(vd->h264_SPS); - vd->h264_SPS = NULL; - if(vd->h264_PPS != NULL) g_free(vd->h264_PPS); - vd->h264_PPS = NULL; - // clean h264 decoder context - close_h264_decoder(vd->h264_ctx); - vd->h264_ctx = NULL; - // unmap queue buffers - switch(vd->cap_meth) - { - case IO_READ: - if(vd->mem[vd->buf.index]!= NULL) - { - g_free(vd->mem[vd->buf.index]); - vd->mem[vd->buf.index] = NULL; - } - break; - - case IO_MMAP: - default: - //delete requested buffers - unmap_buff(vd); - memset(&vd->rb, 0, sizeof(struct v4l2_requestbuffers)); - vd->rb.count = 0; - vd->rb.type = V4L2_BUF_TYPE_VIDEO_CAPTURE; - vd->rb.memory = V4L2_MEMORY_MMAP; - if(xioctl(vd->fd, VIDIOC_REQBUFS, &vd->rb)<0) - { - g_printerr("VIDIOC_REQBUFS - Failed to delete buffers: %s (errno %d)\n", strerror(errno), errno); - return(VDIN_REQBUFS_ERR); - } - break; - } - return (VDIN_OK); -} - - -int restart_v4l2(struct vdIn *vd, struct GLOBAL *global) -{ - int ret = VDIN_OK; - video_disable(vd); - close_v4l2_buffers(vd); - - if ((ret=init_v4l2(vd, global)) < 0) - { - g_printerr("Init v4L2 failed !! \n"); - vd->signalquit = TRUE; - return ret; - } - /*allocations*/ - if((ret = videoIn_frame_alloca(vd, global->format, global->width, global->height)) != VDIN_OK) - { - vd->signalquit = TRUE; - return ret; - } - /*try to start the video stream*/ - //it's OK if it fails since it is retried in uvcGrab - video_enable(vd); - - return (ret); -} - -/* cleans VdIn struct and allocations - * args: - * pointer to initiated vdIn struct - * - * returns: void -*/ -void close_v4l2(struct vdIn *videoIn, gboolean control_only) -{ - if (videoIn->isstreaming) video_disable(videoIn); - - if (videoIn->udev) udev_unref(videoIn->udev); - - if(videoIn->videodevice) g_free(videoIn->videodevice); - if(videoIn->ImageFName)g_free(videoIn->ImageFName); - if(videoIn->VidFName)g_free(videoIn->VidFName); - // free format allocations - if(videoIn->listFormats) freeFormats(videoIn->listFormats); - if (!control_only) - { - close_v4l2_buffers(videoIn); - } - videoIn->h264_last_IDR = NULL; - videoIn->h264_ctx = NULL; - videoIn->videodevice = NULL; - videoIn->tmpbuffer = NULL; - videoIn->framebuffer = NULL; - videoIn->h264_frame = NULL; - videoIn->ImageFName = NULL; - videoIn->VidFName = NULL; - if(videoIn->listDevices != NULL) freeDevices(videoIn->listDevices); - // close device descriptor - if(videoIn->fd) v4l2_close(videoIn->fd); - __CLOSE_MUTEX( __VMUTEX ); - // free struct allocation - if(videoIn) g_free(videoIn); -} - -/* sets video device frame rate - * args: - * vd: pointer to a VdIn struct ( must be allready initiated) - * - * returns: VIDIOC_S_PARM ioctl result value -*/ -int -input_set_framerate (struct vdIn * device, int *fps, int *fps_num) -{ - int fd; - int ret=0; - - - - fd = device->fd; - - device->streamparm.type = V4L2_BUF_TYPE_VIDEO_CAPTURE; - ret = xioctl(fd, VIDIOC_G_PARM, &device->streamparm); - if (ret < 0) - return ret; - - if (!(device->streamparm.parm.capture.capability & V4L2_CAP_TIMEPERFRAME)) - return -ENOTSUP; - - device->streamparm.parm.capture.timeperframe.numerator = *fps_num; - device->streamparm.parm.capture.timeperframe.denominator = *fps; - - ret = xioctl(fd,VIDIOC_S_PARM,&device->streamparm); - if (ret < 0) - { - g_printerr("Unable to set %d/%d fps\n", *fps_num, *fps); - perror("VIDIOC_S_PARM error"); - } - - /*make sure we now have the correct fps*/ - input_get_framerate (device, fps, fps_num); - - return ret; -} - -/* gets video device defined frame rate (not real - consider it a maximum value) - * args: - * vd: pointer to a VdIn struct ( must be allready initiated) - * - * returns: VIDIOC_G_PARM ioctl result value -*/ -int -input_get_framerate (struct vdIn * device, int *fps, int *fps_num) -{ - int fd; - int ret=0; - - fd = device->fd; - - device->streamparm.type = V4L2_BUF_TYPE_VIDEO_CAPTURE; - ret = xioctl(fd,VIDIOC_G_PARM,&device->streamparm); - if (ret < 0) - { - perror("VIDIOC_G_PARM - Unable to get timeperframe"); - } - else - { - if (device->streamparm.parm.capture.capability & V4L2_CAP_TIMEPERFRAME) { - // it seems numerator is allways 1 but we don't do assumptions here :-) - *fps = device->streamparm.parm.capture.timeperframe.denominator; - *fps_num = device->streamparm.parm.capture.timeperframe.numerator; - } - } - - if(*fps == 0 ) - *fps = 1; - if(*fps_num == 0) - *fps_num = 1; - - return ret; -} diff -Nru guvcview-1.7.3/src/v4l2uvc.h guvcview-2.0.1+ubuntu1~ppa1/src/v4l2uvc.h --- guvcview-1.7.3/src/v4l2uvc.h 2014-03-24 22:56:28.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/src/v4l2uvc.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,275 +0,0 @@ -/*******************************************************************************# -# guvcview http://guvcview.sourceforge.net # -# # -# Paulo Assis # -# # -# This program is free software; you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation; either version 2 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program; if not, write to the Free Software # -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# # -********************************************************************************/ - -#ifndef V4L2UVC_H -#define V4L2UVC_H - -#include -#include -#include -#include "globals.h" -#include "v4l2_devices.h" -#include "v4l2_formats.h" -#include "v4l2_controls.h" -#include "lavc_common.h" - -//control list method -#define LIST_CTL_METHOD_LOOP 0 -#define LIST_CTL_METHOD_NEXT_FLAG 1 - -#define NB_BUFFER 4 - -#define VDIN_DYNCTRL_OK 3 -#define VDIN_SELETIMEOUT_ERR 2 -#define VDIN_SELEFAIL_ERR 1 -#define VDIN_OK 0 -#define VDIN_DEVICE_ERR -1 -#define VDIN_FORMAT_ERR -2 -#define VDIN_REQBUFS_ERR -3 -#define VDIN_ALLOC_ERR -4 -#define VDIN_RESOL_ERR -5 -#define VDIN_FBALLOC_ERR -6 -#define VDIN_UNKNOWN_ERR -7 -#define VDIN_DEQBUFS_ERR -8 -#define VDIN_DECODE_ERR -9 -#define VDIN_QUERYCAP_ERR -10 -#define VDIN_QUERYBUF_ERR -11 -#define VDIN_QBUF_ERR -12 -#define VDIN_MMAP_ERR -13 -#define VDIN_READ_ERR -14 -#define VDIN_STREAMON_ERR -15 -#define VDIN_STREAMOFF_ERR -16 -#define VDIN_DYNCTRL_ERR -17 - -#define HEADERFRAME1 0xaf - -//set ioctl retries to 4 - linux uvc as increased timeout from 1000 to 3000 ms -#define IOCTL_RETRY 4 - -enum v4l2_uvc_exposure_auto_type -{ - V4L2_UVC_EXPOSURE_MANUAL = 1, - V4L2_UVC_EXPOSURE_AUTO = 2, - V4L2_UVC_EXPOSURE_SHUTTER_PRIORITY = 4, - V4L2_UVC_EXPOSURE_APERTURE_PRIORITY = 8 -}; - -static const int exp_vals[]= -{ - V4L2_UVC_EXPOSURE_MANUAL, - V4L2_UVC_EXPOSURE_AUTO, - V4L2_UVC_EXPOSURE_SHUTTER_PRIORITY, - V4L2_UVC_EXPOSURE_APERTURE_PRIORITY -}; - -/* h264 probe commit struct */ -typedef struct _uvcx_video_config_probe_commit_t -{ - DWORD dwFrameInterval; - DWORD dwBitRate; - WORD bmHints; - WORD wConfigurationIndex; - WORD wWidth; - WORD wHeight; - WORD wSliceUnits; - WORD wSliceMode; - WORD wProfile; - WORD wIFramePeriod; - WORD wEstimatedVideoDelay; - WORD wEstimatedMaxConfigDelay; - BYTE bUsageType; - BYTE bRateControlMode; - BYTE bTemporalScaleMode; - BYTE bSpatialScaleMode; - BYTE bSNRScaleMode; - BYTE bStreamMuxOption; - BYTE bStreamFormat; - BYTE bEntropyCABAC; - BYTE bTimestamp; - BYTE bNumOfReorderFrames; - BYTE bPreviewFlipped; - BYTE bView; - BYTE bReserved1; - BYTE bReserved2; - BYTE bStreamID; - BYTE bSpatialLayerRatio; - WORD wLeakyBucketSize; -} __attribute__((__packed__)) uvcx_video_config_probe_commit_t; - -struct vdIn -{ - __MUTEX_TYPE mutex; - - uint64_t frame_index; // captured frame index - - struct udev *udev; // pointer to a udev struct (lib udev) - struct udev_monitor *udev_mon; // udev monitor - int udev_fd; // udev monitor file descriptor - int fd; // device file descriptor - char *videodevice; // video device string (default "/dev/video0)" - int cap_meth; // capture method : IO_MMAP (1) IO_READ (0) - struct v4l2_capability cap; // v4l2 capability struct - struct v4l2_format fmt; // v4l2 formar struct - struct v4l2_buffer buf; // v4l2 buffer struct - struct v4l2_requestbuffers rb; // v4l2 request buffers struct - //struct v4l2_timecode timecode; // v4l2 timecode struct - struct v4l2_streamparm streamparm; // v4l2 stream parameters struct - struct v4l2_jpegcompression jpgcomp;// v4l2 jpeg compression settings - uvcx_video_config_probe_commit_t h264_config_probe_req; //probe commit struct for h264 streams - void *mem[NB_BUFFER]; // memory buffers for mmap driver frames - UINT32 buff_length[NB_BUFFER]; // memory buffers length as set by VIDIOC_QUERYBUF - UINT32 buff_offset[NB_BUFFER]; // memory buffers offset as set by VIDIOC_QUERYBUF - uint8_t *tmpbuffer; // temp buffer for decoding compressed data - uint8_t *framebuffer; // frame buffer (YUYV), for rendering in SDL overlay - gboolean isKeyframe; // current buffer contains a keyframe (h264 IDR) - int isstreaming; // video stream flag (1- ON 0- OFF) - int isbayer; // raw bayer flag - int pix_order; // raw bayer pixel order (rg/gb, bg/gr, ...) - int setFPS; // set FPS flag (0-do nothing, 1-change fps value, 2-query and queue buffer) - int setJPEGCOMP; // set jpeg compression flag (0-do nothing, 1-change compression value, 2-query and queue buffer) - int setH264ConfigProbe; // set H264 stream Config Probe Commit - int grabmethod; // only mmap available UVC doesn't support read - UINT64 timestamp; // video frame time stamp - char *VidFName; // Video File name (with full path) - int capImage; // Image capture flag (raised for capturing a frame) - char *ImageFName; // Image File name (with full path) - int cap_raw; // raw frame capture flag - int available_exp[4]; // backward compatible (old v4l2 exposure menu interface) - int PanTilt; // 1-if PanTilt Camera 0-otherwise - int uvc_h264_unit; // uvc h264 unit id, if <= 0 then uvc h264 is not supported - gboolean signalquit; // video loop exit flag - gboolean capVid; // Video capture flag (raised while capturing) - gboolean VidCapStop; // Video capture stop flag (raised when video capture has stopped) - gboolean IOfinished; // Signals that IO thread has finished - LFormats *listFormats; // structure with frame formats list - LDevices *listDevices; // structure with devices list - struct h264_decoder_context* h264_ctx; //h264 decoder context - uint8_t *h264_last_IDR; // last IDR frame retrieved from uvc h264 stream - int h264_last_IDR_size; // last IDR frame size - uint8_t *h264_frame; // current uvc h264 frame retrieved from video stream - uint8_t *h264_SPS; // h264 SPS info - uint16_t h264_SPS_size; // SPS size - uint8_t *h264_PPS; // h264 PPS info - uint16_t h264_PPS_size; // PPS size -}; - -/* ioctl with a number of retries in the case of I/O failure -* args: -* fd - device descriptor -* IOCTL_X - ioctl reference -* arg - pointer to ioctl data -* returns - ioctl result -*/ -int xioctl(int fd, int IOCTL_X, void *arg); - -/* Init VdIn struct with default and/or global values - * args: - * vd: pointer to a VdIn struct ( must be allready allocated ) - * global: pointer to a GLOBAL struct ( must be allready initiated ) - * - * returns: error code ( 0 - VDIN_OK) -*/ -int init_videoIn(struct vdIn *vd, struct GLOBAL *global); - -/* Grabs video frame and decodes it if necessary - * args: - * vd: pointer to a VdIn struct ( must be allready initiated) - * global: pointer to a GLOBAL struct ( must be allready initiated) - * format: pixel v4l2_format (don't use global format as it may change while capturing) - * width: frame width (don't use global width as it may change while capturing) - * height: frame height (don't use global height as it may change while capturing) - * returns: error code ( 0 - VDIN_OK) -*/ -int uvcGrab(struct vdIn *vd, struct GLOBAL *global, int format, int width, int height); - -/* cleans VdIn struct and allocations - * args: - * pointer to initiated vdIn struct - * - * returns: void -*/ -void close_v4l2(struct vdIn *vd, gboolean control_only); - -/* restarts v4l2 device with new format - * args: - * vd: pointer to vdIn struct - * global: poiter to GLOBAL struct - * - * returns: error code ( 0 - VDIN_OK) -*/ -int restart_v4l2(struct vdIn *vd, struct GLOBAL *global); - -/* sets video device frame rate - * args: - * vd: pointer to a VdIn struct ( must be allready initiated) - * fps: pointer to int containing fps value - * fps_num: pointer to int containing fps numerator value - * - * returns: VIDIOC_S_PARM ioctl result value - * sets fps and fps_num to device value -*/ -int input_set_framerate (struct vdIn * device, int *fps, int *fps_num); - -/* gets video device defined frame rate (not real - consider it a maximum value) - * args: - * vd: pointer to a VdIn struct ( must be allready initiated) - * fps: pointer to int containing fps value - * fps_num: pointer to int containing fps numerator value - * - * returns: VIDIOC_G_PARM ioctl result value - * sets fps and fps_num to device value -*/ -int input_get_framerate (struct vdIn * device, int *fps, int *fps_num); - -/* gets video stream jpeg compression parameters - * args: - * vd: pointer to a VdIn struct ( must be allready initiated) - * - * returns: VIDIOC_G_JPEGCOMP ioctl result value -*/ -int get_jpegcomp(struct vdIn *vd); - -/* sets video stream jpeg compression parameters - * args: - * vd: pointer to a VdIn struct ( must be allready initiated) - * - * returns: VIDIOC_S_JPEGCOMP ioctl result value -*/ -int set_jpegcomp(struct vdIn *vd); - -/* Enable video stream - * args: - * vd: pointer to a VdIn struct ( must be allready initiated) - * - * returns: VIDIOC_STREAMON ioctl result (0- OK) -*/ -int video_enable(struct vdIn *vd); - -/* Disable video stream - * args: - * vd: pointer to a VdIn struct ( must be allready initiated) - * - * returns: VIDIOC_STREAMOFF ioctl result (0- OK) -*/ -int video_disable(struct vdIn *vd); - -#endif - diff -Nru guvcview-1.7.3/src/vcodecs.c guvcview-2.0.1+ubuntu1~ppa1/src/vcodecs.c --- guvcview-1.7.3/src/vcodecs.c 2014-03-24 22:56:28.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/src/vcodecs.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,967 +0,0 @@ -/*******************************************************************************# -# guvcview http://guvcview.sourceforge.net # -# # -# Paulo Assis # -# # -# This program is free software; you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation; either version 2 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program; if not, write to the Free Software # -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# # -********************************************************************************/ - -#include -#include "vcodecs.h" -#include "guvcview.h" -#include "picture.h" -#include "colorspaces.h" -#include "create_video.h" -/* support for internationalization - i18n */ -#include -#include - -//if not defined don't set any bits but prevent build error -#ifndef CODEC_FLAG2_INTRA_REFRESH -#define CODEC_FLAG2_INTRA_REFRESH 0 -#endif - -#define __FMUTEX &global->file_mutex - -static BITMAPINFOHEADER mkv_codecPriv = -{ - .biSize = 0x00000028, //40 bytes - .biWidth = 640, //default values (must be set before use) - .biHeight = 480, - .biPlanes = 1, - .biBitCount = 24, - .biCompression = V4L2_PIX_FMT_MJPEG, - .biSizeImage = 640*480*2, //2 bytes per pixel (max buffer - use x3 for RGB) - .biXPelsPerMeter = 0, - .biYPelsPerMeter = 0, - .biClrUsed = 0, - .biClrImportant = 0 -}; - -static vcodecs_data listSupVCodecs[] = //list of software supported formats -{ - { - .avcodec = FALSE, - .valid = TRUE, - .compressor = "MJPG", - .mkv_4cc = v4l2_fourcc('M','J','P','G'), - .mkv_codec = "V_MS/VFW/FOURCC", - .mkv_codecPriv= &mkv_codecPriv, - .description = N_("MJPG - compressed"), - .fps = 0, - .monotonic_pts= 0, - .bit_rate = 0, - .qmax = 0, - .qmin = 0, - .max_qdiff = 0, - .dia = 0, - .pre_dia = 0, - .pre_me = 0, - .me_pre_cmp = 0, - .me_cmp = 0, - .me_sub_cmp = 0, - .last_pred = 0, - .gop_size = 0, - .qcompress = 0, - .qblur = 0, - .subq = 0, - .framerefs = 0, - .codec_id = AV_CODEC_ID_MJPEG, - .codec_name = "mjpeg", - .mb_decision = 0, - .trellis = 0, - .me_method = 0, - .mpeg_quant = 0, - .max_b_frames = 0, - .num_threads = 0, - .flags = 0 - }, - { - .avcodec = FALSE, - .valid = TRUE, - .compressor = "YUY2", - .mkv_4cc = v4l2_fourcc('Y','U','Y','2'), - .mkv_codec = "V_MS/VFW/FOURCC", - .mkv_codecPriv= &mkv_codecPriv, - .description = N_("YUY2 - uncomp YUV"), - .fps = 0, - .monotonic_pts= 0, - .bit_rate = 0, - .qmax = 0, - .qmin = 0, - .max_qdiff = 0, - .dia = 0, - .pre_dia = 0, - .pre_me = 0, - .me_pre_cmp = 0, - .me_cmp = 0, - .me_sub_cmp = 0, - .last_pred = 0, - .gop_size = 0, - .qcompress = 0, - .qblur = 0, - .subq = 0, - .framerefs = 0, - .codec_id = AV_CODEC_ID_NONE, - .codec_name = "none", - .mb_decision = 0, - .trellis = 0, - .me_method = 0, - .mpeg_quant = 0, - .max_b_frames = 0, - .num_threads = 0, - .flags = 0 - }, - { - .avcodec = FALSE, - .valid = TRUE, - .compressor = "RGB ", - .mkv_4cc = v4l2_fourcc('R','G','B',' '), - .mkv_codec = "V_MS/VFW/FOURCC", - .mkv_codecPriv= &mkv_codecPriv, - .description = N_("RGB - uncomp BMP"), - .fps = 0, - .monotonic_pts= 0, - .bit_rate = 0, - .qmax = 0, - .qmin = 0, - .max_qdiff = 0, - .dia = 0, - .pre_dia = 0, - .pre_me = 0, - .me_pre_cmp = 0, - .me_cmp = 0, - .me_sub_cmp = 0, - .last_pred = 0, - .gop_size = 0, - .qcompress = 0, - .qblur = 0, - .subq = 0, - .framerefs = 0, - .codec_id = AV_CODEC_ID_NONE, - .codec_name = "none", - .mb_decision = 0, - .trellis = 0, - .me_method = 0, - .mpeg_quant = 0, - .max_b_frames = 0, - .num_threads = 0, - .flags = 0 - }, - { - .avcodec = TRUE, - .valid = TRUE, - .compressor = "MPEG", - .mkv_4cc = v4l2_fourcc('M','P','E','G'), - .mkv_codec = "V_MPEG1", - .mkv_codecPriv= NULL, - .description = N_("MPEG video 1"), - .fps = 30, - .monotonic_pts= 1, - .bit_rate = 3000000, - .qmax = 8, - .qmin = 2, - .max_qdiff = 2, - .dia = 2, - .pre_dia = 2, - .pre_me = 2, - .me_pre_cmp = 0, - .me_cmp = 3, - .me_sub_cmp = 3, - .last_pred = 2, - .gop_size = 12, - .qcompress = 0.5, - .qblur = 0.5, - .subq = 0, - .framerefs = 0, - .codec_id = AV_CODEC_ID_MPEG1VIDEO, - .codec_name = "mpeg1video", - .mb_decision = FF_MB_DECISION_RD, - .trellis = 1, - .me_method = ME_EPZS, - .mpeg_quant = 0, - .max_b_frames = 0, - .num_threads = 1, - .flags = 0 - }, - { - .avcodec = TRUE, - .valid = TRUE, - .compressor = "FLV1", - .mkv_4cc = v4l2_fourcc('F','L','V','1'), - .mkv_codec = "V_MS/VFW/FOURCC", - .mkv_codecPriv= &mkv_codecPriv, - .description = N_("FLV1 - flash video 1"), - .fps = 0, - .monotonic_pts= 1, - .bit_rate = 3000000, - .qmax = 31, - .qmin = 2, - .max_qdiff = 3, - .dia = 2, - .pre_dia = 2, - .pre_me = 2, - .me_pre_cmp = 0, - .me_cmp = 3, - .me_sub_cmp = 3, - .last_pred = 2, - .gop_size = 100, - .qcompress = 0.5, - .qblur = 0.5, - .subq = 0, - .framerefs = 0, - .codec_id = AV_CODEC_ID_FLV1, - .codec_name = "flv", - .mb_decision = FF_MB_DECISION_RD, - .trellis = 1, - .me_method = ME_EPZS, - .mpeg_quant = 0, - .max_b_frames = 0, - .num_threads = 1, - .flags = CODEC_FLAG_4MV - }, - { - .avcodec = TRUE, - .valid = TRUE, - .compressor = "WMV1", - .mkv_4cc = v4l2_fourcc('W','M','V','1'), - .mkv_codec = "V_MS/VFW/FOURCC", - .mkv_codecPriv= &mkv_codecPriv, - .description = N_("WMV1 - win. med. video 7"), - .fps = 0, - .monotonic_pts= 1, - .bit_rate = 3000000, - .qmax = 8, - .qmin = 2, - .max_qdiff = 2, - .dia = 2, - .pre_dia = 2, - .pre_me = 2, - .me_pre_cmp = 0, - .me_cmp = 3, - .me_sub_cmp = 3, - .last_pred = 2, - .gop_size = 100, - .qcompress = 0.5, - .qblur = 0.5, - .subq = 0, - .framerefs = 0, - .codec_id = AV_CODEC_ID_WMV1, - .codec_name = "wmv1", - .mb_decision = FF_MB_DECISION_RD, - .trellis = 1, - .me_method = ME_EPZS, - .mpeg_quant = 0, - .max_b_frames = 0, - .num_threads = 1, - .flags = 0 - }, - { - .avcodec = TRUE, - .valid = TRUE, - .compressor = "MPG2", - .mkv_4cc = v4l2_fourcc('M','P','G','2'), - .mkv_codec = "V_MPEG2", - .mkv_codecPriv= NULL, - .description = N_("MPG2 - MPG2 format"), - .fps = 30, - .monotonic_pts= 1, - .bit_rate = 3000000, - .qmax = 31, - .qmin = 2, - .max_qdiff = 3, - .dia = 2, - .pre_dia = 2, - .pre_me = 2, - .me_pre_cmp = 0, - .me_cmp = 3, - .me_sub_cmp = 3, - .last_pred = 2, - .gop_size = 12, - .qcompress = 0.5, - .qblur = 0.5, - .subq = 0, - .framerefs = 0, - .codec_id = AV_CODEC_ID_MPEG2VIDEO, - .codec_name = "mpeg2video", - .mb_decision = FF_MB_DECISION_RD, - .trellis = 1, - .me_method = ME_EPZS, - .mpeg_quant = 0, - .max_b_frames = 0, - .num_threads = 1, - .flags = 0 - }, - { - .avcodec = TRUE, - .valid = TRUE, - .compressor = "MP43", - .mkv_4cc = v4l2_fourcc('M','P','4','3'), - .mkv_codec = "V_MPEG4/MS/V3", - .mkv_codecPriv= NULL, - .description = N_("MS MP4 V3"), - .fps = 0, - .monotonic_pts= 1, - .bit_rate = 3000000, - .qmax = 31, - .qmin = 2, - .max_qdiff = 3, - .dia = 2, - .pre_dia = 2, - .pre_me = 2, - .me_pre_cmp = 0, - .me_cmp = 3, - .me_sub_cmp = 3, - .last_pred = 2, - .gop_size = 100, - .qcompress = 0.5, - .qblur = 0.5, - .subq = 0, - .framerefs = 0, - .codec_id = AV_CODEC_ID_MSMPEG4V3, - .codec_name = "msmpeg4v3", - .mb_decision = FF_MB_DECISION_RD, - .trellis = 1, - .me_method = ME_EPZS, - .mpeg_quant = 0, - .max_b_frames = 0, - .num_threads = 1, - .flags = 0 - }, - { - .avcodec = TRUE, - .valid = TRUE, - .compressor = "DX50", - .mkv_4cc = v4l2_fourcc('D','X','5','0'), - .mkv_codec = "V_MPEG4/ISO/ASP", - .mkv_codecPriv= NULL, - .description = N_("MPEG4-ASP"), - .fps = 0, - .monotonic_pts= 1, - .bit_rate = 1500000, - .qmax = 31, - .qmin = 2, - .max_qdiff = 3, - .dia = 2, - .pre_dia = 2, - .pre_me = 2, - .me_pre_cmp = 0, - .me_cmp = 3, - .me_sub_cmp = 3, - .last_pred = 2, - .gop_size = 100, - .qcompress = 0.5, - .qblur = 0.5, - .subq = 0, - .framerefs = 0, - .codec_id = AV_CODEC_ID_MPEG4, - .codec_name = "mpeg4", - .mb_decision = FF_MB_DECISION_RD, - .trellis = 1, - .me_method = ME_EPZS, - .mpeg_quant = 1, - .max_b_frames = 0, - .num_threads = 1, - .flags = 0 - }, - { - .avcodec = TRUE, - .valid = TRUE, - .compressor = "H264", - .mkv_4cc = v4l2_fourcc('H','2','6','4'), - .mkv_codec = "V_MPEG4/ISO/AVC", - .mkv_codecPriv= NULL, - .description = N_("MPEG4-AVC (H264)"), - .fps = 0, - .monotonic_pts= 1, - .bit_rate = 1500000, - .qmax = 51, - .qmin = 10, - .max_qdiff = 4, - .dia = 2, - .pre_dia = 2, - .pre_me = 2, - .me_pre_cmp = 0, - .me_cmp = 3, - .me_sub_cmp = 3, - .last_pred = 2, - .gop_size = 100, - .qcompress = 0.6, - .qblur = 0.5, - .subq = 5, - .framerefs = 0, - .codec_id = AV_CODEC_ID_H264, - .codec_name = "libx264", - .mb_decision = FF_MB_DECISION_RD, - .trellis = 0, - .me_method = ME_HEX, - .mpeg_quant = 1, - .max_b_frames = 0, - .num_threads = 1, -#if LIBAVCODEC_VER_AT_LEAST(54,01) - .flags = CODEC_FLAG2_INTRA_REFRESH -#else - .flags = CODEC_FLAG2_BPYRAMID | CODEC_FLAG2_WPRED | CODEC_FLAG2_FASTPSKIP | CODEC_FLAG2_INTRA_REFRESH -#endif - }, - { - .avcodec = TRUE, - .valid = TRUE, - .compressor = "VP80", - .mkv_4cc = v4l2_fourcc('V','P','8','0'), - .mkv_codec = "V_VP8", - .mkv_codecPriv= NULL, - .description = N_("VP8 (VP8)"), - .fps = 0, - .monotonic_pts= 1, - .bit_rate = 600000, - .qmax = 51, - .qmin = 11, - .max_qdiff = 4, - .dia = 2, - .pre_dia = 2, - .pre_me = 2, - .me_pre_cmp = 0, - .me_cmp = 3, - .me_sub_cmp = 3, - .last_pred = 2, - .gop_size = 120, - .qcompress = 0.8, - .qblur = 0.5, - .subq = 5, - .framerefs = 0, - .codec_id = AV_CODEC_ID_VP8, - .codec_name = "libvpx", - .mb_decision = FF_MB_DECISION_RD, - .trellis = 0, - .me_method = ME_HEX, - .mpeg_quant = 1, - .max_b_frames = 0, - .num_threads = 4, - .flags = 0 - }, - { - .avcodec = TRUE, - .valid = TRUE, - .compressor = "theo", - .mkv_4cc = v4l2_fourcc('t','h','e','o'), - .mkv_codec = "V_THEORA", - .mkv_codecPriv= NULL, - .description = N_("Theora (ogg theora)"), - .fps = 0, - .monotonic_pts= 1, - .bit_rate = 600000, - .qmax = 51, - .qmin = 11, - .max_qdiff = 4, - .dia = 2, - .pre_dia = 2, - .pre_me = 2, - .me_pre_cmp = 0, - .me_cmp = 3, - .me_sub_cmp = 3, - .last_pred = 2, - .gop_size = 120, - .qcompress = 0.8, - .qblur = 0.5, - .subq = 5, - .framerefs = 0, - .codec_id = AV_CODEC_ID_THEORA, - .codec_name = "libtheora", - .mb_decision = FF_MB_DECISION_RD, - .trellis = 0, - .me_method = ME_HEX, - .mpeg_quant = 1, - .max_b_frames = 0, - .num_threads = 1, - .flags = 0 - } -}; - -static int get_real_index (int codec_ind) -{ - int i = 0; - int ind = -1; - for (i=0;i= MAX_VCODECS || - !listSupVCodecs[real_index].valid ) - return -1; //error: real index is not valid - - int i = 0; - int ind = -1; - for (i=0;i<=real_index; i++) - { - if(listSupVCodecs[i].valid) - ind++; - } - - return (ind); -} - -/** returns the real codec array index*/ -int get_vcodec_index(int codec_id) -{ - int i = 0; - for(i=0; i= 0 && real_index < MAX_VCODECS) - return (listSupVCodecs[real_index].compressor); - else - { - fprintf(stderr, "VCODEC: (4cc) bad codec index\n"); - return NULL; - } -} - -const char *get_desc4cc(int codec_ind) -{ - int real_index = get_real_index (codec_ind); - if(real_index >= 0 && real_index < MAX_VCODECS) - return (listSupVCodecs[real_index].description); - else - { - fprintf(stderr, "VCODEC: (desc4cc) bad codec index\n"); - return NULL; - } -} - -int get_enc_fps(int codec_ind) -{ - int real_index = get_real_index (codec_ind); - if(real_index >= 0 && real_index < MAX_VCODECS) - return (listSupVCodecs[real_index].fps); - else - { - fprintf(stderr, "VCODEC: (enc_fps) bad codec index\n"); - return 0; - } -} - -const char *get_mkvCodec(int codec_ind) -{ - int real_index = get_real_index (codec_ind); - if(real_index >= 0 && real_index < MAX_VCODECS) - return (listSupVCodecs[get_real_index (codec_ind)].mkv_codec); - else - { - fprintf(stderr, "VCODEC: (mkvCodec) bad codec index\n"); - return NULL; - } -} - -void *get_mkvCodecPriv(int codec_ind) -{ - int real_index = get_real_index (codec_ind); - if(real_index >= 0 && real_index < MAX_VCODECS) - return ((void *) listSupVCodecs[real_index].mkv_codecPriv); - else - { - fprintf(stderr, "VCODEC: (mkvCodecPriv) bad codec index\n"); - return NULL; - } -} - -int set_mkvCodecPriv(struct vdIn *videoIn, struct GLOBAL *global, struct lavcData* data) -{ - int size = 0; - int real_index = get_real_index (global->VidCodec); - - if(real_index < 0 || real_index >= MAX_VCODECS) - { - fprintf(stderr, "VCODEC: (set mkvCodecPriv) bad codec index\n"); - return 0; - } - - if(listSupVCodecs[real_index].codec_id == AV_CODEC_ID_THEORA) - { - //get the 3 first header packets - uint8_t *header_start[3]; - int header_len[3]; - int first_header_size; - - first_header_size = 42; //vorbis = 30 - if (avpriv_split_xiph_headers(data->codec_context->extradata, data->codec_context->extradata_size, - first_header_size, header_start, header_len) < 0) - { - fprintf(stderr, "VCODEC: theora codec - Extradata corrupt.\n"); - return -1; - } - - //get the allocation needed for headers size - int header_lace_size[2]; - header_lace_size[0]=0; - header_lace_size[1]=0; - int i; - for (i = 0; i < header_len[0] / 255; i++) - header_lace_size[0]++; - header_lace_size[0]++; - for (i = 0; i < header_len[1] / 255; i++) - header_lace_size[1]++; - header_lace_size[1]++; - - size = 1 + //number of packets -1 - header_lace_size[0] + //first packet size - header_lace_size[1] + //second packet size - header_len[0] + //first packet header - header_len[1] + //second packet header - header_len[2]; //third packet header - - //should check and clean before allocating ?? - data->priv_data = g_new0(BYTE, size); - //write header - BYTE* tmp = data->priv_data; - *tmp++ = 0x02; //number of packets -1 - //size of head 1 - for (i = 0; i < header_len[0] / 0xff; i++) - *tmp++ = 0xff; - *tmp++ = header_len[0] % 0xff; - //size of head 2 - for (i = 0; i < header_len[1] / 0xff; i++) - *tmp++ = 0xff; - *tmp++ = header_len[1] % 0xff; - //add headers - for(i=0; i<3; i++) - { - memcpy(tmp, header_start[i] , header_len[i]); - tmp += header_len[i]; - } - - listSupVCodecs[real_index].mkv_codecPriv = data->priv_data; - } - else if(listSupVCodecs[real_index].codec_id == AV_CODEC_ID_H264) - { - if(global->format == V4L2_PIX_FMT_H264 && global->Frame_Flags==0) - { - //do we have SPS and PPS data ? - if(videoIn->h264_SPS_size <= 0 || videoIn->h264_SPS == NULL) - { - fprintf(stderr,"can't store H264 codec private data: No SPS data\n"); - return 0; - } - if(videoIn->h264_PPS_size <= 0 || videoIn->h264_PPS == NULL) - { - fprintf(stderr,"can't store H264 codec private data: No PPS data\n"); - return 0; - } - - //alloc the private data - size = 6 + 2 + videoIn->h264_SPS_size + 1 + 2 + videoIn->h264_PPS_size; - data->priv_data = g_new0(BYTE, size); - - //write the codec private data - uint8_t *tp = data->priv_data; - //header (6 bytes) - tp[0] = 1; //version - tp[1] = videoIn->h264_SPS[1]; /* profile */ - tp[2] = videoIn->h264_SPS[2]; /* profile compat */ - tp[3] = videoIn->h264_SPS[3]; /* level */ - tp[4] = 0xff; /* 6 bits reserved (111111) + 2 bits nal size length - 1 (11) */ - tp[5] = 0xe1; /* 3 bits reserved (111) + 5 bits number of sps (00001) */ - tp += 6; - //SPS: size (2 bytes) + SPS data - tp[0] = (uint8_t) (videoIn->h264_SPS_size >> 8); - tp[1] = (uint8_t) videoIn->h264_SPS_size; //38 for logitech uvc 1.1 - tp += 2; //SPS size (16 bit) - memcpy(tp, videoIn->h264_SPS , videoIn->h264_SPS_size); - tp += videoIn->h264_SPS_size; - //PPS number of pps (1 byte) + size (2 bytes) + PPS data - tp[0] = 0x01; //number of pps - tp[1] = (uint8_t) (videoIn->h264_PPS_size >> 8); - tp[2] = (uint8_t) videoIn->h264_PPS_size; //4 for logitech uvc 1.1 - tp += 3; //PPS size (16 bit) - memcpy(tp, videoIn->h264_PPS , videoIn->h264_PPS_size); - - listSupVCodecs[real_index].mkv_codecPriv = data->priv_data; - } - - } - else if(listSupVCodecs[real_index].mkv_codecPriv != NULL) - { - mkv_codecPriv.biWidth = global->width; - mkv_codecPriv.biHeight = global->height; - mkv_codecPriv.biCompression = listSupVCodecs[real_index].mkv_4cc; - if(listSupVCodecs[real_index].codec_id != CODEC_DIB) - { - mkv_codecPriv.biSizeImage = global->width*global->height*2; - mkv_codecPriv.biHeight =-global->height; - } - else mkv_codecPriv.biSizeImage = global->width*global->height*3; /*rgb*/ - size = 40; //40 bytes - } - - return (size); -} - -int get_vcodec_id(int codec_ind) -{ - int real_index = get_real_index (codec_ind); - if(real_index >= 0 && real_index < MAX_VCODECS) - return (listSupVCodecs[real_index].codec_id); - else - { - fprintf(stderr, "VCODEC: (id) bad codec index\n"); - return 0; - } -} - -gboolean isLavcCodec(int codec_ind) -{ - int real_index = get_real_index (codec_ind); - if(real_index >= 0 && real_index < MAX_VCODECS) - return (listSupVCodecs[real_index].avcodec); - else - { - fprintf(stderr, "VCODEC: (isLavcCodec) bad codec index\n"); - return FALSE; - } -} - -int setVcodecVal () -{ - AVCodec *codec; - int ind = 0; - int num_codecs = 0; - for (ind=0;ind= 0 && real_index < MAX_VCODECS) - return (listSupVCodecs[real_index].valid); - else - { - fprintf(stderr, "VCODEC: (isValid) bad codec index\n"); - return FALSE; - } -} - -vcodecs_data *get_codec_defaults(int codec_ind) -{ - int real_index = get_real_index (codec_ind); - if(real_index >= 0 && real_index < MAX_VCODECS) - return (&(listSupVCodecs[real_index])); - else - { - fprintf(stderr, "VCODEC: (defaults) bad codec index\n"); - return NULL; - } -} - -static int write_video_data(struct ALL_DATA *all_data, BYTE *buff, int size) -{ - struct VideoFormatData *videoF = all_data->videoF; - struct GLOBAL *global = all_data->global; - - int ret =0; - - __LOCK_MUTEX( __FMUTEX ); - switch (global->VidFormat) - { - case AVI_FORMAT: - if(size > 0) - ret = avi_write_packet(videoF->avi, 0, buff, size, videoF->vdts, videoF->vblock_align, videoF->vflags); - //ret = AVI_write_frame (videoF->AviOut, buff, size, videoF->keyframe); - break; - - case WEBM_FORMAT: - case MKV_FORMAT: - if(size > 0) - { - ret = mkv_write_packet(videoF->mkv, 0, buff, size, videoF->vduration, videoF->vpts, videoF->vflags); - //ret = write_video_packet (buff, size, global->fps, videoF); - } - break; - - default: - - break; - } - __UNLOCK_MUTEX( __FMUTEX ); - - return (ret); -} - -static int encode_lavc (struct lavcData *lavc_data, - struct ALL_DATA *all_data, - VidBuff *proc_buff) -{ - //struct vdIn *videoIn = all_data->videoIn; - struct VideoFormatData *videoF = all_data->videoF; - struct GLOBAL *global = all_data->global; - - int framesize = 0; - int ret = 0; - - if(lavc_data) - { - /* - * if no video filter applied take advantage - * of possible raw formats nv12 and nv21 - * else use internal format (yuyv) - */ - - if ( !(global->Frame_Flags) ) - framesize= encode_lavc_frame (proc_buff->frame, lavc_data, global->format, videoF); - else - framesize= encode_lavc_frame (proc_buff->frame, lavc_data, V4L2_PIX_FMT_YUYV, videoF); - - ret = write_video_data (all_data, lavc_data->outbuf, framesize); - } - else - fprintf(stderr, "encode_lavc: encoder not initiated\n"); - - return (ret); -} - -int compress_frame(void *data, - void *jpeg_data, - struct lavcData *lavc_data, - VidBuff *proc_buff) -{ - struct JPEG_ENCODER_STRUCTURE **jpeg_struct = (struct JPEG_ENCODER_STRUCTURE **) jpeg_data; - BYTE *prgb =NULL; - - struct ALL_DATA *all_data = (struct ALL_DATA *) data; - struct GLOBAL *global = all_data->global; - struct VideoFormatData *videoF = all_data->videoF; - - long framesize = 0; - int jpeg_size = 0; - int ret = 0; - - videoF->vpts = proc_buff->time_stamp; - - switch (global->VidCodec) - { - case CODEC_MJPEG: /*MJPG*/ - /* save MJPG frame */ - if((global->Frame_Flags==0) && (global->format==V4L2_PIX_FMT_MJPEG)) - { - ret = write_video_data (all_data, proc_buff->frame, proc_buff->bytes_used); - } - else - { - /* use built in encoder */ - if (!global->jpeg) - { - global->jpeg = g_new0(BYTE, ((global->width)*(global->height))>>1); - } - if(!(*jpeg_struct)) - { - *jpeg_struct = g_new0(struct JPEG_ENCODER_STRUCTURE, 1); - /* Initialization of JPEG control structure */ - initialization (*jpeg_struct,global->width,global->height); - - /* Initialization of Quantization Tables */ - initialize_quantization_tables (*jpeg_struct); - } - - jpeg_size = encode_image(proc_buff->frame, global->jpeg, - *jpeg_struct, 0, global->width, global->height); - - ret = write_video_data (all_data, global->jpeg, jpeg_size); - } - break; - - case CODEC_YUV: - ret = write_video_data (all_data, proc_buff->frame, proc_buff->bytes_used); - break; - - case CODEC_DIB: - framesize=(global->width)*(global->height)*3; /*DIB 24/32 -> 3/4 bytes per pixel*/ - prgb = g_new0(BYTE, framesize); - switch (global->VidFormat) - { - case AVI_FORMAT: /* lines upside down */ - yuyv2bgr(proc_buff->frame, prgb, global->width, global->height); - break; - - case WEBM_FORMAT: - case MKV_FORMAT: /* lines in correct order*/ - yuyv2bgr1(proc_buff->frame, prgb, global->width, global->height); - break; - } - ret = write_video_data (all_data, prgb, framesize); - g_free(prgb); - prgb=NULL; - break; - - default: - if( global->format == V4L2_PIX_FMT_H264 && - global->VidCodec_ID == AV_CODEC_ID_H264 && - global->Frame_Flags == 0) - { - videoF->vflags = 0; - if(proc_buff->keyframe) - videoF->vflags |= AV_PKT_FLAG_KEY; - ret = write_video_data (all_data, proc_buff->frame, proc_buff->bytes_used); - videoF->old_vpts = videoF->vpts; - } - else - ret = encode_lavc (lavc_data, all_data, proc_buff); - break; - } - return (ret); -} diff -Nru guvcview-1.7.3/src/vcodecs.h guvcview-2.0.1+ubuntu1~ppa1/src/vcodecs.h --- guvcview-1.7.3/src/vcodecs.h 2014-03-24 22:56:28.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/src/vcodecs.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,117 +0,0 @@ -/*******************************************************************************# -# guvcview http://guvcview.sourceforge.net # -# # -# Paulo Assis # -# # -# This program is free software; you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation; either version 2 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program; if not, write to the Free Software # -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# # -********************************************************************************/ - -#ifndef VCODECS_H -#define VCODECS_H - -#include -#include "jpgenc.h" -#include "lavc_common.h" -#include "globals.h" -#include "v4l2uvc.h" - -#define MAX_VCODECS 12 - -#define CODEC_MJPEG 0 -#define CODEC_YUV 1 -#define CODEC_DIB 2 -#define CODEC_LAVC 3 - -typedef struct _vcodecs_data -{ - gboolean avcodec; //is a avcodec codec - gboolean valid; //the encoding codec exists in ffmpeg - const char *compressor; //fourcc - upper case - int mkv_4cc; //fourcc WORD value - const char *mkv_codec; //mkv codecID - void *mkv_codecPriv; //mkv codec private data - const char *description; //codec description - //int frame_delay; //frame delay - int fps; // encoder frame rate (used for time base) - int bit_rate; //lavc default bit rate - int qmax; //lavc qmax - int qmin; //lavc qmin - int max_qdiff; //lavc qmin - int dia; //lavc dia_size - int pre_dia; //lavc pre_dia_size - int pre_me; //lavc pre_me - int me_pre_cmp; //lavc me_pre_cmp - int me_cmp; //lavc me_cmp - int me_sub_cmp; //lavc me_sub_cmp - int last_pred; //lavc last_predictor_count - int gop_size; //lavc gop_size - float qcompress; //lavc qcompress - float qblur; //lavc qblur - int subq; //lavc subq - int framerefs; //lavc refs - int codec_id; //lavc codec_id - const char* codec_name; //lavc codec_name - int mb_decision; //lavc mb_decision - int trellis; //lavc trellis quantization - int me_method; //lavc motion estimation method - int mpeg_quant; //lavc mpeg quantization - int max_b_frames; //lavc max b frames - int num_threads; //lavc num threads - int flags; //lavc flags - int monotonic_pts; //use monotonic pts instead of timestamp based -} vcodecs_data; - -/** must be called before all others - * sets the valid flag - */ -int setVcodecVal(); - -/** returns codec data array (all) index: 0 indexed */ -int get_vcodec_index(int codec_id); - -/** returns codec list (available) index: 0 indexed */ -int get_list_vcodec_index(int codec_id); - -/** codec_ind is the available codec list index - * -- refers to the dropdown list - */ - -const char *get_vid4cc(int codec_ind); - -const char *get_desc4cc(int codec_ind); - -const char *get_mkvCodec(int codec_ind); - -int get_enc_fps(int codec_ind); - -void *get_mkvCodecPriv(int codec_ind); - -int set_mkvCodecPriv(struct vdIn *videoIn, struct GLOBAL *global, struct lavcData* data); - -int get_vcodec_id(int codec_ind); - -gboolean isLavcCodec(int codec_ind); - -gboolean isVcodecValid(int codec_ind); - -vcodecs_data *get_codec_defaults(int codec_ind); - -int compress_frame(void *data, - void *jpeg_data, - struct lavcData *lav_data, - VidBuff *proc_buff); - -#endif diff -Nru guvcview-1.7.3/src/video.c guvcview-2.0.1+ubuntu1~ppa1/src/video.c --- guvcview-1.7.3/src/video.c 2014-03-24 22:56:28.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/src/video.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,632 +0,0 @@ -/*******************************************************************************# -# guvcview http://guvcview.sourceforge.net # -# # -# Paulo Assis # -# Nobuhiro Iwamatsu # -# Add UYVY color support(Macbook iSight) # -# Flemming Frandsen # -# Add VU meter OSD # -# # -# This program is free software; you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation; either version 2 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program; if not, write to the Free Software # -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# # -********************************************************************************/ - -#include -#include -#include -#include -#include - -#include "defs.h" -#include "video.h" -#include "guvcview.h" -#include "v4l2uvc.h" -#include "colorspaces.h" -#include "video_filters.h" -#include "jpgenc.h" -#include "autofocus.h" -#include "picture.h" -#include "ms_time.h" -#include "string_utils.h" -#include "callbacks.h" -#include "create_video.h" -#include "create_image.h" -#include "timers.h" -#include "osd.h" - -#define __AMUTEX &pdata->mutex -#define __VMUTEX &videoIn->mutex -#define __GMUTEX &global->mutex - -static Uint32 SDL_VIDEO_Flags = - SDL_ANYFORMAT | SDL_RESIZABLE; - -static const SDL_VideoInfo *info; - -static SDL_Overlay * video_init(void *data, SDL_Surface **pscreen) -{ - struct ALL_DATA *all_data = (struct ALL_DATA *) data; - struct GLOBAL *global = all_data->global; - - int width = global->width; - int height = global->height; - - if (*pscreen == NULL) //init SDL - { - char driver[128]; - /*----------------------------- Test SDL capabilities ---------------------*/ - if (SDL_Init(SDL_INIT_VIDEO|SDL_INIT_TIMER) < 0) - { - g_printerr("Couldn't initialize SDL: %s\n", SDL_GetError()); - exit(1); - } - - /* For this version, we will use hardware acceleration as default*/ - if(global->hwaccel) - { - if ( ! getenv("SDL_VIDEO_YUV_HWACCEL") ) putenv("SDL_VIDEO_YUV_HWACCEL=1"); - if ( ! getenv("SDL_VIDEO_YUV_DIRECT") ) putenv("SDL_VIDEO_YUV_DIRECT=1"); - } - else - { - if ( ! getenv("SDL_VIDEO_YUV_HWACCEL") ) putenv("SDL_VIDEO_YUV_HWACCEL=0"); - if ( ! getenv("SDL_VIDEO_YUV_DIRECT") ) putenv("SDL_VIDEO_YUV_DIRECT=0"); - } - - if (SDL_VideoDriverName(driver, sizeof(driver)) && global->debug) - { - g_print("Video driver: %s\n", driver); - } - - info = SDL_GetVideoInfo(); - - if (info->wm_available && global->debug) g_print("A window manager is available\n"); - - if (info->hw_available) - { - if (global->debug) - g_print("Hardware surfaces are available (%dK video memory)\n", info->video_mem); - - SDL_VIDEO_Flags |= SDL_HWSURFACE; - SDL_VIDEO_Flags |= SDL_DOUBLEBUF; - } - else - { - SDL_VIDEO_Flags |= SDL_SWSURFACE; - } - - if (info->blit_hw) - { - if (global->debug) g_print("Copy blits between hardware surfaces are accelerated\n"); - - SDL_VIDEO_Flags |= SDL_ASYNCBLIT; - } - - if(!global->desktop_w) global->desktop_w = info->current_w; //get desktop width - if(!global->desktop_h) global->desktop_h = info->current_h; //get desktop height - - if (global->debug) - { - if (info->blit_hw_CC) g_print ("Colorkey blits between hardware surfaces are accelerated\n"); - if (info->blit_hw_A) g_print("Alpha blits between hardware surfaces are accelerated\n"); - if (info->blit_sw) g_print ("Copy blits from software surfaces to hardware surfaces are accelerated\n"); - if (info->blit_sw_CC) g_print ("Colorkey blits from software surfaces to hardware surfaces are accelerated\n"); - if (info->blit_sw_A) g_print("Alpha blits from software surfaces to hardware surfaces are accelerated\n"); - if (info->blit_fill) g_print("Color fills on hardware surfaces are accelerated\n"); - } - - SDL_WM_SetCaption(global->WVcaption, NULL); - - /* enable key repeat */ - SDL_EnableKeyRepeat(SDL_DEFAULT_REPEAT_DELAY,SDL_DEFAULT_REPEAT_INTERVAL); - } - /*------------------------------ SDL init video ---------------------*/ - if(global->debug) - g_print("(Desktop resolution = %ix%i)\n", global->desktop_w, global->desktop_h); - g_print("Checking video mode %ix%i@32bpp : ", width, height); - int bpp = SDL_VideoModeOK( - width, - height, - 32, - SDL_VIDEO_Flags); - - if(!bpp) - { - g_print("Not available \n"); - /*resize video mode*/ - if ((width > global->desktop_w) || (height > global->desktop_h)) - { - width = global->desktop_w; /*use desktop video resolution*/ - height = global->desktop_h; - } - else - { - width = 800; - height = 600; - } - g_print("Resizing to %ix%i\n", width, height); - - } - else - { - g_print("OK \n"); - if ((bpp != 32) && global->debug) g_print("recomended color depth = %i\n", bpp); - global->bpp = bpp; - } - - *pscreen = SDL_SetVideoMode( - width, - height, - global->bpp, - SDL_VIDEO_Flags); - - if(*pscreen == NULL) - { - return (NULL); - } - //use requested resolution for overlay even if not available as video mode - SDL_Overlay* overlay=NULL; - overlay = SDL_CreateYUVOverlay(global->width, global->height, - SDL_YUY2_OVERLAY, *pscreen); - - SDL_ShowCursor(SDL_DISABLE); - return (overlay); -} - -/*-------------------------------- Main Video Loop ---------------------------*/ -/* run in a thread (SDL overlay)*/ -void *main_loop(void *data) -{ - struct ALL_DATA *all_data = (struct ALL_DATA *) data; - - struct VidState *s = all_data->s; - struct paRecordData *pdata = all_data->pdata; - struct GLOBAL *global = all_data->global; - struct focusData *AFdata = all_data->AFdata; - struct vdIn *videoIn = all_data->videoIn; - - struct particle* particles = NULL; //for the particles video effect - - SDL_Event event; - /*the main SDL surface*/ - SDL_Surface *pscreen = NULL; - SDL_Overlay *overlay = NULL; - SDL_Rect drect; - - int width = global->width; - int height = global->height; - int format = global->format; - - SAMPLE vuPeak[2]; // The maximum vuLevel seen recently - int vuPeakFreeze[2]; // The vuPeak values will be frozen for this many frames. - vuPeak[0] = vuPeak[1] = 0; - vuPeakFreeze[0] = vuPeakFreeze[1] = 0; - - BYTE *p = NULL; - - Control *focus_control = NULL; - int last_focus = 0; - - if (global->AFcontrol) - { - focus_control = get_ctrl_by_id(s->control_list, AFdata->id); - get_ctrl(videoIn->fd, s->control_list, AFdata->id, all_data); - last_focus = focus_control->value; - /*make sure we wait for focus to settle on first check*/ - if (last_focus < 0) last_focus = AFdata->f_max; - } - - gboolean capVid = FALSE; - gboolean signalquit = FALSE; - - /*------------------------------ SDL init video ---------------------*/ - if(!global->no_display) - { - overlay = video_init(data, &(pscreen)); - - if(overlay == NULL) - { - g_print("FATAL: Couldn't create yuv overlay - please disable hardware accelaration\n"); - signalquit = TRUE; /*exit video thread*/ - } - else - { - p = (unsigned char *) overlay->pixels[0]; - - drect.x = 0; - drect.y = 0; - drect.w = pscreen->w; - drect.h = pscreen->h; - } - } - - while (!signalquit) - { - __LOCK_MUTEX(__VMUTEX); - capVid = videoIn->capVid; - signalquit = videoIn->signalquit; - __UNLOCK_MUTEX(__VMUTEX); - - /*-------------------------- Grab Frame ----------------------------------*/ - if (uvcGrab(videoIn, global, format, width, height) < 0) - { - g_printerr("Error grabbing image \n"); - continue; - } - else - { - if(!videoIn->timestamp) - { - global->skip_n++; //skip this frame - } - - if(capVid) - { - if(global->framecount < 1) - { - /*reset video start time to first frame capture time */ - global->Vidstarttime = videoIn->timestamp; - /** set current time for audio ts(0) reference (MONOTONIC) - * only used if we have no audio capture before video - */ - __LOCK_MUTEX(__AMUTEX); - pdata->ts_ref = ns_time_monotonic(); - __UNLOCK_MUTEX(__AMUTEX); - //printf("video ts ref: %llu audio ts_ ref: %llu\n",global->Vidstarttime, pdata->ts_ref); - global->v_ts = 0; - } - else - { - global->v_ts = videoIn->timestamp - global->Vidstarttime; - /*always use the last frame time stamp for video stop time*/ - global->Vidstoptime = videoIn->timestamp; - } - } - - if (global->FpsCount && !global->no_display) - {/* sets fps count in window title bar */ - global->frmCount++; - if (global->DispFps>0) - { /*set every 2 sec*/ - g_snprintf(global->WVcaption,24,"GUVCVideo - %3.2f fps",global->DispFps); - SDL_WM_SetCaption(global->WVcaption, NULL); - - global->frmCount=0;/*resets*/ - global->DispFps=0; - } - } - - /*---------------- autofocus control ------------------*/ - - if (global->AFcontrol && (global->autofocus || AFdata->setFocus)) - { /*AFdata = NULL if no focus control*/ - if (AFdata->focus < 0) - { - /*starting autofocus*/ - AFdata->focus = AFdata->left; /*start left*/ - focus_control->value = AFdata->focus; - if (set_ctrl (videoIn->fd, s->control_list, AFdata->id) != 0) - g_printerr("ERROR: couldn't set focus to %d\n", AFdata->focus); - /*number of frames until focus is stable*/ - /*1.4 ms focus time - every 1 step*/ - AFdata->focus_wait = (int) abs(AFdata->focus-last_focus)*1.4/(1000/global->fps)+1; - last_focus = AFdata->focus; - } - else - { - if (AFdata->focus_wait == 0) - { - AFdata->sharpness=getSharpness (videoIn->framebuffer, width, height, 5); - if (global->debug) - g_print("sharp=%d focus_sharp=%d foc=%d right=%d left=%d ind=%d flag=%d\n", - AFdata->sharpness,AFdata->focus_sharpness, - AFdata->focus, AFdata->right, AFdata->left, - AFdata->ind, AFdata->flag); - AFdata->focus=getFocusVal (AFdata); - if ((AFdata->focus != last_focus)) - { - focus_control->value = AFdata->focus; - if (set_ctrl (videoIn->fd, s->control_list, AFdata->id) != 0) - g_printerr("ERROR: couldn't set focus to %d\n", - AFdata->focus); - /*number of frames until focus is stable*/ - /*1.4 ms focus time - every 1 step*/ - AFdata->focus_wait = (int) abs(AFdata->focus-last_focus)*1.4/(1000/global->fps)+1; - } - last_focus = AFdata->focus; - } - else - { - AFdata->focus_wait--; - if (global->debug) g_print("Wait Frame: %d\n",AFdata->focus_wait); - } - } - } - } - /*------------------------- Filter Frame ---------------------------------*/ - __LOCK_MUTEX(__GMUTEX); - if(global->Frame_Flags>0) - { - if((global->Frame_Flags & YUV_PARTICLES)==YUV_PARTICLES) - particles = particles_effect(videoIn->framebuffer, width, height, 20, 4, particles); - - if((global->Frame_Flags & YUV_MIRROR)==YUV_MIRROR) - yuyv_mirror(videoIn->framebuffer, width, height); - - if((global->Frame_Flags & YUV_UPTURN)==YUV_UPTURN) - yuyv_upturn(videoIn->framebuffer, width, height); - - if((global->Frame_Flags & YUV_NEGATE)==YUV_NEGATE) - yuyv_negative (videoIn->framebuffer, width, height); - - if((global->Frame_Flags & YUV_MONOCR)==YUV_MONOCR) - yuyv_monochrome (videoIn->framebuffer, width, height); - - if((global->Frame_Flags & YUV_PIECES)==YUV_PIECES) - pieces (videoIn->framebuffer, width, height, 16 ); - - } - __UNLOCK_MUTEX(__GMUTEX); - /*-------------------------capture Image----------------------------------*/ - if (videoIn->capImage) - { - /* - * format and resolution can change(enabled) while capturing the frame - * but you would need to be speedy gonzalez to press two buttons - * at almost the same time :D - */ - int ret = 0; - if((ret=store_picture(all_data)) < 0) - g_printerr("saved image to:%s ...Failed \n",videoIn->ImageFName); - else if (!ret && global->debug) g_print("saved image to:%s ...OK \n",videoIn->ImageFName); - - videoIn->capImage=FALSE; - } - /*---------------------------capture Video---------------------------------*/ - if (capVid && !(global->skip_n)) - { - __LOCK_MUTEX(__VMUTEX); - if(videoIn->VidCapStop) videoIn->VidCapStop = FALSE; - __UNLOCK_MUTEX(__VMUTEX); - int res=0; - - /* format and resolution don't change(disabled) while capturing video - * store_video_frame may sleep if needed to avoid buffer overrun - */ - if((res=store_video_frame(all_data))<0) g_printerr("WARNING: droped frame (%i)\n",res); - - } /*video and audio capture have stopped */ - else - { - __LOCK_MUTEX(__VMUTEX); - if(!(videoIn->VidCapStop)) videoIn->VidCapStop=TRUE; - __UNLOCK_MUTEX(__VMUTEX); - } - - /* decrease skip frame count */ - if (global->skip_n > 0) - { - if (global->debug && capVid) g_print("skiping frame %d...\n", global->skip_n); - global->skip_n--; - } - - __LOCK_MUTEX( __AMUTEX ); - if (global->Sound_enable && capVid) pdata->skip_n = global->skip_n; - __UNLOCK_MUTEX( __AMUTEX ); - - /*------------------------- Display Frame --------------------------------*/ - if(!global->no_display) - { - if (global->osdFlags && pdata->audio_buff[0]) - { - draw_vu_meter(width, height, vuPeak, vuPeakFreeze, data); - } - SDL_LockYUVOverlay(overlay); - memcpy(p, videoIn->framebuffer, width * height * 2); - SDL_UnlockYUVOverlay(overlay); - SDL_DisplayYUVOverlay(overlay, &drect); - - /*------------------------- Read Key events ------------------------------*/ - /* Poll for events */ - while( SDL_PollEvent(&event) ) - { - //printf("event type:%i event key:%i\n", event.type, event.key.keysym.scancode); - if(event.type==SDL_KEYDOWN) - { - if (videoIn->PanTilt) - { - switch( event.key.keysym.sym ) - { - /* Keyboard event */ - /* Pass the event data onto PrintKeyInfo() */ - case SDLK_DOWN: - /*Tilt Down*/ - uvcPanTilt (videoIn->fd, s->control_list, 0, 1); - break; - - case SDLK_UP: - /*Tilt UP*/ - uvcPanTilt (videoIn->fd, s->control_list, 0, -1); - break; - - case SDLK_LEFT: - /*Pan Left*/ - uvcPanTilt (videoIn->fd, s->control_list, 1, 1); - break; - - case SDLK_RIGHT: - /*Pan Right*/ - uvcPanTilt (videoIn->fd, s->control_list, 1, -1); - break; - default: - break; - } - } - switch( event.key.keysym.scancode ) - { - case 220: /*webcam button*/ - //gdk_threads_enter(); - if (all_data->global->default_action == 0) - g_main_context_invoke(NULL, image_capture_callback, (gpointer) all_data); - else - g_main_context_invoke(NULL, video_capture_callback, (gpointer) all_data); - - break; - } - switch( event.key.keysym.sym ) - { - case SDLK_q: - //shutDown - g_timeout_add(200, shutd_timer, all_data); - g_print("q pressed - Quiting...\n"); - break; - case SDLK_SPACE: - { - if(global->AFcontrol > 0) - setfocus_clicked(NULL, all_data); - } - break; - case SDLK_i: - g_main_context_invoke(NULL, image_capture_callback, (gpointer) all_data); - break; - case SDLK_v: - g_main_context_invoke(NULL, video_capture_callback, (gpointer) all_data); - break; - default: - break; - } - } - if(event.type==SDL_VIDEORESIZE) - { - pscreen = - SDL_SetVideoMode(event.resize.w, - event.resize.h, - global->bpp, - SDL_VIDEO_Flags); - drect.w = event.resize.w; - drect.h = event.resize.h; - } - if(event.type==SDL_QUIT) - { - //shutDown - g_timeout_add(200, shutd_timer, all_data); - } - } - } - /* if set make the thread sleep - default no sleep (full throttle)*/ - if(global->vid_sleep) sleep_ms(global->vid_sleep); - - /*------------------------------------------*/ - /* restart video (new resolution/format) */ - /*------------------------------------------*/ - if (global->change_res) - { - g_print("setting new resolution (%d x %d)\n", global->width, global->height); - /*clean up */ - - if(particles) g_free(particles); - particles = NULL; - - if (global->debug) g_print("cleaning buffer allocations\n"); - fflush(NULL);//flush all output buffers - - if(!global->no_display) - { - SDL_FreeYUVOverlay(overlay); - overlay = NULL; - } - /*init device*/ - restart_v4l2(videoIn, global); - /*set new resolution for video thread*/ - width = global->width; - height = global->height; - format = global->format; - /* restart SDL with new values*/ - if(!global->no_display) - { - overlay = video_init(data, &(pscreen)); - if(overlay == NULL) - { - g_print("FATAL: Couldn't create yuv overlay - please disable hardware accelaration\n"); - signalquit = TRUE; /*exit video thread*/ - } - else - { - if (global->debug) g_print("yuv overlay created (%ix%i).\n", overlay->w, overlay->h); - p = (unsigned char *) overlay->pixels[0]; - - drect.x = 0; - drect.y = 0; - drect.w = pscreen->w; - drect.h = pscreen->h; - - global->change_res = FALSE; - } - } - else global->change_res = FALSE; - } - - }/*loop end*/ - - __LOCK_MUTEX(__VMUTEX); - capVid = videoIn->capVid; - __UNLOCK_MUTEX(__VMUTEX); - /*check if thread exited while in Video capture mode*/ - if (capVid) - { - /*stop capture*/ - if (global->debug) g_print("stoping Video capture\n"); - //global->Vidstoptime = ns_time_monotonic(); /*this is set in IO thread*/ - videoIn->VidCapStop=TRUE; - capVid = FALSE; - __LOCK_MUTEX(__VMUTEX); - videoIn->capVid = capVid; - __UNLOCK_MUTEX(__VMUTEX); - __LOCK_MUTEX(__AMUTEX); - pdata->capVid = capVid; - __UNLOCK_MUTEX(__AMUTEX); - /*join IO thread*/ - if (global->debug) g_print("Shuting Down IO Thread\n"); - __THREAD_JOIN( all_data->IO_thread ); - if (global->debug) g_print("IO Thread finished\n"); - } - - if (global->debug) g_print("Thread terminated...\n"); - p = NULL; - if(particles) g_free(particles); - particles=NULL; - - if (global->debug) g_print("cleaning Thread allocations: 100%%\n"); - fflush(NULL);//flush all output buffers - - if(!global->no_display) - { - if(overlay) - SDL_FreeYUVOverlay(overlay); - //SDL_FreeSurface(pscreen); - - SDL_Quit(); - } - - if (global->debug) g_print("Video thread completed\n"); - - global = NULL; - AFdata = NULL; - videoIn = NULL; - return ((void *) 0); -} - - - diff -Nru guvcview-1.7.3/src/video_filters.c guvcview-2.0.1+ubuntu1~ppa1/src/video_filters.c --- guvcview-1.7.3/src/video_filters.c 2014-03-24 22:56:28.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/src/video_filters.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,406 +0,0 @@ -/*******************************************************************************# -# guvcview http://guvcview.sourceforge.net # -# # -# Paulo Assis # -# # -# This program is free software; you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation; either version 2 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program; if not, write to the Free Software # -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# # -********************************************************************************/ - -#include -#include -#include -#include "video_filters.h" -#include "v4l2uvc.h" - -/* Flip YUYV frame - horizontal - * args: - * frame = pointer to frame buffer (yuyv format) - * width = frame width - * height= frame height - * returns: void - */ -void -yuyv_mirror (BYTE *frame, int width, int height) -{ - int h=0; - int w=0; - int sizeline = width*2; /* 2 bytes per pixel*/ - BYTE *pframe; - pframe=frame; - BYTE line[sizeline-1];/*line buffer*/ - for (h=0; h < height; h++) - { /*line iterator*/ - for(w=sizeline-1; w > 0; w = w - 4) - { /* pixel iterator */ - line[w-1]=*pframe++; - line[w-2]=*pframe++; - line[w-3]=*pframe++; - line[w]=*pframe++; - } - memcpy(frame+(h*sizeline), line, sizeline); /*copy reversed line to frame buffer*/ - } -} - -/* Invert YUV frame - * args: - * frame = pointer to frame buffer (yuyv format) - * width = frame width - * height= frame height - * returns: void - */ -void -yuyv_negative(BYTE* frame, int width, int height) -{ - int size=width*height*2; - int i=0; - for(i=0; i < size; i++) - frame[i] = ~frame[i]; -} - -/* Flip YUV frame - vertical - * args: - * frame = pointer to frame buffer (yuyv format) - * width = frame width - * height= frame height - * returns: void - */ -void -yuyv_upturn(BYTE* frame, int width, int height) -{ - int h=0; - int sizeline = width*2; /* 2 bytes per pixel*/ - //BYTE *pframe =frame; - BYTE line1[sizeline-1];/*line1 buffer*/ - BYTE line2[sizeline-1];/*line2 buffer*/ - for (h=0; h < height/2; h++) - { /*line iterator*/ - memcpy(line1,frame+h*sizeline,sizeline); - memcpy(line2,frame+(height-1-h)*sizeline,sizeline); - - memcpy(frame+h*sizeline, line2, sizeline); - memcpy(frame+(height-1-h)*sizeline, line1, sizeline); - } -} - -/* monochromatic effect for YUYV frame - * args: - * frame = pointer to frame buffer (yuyv format) - * width = frame width - * height= frame height - * returns: void - */ -void -yuyv_monochrome(BYTE* frame, int width, int height) -{ - int size=width*height*2; - int i=0; - - for(i=0; i < size; i = i + 4) - { /* keep Y - luma */ - frame[i+1]=0x80;/*U - median (half the max value)=128*/ - frame[i+3]=0x80;/*V - median (half the max value)=128*/ - } -} - - -/*break image in little square pieces - * args: - * frame = pointer to frame buffer (yuyv format) - * width = frame width - * height = frame height - * piece_size = multiple of 2 (we need at least 2 pixels to get the entire pixel information) - * format = v4l2 pixel format - */ -void -pieces(BYTE* frame, int width, int height, int piece_size ) -{ - int numx = width / piece_size; - int numy = height / piece_size; - BYTE *piece = g_new0 (BYTE, (piece_size * piece_size * 2)); - int i = 0, j = 0, row = 0, line = 0, column = 0, linep = 0, px = 0, py = 0; - GRand* rand_= g_rand_new_with_seed(2); - int rot = 0; - - for(j = 0; j < numy; j++) - { - row = j * piece_size; - for(i = 0; i < numx; i++) - { - column = i * piece_size * 2; - //get piece - for(py = 0; py < piece_size; py++) - { - linep = py * piece_size * 2; - line = (py + row) * width * 2; - for(px=0 ; px < piece_size * 2; px++) - { - piece[px + linep] = frame[(px + column) + line]; - } - } - /*rotate piece and copy it to frame*/ - //rotation is random - rot = g_rand_int_range(rand_, 0, 8); - switch(rot) - { - case 0: // do nothing - break; - case 5: - case 1: //mirror - yuyv_mirror(piece, piece_size, piece_size); - break; - case 6: - case 2: //upturn - yuyv_upturn(piece, piece_size, piece_size); - break; - case 4: - case 3://mirror upturn - yuyv_upturn(piece, piece_size, piece_size); - yuyv_mirror(piece, piece_size, piece_size); - break; - default: //do nothing - break; - } - //write piece - for(py = 0; py < piece_size; py++) - { - linep = py * piece_size * 2; - line = (py + row) * width * 2; - for(px=0 ; px < piece_size * 2; px++) - { - frame[(px + column) + line] = piece[px + linep]; - } - } - } - } - - g_free(piece); - g_rand_free(rand_); -} - -/*sets a trail of particles obtained from the image - * args: - * frame = pointer to frame buffer (yuyv format) - * width = frame width - * height = frame height - * trail_size = trail size (in frames) - * particle_size = maximum size in pixels - should be even (square - size x size) - * particles = pointer to particles array (struct particle) - */ -struct particle* -particles_effect(BYTE* frame, int width, int height, int trail_size, int particle_size, struct particle* particles) -{ - int i,j,w,h = 0; - int part_w = width>>7; - int part_h = height>>6; - int y_pos = 0; //luma position in the frame - GRand* rand_= g_rand_new(); - //allocation - if (particles == NULL) - { - particles = g_new0(struct particle, trail_size * part_w * part_h); - } - - struct particle* part = particles; - struct particle* part1 = part; - - //move particles in trail - for (i=trail_size; i > 1; i--) - { - part += (i - 1) * part_w * part_h; - part1 += (i - 2) * part_w * part_h; - - for (j= 0; j < part_w * part_h; j++) - { - if(part1->decay > 0) - { - part->PX = part1->PX + g_rand_int_range(rand_, 0, 3); - part->PY = part1->PY + g_rand_int_range(rand_, -4, 1); - - if(ODD(part->PX)) part->PX++; //make sure PX is allways even - - if((part->PX > (width-particle_size)) || (part->PY > (height-particle_size)) || (part->PX < 0) || (part->PY < 0)) - { - part->PX = 0; - part->PY = 0; - part->decay = 0; - } - else - { - part->decay = part1->decay - 1; - } - - part->Y = part1->Y; - part->U = part1->U; - part->V = part1->V; - part->size = part1->size; - } - else - { - part->decay = 0; - } - part++; - part1++; - } - part = particles; //reset - part1 = part; - } - - part = particles; //reset - //get particles from frame (one pixel per particle - make PX allways even) - for(i=0; i < part_w * part_h; i++) - { - part->PX = g_rand_int_range(rand_, 2 * particle_size, width - 4 * particle_size); - part->PY = g_rand_int_range(rand_, 2* particle_size, height - 4 * particle_size); - - if(ODD(part->PX)) part->PX++; - - y_pos = part->PX * 2 + (part->PY * width * 2); - - part->Y = frame[y_pos]; - part->U = frame[y_pos +1]; - part->V = frame[y_pos +3]; - - part->size = g_rand_int_range(rand_, 1, particle_size); - if(ODD(part->size)) part->size++; - - part->decay = (float) trail_size; - part->decay = (float) trail_size; - - part++; //next particle - } - - part = particles; //reset - int line = 0; - float blend =0; - float blend1 =0; - //render particles to frame (expand pixel to particle size) - for (i = 0; i < trail_size * part_w * part_h; i++) - { - if(part->decay > 0) - { - y_pos = part->PX * 2 + (part->PY * width * 2); - blend = part->decay/trail_size; - blend1= 1 -blend; - for(h=0; h<(part->size); h++) - { - line = h * width * 2; - for (w=0; w<(part->size)*2; w+=4) - { - frame[y_pos + w + line] = CLIP(part->Y*blend + frame[y_pos + w + line]*blend1); - frame[(y_pos + w + 1) + line] = CLIP(part->U*blend + frame[(y_pos + w + 1) + line]*blend1); - frame[(y_pos + w + 2) + line] = CLIP(part->Y*blend + frame[(y_pos + w + 2) + line]*blend1); - frame[(y_pos + w + 3) + line] = CLIP(part->V*blend + frame[(y_pos + w + 3) + line]*blend1); - } - } - } - part++; - } - - g_rand_free(rand_); - return(particles); -} - -/* - * EffecTV - Realtime Digital Video Effector - * Copyright (C) 2001-2006 FUKUCHI Kentaro - * - * VertigoTV - Alpha blending with zoomed and rotated images. - * Copyright (C) 2001-2002 FUKUCHI Kentaro - * - * this effect was original done in rgb32 we change it it for yuyv - */ -//static struct dizzy_data* setParams(struct dizzy_data *dizzy, width, height) -//{ -// double vx, vy; -// double t; -// double x, y; -// double dizz; -// if(dizzy == NULL) -// { -// dizzy = g_new0(struct dizzy_data, 1); -// } -// dizz = sin(dizzy->phase) * 10 + sin(dizzy->phase*1.9+5) * 5; -// -// x = width / 2; -// y = height / 2; -// t = (x*x + y*y) * dizzy->zoomrate; -// if(width > height) { -// if(dizz >= 0) { -// if(dizz > x) dizz = x; -// vx = (x*(x-dizz) + y*y) / t; -// } else { -// if(dizz < -x) dizz = -x; -// vx = (x*(x+dizz) + y*y) / t; -// } -// vy = (dizz*y) / t; -// } else { -// if(dizz >= 0) { -// if(dizz > y) dizz = y; -// vx = (x*x + y*(y-dizz)) / t; -// } else { -// if(dizz < -y) dizz = -y; -// vx = (x*x + y*(y+dizz)) / t; -// } -// vy = (dizz*x) / t; -// } -// dizzy->dx = vx * 65536; -// dizzy->dy = vy * 65536; -// dizzy->sx = (-vx * x + vy * y + x + cos(phase*5) * 2) * 65536; -// dizzy->sy = (-vx * y - vy * x + y + sin(phase*6) * 2) * 65536; -// -// dizzy->phase += dizzy->phase_increment; -// if(dizzy->phase > 5700000) dizzy->phase = 0; -// -// return dizzy; -//} - -//int dizzy_effect(BYTE *src, BYTE *dest, dizzy, width, height) -//{ -// BYTE *p; -// BYTE v; -// int x, y; -// int ox, oy; -// int i; -// int video_area = width*height; -// -// dizzy = setParams(dizzy, width, height); -// -// p = dizzy->alt_buffer; -// for(y=height; y>0; y--) { -// ox = dizzy->sx; -// oy = dizzy->sy; -// for(x=width; x>0; x--) { -// i = (oy>>16)*width + (ox>>16); -// if(i<0) i = 0; -// if(i>=video_area) i = video_area; -// v = dizzy->current_buffer[i] & 0xfcfcff; -// v = (v * 3) + ((*src++) & 0xfcfcff); -// *p++ = (v>>2); -// ox += dizzy->dx; -// oy += dizzy->dy; -// } -// dizzy->sx -= dizzy->dy; -// dizzy->sy += dizzy->dx; -// } -// -// memcpy(dest, dizzy->alt_buffer, video_area*sizeof(BYTE)); -// -// p = dizzy->current_buffer; -// dizzy->current_buffer = dizzy->alt_buffer; -// dizzy->alt_buffer = p; -// -// return 0; -//} diff -Nru guvcview-1.7.3/src/video_filters.h guvcview-2.0.1+ubuntu1~ppa1/src/video_filters.h --- guvcview-1.7.3/src/video_filters.h 2014-03-24 22:56:28.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/src/video_filters.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,114 +0,0 @@ -/*******************************************************************************# -# guvcview http://guvcview.sourceforge.net # -# # -# Paulo Assis # -# # -# This program is free software; you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation; either version 2 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program; if not, write to the Free Software # -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# # -********************************************************************************/ - -#ifndef VIDEO_FILTERS_H -#define VIDEO_FILTERS_H - -#include "defs.h" - -struct particle -{ - int PX; - int PY; - BYTE Y; - BYTE U; - BYTE V; - int size; - float decay; -}; - -//struct dizzy_data -//{ -// BYTE *buffer; -// BYTE *current_buffer, *alt_buffer; -// int dx; -// int dy; -// int sx; -// int sy; -// double phase = 0.0; -// double phase_increment = 0.02; -// double zoomrate = 1.01; -//}; - -/* Flip YUYV frame - horizontal - * args: - * frame = pointer to frame buffer (yuyv format) - * width = frame width - * height= frame height - * returns: void - */ -void -yuyv_mirror (BYTE *frame, int width, int height); - -/* Flip YUV frame - vertical - * args: - * frame = pointer to frame buffer (yuyv or uyvy format) - * width = frame width - * height= frame height - * returns: void - */ -void -yuyv_upturn(BYTE* frame, int width, int height); - -/* Invert YUV frame - * args: - * frame = pointer to frame buffer (yuyv or uyvy format) - * width = frame width - * height= frame height - * returns: void - */ -void -yuyv_negative(BYTE* frame, int width, int height); - -/* monochromatic effect for YUYV frame - * args: - * frame = pointer to frame buffer (yuyv format) - * width = frame width - * height= frame height - * returns: void - */ -void -yuyv_monochrome(BYTE* frame, int width, int height); - -/*break image in little square pieces - * args: - * frame = pointer to frame buffer (yuyv or uyvy format) - * width = frame width - * height = frame height - * piece_size = multiple of 2 (we need at least 2 pixels to get the entire pixel information) - * format = v4l2 pixel format - */ -void -pieces(BYTE* frame, int width, int height, int piece_size ); - -/*sets a trail of particles obtained from the image - * args: - * frame = pointer to frame buffer (yuyv format) - * width = frame width - * height = frame height - * trail_size = trail size (in frames) - * particle_size = maximum size in pixels - should be even (square - size x size) - * particles = pointer to particles array (struct particle) - */ -struct particle* -particles_effect(BYTE* frame, int width, int height, int trail_size, int particle_size, struct particle* particles); - -#endif diff -Nru guvcview-1.7.3/src/video_format.c guvcview-2.0.1+ubuntu1~ppa1/src/video_format.c --- guvcview-1.7.3/src/video_format.c 2014-03-24 22:56:28.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/src/video_format.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,87 +0,0 @@ -/*******************************************************************************# -# guvcview http://guvcview.sourceforge.net # -# # -# Paulo Assis # -# # -# This program is free software; you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation; either version 2 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program; if not, write to the Free Software # -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# # -********************************************************************************/ - -#include -#include -/* support for internationalization - i18n */ -#include -#include - -#include "guvcview.h" -#include "ms_time.h" -#include "colorspaces.h" -#include "lavc_common.h" -#include "video_format.h" -#include "vcodecs.h" -#include "acodecs.h" -#include "defs.h" - - -static vformats_data listSupVFormats[] = //list of software supported formats -{ - { - .avformat = FALSE, - .name = "AVI", - .description = N_("AVI - avi format"), - .extension = "avi", - .format_str = "avi", - .pattern ="*.avi", - .flags = 0 - }, - { - .avformat = FALSE, - .name = "MATROSKA", - .description = N_("MKV - Matroska format"), - .extension = "mkv", - .format_str = "mkv", - .pattern = "*.mkv", - .flags = 0 - }, - { - .avformat = FALSE, - .name = "WEBM", - .description = N_("WEBM - format"), - .extension = "webm", - .format_str = "webm", - .pattern = "*.webm", - .flags = 0 - } -}; - -const char *get_vformat_extension(int codec_ind) -{ - return (listSupVFormats[codec_ind].extension); -} - -const char *get_vformat_pattern(int codec_ind) -{ - return (listSupVFormats[codec_ind].pattern); -} - -const char *get_vformat_desc(int codec_ind) -{ - return (listSupVFormats[codec_ind].description); -} - -gboolean isLavfFormat(int codec_ind) -{ - return (listSupVFormats[codec_ind].avformat); -} diff -Nru guvcview-1.7.3/src/video_format.h guvcview-2.0.1+ubuntu1~ppa1/src/video_format.h --- guvcview-1.7.3/src/video_format.h 2014-03-24 22:56:28.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/src/video_format.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,88 +0,0 @@ -/*******************************************************************************# -# guvcview http://guvcview.sourceforge.net # -# # -# Paulo Assis # -# # -# This program is free software; you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation; either version 2 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program; if not, write to the Free Software # -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# # -********************************************************************************/ - -#ifndef VIDEO_FORMAT_H -#define VIDEO_FORMAT_H - -#include "../config.h" -#include "defs.h" -#include "avilib.h" -#include "matroska.h" - -#define AVI_FORMAT 0 -#define MKV_FORMAT 1 -#define WEBM_FORMAT 2 - -#define MAX_VFORMATS 3 - -typedef struct _vformats_data -{ - gboolean avformat; //is a avformat format - const char *name; //format name - const char *description; //format description - const char *extension; //format extension - const char *format_str; - const char *pattern; //file filter pattern - int flags; //lavf flags -} vformats_data; - - -struct VideoFormatData -{ - avi_Context *avi; - mkv_Context *mkv; - - int b_writing_frame; //set when writing frame - int b_header_written; //set after mkv header written - INT64 old_vpts; //previous video pts - INT64 vpts; //video stream presentation time stamp - INT64 old_apts; //previous audio time stamp - INT64 apts; //audio stream presentation time stamp - - int vcodec; - int64_t vdts; - int vblock_align; - int vduration; - int32_t vflags; - int keyframe; - - int acodec; - int64_t adts; - int ablock_align; - int aduration; - int32_t aflags; -}; - -const char *get_vformat_extension(int codec_ind); - -const char *get_vformat_desc(int codec_ind); - -const char *get_vformat_pattern(int codec_ind); -/** -int init_FormatContext(void *data, int format); - -int clean_FormatContext (void* arg); - -int write_video_packet (BYTE *picture_buf, int size, int fps, struct VideoFormatData* data); - -int write_audio_packet (BYTE *audio_buf, int size, struct VideoFormatData* data); -**/ -#endif diff -Nru guvcview-1.7.3/src/video.h guvcview-2.0.1+ubuntu1~ppa1/src/video.h --- guvcview-1.7.3/src/video.h 2014-03-24 22:56:28.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/src/video.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,30 +0,0 @@ -/*******************************************************************************# -# guvcview http://guvcview.sourceforge.net # -# # -# Paulo Assis # -# Nobuhiro Iwamatsu # -# Add UYVY color support(Macbook iSight) # -# # -# This program is free software; you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation; either version 2 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program; if not, write to the Free Software # -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# # -********************************************************************************/ - -#ifndef VIDEO_H -#define VIDEO_H - -/* run in a thread (SDL overlay)*/ -void *main_loop(void *data); - -#endif diff -Nru guvcview-1.7.3/src/video_tab.c guvcview-2.0.1+ubuntu1~ppa1/src/video_tab.c --- guvcview-1.7.3/src/video_tab.c 2014-03-24 22:56:28.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/src/video_tab.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,397 +0,0 @@ -/*******************************************************************************# -# guvcview http://guvcview.sourceforge.net # -# # -# Paulo Assis # -# Nobuhiro Iwamatsu # -# # -# # -# This program is free software; you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation; either version 2 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program; if not, write to the Free Software # -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# # -********************************************************************************/ -#include -#include -/* support for internationalization - i18n */ -#include -#include -#include "globals.h" -#include "callbacks.h" -#include "v4l2uvc.h" -#include "string_utils.h" -#include "vcodecs.h" -#include "video_format.h" -/*--------------------------- file chooser dialog ----------------------------*/ -void video_tab(struct ALL_DATA *all_data) -{ - struct GLOBAL *global = all_data->global; - struct vdIn *videoIn = all_data->videoIn; - struct GWIDGET *gwidget = all_data->gwidget; - //struct paRecordData *pdata = all_data->pdata; - - GtkWidget *table2; - GtkWidget *scroll2; - GtkWidget *Tab2; - GtkWidget *Tab2Label; - GtkWidget *Tab2Icon; - GtkWidget *label_Device; - //GtkWidget *FrameRate; - GtkWidget *label_FPS; - GtkWidget *ShowFPS; - GtkWidget *labelResol; - GtkWidget *label_InpType; - GtkWidget *label_videoFilters; - GtkWidget *table_filt; - GtkWidget *FiltMirrorEnable; - GtkWidget *FiltUpturnEnable; - GtkWidget *FiltNegateEnable; - GtkWidget *FiltMonoEnable; - GtkWidget *FiltPiecesEnable; - GtkWidget *FiltParticlesEnable; - GtkWidget *set_jpeg_comp; - GtkWidget *label_jpeg_comp; - - int line = 0; - int i = 0; - VidFormats *listVidFormats; - - //TABLE - table2 = gtk_grid_new(); - gtk_grid_set_column_homogeneous (GTK_GRID(table2), FALSE); - gtk_widget_set_hexpand (table2, TRUE); - gtk_widget_set_halign (table2, GTK_ALIGN_FILL); - - gtk_grid_set_row_spacing (GTK_GRID(table2), 4); - gtk_grid_set_column_spacing (GTK_GRID (table2), 4); - gtk_container_set_border_width (GTK_CONTAINER (table2), 2); - gtk_widget_show (table2); - //SCROLL - scroll2 = gtk_scrolled_window_new(NULL,NULL); - gtk_scrolled_window_set_placement(GTK_SCROLLED_WINDOW(scroll2), GTK_CORNER_TOP_LEFT); - - //ADD TABLE TO SCROLL - - //viewport is only needed for gtk < 3.8 - //for 3.8 and above s->table can be directly added to scroll1 - GtkWidget* viewport = gtk_viewport_new(NULL,NULL); - gtk_container_add(GTK_CONTAINER(viewport), table2); - gtk_widget_show(viewport); - - gtk_container_add(GTK_CONTAINER(scroll2), viewport); - gtk_widget_show(scroll2); - - //new hbox for tab label and icon - Tab2 = gtk_grid_new(); - Tab2Label = gtk_label_new(_("Video")); - gtk_widget_show (Tab2Label); - - gchar* Tab2IconPath = g_strconcat (PACKAGE_DATA_DIR,"/pixmaps/guvcview/video_controls.png",NULL); - //don't test for file - use default empty image if load fails - //get icon image - Tab2Icon = gtk_image_new_from_file(Tab2IconPath); - g_free(Tab2IconPath); - gtk_widget_show (Tab2Icon); - gtk_grid_attach (GTK_GRID(Tab2), Tab2Icon, 0, 0, 1, 1); - gtk_grid_attach (GTK_GRID(Tab2), Tab2Label, 1, 0, 1, 1); - - gtk_widget_show (Tab2); - gtk_notebook_append_page(GTK_NOTEBOOK(gwidget->boxh),scroll2,Tab2); - - //Devices - label_Device = gtk_label_new(_("Device:")); - gtk_misc_set_alignment (GTK_MISC (label_Device), 1, 0.5); - - gtk_grid_attach (GTK_GRID(table2), label_Device, 0, line, 1, 1); - - gtk_widget_show (label_Device); - - - gwidget->Devices = gtk_combo_box_text_new (); - gtk_widget_set_halign (gwidget->Devices, GTK_ALIGN_FILL); - gtk_widget_set_hexpand (gwidget->Devices, TRUE); - if (videoIn->listDevices->num_devices < 1) - { - //use current - gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(gwidget->Devices), - videoIn->videodevice); - gtk_combo_box_set_active(GTK_COMBO_BOX(gwidget->Devices),0); - } - else - { - for(i=0;i<(videoIn->listDevices->num_devices);i++) - { - gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(gwidget->Devices), - videoIn->listDevices->listVidDevices[i].name); - if(videoIn->listDevices->listVidDevices[i].current) - gtk_combo_box_set_active(GTK_COMBO_BOX(gwidget->Devices),i); - } - } - gtk_grid_attach (GTK_GRID(table2), gwidget->Devices, 1, line, 1 ,1); - gtk_widget_show (gwidget->Devices); - g_signal_connect (GTK_COMBO_BOX_TEXT(gwidget->Devices), "changed", - G_CALLBACK (Devices_changed), all_data); - - // Resolution - gwidget->Resolution = gtk_combo_box_text_new (); - gtk_widget_set_halign (gwidget->Resolution, GTK_ALIGN_FILL); - gtk_widget_set_hexpand (gwidget->Resolution, TRUE); - char temp_str[20]; - int defres=0; - - { - int current_format = videoIn->listFormats->current_format; - listVidFormats = &videoIn->listFormats->listVidFormats[current_format]; - } - - - if (global->debug) - g_print("resolutions of format(%d) = %d \n", - videoIn->listFormats->current_format+1, - listVidFormats->numb_res); - for(i = 0 ; i < listVidFormats->numb_res ; i++) - { - if (listVidFormats->listVidCap[i].width>0) - { - g_snprintf(temp_str,18,"%ix%i", listVidFormats->listVidCap[i].width, - listVidFormats->listVidCap[i].height); - gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(gwidget->Resolution),temp_str); - - if ((global->width == listVidFormats->listVidCap[i].width) && - (global->height == listVidFormats->listVidCap[i].height)) - defres=i;//set selected resolution index - } - } - - // Frame Rate - line++; - - gwidget->FrameRate = gtk_combo_box_text_new (); - gtk_widget_set_halign (gwidget->FrameRate, GTK_ALIGN_FILL); - gtk_widget_set_hexpand (gwidget->FrameRate, TRUE); - int deffps=0; - if (global->debug) - g_print("frame rates of %dÂș resolution=%d \n", - defres+1, - listVidFormats->listVidCap[defres].numb_frates); - for ( i = 0 ; i < listVidFormats->listVidCap[defres].numb_frates ; i++) - { - g_snprintf(temp_str,18,"%i/%i fps", listVidFormats->listVidCap[defres].framerate_denom[i], - listVidFormats->listVidCap[defres].framerate_num[i]); - gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(gwidget->FrameRate),temp_str); - - if (( global->fps_num == listVidFormats->listVidCap[defres].framerate_num[i]) && - (global->fps == listVidFormats->listVidCap[defres].framerate_denom[i])) - deffps=i;//set selected - } - - gtk_grid_attach (GTK_GRID(table2), gwidget->FrameRate, 1, line, 1 ,1); - gtk_widget_show (gwidget->FrameRate); - - - gtk_combo_box_set_active(GTK_COMBO_BOX(gwidget->FrameRate),deffps); - if (deffps==0) - { - if (listVidFormats->listVidCap[defres].framerate_denom) - global->fps = listVidFormats->listVidCap[defres].framerate_denom[0]; - - if (listVidFormats->listVidCap[defres].framerate_num) - global->fps_num = listVidFormats->listVidCap[defres].framerate_num[0]; - - g_print("fps is set to %i/%i\n", global->fps_num, global->fps); - } - gtk_widget_set_sensitive (gwidget->FrameRate, TRUE); - g_signal_connect (GTK_COMBO_BOX_TEXT(gwidget->FrameRate), "changed", - G_CALLBACK (FrameRate_changed), all_data); - - label_FPS = gtk_label_new(_("Frame Rate:")); - gtk_misc_set_alignment (GTK_MISC (label_FPS), 1, 0.5); - - gtk_grid_attach (GTK_GRID(table2), label_FPS, 0, line, 1, 1); - - gtk_widget_show (label_FPS); - - ShowFPS=gtk_check_button_new_with_label (_(" Show")); - gtk_grid_attach (GTK_GRID(table2), ShowFPS, 2, line, 1, 1); - - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(ShowFPS),(global->FpsCount > 0)); - gtk_widget_show (ShowFPS); - g_signal_connect (GTK_CHECK_BUTTON(ShowFPS), "toggled", - G_CALLBACK (ShowFPS_changed), all_data); - - // add resolution combo box - line++; - gtk_combo_box_set_active(GTK_COMBO_BOX(gwidget->Resolution),defres); - - if(global->debug) - g_print("Def. Res: %i numb. fps:%i\n",defres,videoIn->listFormats->listVidFormats[videoIn->listFormats->current_format].listVidCap[defres].numb_frates); - - gtk_grid_attach (GTK_GRID(table2), gwidget->Resolution, 1, line, 1 ,1); - gtk_widget_show (gwidget->Resolution); - - gtk_widget_set_sensitive (gwidget->Resolution, TRUE); - g_signal_connect (gwidget->Resolution, "changed", - G_CALLBACK (resolution_changed), all_data); - - labelResol = gtk_label_new(_("Resolution:")); - gtk_misc_set_alignment (GTK_MISC (labelResol), 1, 0.5); - gtk_grid_attach (GTK_GRID(table2), labelResol, 0, line, 1, 1); - gtk_widget_show (labelResol); - - // Input Format - line++; - gwidget->InpType= gtk_combo_box_text_new (); - gtk_widget_set_halign (gwidget->InpType, GTK_ALIGN_FILL); - gtk_widget_set_hexpand (gwidget->InpType, TRUE); - - int fmtind=0; - for (fmtind=0; fmtind < videoIn->listFormats->numb_formats; fmtind++) - { - gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(gwidget->InpType),videoIn->listFormats->listVidFormats[fmtind].fourcc); - if(global->format == videoIn->listFormats->listVidFormats[fmtind].format) - gtk_combo_box_set_active(GTK_COMBO_BOX(gwidget->InpType),fmtind); /*set active*/ - } - - gtk_grid_attach (GTK_GRID(table2), gwidget->InpType, 1, line, 1 ,1); - - gtk_widget_set_sensitive (gwidget->InpType, TRUE); - g_signal_connect (GTK_COMBO_BOX_TEXT(gwidget->InpType), "changed", - G_CALLBACK (InpType_changed), all_data); - gtk_widget_show (gwidget->InpType); - - label_InpType = gtk_label_new(_("Camera Output:")); - gtk_misc_set_alignment (GTK_MISC (label_InpType), 1, 0.5); - - gtk_grid_attach (GTK_GRID(table2), label_InpType, 0, line, 1, 1); - - gtk_widget_show (label_InpType); - - //jpeg compression quality for MJPEG and JPEG input formats - if((global->format == V4L2_PIX_FMT_MJPEG || global->format == V4L2_PIX_FMT_JPEG) && videoIn->jpgcomp.quality > 0) - { - line++; - gwidget->jpeg_comp = gtk_spin_button_new_with_range(0,100,1); - gtk_widget_set_halign (gwidget->jpeg_comp, GTK_ALIGN_FILL); - gtk_widget_set_hexpand (gwidget->jpeg_comp, TRUE); - /*can't edit the spin value by hand*/ - gtk_editable_set_editable(GTK_EDITABLE(gwidget->jpeg_comp),FALSE); - gtk_spin_button_set_value (GTK_SPIN_BUTTON(gwidget->jpeg_comp), videoIn->jpgcomp.quality); - gtk_grid_attach (GTK_GRID(table2), gwidget->jpeg_comp, 1, line, 1 ,1); - - gtk_widget_set_sensitive (gwidget->jpeg_comp, TRUE); - gtk_widget_show (gwidget->jpeg_comp); - - set_jpeg_comp = gtk_button_new_with_label(_("Apply")); - gtk_grid_attach (GTK_GRID(table2), set_jpeg_comp, 2, line, 1 ,1); - g_signal_connect (GTK_BUTTON (set_jpeg_comp), "clicked", - G_CALLBACK (set_jpeg_comp_clicked), all_data); - gtk_widget_set_sensitive (set_jpeg_comp, TRUE); - gtk_widget_show (set_jpeg_comp); - - label_jpeg_comp = gtk_label_new(_("Quality:")); - gtk_misc_set_alignment (GTK_MISC (label_jpeg_comp), 1, 0.5); - - gtk_grid_attach (GTK_GRID(table2), label_jpeg_comp, 0, line, 1 ,1); - - gtk_widget_show (label_jpeg_comp); - } - - // Filter controls - line++; - label_videoFilters = gtk_label_new(_("---- Video Filters ----")); - gtk_misc_set_alignment (GTK_MISC (label_videoFilters), 0.5, 0.5); - - gtk_grid_attach (GTK_GRID(table2), label_videoFilters, 0, line, 3, 1); - gtk_widget_show (label_videoFilters); - - line++; - table_filt = gtk_grid_new(); - gtk_grid_set_row_spacing (GTK_GRID (table_filt), 4); - gtk_grid_set_column_spacing (GTK_GRID (table_filt), 4); - gtk_container_set_border_width (GTK_CONTAINER (table_filt), 4); - gtk_widget_set_size_request (table_filt, -1, -1); - - gtk_widget_set_halign (table_filt, GTK_ALIGN_FILL); - gtk_widget_set_hexpand (table_filt, TRUE); - gtk_grid_attach (GTK_GRID(table2), table_filt, 0, line, 3, 1); - gtk_widget_show (table_filt); - - // Mirror - FiltMirrorEnable=gtk_check_button_new_with_label (_(" Mirror")); - g_object_set_data (G_OBJECT (FiltMirrorEnable), "filt_info", GINT_TO_POINTER(YUV_MIRROR)); - gtk_widget_set_halign (FiltMirrorEnable, GTK_ALIGN_FILL); - gtk_widget_set_hexpand (FiltMirrorEnable, TRUE); - gtk_grid_attach(GTK_GRID(table_filt), FiltMirrorEnable, 0, 0, 1, 1); - - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(FiltMirrorEnable),(global->Frame_Flags & YUV_MIRROR)>0); - gtk_widget_show (FiltMirrorEnable); - g_signal_connect (GTK_CHECK_BUTTON(FiltMirrorEnable), "toggled", - G_CALLBACK (FiltEnable_changed), all_data); - // Upturn - FiltUpturnEnable=gtk_check_button_new_with_label (_(" Invert")); - g_object_set_data (G_OBJECT (FiltUpturnEnable), "filt_info", GINT_TO_POINTER(YUV_UPTURN)); - gtk_widget_set_halign (FiltUpturnEnable, GTK_ALIGN_FILL); - gtk_widget_set_hexpand (FiltUpturnEnable, TRUE); - gtk_grid_attach(GTK_GRID(table_filt), FiltUpturnEnable, 1, 0, 1, 1); - - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(FiltUpturnEnable),(global->Frame_Flags & YUV_UPTURN)>0); - gtk_widget_show (FiltUpturnEnable); - g_signal_connect (GTK_CHECK_BUTTON(FiltUpturnEnable), "toggled", - G_CALLBACK (FiltEnable_changed), all_data); - // Negate - FiltNegateEnable=gtk_check_button_new_with_label (_(" Negative")); - g_object_set_data (G_OBJECT (FiltNegateEnable), "filt_info", GINT_TO_POINTER(YUV_NEGATE)); - gtk_widget_set_halign (FiltNegateEnable, GTK_ALIGN_FILL); - gtk_widget_set_hexpand (FiltNegateEnable, TRUE); - gtk_grid_attach(GTK_GRID(table_filt), FiltNegateEnable, 2, 0, 1, 1); - - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(FiltNegateEnable),(global->Frame_Flags & YUV_NEGATE)>0); - gtk_widget_show (FiltNegateEnable); - g_signal_connect (GTK_CHECK_BUTTON(FiltNegateEnable), "toggled", - G_CALLBACK (FiltEnable_changed), all_data); - // Mono - FiltMonoEnable=gtk_check_button_new_with_label (_(" Mono")); - g_object_set_data (G_OBJECT (FiltMonoEnable), "filt_info", GINT_TO_POINTER(YUV_MONOCR)); - gtk_widget_set_halign (FiltMonoEnable, GTK_ALIGN_FILL); - gtk_widget_set_hexpand (FiltMonoEnable, TRUE); - gtk_grid_attach(GTK_GRID(table_filt), FiltMonoEnable, 3, 0, 1, 1); - - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(FiltMonoEnable),(global->Frame_Flags & YUV_MONOCR)>0); - gtk_widget_show (FiltMonoEnable); - g_signal_connect (GTK_CHECK_BUTTON(FiltMonoEnable), "toggled", - G_CALLBACK (FiltEnable_changed), all_data); - - // Pieces - FiltPiecesEnable=gtk_check_button_new_with_label (_(" Pieces")); - g_object_set_data (G_OBJECT (FiltPiecesEnable), "filt_info", GINT_TO_POINTER(YUV_PIECES)); - gtk_widget_set_halign (FiltPiecesEnable, GTK_ALIGN_FILL); - gtk_widget_set_hexpand (FiltPiecesEnable, TRUE); - gtk_grid_attach(GTK_GRID(table_filt), FiltPiecesEnable, 4, 0, 1, 1); - - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(FiltPiecesEnable),(global->Frame_Flags & YUV_PIECES)>0); - gtk_widget_show (FiltPiecesEnable); - g_signal_connect (GTK_CHECK_BUTTON(FiltPiecesEnable), "toggled", - G_CALLBACK (FiltEnable_changed), all_data); - - // Particles - FiltParticlesEnable=gtk_check_button_new_with_label (_(" Particles")); - g_object_set_data (G_OBJECT (FiltParticlesEnable), "filt_info", GINT_TO_POINTER(YUV_PARTICLES)); - gtk_widget_set_halign (FiltParticlesEnable, GTK_ALIGN_FILL); - gtk_widget_set_hexpand (FiltParticlesEnable, TRUE); - gtk_grid_attach(GTK_GRID(table_filt), FiltParticlesEnable, 5, 0, 1, 1); - - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(FiltParticlesEnable),(global->Frame_Flags & YUV_PARTICLES)>0); - gtk_widget_show (FiltParticlesEnable); - g_signal_connect (GTK_CHECK_BUTTON(FiltParticlesEnable), "toggled", - G_CALLBACK (FiltEnable_changed), all_data); - -} diff -Nru guvcview-1.7.3/src/video_tab.h guvcview-2.0.1+ubuntu1~ppa1/src/video_tab.h --- guvcview-1.7.3/src/video_tab.h 2014-03-24 22:56:28.000000000 +0000 +++ guvcview-2.0.1+ubuntu1~ppa1/src/video_tab.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ -/*******************************************************************************# -# guvcview http://guvcview.sourceforge.net # -# # -# Paulo Assis # -# Nobuhiro Iwamatsu # -# Add UYVY color support(Macbook iSight) # -# # -# This program is free software; you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation; either version 2 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program; if not, write to the Free Software # -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# # -********************************************************************************/ - -#ifndef VIDEO_TAB_H -#define VIDEO_TAB_H - -#include "guvcview.h" -//------------------------- Video Tab --------------------------------- -void video_tab(struct ALL_DATA *all_data); - -#endif